OSDN Git Service

* tree-vrp.c (extract_range_from_binary_expr): Don't shift by
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-12-12  Alexandre Oliva  <aoliva@redhat.com>
2
3         * tree-vrp.c (extract_range_from_binary_expr): Don't shift by
4         floor_log2 of zero.  Negate widened zero.
5
6 2008-12-12  Ben Elliston  <bje@au.ibm.com>
7
8         * config/fp-bit.c (nan): Rename from this ..
9         (makenan): .. to this.
10
11 2008-12-11  Adam Nemet  <anemet@caviumnetworks.com>
12
13         * config/mips/mips.md (*branch_bit<bbv><mode>,
14         *branch_bit<bbv><mode>_inverted): Renumber operands so that the
15         label becomes operands[1].
16
17 2008-12-11  Harsha Jagasia  <harsha.jagasia@amd.com>
18
19         PR tree-optimization/38446
20         * graphite.c (register_bb_in_sese): New.
21         (bb_in_sese_p): Check if bb belongs to sese region by explicitly
22         looking at the bbs in the region.
23         * graphite.h (sese): Add region_basic_blocks pointer set to
24         structure and initialize at the time of defining new scop.
25
26 2008-12-11  Tobias Grosser  <grosser@fim.uni-passau.de>
27
28         * graphite.c (new_graphite_bb): Initialize GBB_STATIC_SCHEDULE.
29         (find_params_in_bb): Do not free data refs.
30         (free_graphite_bb): Add FIXME on disabled free_data_refs.
31
32 2008-12-11  Sebastian Pop  <sebastian.pop@amd.com>
33
34         * graphite.c (struct ivtype_map_elt): New.
35         (debug_ivtype_elt, debug_ivtype_map_1, debug_ivtype_map,
36         new_ivtype_map_elt, ivtype_map_elt_info, eq_ivtype_map_elts,
37         gcc_type_for_cloog_iv): New.
38         (loop_iv_stack_patch_for_consts): Use the type of the induction
39         variable from the original loop, except for the automatically
40         generated loops, i.e., in the case of a strip-mined loop, in
41         which case there is no original loop: in that case just use
42         integer_type_node.
43         (new_graphite_bb): Initialize GBB_CLOOG_IV_TYPES.
44         (free_graphite_bb): Free GBB_CLOOG_IV_TYPES.
45         (clast_name_to_gcc): Accept params to be NULL.
46         (clast_to_gcc_expression): Take an extra parameter for the type.
47         Convert to that type all the expressions built by this function.
48         (gcc_type_for_clast_expr, gcc_type_for_clast_eq): New.
49         (graphite_translate_clast_equation): Compute the type of the
50         clast_equation before translating its LHS and RHS.
51         (clast_get_body_of_loop, gcc_type_for_iv_of_clast_loop): New.
52         (graphite_create_new_loop): Compute the type of the induction
53         variable before translating the lower and upper bounds and before
54         creating the induction variable.
55         (rename_variables_from_edge, rename_phis_end_scop): New.
56         (copy_bb_and_scalar_dependences): Call rename_phis_end_scop.
57         (sese_add_exit_phis_edge): Do not use integer_zero_node.
58         (find_cloog_iv_in_expr, compute_cloog_iv_types_1,
59         compute_cloog_iv_types): New.
60         (gloog): Call compute_cloog_iv_types before starting the
61         translation of the clast.
62
63         * graphite.h (struct graphite_bb): New field cloog_iv_types.
64         (GBB_CLOOG_IV_TYPES): New.
65         (debug_ivtype_map): Declared.
66         (oldiv_for_loop): New.
67
68 2008-12-10  Tobias Grosser  <grosser@fim.uni-passau.de>
69
70         PR middle-end/38459
71         * graphite.c (new_scop): Initialize SCOP_ADD_PARAMS.
72         (param_index): Assert if parameter is not know after parameter
73         detection.
74         (find_params_in_bb): Detect params directly in GBB_CONDITIONS.
75         (find_scop_parameters): Mark, that we have finished parameter
76         detection.
77         (graphite_transform_loops): Move condition detection before parameter
78         detection.
79         * graphite.h (struct scop): Add SCOP_ADD_PARAMS.
80
81 2008-12-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
82
83         PR testsuite/35677
84         * emutls.c (__emutls_get_address): Make sure offset is really zero
85         before initializing the object's offset.
86
87 2008-12-11  Jakub Jelinek  <jakub@redhat.com>
88
89         PR c++/38253
90         * gimplify.c (gimplify_init_constructor): Don't force constructor
91         into memory if there is just one nonzero element.
92
93 2008-12-11  Sebastian Pop  <sebastian.pop@amd.com>
94
95         Fix testsuite/gfortran.dg/graphite/id-4.f90.
96         * graphite.c (scan_tree_for_params): Do not compute the multiplicand
97         when not needed.
98
99 2008-12-11  Sebastian Pop  <sebastian.pop@amd.com>
100
101         * graphite.c (build_scops_1): Initialize open_scop.exit
102         and sinfo.last.
103
104 2008-12-11  Sebastian Pop  <sebastian.pop@amd.com>
105             Jan Sjodin  <jan.sjodin@amd.com>
106             Harsha Jagasia  <harsha.jagasia@amd.com>
107
108         PR middle-end/37852
109         PR middle-end/37883
110         PR middle-end/37928
111         PR middle-end/37980
112         PR middle-end/38038
113         PR middle-end/38039
114         PR middle-end/38073
115         PR middle-end/38083
116         PR middle-end/38125
117
118         * tree-phinodes.c (remove_phi_nodes): New, extracted from...
119         * tree-cfg.c (remove_phi_nodes_and_edges_for_unreachable_block): ...here.
120         * tree-flow.h (remove_phi_nodes, canonicalize_loop_ivs): Declared.
121         * Makefile.in (graphite.o): Depend on value-prof.h.
122         (graphite.o-warn): Removed -Wno-error.
123         * tree-parloops.c (canonicalize_loop_ivs): Allow reduction_list 
124         to be a NULL pointer.  Call update_stmt.  Return the newly created 
125         cannonical induction variable.
126
127         * graphite.h (debug_rename_map): Declared.  Fix some comments.
128
129         * graphite.c: Reimplement the code generation from graphite to gimple.
130         Include value-prof.h.
131         (loop_iv_stack_get_iv): Do not return NULL for constant substitutions.
132         (get_old_iv_from_ssa_name): Removed.
133         (graphite_stmt_p): New.
134         (new_graphite_bb): Test for useful statements before building a
135         graphite statement for the basic block.
136         (free_graphite_bb): Do not free GBB_DATA_REFS: this is a bug
137         in free_data_ref that calls BITMAP_FREE (DR_VOPS (dr)) without 
138         reason.
139         (recompute_all_dominators, graphite_verify,
140         nb_reductions_in_loop, graphite_loop_normal_form): New.
141         (scop_record_loop): Call graphite_loop_normal_form.
142         (build_scop_loop_nests): Iterate over all the blocks of the
143         function instead of relying on the incomplete information from
144         SCOP_BBS.  Return the success of the operation.
145         (find_params_in_bb): Use the data from GBB_DATA_REFS.
146         (add_bb_domains): Removed.
147         (build_loop_iteration_domains): Don't call add_bb_domains.
148         Add the iteration domain only to the basic blocks that have been
149         translated to graphite.
150         (build_scop_conditions_1): Add constraints only if the basic
151         block have been translated to graphite.
152         (build_scop_data_accesses): Completely disabled until data
153         dependence is correctly implemented.
154         (debug_rename_elt, debug_rename_map_1, debug_rename_map): New.
155         (remove_all_edges_1, remove_all_edges): Removed.
156         (get_new_name_from_old_name): New.
157         (graphite_rename_variables_in_stmt): Renamed 
158         rename_variables_in_stmt.  Call get_new_name_from_old_name.
159         Use replace_exp and update_stmt.
160         (is_old_iv): Renamed is_iv.
161         (expand_scalar_variables_stmt): Extra parameter for renaming map.
162         Use replace_exp and update_stmt.
163         (expand_scalar_variables_expr): Same.  Use the map to get the
164         new names for the renaming of induction variables and for the
165         renaming of variables after a basic block has been copied.
166         (expand_scalar_variables): Same.
167         (graphite_rename_variables): Renamed rename_variables.
168         (move_phi_nodes): Removed.
169         (get_false_edge_from_guard_bb): New.
170         (build_iv_mapping): Do not insert the induction variable of a
171         loop in the renaming iv map if the basic block does not belong
172         to that loop.
173         (register_old_new_names, graphite_copy_stmts_from_block,
174         copy_bb_and_scalar_dependences): New.
175         (translate_clast): Heavily reimplemented: copy basic blocks,
176         do not move them.  Finally, in call cleanup_tree_cfg in gloog.
177         At each translation step call graphite_verify ensuring the 
178         consistency of the SSA, loops and dominators information.
179         (collect_virtual_phis, find_vdef_for_var_in_bb,
180         find_vdef_for_var_1, find_vdef_for_var,
181         patch_phis_for_virtual_defs): Removed huge hack.
182         (mark_old_loops, remove_dead_loops, skip_phi_defs,
183         collect_scop_exit_phi_args, patch_scop_exit_phi_args,
184         gbb_can_be_ignored, scop_remove_ignoreable_gbbs, ): Removed.
185         (remove_sese_region, ifsese, if_region_entry, if_region_exit,
186         if_region_get_condition_block, if_region_set_false_region,
187         create_if_region_on_edge, move_sese_in_condition, bb_in_sese_p,
188         sese_find_uses_to_rename_use, sese_find_uses_to_rename_bb, 
189         sese_add_exit_phis_edge, sese_add_exit_phis_var,
190         rewrite_into_sese_closed_ssa): New.
191         (gloog): Remove dead code.  Early return if code cannot be
192         generated.  Call cleanup_tree_cfg once the scop has been code
193         generated.
194         (graphite_trans_scop_block, graphite_trans_loop_block): Do not 
195         block loops with less than two loops.
196         (graphite_apply_transformations): Remove the call to
197         scop_remove_ignoreable_gbbs.
198         (limit_scops): When build_scop_loop_nests fails, continue on next scop.
199         Fix open_scop.entry.
200         (graphite_transform_loops): Call recompute_all_dominators: force the
201         recomputation of correct CDI_DOMINATORS and CDI_POST_DOMINATORS.
202         Call initialize_original_copy_tables and free_original_copy_tables
203         to be able to copy basic blocks during code generation.
204         When build_scop_loop_nests fails, continue on next scop.
205         (value_clast): New union.
206         (clast_to_gcc_expression): Fix type cast warning.
207
208 2008-12-10  Richard Guenther  <rguenther@suse.de>
209
210         PR tree-optimization/36792
211         * tree-ssa-pre.c (compute_avail): Handle tcc_comparison like
212         tcc_binary.
213
214 2008-12-10  Daniel Berlin  <dberlin@dberlin.org>
215
216         PR tree-optimization/36792
217         * tree-ssa-pre.c (compute_avail): Don't insert defs into maximal
218         set.
219
220 2008-12-10  Alexandre Oliva  <aoliva@redhat.com>
221
222         PR target/37033
223         * dwarf2out.c (saved_do_cfi_asm): New.
224         (dwarf2out_do_frame): Take it into account.
225         (dwarf2out_d_cfi_asm): Likewise.  Set it when appropriate.
226
227 2008-12-10  Alexandre Oliva  <aoliva@redhat.com>
228
229         PR middle-end/38271
230         * tree-sra.c (sra_build_bf_assignment): Avoid warnings for
231         variables initialized from SRAed bit fields.
232
233 2008-12-10  Martin Guy <martinwguy@yahoo.it>
234
235         PR target/37668
236         * arm.c (arm_size_rtx_costs, case NEG): Don't fall through if the
237         result will be in an FPU register.
238
239 2008-12-10  Eric Botcazou  <ebotcazou@adacore.com>
240
241         PR target/37170
242         PR target/38448
243         * final.c (output_addr_const) <SYMBOL_REF>: Call assemble_external
244         on the associated SYMBOL_REF_DECL node, if any.
245
246 2008-12-09 David Daney <ddaney@caviumnetworks.com>
247
248         * config/mips/sync.md (sync_<optab>_12): Replace
249         MIPS_SYNC_OP_12_NOT_NOP with MIPS_SYNC_OP_12_AND.
250         (sync_old_<optab>_12): Remove third paramater to
251         MIPS_SYNC_OLD_OP_12 macro, replace MIPS_SYNC_OLD_OP_12_NOT_NOP
252         with MIPS_SYNC_OLD_OP_12_AND.
253         (sync_new_<optab>_12): Replace MIPS_SYNC_NEW_OP_12_NOT_NOP
254         with MIPS_SYNC_NEW_OP_12_AND.
255         (sync_nand_12): Replace MIPS_SYNC_OP_12_NOT_NOT with
256         MIPS_SYNC_OP_12_XOR, reduce length attribute to 40.
257         (sync_old_nand_12): Remove third paramater to MIPS_SYNC_OLD_OP_12
258         macro, replace MIPS_SYNC_OLD_OP_12_NOT_NOT with
259         MIPS_SYNC_OLD_OP_12_XOR and reduce length attribute to 40.
260         (sync_new_nand_12): Replace MIPS_SYNC_NEW_OP_12_NOT_NOT with
261         MIPS_SYNC_NEW_OP_12_XOR.
262         * config/mips/mips.h (MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
263         MIPS_SYNC_OP_12_NOT_NOT,MIPS_SYNC_OLD_OP_12_NOT_NOP,
264         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_NEW_OP_12,
265         MIPS_SYNC_NEW_OP_12_NOT_NOP, MIPS_SYNC_NEW_OP_12_NOT_NOT,
266         MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND): Rewritten
267         to implement new __sync_nand semantics.
268         (MIPS_SYNC_OLD_OP_12): Implement new __sync_nand semantics, and
269         remove third parameter.
270         (MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
271         MIPS_SYNC_OLD_OP_12_NOT_NOT_REG): Removed.
272         (MIPS_SYNC_OP_12_NOT_NOP): Renamed to MIPS_SYNC_OP_12_AND.
273         (MIPS_SYNC_OP_12_NOT_NOT): Renamed to MIPS_SYNC_OP_12_XOR.
274         (MIPS_SYNC_OLD_OP_12_NOT_NOP): Renamed to MIPS_SYNC_OLD_OP_12_AND.
275         (MIPS_SYNC_OLD_OP_12_NOT_NOT): Renamed to MIPS_SYNC_OLD_OP_12_XOR.
276         (MIPS_SYNC_NEW_OP_12_NOT_NOP): Renamed to MIPS_SYNC_NEW_OP_12_AND.
277         (MIPS_SYNC_NEW_OP_12_NOT_NOT): Renamed to MIPS_SYNC_NEW_OP_12_XOR
278
279 2008-12-09  Tobias Grosser  <grosser@fim.uni-passau.de>
280
281         * graphite.c (graphite_transform_loops): Always call find_transform ()
282         in ENABLE_CHECKING.  So we test these code paths, even if we do not
283         generate code.
284
285 2008-12-09  Tobias Grosser  <grosser@fim.uni-passau.de>
286
287         * graphite.c (print_graphite_bb): Fix printing to file != dump_file.
288
289 2008-12-09  Jakub Jelinek  <jakub@redhat.com>
290
291         PR middle-end/38454
292         * function.h (struct function): Add always_inline_functions_inlined.
293         * ipa-inline.c (cgraph_early_inlining): Set it to true.
294         * tree-optimize.c (execute_fixup_cfg): Likewise.
295         * builtins.c (avoid_folding_inline_builtin): New function.
296         (fold_call_expr): Don't optimize always_inline builtins before
297         inlining.
298         (fold_call_stmt): Likewise.
299         (fold_builtin_call_array): Likewise.  Don't call
300         fold_builtin_varargs for BUILT_IN_MD builtins.
301
302         PR tree-optimization/37416
303         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Handle NOP_EXPR.
304
305 2008-12-09  Janis Johnson  <janis187@us.ibm.com>
306
307         * doc/sourcebuild.texi (Test Directives): Fix formatting.
308
309 2008-12-09  Vladimir Makarov  <vmakarov@redhat.com>
310
311         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
312
313         * doc/invoke.texi (-fira-region): Describe new option.
314         (-fira-algorithm): Change the values.
315
316         * ira-conflicts.c (build_conflict_bit_table,
317         build_allocno_conflicts): Use ira_reg_classes_intersect_p.
318         (ira_build_conflicts): Use flag flag_ira_region instead of
319         flag_ira_algorithm.  Prohibit usage of callee-saved likely spilled
320         base registers for allocnos crossing calls.
321
322         * flags.h (enum ira_algorithm): Redefine.
323         (enum ira_region): New.
324         (flag_ira_region): New.
325
326         * cfgloopanal.c (estimate_reg_pressure_cost): Use flag_ira_region
327         instead of flag_ira_algorithm.
328
329         * toplev.c (flag_ira_algorithm): Change the initial value.
330         (flag_ira_region): New.
331
332         * ira-int.h (ira_reg_classes_intersect_p,
333         ira_reg_class_super_classes): New.
334
335         * ira-color.c (update_copy_costs): Use
336         ira_reg_classes_intersect_p.  Use right class to find hard reg
337         index.
338         (update_conflict_hard_regno_costs): Ditto.  Add a new parameter.
339         (assign_hard_reg): Ditto.  Pass additional argument to
340         update_conflict_hard_regno_costs.  Do not uncoalesce for priority
341         coloring.
342         (allocno_priorities, setup_allocno_priorities,
343         allocno_priority_compare_func): Move before color_allocnos.
344         (color_allocnos): Add priority coloring.  Use flag flag_ira_region
345         instead of flag_ira_algorithm.
346         (move_spill_restore): Check classes of the same reg allocno from
347         different regions.
348         (update_curr_costs): Use ira_reg_classes_intersect_p.
349         (ira_reassign_conflict_allocnos): Ditto.
350
351         * opts.c (decode_options): Always set up flag_ira.  Set up
352         flag_ira_algorithm.  Warn CB can not be used for architecture.
353         (common_handle_option): Modify code for -fira-algorithm.  Add code
354         to process -fira-region.
355
356         * ira-lives.c (update_allocno_pressure_excess_length): Process
357         superclasses too.
358         (set_allocno_live, clear_allocno_live, mark_reg_live,
359         mark_reg_dead, process_bb_node_lives): Ditto.
360
361         * ira-emit.c (ira_emit): Fix insn codes.
362         
363         * ira-build.c (propagate_allocno_info): Use flag flag_ira_region
364         instead of flag_ira_algorithm.
365         (allocno_range_compare_func): Ignore classes for priority
366         coloring.
367         (setup_min_max_conflict_allocno_ids): Ditto.
368         (ira_flattening): Use ira_reg_classes_intersect_p.
369
370         * genpreds.c (write_enum_constraint_num): Output
371         CONSTRAINT__LIMIT.
372         
373         * common.opt (fira-algorithm): Modify.
374         (fira-region): New.
375
376         * ira.c (setup_class_hard_regs): Initialize.
377         (setup_cover_and_important_classes): Modify code setting class
378         related info for priority coloring.
379         (setup_class_translate): Ditto.
380         (ira_reg_classes_intersect_p, ira_reg_class_super_classes): New.
381         (setup_reg_class_intersect_union): Rename to
382         setup_reg_class_relations.  Add code for setting up new variables.
383         (find_reg_class_closure): Do not check targetm.ira_cover_classes.
384         (ira): Use flag flag_ira_region instead of flag_ira_algorithm.
385
386         * ira-costs.c (common_classes): New.
387         (print_costs): Use flag flag_ira_region instead of
388         flag_ira_algorithm.
389         (find_allocno_class_costs): Ditto.  Use common_classes.  Translate
390         alt_class.
391         (ira_costs): Allocate/deallocate common_classes.
392         
393         * config/m32c/m32.h (REG_ALLOC_ORDER): Add reg 19.
394         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): New entries for
395         R02A_REGS.
396
397         * reload1.c (choose_reload_regs): Use MODE_INT for partial ints in
398         smallest_mode_for_size.
399         
400 2008-12-10  Ben Elliston  <bje@au.ibm.com>
401
402         * config/rs6000/linux-unwind.h (get_regs): Constify casts.
403
404 2008-12-09  Jan Hubicka  <jh@suse.cz>
405
406         * predict.c (estimate_bb_frequencies): Fix test if profile is present.
407
408 2008-12-09  Jakub Jelinek  <jakub@redhat.com>
409
410         PR tree-optimization/35468
411         * tree-ssa-ccp.c (fold_stmt_r): Don't fold reads from constant
412         string on LHS.
413
414 2008-12-09  Richard Guenther  <rguenther@suse.de>
415
416         PR tree-optimization/38445
417         * tree-ssa-structalias.c (emit_pointer_definition): Only visit
418         names once.
419         (emit_alias_warning): Adjust.
420
421 2008-12-09  Andrew Haley  <aph@redhat.com>
422
423         * fixed-value.c (do_fixed_add): Add comment.
424         * tree-ssa-loop-ivopts.c (iv_ca_cost): Likewise.
425         * builtins.c (fold_builtin_sqrt): Likewise.
426
427 2008-12-09  Kai Tietz  <kai.tietz@onevision.com>
428
429         PR/38366
430         * function.c (aggregate_value_p): Get fntype from CALL_EXPR in any
431         case.
432         * calls.c (nitialize_argument_information): Add fntype argument 
433         and use it for calls.promote_function_args.
434         (expand_call): Pass fntype to aggregate_value_p if no fndecl
435         available and pass additional fntype to
436         initialize_argument_information.
437         * config/i386/i386.c (ix86_reg_parm_stack_space): Remove cfun part
438         to get function abi type.
439         (init_cumulative_args): Use for abi kind detection fntype, when no
440         fndecl is available.
441
442 2008-12-09  Andreas Krebbel  <krebbel1@de.ibm.com>
443
444         * config/s390/s390.md (movti, movdi_64, movdi_31,
445           *movsi_zarch, *movhi, *movqi, *mov<mode>_64, *mov<mode>_31,
446           *mov<mode>_64dfp, *mov<mode>_64, *mov<mode>_31, mov<mode>): Remove
447           Q->Q alternative.
448           (Integer->BLKmode splitter): Removed.
449
450 2008-12-08  Uros Bizjak  <ubizjak@gmail.com>
451
452         * config/alpha/alpha.c (alpha_set_memflags): Process memory
453         references in full insn sequence.
454
455 2008-12-09  Jason Merrill  <jason@redhat.com>
456
457         * gimplify.c (gimplify_init_constructor): Revert to using < rather
458         than <= for sparseness test.
459
460         PR c++/38410
461         * gimplify.c (gimplify_init_constructor): Don't write out a static
462         copy of the CONSTRUCTOR for TREE_ADDRESSABLE types or small sparse
463         initializers.
464
465 2008-12-09 Tobias Grosser  <grosser@fim.uni-passau.de>
466
467         PR middle-end/38084
468         Fix testsuite/gfortran.dg/graphite/id-3.f90.
469         * graphite.c (scopdet_basic_block_info): Fix bug that found some
470         regions more than once.
471
472 2008-12-09  Ben Elliston  <bje@au.ibm.com>
473
474         * emutls.c (__emutls_get_address): Prototype.
475         (__emutls_register_common): Likewise.
476
477         * config/dfp-bit.c (DFP_TO_INT): Remove unnecessary cast.
478
479 2008-12-09  Ben Elliston  <bje@au.ibm.com>
480
481         * config/rs6000/darwin-ldouble.c (fmsub): Remove unused variable, v.
482
483 2008-12-08  Steve Ellcey  <sje@cup.hp.com>
484
485         * config/ia64/ia64.md (UNSPECV_GOTO_RECEIVER): New constant.
486         (nonlocal_goto_receiver): New instruction.
487
488 2008-12-08  Jakub Jelinek  <jakub@redhat.com>
489
490         PR c/35443
491         * c-pretty-print.c (pp_c_expression): Handle BIND_EXPR.
492
493         PR c/35442
494         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle
495         VIEW_CONVERT_EXPR the same as CASE_CONVERT.
496
497 2008-12-08  Richard Henderson  <rth@redhat.com>
498
499         PR 38240
500         * tree.h (TYPE_MODE): Invoke vector_type_mode when needed.
501         (SET_TYPE_MODE): New.
502         * c-decl.c (parser_xref_tag): Use it.
503         (finish_enum): Likewise.
504         * tree.c (build_pointer_type_for_mode): Likewise.
505         (build_reference_type_for_mode, build_index_type): Likewise.
506         (build_range_type, make_vector_type): Likewise.
507         (build_common_tree_nodes_2): Likewise.
508         * stor-layout.c (compute_record_mode): Likewise.
509         (finalize_type_size, layout_type, make_fract_type): Likewise.
510         (make_accum_type, initialize_sizetypes): Likewise.
511         (vector_type_mode): New.
512         * function.c (allocate_struct_function): Call
513         invoke_set_current_function_hook before querying anything else.
514
515         * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Add avx.
516
517 2008-12-08  Luis Machado  <luisgpm@br.ibm.com>
518
519         * alias.c (find_base_term): Synch LO_SUM handling with what
520         find_base_value does.
521
522 2008-12-08  Andrew Haley  <aph@redhat.com>
523             Kamaraju Kusumanchi <raju.mailinglists@gmail.com>
524
525         * gimple.h (gimple_build_try): Fix declaration.
526
527         * builtins.c (fold_builtin_sqrt): Don't use a conditional operator.
528         * fixed-value.c (do_fixed_add): Likewise.
529         * tree-ssa-loop-ivopts.c (iv_ca_cost): Likewise.
530
531 2008-12-08  Jakub Jelinek  <jakub@redhat.com>
532
533         PR middle-end/36802
534         * omp-low.c (use_pointer_for_field): Only call maybe_lookup_decl
535         on parallel and task contexts.
536
537 2008-12-07  Eric Botcazou  <ebotcazou@adacore.com>
538
539         * gimple.c (recalculate_side_effects) <tcc_constant>: New case.
540
541 2008-12-07  Richard Guenther  <rguenther@suse.de>
542
543         PR tree-optimization/38405
544         * tree-vrp.c (simplify_truth_ops_using_ranges): Make sure to
545         not sign-extend truth values.
546
547 2008-12-07  Eric Botcazou  <ebotcazou@adacore.com>
548
549         * tree-sra.c (scalarize_use): Create another temporary with the proper
550         type for signed types in the use_all && !is_output bitfield case.
551
552 2008-12-06  Steven Bosscher  <steven@gcc.gnu.org>
553
554         PR rtl-optimization/36365
555         * df-core.c (df_worklist_dataflow_overeager): Remove.
556         (df_worklist_dataflow): Don't call it, use double-queue only.
557         * params.def (PARAM_DF_DOUBLE_QUQUQ_THRESHOLD_FACTOR): Remove.
558
559 2008-12-06  Jakub Jelinek  <jakub@redhat.com>
560
561         PR middle-end/38428
562         * tree-ssa-operands.c (get_expr_operands) <case BIT_FIELD_REF>: Set
563         gimple_set_has_volatile_ops if the BIT_FIELD_REF is volatile.
564
565 2008-12-07  Ben Elliston  <bje@au.ibm.com>
566
567         * gthr-single.h (__gthread_once): Adjust prototype to match all
568         other gthreads models.
569
570 2008-12-06  Jakub Jelinek  <jakub@redhat.com>
571
572         * config/i386/i386.c (override_options): Use CPU_AMDFAM10
573         instead of PROCESSOR_AMDFAM10 for barcelona's schedule.
574
575         PR middle-end/38422
576         * fold-const.c (fold_unary) <CASE_CONVERT>: Don't convert MULT_EXPR
577         operands to mult_type if it isn't narrower than op0's type.
578
579 2008-12-06  Jan Hubicka  <jh@suse.cz>
580             Jakub Jelinek <jakub@redhat.com>
581
582         PR tree-optimization/38074
583         * cgraphbuild.c (compute_call_stmt_bb_frequency): Fix handling of 0
584         entry frequency.
585         * predict.c (combine_predictions_for_bb): Ignore predictor predicting
586         in both dirrection for first match heuristics.
587         (tree_bb_level_predictions): Disable noreturn heuristic when there
588         is no returning path.
589
590 2008-12-05  Bernd Schmidt  <bernd.schmidt@analog.com>
591
592         PR rtl-optimization/38272
593         * reload1.c (choose_reload_regs): Keep reload_spill_index correct
594         in all cases.
595
596 2008-12-05  Jakub Jelinek  <jakub@redhat.com>
597
598         PR c++/35336
599         * c-pretty-print.c (pp_c_postfix_expression): Handle BIT_FIELD_REF.
600         (pp_c_expression): Likewise.
601
602 2008-12-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
603
604         PR c/38416
605         * c-parser.c (struct c_token): Make pragma_kind 8 bits.
606
607 2008-12-05  Jakub Jelinek  <jakub@redhat.com>
608
609         PR middle-end/37248
610         * fold-const.c (make_bit_field_ref): Change bitpos and bitsize
611         arguments to HOST_WIDE_INT.  If type has different signedness
612         than unsignedp or different precision from bitsize, create
613         the right type for BIT_FIELD_REF and cast to type.
614         (fold_truthop): Change first_bit and end_bit to HOST_WIDE_INT.
615
616         Revert:
617         2008-03-05  Richard Guenther  <rguenther@suse.de>
618         PR c++/35336
619         * fold-const.c (fold_truthop): Remove code generating
620         BIT_FIELD_REFs of structure bases.
621         (fold_binary): Likewise.
622         (make_bit_field_ref): Remove.
623         (optimize_bit_field_compare): Remove.
624         (all_ones_mask_p): Remove.
625
626 2008-12-05  Jakub Jelinek  <jakub@redhat.com>
627
628         * tree-sra.c (sra_explode_bitfield_assignment): Always
629         call unsigned_type_for, if the precision is higher than
630         needed, call build_nonstandard_integer_type.
631
632         PR debug/38367
633         * function.c (assign_parm_find_stack_rtl): If promoted_mode
634         is wider than DECL_MODE, adjust MEM_OFFSET (stack_parm) for
635         big endian.
636
637         PR middle-end/38338
638         * builtins.c (expand_builtin_apply_args): Put before parm_birth_insn
639         only if internal_arg_pointer is a non-virtual pseudo.
640
641 2008-12-05  Joseph Myers  <joseph@codesourcery.com>
642
643         * config/rs6000/rs6000.md (move_from_CR_gt_bit): Enable for
644         TARGET_HARD_FLOAT && !TARGET_FPRS, not TARGET_E500.
645         * config/rs6000/spe.md (e500_cr_ior_compare): Likewise.
646
647 2008-12-05  Jakub Jelinek  <jakub@redhat.com>
648
649         PR tree-optimization/37716
650         * gimplify.c (gimplify_expr): Allow COND_EXPR if
651         gimplify_ctxp->allow_rhs_cond_expr.
652
653 2008-12-05  Uros Bizjak  <ubizjak@gmail.com>
654
655         * config/alpha/alpha.c (alpha_fold_vector_minmax): Create
656         VIEW_CONVERT_EXPR to convert output to long_integer_type_node.
657
658         (alpha_emit_conditional_branch): Do not generate direct branch
659         for UNORDERED comparisons.
660
661 2008-12-05  Andreas Schwab  <schwab@suse.de>
662
663         * config/rs6000/linux-unwind.h (frob_update_context): Check for
664         NULL lr.
665
666 2008-12-05  Jakub Jelinek  <jakub@redhat.com>
667
668         PR c/38408
669         * fold-const.c (fold_checksum_tree): Change buf type to union
670         tree_node.
671
672 2008-12-05  Sebastian Pop  <sebastian.pop@amd.com>
673
674         PR bootstrap/38262
675         * Makefile.in (LIBS): Remove GMPLIBS, CLOOGLIBS and PPLLIBS.
676         (BACKENDLIBS): New.
677         (cc1-dummy, cc1): Add BACKENDLIBS, remove GMPLIBS.
678
679 2008-12-05  Ben Elliston  <bje@au.ibm.com>
680
681         * c-parser.c (c_parser_enum_specifier): Initialise ident_loc and
682         comma_loc.
683         (c_parser_initelt): Initialise des_loc and ellipsis_loc.
684
685 2008-12-04  Eric Botcazou  <ebotcazou@adacore.com>
686             Gary Funck  <gary@intrepid.com>
687
688         * cse.c (lookup_as_function): Delete mode frobbing code.
689         (equiv_constant): Re-implement it there for SUBREGs.
690
691 2008-12-04  Richard Guenther  <rguenther@suse.de>
692
693         PR middle-end/36509
694         * Makefile.in (tree-ssa-alias-warnings.o): Remove.
695         (tree-ssa-structalias.o): Remove errors.h dependency.
696         (tree-ssa-reassoc.o): Likewise.
697         * tree-ssa-reassoc.c: Do not include errors.h.
698         * tree-ssa-alias-warnings.c: Remove.
699         * tree-ssa-alias.c (compute_may_aliases): Remove call to
700         strict_aliasing_warning_backend.
701         * tree-ssa-structalias.c (emit_pointer_definition): New function.
702         (emit_alias_warning): Likewise.
703         (set_uids_in_ptset): Warn for clear cases of type-punning.
704         * tree-inline.c (remap_gimple_op_r): Preserve TREE_NO_WARNING
705         on INDIRECT_REFs.
706
707 2008-12-04  Eric Botcazou  <ebotcazou@adacore.com>
708
709         * cse.c (equiv_constant): Fix pasto.
710
711 2008-12-04  Nick Clifton  <nickc@redhat.com>
712
713         * config/stormy16/stormy16.md: Remove extraneous spaces and quotes.
714         * config/stormy16/stormy16.c: Remove extraneous spaces and fix up
715         formatting of quotes.
716
717 2008-12-04  Jakub Jelinek  <jakub@redhat.com>
718
719         PR middle-end/38371
720         * fold-const.c (fold_checksum_tree): Allow modification of
721         TYPE_NEXT_VARIANT.
722
723 2008-12-03  Jakub Jelinek  <jakub@redhat.com>
724
725         PR middle-end/38360
726         * tree-ssa-ccp.c (ccp_fold_builtin): Bail out if the builtin doesn't
727         have the right number of arguments.
728
729 2008-12-03  Richard Guenther  <rguenther@suse.de>
730
731         PR middle-end/36326
732         * gimplify.c (is_gimple_mem_or_call_rhs): Remove work-around for
733         non-BLKmode types.
734
735 2008-12-03  Tomas Bily  <tbily@suse.cz>
736
737         PR middle-end/38250
738         * tree-loop-distribution.c (build_size_arg): New function.
739         (generate_memset_zero): Checks if dr_analyze_innermost succeed.
740         Reorganized generating of stmts.
741         * testsuite/gcc.dg/tree-ssa/pr38250.c: New file.
742         * tree-data-ref.c (dr_analyze_innermost): Returns bool.
743         Indicate if analysis succeed.
744         * tree-data-ref.h (dr_analyze_innermost): Returns bool.
745         * tree-predcom.c (valid_initializer_p, find_looparound_phi):
746         Uses new definition of dr_analyze_innermost.
747
748 2008-12-03  Ben Elliston  <bje@au.ibm.com>
749
750         * tree-ssa-pre.c (do_regular_insertion): Initialise edoubleprime.
751
752 2008-12-03  Jakub Jelinek  <jakub@redhat.com>
753
754         PR tree-optimization/37716
755         * tree-sra.c (sra_build_assignment): For scalar bitfield SRC construct
756         all the needed operations as trees and gimplify_assign it to dst.
757
758         PR target/37610
759         * configure.ac (gcc_cv_readelf): Look for readelf.
760         (gcc_cv_as_cfi_advance_working): Check for working
761         cfi advances with code alignment factor > 1.
762         (HAVE_GAS_CFI_DIRECTIVE): Don't define if cfi advances
763         don't work properly.
764         * configure: Regenerated.
765
766 2008-12-03  Eric Botcazou  <ebotcazou@adacore.com>
767             Jakub Jelinek  <jakub@redhat.com>
768             Andrew Pinski  <andrew_pinski@playstation.sony.com>
769
770         PR rtl-optimization/38281
771         * combine.c (distribute_notes): When invoking SET_INSN_DELETED on i2,
772         set it to NULL_RTX afterwards.
773
774         * emit-rtl.c (set_insn_deleted): Fix formatting.
775
776 2008-12-02  Richard Sandiford  <rdsandiford@googlemail.com>
777
778         * config/mips/mips.c (mips_expand_builtin): Fix the mode of the
779         error return value.
780         * config/mips/mips.md (IMOVE32): New mode iterator.
781         (movsi): Generalize with IMOVE32.
782         (*movsi_internal): Likewise.
783         (*mov<mode>_mips16): Likewise.
784         (*lwxs): Likewise.
785
786 2008-12-02  Nathan Sidwell  <nathan@codesourcery.com>
787             Maxim Kuvyrkov  <maxim@codesourcery.com>
788
789         * config/m68k/lb1sf68.asm (PICCALL, PICJUMP): Use GOT instead of
790         PC-relative addressing when compiling for uclinux PIC.
791         (__cmpdf_internal, __cmpsf_internal): Hide.
792         (__cmpdf, __cmpsf): Use PIC call sequence.
793
794 2008-12-02  Andreas Tobler  <a.tobler@schweiz.org>
795             Jack Howarth <howarth@bromo.med.uc.edu>
796
797         * config/i386/t-darwin64: Add m32 multilib support.
798
799 2008-12-02  Jack Howarth  <howarth@bromo.med.uc.edu>
800
801         * testsuite/gcc.dg/darwin-comm.c: Expand to darwin10 and later.
802
803 2008-12-02  Jakub Jelinek  <jakub@redhat.com>
804
805         PR middle-end/38343
806         * builtins.c (fold_builtin_memory_op): Convert len to sizetype
807         before using it in POINTER_PLUS_EXPR.
808
809 2008-12-02  Richard Guenther  <rguenther@suse.de>
810
811         PR tree-optimization/38359
812         * fold-const.c (fold_binary): Fold -1 >> x to -1 only for
813         non-negative x.
814
815 2008-12-02  Martin Jambor  <mjambor@suse.cz>
816
817         PR middle-end/37861
818         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not check
819         for INDIRECT_REFs.
820         (forward_propagate_addr_into_variable_array_index): Check that the
821         offset is not computed from a MULT_EXPR, use is_gimple_assign rather
822         than the gimple code directly.
823
824 2008-12-02  Ben Elliston  <bje@au.ibm.com>
825
826         * config/spu/float_disf.c (__floatdisf): Prototype.
827         * config/spu/float_unsdisf.c (__float_undisf): Likewise.
828         * config/spu/float_unssidf.c (__float_unssidf): Constify cast.
829         * config/spu/float_unsdidf.c (__float_unsdidf): Likewise.
830
831 2008-12-02  DJ Delorie  <dj@redhat.com>
832
833         * config/stormy16/stormy16.h (INCOMING_FRAME_SP_OFFSET): Negate.
834         (DWARF_CIE_DATA_ALIGNMENT): Define.
835
836         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout):
837         Invert add/sub for INCOMING_FRAME_SP_OFFSET.
838         (xstormy16_expand_prologue): Likewise.
839         (xstormy16_expand_builtin_va_start): Likewise.
840         (xstormy16_gimplify_va_arg_expr): Likewise.
841
842 2008-12-02  Jakub Jelinek  <jakub@redhat.com>
843
844         PR middle-end/38343
845         * builtins.c (expand_builtin_mempcpy_args): Handle COMPOUND_EXPRs
846         potentially returned from folding memcpy.
847         (expand_builtin_stpcpy_args): Similarly for folding strcpy.
848         (fold_builtin_2): Handle BUILT_IN_STPCPY if result is ignored.
849
850 2008-12-02  Danny Smith  <dannysmith@users.sourceforge.net>
851
852         PR target/38054
853         * config/i386/winnt.c (i386_pe_encode_section_info): Condition stdcall
854         decoration of function RTL names here on Ada language.
855
856 2008-12-01  Vladimir Makarov  <vmakarov@redhat.com>
857
858         PR rtl-optimization/38280
859         * ira-build.c (loop_is_inside_p, regno_allocno_order_compare_func,
860         ira_rebuild_regno_allocno_list): New functions.
861         (regno_allocnos): New static variable.
862         (remove_unnecessary_allocnos): Allocate/deallocate regno_allocnos.
863         Call ira_rebuild_regno_allocno_list.
864
865 2008-12-01  David Daney  <ddaney@caviumnetworks.com>
866             Adam Nemet  <anemet@caviumnetworks.com>
867
868         * config/mips/linux64.h (DRIVER_SELF_SPECS): Add
869         LINUX_DRIVER_SELF_SPECS.
870
871 2008-12-01  Vladimir Makarov  <vmakarov@redhat.com>
872
873         PR rtl-optimization/37514
874         * reload1.c (reload_as_needed): Invalidate reg_last_reload
875         from previous insns.
876
877 2008-12-01  Jakub Jelinek  <jakub@redhat.com>
878
879         PR c++/38348
880         * c-omp.c (c_finish_omp_for): Only transform pointer
881         ++ or -- into MODIFY_EXPR if second argument is non-NULL.
882
883         PR rtl-optimization/38245
884         * tree-vrp.c (abs_extent_range): New function.
885         (extract_range_from_binary_expr): Compute range
886         for *_DIV_EXPR even if vr1 is VR_VARYING, VR_ANTI_RANGE
887         or includes zero or if vr1 is VR_RANGE and op0 has some
888         other range.
889
890 2008-12-01  Uros Bizjak  <ubizjak@gmail.com>
891
892         PR middle-end/37908
893         * config/alpha/alpha.c (alpha_split_atomic_op): Properly handle NAND
894         case by calculating ~(new_reg & val) instead of (~new_reg & val).
895         * config/alpha/sync.md (sync_nand<mode>): Change insn RTX
896         to (not:I48MODE (and:I48MODE (...))).
897         (sync_old_nand<mode>): Ditto.
898         (sync_new_nand<mode>): Ditto.
899
900 2008-12-01  Nick Clifton  <nickc@redhat.com>
901
902         * config/stormy16/stormy16.md (CARRY_REG): New constant.
903         Replace uses of the "y" register class with direct references to
904         the CARRY_REG register.
905         * config/stormy16/stormy16.c: Replace clobbers of a BImode scratch
906         register with clobbers of the carry register.
907         (xstormy16_secondary_reload_class): Do not return CARRY_REGS.
908         (xstormy16_split_cbranch): Remove redundant carry parameter.
909         (xstormy16_expand_arith): Likewise.
910         * config/stormy16/stormy16.h (enum reg_class): Remove CARRY_REGS.
911         (IRA_COVER_CLASSES, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
912         REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
913         (CARRY_REGNUM): Define.
914         * config/stormy16/stormy16-protos.h (xstormy16_split_cbranch):
915         Update prototype.
916         (xstormy16_expand_arith): Likewise.
917
918 2008-12-01  Chen Liqin  <liqin.chen@sunplusct.com>
919
920         * config/score/score.h (IRA_COVER_CLASSES): Define.
921
922 2008-11-30  Eric Botcazou  <ebotcazou@adacore.com>
923
924         PR target/38287
925         * config/sparc/sparc.md (divsi3 expander): Remove constraints.
926         (divsi3_sp32): Add new alternative with 'K' for operand #2.
927         (cmp_sdiv_cc_set): Factor common string.
928         (udivsi3_sp32): Add new alternative with 'K' for operand #2.
929         Add TARGET_V9 case.
930         (cmp_udiv_cc_set): Factor common string.
931
932 2008-11-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
933
934         PR middle-end/38283
935         * varasm.c (emutls_finish): Fix common registration.
936
937 2008-11-29  Jakub Jelinek  <jakub@redhat.com>
938
939         PR target/29987
940         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
941
942 2008-11-29  David Edelsohn  <edelsohn@gnu.org>
943
944         * config/rs6000/rs6000.c (rs6000_emit_sync): Remove support for
945         operand wrapped in NOT.  Emit NAND as (ior (not X) (not Y)).
946         (rs6000_split_atomic_op): Emit NAND as (ior (not X) (not Y)).
947         * config/rs6000/sync.md (sync_nand<mode>): Represent NAND in RTL.
948         Call rs6000_emit_sync with CODE=NOT and unmodified operands.
949         Ignore sub-word case for now.
950         (sync_nand<mode>_internal): Represent NAND in RTL.
951         (sync_old_nand<mode): Same.
952         (sync_old_name<mode>_internal): Same.
953         (sync_new_nand<mode>): Same.
954         (sync_new_nand<mode>_internal): Same.
955         (sync_boolcshort_internal): Expect NAND.
956
957 2008-11-28  Richard Guenther  <rguenther@suse.de>
958
959         PR tree-optimization/37955
960         PR tree-optimization/37742
961         * tree-vect-transform.c (vectorizable_store): Remove assert for
962         compatible aliases.
963         (vectorizable_load): Likewise.
964
965 2008-11-27  Richard Guenther  <rguenther@suse.de>
966
967         * tree-ssa-structalias.c (intra_create_variable_infos): Make
968         a constraint for the static chain parameter.
969
970 2008-11-27  Bernd Schmidt  <bernd.schmidt@analog.com>
971
972         * config/bfin/bfin.opt (micplb): New option.
973         * config/bfin/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Set it.
974         * config/bfin/bfin-protos.h (WA_INDIRECT_CALLS,
975         ENABLE_WA_INDIRECT_CALLS): New macros.
976         * config/bfin/bfin.c (bfin_cpus): Add WA_INDIRECT_CALLS to
977         all 54x CPUs.
978         (indirect_call_p): New function.
979         (workaround_speculation): Handle anomaly 05-00-0426 when
980         ENABLE_WA_INDIRECT_CALLS is true.
981         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
982         __WORKAROUND_INDIRECT_CALLS if ENABLE_WA_INDIRECT_CALLS.
983         * doc/invoke.texi (Blackfin Options): Document -micplb.
984
985 2008-11-26  DJ Delorie  <dj@redhat.com>
986
987         * config/m32c/mov.md ("extendhipsi2"): New.
988
989         * config/m32c/bitops.md (bset_qi): Add memsym_operand predicate.
990
991         * config/m32c/bitops.md (andhi3_24, iorhi3_24): Don't prefer HL class.
992         * config/m32c/mov.md (zero_extendqihi2): Likewise.
993
994 2008-11-26  Adam Nemet  <anemet@caviumnetworks.com>
995
996         * config/mips/mips.md (clear_hazard): Rename to
997         clear_hazard_<mode>.  Use mode-specific addition.
998         (clear_cache): Rename gen_clear_hazard to gen_clear_hazard_si
999         or gen_clear_hazard_di depending on the size of Pmode.
1000
1001 2008-11-26  DJ Delorie  <dj@redhat.com>
1002
1003         * configure.ac: Test m32c-elf-gas for .loc.
1004         * configure: Likewise.
1005
1006 2008-11-26  Janis Johnson  <janis187@us.ibm.com>
1007
1008         PR testsuite/28870
1009         * doc/sourcebuild.texi (Test Directives): Add dg-timeout and
1010         dg-timeout-factor.
1011
1012 2008-11-26  Uros Bizjak  <ubizjak@gmail.com>
1013
1014         * config/i386/sync.md (memory_barrier_nosse): Disable also for
1015         TARGET_64BIT.  Remove special asm template for TARGET_64BIT case.
1016         (memory_barrier): Do not generate memory_barrier_nosse instruction
1017         for TARGET_64BIT.
1018         * config/i386/sse.md (*sse2_mfence): Also enable for TARGET_64BIT.
1019
1020 2008-11-26  Fredrik Unger  <fred@tree.se>
1021
1022         * config/soft-fp/floatuntisf.c (__floatuntisf): Correct
1023         function name from __floatundisf.
1024         * config/soft-fp/fixdfti.c (__fixdfti): Correct argument type to
1025         DFtype.
1026
1027 2008-11-25  Daniel Berlin  <dberlin@dberlin.org>
1028             Richard Guenther  <rguenther@suse.de>
1029
1030         PR tree-optimization/37869
1031         * tree-ssa-structalias.c (struct constraint_graph): Remove
1032         pt_used and number_incoming members.
1033         (build_pred_graph): Do not allocate them.
1034         (condense_visit): Do not use them.
1035         (label_visit): Likewise.
1036         (free_var_substitution_info): Do not free them.
1037
1038 2008-11-25  Vladimir Makarov  <vmakarov@redhat.com>
1039
1040         * doc/invoke.texi (ira-max-loops-num): Change semantics.
1041
1042         * ira-int.h (struct ira_loop_tree_node): New member to_remove_p.
1043
1044         * ira-color.c (allocno_spill_priority): New function.
1045         (remove_allocno_from_bucket_and_push, push_allocno_to_spill):
1046         Print more info about the spilled allocno.
1047         (push_allocnos_to_stack): Use allocno_spill_priority.  Add more
1048         checks on bad spill.
1049
1050         * ira-build.c (loop_node_to_be_removed_p): Remove.
1051         (loop_compare_func, mark_loops_for_removal): New functions.
1052         (remove_uneccesary_loop_nodes_from_loop_t): Use member
1053         to_remove_p.
1054         (remove_unnecessary_allocnos): Call mark_loops_for_removal.
1055
1056         * ira.c (ira): Don't change flag_ira_algorithm.
1057
1058         * params.def (ira-max-loops-num): Change the value.
1059
1060 2008-11-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
1061
1062         * config/m68k/m68k.md (extendsidi2, extendsidi2_mem): Merge, clean up.
1063         Disable unsupported alternative for ColdFire,
1064         add new alternative that ColdFire can handle.
1065
1066 2008-11-25  Eric Botcazou  <ebotcazou@adacore.com>
1067
1068         * regrename.c (merge_overlapping_regs): Add registers artificially
1069         defined at the top of the basic block to the set of live ones just
1070         before the first insn.
1071
1072 2008-11-25  H.J. Lu  <hongjiu.lu@intel.com>
1073             Joey Ye  <joey.ye@intel.com>
1074
1075         PR middle-end/37843
1076         * config/i386/i386.c (ix86_function_ok_for_sibcall): Return
1077         false if we need to align the outgoing stack.
1078         (ix86_update_stack_boundary): Check parm_stack_boundary.
1079
1080 2008-11-25  Richard Guenther  <rguenther@suse.de>
1081
1082         PR middle-end/38151
1083         PR middle-end/38236
1084         * tree-ssa-alias.c (struct alias_info): Remove written_vars.
1085         Remove dereferenced_ptrs_store and dereferenced_ptrs_load
1086         in favor of dereferenced_ptrs.
1087         (init_alias_info): Adjust.
1088         (delete_alias_info): Likewise.
1089         (compute_flow_insensitive_aliasing): Properly
1090         include all aliased variables.
1091         (update_alias_info_1): Use dereferenced_ptrs.
1092         (setup_pointers_and_addressables): Likewise.
1093         (get_smt_for): Honor ref-all pointers and pointers with known alias
1094         set properly.
1095         * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers.
1096
1097 2008-11-25  Uros Bizjak  <ubizjak@gmail.com>
1098
1099         PR target/38254
1100         * config/i386/sync.md (memory_barrier_nosse): New insn pattern.
1101         (memory_barrier): Generate memory_barrier_nosse insn for !TARGET_SSE2.
1102
1103 2008-11-24  Maxim Kuvyrkov  <maxim@codesourcery.com>
1104
1105         * config/m68k/m68k.md (cmpdi): Use (scratch) instead of pseudo.
1106
1107 2008-11-24  Richard Sandiford  <rdsandiford@googlemail.com>
1108
1109         * config/mips/mips.h (ASM_OUTPUT_DEBUG_LABEL): Define.
1110
1111 2008-11-24  Maxim Kuvyrkov  <maxim@codesourcery.com>
1112
1113         PR target/35018
1114         * config/m68k/m68k.md (ok_for_coldfire, enabled): New attributes.
1115         (addsi_lshrsi_31): Add ColdFire-friendly alternatives.
1116
1117 2008-11-24  Uros Bizjak  <ubizjak@gmail.com>
1118
1119         * config/i386/i386.md (UNSPECV_CMPXCHG): Rename from
1120         UNSPECV_CMPXCHG_[12].
1121         * config/i386/sync.md: Use UNSPECV_CMPXCHG instead of
1122         UNSPECV_CMPXCHG_[12].
1123
1124         PR target/36793
1125         * config/i386/sync.md (memory_barrier): New expander.
1126
1127 2008-11-24  Jakub Jelinek  <jakub@redhat.com>
1128
1129         PR middle-end/37135
1130         * dse.c (find_shift_sequence): Optimize extraction from a constant.
1131
1132 2008-11-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1133
1134         * pa.c (function_arg): Revert 2008-10-26 change.
1135
1136 2008-11-23  Helge Deller  <deller@gmx.de>
1137
1138         * pa/linux-atomic.c (EBUSY): Define if not _LP64.
1139         (__kernel_cmpxchg): Return -EBUSY if the kernel LWS call
1140         succeeded and lws_ret is not equal to oldval.
1141
1142 2008-11-23  Kaz Kojima  <kkojima@gcc.gnu.org>
1143
1144         * config/sh/sh.md (consttable_4): Call mark_symbol_refs_as_used.
1145
1146 2008-11-22  Andreas Schwab  <schwab@suse.de>
1147
1148         * varasm.c (default_file_start): Suppress ASM_APP_OFF also with
1149         -dA and -dP.
1150
1151 2008-11-22  Adam Nemet  <anemet@caviumnetworks.com>
1152
1153         * config/mips/mips.md (rdhwr): Rename to rdhwr_synci_step_<mode>.
1154         Use constant 1 as the operand.
1155         * config/mips/mips.c (mips_expand_synci_loop): Make INC Pmode.
1156         Rename gen_rdhwr to gen_rdhwr_synci_step_si or
1157         gen_rdhwr_synci_step_di depending on the size of Pmode.
1158
1159 2008-11-22  Uros Bizjak  <ubizjak@gmail.com>
1160
1161         PR target/38222
1162         * config/i386/i386.md (SWI248): New mode iterator.
1163         (SWI32): Remove mode iterator.
1164         (popcount<mode>2): Rename from popcounthi2, popcountsi2 and
1165         popcounthi2 insn patterns. Macroize pattern using SWI248 mode
1166         iterator.  Generate popcnt mnemonic without mode extensions
1167         for Darwin x86 targets.
1168         (*popcount<mode>2_cmp): Ditto.
1169         (*popcountsi2_cmp_zext): Generate popcnt mnemonic without mode
1170         extensions for Darwin x86 targets.
1171
1172 2008-11-22  Eric Botcazou  <ebotcazou@adacore.com>
1173
1174         * config/sparc/sparc.c (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define
1175         only if HAVE_AS_SPARC_UA_PCREL is defined.
1176
1177 2008-11-22  Richard Sandiford  <rdsandiford@googlemail.com>
1178
1179         * ira-costs.c (find_allocno_class_costs): Work out the maximum
1180         allocno_costs value of the classees with the lowest total_costs
1181         value.  Use this to set ALLOCNO_COVER_CLASS_COST here...
1182         (setup_allocno_cover_class_and_costs): ...rather than here.
1183         Use the ALLOCNO_COVER_CLASS_COST for all registers in the
1184         preferred class.
1185
1186 2008-11-22  Jakub Jelinek  <jakub@redhat.com>
1187
1188         PR middle-end/37323
1189         * builtins.c (expand_builtin_apply_args): Emit sequence before
1190         parm_birth_insn instead of after entry_of_function's first insn.
1191
1192         PR middle-end/37316
1193         * function.c (assign_parm_remove_parallels): Pass
1194         data->passed_type as third argument to emit_group_store.
1195
1196         PR target/37170
1197         * final.c (mark_symbol_refs_as_used): New function.
1198         * output.h (mark_symbol_refs_as_used): New prototype.
1199         * config/s390/s390.c (s390_mark_symbol_ref_as_used): Removed.
1200         (s390_output_pool_entry): Use mark_symbol_refs_as_used.
1201         * config/arm/arm.md (consttable_4): Likewise.
1202
1203         PR target/37880
1204         * doc/invoke.texi: Adjust wording of -mcmodel=medium description.
1205
1206 2008-11-21  Jakub Jelinek  <jakub@redhat.com>
1207
1208         PR middle-end/38200
1209         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
1210         propagate x = &a into *x = b if conversion from b to a's type is
1211         useless.
1212
1213 2008-11-21  Eric Botcazou  <ebotcazou@adacore.com>
1214
1215         * caller-save.c (insert_one_insn): Take into account REG_INC notes
1216         for the liveness computation of the new insn.
1217
1218 2008-11-21  DJ Delorie  <dj@redhat.com>
1219
1220         * config/stormy16/stormy16.md (movqi_internal, movhi_internal):
1221         Moves to/from below100 space (W) can only use r0-r7.
1222
1223 2008-11-21  Paolo Carlini  <paolo.carlini@oracle.com>
1224
1225         PR other/38214
1226         * doc/invoke.texi (Optimization Options): Fix typo.
1227
1228 2008-11-21  H.J. Lu  <hongjiu.lu@intel.com>
1229             Xuepeng Guo  <xuepeng.guo@intel.com>
1230
1231         * config.gcc (extra_headers): For x86 and x86-64, remove
1232         gmmintrin.h, add immintrin.h and avxintrin.h.
1233
1234         * config/i386/gmmintrin.h: Renamed to ...
1235         * config/i386/avxintrin.h: This.  Issue an error if
1236         _IMMINTRIN_H_INCLUDED is undedined.
1237
1238         * config/i386/immintrin.h: New.
1239
1240 2008-11-21  Jakub Jelinek  <jakub@redhat.com>
1241
1242         PR target/38208
1243         * reload1.c (eliminate_regs_in_insn): For trunc_int_for_mode use
1244         mode of PLUS, not mode of the eliminated register.
1245
1246 2008-11-21  Uros Bizjak  <ubizjak@gmail.com>
1247
1248         * config/i386/mmx.md (mmx_nand<mode>3): Rename to mmx_andnot<mode>3.
1249         * config/i386/sse.md (avx_nand<mode>3): Rename to avx_andnot<mode>3.
1250         (<sse>_nand<mode>3): Rename to <sse>_andnot<mode>3.
1251         (sse2_nand<mode>3): Rename to sse2_andnot<mode>3.
1252         (*sse_nand<mode>3): Rename to *sse_andnot<mode>3.
1253         (*avx_nand<mode>3): Rename to *avx_andnot<mode>3.
1254         (*nand<mode>3): Rename to *andnot<mode>3.
1255         (*nandtf3): rename to *andnottf3.
1256         * config/i386/i386.c (bdesc_args) [IX86_BUILTIN_PANDN]:
1257         Use CODE_FOR_mmx_andnotv2si3.
1258         [IX86_BUILTIN_ANDNPS]: Use CODE_FOR_sse_andnotv4sf3.
1259         [IX86_BUILTIN_ANDNPD]: Use CODE_FOR_sse2_andnotv2df3.
1260         [IX86_BUILTIN_PANDN128]: Use CODE_FOR_sse2_andnotv2di3.
1261         [IX86_BUILTIN_ANDNPS256]: Use CODE_FOR_avx_andnotv8sf3.
1262         [IX86_BUILTIN_ANDNPD256]: Use CODE_FOR_avx_andnotv4df3.
1263
1264 2008-11-21  Uros Bizjak  <ubizjak@gmail.com>
1265
1266         PR middle-end/37908
1267         * config/ia64/ia64.c (ia64_expand_atomic_op): Properly handle NAND
1268         case by calculating ~(new_reg & val) instead of (~new_reg & val).
1269         * config/ia64/sync.md (sync_nand<mode>): Change insn RTX
1270         to (not:IMODE (and:IMODE (...))).
1271         (sync_old_nand<mode>): Ditto.
1272         (sync_new_nand<mode>): Ditto.
1273
1274 2008-11-20  Joseph Myers  <joseph@codesourcery.com>
1275
1276         * config/arm/thumb2.md (thumb2_casesi_internal,
1277         thumb2_casesi_internal_pic): Use earlyclobber for scratch operand 4.
1278
1279 2008-11-20  Andreas Krebbel  <krebbel1@de.ibm.com>
1280
1281         * gcc/config/s390/s390.c (s390_expand_atomic): Adjust QI/HI atomic
1282         nand to the changed 4.4 semantic.
1283
1284 2008-11-20  Jakub Jelinek  <jakub@redhat.com>
1285
1286         PR middle-end/29215
1287         * builtins.c (SLOW_UNALIGNED_ACCESS): Define if not defined.
1288         (fold_builtin_memory_op): Handle even the case where just one
1289         of src and dest is an address of a var decl component, using
1290         TYPE_REF_CAN_ALIAS_ALL pointers.  Remove is_gimple_min_invariant
1291         and readonly_data_expr src check.
1292         * tree-ssa-sccvn.c (DFS): Use clear_and_done_ssa_iter to shut
1293         up warnings.
1294
1295         PR rtl-optimization/36998
1296         * dwarf2out.c (stack_adjust_offset): Add cur_args_size and cur_offset
1297         arguments.  Handle sp = reg and (set (foo) (mem (pre_inc (reg sp)))).
1298         (compute_barrier_args_size_1, dwarf2out_frame_debug_expr): Adjust
1299         stack_adjust_offset callers.
1300         (dwarf2out_stack_adjust): Likewise.  Handle insns in annulled
1301         branches properly.
1302         (compute_barrier_args_size): Handle insns in annulled branches
1303         properly.
1304
1305 2008-11-20  Uros Bizjak  <ubizjak@gmail.com>
1306
1307         PR target/38151
1308         * config/i386/i386.c (classify_argument) [integer mode size <= 64bit]:
1309         Handle cases when integer argument crosses argument register boundary.
1310
1311 2008-11-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1312
1313         PR bootstrap/33100
1314         * config.gcc (i[34567]86-*-solaris2*): Don't include
1315         i386/t-crtstuff here.
1316         Move extra_parts, i386/t-sol2 in tmake_file to libgcc/config.host.
1317         * config/i386/t-sol2: Move to libgcc/config/i386.
1318
1319 2008-11-20  Samuel Thibault  <samuel.thibault@ens-lyon.org>
1320
1321         PR driver/21706
1322         * tlink.c: Include "libiberty.h".
1323         (initial_cwd): Change type into char *.
1324         (tlink_init): Call getpwd instead of getcwd.
1325
1326 2008-11-19  Zdenek Dvorak  <ook@ucw.cz>
1327
1328         PR rtl-optimization/32283
1329         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Use type of the base
1330         of the induction variable to decide whether it may wrap.
1331         * tree-ssa-loop-ivopts.c (rewrite_use_compare): Emit the
1332         initialization of the bound before the loop.
1333         * simplify-rtx.c (simplify_binary_operation_1): Add two
1334         simplifications regarding AND.
1335         (simplify_plus_minus): Only fail if no simplification is possible.
1336         * loop-iv.c (simple_rhs_p): Consider reg + reg and reg << cst simple.
1337
1338 2008-11-20  Jakub Jelinek  <jakub@redhat.com>
1339
1340         PR c++/36631
1341         * gimplify.c (gimplify_call_expr): Defer most of the cannot inline
1342         checking until GIMPLE lowering.
1343         * gimple-low.c (check_call_args): New function.
1344         (lower_stmt) <case GIMPLE_CALL>: Call it.
1345
1346 2008-11-19  Adam Nemet  <anemet@caviumnetworks.com>
1347
1348         * config/mips/mips.c (mips_gimplify_va_arg_expr): Use -rsize
1349         with the same type as the first operand of the AND expression.
1350
1351 2008-11-19  Vladimir Makarov  <vmakarov@redhat.com>
1352
1353         PR bootstrap/37859
1354         * ira-int.h (struct ira_loop_tree_node): New member
1355         entered_from_non_parent_p.
1356
1357         * ira-color.c (print_loop_title): Print loop bbs.
1358
1359         * ira-emit.c (entered_from_non_parent_p,
1360         setup_entered_from_non_parent_p): New functions.
1361         (not_modified_p): Rename to store_can_be_removed_p.  Check there
1362         is no side entries.
1363         (generate_edge_moves): Use store_can_be_removed_p instead of
1364         not_modified_p.
1365         (ira_emit): Call setup_entered_from_non_parent_p.
1366
1367         * ira-build.c (copy_info_to_removed_store_destinations):
1368         Accumulate CALL_FREQ, CALL_CROSSED_NUM, and
1369         ALLOCNO_EXCESS_PRESSURE_POINTS_NUM.
1370         (ira_flattening): Don't CHECK MEM_OPTIMIZED_DEST[_P], always
1371         update all accumulated attributes.
1372
1373 2008-11-19  Vladimir Makarov  <vmakarov@redhat.com>
1374
1375         PR bootstrap/37790
1376         * ira-int.h (ira_copy_allocno_live_range_list,
1377         ira_merge_allocno_live_ranges, ira_allocno_live_ranges_intersect_p,
1378         ira_finish_allocno_live_range_list): New prototypes.
1379         (ira_allocno_live_ranges_intersect_p,
1380         ira_pseudo_live_ranges_intersect_p): Remove.
1381
1382         * ira-conflicts.c (ira_allocno_live_ranges_intersect_p,
1383         ira_pseudo_live_ranges_intersect_p): Rename to
1384         allocnos_have_intersected_live_ranges_p and
1385         pseudos_have_intersected_live_ranges_p.  Move them from here to ...
1386
1387         * ira-color.c: ... here
1388         (coalesced_allocno_conflict_p): Use
1389         allocnos_have_intersected_live_ranges_p.
1390         (coalesced_allocnos_living_at_program_points,
1391         coalesced_allocnos_live_at_points_p,
1392         set_coalesced_allocnos_live_points): Remove.
1393         (slot_coalesced_allocnos_live_ranges,
1394         slot_coalesced_allocno_live_ranges_intersect_p,
1395         setup_slot_coalesced_allocno_live_ranges): New.
1396         (coalesce_spill_slots): Use ranges of coalesced allocnos.
1397         (ira_sort_regnos_for_alter_reg): Use
1398         allocnos_have_intersected_live_ranges_p.
1399         (ira_reuse_stack_slot): Use
1400         pseudos_have_intersected_live_ranges_p.
1401
1402         * global.c (pseudo_for_reload_consideration_p): Check
1403         flag_ira_share_spill_slots too.
1404
1405         * ira-build.c (copy_allocno_live_range_list): Rename to
1406         ira_copy_allocno_live_range_list.  Make it external.
1407         (merge_ranges): Rename to ira_merge_allocno_live_ranges.  Make it
1408         external.
1409         (ira_allocno_live_ranges_intersect_p): New.
1410         (ira_finish_allocno_live_range_list): New.
1411         (finish_allocno): Use it.
1412         (remove_unnecessary_allocnos): Use ira_merge_allocno_live_ranges.
1413         (copy_info_to_removed_store_destinations): Ditto.  Use
1414         ira_copy_allocno_live_range_list.
1415         (ira_flattening): Use ira_merge_allocno_live_ranges.
1416
1417         * ira.c (too_high_register_pressure_p): New function.
1418         (ira): Switch off sharing spill slots if the pressure is too high.
1419
1420 2008-11-19  Richard Guenther  <rguenther@suse.de>
1421
1422         * tree.c (build2_stat): Allow non-POINTER_PLUS_EXPRs with
1423         non-sizetype offsets if their precision matches that of the pointer.
1424         * expr.c (expand_expr_real_1): Always sign-extend the offset
1425         operand of a POINTER_PLUS_EXPR.
1426
1427 2008-11-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1428
1429         * config.gcc: Unobsolete mips-sgi-irix[56]*.
1430         (mips-sgi-irix[56]*): No need to use fixproto.
1431
1432 2008-11-19  Maxim Kuvyrkov  <maxim@codesourcery.com>
1433             Paul Brook  <paul@codesourcery.com>
1434
1435         * config/m68k/lb1sf68.asm: Add GNU-stack annotation to avoid
1436         executable stack.
1437
1438 2008-11-19  Maxim Kuvyrkov  <maxim@codesourcery.com>
1439
1440         * config/m68k/m68k.c (sched_attr_op_type): Handle all CONSTs.
1441
1442 2008-11-19  Razya Ladelsky  <razya@il.ibm.com>
1443
1444         PR target/38156
1445         * tree-parloops.c (loop_parallel_p): NULL vect_dump.
1446         (separate_decls_in_region): Create shared struct even when there
1447         are only reductions.
1448
1449 2008-11-19  Hariharan Sandanagobalane <hariharan@picochip.com>
1450
1451         * config/picochip/picochip.c (headers): Remove an unnecessary
1452         header file.
1453
1454 2008-11-19  Andrew Stubbs  <ams@codesourcery.com>
1455
1456         PR target/36133
1457         * config/m68k/m68k.h (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY): New defines.
1458         * config/m68k/m68k.c (notice_update_cc): Set cc_status properly for
1459         shift instructions.
1460         * config/m68k/m68k.md: Adjust all conditional branches that use the
1461         carry and overflow flags so they understand CC_OVERFLOW_UNUSABLE.
1462
1463 2008-11-18  Uros Bizjak  <ubizjak@gmail.com>
1464
1465         PR target/37362
1466         * config/mips/mips.md (move_doubleword_fpr<mode>): Check that "high"
1467         is a register or zero operand in the correct mode before generating
1468         mtch1 insn or a register operand in the correct mode before generating
1469         mfch1 insn.
1470         (mtch1<mode>): Correct operand 1 predicate to reg_or_0_operand.
1471
1472 2008-11-18  Adam Nemet  <anemet@caviumnetworks.com>
1473
1474         * config.gcc (mips*-sde-elf*): Handle mipsisa64r2*.
1475         (mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Add new cases to
1476         mipsisa*-*-elf*.  Handle mipsisa64r2*.
1477         * config/mips/sde.h (LINK_SPEC): Handle -mips64r2.
1478         * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
1479         mips64r2.
1480         (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64.
1481         * config/mips/t-sde (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
1482         mips64r2.
1483         (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64.  Add mips64r2/mips16.
1484         Fix mips16 if mips64 or mips64r2 are multilib defaults.
1485         * config/mips/t-sdemtk (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
1486         mips64r2.
1487
1488 2008-11-18  Jakub Jelinek  <jakub@redhat.com>
1489
1490         PR target/38130
1491         * config/i386/i386.md (allocate_stack_worker_32,
1492         allocate_stack_worker_64): Don't use match_dup between input and
1493         output operand.
1494         (allocate_stack): Adjust gen_stack_worker_{32,64} caller.
1495         * config/i386/i386.c (ix86_expand_prologue): Likewise.
1496
1497 2008-11-18  Kai Tietz  <kai.tietz@onevision.com>
1498
1499         * config/i386/t-cygming (SHLIB_LINK): Make sure that $(SHLIB_MAP).def
1500         is forced when trying to do a symbol link for it.
1501
1502 2008-11-17  Adam Nemet  <anemet@caviumnetworks.com>
1503
1504         * expmed.c (extract_bit_field_1): Also use a temporary and
1505         convert_extracted_bit_field when the conversion from ext_mode to
1506         the target mode requires explicit truncation.
1507
1508 2008-11-17  Richard Sandiford  <rdsandiford@googlemail.com>
1509
1510         * config/mips/mips.h (REG_ALLOC_ORDER): Put accumulators first.
1511         Tweak formatting.
1512         * config/mips/mips.c (mips_ira_cover_classes): Don't use accumulator
1513         registers when not optimizing.
1514
1515 2008-11-17  Richard Sandiford  <rdsandiford@googlemail.com>
1516
1517         * config/mips/mips.md (*mul_acc_si): Remove middle alternative
1518         and its associated define_split.  Expose the all-d alternative
1519         to the register allocator, but mark it with "?".  Mark the first
1520         alternative with "*?*?".
1521         (*mul_sub_si): Likewise.
1522         (*mul_acc_si_r3900): New pattern.
1523
1524 2008-11-17  Jakub Jelinek  <jakub@redhat.com>
1525
1526         PR middle-end/38140
1527         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If
1528         propagating x = &a into *x = b, add a cast if not useless
1529         type conversion or don't optimize if another stmt would be
1530         needed.
1531
1532 2008-11-17  Uros Bizjak  <ubizjak@gmail.com>
1533
1534         PR middle-end/37908
1535         * optabs.c (expand_sync_operation): Properly handle NAND case
1536         by calculating ~(t1 & val) instead of (~t1 & val).
1537         * builtins.c (expand_builtin_sync_operation): Warn for changed
1538         semantics in NAND builtins.
1539         * c.opt (Wsync-nand): New warning option.  Describe -Wsync-nand.
1540
1541         * doc/invoke.texi (Warning options): Add Wsync-nand.
1542         * doc/extend.texi (Atomic Builtins) [__sync_fetch_and_nand]: Correct
1543         __sync_fetch_and_nand builtin operation in the example.  Add a note
1544         about changed semantics in GCC 4.4.
1545         [__sync_nand_and_fetch]: Correct __sync_nand_and_fetch builtin
1546         operation in the example.  Add a note about changed semantics in
1547         GCC 4.4.
1548
1549 2008-11-16  Jan Hubicka  <jh@suse.cz>
1550
1551         * cgraph.c (cgraph_function_body_availability): Fix test of externally
1552         visible.
1553
1554 2008-11-16  Joshua Kinard  <kumba@gentoo.org>
1555
1556         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=r1[0246]000
1557         to -mips4.
1558
1559 2008-11-16  Richard Sandiford  <rdsandiford@googlemail.com>
1560
1561         PR target/38052
1562         * config/mips/mips.c (mips_cfun_call_saved_reg_p)
1563         (mips_cfun_might_clobber_call_saved_reg_p): New functions,
1564         split out from...
1565         (mips_save_reg_p): ...here.  Always consult TARGET_CALL_SAVED_GP
1566         rather than call_really_used_regs when handling $gp.
1567
1568 2008-11-16  Richard Sandiford  <rdsandiford@googlemail.com>
1569
1570         PR target/38052
1571         * config/mips/mips.c (machine_function): Update the comment
1572         above global_pointer.
1573         (mips_global_pointer): Use INVALID_REGNUM rather than 0 to indicate
1574         that a function doesn't need a global pointer.
1575         (mips_current_loadgp_style): Update accordingly.
1576         (mips_restore_gp): Likewise.
1577         (mips_output_cplocal): Likewise.
1578         (mips_expand_prologue): Likewise.
1579
1580 2008-11-16  Eric Botcazou  <ebotcazou@adacore.com>
1581
1582         * config/sparc/sparc.c (function_arg_vector_value): Remove 'base_mode'
1583         parameter.  Use DImode for computing the number of registers.
1584         (function_arg): Adjust for above change.
1585         (function_value): Likewise.
1586
1587 2008-11-15  Zdenek Dvorak  <ook@ucw.cz>
1588
1589         PR tree-optimization/37950
1590         * tree-flow-inline.h (memory_partition): Return NULL when aliases were
1591         not computed for the current function.
1592
1593 2008-11-15  Jakub Jelinek  <jakub@redhat.com>
1594
1595         PR target/38123
1596         * config/i386/i386.c (ix86_gimplify_va_arg): Don't share valist between
1597         gpr and other COMPONENT_REFs.
1598
1599 2008-11-15  Richard Guenther  <rguenther@suse.de>
1600
1601         PR tree-optimization/38051
1602         * tree-ssa-alias.c (update_alias_info_1): Manually find
1603         written variables.
1604
1605 2008-11-15  Joshua Kinard  <kumba@gentoo.org>
1606
1607         * doc/invoke.texi (-mfix-r10000): Document.
1608         * config/mips/mips.opt (mfix-r10000): New option.
1609         * config/mips/mips-protos.h (mips_output_sync_loop): Declare.
1610         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Use %?.
1611         (MIPS_COMPARE_AND_SWAP_12): Likewise.
1612         (MIPS_SYNC_OP): Likewise.
1613         (MIPS_SYNC_OP_12): Likewise.
1614         (MIPS_SYNC_OLD_OP_12): Likewise.
1615         (MIPS_SYNC_NEW_OP_12): Likewise.
1616         (MIPS_SYNC_OLD_OP): Likewise.
1617         (MIPS_SYNC_NAND): Likewise.
1618         (MIPS_SYNC_OLD_NAND): Likewise.
1619         (MIPS_SYNC_EXCHANGE): Likewise.
1620         (MIPS_SYNC_EXCHANGE_12): Likewise.
1621         (MIPS_SYNC_NEW_OP): Likewise, using %~ to fill branch-likely
1622         delay slots.
1623         (MIPS_SYNC_NEW_NAND): Likewise.
1624         * config/mips/mips.c (mips_print_operand_punctuation): Handle '~'.
1625         (mips_init_print_operand_punct): Treat '~' as a punctuation character.
1626         (mips_output_sync_loop): New function.
1627         (mips_override_options): Make -march=r10000 imply -mfix-r10000.
1628         Make -mfix-r10000 require branch-likely instructions.
1629         * config/mips/sync.md (sync_compare_and_swap<mode>): Use
1630         mips_output_sync_loop.
1631         (compare_and_swap_12): Likewise.
1632         (sync_add<mode>): Likewise.
1633         (sync_<optab>_12): Likewise.
1634         (sync_old_<optab>_12): Likewise.
1635         (sync_new_<optab>_12): Likewise.
1636         (sync_nand_12): Likewise.
1637         (sync_old_nand_12): Likewise.
1638         (sync_new_nand_12): Likewise.
1639         (sync_sub<mode>): Likewise.
1640         (sync_old_add<mode>): Likewise.
1641         (sync_old_sub<mode>): Likewise.
1642         (sync_new_add<mode>): Likewise.
1643         (sync_new_sub<mode>): Likewise.
1644         (sync_<optab><mode>): Likewise.
1645         (sync_old_<optab><mode>): Likewise.
1646         (sync_new_<optab><mode>): Likewise.
1647         (sync_nand<mode>): Likewise.
1648         (sync_old_nand<mode>): Likewise.
1649         (sync_new_nand<mode>): Likewise.
1650         (sync_lock_test_and_set<mode>): Likewise.
1651         (test_and_set_12): Likewise.
1652
1653 2008-11-15  Eric Botcazou  <ebotcazou@adacore.com>
1654
1655         * gcc.c (cc1_options): Fix comment.
1656
1657 2008-11-15  Jakub Jelinek  <jakub@redhat.com>
1658
1659         PR c++/37561
1660         * c-typeck.c (build_unary_op): Don't call get_unwidened.  Use
1661         argtype instead of result_type.
1662
1663 2008-11-14  Adam Nemet  <anemet@caviumnetworks.com>
1664
1665         * ira-int.h (struct ira_loop_tree_node): Improve comments for
1666         subloop_next/next and subloops/childen fields.
1667
1668 2008-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1669
1670         * config/spu/spu-elf.h (STANDARD_STARTFILE_PREFIX_2): Disable default.
1671         (STANDARD_INCLUDE_DIR): Redefine to "/include".
1672         (LOCAL_INCLUDE_DIR): Undefine.
1673         * config/spu/t-spu-elf (NATIVE_SYSTEM_HEADER_DIR): Define.
1674
1675 2008-11-14  Vladimir Makarov  <vmakarov@redhat.com>
1676
1677         PR rtl-optimization/37397
1678         * ira-int.h (struct ira_allocno): New member bad_spill_p.
1679         (ALLOCNO_BAD_SPILL_P): New macro.
1680
1681         * ira-color.c (push_allocnos_to_stack): Check ALLOCNO_BAD_SPILL_P.
1682
1683         * ira-build.c (ira_create_allocno): Initialize ALLOCNO_BAD_SPILL_P.
1684         (create_cap_allocno, propagate_allocno_info,
1685         remove_unnecessary_allocnos): Set up or update ALLOCNO_BAD_SPILL_P.
1686         (update_bad_spill_attribute): New function.
1687         (ira_build): Call it.
1688
1689         * ira-costs.c (record_reg_classes): Set up ALLOCNO_BAD_SPILL_P.
1690
1691 2008-11-14  Jakub Jelinek  <jakub@redhat.com>
1692
1693         PR tree-optimization/38104
1694         * gimplify.c (gimple_regimplify_operands): Add referenced vars
1695         before calling mark_symbols_for_renaming, not after it.
1696
1697 2008-11-14  Kaz Kojima  <kkojima@gcc.gnu.org>
1698
1699         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Revert last change.
1700         (OVERRIDE_OPTIONS): Likewise.
1701
1702 2008-11-14  Maxim Kuvyrkov  <maxim@codesourcery.com>
1703             Andrew Stubbs  <ams@codesourcery.com>
1704             Gunnar Von Boehn  <gunnar@genesi-usa.com>
1705
1706         PR target/36134
1707         * config/m68k/m68k.md (addsi3_5200): Add a new alternative preferring
1708         the shorter LEA insn over ADD.L where possible.
1709
1710 2008-11-14  Thomas Schwinge  <tschwinge@gnu.org>
1711
1712         * configure.ac (gcc_cv_libc_provides_ssp): Also consider GNU/Hurd
1713         systems, which are assumend to always provide SSP-support in glibc.
1714         Also consider GNU/kFreeBSD, GNU/kNetBSD systems in the `*-*-linux*'
1715         case.
1716         * configure: Regenerate.
1717
1718 2008-11-14  Jakub Jelinek  <jakub@redhat.com>
1719
1720         PR middle-end/36125
1721         * function.c (gimplify_parameters): For callee copies parameters,
1722         move TREE_ADDRESSABLE flag from the PARM_DECL to the local copy.
1723
1724 2008-11-13  Thomas Schwinge  <tschwinge@gnu.org>
1725
1726         PR target/28102
1727         * config.gcc (*-*-gnu*): Move Alpha parts into the `alpha*-*-gnu*',
1728         x86 parts into the `i[34567]86-*-linux*' and parts that are
1729         independent of the processor architecture into the `*-*-linux*' cases.
1730         (*-*-linux*): Consider `linux.opt' only for Linux-based configurations.
1731         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Redefine.
1732         (TARGET_OS_CPP_BUILTINS, LINK_SPEC): Don't redefine.
1733         [TARGET_LIBC_PROVIDES_SSP] (TARGET_THREAD_SSP_OFFSET): Undefine.
1734         * config/gnu.h (NO_IMPLICIT_EXTERN_C): Don't redefine.
1735         (HURD_TARGET_OS_CPP_BUILTINS): Don't define, but instead...
1736         (LINUX_TARGET_OS_CPP_BUILTINS): Redefine.
1737
1738 2008-11-13  Ruan Beihong  <ruanbeihong@gmail.com>
1739
1740         * config/mips/loongson.md (<u>div<mode>3, <u>mod<mode>3): New patterns.
1741         * config/mips/loongson2ef.md (ls2_imult): Handle imul3nc.
1742         (ls2_idiv): Likewise idiv3.
1743         (ls2_prefetch): New reservation.
1744         * config/mips/mips.h (ISA_HAS_PREFETCH): Add TARGET_LOONGSON_2EF.
1745         * config/mips/mips.md (type): Add imul3nc and idiv3.
1746         (length): Handle idiv3.
1747         (any_mod): New code_iterator.
1748         (u): Handle MOD and UMOD.
1749         (mul<mode>3): Generate mul<mode>3_mul3_ls2ef on Loongson targets.
1750         (prefetch): Handle TARGET_LOONGSON_2EF.
1751
1752 2008-11-13  Jakub Jelinek  <jakub@redhat.com>
1753
1754         PR c++/27017
1755         * dwarf2out.c (prune_unused_types_walk_local_classes): New function.
1756         (prune_unused_types_walk): Call it for non-perennial local classes.
1757         Set die_mark to 2 if recursing on children.  If die_mark is 1 on
1758         entry, just set it to 2 and recurse on children, don't walk attributes
1759         again.
1760
1761 2008-11-13  Martin Michlmayr  <tbm@cyrius.com>
1762
1763         * c-common.c (warn_about_parentheses): Add missing whitespace
1764         in warning.
1765
1766 2008-11-13  Paul Brook  <paul@codesourcery.com>
1767
1768         * doc/invoke.texi: Document --fix-cortex-m3.
1769         * config/arm/arm.c (arm_override_options): Set fix_cm3_ldrd if
1770         Cortex-M3 cpu is selected.
1771         (output_move_double): Avoid overlapping base register and first
1772         destination register when fix_cm3_ldrd.
1773         * config/arm/arm.opt: Add mfix-cortex-m3-ldrd.
1774
1775 2008-11-13  Jakub Jelinek  <jakub@redhat.com>
1776
1777         PR bootstrap/38100
1778         * gimple.h (gimple_range_check_failed): Remove prototype.
1779         * gimple.c (gimple_check_failed): Don't check GCC_VERSION
1780         in guarding #if.
1781         (gimple_range_check_failed): Removed.
1782
1783 2008-11-13  Andrew Haley  <aph@redhat.com>
1784
1785         PR bootstrap/38088
1786         * mcf.c (CAP_INFINITY): Use HOST_WIDEST_INT maximum, not GCC specific
1787         __LONG_LONG_MAX__.
1788
1789 2008-11-12  Jakub Jelinek  <jakub@redhat.com>
1790
1791         PR c++/36478
1792         Revert:
1793         2007-05-07  Mike Stump  <mrs@apple.com>
1794         * doc/invoke.texi (Warning Options): Document that -Wempty-body
1795         also checks for and while statements in C++.
1796
1797 2008-11-12  Dodji Seketeli  <dodji@redhat.com>
1798
1799         PR debug/27574
1800         * cgraph.h: New abstract_and_needed member to struct cgraph_node.
1801         * cgraphunit.c (cgraph_analyze_functions): Flag abstract functions
1802         - which clones are reachable - as "abstract and needed".
1803         * cgraph.c (cgraph_release_function_body):  If a node is
1804         "abstract and needed", do not release its DECL_INITIAL() content
1805         that will be needed to emit debug info.
1806
1807 2008-11-12  Steve Ellcey  <sje@cup.hp.com>
1808
1809         PR target/27880
1810         * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Use this macro
1811         to set HAVE_GETIPINFO.
1812         * aclocal.m4: Include ../config/unwind_ipinfo.m4.
1813         * configure: Regenerate.
1814         * config.in: Regenerate.
1815
1816 2008-11-12  Jack Howarth  <howarth@bromo.med.uc.edu>
1817
1818         PR bootstrap/38010
1819         * gcc/config.gcc: Use darwin9.h on darwin10 as well.
1820
1821 2008-11-12  Jakub Jelinek  <jakub@redhat.com>
1822
1823         Revert:
1824         2008-10-21  Jakub Jelinek  <jakub@redhat.com>
1825         * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
1826
1827 2008-11-12  Jason Merrill  <jason@redhat.com>
1828
1829         PR c++/38007
1830         * c-common.c (c_common_signed_or_unsigned_type): Remove C++
1831         special casing.
1832
1833 2008-11-12  Anatoly Sokolov  <aesok@post.ru>
1834
1835         * config/avr/avr.c (avr_mcu_t): Add atmega16hvb, atmega32hvb,
1836         atmega4hvd, atmega8hvd, atmega64c1, atmega64m1, atmega16u4 and
1837         atmega32u6 devices.
1838         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
1839         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1840
1841 2008-11-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1842
1843         * gcc/config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Remove
1844         packed-stack special handling.
1845         (FRAME_ADDR_RTX): Add definition.
1846
1847 2008-11-12  Jakub Jelinek  <jakub@redhat.com>
1848
1849         PR target/35366
1850         * fold-const.c (native_encode_string): New function.
1851         (native_encode_expr): Use it for STRING_CST.
1852
1853 2008-11-12  DJ Delorie  <dj@redhat.com>
1854
1855         * config/m32c/cond.md (cond_to_int peephole2): Don't eliminate the
1856         insns if the intermediate value will be used later.
1857
1858 2008-11-12  Andreas Schwab  <schwab@suse.de>
1859
1860         * config/m68k/m68k.c (print_operand): Mask off extra extension
1861         bits when writing out the representation of real values.
1862
1863 2008-11-12  Ira Rosen  <irar@il.ibm.com>
1864
1865         PR tree-optimization/38079
1866         * tree-vect-analyze.c (vect_analyze_data_refs): Replace dump_file
1867         with vect_dump.
1868
1869 2008-11-12  Jakub Jelinek  <jakub@redhat.com>
1870
1871         PR c++/35334
1872         * c-pretty-print.c (pp_c_complex_expr): New function.
1873         (pp_c_postfix_expression) <case COMPLEX_EXPR>: Call it.
1874
1875         PR target/35366
1876         * expr.c (expand_expr_addr_expr_1): If EXP needs bigger alignment
1877         than INNER and INNER is a constant, forcibly align INNER as much
1878         as needed.
1879
1880 2008-11-11  Richard Sandiford  <rdsandiford@googlemail.com>
1881
1882         * cse.c (fold_rtx): Remove redundant gen_rtx_CONST.
1883
1884 2008-11-11  Richard Sandiford  <rdsandiford@googlemail.com>
1885
1886         PR rtl-optimization/37363
1887         * simplify-rtx.c (simplify_plus_minus): Don't create
1888         (const (minus ...)) expresisons.
1889
1890 2008-11-11  Eric Botcazou  <ebotcazou@adacore.com>
1891
1892         * ira-lives.c (process_bb_node_lives): Restore EH_RETURN_DATA_REGNO
1893         handling.
1894
1895 2008-11-10  Catherine Moore  <clm@codesourcery.com>
1896
1897         * config.gcc (mips64vrel-*-elf*): Include the tm_file
1898         prior to vr.h.
1899         * config/mips/linux.h (LINUX_DRIVER_SELF_SPECS): New.
1900         (BASE_DRIVER_SELF_SPECS): Remove.
1901         (DRIVER_SELF_SPECS): New definition.
1902         * config/mips/elfoabi.h: (DRIVER_SELF_SPECS): Include
1903         BASE_DRIVER_SELF_SPECS.
1904         * config/mips/sde.h: Likewise.
1905         * config/mips/iris6.h: Likewise.
1906         * config/mips/vr.h: Likewise.
1907         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): New.
1908
1909 2008-11-10  Vladimir Makarov  <vmakarov@redhat.com>
1910
1911         PR rtl-optimizations/37948
1912         * ira-int.h (struct ira_allocno_copy): New member constraint_p.
1913         (ira_create_copy, ira_add_allocno_copy): New parameter.
1914
1915         * ira-conflicts.c (process_regs_for_copy): New parameter.  Pass it
1916         to ira_add_allocno_copy.
1917         (process_reg_shuffles, add_insn_allocno_copies): Pass a new
1918         parameter to process_regs_for_copy.
1919         (propagate_copies): Pass a new parameter to ira_add_allocno_copy.
1920         Fix typo in passing second allocno to ira_add_allocno_copy.
1921
1922         * ira-color.c (update_conflict_hard_regno_costs): Use head of
1923         coalesced allocnos list.
1924         (assign_hard_reg): Ditto.  Check that assigned allocnos are not in
1925         the graph.
1926         (add_ira_allocno_to_bucket): Rename to add_allocno_to_bucket.
1927         (add_ira_allocno_to_ordered_bucket): Rename to
1928         add_allocno_to_ordered_bucket.
1929         (push_ira_allocno_to_stack): Rename to push_allocno_to_stack.  Use
1930         head of coalesced allocnos list.
1931         (push_allocnos_to_stack): Remove calculation of ALLOCNO_TEMP.
1932         Check that it is aready calculated.
1933         (push_ira_allocno_to_spill): Rename to push_ira_allocno_to_spill.
1934         (setup_allocno_left_conflicts_num): Use head of coalesced allocnos
1935         list.
1936         (coalesce_allocnos): Do extended coalescing too.
1937
1938         * ira-emit.c (add_range_and_copies_from_move_list): Pass a new
1939         parameter to ira_add_allocno_copy.
1940
1941         * ira-build.c (ira_create_copy, ira_add_allocno_copy): Add a new
1942         parameter.
1943         (print_copy): Print copy origination too.
1944
1945         * ira-costs.c (scan_one_insn): Use alloc_pref for load from
1946         equivalent memory.
1947
1948 2008-11-10  Kaz Kojima  <kkojima@gcc.gnu.org>
1949
1950         PR rtl-optimization/37514
1951         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set
1952         flag_ira_share_spill_slots to 2 if it's already non-zero.
1953         (OVERRIDE_OPTIONS): Clear flag_ira_share_spill_slots if
1954         flag_ira_share_spill_slots is 2.
1955
1956 2008-11-10  Kevin Buettner  <kevinb@redhat.com>
1957
1958         * config/m32c/prologue.md (prologue_enter_16): Set FB to SP - 2.
1959         (prologue_enter_32): Set FB to SP - 4.
1960
1961 2008-11-10  DJ Delorie  <dj@redhat.com>
1962
1963         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add ImB
1964         constraint for single-bit-clear in lower byte of HI constant, vs
1965         Imb which just ignores the upper byte.
1966         * config/m32c/predicates.md (m32c_1mask8_operand): Use it.
1967         * config/m32c/bitops.md (andhi3_16, andhi3_24): Use it.
1968         (iorhi3_16): Check for single bit set, not single bit clear.
1969
1970 2008-11-10  Janis Johnson  <janis187@us.ibm.com>
1971
1972         * doc/sourcebuild.texi (Torture Tests): Fix formatting for bullets.
1973
1974         * doc/sourcebuild.texi (Torture Tests): Fix formatting in example.
1975
1976 2008-11-10  Eric Botcazou  <ebotcazou@adacore.com>
1977
1978         * calls.c (store_unaligned_arguments_into_pseudos): Deal only with
1979         values living in memory and use more precise alignment information.
1980
1981 2008-11-10  Jakub Jelinek  <jakub@redhat.com>
1982
1983         PR middle-end/35314
1984         * tree-mudflap.c (mf_build_check_statement_for): Split then_block
1985         after __mf_check call if the call must end a bb.
1986
1987 2008-11-10  Ralph Loader  <suckfish@ihug.co.nz>
1988
1989         PR middle-end/37807
1990         PR middle-end/37809
1991         * combine.c (force_to_mode): Do not process vector types.
1992
1993         * rtlanal.c (nonzero_bits1): Do not process vector types.
1994         (num_sign_bit_copies1): Likewise.
1995
1996 2008-11-09  Thomas Schwinge  <tschwinge@gnu.org>
1997
1998         * config/i386/gnu.h: Add copyright and licensing header.
1999         * config/gnu.h: Likewise.
2000
2001 2008-11-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2002
2003         * fwprop.c (fwprop_done): Call df_remove_problem.
2004
2005 2008-11-07  Sebastian Pop  <sebastian.pop@amd.com>
2006
2007         PR middle-end/37379
2008         * tree-scalar-evolution.c (instantiate_scev_1): Return
2009         chrec_dont_know for VL_EXP_CLASS_P.
2010
2011 2008-11-06  Uros Bizjak  <ubizjak@gmail.com>
2012
2013         * reg-stack.c (reg_to_stack): Add missing braces in memset
2014         size calculation.
2015
2016 2008-11-06  Andrew Stubbs  <ams@codesourcery.com>
2017
2018         * config/arm/bpabi.h (PROFILE_HOOK): New undef.
2019         (NO_PROFILE_COUNTERS): New define.
2020
2021 2008-11-06  David Edelsohn  <edelsohn@gnu.org>
2022
2023         PR target/26397
2024         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Define.
2025
2026 2008-11-06  Kazu Hirata  <kazu@codesourcery.com>
2027
2028         PR target/35574
2029         * config/sparc/constraints.md (D): New.
2030         * config/sparc/predicates.md (const_double_or_vector_operand): New.
2031         * config/sparc/sparc.c (sparc_extra_constraint_check): Handle the
2032         'D' constraint.
2033         * config/sparc/sparc.md (*movdf_insn_sp32_v9, *movdf_insn_sp64):
2034         Use the 'D' constraint in addition to 'F' in some alternatives.
2035         (DF splitter): Generalize for V64mode.
2036         * doc/md.texi (SPARC): Document the 'D' constraint.
2037
2038 2008-11-06  Uros Bizjak  <ubizjak@gmail.com>
2039
2040         * reg-stack.c (reg_to_stack): Generate +QNaN using real_nan.
2041
2042 2008-11-06  Ben Elliston  <bje@au.ibm.com>
2043
2044         * gcc.c: Remove ancient comment about a bug in Sun cc.
2045
2046 2008-11-05  Janis Johnson  <janis187@us.ibm.com>
2047
2048         * doc/sourcebuild.texi (Torture Tests): Add ADDITIONAL_TORTURE_OPTIONS.
2049
2050 2008-11-06  Ben Elliston  <bje@au.ibm.com>
2051
2052         * config/rs6000/rs6000.c (rs6000_override_options): Comment fix.
2053
2054 2008-11-06  Ben Elliston  <bje@au.ibm.com>
2055
2056         * config/rs6000/rs6000.opt (mwarn-cell-microcode): Improve option
2057         description.
2058
2059 2008-11-05  Hans-Peter Nilsson  <hp@axis.com>
2060
2061         PR target/38016
2062         * config/cris/cris.c (cris_order_for_addsi3): Test for !REG_P, not
2063         just MEM_P.
2064
2065 2008-11-05  Martin Jambor  <mjambor@suse.cz>
2066
2067         PR middle-end/37861
2068         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't turn
2069         pointer arithmetics into array_ref if the array is accessed
2070         through an indirect_ref.
2071
2072 2008-11-05  Richard Guenther  <rguenther@suse.de>
2073
2074         PR middle-end/37742
2075         * tree-ssa.c (useless_type_conversion_p_1): Check different restrict
2076         qualified pointer conversion before stripping qualifiers.
2077         * gimplify.c (create_tmp_from_val): Use correctly qualified type.
2078         * tree-flow.h (may_propagate_address_into_dereference): Declare.
2079         * tree-ssa-ccp.c (may_propagate_address_into_dereference): New
2080         function.
2081         (ccp_fold): Use it.
2082         * tree-ssa-forwprop.c (rhs_to_tree): Remove useless conversions,
2083         properly canonicalize binary ops.
2084         (forward_propagate_addr_expr_1): Use
2085         may_propagate_address_into_dereference.
2086
2087 2008-11-05  Uros Bizjak  <ubizjak@gmail.com>
2088
2089         PR middle-end/37286
2090         * reg-stack.c (subst_stack_regs_pat) [MINUS, DIV, MULT, PLUS]:
2091         Initialize uninitialized input registers with a NaN.
2092
2093 2008-11-05  Tobias Grosser  <grosser@fim.uni-passau.de>
2094
2095         PR middle-end/37833
2096
2097         * graphite.c (scan_tree_for_params): Add POINTER_PLUS_EXPR.
2098
2099 2008-11-05  Tobias Grosser  <grosser@fim.uni-passau.de>
2100
2101         PR middle-end/37943
2102
2103         * graphite.c (scopdet_basic_block_info): Fix loops with multiple
2104         exits and conditions.
2105         * testsuite/gcc.dg/graphite/pr37943.c: New.
2106
2107 2008-11-04  Jakub Jelinek  <jakub@redhat.com>
2108             Andrew Pinski  <andrew_pinski@playstation.sony.com>
2109
2110         PR c/35430
2111         * c-common.c (warn_for_sign_compare): For complex result_type
2112         use component's type.
2113
2114 2008-11-04  Jakub Jelinek  <jakuB@redhat.com>
2115
2116         * print-tree.c (print_node): Use code instead of TREE_CODE (node).
2117
2118         * print-tree.c (print_node): Don't print DECL_INITIAL
2119         for PARM_DECL.
2120
2121         PR c/37106
2122         * c-common.c (parse_optimize_options): Save and restore
2123         flag_strict_aliasing around decode_options call.
2124
2125 2008-11-04  Uros Bizjak  <ubizjak@gmail.com>
2126
2127         * config/i386/driver-i386.c (enum vendor_signatures): New enum.
2128         (host_detect_local_cpu): Use it instead of casted strings to
2129         compare vendor signatures.
2130
2131 2008-11-03  Mikael Pettersson  <mikpe@it.uu.se>
2132
2133         PR target/37989
2134         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Only add libgcc_s.a
2135         or libgcc_eh.a to spec if ENABLE_SHARED_LIBGCC.
2136
2137 2008-11-03  Catherine Moore  <clm@codesourcery.com>
2138
2139         * config/mips.c (mips_conditional_register_usage):  Handle the
2140         DSP control register.
2141         * doc/extend.texi: Document the DSP control register.
2142
2143 2008-11-03  Steve Ellcey <sje@cup.hp.com>
2144             Jakub Jelinek  <jakub@redhat.com>
2145
2146         * omp-low.c (expand_omp_for_generic): If iter_type has different
2147         precision than type and type is a pointer type, cast n1 and n2
2148         first to an integer type with the same precision as pointers
2149         and only afterwards to iter_type.
2150
2151 2008-11-03  Richard Sandiford  <rdsandiford@googlemail.com>
2152
2153         * config/arm/arm.md (UNSPEC_PIC_BASE): Update documentation.
2154         (UNSPEC_GOTSYM_OFF): New unspec.
2155         (pic_add_dot_plus_four): Simplify the UNSPEC_PIC_BASE operands.
2156         (pic_add_dot_plus_eight): Likewise.
2157         (tls_load_dot_plus_eight): Likewise.  Update peephole2.
2158         * config/arm/thumb2.md (pic_load_dot_plus_four): Simplify the
2159         UNSPEC_PIC_BASE operands.
2160         * config/arm/arm.c (arm_load_pic_register): Use UNSPEC_GOTSYM_OFF.
2161         (arm_output_addr_const_extra): Handle it.
2162
2163 2008-11-03  Eric Botcazou  <ebotcazou@adacore.com>
2164
2165         * config/i386/i386.c (classify_argument) <ARRAY_TYPE>: Promote partial
2166         integer class to full integer class if the offset is not word-aligned.
2167
2168 2008-11-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2169
2170         PR rtl-opt/37782
2171         * loop-doloop.c (doloop_modify): Add from_mode argument that says what
2172         mode count is in.
2173         (doloop_optimize): Update call to doloop_modify.
2174
2175 2008-11-03  Eric Botcazou  <ebotcazou@adacore.com>
2176
2177         * tree-sra.c (bitfield_overlaps_p): Fix oversight.
2178
2179 2008-11-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2180
2181         PR other/37463
2182         * configure.ac (gcc_cv_ld_ro_rw_mix): Move before
2183         gcc_cv_as_cfi_directive.
2184         (gcc_cv_as_cfi_directive) [*-*-solaris*]: Check if linker supports
2185         merging read-only and read-write sections or assembler emits
2186         read-write .eh_frame sections.
2187         * configure: Regenerate.
2188
2189 2008-11-03  Nathan Froyd  <froydnj@codesourcery.com>
2190
2191         Revert:
2192         2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
2193
2194         * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
2195         problem.
2196         (rs6000_emit_prologue): Invert logic.
2197         * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
2198         (reg:P 11) instead of match_operand.
2199         (*save_fpregs_<mode>): Likewise.
2200         (*restore_gpregs_<mode>): Likewise.
2201         (*return_and_restore_gpregs_<mode>): Likewise.
2202         (*return_and_restore_fpregs_<mode>): Likewise.
2203         * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
2204         (reg:P 11) insted of match_operand.
2205         (*restore_gpregs_spe): Likewise.
2206         (*return_and_restore_gpregs_spe): Likewise.
2207
2208 2008-11-03  Harsha Jagasia  <harsha.jagasia@amd.com>
2209
2210         PR tree-optimization/37684
2211         * gcc.dg/graphite/pr37684.c: New.
2212         * graphite.c (exclude_component_ref): New.
2213         (is_simple_operand): Call exclude_component_ref.
2214
2215 2008-11-03  Sebastian Pop  <sebastian.pop@amd.com>
2216
2217         PR tree-optimization/36908
2218         * testsuite/gcc.dg/tree-ssa/pr36908.c: New.
2219         * tree-loop-distribution.c (number_of_rw_in_rdg): New.
2220         (number_of_rw_in_partition): New.
2221         (partition_contains_all_rw): New.
2222         (ldist_gen): Do not distribute when one of the partitions
2223         contains all the memory operations.
2224
2225 2008-11-03  Sebastian Pop  <sebastian.pop@amd.com>
2226
2227         * cfghooks.c (split_block): Set BB_IRREDUCIBLE_LOOP and
2228         EDGE_IRREDUCIBLE_LOOP.
2229
2230 2008-11-03  Bernd Schmidt  <bernd.schmidt@analog.com>
2231
2232         * config/bfin/bfin.c (bfin_optimize_loop): Properly handle case
2233         where we have one entry point in the loop which isn't the head.
2234
2235 2008-11-03  Richard Guenther  <rguenther@suse.de>
2236
2237         PR middle-end/37573
2238         * tree-data-ref.c (split_constant_offset_1): Fix tuplification.
2239
2240 2008-11-03  Jakub Jelinek  <jakub@redhat.com>
2241
2242         PR middle-end/37858
2243         * passes.c (execute_one_pass): Don't look at cfun->curr_properties
2244         for ipa and simple ipa passes.
2245
2246 2008-11-02  Richard Guenther  <rguenther@suse.de>
2247
2248         PR tree-optimization/37542
2249         * tree-ssa-pre.c (fully_constant_expression): Handle more cases.
2250         * tree-ssa-sccvn.c (vn_get_expr_for): Fix typo.
2251         (vn_nary_op_lookup_stmt): Adjust for unary reference trees.
2252         (vn_nary_op_insert_stmt): Likewise.
2253         (visit_use): Likewise.
2254
2255 2008-11-02  Anatoly Sokolov  <aesok@post.ru>
2256
2257         * config/avr/avr.md (UNSPEC_SWAP): Remove constants.
2258         (*swap): Remove.
2259         (rotlqi3, *rotlqi3_4, rotlhi3, *rotlhi3_8,
2260         rotlsi3, *rotlsi3_8, *rotlsi3_16, *rotlsi3_24): New patterns.
2261         (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, ashlqi3_l_const4,
2262         ashlqi3_l_const5, ashlqi3_l_const6, lshrqi3_const4, lshrqi3_const5,
2263         lshrqi3_const6, lshrqi3_l_const4, lshrqi3_l_const4, lshrqi3_l_const6
2264         peephole2's): Replace unspec with rotate.
2265         * config/avr/avr.c (avr_rtx_costs): Add ROTATE.
2266
2267 2008-11-02  Richard Guenther  <rguenther@suse.de>
2268
2269         PR tree-optimization/37991
2270         * tree-ssa-sccvn.h (copy_vuses_from_stmt): Remove.
2271         * tree-ssa-sccvn.c (copy_vuses_from_stmt): Make static.
2272         (set_ssa_val_to): Print if the value changed.
2273         (simplify_binary_expression): Strip useless conversions.
2274
2275 2008-11-01  Hans-Peter Nilsson  <hp@axis.com>
2276
2277         PR target/37939
2278         * config/cris/cris.c (cris_rtx_costs) <MULT>: Return 0 for an ADDI
2279         operand.
2280
2281 2008-11-01  Richard Guenther  <rguenther@suse.de>
2282
2283         PR middle-end/37976
2284         * builtins.c (fold_builtin_strspn): Return a size_t.
2285         (fold_builtin_strcspn): Likewise.
2286
2287 2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
2288
2289         * config/rs6000/rs6000.c (rs6000_file_start): Output gnu
2290         attribute for struct return convention.
2291
2292 2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
2293
2294         * config/rs6000/crtsavres.asm: Really, really delete.
2295
2296 2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
2297
2298         * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
2299         problem.
2300         (rs6000_emit_prologue): Invert logic.
2301         * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
2302         (reg:P 11) instead of match_operand.
2303         (*save_fpregs_<mode>): Likewise.
2304         (*restore_gpregs_<mode>): Likewise.
2305         (*return_and_restore_gpregs_<mode>): Likewise.
2306         (*return_and_restore_fpregs_<mode>): Likewise.
2307         * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
2308         (reg:P 11) insted of match_operand.
2309         (*restore_gpregs_spe): Likewise.
2310         (*return_and_restore_gpregs_spe): Likewise.
2311
2312 2008-10-28  Luis Machado  <luisgpm@br.ibm.com>
2313
2314         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add "dumpbase" to the
2315         list of word switches that take args.
2316
2317 2008-10-30  Jakub Jelinek  <jakub@redhat.com>
2318
2319         * config/s390/s390.c (s390_mark_symbol_ref_as_used): New function.
2320         (s390_output_pool_entry): Call it through for_each_rtx.
2321
2322         PR middle-end/37730
2323         * expr.c (store_constructor): For vectors, if target is a MEM, use
2324         target's MEM_ALIAS_SET instead of elttype alias set.
2325
2326 2008-10-29  Kaz Kojima  <kkojima@gcc.gnu.org>
2327
2328         PR target/37909
2329         * config/sh/sh.c (untangle_mova): Return -1 when NEW_MOVA has
2330         no address.
2331
2332 2008-10-29  David Edelsohn  <edelsohn@gnu.org>
2333
2334         PR target/37878
2335         * config/rs6000/predicates.md (word_offset_memref_operand):
2336         Restructure code and look inside auto-inc/dec addresses.
2337
2338 2008-10-29  Steve Ellcey  <sje@cup.hp.com>
2339
2340         PR target/32277
2341         * libgcov.c ( __gcov_indirect_call_profiler): Check
2342         TARGET_VTABLE_USES_DESCRIPTORS.
2343
2344 2008-10-29  Stefan Schulze Frielinghaus  <xxschulz@de.ibm.com>
2345
2346         * config/spu/spu.h (FRAME_GROWS_DOWNWARD): Define.
2347         (INITIAL_FRAME_POINTER_OFFSET): Remove.
2348         * config/spu/spu.c (spu_initial_elimination_offset): Calculate new
2349         offset if eliminating soft frame pointer.
2350         * config/spu/spu.md (stack_protect_set, stack_protect_test)
2351         (stack_protect_test_si): Add initial machine description
2352         for Stack Smashing Protector
2353
2354 2008-10-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2355
2356         PR 11492
2357         * c-common.c (min_precision): Move to...
2358         * tree.c (tree_int_cst_min_precision): ... to here. Renamed.
2359         * tree.h (tree_int_cst_min_precision): Declare.
2360         * c-common.h (min_precision): Delete declaration.
2361         * fold-const.c (tree_binary_nonnegative_warnv_p): Handle
2362         multiplication of non-negative integer constants.
2363         * c-decl.c (check_bitfield_type_and_width): Rename min_precision to
2364         tree_int_cst_min_precision.
2365         (finish_enum): Likewise.
2366
2367 2008-10-29  Joseph Myers  <joseph@codesourcery.com>
2368
2369         PR middle-end/36578
2370         * convert.c (convert_to_real): Do not optimize conversions of
2371         binary arithmetic operations between binary and decimal
2372         floating-point types.  Consider mode of target type in determining
2373         decimal type for arithmetic.  Unless
2374         flag_unsafe_math_optimizations, do not optimize binary conversions
2375         where this may change rounding behavior.
2376         * real.c (real_can_shorten_arithmetic): New.
2377         * real.h (real_can_shorten_arithmetic): Declare.
2378
2379 2008-10-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2380
2381         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315,
2382         ENABLE_WA_05000257, ENABLE_WA_05000283, ENABLE_WA_05000315): New.
2383         * config/bfin/bfin.c (bfin_cpus): Add these workaround bits as
2384         appropriate.
2385         (must_save_p): For some workarounds, interrupts need to clobber a
2386         P register.
2387         (expand_prologue_reg_save, expand_epilogue_reg_restore): Save LC0
2388         and LC1 for WA_05000257.
2389         (expand_interrupt_handler_prologue): Add dummy read of CHIPID for
2390         WA_05000283 and WA_05000315.
2391         * config/bfin/bfin.md (UNSPEC_VOLATILE_DUMMY): New constant.
2392         (movbi): Add alternative to set CC to 1; improve code for setting
2393         CC to 0.
2394         (dummy_load): New pattern.
2395
2396 2008-10-29  Jakub Jelinek  <jakub@redhat.com>
2397
2398         PR middle-end/37870
2399         * expmed.c (extract_bit_field_1): If int_mode_for_mode returns
2400         BLKmode for non-memory, convert using a wider MODE_INT mode
2401         or through memory.
2402
2403         PR middle-end/37913
2404         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Only split bbs
2405         that haven't been removed yet.
2406
2407 2008-10-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2408
2409         * config/bfin/bfin.c (struct machine_function): New member
2410         has_loopreg_clobber.
2411         (bfin_expand_movmem): Set it when generating memcpy insns.
2412         (n_regs_saved_by_prologue, expand_prologue_reg_save,
2413         expand_epilogue_reg_restore): If we have hardware loops,
2414         memcpy insns (indicated by has_loopreg_clobber) or function
2415         calls, we need to save the loop registers.
2416
2417 2008-10-28  H.J. Lu  <hongjiu.lu@intel.com>
2418
2419         * config/i386/i386.c (core2_cost): Fix typos in comments.
2420
2421 2008-10-28  Jakub Jelinek  <jakub@redhat.com>
2422
2423         PR c/37924
2424         * combine.c (make_compound_operation): Don't call make_extraction with
2425         non-positive length.
2426         (simplify_shift_const_1): Canonicalize count even if complement_p.
2427
2428 2008-10-28  Joseph Myers  <joseph@codesourcery.com>
2429
2430         * convert.c (strip_float_extensions): Do not remove or introduce
2431         conversions between binary and decimal floating-point types.
2432
2433 2008-10-28  Jakub Jelinek  <jakub@redhat.com>
2434
2435         PR middle-end/37931
2436         * fold-const.c (distribute_bit_expr): Convert common, left and
2437         right arguments to type.
2438
2439 2008-10-28  Nick Clifton  <nickc@redhat.com>
2440
2441         * config/mn10300/mn10300.h (CALL_REALLY_USED_REGISTERS): Define.
2442         * config/mn10300/mn10300.c (fp_regs_to_save): Test the
2443         call_really_used_regs array rather than the call_used_regs array.
2444         (mn10300_get_live_callee_saved_regs, expand_prologue,
2445         expand_epilogue, output_tst): Likewise.
2446
2447 2008-10-27  Jakub Jelinek  <jakub@redhat.com>
2448
2449         PR target/37378
2450         * df-scan.c (df_bb_refs_collect): Don't handle EH_USES here.
2451         (df_get_entry_block_def_set): Neither here.
2452         (df_get_regular_block_artificial_uses): Add EH_USES registers.
2453
2454         PR tree-optimization/37879
2455         * predict.c (tree_estimate_probability): Check if last_stmt is
2456         non-NULL before dereferencing it.
2457
2458 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
2459
2460         * ira-int.h (ira_allocno): Add member updated_cover_class_cost.
2461         (ALLOCNO_UPDATED_COVER_CLASS_COST): New.
2462         (ira_fast_allocation): Remove the prototype.
2463
2464         * ira-color.c (update_copy_costs, allocno_cost_compare_func,
2465         assign_hard_reg, calculate_allocno_spill_cost): Use updated costs.
2466         (color_pass): Modify the updated costs.
2467         (ira_color): Rename to color.  Make it static.
2468         (ira_fast_allocation): Rename to fast_allocation.  Make it static.
2469         (ira_color): New function.
2470
2471         * ira-conflicts.c (process_regs_for_copy): Propagate hard reg cost
2472         change.
2473
2474         * ira-lives.c (last_call_num, allocno_saved_at_call): New
2475         variables.
2476         (set_allocno_live, clear_allocno_live, mark_ref_live,
2477         mark_ref_dead): Invalidate corresponding element of
2478         allocno_saved_at_call.
2479         (process_bb_node_lives): Increment last_call_num.  Setup
2480         allocno_saved_at_call.  Don't increase ALLOCNO_CALL_FREQ if the
2481         allocno was already saved.
2482         (ira_create_allocno_live_ranges): Initiate last_call_num and
2483         allocno_saved_at_call.
2484
2485         * ira-build.c (ira_create_allocno): Initiate
2486         ALLOCNO_UPDATED_COVER_CLASS_COST.
2487         (create_cap_allocno, propagate_allocno_info,
2488         remove_unnecessary_allocnos): Remove setting updated costs.
2489         (ira_flattening): Set up ALLOCNO_UPDATED_COVER_CLASS_COST.
2490
2491         * ira.c (ira):  Don't call ira_fast_allocation.
2492
2493         * ira-costs.c (setup_allocno_cover_class_and_costs): Don't set up
2494         updated costs.
2495
2496 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
2497
2498         PR middle-end/37813
2499         * ira-conflicts.c (process_regs_for_copy): Remove class subset check.
2500
2501         * ira-int.h (ira_hard_regno_cover_class): New.
2502
2503         * ira-lives.c (mark_reg_live, mark_reg_dead,
2504         process_bb_node_lives): Use ira_hard_regno_cover_class.
2505
2506         * ira.c (reg_class ira_hard_regno_cover_class): New global variable.
2507         (setup_hard_regno_cover_class): New function.
2508         (ira_init): Call setup_hard_regno_cover_class.
2509
2510         * ira-costs.c (cost_class_nums): Add comment.
2511         (find_allocno_class_costs): Initiate cost_class_nums.
2512         (setup_allocno_cover_class_and_costs): Check cost_class_nums.
2513
2514 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
2515
2516         PR middle-end/37884
2517         * ira-build.c (copy_live_ranges_to_removed_store_destinations):
2518         Rename to copy_info_to_removed_store_destinations.  Propagate
2519         conflict hard regs and register stack attribute.
2520
2521 2008-10-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2522
2523         PR middle-end/37316
2524         * pa.c (function_arg_padding):  Pad complex and vector types
2525         upward in 64-bit runtime.
2526         (function_arg): Use BLKmode for PARALLEL in 64-bit runtime.
2527
2528 2008-10-26  Matthias Klose  <doko@ubuntu.com>
2529
2530         * doc/install.texi: Document requirements on antlr.
2531
2532 2008-10-25  Richard Sandiford  <rdsandiford@googlemail.com>
2533
2534         * config/mips/mips.h (REG_ALLOC_ORDER): Put call-clobbered registers
2535         first.
2536
2537 2008-10-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
2538
2539         PR target/37841
2540         * function.c (locate_and_pad_parm): If FUNCTION_ARG_ADJUST_OFFSET
2541         is defined, use it to modify the constant offset.
2542
2543         * doc/tm.texi (FUNCTION_ARG_OFFSET): Document new macro.
2544
2545         * config/spu/spu.h (FUNCTION_ARG_OFFSET): New macro to move char
2546         and short arguments to the correct location as mandated by the ABI.
2547
2548 2008-10-24  Kaz Kojima  <kkojima@gcc.gnu.org>
2549
2550         PR rtl-optimization/37769
2551         * regmove.c (optimize_reg_copy_2): Update REG_INC note if needed.
2552
2553 2008-10-24  Kaz Kojima  <kkojima@gcc.gnu.org>
2554
2555         * config/sh/t-sh: Use $(MULTILIB_CFLAGS) when compiling to
2556         unwind-dw2-Os-4-200.o.
2557
2558 2008-10-24  Joseph Myers  <joseph@codesourcery.com>
2559
2560         * c-typeck.c (enum impl_conv): Remove ic_argpass_nonproto.
2561         (convert_for_assignment): Remove ic_argpass_nonproto cases.
2562
2563 2008-10-24  Jakub Jelinek  <jakub@redhat.com>
2564
2565         PR tree-optimization/36038
2566         * tree-ssa-loop-ivopts.c (add_old_iv_candidates): For pointer bases
2567         add sizetype IV with initial value zero instead of pointer type.
2568
2569 2008-10-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2570
2571         PR c/7543
2572         * value-prof.c (gimple_stringop_fixed_value): Use parentheses
2573         around bit operation.
2574         * profile.c (is_edge_inconsistent): Likewise.
2575         * fold-const.c (truth_value_p): Move from here...
2576         * tree.h (truth_value_p): ... to here.
2577         * c-tree.h (c_expr): Update description of original_code.
2578         * c-typeck.c (parser_build_unary_op): Set original_code.
2579         (parser_build_binary_op): Update call to warn_about_parentheses.
2580         * c-common.c (warn_about_parentheses): Take two additional
2581         arguments of the operands. Use a switch. Quote operators
2582         appropriately. Define macro APPEARS_TO_BE_BOOLEAN_EXPR_P.
2583         Add warning about !x | y and !x & y.
2584         * c-common.h (warn_about_parentheses): Update declaration.
2585
2586 2008-10-24  Jakub Jelinek  <jakub@redhat.com>
2587
2588         * Makefile.in (lang_checks_parallelized, check_gcc_parallelize,
2589         check_p_tool, check_p_vars, check_p_subno, check_p_comma,
2590         check_p_subwork, check_p_numbers, check_p_subdir, check_p_subdirs):
2591         New variables.
2592         (check-subtargets, check-%-subtargets, check-parallel-%): New targets.
2593         (check-%): For test targets listed in lang_checks_parallelized
2594         if -j is used and RUNTESTFLAGS doesn't specify tests to execute,
2595         run the testing in multiple make goals, possibly parallel, and
2596         afterwards run dg-extract-results.sh to merge the sum and log files.
2597
2598 2008-10-24  Richard Sandiford  <rdsandiford@googlemail.com>
2599
2600         * config/mips/mips.c (mips_canonicalize_move_class): New function.
2601         (mips_move_to_gpr_cost): Likewise.
2602         (mips_move_from_gpr_cost): Likewise.
2603         (mips_register_move_cost): Make more fine-grained.
2604
2605 2008-10-23  Tobias Grosser  <grosser@fim.uni-passau.de>
2606
2607         * graphite.c (graphite_apply_transformations): Check for
2608         -fgraphite-identity.
2609         * toplev.c (process_options): Add graphite_identity.
2610         * tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity.
2611
2612 2008-10-23  Bernd Schmidt  <bernd.schmidt@analog.com>
2613
2614         * config/bfin/bfin.c (bdesc_2arg): Add mulhisill, mulhisilh,
2615         mulhisihl and mulhisihh builtins.
2616
2617         From Jie Zhang  <jie.zhang@analog.com>
2618         * config/bfin/bfin.md (composev2hi): Put operands into vector
2619         with correct order.
2620
2621 2008-10-22  Chao-ying Fu  <fu@mips.com>
2622
2623         * config/mips/mips.opt (msmartmips): Accept -mno-smartmips.
2624
2625 2008-10-22  Bernd Schmidt  <bernd.schmidt@analog.com>
2626
2627         From Mike Frysinger  <michael.frysinger@analog.com>
2628         * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF512,
2629         BFIN_CPU_BF514, BFIN_CPU_BF516, and BFIN_CPU_BF518.
2630         * config/bfin/bfin.c (bfin_cpus[]): Add 0.0 for bf512, bf514, bf516,
2631         and bf518.  Add 0.2 for bf522, bf523, bf524, bf526, and bf527.
2632         Add 0.6 for bf533, bf532, and bf531.  Add 0.5 for bf538 and bf539.
2633         Add 0.2 for bf542, bf544, bf547, bf548, and bf549.
2634         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF512__
2635         for BFIN_CPU_BF512, __ADSPBF514__ for BFIN_CPU_BF514, __ADSPBF516__
2636         for BFIN_CPU_BF516, and __ADSPBF518__ for BFIN_CPU_BF518.  Define
2637         __ADSPBF51x__ for all of them.
2638         * config/bfin/elf.h (LIB_SPEC): Select proper linker scripts for
2639         -mcpu bf512, bf514, bf516, and bf518.
2640         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
2641         bf512-none, bf514-none, bf516-none, and bf518-none.
2642         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
2643         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
2644         * doc/invoke.texi (Blackfin Options): Document that
2645         -mcpu now accepts bf512, bf514, bf516, and bf518.
2646
2647 2008-10-22  Jakub Jelinek  <jakub@redhat.com>
2648
2649         PR middle-end/37882
2650         * fold-const.c (build_range_type): For 1 .. signed_max
2651         range call build_nonstandard_inter_type if signed_type_for
2652         returned a type with bigger precision.
2653
2654 2008-10-22  Richard Guenther  <rguenther@suse.de>
2655
2656         * tree.def (COMPLEX_TYPE): Constrain element type.
2657         * tree.c (build_complex_type): Assert that.
2658         * tree-ssa-structalias.c (could_have_pointers): Complex types
2659         cannot have pointers.
2660
2661 2008-10-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2662
2663         PR c/30949
2664         * c-typeck.c (convert_for_assignment): Do not give declaration's
2665         location for builtins. Spell out which type was expected and which
2666         was given.
2667
2668 2008-10-22  Nick Clifton  <nickc@redhat.com>
2669
2670         * config/frv/frv.h (HARD_REGNO_RENAME_OK): Define.  Do not allow
2671         the fdpic register to be a target when running in fdpic mode.
2672
2673 2008-10-22 Rafael Espindola  <espindola@google.com>
2674
2675         * ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the
2676         newly created statements.
2677
2678 2008-10-22  Kaz Kojima  <kkojima@gcc.gnu.org>
2679
2680         PR target/37633
2681         * config/sh/sh.c (sh_hard_regno_mode_ok): New function.
2682         * config/sh/sh.h (HARD_REGNO_MODE_OK): Use it.
2683         * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare.
2684
2685 2008-10-22  Jakub Jelinek  <jakub@redhat.com>
2686
2687         PR target/37880
2688         * doc/invoke.texi: Fix spelling of -mlarge-data-threshold option.
2689         Adjust -mcmodel=medium description for 2005-07-31 changes.
2690
2691 2008-10-22  Jan Hubicka  <jh@suse.cz>
2692             Jakub Jelinek  <jakub@redhat.com>
2693
2694         PR middle-end/35853
2695         * doc/invoke.texi: Remove references to obsoleted -d dumps.
2696
2697 2008-10-21  Richard Henderson  <rth@redhat.com>
2698
2699         PR 37815
2700         * emit-rtl.c (get_spill_slot_decl): Export.
2701         * emit-rtl.h (get_spill_slot_decl): Declare.
2702         * var-tracking.c (vt_add_function_parameters): Relax assertion
2703         on the contents of MEM_EXPR in a PARM_DECL to include a spill slot.
2704
2705 2008-10-21  Bob Wilson  <bob.wilson@acm.org>
2706
2707         * var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
2708         REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
2709         of from insn.
2710
2711 2008-10-21  Adam Nemet  <anemet@caviumnetworks.com>
2712
2713         PR middle-end/37669
2714         * tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be
2715         processed by get_maxval_strlen.
2716
2717 2008-10-21  David Edelsohn  <edelsohn@gnu.org>
2718
2719         PR target/35485
2720         * tree.c (get_file_function_name): Copy first_global_object_name.
2721         Centralize call to clean_symbol_name.
2722
2723 2008-10-21  Sandra Loosemore  <sandra@codesourcery.com>
2724
2725         * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h.
2726         * config/svr4.h (SVR4_ASM_SPEC): New.
2727         (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
2728         * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
2729
2730         * doc/invoke.texi (Option Summary): Add -T to linker options.
2731         (Link Options): Document -T.
2732
2733 2008-10-21  Jakub Jelinek  <jakub@redhat.com>
2734
2735         * tree-inline.c (tree_inlinable_function_p): Remove tuples
2736         debugging hack.
2737
2738         * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
2739
2740         PR debug/37020
2741         * c-decl.c (merge_decls): Don't call outlining_inline_function hook.
2742
2743 2008-10-20  Daniel Berlin  <dberlin@dberlin.org>
2744
2745         * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
2746         part of expression.
2747
2748 2008-10-20  Tobias Schlüter  <tobi@gcc.gnu.org>
2749
2750         * doc/install.texi: Fix typos in previous patch.
2751
2752 2008-10-19  Tobias Schlüter  <tobi@gcc.gnu.org>
2753
2754         * doc/install.texi: Document in-tree building of gcc and mpfr.
2755
2756 2008-10-19  Richard Guenther  <rguenther@suse.de>
2757
2758         * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.
2759
2760 2008-10-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2761
2762         PR c/30260
2763         * c-decl.c (finish_enum): Convert non-integer enumerators to enum type.
2764         (build_enumerator): Convert enumerators that fit in integer to
2765         integer type.
2766
2767 2008-10-18  Uros Bizjak  <ubizjak@gmail.com>
2768
2769         * config/i386/i386.md (unnamed peephole2): Do not force memory
2770         operands of arith or logical instructions into registers for
2771         non-TARGET_READ_MODIFY targets.
2772
2773         (ffs_cmove): Change operand 0 predicate to register_operand.
2774         Change operand 1 predicate to nonimmediate_operand.
2775         (ffsdi2): Ditto.
2776         (*ffs_no_cmove): Change operand 0 predicate to register_operand.
2777
2778 2008-10-18  Richard Guenther  <rguenther@suse.de>
2779
2780         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard
2781         VIEW_CONVERT_EXPR case against invalid gimple.
2782
2783 2008-10-17  Andreas Krebbel  <krebbel1@de.ibm.com>
2784
2785         * c-parser.c (c_parser_binary_expression): Silence the
2786         uninitialized variable warning emitted for binary_loc.
2787
2788 2008-10-16  Daniel Berlin  <dberlin@dberlin.org>
2789
2790         * tree-ssa-pre.c (phi_translate_set): Add constants to phi
2791         translation cache.
2792
2793 2008-10-16  Joseph Myers  <joseph@codesourcery.com>
2794
2795         PR c/33192
2796         * c-typeck.c (build_unary_op): Use omit_one_operand for
2797         IMAGPART_EXPR of real argument.
2798
2799 2008-10-16  Jakub Jelinek  <jakub@redhat.com>
2800
2801         PR tree-optimization/37664
2802         * fold-const.c (fold_binary): When optimizing comparison with
2803         highest or lowest type's value, don't consider TREE_OVERFLOW.
2804
2805 2008-10-16  David Edelsohn  <edelsohn@gnu.org>
2806
2807         PR target/35483
2808         * Makefile.in (coverage.o): Depend on $(TM_P_H).
2809         * coverage.c: Include tm_p.h.
2810         * config/rs6000/x-aix (jc1): Override LDFLAGS.
2811         * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip
2812         dollar signs from PREFIX.
2813         * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
2814         instead of manual strip_name_encoding.
2815
2816 2008-10-16  Richard Guenther  <rguenther@suse.de>
2817
2818         PR middle-end/37418
2819         * tree-ssa.c (useless_type_conversion_p_1): Do not treat
2820         volatile qualified functions or methods as relevant.
2821
2822 2008-10-16  Jakub Jelinek  <jakub@redhat.com>
2823
2824         PR tree-optimization/37525
2825         * tree.c (int_fits_type_p): Rewrite using double_int.  Zero extend
2826         sizetype unsigned constants, both in the case of C and bounds.
2827
2828 2008-10-15  Jan Hubicka  <jh@suse.cz>
2829
2830         * ira-emit.c (change_regs): Return false when replacing reg by itself.
2831
2832 2008-10-14  Vladimir Makarov  <vmakarov@redhat.com>
2833
2834         PR target/37633
2835         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
2836         HARD_REGNO_CALL_PART_CLOBBERED.
2837
2838 2008-10-15  Vladimir Makarov  <vmakarov@redhat.com>
2839
2840         PR middle-end/37535
2841         * ira-lives.c (mark_early_clobbers): Remove.
2842         (make_pseudo_conflict, check_and_make_def_use_conflicts,
2843         check_and_make_def_conflicts,
2844         make_early_clobber_and_input_conflicts,
2845         mark_hard_reg_early_clobbers): New functions.
2846         (process_bb_node_lives): Call
2847         make_early_clobber_and_input_conflicts and
2848         mark_hard_reg_early_clobbers.  Make hard register inputs live again.
2849
2850         * doc/rtl.texi (clobber): Change descriotion of RA behaviour for
2851         early clobbers of pseudo-registers.
2852
2853 2008-10-15  Vladimir Makarov  <vmakarov@redhat.com>
2854
2855         PR middle-end/37674
2856         * ira-build.c (ira_flattening): Recalculate
2857         ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS
2858         from the scratch instead of the propagation.
2859
2860 2008-10-15  Richard Sandiford  <rdsandiford@googlemail.com>
2861
2862         * doc/rtl.texi (const_double): Remove the "addr" operand.
2863         Describe CONST_DOUBLE_* macros under const_double rather
2864         than const_vector.
2865         (const_fixed): Fix the operand description.
2866         (const): Add an @findex directive.
2867         (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description
2868         after the constant rtl table.
2869         (fix): Combine floating-point and fixed-point descriptions.
2870         Fix hyphenation.
2871         * sched-deps.c (sched_analyze_2): Remove reference to
2872         CONST_DOUBLE_CHAIN.
2873
2874 2008-10-15  Richard Sandiford  <rdsandiford@googlemail.com>
2875
2876         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle
2877         UNSPEC_GOTSYM_OFFs.
2878         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true
2879         for UNSPEC_GOTSYM_OFFs.
2880         * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec.
2881         (add_GOT_to_pic_reg): Use it.
2882         * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF.
2883
2884 2008-10-15  Jan Sjodin  <jan.sjodin@amd.com>
2885             Harsha Jagasia  <harsha.jagasia@amd.com>
2886
2887         PR tree-optimization/37485
2888         * graphite.c (gmp_cst_to_tree): Moved.
2889         (iv_stack_entry_is_constant): New.
2890         (iv_stack_entry_is_iv): New.
2891         (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
2892         (loop_iv_stack_insert_constant): New.
2893         (loop_iv_stack_pop): Use new datatpype.
2894         (loop_iv_stack_get_iv): Same.
2895         (loop_iv_stack_get_iv_from_name): Same.
2896         (loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
2897         (loop_iv_stack_patch_for_consts): New.
2898         (loop_iv_stack_remove_constants): New.
2899         (graphite_create_new_loop): Use loop_iv_stack_push_iv.
2900         (translate_clast): Call loop_iv_stack_patch_for_consts and
2901         loop_iv_stack_remove_constants.
2902         (gloog): Use new datatype.  Redirect construction edge to end
2903         block to avoid accidental deletion.
2904         * graphite.h (enum iv_stack_entry_kind): New.  Tag for data in
2905         iv stack entry.
2906         (union iv_stack_entry_data): New.  Data in iv stack entry.
2907         (struct iv_stack_entry): New.  Datatype for iv stack entries.
2908
2909 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
2910
2911         * tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
2912         * graphite.c (free_scop): Same.
2913         (build_scops): Same.
2914         (free_scattering): New.
2915         (build_cloog_prog): Call free_scattering.
2916         (patch_phis_for_virtual_defs): Fix memleak.
2917         (graphite_trans_bb_strip_mine): Same.
2918         (limit_scops): Same.
2919
2920 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
2921             Harsha Jagasia  <harsha.jagasia@amd.com>
2922
2923         PR tree-optimization/37828
2924         * graphite.c (graphite_trans_loop_block): Do not loop block
2925         single nested loops.
2926
2927 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
2928
2929         PR tree-optimization/37686
2930         * tree-loop-linear.c (linear_transform_loops): Build a
2931         loop nest vector.  Pass it to lambda_compute_access_matrices.
2932         * tree-data-ref.h (struct access_matrix): Store the loop nest
2933         relative to which it encodes the information.
2934         (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST.
2935         (am_vector_index_for_loop): Reimplemented: iterate over the
2936         loop nest for finding the loop index in the access matrix.
2937         (lambda_compute_access_matrices): Update declaration.
2938         * lambda-code.c (build_access_matrix): Pass the loop nest and
2939         record it.
2940         (lambda_compute_access_matrices): Same.
2941
2942 2008-10-15  Andreas Krebbel  <krebbel1@de.ibm.com>
2943
2944         * config/s390/s390.h: (TARGET_DFP): This requires TARGET_HARD_FLOAT.
2945         * config/s390/s390.md: Replace "TARGET_HARD_FLOAT &&
2946         TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this
2947         already implies hard float.  Also fix several insn condition
2948         with TARGET_DFP which shall require TARGET_HARD_DFP instead.
2949
2950 2008-10-15  David Edelsohn  <edelsohn@gnu.org>
2951
2952         PR target/35483
2953         Based on patches by Laurent Vivier.
2954         * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore.
2955         * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare.
2956         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate
2957         dollar sign to underscore.
2958         (ASM_OUTPUT_EXTERNAL): Same.
2959         (ASM_OUTPUT_LABELREF): New.
2960         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New.
2961
2962         * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define.
2963         * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define.
2964         * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define.
2965         * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define.
2966
2967 2008-10-15  Jakub Jelinek  <jakub@redhat.com>
2968
2969         PR tree-optimization/36881
2970         * tree-switch-conversion.c (check_final_bb): For flag_pic, check
2971         that each value doesn't need runtime relocations, for !flag_pic
2972         check that each value is just a valid initializer constant.
2973
2974 2008-10-14  Richard Sandiford  <rdsandiford@googlemail.com>
2975
2976         * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS,
2977         LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS,
2978         COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS.
2979         Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and
2980         GR_AND_ACC_REGS.
2981         (REG_CLASS_NAMES): Update accordingly.
2982         (REG_CLASS_CONTENTS): Likewise.  Use the class name in the comments,
2983         rather than an unpredictable descriptive string.
2984         * config/mips/mips.c (mips_register_move_cost): Remove comment.
2985         (mips_register_move_cost): Check for specific COP*_REGS classes,
2986         instead of ALL_COP_AND_GR_REGS.
2987         (mips_ira_cover_classes): New function.
2988         (mips_secondary_reload_class): Remove MTLO and MTHI workarounds.
2989         (TARGET_IRA_COVER_CLASSES): Define.
2990
2991 2008-10-14  Douglas Gregor  <doug.gregor@gmail.com>
2992
2993         PR c++/37553
2994         * tree.c (build_type_attribute_qual_variant): Hash on the
2995         unqualified type, and don't overwrite an existing
2996         (type_hash_eq): Make the TYPE_NAME of the types significant, to
2997         allow distinguishing between wchar_t and its underlying type. This
2998         also means that we'll retain a little more typedef information.
2999
3000 2008-10-14  Andrey Belevantsev  <abel@ispras.ru>
3001             Dmitry Melnik  <dm@ispras.ru>
3002             Dmitry Zhurikhin  <zhur@ispras.ru>
3003             Alexander Monakov  <amonakov@ispras.ru>
3004             Maxim Kuvyrkov  <maxim@codesourcery.com>
3005
3006         * target.h (struct gcc_target): Update prototypes of needs_block_p
3007         and gen_spec_check.
3008         * haifa-sched.c (create_check_block_twin): Update calls to the above.
3009         * sel-sched.c (create_speculation_check): Likewise.
3010         * doc/tm.texi: Provide documentation for new target hooks.
3011
3012         * config/ia64/ia64.c: Include sel-sched.h.  Rewrite speculation hooks.
3013         (ia64_gen_spec_insn): Removed.
3014         (get_spec_check_gen_function, insn_can_be_in_speculative_p,
3015         ia64_gen_spec_check): New static functions.
3016         (ia64_alloc_sched_context, ia64_init_sched_context,
3017         ia64_set_sched_context, ia64_clear_sched_context,
3018         ia64_free_sched_context, ia64_get_insn_spec_ds,
3019         ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions.
3020         (ia64_needs_block_p): Change prototype.
3021         (ia64_gen_check): Rename to ia64_gen_spec_check.
3022         (ia64_adjust_cost): Rename to ia64_adjust_cost_2.  Add new parameter
3023         into declaration, add special memory dependencies handling.
3024         (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
3025         TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
3026         TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS,
3027         TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P):
3028         Define new target hooks.
3029         (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
3030         (ia64_optimization_options): Turn on selective scheduling with -O3,
3031         disable -fauto-inc-dec. Set mflag_sched_control_spec to true by
3032         default with selective scheduling.
3033         (ia64_override_options): Initialize align_loops and align_functions
3034         to 32 and 64, respectively.  Set global selective scheduling flags
3035         according to target-dependent flags.
3036         (rtx_needs_barrier): Support UNSPEC_LDS_A.
3037         (group_barrier_needed): Use new mstop-bit-before-check flag.
3038         Add heuristic.
3039         (dfa_state_size): Make global.
3040         (spec_check_no, max_uid): Remove.
3041         (mem_ops_in_group, current_cycle): New variables.
3042         (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload.
3043         Initialize new variables.
3044         (is_load_p, record_memory_reference): New functions.
3045         (ia64_dfa_sched_reorder): Lower priority of loads when limit is
3046         reached.
3047         (ia64_variable_issue): Change use of current_sched_info to
3048         sched_deps_info.  Update comment.  Note if a load or a store is issued.
3049         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle
3050         advance if maximal number of loads or stores was issued on current
3051         cycle.
3052         (scheduled_good_insn): New static helper function.
3053         (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when
3054         a group barrier is needed.  Fix vertical spacing.  Guard the code
3055         doing state transition with last_scheduled_insn check.
3056         Mark that a stop bit should be before current insn if there was a
3057         cycle advance.  Update current_cycle and mem_ops_in_group.
3058         (ia64_h_i_d_extended): Change use of current_sched_info to
3059         sched_deps_info. Reallocate stops_p by larger chunks.
3060         (struct _ia64_sched_context): New structure.
3061         (ia64_sched_context_t): New typedef.
3062         (ia64_alloc_sched_context, ia64_init_sched_context,
3063         ia64_set_sched_context, ia64_clear_sched_context,
3064         ia64_free_sched_context): New static functions.
3065         (gen_func_t): New typedef.
3066         (get_spec_load_gen_function): New function.
3067         (SPEC_GEN_EXTEND_OFFSET): Declare.
3068         (ia64_set_sched_flags): Check common_sched_info instead of *flags.
3069         (get_mode_no_for_insn): Change the condition that prevents use of
3070         special hardware registers so it can now handle pseudos.
3071         (get_spec_unspec_code): New function.
3072         (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds,
3073         ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions.
3074         (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks
3075         during selective scheduling.
3076         (ia64_speculate_insn): Use ds_get_speculation_types when
3077         determining whether we need to change the pattern.
3078         (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare.
3079         (ia64_spec_check_src_p): Support new speculation/check codes.
3080         (struct bundle_state): New field.
3081         (issue_nops_and_insn): Initialize it.
3082         (insert_bundle_state): Minimize mid-bundle stop bits.
3083         (important_for_bundling_p): New function.
3084         (get_next_important_insn): Use important_for_bundling_p.
3085         (bundling): When shifting TImode from unimportant insns, ignore
3086         also group barriers.  Assert that best state is found before
3087         the backward bundling pass.  Print number of mid-bundle stop bits.
3088         Minimize mid-bundle stop bits.  Check correct calculation of
3089         mid-bundle stop bits.
3090         (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting.
3091         (final_emit_insn_group_barriers): Emit stop bits before insns starting
3092         a new cycle.
3093         (sel2_run): New variable.
3094         (ia64_reorg): When flag_selective_scheduling2 is set, run the
3095         selective scheduling pass instead of schedule_ebbs.
3096
3097         * config/ia64/ia64.md (speculable1, speculable2): New attributes.
3098         (UNSPEC_LDS_A): New UNSPEC.
3099         (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
3100         movti_internal, movsf_internal, movdf_internal,
3101         movxf_internal): Make visible.  Add speculable* attributes.
3102         (output_c_nc): New mode attribute.
3103         (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a,
3104         mov<mode>_nc, zero_extend<mode>di2_nc,
3105         advanced_load_check_nc_<mode>): New insns.
3106         (zero_extend*): Add speculable* attributes.
3107
3108         * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option.
3109         (msched-stop-bits-after-every-cycle): Likewise.
3110         (msched-max-memory-insns, msched-max-memory-insns-hard-limit):
3111         Likewise.
3112         (msched-spec-verbose): Remove.
3113         (msched-prefer-non-data-spec-insns,
3114         msched-prefer-non-control-spec-insns,
3115         msched-count-spec-in-critical-path,
3116         msel-sched-dont-check-control-spec): Use Target  Report Var
3117         instead of Common Report Var.
3118
3119         * config/ia64/itanium2.md: Remove incorrect bypass.
3120
3121         * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h.
3122
3123 2008-10-14  Jakub Jelinek  <jakub@redhat.com>
3124
3125         PR middle-end/37805
3126         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
3127         and -fhelp=separate.
3128
3129 2008-10-14  Ben Elliston  <bje@au.ibm.com>
3130
3131         * config/rs6000/rs6000.md (cell_micro): Fix formatting.
3132
3133 2008-10-13  Joseph Myers  <joseph@codesourcery.com>
3134
3135         * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on
3136         non-integer modes.
3137
3138 2008-10-13  Matthias Klose  <doko@ubuntu.com>
3139
3140         * config/pa/linux-atomic.c: Work around missing header file
3141         for hppa64-linux-gnu targets.
3142
3143 2008-10-13  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3144             Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com>
3145             Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
3146             Grace Cao  <grace_cao@playstation.sony.com>
3147
3148         * doc/invoke.texi (-mgen-cell-microcode): Document.
3149         (-mwarn-cell-microcode): Document.
3150         * cfglayout.c (locator_location): Export.
3151         * rtl.h (locator_location): Define prototype.
3152         * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand):
3153         New predicate.
3154         * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
3155         * config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
3156         (mwarn-cell-microcode): New option.
3157         * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
3158         (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
3159         cell and not already set.
3160         Turn off string instructions if not generating cell microcode.
3161         (rs6000_final_prescan_insn): New function that warns about microcoded
3162         instructions.
3163         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
3164         * config/rs6000/rs6000.md
3165         Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
3166         the instruction would have been microcoded on the Cell.  Set
3167         cell_micro to always on unnamed patterns for the string instructions.
3168         (cell_micro): Update definition, remove load/store conditional
3169         microcoded.
3170         (sign_extend:DI): Define new pattern for non microcoded version.
3171         (sign_extend:SI): Likewise.
3172         (compare (div:P)): Set cell_micro to not.
3173         (andsi3): Define as an expand.
3174         (andsi3_mc): New pattern.
3175         (andsi3_nomc): New pattern.
3176         (andsi3_internal0_nomc): New pattern.
3177         (andsi3_internal2): Rename to ...
3178         (andsi3_internal2_mc): this and enable iff generating microcode.
3179         (andsi3_internal3): Rename to ...
3180         (andsi3_internal3_mc): this and enable iff generating microcode.
3181         (andsi3_internal4): Enable iif generating microcode.
3182         (andsi3_internal5): Rename to ..
3183         (andsi3_internal5_mc): this and enable iff generating microcode.
3184         (andsi3_internal5_nomc): New pattern.
3185         (extzvdi_internal1): Enable iff generating microcode.
3186         (extzvdi_internal2): Likewise.
3187         (rotlsi3_internal7): Set cell_micro to always if non immediate form.
3188         (anddi3): Change to expand.
3189         (anddi3_mc): Rename from anddi3.
3190         (anddi3_no_mc): New pattern.
3191         (anddi3_internal2): Rename to ..
3192         (anddi3_internal2_mc): this and enable iff generating microcode.
3193         (anddi3_internal2_nomc): New pattern.
3194         (anddi3_internal3): Rename to ..
3195         (anddi3_internal3_mc): this and enable iff generating microcode.
3196         (anddi3_internal3_nomc): New pattern.
3197         (movti_string): Set cell_micro to always if TARGET_STRING.
3198         (stmsi8): Set cell_micro to always.
3199         (stmsi7): Likewise.
3200         (stmsi6): Likewise.
3201         (stmsi5): Likewise.
3202         (stmsi4): Likewise.
3203         (stmsi3): Likewise.
3204         (stmsi8_power): Likewise.
3205         (stmsi7_power): Likewise.
3206         (stmsi6_power): Likewise.
3207         (stmsi5_power): Likewise.
3208         (stmsi4_power): Likewise.
3209         (stmsi3_power): Likewise.
3210         (movsi_update2): Enable iff generating microcode.
3211         (movhi_update3): Likewise.
3212         (lmw): Set cell_micro to always.
3213
3214 2008-10-13  Richard Sandiford  <rdsandiford@googlemail.com>
3215
3216         * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant.
3217         * config/s390/s390.c (machine_function): Remove
3218         decomposed_literal_pool_addresses_ok_p.
3219         (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of
3220         the difference of two labels.
3221         (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET.
3222         (s390_pool_offset): New function.
3223         (s390_find_constant, s390_find_execute, s390_dump_pool): Use it.
3224         (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p.
3225
3226 2008-10-13  Nathan Froyd  <froydnj@codesourcery.com>
3227
3228         * doc/install.texi (powerpc-*-*): Require binutils 2.15.
3229         (powerpc*-*-linux-gnu*): Describe.
3230         * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
3231         * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
3232         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
3233         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
3234         config/rs6000/e500crtres32gpr.asm,
3235         config/rs6000/e500crtres64gpr.asm,
3236         config/rs6000/e500crtres64gprctr.asm,
3237         config/rs6000/e500crtrest32gpr.asm,
3238         config/rs6000/e500crtrest64gpr.asm,
3239         config/rs6000/e500crtresx32gpr.asm,
3240         config/rs6000/e500crtresx64gpr.asm,
3241         config/rs6000/e500crtsav32gpr.asm,
3242         config/rs6000/e500crtsav64gpr.asm,
3243         config/rs6000/e500crtsav64gprctr.asm,
3244         config/rs6000/e500crtsavg32gpr.asm,
3245         config/rs6000/e500crtsavg64gpr.asm,
3246         config/rs6000/e500crtsavg64gprctr.asm: Use it.
3247         * config/rs6000/crtsavres.asm: Really remove.
3248
3249 2008-10-13  Kai Tietz  <kai.tietz@onevision.com>
3250
3251         Fix PR/25502
3252         * c-format.c (convert_format_name_to_system_name): Use
3253         TARGET_OVERRIDES_FORMAT_INIT.
3254         * config.gcc (extra_options): Add for mingw targets mingw.opt.
3255         * config/i386/mingw.opt: New.
3256         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New.
3257         * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New.
3258         (ms_printf_length_specs): Removed const specifier.
3259         * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New.
3260         * doc/invoke.texi (Wno-pedantic-ms-format): New.
3261
3262 2008-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3263
3264         * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
3265         * doc/install.texi: Bump recommended MPFR to 2.3.2.
3266
3267 2008-10-12  Kenneth Zadeck <zadeck@naturalbridge.com>
3268
3269         PR middle-end/37808
3270         * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
3271         sure that ref has valid bb.
3272
3273 2008-10-12  Richard Henderson  <rth@redhat.com>
3274
3275         PR middle-end/37447
3276         * Makefile.in (reload1.o): Depend on EMIT_RTL_H.
3277         * alias.c (value_addr_p, stack_addr_p): Remove.
3278         (nonoverlapping_memrefs_p): Remove IRA special case.
3279         * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New.
3280         * emit-rtl.h (set_mem_attrs_for_spill): Declare.
3281         * reload1.c (alter_reg): Use it.
3282
3283 2008-10-12  Uros Bizjak  <ubizjak@gmail.com>
3284
3285         * config/i386/driver-i386.c (detect_caches_cpuid2): Use array
3286         of registers instead of eax, ebx, ecx and edx.  Use for loop
3287         and check register for non-zero value before the call
3288         to decode_caches_intel.
3289
3290 2008-10-11  Kenneth Zadeck <zadeck@naturalbridge.com>
3291
3292         PR rtl-optimization/37448
3293         * df.h: (df_ref_class): New enum.
3294         (DF_REF_TYPE_NAMES, df_ref_extract): Removed.
3295         (struct df_ref): Replaced with union df_ref_d.
3296         (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
3297         New members of df_ref_d union.
3298         (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
3299         DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
3300         DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
3301         DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
3302         DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
3303         DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d.
3304         (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
3305         (df_scan_bb_info, df_bb_regno_first_def_find,
3306         df_bb_regno_last_def_find, df_find_def, df_find_use,
3307         df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
3308         debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
3309         df_ref_create, df_ref_remove, df_compute_accessed_bytes,
3310         df_get_artificial_defs, df_get_artificial_uses, union_defs)
3311         Replaced struct df_ref * with df_ref.
3312         * df-scan.c (df_collection_rec, df_null_ref_rec,
3313         df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
3314         df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
3315         df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
3316         df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
3317         df_reorganize_refs_by_reg_by_reg,
3318         df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
3319         df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
3320         df_sort_and_compress_refs, df_install_ref, df_install_refs,
3321         df_ref_record, df_get_conditional_uses, df_get_call_refs,
3322         df_bb_refs_record, df_exit_block_uses_collect,
3323         df_record_exit_block_uses, df_reg_chain_mark,
3324         df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
3325         df_ref * with df_ref.
3326         (df_ref_record, df_uses_record, df_ref_create_structure): Added
3327         df_ref_class parameter.
3328         (df_scan_problem_data): Added new pools for different types of refs.
3329         (df_scan_free_internal, df_scan_alloc, df_free_ref,
3330         df_ref_create_structure): Processed new ref pools.
3331         (df_scan_start_dump): Added counts of refs and insns.
3332         (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
3333         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
3334         df_entry_block_defs_collect, df_exit_block_uses_collect): Added
3335         code to pass df_ref_class down to ref creation functions.
3336         (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
3337         df_reg_chain_mark): Use macros to hide references to df_refs.
3338         (df_ref_chain_change_bb): Removed.
3339         (df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
3340         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
3341         Enhanced to understand df_ref union structure.
3342         * fwprop.c (local_ref_killed_between_p, use_killed_between,
3343         all_uses_available_at, update_df, try_fwprop_subst,
3344         forward_propagate_subreg, forward_propagate_and_simplify,
3345         forward_propagate_into, fwprop, fwprop_addr): Replaced struct
3346         df_ref * with df_ref.
3347         (use_killed_between, all_uses_available_at): Use macros to hide
3348         references to df_refs.
3349         * regstat.c (regstat_bb_compute_ri,
3350         regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
3351         df_ref.
3352         * see.c (see_handle_relevant_defs, see_handle_relevant_uses,
3353         see_handle_relevant_refs, see_analyze_one_def,
3354         see_update_relevancy, see_propagate_extensions_to_uses): Replaced
3355         struct df_ref * with df_ref.
3356         * ra-conflict.c (record_one_conflict, clear_reg_in_live,
3357         global_conflicts): Replaced struct df_ref * with df_ref.
3358         * ddg.c (create_ddg_dep_from_intra_loop_link,
3359         add_cross_iteration_register_deps, build_inter_loop_deps):
3360         Replaced struct df_ref * with df_ref.
3361         (create_ddg_dep_from_intra_loop_link,
3362         add_cross_iteration_register_deps): Use macros to hide references
3363         to df_refs.
3364         * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct
3365         df_ref * with df_ref.
3366         * df-core.c (df_bb_regno_first_def_find,
3367         df_bb_regno_last_def_find, df_find_def, df_find_use,
3368         df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
3369         debug_df_ref): Replaced struct df_ref * with df_ref.
3370         (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs.
3371         * cse.c (cse_extended_basic_block): Replaced struct df_ref * with
3372         df_ref.
3373         * web.c (union_defs, entry_register, replace_ref, web_main):
3374         Replaced struct df_ref * with df_ref.
3375         (union_defs, replace_ref): Use macros to hide references to df_refs.
3376         * global.c (compute_regs_asm_clobbered, build_insn_chain):
3377         Replaced struct df_ref * with df_ref.
3378         * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref.
3379         * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets, ):
3380         Replaced struct df_ref * with df_ref.
3381         * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p,
3382         mark_ref_dead, process_bb_node_lives): Replaced struct df_ref *
3383         with df_ref.
3384         * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref.
3385         * df-byte-scan.c (df_compute_accessed_bytes_extract,
3386         df_compute_accessed_bytes_strict_low_part,
3387         df_compute_accessed_bytes_subreg, df_compute_accessed_bytes):
3388         Replaced struct df_ref * with df_ref.
3389         (df_compute_accessed_bytes): Use macros to hide references to df_refs.
3390         * init-regs.c (initialize_uninitialized_regs): Replaced struct
3391         df_ref * with df_ref.
3392         * loop-invariant.c (invariant_for_use, hash_invariant_expr_1,
3393         check_dependency, check_dependencies, record_uses): Replaced
3394         struct df_ref * with df_ref.
3395         (invariant_for_use, check_dependency): Use macros to hide
3396         references to df_refs.
3397         * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def,
3398         get_biv_step_1, get_biv_step, record_iv, iv_analyze_def,
3399         iv_analyze, biv_p): Replaced struct df_ref * with df_ref.
3400         (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide
3401         references to df_refs.
3402         * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref *
3403         with df_ref.
3404         * combine.c (create_log_links): Replaced struct df_ref * with df_ref.
3405         * df-problems.c (df_rd_bb_local_compute_process_def,
3406         df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create,
3407         df_chain_unlink_1, df_chain_unlink, df_chain_copy,
3408         df_chain_remove_problem, df_chain_create_bb_process_use,
3409         df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump,
3410         df_byte_lr_check_regs, df_byte_lr_bb_local_compute,
3411         df_byte_lr_simulate_defs, df_byte_lr_simulate_uses,
3412         df_byte_lr_simulate_artificial_refs_at_top,
3413         df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note,
3414         df_note_bb_compute, df_note_add_problem, df_simulate_defs,
3415         df_simulate_uses, df_simulate_artificial_refs_at_end,
3416         df_simulate_artificial_refs_at_top): Replaced struct df_ref * with
3417         df_ref.
3418         (df_chain_dump): Use macros to hide references to df_refs.
3419         * config/mips/mips.c (r10k_simplify_address): Replaced struct
3420         df_ref * with df_ref.
3421         * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes,
3422         mark_artificial_uses, mark_reg_dependencies,
3423         byte_dce_process_block): Replaced struct df_ref * with df_ref.
3424
3425 2008-10-11  Eric Botcazou  <ebotcazou@adacore.com>
3426
3427         * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in
3428         head comment.
3429         (array_ref_element_size): Likewise.
3430         (array_ref_low_bound): Likewise.
3431         (array_ref_up_bound): Likewise.
3432         * expr.c (contains_packed_reference): Likewise.
3433         (array_ref_element_size): Likewise.
3434         (array_ref_low_bound): Likewise.
3435         (array_ref_up_bound): Likewise.
3436         * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal
3437         with ARRAY_RANGE_REF.
3438         (idx_find_step): Likewise.
3439         (idx_record_use): Likewise.
3440         (strip_offset_1): Likewise.
3441         (idx_remove_ssa_names): Likewise.
3442
3443 2008-10-11  Uros Bizjak  <ubizjak@gmail.com>
3444             Andi Kleen  <ak@linux.intel.com>
3445
3446         * config/i386/cpuid.h (__cpuid_count): New defines.
3447         * config/i386/driver-i386.c (struct cache_desc): New structure.
3448         (describe_cache): Use struct cache_desc to pass cache descriptions.
3449         (detect_l2_cache): Ditto. Rename from decode_l2_cache.
3450         (detect_caches_amd): Use struct cache_desc to describe caches.
3451         (decode_caches_intel): Use struct cache_desc to pass cache
3452         descriptions.  Update descriptions to match latest (rev -032,
3453         December 2007) CPUID documentation.  Do not check valid bit here.
3454         Check for Xeon MP value 0x49 problems.
3455         (detect_caches_cpuid2): New function, split from detect_caches_intel.
3456         Check valid bit before calling decode_caches_intel.  Detect number
3457         of times to repeat CPUID instruction.
3458         (detect_caches_cpuid4): New function.
3459         (detect_caches_intel): Depending on max_level, call
3460         detect_caches_cpuid2 or detect_caches_cpuid4.  Call detect_l2_cache
3461         only when other methods fail to provide valid L2 cache description.
3462
3463 2008-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3464
3465         PR middle-end/37608
3466         * pa.md (call, call_value): Generate an rtx for register r4 and pass
3467         it to PIC call patterns.
3468         (call_symref_pic): Revise pattern to expose PIC register save.  Remove
3469         code generation and attributes from pattern.  Change peephole2 to
3470         split for noreturn case.  Revise split pattern for non noreturn case.
3471         (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
3472         call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
3473         * pa.c (attr_length_call): Simplify extraction of call rtx.  Add some
3474         asserts.
3475
3476 2008-10-11  David Edelsohn  <edelsohn@gnu.org>
3477
3478         * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
3479         (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
3480         and fp_type.
3481         (divdf3): Reformat long line.
3482
3483 2008-10-11  Michael J. Eager  <eager@eagercon.com>
3484
3485         * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
3486         -mfpu options.
3487         (rs6000_handle_option): Process -mfpu options.
3488         * config/rs6000/rs6000.h: (TARGET_XILINX_FPU): New.
3489         (enum fpu_type_t): New.
3490         * config/rs6000/rs6000.md (attr fp_type): New.  Include xfpu.md.
3491         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
3492         fp_type.
3493         (floatsisf2): Remove TARGET_SINGLE_FPU condition.
3494         (floatdidf2): Add TARGET_SINGLE_FPU condition.
3495         * config/rs6000/rs6000.opt (-mfpu): New.
3496         (-mxilinx-fpu): New.
3497         * config/rs6000/sysv4.h: (DRIVER_SELF_SPECS): New.
3498         * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
3499         * config/rs6000/xfpu.md: New. Define Xilinx pipeline.
3500         * gcc/config.gcc: powerpc-xilinx-eabi target: New.
3501         * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.
3502
3503 2008-10-11  Jakub Jelinek  <jakub@redhat.com>
3504
3505         PR target/35760
3506         * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
3507         LO_SUM on Darwin if mode has just one unit.
3508
3509 2008-10-10  H.J. Lu  <hongjiu.lu@intel.com>
3510
3511         PR debug/37002
3512         * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
3513         has been optimized out.
3514
3515 2008-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
3516
3517         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
3518         instead of PIC_DIRECT_ADDR_P.
3519         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
3520         (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
3521         (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
3522         (PIC_OFFSET_P): Rename to...
3523         (PCREL_SYMOFF_P): ...this.
3524         (PIC_DIRECT_ADDR_P): Delete.
3525         (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
3526         PIC_OFFSET_P.
3527         (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
3528         single argument.  Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
3529         UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
3530         * config/sh/sh.c (print_operand): Remove CONST handling.
3531         (unspec_caller_rtx_p): Rewrite to use split_const and check
3532         the operands of UNSPEC bases.
3533         (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
3534         with (unspec [A B] UNSPEC_SYMOFF).
3535         (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
3536         UNSPEC_PCREL_SYMOFF.
3537         (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
3538         * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
3539         (UNSPEC_EXTRACT_U16): Likewise.
3540         (UNSPEC_SYMOFF): Likewise.
3541         (UNSPEC_PCREL_SYMOFF): Likewise.
3542         (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
3543         of constants.
3544         (movsi_const_16bit): Likewise.
3545         (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
3546         (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
3547         with (unspec [A B] UNSPEC_PCREL_SYMOFF).
3548         (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
3549         with (unspec [A B] UNSPEC_SYMOFF).
3550         (symPLT_label2reg): Replace (minus A (minus B pc)) with
3551          (unspec [A B] PCREL_UNSPEC_SYMOFF).
3552         * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
3553         (Csu): Likewise UNSPEC_EXTRACT_U16.
3554         (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
3555         (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.
3556
3557 2008-10-10  Stepan Kasal  <skasal@redhat.com>
3558
3559         * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
3560         for loop strip mining and loop blocking.
3561
3562 2008-10-10  Alexandre Oliva  <aoliva@redhat.com>
3563
3564         * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
3565         vary types depending on debug info.
3566
3567 2008-10-10  Alexandre Oliva  <aoliva@redhat.com>
3568
3569         * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
3570         before ensuring it's already computed.
3571
3572 2008-10-09  Jakub Jelinek  <jakub@redhat.com>
3573
3574         * rtl.h (locator_eq): New decl.
3575         * cfglayout.c (locator_scope): New function.
3576         (insn_scope): Use it.
3577         (locator_eq): New function.
3578         (fixup_reorder_chain): Search for last insn in src bb
3579         that has locator set or first insn in dest bb.  Use
3580         locator_eq instead of == to compare locators.
3581         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
3582         * cfgcleanup.c (try_forward_edges): Use locator_eq instead of
3583         == to compare locators.
3584
3585         * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
3586         as used.
3587         * gimple-low.c (lower_function_body, lower_gimple_return,
3588         lower_builtin_setjmp): Set gimple_block on the newly created stmts.
3589         * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
3590         goto_block on edges if goto_locus is known.
3591
3592         PR middle-end/37774
3593         * tree.h (get_object_alignment): Declare.
3594         * emit-rtl.c (set_mem_attributes_minus_bitpos): Call
3595         get_object_alignment if needed.
3596         * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand
3597         handling to ...
3598         (get_object_alignment): ... here.  New function.  Try harder to
3599         determine alignment from get_inner_reference returned offset.
3600
3601 2008-10-08  Jakub Jelinek  <jakub@redhat.com>
3602
3603         * graphite.c (gloog): Don't call find_unreachable_blocks
3604         before delte_unreachable_blocks.
3605
3606         * cfgexpand.c (expand_gimple_cond): Convert also goto_block and
3607         goto_locus of true_edge into RTL locator.
3608
3609 2008-10-08  Uros Bizjak  <ubizjak@gmail.com>
3610
3611         * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
3612         (*jcc_btdi_mask_rex64): Ditto.
3613         (*jcc_btsi): Ditto.
3614         (*jcc_btsi_mask): Ditto.
3615         (*jcc_btsi_1): Ditto.
3616         (*jcc_btsi_mask_1): Ditto.
3617
3618 2008-10-08  Paul Brook  <paul@codesourcery.com>
3619
3620         * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
3621         compatible profiler (__gnu_mcount_nc).
3622         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
3623
3624 2008-10-08  H.J. Lu  <hongjiu.lu@intel.com>
3625
3626         * config/i386/i386.c (initial_ix86_tune_features): Add
3627         X86_TUNE_USE_VECTOR_FP_CONVERTS.
3628         * config/i386/i386.h (ix86_tune_indices): Likewise.
3629         (TARGET_USE_VECTOR_FP_CONVERTS): New.
3630
3631         * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
3632         instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
3633         for FP to FP splitters.
3634
3635 2008-10-08  H.J. Lu  <hongjiu.lu@intel.com>
3636
3637         * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
3638         splitter.
3639
3640 2008-10-08  Jakub Jelinek  <jakub@redhat.com>
3641
3642         PR target/36635
3643         PR target/37290
3644         PR rtl-optimization/37341
3645         * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
3646         to ORIG_BB, pass through ORIG_BB recursively.
3647         (cse_condition_code_reg): Adjust caller.
3648
3649 2008-10-08  Kai Tietz  <kai.tietz@onevision.com>
3650
3651         * sdbout.c (sdbout_one_type): Treat the value type
3652         CONST_DECL for enumerals.
3653
3654 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
3655
3656         * config/i386/i386.md: Remove trailing white spaces.
3657
3658 2008-10-07  Kenneth Zadeck <zadeck@naturalbridge.com>
3659
3660         PR rtl-optimization/37448
3661         * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field.
3662         (stuct alloc_pool_descriptor) [created, allocated, current, peak]:
3663         Make unsigned long.
3664         (struct output_info) [count]: Renamed total_created and made
3665         unsigned long.
3666         (struct output_info) [size]: Renamed total_allocated and made
3667         unsigned long.
3668         (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free):
3669         Properly keep track of desc->size.
3670         (print_statistics, dump_alloc_pool_statistics): Enhance the
3671         printing of statistics to print the number of elements and to use
3672         unsigned longs.
3673
3674 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
3675
3676         PR middle-end/37576
3677         * opts.h (CL_SAVE): Move up to flags range.
3678         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
3679         CL_COMMON): Renumber.
3680         (CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
3681         * opts.c (common_handle_option): Revert last change.
3682
3683 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
3684
3685         * config/i386/i386-protos.h (ix86_schedule): New.
3686
3687         * config/i386/i386.c (ix86_schedule): New.
3688         (override_options): Add schedule to processor_alias_table.  Set
3689         ix86_schedule from the schedule field in processor_alias_table.
3690         (ix86_function_specific_save): Save ix86_schedule.
3691         (ix86_function_specific_restore): Restore ix86_schedule.
3692
3693         * config/i386/i386.md (cpu): Map to ix86_schedule instead of
3694         ix86_tune.  Add none and remove i386, i486, pentium4, nocona
3695         and generic32.
3696
3697         * config/i386/i386.opt: Add schedule.
3698
3699         * config/i386/ppro.md: Remove generic32.
3700
3701 2008-10-07  Simon Martin  <simartin@users.sourceforge.net>
3702
3703         PR c/35437
3704         * expr.c (count_type_elements): Handle ERROR_MARK.
3705
3706 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
3707
3708         PR debug/29609
3709         PR debug/36690
3710         PR debug/37616
3711         * basic-block.h (struct edge_def): Add goto_block field.
3712         * cfglayout.c (fixup_reorder_chain): Ensure that there is at least
3713         one insn with locus corresponding to edge's goto_locus if !optimize.
3714         * profile.c (branch_prob): Copy edge's goto_block.
3715         * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
3716         emitted jumps.
3717         (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
3718         locator in between the merged basic blocks if !optimize and needed.
3719         * cfgexpand.c (expand_gimple_cond): Convert goto_block and
3720         goto_locus into RTL locator.  For unconditional jump use that
3721         locator for the jump insn.
3722         (expand_gimple_cond): Convert goto_block and goto_locus into
3723         RTL locator for all remaining edges.  For unconditional jump
3724         use that locator for the jump insn.
3725         * cfgcleanup.c (try_forward_edges): Avoid the optimization if
3726         there is more than one edge or insn locator along the forwarding
3727         edges and !optimize.  If there is just one, set e->goto_locus.
3728         * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
3729         edge's goto_block.
3730         (move_block_to_fn): Adjust edge's goto_block.
3731
3732 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
3733
3734         PR middle-end/37731
3735         * expmed.c (expand_mult): Properly check DImode constant in
3736         CONST_DOUBLE.
3737
3738 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
3739
3740         PR debug/37738
3741         * dwarf2out.c (common_block_die_table): New variable.
3742         (common_block_die_table_hash, common_block_die_table_eq): New
3743         functions.
3744         (gen_variable_die): Look up a DW_TAG_common_block die for a particular
3745         COMMON block in the current scope rather than globally.  Optimize
3746         DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
3747         DW_OP_addr SYMBOL_REF+off.
3748
3749 2008-10-07  Eric Botcazou  <ebotcazou@adacore.com>
3750
3751         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
3752         Return true for non-addressable GIMPLE operands.
3753
3754 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
3755
3756         PR target/24765
3757         * config/i386/i386.c (initial_ix86_tune_features): Remove
3758         X86_TUNE_USE_BIT_TEST.
3759         * config/i386/i386.h (ix86_tune_indices): Likewise.
3760         (TARGET_USE_BIT_TEST): Removed.
3761
3762 2008-10-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
3763
3764         * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.
3765
3766 2008-10-06  Adam Nemet  <anemet@caviumnetworks.com>
3767
3768         * config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
3769         (mul<mode>3_mul3): ... into this new template.
3770
3771 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
3772
3773         * gimplify.c (gimplify_arg): Add location argument.  Use it.
3774         (gimplify_call_expr): Pass location to gimplify_arg.
3775         (gimplify_modify_expr_to_memcpy): Same.
3776         (gimplify_modify_expr_to_memset): Same.
3777
3778 2008-10-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3779
3780         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3781         Update calls to build_unary_op and build_indirect_ref for location
3782         changes.
3783
3784 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
3785
3786         build_modify_expr.
3787         * c-decl.c (finish_decl): Pass input_location to build_unary_op.
3788         * c-typeck.c (array_to_pointer_conversion): Pass location to
3789         build_unary_op.
3790         (function_to_pointer_conversion): Use error_at and warning_at.
3791         (build_indirect_ref): Same.
3792         (build_array_ref): Pass location to build_binary_op.
3793         (parser_build_unary_op): Do not set location after calling
3794         build_unary_op.
3795         (build_unary_op): Add location argument.  Use it throughout.  Set
3796         EXPR_LOCATION before returning new tree.
3797         (build_modify_expr): Same.
3798         (build_binary_op): Use location throughout.  Set EXPR_LOCATION before
3799         returning node.
3800         * c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
3801         build_indirect_ref, build_modify_expr.
3802         (c_finish_omp_for): Same.  Use error_at instead of error.
3803         * c-common.c (c_common_truthvalue_conversion): Pass location to
3804         build_unary_op.
3805         (warn_for_div_by_zero): Add location argument.
3806         * c-common.h: Add argument to build_modify_expr, build_indirect_ref,
3807         build_unary_op, warn_for_div_by_zero.
3808         * c-parser.c (c_parser_typeof_specifier): Use
3809         protected_set_expr_location.
3810         (c_parser_statement_after_labels): Same.
3811         (c_parser_condition): Same.
3812         (c_parser_expr_no_commas): Pass correct location to build_modify_expr.
3813         (c_parser_conditional_expression): Use protected_set_expr_location.
3814         (c_parser_unary_expression): Pass location to build_indirect_ref.
3815         (c_parser_postfix_expression_after_primary): Pass location to
3816         build_indirect_ref, build_unary_op.
3817         (c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.
3818
3819 2008-10-06  Joshua Kinard  <kumba@gentoo.org>
3820
3821         * doc/invoke.texi: List r1x000 family under the -march MIPS option.
3822         * config/mips/mips.h (PROCESSOR_R10000): New processor_type.
3823         * config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
3824         r14000 and r16000.
3825         (mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
3826         (mips_issue_rate): Handle PROCESSOR_R10000.
3827         * config/mips/mips.md (cpu): Add r10000.
3828         Include r10000.md.
3829         * config/mips/10000.md: New file.
3830
3831 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
3832
3833         * config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare.
3834         * config/rs6000/rs6000.h (FIND_BASE_TERM): New macro.
3835         * config/rs6000/rs6000.c (rs6000_find_base_term): New function.
3836
3837 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
3838
3839         * config/darwin-protos.h (machopic_function_base_name): Delete.
3840         (machopic_function_base_sym): Likewise.
3841         (machopic_gen_offset): Declare.
3842         * config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro.
3843         (ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant.
3844         * config/darwin.c (machopic_function_base_name): Delete.
3845         (machopic_function_base_sym): Likewise.
3846         (gen_pic_offset): Rename to...
3847         (machopic_gen_offset): ...this and remove the pic_base argument.
3848         Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset
3849         is needed.  Create an UNSPEC_MACHOPIC_OFFSET if so, and set
3850         crtl->uses_pic_offset_table.
3851         (machopic_indirect_data_reference): Use new machopic_gen_offset
3852         interface.
3853         (machopic_legitimize_pic_address): Likewise.
3854         (machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.
3855
3856         * config/i386/darwin.h (GOT_SYMBOL_NAME): Use
3857         MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name.
3858         * config/i386/i386.c (output_set_got): Likewise.
3859         (darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET
3860         instead of a MINUS.
3861         (legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET.
3862         (legitimate_address_p): Likewise.
3863         (output_pic_addr_const): Likewise.
3864         (output_addr_const_extra): Likewise.
3865         (ix86_delegitimize_address): Expect darwin_local_data_pic to
3866         match an UNSPEC rather than a MINUS.
3867         * config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define.
3868         (builtin_setjmp_receiver): Use machopic_gen_offset.
3869         * config/i386/predicates.md (pic_symbolic_operand): Handle
3870         UNSPEC_MACHOPIC_OFFSET.
3871
3872         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
3873         Use machopic_gen_offset and machopic_operand_p.
3874         (rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET.
3875         (rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME.
3876         * config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define.
3877         (builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME.
3878         Set crtl->uses_pic_offset_table.
3879
3880 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
3881
3882         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
3883         Declare.
3884         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro.
3885         * config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant.
3886         * config/rs6000/rs6000.c (constant_pool_expr_1): Delete.
3887         (constant_pool_expr_p): Use split_const and check the base.
3888         (toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL
3889         instead of a MINUS.
3890         (legitimate_constant_pool_address_p): Check toc_relative_p
3891         instead of constant_pool_expr_p.
3892         (print_operand_address): Always use output_addr_const for
3893         constant pool addresses.
3894         (rs6000_output_addr_const_extra): New function.
3895         (create_TOC_reference): Create an UNSPEC_TOCREL instead of a MINUS.
3896
3897 2008-10-06  Vladimir Makarov  <vmakarov@redhat.com>
3898
3899         PR middle-end/37535
3900
3901         * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
3902         (mark_ref_live, mark_ref_dead): Use them.
3903         (def_conflicts_with_inputs_p): Remove.
3904         (mark_early_clobbers): New function.
3905         (process_bb_node_lives): Call preprocess_constraints and
3906         mark_early_clobbers.
3907
3908         * doc/rtx.texi (clobber): Change how RA deals with clobbers.
3909
3910 2008-10-06  Danny Smith  <dannysmith@users.sourceforge.net>
3911
3912         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Add thread cleanup
3913         lib with -mthread switch.
3914
3915 2008-10-05  Dodji Seketeli  <dodji@redhat.com>
3916
3917         PR c++/37410
3918         * dwarf2out.c (dwarf2out_imported_module_or_decl): Split this
3919         function in two, making it call a new and reusable
3920         dwarf2out_imported_module_or_decl() that takes the containing
3921         BLOCK of the declaration in argument.
3922         (dwarf2out_imported_module_or_decl_real): New function.
3923         (decls_for_scope, gen_decl_die, dwarf2out_decl): Take
3924         IMPORTED_DECL in account.
3925         * tree.def: Added IMPORTED_DECL node type.
3926         * tree.h: Added accessors for IMPORTED_DECL nodes.
3927         * tree.c (init_ttree): Initialise IMPORTED_DECL node type.
3928
3929 2008-10-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3930
3931         * doc/gimple.texi: Fix some typos, wrap some long lines,
3932         fix some broken wraps with continuations.
3933         * tree-ssa-reassoc.c: Fix comment typos.
3934
3935 2000-10-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3936
3937         PR target/37603
3938         * pa.c (legitimize_pic_address): Force function labels to memory in
3939         word mode.
3940
3941 2008-10-04  Anton Blanchard  <anton@samba.org>
3942
3943         * config/rs6000/rs6000.c (rs6000_emit_sync): Use gen_lwsync().
3944         (rs6000_split_atomic_op): Same.
3945         (rs6000_split_compare_and_swap): Same.
3946         (rs6000_split_compare_and_swapqhi): Same.
3947
3948 2008-10-04  Richard Guenther  <rguenther@suse.de>
3949
3950         * tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p
3951         instead of pointer equality.
3952         (vn_nary_op_eq): Likewise.
3953
3954 2008-10-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3955
3956         * config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT
3957         condition.
3958         (fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS &&
3959         TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT".
3960
3961 2008-10-03  Danny Smith  <dannysmith@users.sourceforge.net>
3962
3963         * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
3964         Revert previous change.
3965
3966 2008-10-03  Tom Tromey  <tromey@redhat.com>
3967
3968         * stringpool.c (ggc_alloc_string): Terminate string.
3969
3970 2008-10-03  Jakub Jelinek  <jakub@redhat.com>
3971
3972         * gimplify.c (gimplify_function_tree): For -finstrument-functions
3973         use gimple_bind_{,set_}block instead of gimple_{,set_}block.
3974         * gimple.h (gimple_bind_set_block): Allow second argument to be NULL.
3975
3976         PR debug/37726
3977         * gimplify.c (declare_vars): Use gimple_bind_block instead of
3978         gimple_block.
3979
3980 2008-10-03  Pascal Obry  <obry@adacore.com>
3981
3982         * gcov.c (create_file_names): Properly handle UNIX and DOS
3983         directory separators.
3984         (make_gcov_file_name): Likewise + convert the ':' DOS drive
3985         separator to '~' to ensure clean filenames on Windows.
3986
3987 2008-10-02  Danny Smith  <dannysmith@users.sourceforge.net>
3988
3989         * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
3990         Add a null terminator to the stripped name.
3991
3992 2008-10-02  David Edelsohn  <edelsohn@gnu.org>
3993
3994         * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert
3995         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
3996         (function_arg_advance): Condition on TARGET_DOUBLE_FLOAT,
3997         TARGET_SINGLE_FLOAT.  Revert SCALAR_FLOAT_MODE_P condition.
3998         (function_arg): Condition on TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
3999         (rs6000_function_value): Revert TARGET_DOUBLE_FLOAT,
4000         TARGET_SINGLE_FLOAT.
4001
4002 2008-10-02  Daniel Jacobowitz  <dan@codesourcery.com>
4003
4004         * builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE.
4005
4006 2008-10-02  Richard Guenther  <rguenther@suse.de>
4007
4008         PR middle-end/37713
4009         * tree-ssa.c (useless_type_conversion_p_1): For COMPLEX_TYPE
4010         and VECTOR_TYPE recurse with useless_type_conversion_p which
4011         properly handles void pointer conversion.
4012
4013 2008-10-02  Danny Smith  <dannysmith@users.sourceforge.net>
4014
4015         PR target/37528
4016         * config/i386/mingw32.h (LIBGCC_SPEC) : Replace with ..
4017         (REAL_LIBGCC_SPEC): New.  Always include -lgcc.
4018
4019 2008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4020
4021         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4022         Handle ALTIVEC_BUILTIN_VEC_SPLATS, ALTIVEC_BUILTIN_VEC_PROMOTE,
4023         ALTIVEC_BUILTIN_VEC_EXTRACT, and ALTIVEC_BUILTIN_VEC_INSERT specially,
4024         they translate to non builtins.
4025         * config/rs6000/rs6000.c (altivec_init_builtins): Add new variable
4026         opaque_ftype_opaque.  Define builtins __builtin_vec_splats,
4027         __builtin_vec_promote, __builtin_vec_extract, and
4028         __builtin_vec_insert.
4029         * config/rs6000/rs6000.h (enum rs6000_builtins): Add
4030         ALTIVEC_BUILTIN_VEC_EXTRACT, ALTIVEC_BUILTIN_VEC_PROMOTE,
4031         ALTIVEC_BUILTIN_VEC_INSERT, and ALTIVEC_BUILTIN_VEC_SPLATS.
4032         * config/rs6000/altivec.h (vec_extract): Define
4033         (vec_insert): Define.
4034         (vec_splats): Define.
4035         (vec_promote): Define.
4036
4037 2008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4038             Yukishige Shibata  <shibata@rd.scei.sony.co.jp>
4039             Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
4040
4041         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell
4042         Altivec intrinsics.
4043         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Delete
4044         prototype.  Add new parameter, blk.
4045         Use BLKmode for the MEM if blk is true.
4046         (altivec_expand_builtin): Handle ALTIVEC_BUILTIN_STVLX,
4047         ALTIVEC_BUILTIN_STVLXL, ALTIVEC_BUILTIN_STVRX, and
4048         ALTIVEC_BUILTIN_STVRXL.
4049         Update usage of altivec_expand_lv_builtin.
4050         Handle ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL,
4051         ALTIVEC_BUILTIN_LVRX, and ALTIVEC_BUILTIN_LVRXL.
4052         (altivec_init_builtins): If compiling for the Cell, also define the
4053         cell VMX builtins.
4054         * config/rs6000/rs6000.h (rs6000_builtins): Define
4055         ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, ALTIVEC_BUILTIN_LVRX,
4056         ALTIVEC_BUILTIN_LVRXL, ALTIVEC_BUILTIN_STVLX, ALTIVEC_BUILTIN_STVLXL,
4057         ALTIVEC_BUILTIN_STVRX, ALTIVEC_BUILTIN_STVRXL,
4058         ALTIVEC_BUILTIN_VEC_LVLX, ALTIVEC_BUILTIN_VEC_LVLXL,
4059         ALTIVEC_BUILTIN_VEC_LVRX, ALTIVEC_BUILTIN_VEC_LVRXL,
4060         ALTIVEC_BUILTIN_VEC_STVLX, ALTIVEC_BUILTIN_VEC_STVLXL,
4061         ALTIVEC_BUILTIN_VEC_STVRX, and ALTIVEC_BUILTIN_VEC_STVRXL.
4062         * config/rs6000/altivec.md (define_constants): Define UNSPEC_LVLX,
4063         UNSPEC_LVLXL, UNSPEC_LVRX, UNSPEC_LVRXL, UNSPEC_STVLX, UNSPEC_STVLXL,
4064         UNSPEC_STVRX, and UNSPEC_STVRXL.
4065         (altivec_lvlx): New pattern.
4066         (altivec_lvlxl): New pattern.
4067         (altivec_lvrx): New pattern.
4068         (altivec_lvrxl): New pattern.
4069         (altivec_stvlx): New pattern.
4070         (altivec_stvlxl): New pattern.
4071         (altivec_stvrx): New pattern.
4072         (altivec_stvrxl): New pattern.
4073         * config/rs6000/altivec.h (vec_lvlx): Define if PPU is defined.
4074         (vec_lvlxl): Likewise.
4075         (vec_lvrx): Define if PPU is defined.
4076         (vec_lvrxl): Likewise.
4077         (vec_stvlx): Define if PPU is defined.
4078         (vec_stvlxl): Likewise.
4079         (vec_stvrx): Define if PPU is defined.
4080         (vec_stvrxl): Likewise.
4081
4082 2008-10-01  Geert Bosch  <bosch@adacore.com>
4083
4084         * tree.c (contains_placeholder_p): Return 0 for a SAVE_EXPR.
4085
4086 2008-10-01  Richard Guenther  <rguenther@suse.de>
4087
4088         PR tree-optimization/37617
4089         * tree-ssa-pre.c (create_expression_by_pieces): During FRE
4090         do not add to the NEW_SETS.
4091
4092 2008-10-01  Richard Guenther  <rguenther@suse.de>
4093
4094         PR middle-end/37285
4095         * tree-vrp.c (execute_vrp): If we optimized away the default
4096         case make sure to promote the label that got in place of it
4097         to a default case label.
4098
4099 2008-10-01  Richard Henderson  <rth@redhat.com>
4100
4101         PR tree-opt/35737
4102         * tree-complex.c (set_component_ssa_name): Don't optimize
4103         is_gimple_min_invariant values with ssa_names in abnormal phis.
4104
4105 2008-09-30  Paolo Bonzini  <bonzini@gnu.org>
4106
4107         PR tree-optimization/37662
4108         * tree-ssa-ccp.c (fold_gimple_assign): Invert the operands of a
4109         commutative binary operation if they are in the wrong order and
4110         fold_build2 produces non-GIMPLE.
4111
4112 2008-09-30  Jakub Jelinek  <jakub@redhat.com>
4113
4114         PR tree-optimization/37662
4115         PR tree-optimization/37663
4116         * tree-vrp.c (simplify_truth_ops_using_ranges): Don't call
4117         get_value_range with non-SSA_NAME.  Don't assert operands have been
4118         folded, instead just bail out.
4119
4120 2008-09-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4121
4122         * config/rs6000/rs6000.md (fnmadds combiner): Revert typo.
4123
4124 2008-09-30  Richard Guenther  <rguenther@suse.de>
4125
4126         PR middle-end/37491
4127         * tree-vect-transform.c (vect_create_data_ref_ptr): Properly
4128         build restrict-qualified pointers.
4129         (vectorizable_store): Move alias check later.
4130         (vectorizable_load): Likewise.
4131
4132 2008-09-30  Paolo Bonzini  <bonzini@gnu.org>
4133
4134         * c-common.c (empty_if_body_warning): Remove.
4135         * c-common.h (empty_if_body_warning): Remove.
4136         * c-parser.c (c_parser_if_body, c_parser_else_body): Implement
4137         here the -Wempty-body warning for `if' and `else' statements.
4138         * c-typeck.c (c_finish_if_stmt): Do not call empty_body_warning.
4139
4140 2008-09-29  H.J. Lu  <hongjiu.lu@intel.com>
4141
4142         * config/i386/i386.opt: Add msse2avx.
4143
4144         * config/i386/linux.h (ASM_SPEC): New.  Support -msse2avx.
4145         * config/i386/linux64.h (ASM_SPEC): Likewise.
4146
4147         * doc/invoke.texi: Document -msse2avx.
4148
4149 2008-09-29  Eric Botcazou  <ebotcazou@adacore.com>
4150
4151         * dwarf2out.c (constant_size): Use HOST_WIDE_INT in parameter type.
4152
4153 2008-09-29  Joseph Myers  <joseph@codesourcery.com>
4154
4155         * ifcvt.c (noce_emit_store_flag): If using condition from original
4156         jump, reverse it if if_info->cond was reversed.
4157
4158 2008-09-29  Eric Botcazou  <ebotcazou@adacore.com>
4159
4160         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
4161         non-constant memory if it cannot be forced to constant memory.
4162         Overhaul surrounding code and factor out common condition.
4163
4164 2008-09-29  Jeff Law <law@redhat.com>
4165
4166         * reload1.c (alter_reg): Add missing curly braces.
4167
4168 2008-09-29  Michael J. Eager  <eager@eagercon.com>
4169
4170         * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
4171         are easy.
4172         * config/rs6000/rs6000.c (rs6000_override_options): Move
4173         rs6000_init_hard_regno_mode_ok after all options changed.
4174         Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
4175         (rs6000_handle_option): Process -msingle-float, -mdouble-float,
4176         -msimple-fpu flags.  Add warning messages if single FP not configured.
4177         (rs6000_file_start): Output gnu_attribute for single-float.
4178         (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
4179         (rs6000_legitimize_address): Likewise.
4180         (rs6000_legitimize_reload_address): Likewise.
4181         (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
4182         TARGET_SINGLE_FLOAT.
4183         (function_arg_advance): Likewise (partial conversion).
4184         (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
4185         (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
4186         TARGET_SINGLE_FLOAT.
4187         (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
4188         (rs6000_emit_prologue): Likewise.
4189         (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
4190         TARGET_SINGLE_FLOAT.
4191         (rs6000_libcall_value): Likewise.
4192         * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
4193         (TARGET_DOUBLE_FLOAT): New default to 1
4194         (TARGET_SIMPLE_FPU): New default to 0
4195         (TARGET_SINGLE_FPU): New default to 0
4196         (TARGET_SINGLE_FLOAT_MODE): New.
4197         (TARGET_DOUBLE_FLOAT_MODE): New.
4198         * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
4199         TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
4200         UNITS_PER_FP_WORD
4201         * config/rs6000/rs6000.md (define_mode_iterator): Condition on
4202         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
4203         (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
4204         copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
4205         nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
4206         muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
4207         movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
4208         floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
4209         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
4210         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
4211         rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
4212         floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
4213         movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
4214         extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
4215         abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
4216         cmptf_internal1, *cmptf_internal2): Condition on
4217         TARGET_DOUBLE_FLOAT.
4218         (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
4219         mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
4220         *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
4221         btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
4222         floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
4223         *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
4224         TARGET_SINGLE_FLOAT.
4225         (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
4226         * config/rs6000/rs6000.opt (-msingle-float): New.
4227         (-mdouble-float): New.
4228         (-msimple-fpu): New.
4229         * doc/invoke.texi (RS/6000 and PowerPC Options): Add
4230         -msingle-float, -mdouble-float, -msimple-fpu options.
4231         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
4232         _SOFT_DOUBLE for -msingle-float.
4233         * config.gcc: New config for target=powerpc-xilinx-eabi.
4234
4235 2008-09-29  Tobias Grosser  <grosser@fim.uni-passau.de>
4236
4237         * graphite.c (dot_all_scops_1): Remove unused checks. SCoPs always
4238         have exit and entry.
4239         (new_scop): Take entry and exit edge to define new SCoP.
4240         (sd_region_p): New structure used during SCoP detection.
4241         (move_scops): Delete.
4242         (move_sd_regions): New.
4243         (scopdet_info): Change the definition from edges back to basic_blocks.
4244         (scopdet_edge_info):  Work on basic_blocks and rename to
4245         scopdet_basic_block_info.
4246         (split_difficult_bb): At the moment removed. We should later
4247         add it at another place.
4248         (build_scops_1): Work on basic_blocks.
4249         (bb_in_sd_region): New.
4250         (find_single_entry_edge): New.
4251         (find_single_exit_edge): New.
4252         (create_single_entry_edge): New.
4253         (sd_region_without_exit): New.
4254         (create_single_exit_edge): New.
4255         (unmark_exit_edges): New.
4256         (mark_exit_edges): New.
4257         (create_sese_edges): New.
4258         (build_graphite_scops): New.
4259         (build_scops): Make SCoPs SESE.
4260         (limit_scops): Use the new functions.
4261
4262 2008-09-29  Hans-Peter Nilsson  <hp@axis.com>
4263
4264         * config/cris/cris.h (IRA_COVER_CLASSES): Define.
4265
4266 2008-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4267
4268         PR target/37640
4269         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force
4270         address to a register before taking the lower part.
4271
4272 2008-09-28  Kaz Kojima  <kkojima@gcc.gnu.org>
4273
4274         * config/sh/sh.h (OVERRIDE_OPTIONS): Unset flag_dwarf2_cfi_asm
4275         for SHmedia.
4276
4277 2008-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4278             Kaushal Kantawala  <kaushal_kantawala@playstation.sony.com>
4279
4280         PR tree-opt/36891
4281         * tree-ssa-loop-im.c (rewrite_reciprocal): Set DECL_GIMPLE_REG_P on
4282         the newly created variable.
4283         Create a VECTOR_CST of all 1s for vector types.
4284
4285 2008-09-28  Eric Botcazou  <ebotcazou@adacore.com>
4286
4287         PR middle-end/36575
4288         * fold-const.c (div_and_round_double) <ROUND_DIV_EXPR>: Fix typo.
4289
4290 2008-09-28  Eric Botcazou  <ebotcazou@adacore.com>
4291
4292         * expmed.c (store_fixed_bit_field): Always use convert_to_mode in
4293         order to convert between modes.
4294         (extract_bit_field_1): Test TRULY_NOOP_TRUNCATION on the right mode.
4295
4296 2008-09-27  Kaz Kojima  <kkojima@gcc.gnu.org>
4297
4298         * config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR
4299         if needed.
4300
4301 2008-09-26  Vladimir Makarov  <vmakarov@redhat.com>
4302
4303         Revert:
4304         2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
4305         * ira-lives.c:...
4306         * doc/rtl.texi:...
4307
4308 2008-09-26  Adam Nemet  <anemet@caviumnetworks.com>
4309
4310         * config/mips/mips.h (ISA_HAS_DMUL3, ISA_HAS_BADDU, ISA_HAS_BBIT,
4311         ISA_HAS_CINS, ISA_HAS_EXTS, ISA_HAS_SEQ_SNE, ISA_HAS_POP): Change
4312         them to yield false with MIPS16.
4313
4314 2008-09-26  Jakub Jelinek  <jakub@redhat.com>
4315
4316         PR middle-end/37275
4317         * dwarf2out.c (tls_mem_loc_descriptor): New function.
4318         (mem_loc_descriptor): Use it for MEM.  For PLUS fail if second
4319         mem_loc_descriptor failed.  Accept UNSPEC.
4320         (loc_descriptor): Use tls_mem_loc_descriptor for MEM.  For PARALLEL
4321         fail if one of the loc_descriptor calls for pieces failed.
4322         (loc_descriptor_from_tree_1): Handle even DECL_EXTERNAL __thread vars,
4323         as long as they bind locally.  For COMPONENT_REF, ARRAY_REF etc. fail
4324         if loc_descriptor_from_tree_1 on offset failed.
4325
4326         PR middle-end/37576
4327         * opts.c (common_handle_option): Don't call print_specific_help with
4328         CL_SAVE as first argument.
4329
4330 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
4331             Steve Ellcey  <sje@cup.hp.com>
4332
4333         * configure: Regenerate for new libtool.
4334         * aclocal.m4: Ditto.
4335
4336 2008-09-26  Pat Haugen  <pthaugen@us.ibm.com>
4337
4338         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Use correct
4339         alias set on MEM when saving stack pointer.
4340         * config/rs6000/rs6000.md (allocate_stack): Likewise
4341
4342 2008-09-26  Dorit Nuzman  <dorit@il.ibm.com>
4343
4344         PR tree-optimization/37574
4345         * tree-vectorizer.c (vect_is_simple_use): Fix indentation.
4346         * tree-vect-transform.c (vect_get_constant_vectors): Use vectype
4347         instead of vector_type for constants. Take computation out of loop.
4348         (vect_get_vec_def_for_operand): Use only vectype for constant case,
4349         and use only vector_type for invariant case.
4350         (get_initial_def_for_reduction): Use vectype instead of vector_type.
4351
4352 2008-09-25  Jakub Jelinek  <jakub@redhat.com>
4353
4354         PR c/37645
4355         * c-common.c (handle_weakref_attribute): Ignore the attribute unless
4356         the decl is a VAR_DECL or FUNCTION_DECL.
4357
4358 2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
4359
4360         PR middle-end/37535
4361         * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
4362         (mark_ref_live, mark_ref_dead): Use them.
4363         (def_conflicts_with_inputs_p): Remove.
4364         (mark_early_clobbers): New function.
4365         (process_bb_node_lives): Call preprocess_constraints and
4366         mark_early_clobbers.
4367
4368         * doc/rtl.texi (clobber): Change how RA deals with clobbers.
4369
4370 2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
4371
4372         PR middle-end/37448
4373         * ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP.
4374         (ira_compress_allocno_live_ranges): New prototype.
4375
4376         * ira-color.c: Rename IRA_ALLOCNO_TEMP to ALLOCNO_TEMP.
4377         (coalesced_allocnos_living_at_program_points): New.
4378         (coalesced_allocnos_live_at_points_p,
4379         set_coalesced_allocnos_live_points): New functions.
4380         (coalesce_spill_slots): Rewrite.
4381
4382         * ira-lives.c (remove_some_program_points_and_update_live_ranges,
4383         ira_compress_allocno_live_ranges): New functions.
4384
4385         * ira-build.c (ira_flattening): Call
4386         ira_compress_allocno_live_ranges.
4387         (ira_build): Ditto.
4388
4389 2008-09-25  H.J. Lu  <hongjiu.lu@intel.com>
4390
4391         * config/i386/i386.md: Check cmp/branch fuse for cmp peephole
4392         optimization.
4393
4394 2008-09-25  Richard Sandiford  <rdsandiford@googlemail.com>
4395
4396         * combine.c (make_compound_operation): Handle the 'E' format.
4397         (count_rtxs): Likewise.
4398         (update_table_tick): Likewise.
4399         (get_last_value_validate): Likewise.
4400
4401 2008-09-25  Eric Botcazou  <ebotcazou@adacore.com>
4402
4403         * dbxout.c (dbxout_parms): Fetch the inner REG inside a PARALLEL.
4404
4405 2008-09-25 Sergei Dyshel <sergeid@il.ibm.com>
4406
4407         * matrix-reorg.c (transform_allocation_sites): Initializers
4408         added to avoid the warning.
4409
4410 2008-09-25  Martin Jambor  <mjambor@suse.cz>
4411
4412         * cgraph.c (free_nodes): New variable.
4413         (NEXT_FREE_NODE): New macro.
4414         (cgraph_create_node): Reuse nodes from the free list.  Do not
4415         update uid if doing so.
4416         (cgraph_remove_node): Add the node to the free list.
4417
4418 2008-09-25  Gerald Pfeifer  <gerald@pfeifer.com>
4419
4420         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
4421
4422 2008-09-24  Richard Henderson  <rth@redhat.com>
4423
4424         * dwarf2.h (DW_OP_GNU_encoded_addr): New.
4425         * unwind-dw2.c (execute_stack_op): Handle it.
4426
4427 2008-09-24  David Edelsohn  <edelsohn@gnu.org>
4428
4429         Revert:
4430         2008-09-24  Michael J. Eager  <eager@eagercon.com>
4431
4432 2008-09-24  Aldy Hernandez  <aldyh@redhat.com>
4433
4434         * c-common.c (fname_decl): New location argument.
4435         * c-common.h (fname_decl): Same.
4436         * c-parser.c (c_lex_one_token): Use {warning,error}_at instead of
4437         {warning,error}.
4438         (c_parser_typeof_specifier): Same.
4439         (c_parser_parms_list_declarator): Same.
4440         (c_parser_asm_string_literal): Same.
4441         (c_parser_compound_statement_nostart): Same.
4442         (c_parser_label): Same.
4443         (c_parser_do_statement): Same.
4444         (c_parser_asm_statement): Same.
4445         (c_parser_unary_expression): Same.
4446         (c_parser_sizeof_expression): Same.
4447         (c_parser_postfix_expression): Same.
4448         (c_parser_pragma): Same.
4449         (c_parser_omp_clause_collapse): Same.
4450         (c_parser_omp_clause_num_threads): Same.
4451         (c_parser_omp_clause_schedule): Same.
4452         (c_parser_omp_all_clauses): Same.
4453         (c_parser_omp_sections_scope): Same.
4454         (c_parser_omp_for_loop): Same.  Pass condition's location to
4455         c_objc_common_truthvalue_conversion.
4456         (c_parser_enum_specifier): Remove comment.
4457
4458 2008-09-24  Michael J. Eager  <eager@eagercon.com>
4459
4460         * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
4461         are easy.
4462         * config/rs6000/rs6000.c (rs6000_override_options): Move
4463         rs6000_init_hard_regno_mode_ok after all options changed.
4464         Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
4465         (rs6000_handle_option): Process -msingle-float, -mdouble-float,
4466         -msimple-fpu flags.  Add warning messages if single FP not configured.
4467         (rs6000_file_start): Output gnu_attribute for single-float.
4468         (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
4469         (rs6000_legitimize_address): Likewise.
4470         (rs6000_legitimize_reload_address): Likewise.
4471         (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
4472         TARGET_SINGLE_FLOAT.
4473         (function_arg_advance): Likewise.
4474         (function_arg): Likewise.
4475         (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
4476         (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
4477         TARGET_SINGLE_FLOAT.
4478         (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
4479         (rs6000_emit_prologue): Likewise.
4480         (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
4481         TARGET_SINGLE_FLOAT.
4482         (rs6000_libcall_value): Likewise.
4483         * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
4484         (TARGET_DOUBLE_FLOAT): New default to 1
4485         (TARGET_SIMPLE_FPU): New default to 0
4486         (TARGET_SINGLE_FPU): New default to 0
4487         (TARGET_SINGLE_FLOAT_MODE): New.
4488         (TARGET_DOUBLE_FLOAT_MODE): New.
4489         * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
4490         TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
4491         UNITS_PER_FP_WORD
4492         * config/rs6000/rs6000.md (define_mode_iterator): Condition on
4493         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
4494         (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
4495         copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
4496         nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
4497         muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
4498         movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
4499         floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
4500         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
4501         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
4502         rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
4503         floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
4504         movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
4505         extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
4506         abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
4507         cmptf_internal1, *cmptf_internal2): Condition on
4508         TARGET_DOUBLE_FLOAT.
4509         (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
4510         mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
4511         *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
4512         btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
4513         floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
4514         *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
4515         TARGET_SINGLE_FLOAT.
4516         (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
4517         * config/rs6000/rs6000.opt (-msingle-float): New.
4518         (-mdouble-float): New.
4519         (-msimple-fpu): New.
4520         * doc/invoke.texi (RS/6000 and PowerPC Options): Add
4521         -msingle-float, -mdouble-float, -msimple-fpu options.
4522         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
4523         _SOFT_DOUBLE for -msingle-float.
4524         * config.gcc: New config for target=powerpc-xilinx-eabi.
4525
4526 2008-09-23  Eric Botcazou  <ebotcazou@adacore.com>
4527
4528         * config/sparc/constraints.md: New file.
4529         * config/sparc/sparc.md: Include it.
4530         * config/sparc/sparc-protos.h (memory_ok_for_ldd): Declare.
4531         (sparc_extra_constraint_check): Delete.
4532         * config/sparc/sparc.c (register_ok_for_ldd): Minor tweaks.
4533         (memory_ok_for_ldd): New predicate.
4534         (sparc_extra_constraint_check): Delete.
4535         * config/sparc/sparc.h (REG_CLASS_FROM_LETTER): Likewise.
4536         (CONST_OK_FOR_LETTER_P): Likewise.
4537         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
4538         (EXTRA_CONSTRAINT): Likewise.
4539
4540 2008-08-23  Steve Ellcey  <sje@cup.hp.com>
4541
4542         * regrename.c (do_replace): Copy REG_POINTER value to new reg.
4543
4544 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
4545
4546         * alias.c (find_base_value): Use FIND_BASE_TERM.
4547         * doc/tm.texi (FIND_BASE_TERM): Update documentation.
4548
4549 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
4550
4551         * config/i386/i386.c: Include cselib.h.
4552         (ix86_pic_register_p): New function.
4553         (ix86_delegitimize_address): Use it to check for the PIC register.
4554
4555 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
4556
4557         * doc/tm.texi (FIND_BASE_TERM): Expand documentation.
4558         * config/i386/i386.c (ix86_find_base_term): Don't check for
4559         SYMBOL_REF and LABEL_REF.
4560
4561 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
4562
4563         * config/i386/i386.c (ix86_delegitimize_address): Wrap the
4564         constant PLUS in a CONST.
4565
4566 2008-09-23  Kai Tietz  <kai.tietz@onevision.com>
4567
4568         * config/i386/i386.c (ix86_function_ok_for_sibcall): Correct
4569         check for sibcall support for w64.
4570
4571 2008-09-23  Eric Botcazou  <ebotcazou@adacore.com>
4572
4573         * c-ppoutput.c (cb_used_define): Do nothing for a builtin node.
4574
4575 2008-09-23  Aldy Hernandez  <aldyh@redhat.com>
4576
4577         * c-tree.h: Add argument to c_objc_common_truthvalue_conversion,
4578         parser_build_binary_op.
4579         * c-decl.c (build_enumerator): Pass location to build_binary_op.
4580         * c-typeck.c (build_array_ref): Same.
4581         (parser_build_unary_op): New location argument.
4582         (pointer_diff): Pass location to build_binary_op,
4583         c_objc_common_truthvalue_conversion.
4584         (build_modify_expr): Same.
4585         (build_unary_op): New location argument.
4586         (build_binary_op): New location argument.
4587         (c_objc_common_truthvalue_conversion): Pass location to
4588         c_*common_truthvalue_conversion.
4589         * c-convert.c (convert): Same.
4590         * c-common.c (binary_op_error): New location argument.
4591         (pointer_int_sum): Pass location to build_binary_op.
4592         (c_common_truthvalue_conversion): New location argument.
4593         (warn_for_sign_compare): Same.
4594         * c-common.h: Add location argument to c_common_truthvalue_conversion,
4595         binary_op_error, build_binary_op, warn_for_sign_compare.
4596         * c-parser.c (c_parser_condition): Pass location to
4597         c_*common_truthvalue_conversion.
4598         (c_parser_conditional_expression): Save condition's location and pass
4599         it on down.
4600         (c_parser_binary_expression): Same, but for the binary operator's
4601         location.
4602         (c_parser_omp_for_loop): Pass location to
4603         c_objc_common_truthvalue_conversion.
4604
4605 2008-09-23  Martin Jambor  <mjambor@suse.cz>
4606
4607         * cgraph.c (cgraph_free_edge): Use sizeof(*e).
4608         (cgraph_node_remove_callees): New temporary f.  Hold the next item
4609         in f when looping.
4610         (cgraph_node_remove_callers): Likewise.
4611
4612         * ipa-prop.c (ipa_edge_removal_hook): Use ATTRIBUTE_UNUSED.
4613         (ipa_node_removal_hook): Likewise.
4614
4615         * doc/gimple.texi (gimple_copy_call_skip_args): Changed to
4616         gimple_call_copy_skip_args and moved to the gimple_call section.
4617         * gimple.c (gimple_copy_call_skip_args): Renamed to
4618         gimple_call_copy_skip_args.  Changed al users.
4619
4620 2008-09-22  Vladimir Makarov  <vmakarov@redhat.com>
4621
4622         * ira-color.c (start_allocno_priorities): Rename to
4623         setup_allocno_priorities.  Use costs and
4624         ALLOCNO_EXCESS_PRESSURE_POINTS_NUM instead of frequencies and
4625         range lengths.  Get rid off doubles.
4626         (ira_fast_allocations): Call start_allocno_priorities.
4627
4628 2008-09-22  David Daney  <ddaney@avtrex.com>
4629
4630         PR target/37593
4631         * config/mips/mips.h (FUNCTION_PROFILER): Call _mcount via a
4632         register if TARGET_LONG_CALLS.
4633
4634 2008-09-22  Richard Guenther  <rguenther@suse.de>
4635
4636         PR tree-optimization/37145
4637         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Re-enable
4638         value-numbering union accesses with their offset and size only.
4639         (visit_reference_op_load): Fix simplification of inserted conversions.
4640         * tree-ssa-pre.c (find_or_generate_expression): Do not
4641         recursively generate expressions if running FRE.
4642
4643 2008-09-22  Adam Nemet  <anemet@caviumnetworks.com>
4644
4645         * config/mips/mips.h (ISA_HAS_BADDU): New macro.
4646         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el, *baddu_di<mode>):
4647         New patterns.
4648
4649 2008-09-22  Richard Guenther  <rguenther@suse.de>
4650
4651         PR tree-optimization/37145
4652         * tree-ssa-pre.c (fully_constant_expression): Simplify builtin calls.
4653         (phi_translate_1): Constant fold references.
4654
4655 2008-09-22  Ira Rosen  <irar@il.ibm.com>
4656
4657         PR tree-optimization/37482
4658         * tree-vectorizer.h (struct _slp_instance): Add new field.
4659         (SLP_INSTANCE_FIRST_LOAD_STMT): New.
4660         (get_earlier_stmt): New function.
4661         * tree-vect-analyze.c (vect_find_first_load_in_slp_instance): New
4662         function.
4663         (vect_analyze_slp_instance): Set SLP_INSTANCE_FIRST_LOAD_STMT.
4664         * tree-vect-transform.c (vect_finish_stmt_generation): Remove the
4665         asserts that GSI points to the scalar statement being vectorized.
4666         Set new statement location according to GSI.
4667         (vect_schedule_slp_instance): Use GSI of
4668         SLP_INSTANCE_FIRST_LOAD_STMT when vectorizing loads.
4669
4670 2008-09-21  Jan Hubicka  <jh@suse.cz>
4671
4672         * ipa-cp.c (ipcp_estimate_growth): Check recursive calls.
4673         (ipcp_insert_stage): Update dead_nodes bitmap.
4674
4675 2008-09-22  Danny Smith  <dannysmith@users.sourceforge.net>
4676
4677         PR target/37528
4678         * config/i386/t-cygming (SHLIB_LC): Remove.
4679         (SHLIB_LINK): Don't add static objects to SHLIB_IMPLIB
4680         * config/i386/t-cygwin (SHLIB_LC): Specify all required libraries.
4681
4682 2008-09-22  Hans-Peter Nilsson  <hp@axis.com>
4683
4684         PR middle-end/37170
4685         PR middle-end/37280
4686         * final.c (mark_symbol_ref_as_used): New helper function.
4687         (output_operand): Instead of just looking inside MEMs for
4688         SYMBOL_REFs, use new helper function and for_each_rtx.
4689         * varasm.c (assemble_external): Move #ifndef ASM_OUTPUT_EXTERNAL
4690         to after weak-handling.  Don't mark decls with TREE_STATIC as weak.
4691         Make head comment more general.
4692         * config/darwin.c (machopic_output_indirection): Handle weak
4693         references here, like in assemble_external.
4694
4695 2008-09-21  Eric Botcazou  <ebotcazou@adacore.com>
4696
4697         * config/sparc/sparc-protos.h (gen_compare_operator): Declare.
4698         (sparc_emit_float_lib_cmp): Change return type.
4699         * config/sparc/sparc.c (gen_compare_reg): Add comment about TFmode.
4700         (gen_compare_operator): New function.
4701         (sparc_emit_float_lib_cmp): Return the new operator to be used in
4702         the comparison sequence.  Minor tweaks.
4703         * config/sparc/sparc.md (seq, sne, sgt, slt, sge, sle): Assert
4704         that the final operator and the result of sparc_emit_float_lib_cmp
4705         match for software TFmode; use emit_insn in lieu of emit_jump_insn.
4706         (beq, bne, bgt, blt, bge, ble, bunordered, bordered, bungt, bunlt,
4707         buneq, bunge, bunle, bltgt): Assert that the final operator and the
4708         result of sparc_emit_float_lib_cmp match for software TFmode.
4709         (movqicc, movhicc, movsicc, movdicc): Merge into...
4710         (mov<I:mode>cc): ...this.
4711         (movsfcc, movdfcc, movtfcc): Merge into...
4712         (mov<F:mode>cc): ...this.
4713         (movqi_cc_sp64, movhi_cc_sp64, movsi_cc_sp64, movdi_cc_sp64): Merge
4714         into...
4715         (mov<I:mode>_cc_v9): ...this.
4716         (movdi_cc_sp64_trunc): Delete.
4717         (movqi_cc_reg_sp64, movhi_cc_reg_sp64, movsi_cc_reg_sp64,
4718         movdi_cc_reg_sp64): Merge into...
4719         (mov<I:mode>_cc_reg_sp64): ...this.
4720         (movsf_cc_sp64): Rename into...
4721         (movsf_cc_v9): ...this.
4722         (movdf_cc_sp64): Rename into...
4723         (movdf_cc_v9): ...this.
4724         (movtf_cc_hq_sp64): Rename into...
4725         (movtf_cc_hq_v9): ...this.
4726         (movtf_cc_sp64): Rename into...
4727         (movtf_cc_v9): ...this.  Adjust for renaming of movdf_cc_sp64.
4728
4729 2008-09-21  Diego Novillo  <dnovillo@google.com>
4730
4731         * doc/gccint.texi: Include generic.texi and gimple.texi.
4732         Re-order index.
4733         * doc/tree-ssa.texi (GENERIC): Move to generic.texi.
4734         (GIMPLE): Move to gimple.texi.
4735         (Annotations): Remove references to to stmt_ann_t and
4736         ssa_name_ann_t.
4737         (SSA Operands): Rename from 'Statement Operands'.
4738         * doc/generic.texi: New.
4739         * doc/gimple.texi: New.
4740         * Makefile.in (TEXI_GCCINT_FILES): Add generic.texi and gimple.texi.
4741         * Makefile.in (TEXI_GCCINT_FILES):
4742         * gimple.c (gimple_copy_call_skip_args): Rename from
4743         giple_copy_call_skip_args.  Update all users.
4744         * doc/gimple.texi (gimple_copy_call_skip_args): Document.
4745
4746 2008-09-21  Ira Rosen  <irar@il.ibm.com>
4747
4748         PR tree-optimization/37539
4749         * tree-vect-transform.c (vect_transform_strided_load): Save vector
4750         statement in related statement field only for the first load of the
4751         group of loads with the same data reference.
4752
4753 2008-09-20  Adam Nemet  <anemet@caviumnetworks.com>
4754
4755         * config/mips/mips.h (TUNE_OCTEON): New macro.
4756         * config/mips/mips.c (mips_issue_rate): Return 2 for Octeon.
4757         (mips_multipass_dfa_lookahead): Return 2 for Octeon.
4758         * config/mips/octeon.md: New file.
4759         * config/mips/mips.md: Include octeon.md.  Restore
4760         semi-alphabetical order of include files.
4761
4762 2008-09-20  H.J. Lu  <hongjiu.lu@intel.com>
4763
4764         PR target/37571
4765         * config/i386/i386.md (*jcc_fused_1): Removed.
4766         (*jcc_fused_2): Likewise.
4767         (*jcc_fused_3): Likewise.
4768         (*jcc_fused_4): Likewise.
4769
4770 2008-09-20  Richard Sandiford  <rdsandiford@googlemail.com>
4771
4772         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Define.
4773         (IRA_COVER_CLASSES): Refer to TARGET_IRA_COVER_CLASSES.
4774         * target.h (gcc_target): Add ira_cover_classes.
4775         * ira.c: Remove IRA_COVER_CLASSES guards.
4776         (setup_cover_and_important_classes): Use targetm.ira_cover_classes
4777         instead of IRA_COVER_CLASSES.
4778         (setup_cover_and_important_classes): Remove IRA_COVER_CLASSES guard.
4779         (setup_class_translate): Likewise.
4780         (setup_reg_class_intersect_union): Likewise.
4781         (find_reg_class_closure): Replace IRA_COVER_CLASSES guard with a
4782         test of targetm.ira_cover_classes.
4783         * opts.c (decode_options): Use targetm.ira_cover_classes instead
4784         of IRA_COVER_CLASSES.
4785         * target-def.h (TARGET_IRA_COVER_CLASSES): Define.
4786         (TARGET_INITIALIZER): Include it.
4787         * targhooks.h (default_ira_cover_classes): Declare.
4788         * targhooks.c (default_ira_cover_classes): New function.
4789
4790 2008-09-19  Bob Wilson  <bob.wilson@acm.org>
4791
4792         * config/xtensa/xtensa.md (reload<mode>_literal): Handle MEM operands.
4793
4794 2008-09-19  Ian Lance Taylor  <iant@google.com>
4795
4796         * varasm.c (narrowing_initializer_constant_valid_p): Return
4797         NULL_TREE if ENDTYPE is not an integer.
4798
4799 2008-09-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4800
4801         PR tree-opt/30930
4802         * tree-ssa.c (execute_update_addresses_taken): Also update
4803         DECL_GIMPLE_REG_P for vector and complex types.
4804
4805 2008-09-19  Andrew MacLeod  <amacleod@redhat.com>
4806             Jan Hubicka  <jh@suse.cz>
4807
4808         PR middle-end/37567
4809         * tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually
4810         empty before freeing them.
4811         (find_replaceable_exprs): Move asserts to free_temp_expr_table.
4812
4813 2008-09-18  Bob Wilson  <bob.wilson@acm.org>
4814
4815         * configure.ac: Add HAVE_AS_TLS check for Xtensa.
4816         * config/xtensa/predicates.md (tls_symbol_operand): New.
4817         * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Define.
4818         (TARGET_CANNOT_FORCE_MEM): Define.
4819         (xtensa_tls_symbol_p): New.
4820         (xtensa_emit_move_sequence): Check for and legitimize TLS addresses.
4821         (xtensa_legitimate_address_p): Disallow constant pool TLS references.
4822         (xtensa_tls_module_base): New.
4823         (xtensa_call_tls_desc): New.
4824         (xtensa_legitimize_tls_address): New.
4825         (xtensa_legitimize_address): Handle TLS symbols.
4826         (xtensa_tls_referenced_p_1): New.
4827         (xtensa_tls_referenced_p): New.
4828         (xtensa_output_addr_const_extra): Handle UNSPEC_TPOFF and
4829         UNSPEC_DTPOFF.
4830         (XTENSA_BUILTIN_THREAD_POINTER): New.
4831         (XTENSA_BUILTIN_SET_THREAD_POINTER): New.
4832         (xtensa_init_builtins): Set NOTHROW and READONLY for umulsidi3
4833         builtin.  Add declarations for __builtin_thread_pointer and
4834         __builtin_set_thread_pointer.
4835         (xtensa_fold_builtin): Recognize new builtins.
4836         (xtensa_expand_builtin): Expand new builtins.
4837         * config/xtensa/xtensa.h (XCHAL_HAVE_THREADPTR): Define default value.
4838         (TARGET_THREADPTR): Define.
4839         (HAVE_AS_TLS): Define default value.
4840         (LEGITIMATE_CONSTANT_P): Disallow TLS references.
4841         * config/xtensa/xtensa.md (UNSPEC_TPOFF, UNSPEC_DTPOFF): New.
4842         (UNSPEC_TLS_FUNC, UNSPEC_TLS_ARG, UNSPEC_TLS_CALL, UNSPEC_TP): New.
4843         (UNSPECV_SET_TP): New.
4844         (sym_TPOFF, sym_DTPOFF): New.
4845         (load_tp, set_tp, tls_func, tls_arg, tls_call): New.
4846         * config/xtensa/xtensa-protos.h (xtensa_tls_referenced_p): Declare.
4847         * configure: Regenerated.
4848
4849 2008-09-18  H.J. Lu  <hongjiu.lu@intel.com>
4850
4851         PR target/37394
4852         * config/ia64/ia64.c (ia64_optimization_options): Move
4853         checking and setting flag_schedule_insns_after_reload and
4854         ia64_flag_schedule_insns2 back to ...
4855         (ia64_override_options): Here.
4856
4857 2008-09-18  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4858
4859         PR rtl-opt/37451
4860         * loop-doloop.c (doloop_modify): New argument zero_extend_p and
4861         zero extend count after the correction to it is done.
4862         (doloop_optimize): Update call to doloop_modify, don't zero extend
4863         count before call.
4864
4865 2008-09-18  Martin Jambor  <mjambor@suse.cz>
4866
4867         * ipa-cp.c (ipcp_estimate_growth): Return 0 instead of false.
4868
4869         * ipa-prop.c: Correct comments.
4870         * ipa-prop.h: Likewise.
4871
4872 2008-09-18  Jan Hubicka  <jh@suse.cz>
4873
4874         PR middle-end/37448
4875         * ipa-reference.c (ipa_reference_local_vars_info_d,
4876         ipa_reference_global_vars_info_d,
4877         ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
4878         ipa_reference_vars_info_t): Move here from ipa-reference.h
4879         (node_duplication_hook_holder, node_removal_hook_holder): New.
4880         (get_reference_vars_info_from_cgraph): Rename to ...
4881         (get_reference_vars_info): ... this one, use cgraph uids.
4882         (get_local_reference_vars_info, get_global_reference_vars_info):
4883         Use cgraph instead of decl.
4884         (ipa_reference_get_read_local, ipa_reference_get_written_local):
4885         Remove.
4886         (ipa_reference_get_read_global, ipa_reference_get_not_read_global
4887         ipa_reference_get_written_global,
4888         ipa_reference_get_not_written_global): Use cgraph argument.
4889         (check_call): Simplify avail check.
4890         (scan_stmt_for_static_refs): Update.
4891         (propagate_bits): Update.
4892         (merge_callee_local_info): Remove.
4893         (init_function_info): Use cgraph nodes.
4894         (clean_function_local_data): Break out from ...
4895         (clean_function): ... here.
4896         (copy_local_bitmap, copy_global_bitmap): New functions.
4897         (duplicate_node_data, remove_node_data): New functions.
4898         (generate_summary): Register hooks; use visibility instead of
4899         master clones.
4900         (propafate): Use cgraph nodes; copy bitmap to each node in cycle.
4901         * ipa-reference.h (ipa_reference_local_vars_info_d,
4902         ipa_reference_global_vars_info_d,
4903         ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
4904         ipa_reference_vars_info_t): Move to ipa-reference.c
4905         (ipa_reference_get_read_local, ipa_reference_get_written_local):
4906         Remove.
4907         (ipa_reference_get_read_global, ipa_reference_get_written_global,
4908         ipa_reference_get_not_read_global,
4909         ipa_reference_get_not_written_global): Update prototype.
4910         * ipa-pure-const.c (funct_state_vec): Turn into VECtor.
4911         (init_state): Remove.
4912         (node_duplication_hook_holder, node_removal_hook_holder): New.
4913         (get_function_state, set_function_state): Use VECtor.
4914         (analyze_function): Check body availability.
4915         (add_new_function): Likewise.
4916         (duplicate_node_data, remove_node_data): New.
4917         (generate_summary): Register hooks; do not care about clones.
4918         (propafate): Do not care about clones; recursive functions are
4919         not looping.
4920         * ipa-utils.c (searchc, ipa_utils_reduced_inorder): Do not skip clones.
4921         * ipa-prop.c (edge_removal_hook_holder, node_removal_hook_holder,
4922         * edge_duplication_hook_holder, node_duplication_hook_holder): Make
4923         static.
4924         * tree-flow.h (function_ann_d): Remove reference_vars_info.
4925         * tree-ssa-opreands.c (add_call_clobber_ops, add_call_read_ops):
4926         Update call of ipa-reference accesors.
4927
4928 2008-09-18  Simon Baldwin  <simonb@google.com>
4929
4930         * c-opts.c (c_common_handle_option): Add handling for
4931         -Wbuiltin-macro-redefined command line option.
4932         * c.opt: Added builtin-macro-redefined option.
4933         * doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined
4934         documentation.
4935
4936 2008-09-18  Richard Guenther  <rguenther@suse.de>
4937
4938         PR tree-optimization/37258
4939         * tree-ssa-sccvn.c (vn_phi_compute_hash): Include the precision
4940         and signedness for integral types.
4941         (vn_phi_eq): Require compatible types.
4942
4943 2008-09-18  Jakub Jelinek  <jakub@redhat.com>
4944
4945         PR debug/34037
4946         * gimplify.c (gimplify_type_sizes): When not optimizing, ensure
4947         TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
4948         VAR_DECL.
4949         * cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
4950         !DECL_IGNORED_P vars in local_decls list for instantiate_decls,
4951         ggc_free other TREE_LIST nodes from that chain.
4952         * function.c (instantiate_decls): Instantiate also DECL_RTL
4953         of vars in cfun->local_decls, free that list afterwards.
4954
4955 2008-09-18  Eric Botcazou  <ebotcazou@adacore.com>
4956
4957         * config/sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): Move to...
4958         * config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): ...here.
4959
4960 2008-09-18  Andrew MacLeod  <amacleod@redhat.com>
4961
4962         * tree-outof-ssa.c (eliminate_useless_phis): Fix formatting.
4963         * tree-flow-.h (struct immediate_use_iterator_d): Fix comment.
4964
4965 2008-09-18  Andrew MacLeod  <amacleod@redhat.com>
4966
4967         PR tree-optimization/37102
4968         * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args
4969         from a node. Check to see if another PHI is dead.
4970         (eliminate_useless_phis): Rename from eliminate_virtual_phis and
4971         remove real PHIs which have no uses.
4972         (rewrite_out_of_ssa): Call eliminate_useless_phis.
4973
4974 2008-09-18  Richard Guenther  <rguenther@suse.de>
4975
4976         PR middle-end/37284
4977         * tree-cfg.c (remove_useless_stmts_1): Remove
4978         GIMPLE_CHANGE_DYNAMIC_TYPE if not optimizing.
4979
4980 2008-09-18  Nick Clifton  <nickc@redhat.com>
4981
4982         * config/frv/frv.h (IRA_COVER_CLASSES): Define.
4983         (SECONDARY_INPUT_RELOAD_CLASS): Omit unused argument in call
4984         to frv_secondary_reload_class.
4985         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
4986         * config/frv/frv.c (TARGET_SECONDARY_RELOAD): Define.
4987         (frv_secondary_reload_class): Omit unused parameter.
4988         (frv_secondary_reload): New function.  Handle the case when
4989         secondary_reload_class() is called before the reload_(in|out)
4990         _optabs have been initialised.
4991         * config/frv/frv-protos.h (frv_secondary_reload_class): Omit
4992         unused parameter.
4993         * config/frv/frv.md: Define an exclusion set between fr550_m0
4994         and fr550_f0.
4995
4996 2008-09-18  Richard Guenther  <rguenther@suse.de>
4997
4998         PR tree-optimization/37456
4999         * tree-ssa-reassoc.c (build_and_add_sum): If the stmt we
5000         want to insert after ends a BB insert on the single fallthru
5001         outgoing edge.
5002
5003 2008-09-18  Andreas Krebbel  <krebbel1@de.ibm.com>
5004
5005         * doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
5006         Mention -march=z9-109, z9-ec and z10.
5007
5008 2008-09-18  Uros Bizjak  <ubizjak@gmail.com>
5009
5010         PR rtl-optimization/37544
5011         * regrename.c (maybe_mode_change): Exit early when copy_mode
5012         is narrower than orig_mode and narrower than new_mode.
5013
5014 2008-09-18  Alexander Monakov  <amonakov@ispras.ru>
5015
5016         PR middle-end/37499
5017         * sched-int.h (struct _haifa_insn_data): Remove unused field ref_count.
5018
5019         * sched-rgn.c (ref_counts): Remove.
5020         (insn_referenced): New static variable.
5021         (INSN_REF_COUNT): Remove.
5022         (sched_run_compute_dependencies): Use insn_referenced instead of
5023         INSN_REF_COUNT.
5024         (add_branch_dependences): Likewise.  Delete dead assignment.
5025
5026 2008-09-17  Adam Nemet  <anemet@caviumnetworks.com>
5027
5028         * haifa-sched.c (dep_cost_1): Recognize the producer even if the
5029         consumer is an asm.  Add comment why this is important.
5030         (choose_ready): Add comment to the "INSN_CODE (insn) >= 0 ||
5031         recog_memoized (insn) < 0" assert.  Put ENABLE_CHECKING around it.
5032
5033 2008-09-17  Joseph Myers  <joseph@codesourcery.com>
5034
5035         * expr.c (emit_group_store): Do not shift before moving via a
5036         stack slot.
5037
5038 2008-09-17  Eric Botcazou  <ebotcazou@adacore.com>
5039
5040         * varasm.c (initializer_constant_valid_p): Forbid view-conversions
5041         from aggregate to non-aggregate type if the bit pattern is not fully
5042         preserved afterwards.
5043
5044 2008-09-17  Richard Guenther  <rguenther@suse.de>
5045
5046         * tree-cfg.c (verify_types_in_gimple_assign): Rename to ...
5047         (verify_gimple_assign): ... this.  Split into ...
5048         (verify_gimple_assign_unary): ... this,
5049         (verify_gimple_assign_binary): ... that,
5050         (verify_gimple_assign_single): ... and this.
5051         (verify_types_in_gimple_stmt): Call verify_gimple_assign.
5052         Fix GIMPLE_CHANGE_DYNAMIC_TYPE handling.
5053         (verify_types_in_gimple_min_lval): Handle TARGET_MEM_REF.
5054         (verify_types_in_gimple_reference): Be forgiving with
5055         VIEW_CONVERT_EXPRs.
5056         (verify_gimple_phi): Deal with virtual operands.
5057
5058         * tree.def (PREDICT_EXPR): Change to tcc_expression.
5059
5060 2008-09-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5061
5062         * tree.c (get_callee_fndecl): Don't call the language hook.
5063         * langhooks.h (lang_hooks): Remove lang_get_callee_fndecl.
5064         * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): Kill.
5065         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_GET_CALLEE_FNDECL.
5066
5067 2008-09-17  Jakub Jelinek  <jakub@redhat.com>
5068
5069         * tree.c (protected_set_expr_location): Don't unnecessarily
5070         check for error_mark_node.
5071
5072 2008-09-17  Art Haas  <ahaas@impactweather.com>
5073
5074         * ipa-reference.c (analyze_function): Declare step only if
5075         ENABLE_CHECKING is defined.
5076
5077 2008-09-17  Jan Hubicka  <jh@suse.cz>
5078
5079         PR c++/18071
5080         * tree.h (DECL_INLINE): remove.
5081         (DECL_DECLARED_INLINE_P): Update docs.
5082         (DECL_NO_INLINE_WARNING_P): new.
5083         (tree_function_decl): Replace inline_flag by no_inline_warning_flag.
5084         * tree-inline.c (inlinable_function_p): Set DECL_NO_INLINE_WARNING_P.
5085
5086 2008-09-17  Jakub Jelinek  <jakub@redhat.com>
5087             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5088
5089         PR bootstrap/37441
5090         * dwarf2out.c (dwarf2out_do_cfi_asm) [MIPS_DEBUGGING_INFO]: Return
5091         false.
5092
5093 2008-09-17  Jan Hubicka  <jh@suse.cz>
5094
5095         * ipa-reference.c (ipa_obstack): Remove.
5096         (local_info_obstack, global_info_obstack): New.
5097         (add_static_var): We now handle variables only.
5098         (mark_address_taken, mark_load, mark_store): New functions based on ...
5099         (check_operand): ... remove.
5100         (get_asm_stmt_operands): Rename to ...
5101         (check_asm_memory_clobber): ... this. Look only for memory clobber.
5102         (scan_stmt_for_static_refs): Rewrite.
5103         (scan_op_for_static_refs): Rename to ...
5104         (scan_initializer_for_static_refs): do not look for VAR_DECL
5105         initializers; stop recursion on types and decls.
5106         (ipa_init): Use proper obstacks.
5107         (analyze_variable): Use scan_initializer_for_static_refs.
5108         (init_function_info): Use local obstack.
5109         (analyze_function): Simplify.
5110         (add_new_function): We don't need visited_nodes obstack.
5111         (generate_summary): Use proper obstacks; cleanup after propagation.
5112
5113 2008-09-17  Richard Guenther  <rguenther@suse.de>
5114
5115         PR middle-end/37385
5116         PR tree-optimization/37491
5117         * alias.c (get_alias_set): Use the canonical type.
5118         * tree-vect-transform.c (vectorizable_store): Use the type of
5119         the lhs for the vector type.  Adjust checking.
5120         (vectorizable_load): Adjust checking.
5121
5122 2008-09-16  Jakub Jelinek  <jakub@redhat.com>
5123             Adam Nemet  <anemet@caviumnetworks.com>
5124
5125         PR rtl-optimization/37483
5126         * ifcvt.c (noce_try_sign_mask): Use if_info->test_bb instead of
5127         if_info->insn_b's bb as argument to optimize_bb_for_speed_p.
5128         Rearrange code to better match the original comment.  Check
5129         t_unconditional first.  Improve comment.
5130
5131 2008-09-16  Jakub Jelinek  <jakub@redhat.com>
5132
5133         PR c/37529
5134         * gimplify.c (gimplify_expr) <case GOTO_EXPR>: If gimplification of
5135         GOTO_DESTINATION failed, don't create GIMPLE_GOTO.
5136
5137         PR c++/37530
5138         * gimplify.c (gimplify_expr) <case TRY_CATCH_EXPR>: Don't create
5139         GIMPLE_TRY if cleanup sequence is empty.
5140
5141 2008-09-16  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5142
5143         PR middle-end/37263
5144         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Prefer the
5145         eliminate IV if the cost are the same.
5146
5147 2008-09-16  Richard Guenther  <rguenther@suse.de>
5148
5149         PR middle-end/37380
5150         * tree-sra.c (sra_build_assignment): Do not call the gimplifier
5151         if not necessary.
5152
5153 2008-09-16  Richard Guenther  <rguenther@suse.de>
5154
5155         PR tree-optimization/37508
5156         * tree-vrp.c (simplify_truth_ops_using_ranges): Also allow -1.
5157
5158 2008-09-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5159
5160         * config/sh/sh.md (movsf_ie): Fix length for TARGET_SH2A.
5161
5162 2008-09-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5163
5164         * config/rs6000/rs6000.md (floatsidf2): Rewrite PowerPC64 case to
5165         use gen_floatdidf2 directly.
5166         (floatunssidf2): Likewise.
5167         (floatsidf_ppc64_mfpgpr): Remove.
5168         (floatsidf_ppc64): Remove.
5169         (floatunssidf_ppc64): Remove.
5170
5171 2008-09-15  Jakub Jelinek  <jakub@redhat.com>
5172
5173         * ira-color.c (finish_cost_update): Free update_cost_queue_elems
5174         rather than update_cost_queue.
5175
5176         * tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_release
5177         in every call starting with the second one, instead of only when
5178         alias_bitmap_obstack.elements != NULL.
5179
5180         * tree-predcom.c (filter_suitable_components): Free all refs in
5181         act->refs vector before calling release_component.
5182         (add_ref_to_chain): Free ref if not adding it to chain->refs.
5183
5184         * tree-data-ref.c (free_subscripts): Free all subscript objects.
5185
5186         * tree-loop-linear.c (linear_transform_loops): Initialize
5187         lambda_obstack only after calling perfect_loop_nest_depth.
5188         Goto free_and_continue instead of just continue for later failures.
5189
5190         PR middle-end/37479
5191         * doc/invoke.texi: Document -fno-dwarf2-cfi-asm.
5192
5193         PR libmudflap/36397
5194         * tree-mudflap.c (mf_xform_derefs_1): Handle VIEW_CONVERT_EXPR.
5195
5196 2008-09-14  Andreas Schwab  <schwab@suse.de>
5197
5198         * tree-call-cdce.c (check_target_format): Accept Motorola formats.
5199
5200 2008-09-14  Jan Hubicka  <jh@suse.cz>
5201
5202         * invoke.texi (-fconserve-stack): Document.
5203         * opts.c (decode_options): Handle conserve_stack.
5204         * common.opt (fconvserve_stack): New.
5205
5206 2008-09-14  David Edelsohn  <edelsohn@gnu.org>
5207
5208         * config.host: Add x-aix to host_xmake_file.
5209         * config/rs6000/t-aix52: Do not override LDFLAGS.
5210         * config/rs6000/x-aix: New file.
5211
5212 2008-09-14  Andy Hutchinson  <hutchinsonandy@aim.com>
5213
5214         PR target/19636
5215         PR target/24894
5216         PR target/31644
5217         PR target/31786
5218         * config/avr/avr.c (legitimate_address_p): Fix problem where subreg
5219         is not recognized as a valid register usage. Allow REG_X to be used
5220         as a base pointer.
5221         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Remove code that
5222         forces a reload when using a base register.
5223
5224 2008-09-14  Danny Smith  <dannysmith@users.sourceforge.net>
5225
5226         * config/i386/cygming-crtend.c (register_frame_ctor): If
5227         DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame
5228         directly with atexit.
5229         (deregister_frame_ctor): Rename to ...
5230         (deregister_frame_dtor): Use to call __gcc_deregister_frame
5231         if !DEFAULT_USE_CXA_ATEXIT.
5232
5233 2008-09-13  Jan Hubicka  <jh@suse.cz>
5234
5235         * cgraph.c: Include value-prof.h
5236         * Makefile.in (cgraph.o): Add value-prof.h dependency.
5237
5238 2008-09-13  Jan Hubicka  <jh@suse.cz>
5239
5240         PR middle-end/32581
5241         * tree-profile.c (add_abnormal_goto_call_edges): New function.
5242         (tree_gen_interval_profiler, tree_gen_pow2_profiler,
5243         tree_gen_one_value_profiler, tree_gen_average_profiler,
5244         tree_gen_ic_func_profiler, tree_gen_ior_profiler): Use it.
5245
5246 2008-09-13  Jan Hubicka  <jh@suse.cz>
5247
5248         * i386.c (ix86_expand_movmem, ix86_expand_movstr): Avoid processing
5249         too many bytes on misalligned blocks.
5250
5251 2008-09-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5252
5253         * doc/cfg.texi: Fix some typos.
5254         * doc/extend.texi: Likewise.
5255         * doc/install.texi: Likewise.
5256         * doc/invoke.texi: Likewise.
5257         * doc/rtl.texi: Likewise.
5258         * doc/tree-ssa.texi: Likewise.
5259
5260 2008-09-13  Richard Guenther  <rguenther@suse.de>
5261
5262         PR middle-end/30141
5263         * tree-nested.c (finalize_nesting_tree_1): Generate valid
5264         gimple stores for memory rhs.
5265
5266 2008-09-13  H.J. Lu  <hongjiu.lu@intel.com>
5267
5268         PR rtl-optimization/37489
5269         * cse.c (fold_rtx): Don't return const_true_rtx for float
5270         compare if FLOAT_STORE_FLAG_VALUE is undefined.
5271
5272 2008-09-13  Jan Hubicka  <jh@suse.cz>
5273
5274         PR tree-optimization/37392
5275         * tree-inline.c (remap_gimple_stmt): Do not remap return value.
5276
5277 2008-09-13  Martin Jambor  <mjambor@suse.cz>
5278             Jan Hubicka  <jh@suse.cz>
5279
5280         * cgraph.c (free_edges): New variable.
5281         (NEXT_FREE_EDGE): New macro.
5282         (cgraph_free_edge): New function.
5283         (cgraph_remove_edge): Call cgraph_remove_edge_1.
5284         (cgraph_node_remove_callees): Likewise.
5285         (cgraph_node_remove_callers): Likewise.
5286         (cgraph_create_edge): Reuse edges from the free list.  Do not
5287         update uid if doing so.
5288         (cgraph_remove_*_hook): Add free call.
5289
5290 2008-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
5291
5292         * ira-color.c (conflict_allocno_vec): Delete.
5293         (update_cost_queue_elem): New structure.
5294         (update_cost_queue): New variable.
5295         (update_cost_queue_tail): Likewise.
5296         (update_cost_queue_elems): Likewise.
5297         (allocno_update_cost_check): Delete.
5298         (initiate_cost_update): Allocate update_cost_queue_elems
5299         instead of allocno_update_cost_check.
5300         (finish_cost_update): Update the free()s accordingly.
5301         (start_update_cost): New function.
5302         (queue_update_cost): Likewise.
5303         (get_next_update_cost): Likewise.
5304         (update_copy_costs_1): Inline into...
5305         (update_copy_costs): ...here.  Use a queue instead of recursive calls.
5306         Use cover_class instead of ALLOCNO_COVER_CLASS (another_allocno),
5307         once we've established they are equal.  Don't allocate update
5308         costs if there is nothing to add to them.
5309         (update_conflict_hard_regno_costs): Remove ALLOCNO and
5310         DIVISOR arguments.  Use a queue instead of recursive calls;
5311         process all the allocnos in the initial queue, rather than
5312         a single allocno.
5313         (assign_hard_reg): Use queue_update_cost instead of
5314         conflict_allocno_vec.  Queue coalesced allocnos instead
5315         of calling update_conflict_hard_regno_costs for each one.
5316         Just call update_conflict_hard_regno_costs once for the
5317         entire queue.
5318         (ira_color): Remove conflict_allocno_vec handling.
5319
5320 2008-09-12  Sebastian Pop  <sebastian.pop@amd.com>
5321
5322         PR tree-optimization/37484
5323         * graphite.c (scop_record_loop): Use snprintf instead of sprintf.
5324         (save_var_name): Same.
5325         (initialize_cloog_names): Same.
5326         (initialize_cloog_names): Same.
5327
5328 2008-09-12  Sebastian Pop  <sebastian.pop@amd.com>
5329
5330         * tree-scalar-evolution.c (set_instantiated_value): Set
5331         instantiated_below.
5332
5333 2008-09-12  Vladimir Makarov  <vmakarov@redhat.com>
5334
5335         PR rtl-opt/37377
5336
5337         * ira-build.c (common_loop_tree_node_dominator): Remove.
5338         (copy_live_ranges_to_removed_store_destinations): New function.
5339         (regno_top_level_allocno_map): Move to top level from ...
5340         (ira_flattening): ... here.  Use
5341         copy_live_ranges_to_removed_store_destinations.
5342
5343         * ira-emit.c (generate_edge_moves): Fix a comment.
5344
5345 2008-09-12  Anatoly Sokolov  <aesok@post.ru>
5346
5347         PR target/37466
5348         * config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for
5349         scratch register after 'set' pattern.
5350
5351 2008-09-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5352
5353         * emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment
5354         information passed to mark_reg_pointer.
5355         * explow.c (force_reg): Likewise.
5356
5357 2008-09-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5358
5359         * config/spu/spu.c (spu_override_options): Default to -mno-safe-hints
5360         when building for the celledp architecture.
5361
5362 2008-09-12  Richard Guenther  <rguenther@suse.de>
5363
5364         * tree-vrp.c (simplify_truth_ops_using_ranges): Fix types.
5365
5366 2008-09-12  Eric Botcazou  <ebotcazou@adacore.com>
5367
5368         PR rtl-optimization/37424
5369         * ira-color.c (coalesced_pseudo_reg_slot_compare): Untie by comparing
5370         the regnos instead of the addresses.
5371
5372 2008-09-11  Janis Johnson  <janis187@us.ibm.com>
5373
5374         * ginclude/float.h (DEC_EVAL_METHOD): Correct the macro name.
5375
5376 2008-09-11  Richard Guenther  <rguenther@suse.de>
5377
5378         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid
5379         entering the weaker equivalence recording.
5380
5381         * tree-ssa-phiprop.c (propagate_with_phi): Fix tuplification.
5382
5383 2008-09-11  Jeff Law <law@redhat.com>
5384
5385         * reload1.c (alter_reg): Undo the BYTE_BIG_ENDIAN correction performed
5386         by assign_stack_local on the IRA path for stack slot sharing
5387         as well as the non-IRA path.
5388
5389 2008-09-11  Uros Bizjak  <ubizjak@gmail.com>
5390
5391         * config/i386/i386.h: Fix whitespace issues.
5392
5393 2008-09-11  Martin Jambor  <mjambor@suse.cz>
5394
5395         * ipa-prop.h (struct ipa_param_flags): Removed.
5396         (struct ipa_param_descriptor): New structure.
5397         (struct ipa_node_params): ipcp_lattices, param_decls and
5398         param_flags moved to ipa_param_description.
5399         (ipa_get_ith_param): Renamed to ipa_get_param, changed to access
5400         descriptors.  Renamed all users.
5401         (ipa_is_ith_param_modified): Renamed to ipa_is_param_modified,
5402         changed to access descriptors.  Renamed all users.
5403         (ipa_is_ith_param_called): Renamed to ipa_is_param_called, changed
5404         to access descriptors. Renamed all users.
5405         * ipa-cp.c (ipcp_init_cloned_node): Call
5406         ipa_initialize_node_params instead of ipa_count_formal_params and
5407         ipa_create_param_decls_array.
5408         (ipcp_analyze_node): Likewise.
5409         (ipcp_get_ith_lattice): Renamed to ipcp_get_lattice, changed to access
5410         descriptors.  Renamed all users.
5411         (ipcp_initialize_node_lattices): Remove allocation.
5412         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
5413         ipa_initialize_node_params instead of ipa_count_formal_params and
5414         ipa_create_param_decls_array.
5415         * ipa-prop.c (ipa_create_param_decls_array): Renamed to
5416         ipa_populate_param_decls, made static, added parameter info,
5417         renamed mt to node, removed allocation, changed to use
5418         descriptors.
5419         (ipa_count_formal_params): Made static, added parameter info,
5420         renamed mt to node.
5421         (ipa_initialize_node_params): New function.
5422         (ipa_check_stmt_modifications): Changed to use descriptors.
5423         (ipa_detect_param_modifications): Removed allocation, changed to
5424         use descriptors.
5425         (ipa_note_param_call): Changed to use descriptors.
5426         (ipa_analyze_params_uses): Removed allocation.
5427         (ipa_free_node_params_substructures): Changed to use descriptors.
5428         (ipa_edge_duplication_hook): Use the unused attribute.
5429         (ipa_node_duplication_hook): Use the unused attribute, changed to
5430         use descriptors, changed to duplicate descriptors.
5431
5432         * ipa-inline.c (cgraph_mark_inline_edge): New parameter new_edges,
5433         changed all callers.  Call ipa_propagate_indirect_call_infos if doing
5434         indirect inlining.  Made static.
5435         (cgraph_decide_inlining): Freeing ipa-prop structures after inlining
5436         functions called only once.
5437         (cgraph_decide_recursive_inlining): Don't call
5438         ipa_propagate_indirect_call_infos, pass new_edges to
5439         cgraph_mark_inline_edge instead.
5440         (cgraph_decide_inlining_of_small_functions): Don't call
5441         ipa_propagate_indirect_call_infos, pass new_edges to
5442         cgraph_mark_inline_edge instead.
5443         (cgraph_decide_inlining): Don't call
5444         ipa_propagate_indirect_call_infos.
5445         * ipa-prop.c: Check that vectors are allocated.
5446
5447         * ipa-inline.c (cgraph_mark_inline_edge): Returns boolean, true
5448         iff a new cgraph edges have been created.
5449         (cgraph_decide_inlining): New variable redo_always_inline.
5450         Flattening and always_inlining loop until callgraph stabilizes.
5451         * ipa-prop.c (update_call_notes_after_inlining): Returns boolean,
5452         true iff new cgraph edges have been created.
5453         (propagate_info_to_inlined_callees): Likewise.
5454         (ipa_propagate_indirect_call_infos): Likewise.
5455
5456 2008-09-11  Richard Guenther  <rguenther@suse.de>
5457
5458         * tree-vectorizer.c (slpeel_add_loop_guard): Fix types.
5459         (set_prologue_iterations): Likewise.
5460         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
5461         Likewise.
5462         (vect_update_init_of_dr): Likewise.
5463         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Fix
5464         type verification.
5465         * fold-const.c (fold_unary): Do not generate calculations
5466         in sub-types.
5467
5468 2008-09-11  Paolo Bonzini  <bonzini@gnu.org>
5469
5470         * dojump.c (do_jump) [BIT_AND_EXPR]: Move below.  Fall through to
5471         TRUTH_AND_EXPR for boolean (1-bit precision) expressions.
5472         (do_jump) [BIT_IOR_EXPR]: Compile as TRUTH_OR_EXPR.
5473
5474         * tree-flow.h (simplify_stmt_using_ranges): Accept a GSI, return
5475         a bool.
5476         * tree-ssa-propagate.c (substitute_and_fold): Pass a GSI to
5477         VRP's simplify_stmt_using_ranges.  Do simplify_stmt_using_ranges
5478         before finalizing the changes.
5479         * tree-vrp.c (extract_range_from_binary_expr): Add limited support
5480         for BIT_IOR_EXPR.
5481         (simplify_truth_ops_using_ranges): New.
5482         (simplify_div_or_mod_using_ranges, simplify_abs_using_ranges,
5483         simplify_cond_using_ranges, simplify_switch_using_ranges): Return
5484         whether a simplification was made.
5485         (simplify_stmt_using_ranges): Ditto, and accept a GSI.  For GS_ASSIGN,
5486         use a switch statement and also call simplify_truth_ops_using_ranges.
5487
5488 2008-09-11  Jan Hubicka  <jh@suse.cz>
5489
5490         * ggc-common.c (loc_array): Make static.
5491         * dce.c (rest_of_handle_ud_dce): Free worklist.
5492
5493 2008-09-11  Jan Hubicka  <jh@suse.cz>
5494
5495         * cgraph.c (cgraph_release_function_body): Plug memory leak on
5496         ipa_transforms_to_apply and CFG; ggc_free gimple df and struct
5497         function so we are sure we do not dangle it forever.
5498         * function.c (outer_function_chain, find_function_data): Remove.
5499         (function_context_stack): New.
5500         (push_function_context, pop_function_context): Update.
5501         * function.h (struct function): Remove pointer outer.
5502         (outer_function_chain, find_function_data): Remove.
5503         * stmt.c (force_label_rtx): Remove dead call of find_function_data.
5504
5505 2008-09-11  Jan Hubicka  <jh@suse.cz>
5506
5507         PR middle-end/37448
5508         * cgraph.c (cgraph_create_edge): Use !cgraph_edge for sanity check.
5509
5510 2008-09-11  Jan Hubicka  <jh@suse.cz>
5511
5512         * tree-ssa-pre.c (phi_translate_1): Fix memory leak
5513
5514 2008-09-11  Jan Hubicka  <jh@suse.cz>
5515
5516         * tree-ssa.c (redirect_edge_var_map_clear): Fix formatting.
5517         (free_var_map_entry): New function.
5518         (redirect_edge_var_map_destroy): Use it.
5519
5520 2008-09-11  Jan Hubicka  <jh@suse.cz>
5521
5522         PR middle-end/37448
5523         * tree-inline.c (add_lexical_block): Replace with ...
5524         (prepend_lexical_block): ... prepend at begginig.
5525         (remap_blocks): Use it and reverse later.
5526         (expand_call_inline): Use prepend_lexical_block.
5527
5528 2008-09-11  Jan Hubicka  <jh@suse.cz>
5529
5530         * gimplify.c (pop_gimplify_context): Free bind_expr_stack.
5531
5532 2008-09-11  Jan Hubicka  <jh@suse.cz>
5533
5534         * function.c (free_after_compilation): Call insn_locators_free.
5535         * cfglayout.c (insn_locators_free): New function.
5536         * rtl.h (insn_locators_free): Declare.
5537
5538 2008-09-11  Jan Hubicka  <jh@suse.cz>
5539
5540         * ifcvt.c (check_cond_move_block): Make regs argument pointer to
5541         vector pointer.
5542         (cond_move_process_if_block): Update call.
5543
5544 2008-09-11  Jan Hubicka  <jh@suse.cz>
5545
5546         * toplev.c (dump_memory_report): Call dump_vec_loc_statistics.
5547         * vec.c: Include hashtab.h
5548         (vec_descriptor, ptr_hash_entry): New structures.
5549         (vec_desc_hash, vec_ptr_map): New static variables.
5550         (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr, vec_descriptor,
5551         register_overhead, free_overhead, vec_heap_free): New functions.
5552         (vec_gc_o_reserve_1): ggc_free when resizing to 0.
5553         (vec_heap_o_reserve_1): free when resizing to 0; add statistics.
5554         (cmp_statistic, add_statistics, dump_vec_loc_statistics):
5555         New functions.
5556
5557 2008-09-11  Ira Rosen  <irar@il.ibm.com>
5558
5559         PR tree-optimization/37474
5560         * tree-vect-analyze.c (vect_supported_load_permutation_p): Check the
5561         length of load permutation.
5562
5563 2008-09-11  Andreas Schwab  <schwab@suse.de>
5564
5565         * config/m68k/m68k.h (IRA_COVER_CLASSES): Define.
5566
5567 2008-09-11  Jakub Jelinek  <jakub@redhat.com>
5568
5569         PR target/37382
5570         * expmed.c (extract_low_bits): Avoid creating invalid subregs.
5571         * dse.c (find_shift_sequence): Use extract_low_bits instead of
5572         simplify_gen_subreg.
5573
5574 2008-09-11  Ira Rosen  <irar@il.ibm.com>
5575
5576         * tree-vect-transform.c (vectorizable_store): Use the rhs vector type
5577         for alias check.
5578
5579 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
5580
5581         PR middle-end/37338
5582         * gimplify.c (gimplify_body): Call default_rtl_profile.
5583
5584         PR target/36904
5585         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Return NULL
5586         instead of tok->val.node if not expanding to something else.  Handle
5587         intervening CPP_PADDING tokens.
5588         (altivec_categorize_keyword): Remove unneeded comparisons.
5589
5590 2008-09-10  Richard Guenther  <rguenther@suse.de>
5591
5592         * tree-ssa-pre.c (phi_translate_1): Fix memory leak.
5593
5594 2008-09-10  Richard Guenther  <rguenther@suse.de>
5595
5596         PR middle-end/37432
5597         * tree-inline.c (insert_init_stmt): Make sure to not
5598         insert invalid gimple stores.
5599
5600 2008-09-10  Sebastian Pop  <sebastian.pop@amd.com>
5601
5602         PR tree-optimization/37388
5603         * toplev.c (process_options): Fail and warn when graphite
5604         flags are used, but the compiler has not been configured
5605         with graphite libraries.
5606         * graphite.c (graphite_transform_loops): Remove printfs
5607         to dump_file for the case when graphite is not available.
5608
5609 2008-09-10  H.J. Lu  <hongjiu.lu@intel.com>
5610
5611         PR target/37434:
5612         * config/i386/i386.c (ix86_expand_vector_init_interleave): Force
5613         the even element into register.
5614         (ix86_expand_vector_init_general): Don't use
5615         ix86_expand_vector_init_interleave on V16QImode and V8HImode
5616         if we can't move from GPR to SSE register directly.
5617
5618 2008-09-10  Bernd Schmidt  <bernd.schmidt@analog.com>
5619
5620         * config/bfin/bfin.c (workaround_speculation): Correct algorithm to
5621         not lose track of the number of NOPs needed.  Number of NOPs needed
5622         for sync vs. loads workaround was switched; corrected.  Run second
5623         pass for all workarounds.  No NOPs needed after call insns.  Change
5624         second pass to use find_next_insn_start and find_load helpers in order
5625         to properly detect parallel insns.
5626         * config/bfin/bfin.md (cbranch_with_nops): Increase length.
5627
5628 2008-09-10  Jan Hubicka  <jh@suse.cz>
5629
5630         * value-prof.c (gimple_ic): Fix tuplification bug.
5631         * sched-deps.c (sched_insns_conditions_mutex_p): Silence unitialized
5632         var warning.
5633
5634 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
5635
5636         PR tree-optimization/37353
5637         * tree-call-cdce.c (cond_dead_built_in_calls): Remove.
5638         (shrink_wrap_conditional_dead_built_in_calls): Add calls argument, use
5639         calls instead of cond_dead_built_in_calls.
5640         (tree_call_cdce): Add cond_dead_built_in_calls automatic variable,
5641         initalize the vector only before adding first entry.  Use VEC_safe_push
5642         instead of VEC_quick_push.  Pass cond_dead_built_in_calls to
5643         shrink_wrap_conditional_dead_built_in_calls call.
5644
5645 2008-09-10  Ira Rosen  <irar@il.ibm.com>
5646
5647         PR tree-optimization/37385
5648         * tree-vect-transform.c (vect_create_data_ref_ptr): Add a new
5649         argument, and use it as a vector type if not NULL.
5650         (vectorizable_store): Call vect_create_data_ref_ptr with the type of
5651         vectorized rhs.
5652         (vect_setup_realignment): Call vect_create_data_ref_ptr with
5653         additional argument.
5654         (vectorizable_load): Likewise.
5655
5656 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
5657
5658         * config/i386/i386.md (SWI32): New mode iterator.
5659         (jcc_fused_1, jcc_fused_2, jcc_fused_3, jcc_fused_4): Use it instead
5660         of SWI.
5661
5662 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
5663
5664         PR rtl-optimization/37435
5665         * caller-save.c (insert_restore, insert_save): Check the mode by
5666         reg_save_code.
5667
5668 2008-09-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5669
5670         PR other/37265
5671         * dwarf2asm.c (dw2_force_const_mem): Use unstripped symbol name for
5672         splay tree lookup.
5673         (dw2_output_indirect_constant_1): Use unstripped name in symbol
5674         reference.
5675
5676 2008-09-09  Sandra Loosemore  <sandra@codesourcery.com>
5677
5678         * doc/invoke.texi (ARM Options): Correct errors in discussion
5679         of -mfloat-abi, -mhard-float, and -msoft-float.
5680
5681 2008-09-09  Jakub Jelinek  <jakub@redhat.com>
5682             Jan Hubicka  <jh@suse.cz>
5683
5684         PR middle-end/37356
5685         * tree-inline.c (copy_bb): Insert stmt into copy_basic_block before
5686         calling gimple_regimplify_operands on it.  Iterate over all newly
5687         added statements, not just the last one.
5688         (insert_init_stmt): Insert stmt into seq first, then call
5689         gimple_regimplify_operands on it.  Don't create new gimplification
5690         context, nor find referenced vars.
5691
5692 2008-09-09  Jakub Jelinek  <jakub@redhat.com>
5693
5694         PR other/37419
5695         * ipa-prop.h (ipa_propagate_indirect_call_infos): Change last argument
5696         to pointer to vector pointer.
5697         * ipa-prop.c (ipa_propagate_indirect_call_infos,
5698         propagate_info_to_inlined_callees): Likewise.
5699         (update_call_notes_after_inlining): Likewise.  Push new indirect edge
5700         to *new_edges instead of new_edges.  Reread IPA_EDGE_REF after
5701         ipa_check_create_edge_args.
5702         * ipa-inline.c (cgraph_decide_recursive_inlining): Change last
5703         argument to pointer to vector pointer.
5704         (cgraph_decide_inlining_of_small_function): Adjust
5705         cgraph_decide_recursive_inlining and ipa_propagate_indirect_call_infos
5706         calls.
5707
5708         PR target/37438
5709         * config/i386/i386.md (zero_extendqihi2_movzbl): Enable when
5710         optimizing for size, not speed.
5711
5712         PR rtl-optimization/37408
5713         * function.c (assign_parm_find_stack_rtl): Set correct MEM_SIZE
5714         if parm is promoted.
5715
5716 2008-09-09  Sebastian Pop  <sebastian.pop@amd.com>
5717
5718         PR tree-optimization/37375
5719         * tree-scalar-evolution.c (scev_info_str): Add field
5720         instantiated_below.
5721         (new_scev_info_str, eq_scev_info, find_var_scev_info,
5722         set_scalar_evolution, get_scalar_evolution, get_instantiated_value,
5723         set_instantiated_value): Pass instantiated_below.
5724         (analyze_scalar_evolution_1, analyze_scalar_evolution): Update calls
5725         to above functions.
5726         (instantiate_scev_1, instantiate_scev): Pass a basic block above which
5727         the definitions are not instantiated.
5728
5729         * tree-scalar-evolution.h (instantiate_scev): Update declaration.
5730         (block_before_loop): New.
5731         * tree-data-ref.c (dr_analyze_indices): Update uses of
5732         instantiate_scev.
5733         * graphite.c (block_before_scop): New.
5734         (loop_affine_expr, stmt_simple_for_scop_p, harmful_stmt_in_bb): Pass a
5735         basic block, not a loop for determining the parameters.
5736         (scopdet_edge_info, build_scops_1): Do not pass outermost loop in the
5737         scop.
5738         (idx_record_params, find_params_in_bb, find_scop_parameters,
5739         build_loop_iteration_domains, add_conditions_to_domain): Update calls
5740         to instantiate_scev.
5741
5742         * Makefile.in (cfgloopmanip.o): Add missing dependency on TREE_FLOW_H.
5743
5744 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
5745
5746         PR rtl-opt/37333
5747
5748         * ira-build.c (ira_create_allocno): Setup frequency to 0.
5749
5750         * ira-color.c (update_conflict_hard_regno_costs): Remove assert.
5751         Check zero freq and increase if necessary.
5752
5753 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
5754
5755         * ira-conflicts.c (process_regs_for_copy): Check that the hard
5756         regno is in the right range.  Add comments.
5757
5758 2008-09-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5759
5760         * Makefile.in (mips-tfile.o-warn): Don't error out on mips-tfile.c
5761         warnings.
5762         * mips-tfile.c (copy_object): Cast alloca result to int *.
5763         * mips-tdump.c (print_symbol): Cast xmalloc return values to
5764         proper types.
5765         Rename class to sclass.
5766         (read_tfile): Cast read_seek return values to proper types.
5767         Cast xcalloc return value to proper type.
5768
5769 2008-09-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5770
5771         * config/sol2.h (REGISTER_TARGET_PRAGMAS): Move ...
5772         * config/i386/sol2.h (REGISTER_SUBTARGET_PRAGMAS): ... here.
5773         * config/sparc/sol2.h (REGISTER_TARGET_PRAGMAS): ... and here.
5774
5775 2008-09-09  Jan Hubicka  <jh@suse.cz>
5776
5777         * profile.c (is_edge_inconsistent): Add debug output; ignore
5778         negative count on fake edges.
5779         (is_inconsistent): Add debug output.
5780
5781 2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
5782
5783         * haifa-sched.c (advance_one_cycle): Do not print '\n' before printing
5784         dump message.
5785         (choose_ready): When first insn is chosen from the ready list, also
5786         dump it.
5787
5788 2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
5789
5790         PR rtl-optimization/37360
5791         * haifa-sched.c (max_issue): Do not assert that we never issue more
5792         insns than issue_rate.  Add comment.
5793
5794 2008-09-09  Richard Guenther  <rguenther@suse.de>
5795
5796         * tree-cfg.c (verify_types_in_gimple_op): Remove.
5797         (verify_types_in_gimple_call): Rename to ...
5798         (verify_gimple_call): ... this.  Enhance.
5799         (verify_types_in_gimple_cond): Remove.
5800         (verify_gimple_comparison): New function ...
5801         (verify_types_in_gimple_assign): ... split out from here.
5802         (verify_types_in_gimple_return): Rename to ...
5803         (verify_gimple_return): ... this.  Enhance.
5804         (verify_types_in_gimple_switch): Rename to ...
5805         (verify_gimple_switch): ... this.  Enhance.
5806         (verify_gimple_goto): New function.
5807         (verify_types_in_gimple_phi): Rename to ...
5808         (verify_gimple_phi): ... this.  Enhance.
5809         (verify_types_in_gimple_stmt): Adjust calls to helper functions.
5810         Fold in single-statement cases from verify_types_in_gimple_seq_2.
5811         (verify_types_in_gimple_seq_2): Remove cases handled in
5812         verify_types_in_gimple_stmt.
5813
5814 2008-09-09  Bernd Schmidt  <bernd.schmidt@analog.com>
5815
5816         * config/bfin/bfin.c (n_regs_to_save): New static variable.
5817         (push_multiple_operation, pop_multiple_operation): Set it.
5818         (workaround_rts_anomaly): New function.
5819         (workaround_speculation): New function, broken out of bfin_reorg.
5820         (bfin_reorg): Call the new functions.
5821
5822 2008-09-09  Richard Guenther  <rguenther@suse.de>
5823
5824         PR middle-end/37354
5825         PR middle-end/30165
5826         * gimplify.c (gimplify_conversion): Change conversions of
5827         non-register type to VIEW_CONVERT_EXPRs.
5828         (gimplify_addr_expr): If we need to make the operand
5829         addressable make sure to use a properly initialized
5830         temporary for that so it gets a valid gimple store.
5831
5832 2008-09-09  Aldy Hernandez  <aldyh@redhat.com>
5833
5834         * function.h (struct function): Add function_start_locus.
5835         * cfgexpand.c (gimple_expand_cfg): Use it.
5836         * c-parser.c (c_parser_declaration_or_fndef): Set it.
5837
5838 2008-09-09  Richard Guenther  <rguenther@suse.de>
5839
5840         PR tree-optimization/37433
5841         * tree-ssa-ccp.c (ccp_fold): Properly guard folding of
5842         function calls.
5843
5844 2008-09-09  Richard Guenther  <rguenther@suse.de>
5845
5846         PR tree-optimization/37387
5847         * tree-ssa-ifcombine.c (ifcombine_iforif): Convert the name
5848         and bits to a common type.
5849
5850 2008-09-09  Nick Clifton  <nickc@redhat.com>
5851
5852         * config/v850/v850.md (return): Restore frame size restriction.
5853
5854 2008-09-09  Paolo Bonzini  <bonzini@gnu.org>
5855
5856         * c-common.c (c_expand_decl): Remove.
5857         * c-common.h (anon_aggr_type_p): Remove prototype.
5858         (DECL_ANON_UNION_ELEMS): Remove.
5859         * c-objc-common.h (LANG_HOOKS_EXPAND_DECL): Remove.
5860         * c-decl.c (anon_aggr_type_p): Remove.
5861         * langhooks-def.h (LANG_HOOKS_EXPAND_DECL): Remove.
5862         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_EXPAND_DECL.
5863         * langhooks.h (struct lang_hooks): Remove expand_decl.
5864         * langhooks.c (lhd_expand_decl): Remove.
5865         * stmt.c (expand_anon_union_decl): Remove.
5866         * tree.h (expand_anon_union_decl): Remove prototype.
5867
5868 2008-08-09  Andy Hutchinson  <hutchinsonandy@aim.com>
5869
5870         PR target/36609
5871         * config/avr/avr.c (avr_reorg): Create RTL for reversed compare with
5872         zero.
5873         * config/avr/avr.md  (QISI) : Define mode iterator.
5874         (negated_tst<mode>) : Redefine as split using mode macro.
5875         (reversed_tstqi): Define insn as reversed compare with zero.
5876         (reversed_tsthi): Ditto.
5877         (reversed_tstsi): Ditto.
5878
5879 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
5880
5881         PR middle-end/37393
5882         * tree-inline.c (copy_bb): When replacing a gimple_call_va_arg_pack_p
5883         call stmt by new_call, clear gimple_bb on stmt after gsi_replace.
5884
5885         PR middle-end/37414
5886         * predict.c (optimize_function_for_size_p): Don't segfault if
5887         FUN is NULL.
5888         * fold-const.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop,
5889         tree_swap_operands_p): Don't test cfun != NULL before calling
5890         optimize_function_for_s*_p.
5891
5892 2008-09-08  Eric Botcazou  <ebotcazou@adacore.com>
5893
5894         * ira-color.c (ira_reuse_stack_slot): Set slot_num on success at the
5895         end of the search.
5896
5897 2008-09-08  M R Swami Reddy <MR.Swami.Reddy@nsc.com>
5898
5899         * crx/crx.h (IRA_COVER_CLASSES): Define.
5900
5901 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
5902
5903         PR middle-end/37337
5904         * tree-ssa-dom.c (optimize_stmt): Call maybe_clean_or_replace_eh_stmt
5905         even when a stmt has been gimple_modified_p, but after fold_stmt is
5906         not any longer.  Remove unneeded may_have_exposed_new_symbols
5907         initializations.
5908
5909 2008-09-08  Richard Guenther  <rguenther@suse.de>
5910
5911         PR tree-optimization/37421
5912         * tree-ssa-sccvn.c (visit_copy): Make sure to fully
5913         valueize the RHS.
5914
5915 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
5916
5917         PR middle-end/37415
5918         * opts.c (common_handle_option): Handle OPT_ftree_store_ccp.
5919
5920 2008-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5921
5922         PR driver/37409
5923         * pa-hpux.h (LINK_SPEC): Strip -fwhole-program.
5924         * pa-hpux10.h (LINK_SPEC): Likewise.
5925         * pa-hpux11.h (LINK_SPEC): Likewise.
5926
5927 2008-09-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5928
5929         * pa32-regs.h (IRA_COVER_CLASSES): Define.
5930         * pa64-regs.h (IRA_COVER_CLASSES): Define.
5931
5932 2008-09-07  Helge Deller  <deller@gmx.de>
5933
5934         * pa/linux-atomic.c: New file.
5935         * pa/t-linux (LIB2FUNCS_STATIC_EXTRA): Define.
5936         * pa/t-linux64 (LIB2FUNCS_STATIC_EXTRA): Define.
5937
5938 2008-09-07  Richard Guenther  <rguenther@suse.de>
5939             Ira Rosen  <irar@il.ibm.com>
5940
5941         PR tree-optimization/36630
5942         * tree-vect-transform.c (vect_update_ivs_after_vectorizer):
5943         Call STRIP_NOPS before calling evolution_part_in_loop_num.
5944
5945 2008-09-07  Dorit Nuzman  <dorit@il.ibm.com>
5946             Ira Rosen  <irar@il.ibm.com>
5947
5948         PR tree-optimization/35642
5949         * config/rs6000/altivec.md (mulv8hi3): Implement.
5950
5951 2008-09-06  Jeff Law <law@redhat.com>
5952
5953         * h8300/h8300.h (IRA_COVER_CLASSES): Define.
5954
5955 2008-09-06  Jan Hubicka  <jh@suse.cz>
5956
5957         PR tree-optimization/14703
5958         * tree-ssa-live.c (remove_unused_scope_block_p): Remove ignored
5959         declarations.
5960         * passes.c (init_optimization_passes): Recompute inline parameters.
5961
5962 2008-09-06  Richard Sandiford  <rdsandiford@googlemail.com>
5963
5964         * config/mips/mips.c (mips_function_ok_for_sibcall): Check for
5965         DECL being null.
5966
5967 2008-09-06  Richard Sandiford  <rdsandiford@goolemail.com>
5968             Peter Fuerst  <post@pfrst.de>
5969
5970         * doc/invoke.texi: Document -mr10k-cache-barrier=.
5971         * doc/extend.texi: Document __builtin_mips_cache.
5972         * config/mips/mips-ftypes.def: Add a (VOID, SI, CVPOINTER) entry.
5973         * config/mips/mips.opt (mr10k-cache-barrier=): New option.
5974         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
5975         __GCC_HAVE_BUILTIN_MIPS_CACHE.
5976         (TARGET_CACHE_BUILTIN, ISA_HAS_CACHE): New macros.
5977         * config/mips/mips.c (mips_r10k_cache_barrier_setting): New enum.
5978         (set_push_mips_isas): New variable.
5979         (mips_r10k_cache_barrier): New variable.
5980         (cache): New availability predicate.
5981         (mips_builtins): Add an entry for __builtin_mips_cache.
5982         (mips_build_cvpointer_type): New function.
5983         (MIPS_ATYPE_CVPOINTER): New macro.
5984         (mips_prepare_builtin_arg): Only use the insn's mode if the rtx's
5985         mode is VOIDmode.
5986         (r10k_simplified_address_p, r10k_simplify_address)
5987         (r10k_uncached_address_p, r10k_safe_address_p)
5988         (r10k_needs_protection_p_1, r10k_needs_protection_p_store)
5989         (r10k_needs_protection_p_call, r10k_needs_protection_p)
5990         (r10k_insert_cache_barriers): New functions.
5991         (mips_reorg_process_insns): Delete cache barriers after a
5992         branch-likely instruction.
5993         (mips_reorg): Call r10k_insert_cache_barriers.
5994         (mips_handle_option): Handle OPT_mr10k_cache_barrier_.
5995         * config/mips/mips.md (UNSPEC_MIPS_CACHE): New constant.
5996         (UNSPEC_R10K_CACHE_BARRIER): Likewise.
5997         (mips_cache, r10k_cache_barrier): New define_insns.
5998
5999 2008-09-06  Richard Sandiford  <rdsandiford@googlemail.com>
6000
6001         * ira-int.h (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
6002         * ira-color.c (setup_allocno_left_conflicts_num): Use
6003         hard_reg_set_equal_p instead of a comparison with
6004         ira_zero_hard_reg_set.
6005         * ira.c (setup_reg_subclasses): Likewise.
6006         (setup_cover_and_important_classes): Likewise.
6007         (setup_class_translate): Likewise.
6008         (setup_reg_class_intersect_union): Likewise.
6009         (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
6010         (ira_init_once): Don't initialize them.
6011
6012 2008-09-05  Vladimir Makarov  <vmakarov@redhat.com>
6013
6014         * doc/tm.texi (IRA_COVER_CLASSES): Fix a typo.
6015
6016 2008-09-05  Vladimir Makarov  <vmakarov@redhat.com>
6017
6018         * ira-color.c (ira_fast_allocation): Permit global allocno allocation.
6019
6020 2008-09-05  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
6021
6022         Improved branch hints, safe hints, and scheduling.
6023
6024         * haifa-sched.c (sched_emit_insn) : Define.
6025         * sched-int.h (sched_emit_insn) : Add prototype.
6026         * doc/invoke.texi (-mdual-nops, -mhint-max-nops,
6027         -mhint-max-distance -msafe-hints) : Document.
6028         * config/spu/spu.c (spu_flag_var_tracking): New.
6029         (TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_INIT,
6030         TARGET_SCHED_REORDER, TARGET_SCHED_REORDER2,
6031         TARGET_ASM_FILE_START): Define.
6032         (TARGET_SCHED_ADJUST_PRIORITY): Remove.
6033         (STOP_HINT_P, HINTED_P, SCHED_ON_EVEN_P): Define.
6034         (spu_emit_branch_hint): Add blocks argument.
6035         (insert_branch_hints, insert_nops): Remove.
6036         (pad_bb, insert_hbrp_for_ilb_runout, insert_hbrp, in_spu_reorg,
6037         uses_ls_unit, spu_sched_init_global, spu_sched_init,
6038         spu_sched_reorder, asm_file_start): New functions.
6039         (clock_var, spu_sched_length, pipe0_clock,
6040         pipe1_clock, prev_clock_var, prev_priority,
6041         spu_ls_first, prev_ls_clock): New static variables.
6042         * config/spu/spu.h (TARGET_DEFAULT): Add MASK_SAFE_HINTS.
6043         * config/spu.md (iprefetch): Add operand, make it clobber MEM.
6044         (nopn_nv): Add a non-volatile version of nop.
6045         * config/spu/spu.opt (-mdual-nops, -mhint-max-nops,
6046         -mhint-max-distance, -msafe-hints): New options.
6047
6048 2008-09-05  Janis Johnson  <janis187@us.ibm.com>
6049             Samuel Tardieu  <sam@rfc1149.net>
6050
6051         * opts.c (decode_options): Combine nested if statements.
6052
6053         PR target/37283
6054         * opts.c (decode_options): Handle more relationships among
6055         unit-at-a-time, toplevel-reorder, and section-anchors.
6056
6057 2008-09-05  David Daney  <ddaney@avtrex.com>
6058
6059         * doc/install.texi (--enable-reduced-reflection): Document new option.
6060
6061 2008-09-05  Bob Wilson  <bob.wilson@acm.org>
6062
6063         * config/xtensa/predicates.md (nonimmed_operand, mem_operand): Use
6064         constantpool_mem_p.
6065         (constantpool_operand): New.
6066         (move_operand): Disallow sub-word modes for the constant pool.
6067         * config/xtensa/xtensa.c (TARGET_SECONDARY_RELOAD): Define.
6068         (xtensa_secondary_reload_class): Replace with....
6069         (xtensa_secondary_reload): this function.  Remove SIGN_EXTEND check.
6070         Set icode for sub-word reloads from the constant pool.
6071         * config/xtensa/xtensa.h (SECONDARY_INPUT_RELOAD_CLASS): Delete.
6072         (SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
6073         * config/xtensa/xtensa.md (reload<mode>_literal): New.
6074         * config/xtensa/xtensa-protos.h: Update prototypes.
6075
6076 2008-09-05  Joseph Myers  <joseph@codesourcery.com>
6077
6078         * config/mips/mips.h (enum reg_class): Add FRAME_REGS.
6079         (REG_CLASS_NAMES): Update.
6080         (REG_CLASS_CONTENTS): Update.
6081         * config/mips/mips.c (mips_regno_to_class): Use FRAME_REGS instead
6082         of ALL_REGS for regs 77 and 78.
6083         * function.c (instantiate_virtual_regs_in_insn): Assert that
6084         return value of simplify_gen_subreg is not NULL.
6085
6086 2008-09-05  Paolo Bonzini  <bonzini@gnu.org>
6087
6088         * emit-rtl.c (gen_rtvec): Rewrite not using gen_rtvec_v.
6089         (gen_rtvec_v): Fix coding standards.
6090
6091 2008-09-04  Jan Hubicka  <jh@suse.cz>
6092
6093         * i386.c (decide_alg): Be more conservative about optimizing for size.
6094
6095 2008-09-04  Ian Lance Taylor  <iant@google.com>
6096
6097         * varasm.c (narrowing_initializer_constant_valid_p): New
6098         static function.
6099         (initializer_constant_valid_p): Call it.
6100
6101 2008-09-04  Jeff Law  <law@redhat.com>
6102
6103         * fold-const.c (native_encode_real): Fix computation of WORDS.
6104         (native_interpret_real): Likewise.
6105
6106 2008-09-04  Janis Johnson  <janis187@us.ibm.com>
6107
6108         * config/rs6000/t-rs6000: Remove target gt-rs6000.h.
6109
6110 2008-09-04  Vladimir Makarov  <vmakarov@redhat.com>
6111
6112         * ira-conflicts.c (process_regs_for_copy): Check insn to check
6113         that the cost is already taken into account in ira-costs.c
6114
6115         * ira-int.h (ira_debug_copy, ira_debug_copies): New.
6116
6117         * ira-build.c (print_copy, print_copies, ira_debug_copy,
6118         ira_debug_copies): New.
6119         (ira_bulid): Call print_copies.
6120
6121         * doc/tm.texi (IRA_COVER_CLASSES): Fix the description.
6122
6123 2008-09-04  Samuel Tardieu  <sam@rfc1149.net>
6124
6125         PR target/32783
6126         * config/rs6000/rs6000.c (optimization_options): Remove check of
6127         flag_toplevel_order.
6128
6129 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
6130
6131         * config/mips/mips.h (ISA_HAS_SEQ_SNE): New macro.
6132         * config/mips/mips.c (mips_expand_scc): Also expand seq and sne if
6133         second operand is a reg_imm10_operand.
6134         * config/mips/mips.md (*seq_<GPR:mode><GPR2:mode>_seq,
6135         *sne_<GPR:mode><GPR2:mode>_sne): New patterns.
6136         (*seq_<GPR:mode><GPR2:mode>): Rename to
6137         *seq_zero_<GPR:mode><GPR2:mode>.  Don't match if
6138         ISA_HAS_SEQ_SNE.
6139         (*seq_<GPR:mode><GPR2:mode>_mips16): Rename to
6140         *seq_zero_<GPR:mode><GPR2:mode>_mip16.  Don't match if
6141         ISA_HAS_SEQ_SNE.
6142         (*sne_<GPR:mode><GPR2:mode>): Rename to
6143         *sne_zero_<GPR:mode><GPR2:mode>.  Don't match if
6144         ISA_HAS_SEQ_SNE.
6145
6146 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
6147
6148         * config/mips/mips.h (ISA_HAS_EXTS): New macro.
6149         * config/mips/mips.md (*ashr_trunc<mode>): Name the pattern
6150         combining an arithmetic right shift by more than 31 and a
6151         trunction.  Don't match for out-of-range shift amounts.  Set
6152         attribute mode to <MODE>.
6153         (*lshr32_trunc<mode>): Name the pattern combining a logical right
6154         shift by 32 and and a truncation.  Set attribute mode to <MODE>.
6155         (*<optab>_trunc<mode>_exts): New pattern for truncated right
6156         shifts by less than 32.
6157         (extv): Change predicate on first operand to accept registers.
6158         Change predicate of the other operands from immediate_operand to
6159         const_int_operand.  Expand exts when source is a register.
6160         (extzv): Change predicate of the constant operands from
6161         immediate_operand to const_int_operand.
6162         (extzv<mode>): Change predicate of the constant operands from
6163         immediate_operand to const_int_operand and no constraint. Also
6164         remove mode.
6165         (*extzv_trunc<mode>_exts): New pattern.
6166
6167 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
6168
6169         * config/mips/mips.h (ISA_HAS_CINS): New macro.
6170         * config/mips/mips-protos.h (mask_low_and_shift_p,
6171         mask_low_and_shift_len): Declare.
6172         * config/mips/mips.c (mask_low_and_shift_p,
6173         mask_low_and_shift_len): New functions.
6174         (mips_print_operand): Handle new operand prefix "m".
6175         * config/mips/mips.md (*cins<mode>): New pattern.
6176
6177 2008-09-04  Bernd Schmidt  <bernd.schmidt@analog.com>
6178
6179         * config/bfin/bfin.c (gen_one_bundle): Don't create new nops when
6180         optimizing for size.
6181
6182 2008-09-04  Richard Sandiford  <rdsandiford@googlemail.com>
6183
6184         * df-scan.c (df_get_entry_block_def_set): Add STACK_POINTER_REGNUM
6185         regardless of epilogue_completed.
6186
6187 2008-09-04  Vladimir Makarov  <vmakarov@redhat.com>
6188
6189         PR middle-end/37359
6190         * ira-lives.c (process_bb_node_lives): Check setjmp.
6191
6192 2008-09-04  Richard Sandiford  <rdsandiford@googlemail.com>
6193
6194         PR middle-end/37243
6195         * ira-build.c (form_loop_tree): Reverse BB walk.
6196         (create_bb_allocnos): Likewise.
6197         * ira-lives.c (make_regno_born_and_dead, regs_set): Delete.
6198         (mark_reg_store): Rename to...
6199         (mark_ref_live): ...this and take a df_ref argument instead of
6200         note_stores arguments.  Assert that we have a register.
6201         (mark_reg_clobber): Delete.
6202         (def_conflicts_with_inputs_p): New function.
6203         (mark_reg_conflicts): Delete.
6204         (mark_reg_death): Rename to...
6205         (mark_ref_dead): ...this and take a df_ref argument instead of
6206         a register.  Assert that we have a register.
6207         (process_bb_node_lives): Hoist frequency calculation out of
6208         instruction walk.  Convert from a forwards scan to a backwards scan.
6209         Use DF_REF_USES and DF_REF_DEFS instead of register notes and
6210         note_stores.  Remove EH_RETURN_DATA_REGNO and regs_set handling.
6211         (create_allocno_live_ranges): Don't create regs_set.
6212
6213 2008-09-04  Ian Lance Taylor  <iant@google.com>
6214
6215         * rtl.h (LABEL_REF_NONLOCAL_P): Don't check for REG_LABEL_OPERAND
6216         or REG_LABEL_TARGET.
6217         * calls.c (emit_library_call_value_1): Use MEM_P rather than
6218         comparing MODE with MEM.
6219         * gimple.c (gimple_build_predict): Cast END_PREDICTORS before
6220         comparing with GF_PREDICT_TAKEN.
6221         (gimple_get_lhs): Change code to enum gimple_code.
6222         (gimple_set_lhs): Likewise.
6223         * ifcvt.c (noce_process_if_block): Correct GET_MODE to GET_CODE.
6224         * omp-low.c (find_omp_clause): Change kind parameter to enum
6225         omp_clause_code.
6226         * tree-flow.h (find_omp_clause): Update declaration.
6227         * regrename.c (clear_dead_regs): Change kind parameter to enum
6228         reg_note.
6229         * reload1.c (eliminate_regs_1): Use REG_NOTE_KIND rather than
6230         GET_MODE.
6231         * see.c (see_get_extension_data): Change return type to enum
6232         entry_type.  Change UNKNOWN to NOT_RELEVANT, SIGN_EXTEND to
6233         SIGNED_EXTENDED_DEF, ZERO_EXTEND to ZERO_EXTENDED_DEF.
6234         (see_gen_normalized_extension): Change extension_code parameter to
6235         enum entry_type.
6236         (see_seek_pre_extension_expr): Change extension_code to enum
6237         entry_type.
6238         (see_merge_one_def_extension): Likewise.
6239         (see_handle_relevant_defs): Likewise.
6240         (see_handle_relevant_uses): Likewise.
6241         (see_analyze_one_def): Likewise.
6242         * tree-cfg.c (need_fake_edge_p): Compare gimple code with
6243         GIMPLE_ASM rather than ASM_EXPR.
6244         * tree-ssa-alias.c (is_escape_site): Compare gimple code with
6245         GIMPLE_RETURN rather than RETURN_EXPR.
6246         * tree-ssa-ccp.c (likely_value): Change code to enum gimple_code.
6247         (evaluate_stmt): Likewise.
6248         * tree-vect-analyze.c (vect_analyze_operations): Change relevance
6249         to enum vect_relevant.
6250         (vect_mark_stmts_to_be_vectorized): Change assertion to not
6251         compare gimple codes with tree codes.
6252
6253 2008-09-04  Paul Brook  <paul@codesourcery.com>
6254
6255         * config/arm/arm.c (arm_size_rtx_costs): Call cost function.
6256
6257 2008-09-04  Bernd Schmidt  <bernd.schmidt@analog.com>
6258
6259         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Restore a null
6260         pointer check lost in the recent no-unit-at-a-time patch.
6261
6262 2008-09-04  Jan Hubicka  <jh@suse.cz>
6263
6264         PR middle-end/37343
6265         * tree-switch-conversion.c (check_final_bb): Accept only IP
6266         invariants.
6267
6268 2008-09-04  Jan Hubicka  <jh@suse.cz>
6269
6270         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
6271         Break out from ...
6272         (vrp_evaluate_conditional_warnv_with_ops): ... this one.  Add
6273         using_ranges argument.
6274         (vrp_evaluate_conditional): Avoid bogus warning for type range.
6275         (vrp_visit_cond_stmt): Update call of
6276         vrp_evaluate_conditional_warnv_with_ops
6277
6278 2008-09-04  Jan Hubicka  <jh@suse.cz>
6279
6280         PR tree-optimization/37345
6281         PR tree-optimization/37358
6282         PR tree-optimization/37357
6283         * tree.c (build_function_type_skip_args): Build distinct type copy;
6284         set TYPE_CONTEXT.
6285         (build_function_decl_skip_args): Set type of new decl not orig decl;
6286         clear DECL_VINDEX for methods turned into functions.
6287
6288 2008-09-04  Nick Clifton  <nickc@redhat.com>
6289
6290         * configure.ac (HAVE_GAS_LCOMM_WITH_ALIGNMENT): New assembler check.
6291         * configure: Regenerate.
6292         * config.in: Regenerate.
6293         * config/i386/bsd.h (ASM_OUTPUT_ALIGNED_LOCAL): Use .lcomm with an
6294         alignment field, if it is supported.
6295
6296 2008-09-04  Kai Tietz  <kai.tietz@onevision.com>
6297
6298         * config/i386/t-mingw32 (SHLIB_LC): Change order of import
6299         libraries.
6300
6301 2008-09-03  David Edelsohn  <edelsohn@gnu.org>
6302
6303         * config/rs6000/rs6000.c (processor_target_table): Do not
6304         enable VMX for POWER6.
6305
6306 2008-09-03  Anton Blanchard  <anton@samba.org>
6307
6308         * config/rs6000/rs6000.c (rs6000_split_lock_test_and_set): Do not
6309         emit memory barrier before operation.
6310
6311 2008-09-03  John David Anglin  <dave.anglin@nrc.cnrc.gc.ca>
6312
6313         PR testsuite/37325
6314         * config/pa/pa64-hpux.h (ASM_OUTPUT_EXTERNAL_REAL): Call
6315         default_elf_asm_output_external.
6316
6317 2008-09-03  Jeff Law  <law@redhat.com>
6318
6319         * h8300.c (expand_a_shift): Avoid invalid RTL sharing.
6320
6321 2008-09-03  Richard Henderson  <rth@redhat.com>
6322
6323         * config/alpha/alpha.c (alpha_split_lock_test_and_set): Move
6324         memory barrier to below the test-and-set.
6325         (alpha_split_lock_test_and_set_12): Likewise.
6326
6327 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
6328
6329         PR rtl-opt/37243
6330
6331         * ira-int.h (ira_loop_tree_node): Rename mentioned_allocnos to
6332         all_allocnos.
6333
6334         * ira-color.c (print_loop_title): Use all_allocnos.
6335         (color_pass): Ditto.  Don't add border_allocnos.  Check that
6336         subloop allocno in the correspdoning bitmap all_allocnos.
6337
6338         * ira-emit.c (change_loop): Use all_allocnos.
6339
6340         * ira-build.c (create_loop_tree_nodes, finish_loop_tree_node): Ditto.
6341         (ira_create_allocno): Set up all_allocnos bit for the created allocno.
6342         (create_cap_allocno): Remove setting mentioned_allocnos.
6343         (create_insn_allocnos): Ditto.
6344         (remove_unnecessary_allocnos): Use all_allocnos.
6345         (check_allocno_creation): Check that allocnos are in the
6346         corresponding bitmap all_allocnos.
6347
6348 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
6349
6350         PR rtl-opt/37243
6351
6352         * ira-conflicts.c (REG_SUBREG_P, go_through_subreg): New.
6353         (process_regs_for_copy): Process subregs.  Refine check when cost
6354         is taken into account in ira-costs.c.
6355         (process_reg_shuffles): Use REG_SUBREG_P.
6356         (add_insn_allocno_copies): Ditto.  Ignore modes.
6357
6358         * ira-color.c (conflict_allocno_vec): New.
6359         (COST_HOP_DIVISOR): New macro.
6360         (update_copy_costs_1): Use it.
6361         (update_conflict_hard_regno_costs): New function.
6362         (assign_hard_reg): Use it.
6363         (ira_color): Allocate and free conflict_allocno_vec.
6364
6365 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
6366
6367         PR rtl-opt/37296
6368
6369         * ira-int.h (ira_sort_insn_chain): Remove.
6370
6371         * ira.c (basic_block_order_nums, chain_insn_order,
6372         chain_freq_compare, chain_bb_compare, ira_sort_insn_chain): Remove.
6373         (ira): Don't call ira_sort_insn_chain.
6374
6375         * reload1.c (reload): Don't call ira_sort_insn_chain.
6376
6377 2008-09-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6378
6379         PR middle-end/37293
6380         * cgraphunit.c (update_call_expr): Remove eh regions from statements
6381         which become non throw.
6382         (cgraph_function_versioning): Also clear DECL_WEAK.  Call
6383         update_call_expr after updating the flags on the decl.
6384
6385 2008-09-03  Jan Hubicka  <jh@suse.cz>
6386
6387         PR tree-optimization/37315
6388         * cgraph.c (cgraph_create_edge): Use gimple_has_body_p.
6389         * cgraphunit.c (verify_cgraph_node): drop gimple_body check.
6390         (cgraph_analyze_functions): Use node->analyzed
6391         (cgraph_mark_functions_to_output): Likewise.
6392         (cgraph_expand_function): All functions can be released after
6393         expanding.
6394         (cgraph_optimize): Use gimple_has_body_p.
6395         * ipa-inline.c (cgraph_clone_inlined_nodes): Use analyzed flag.
6396         (cgraph_decide_inlining_incrementally): Likewise.
6397         (inline_transform): Inline transform.
6398         * tree-inline.c (initialize_cfun): Do now shallow copy structure;
6399         copy fields needed.
6400         (inlinable_function_p): Drop gimple_body check.
6401         (expand_call_inline): Use gimple_has_body_p.
6402         * gimple.c (gimple_has_body_p): New.
6403         * gimple.h (gimple_has_body_p): Add prototype.
6404         * tree-cfg.c (execute_build_cfg): Remove gimple_body.
6405         (dump_function_to_file): Use gimple_has_body_p check.
6406
6407 2008-09-03  Jakub Jelinek  <jakub@redhat.com>
6408
6409         PR c++/37346
6410         * gimple.h (gimple_has_substatements): GIMPLE_OMP_CRITICAL has
6411         substatements.
6412         * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_CRITICAL.
6413
6414 2008-09-03  Bernd Schmidt  <bernd.schmidt@analog.com>
6415
6416         From Michael Frysinger  <michael.frysinger@analog.com>
6417         * config/bfin/bfin.c (bfin_cpus[]): Add 0.1 for bf522, bf523, bf524,
6418         bf525, bf526, bf527, bf542, bf544, bf547, bf548, and bf549.  Add 0.2
6419         for bf538.
6420
6421 2008-09-03  Hari Sandanagobalane  <hariharan@picochip.com>
6422
6423         Add picoChip port.
6424         * doc/extend.texi: Document picoChip builtin functions.
6425         * doc/invoke.texi: Document picoChip options.
6426         * doc/contrib.texi: Add picoChip contribution.
6427         * doc/md.texi: Document picoChip constraints.
6428         * config.gcc: Add picochip-*-*.
6429         * config/picochip/: Add new port.
6430
6431 2008-09-03  Richard Guenther  <rguenther@suse.de>
6432
6433         PR tree-optimization/37328
6434         * tree-sra.c (sra_build_assignment): Gimplify properly.
6435         (generate_copy_inout): Take the correct stmt as definition,
6436         remove bogus assert.
6437
6438 2008-09-03  Bernd Schmidt  <bernd.schmidt@analog.com>
6439
6440         * config/bfin/bfin.c (bfin_expand_prologue): Honour no_stack_limit
6441         attributes.
6442
6443         From Michael Frysinger  <michael.frysinger@analog.com>
6444         * config/bfin/bfin.c (bfin_handle_option): Remove BF561 warning.
6445
6446 2008-09-03 Danny Smith  <dannysmith@usrs.sourceforge.net>
6447
6448         * gthr-win32.h (CONST_CAST2): Really make sure CONST_CAST2 is defined.
6449         (__gthread_setspecific): Revert 2008-08-31 change to
6450         __GTHREAD_HIDE_W32API case.  Apply it to !__GTHREAD_HIDE_W32API case.
6451
6452 2008-09-02  Aldy Hernandez  <aldyh@redhat.com>
6453
6454         * diagnostic.c (error_at): New.
6455         * toplev.h (error_at): New prototype.
6456         * c-typeck.c (build_array_ref): Call error_at instead of error.
6457         Pass location to pedwarn.
6458
6459 2008-09-02  Adam Nemet  <anemet@caviumnetworks.com>
6460
6461         * sel-sched.c (sel_hard_regno_rename_ok): Mark arguments unused.
6462
6463 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
6464
6465         * dwarf2out.c (tree_add_const_value_attribute): Only handle
6466         VAR_DECL and CONST_DECL.
6467
6468 2008-09-02  H.J. Lu  <hongjiu.lu@intel.com>
6469             Jakub Jelinek  <jakub@redhat.com>
6470
6471         * config/i386/i386.c (X86_64_VARARGS_SIZE): Removed.
6472         (setup_incoming_varargs_64): Assume cum != NULL. Set/check
6473         ix86_varargs_gpr_size and ix86_varargs_fpr_size.  Use
6474         ix86_varargs_gpr_size instead of X86_64_REGPARM_MAX.
6475         Don't set ix86_save_varrargs_registers.
6476         (ix86_setup_incoming_varargs): Assume cum != NULL.
6477         (ix86_va_start): Check ix86_varargs_gpr_size and
6478         ix86_varargs_fpr_size instead of cfun->va_list_gpr_size and
6479         cfun->va_list_fpr_size, respectively.  Subtract 8*X86_64_REGPARM_MAX
6480         from frame pointer if ix86_varargs_gpr_size == 0.
6481         (ix86_compute_frame_layout): Updated.
6482         * config/i386/i386.h (ix86_save_varrargs_registers): Removed.
6483         (ix86_varargs_gpr_size): Define.
6484         (ix86_varargs_fpr_size): Likewise.
6485         (machine_function): Remove save_varrargs_registers.
6486         Add varargs_gpr_size and varargs_fpr_size.
6487
6488 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
6489
6490         * config/alpha/alpha.c (va_list_skip_additions,
6491         alpha_stdarg_optimize_hook, alpha_gimplify_va_arg_1): Tuplify.
6492         (alpha_gimplify_va_arg): Call unshare_expr on second use of
6493         offset_field.
6494
6495         PR tree-optimization/36766
6496         * tree-cfg.c (gimple_purge_all_dead_eh_edges): Do nothing
6497         for already removed basic blocks.
6498
6499         PR target/36332
6500         * real.c (real_maxval): Clear a lower bit to make real_maxval
6501         match get_max_float for IBM long double format.
6502
6503 2008-09-02  Andreas Schwab  <schwab@suse.de>
6504
6505         * configure.ac: Use m4_quote to quote the expansion of m4_do.
6506         * configure: Regenerate.
6507
6508 2008-09-02  Richard Sandiford  <rdsandiford@googlemail.com>
6509
6510         * simplify-rtx.c (simplify_binary_operation_1): Check for CONST,
6511         SYMBOL_REF and LABEL_REF when applying plus_constant, instead of
6512         checking for a non-VOID CONSTANT_P.
6513
6514 2008-09-02  Jan Hubicka  <jh@suse.cz>
6515
6516         * predict.c (pass_strip_predict_hints): Avoid bugs dump file.
6517         * expmed.c (expand_divmod): Fix test of smod_pow2_cheap and
6518         sdiv_pow2_cheap
6519
6520 2008-09-02  H.J. Lu  <hongjiu.lu@intel.com>
6521
6522         * expr.c (emit_group_store): Don't assert stack temp mode size.
6523
6524 2008-09-02  Sebastian Pop  <sebastian.pop@amd.com>
6525             Tobias Grosser  <grosser@fim.uni-passau.de>
6526             Jan Sjodin  <jan.sjodin@amd.com>
6527             Harsha Jagasia  <harsha.jagasia@amd.com>
6528             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
6529             Konrad Trifunovic  <konrad.trifunovic@inria.fr>
6530             Adrien Eliche  <aeliche@isty.uvsq.fr>
6531
6532         Merge from graphite branch.
6533         * graphite.c: New.
6534         * graphite.h: New.
6535         * tree-loop-linear.c (perfect_loop_nest_depth): Export.
6536         * doc/invoke.texi (-floop-block, -floop-interchange,
6537         -floop-strip-mine): Document new flags.
6538         * tree-into-ssa.c (gimple_vec): Moved...
6539         * tree-loop-distribution.c (rdg_component): Moved...
6540         * cfgloopmanip.c: Include tree-flow.h.
6541         (update_dominators_in_loop): New.
6542         (create_empty_if_region_on_edge): New.
6543         (create_empty_loop_on_edge): New.
6544         (loopify): Use update_dominators_in_loop.
6545         * tree-pass.h (pass_graphite_transforms): Declared.
6546         * configure: Regenerate.
6547         * tree-phinodes.c (make_phi_node): Export.
6548         (add_phi_node_to_bb): New, split from create_phi_node.
6549         * tree-chrec.c (for_each_scev_op): New.
6550         * tree-chrec.h (for_each_scev_op): Declared.
6551         * tree-ssa-loop-ivopts.c (get_phi_with_result): New.
6552         (remove_statement): Call get_phi_with_result.
6553         * config.in (HAVE_cloog): Undef.
6554         * gdbinit.in (pgg): New.
6555         * timevar.def (TV_GRAPHITE_TRANSFORMS): New.
6556         * tree-ssa-loop.c (graphite_transforms): New.
6557         (gate_graphite_transforms): New.
6558         (pass_graphite_transforms): New.
6559         * configure.ac (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC,
6560         HAVE_cloog): Defined.
6561         * tree-vectorizer.c (rename_variables_in_bb): Export.
6562         * tree-data-ref.c (dr_may_alias_p): Export.
6563         (stmt_simple_memref_p): New.
6564         (find_data_references_in_stmt): Export.
6565         (find_data_references_in_loop): Export.
6566         (create_rdg_edge_for_ddr): Initialize RDGE_RELATION.
6567         (create_rdg_edges_for_scalar): Initialize RDGE_RELATION.
6568         (create_rdg_vertices): Export.
6569         (build_empty_rdg): New.
6570         (build_rdg): Call build_empty_rdg.  Free dependence_relations.
6571         * tree-data-ref.h (rdg_component): ... here.
6572         (scop_p): New.
6573         (struct data_reference): Add a field scop.
6574         (DR_SCOP): New.
6575         (find_data_references_in_loop): Declared.
6576         (find_data_references_in_stmt): Declared.
6577         (create_rdg_vertices): Declared.
6578         (dr_may_alias_p): Declared.
6579         (stmt_simple_memref_p): Declared.
6580         (struct rdg_edge): Add a field ddr_p relation.
6581         (build_empty_rdg): Declared.
6582         * lambda.h (lambda_matrix): Declare a VEC of.
6583         (find_induction_var_from_exit_cond): Declared.
6584         (lambda_vector_compare): New.
6585         * common.opt (fgraphite, floop-strip-mine,
6586         floop-interchange, floop-block): New flags.
6587         * lambda-code.c (find_induction_var_from_exit_cond): Export.
6588         * cfgloop.c (is_loop_exit): New.
6589         * cfgloop.h (is_loop_exit): Declared.
6590         (create_empty_if_region_on_edge): Declared.
6591         (create_empty_loop_on_edge): Declared.
6592         * tree-flow.h (add_phi_node_to_bb): Declared.
6593         (make_phi_node): Declared.
6594         (rename_variables_in_bb): Declared.
6595         (perfect_loop_nest_depth): Declared.
6596         (graphite_transform_loops): Declared.
6597         * Makefile.in (cfgloopmanip.o): Depend on TREE_FLOW_H.
6598         (graphite.o-warn): Add -Wno-error.
6599         (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): Declared.
6600         (LIBS): Add GMPLIBS, CLOOGLIBS, PPLLIBS.
6601         (INCLUDES): Add PPLINC, CLOOGINC.
6602         (OBJS-common): Add graphite.o.
6603         (graphite.o): Add rule.
6604         * gimple.h (gimple_vec): ... here.
6605         * tree-cfg.c (print_loops): Start printing at ENTRY_BLOCK_PTR.
6606         * passes.c (init_optimization_passes): Schedule
6607         pass_graphite_transforms.
6608
6609 2008-09-02  Samuel Tardieu  <sam@rfc1149.net>
6610
6611         PR target/37283
6612         * opts.c (decode_options): Move processing of -fno-unit-at-a-time
6613         and -fno-toplevel-reorder after handle_options.
6614
6615 2008-09-02  Paul Brook  <paul@codesourcery.com>
6616
6617         * config/arm/arm.c (arm_tune_cortex_a9): Define.
6618         (arm_override_options): Set arm_tune_cortex_a9.
6619         (arm_rtx_costs_1): Make register shifts more expensive on Cortex-A9.
6620         (arm_issue_rate): Handle cortexa9.
6621         * config/arm/arm.h (arm_tune_cortex_a9): Declare.
6622         * config/arm/arm-cores.def: Add cortex-a9.
6623         * config/arm/arm-tune.md: Regenerate.
6624         * config/arm/arm.md: Include cortex-a9.md.
6625         (generic_sched, generic_vfp): Add cortexa9.
6626         * config/arm/cortex-a9.md: New file.
6627
6628 2008-09-02  Richard Guenther  <rguenther@suse.de>
6629
6630         PR tree-optimization/37327
6631         * tree-vrp.c (register_new_assert_for): Make sure to not have
6632         TREE_OVERFLOW set on the bound.
6633
6634 2008-09-02  Alexander Monakov  <amonakov@ispras.ru>
6635
6636         Fixed typo in date of the 2008-09-01 MOVE_RATIO commit.
6637
6638         * config/ia64/ia64.opt (msched-ar-data-spec): Default to 1.
6639         * config/ia64/ia64.c (ia64_set_sched_flags): Always initialize
6640         spec_info->mask.
6641
6642 2008-09-02  Victor Kaplansky  <victork@il.ibm.com>
6643
6644         * gcc/config/spu/spu.md (divdf3): Removed.
6645
6646 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
6647
6648         PR tree-optimization/37095
6649         * cgraph.c (cgraph_node): When creating new cgraph node after
6650         assembler_name_hash has been populated, record it in the hash
6651         table.
6652
6653 2008-09-01  Paul Brook  <paul@codesourcery.com>
6654
6655         * doc/invoke.texi: Document -mword-relocations.
6656         * config/arm/uclinux-elf.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
6657         * config/arm/symbian.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
6658         * config/arm/vxworks.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
6659         * config/arm/arm.c (arm_split_constant): Use arm_emit_movpair.
6660         (arm_rtx_costs_1, arm_size_rtx_costs): Handle HIGH and LO_SUM.
6661         (arm_emit_movpair): New function.
6662         (arm_print_operand <c>): Handle sybolic addresses.
6663         * config/arm/arm.h (TARGET_USE_MOVT): Define.
6664         (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
6665         * config/arm/arm-protos.h (arm_emit_movpair): Add prototype.
6666         * config/arm/arm.opt: Add -mword-relocations.
6667         * config/arm/arm.md (movsi): Use arm_emit_movpair.
6668         (arm_movt, arm_movw): New.
6669
6670 2008-09-01  Paul Brook  <paul@codesourcery.com>
6671
6672         * config/arm/arm.c (arm_override_options): Set arm_abi earlier.
6673         Allow Interworking on ARMv4 EABI based targets.
6674         * config/arm/bpabi.h (TARGET_FIX_V4BX_SPEC): Define.
6675         (SUBTARGET_EXTRA_ASM_SPEC, LINK_SPEC): Add TARGET_FIX_V4BX_SPEC.
6676
6677 2008-09-01  Paul Brook  <paul@codesourcery.com>
6678
6679         * config/arm/thumb2.md (thumb2_negscc): Match the correct operand for
6680         optimized LT0 test.  Remove optimization for GT.
6681
6682 2008-09-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6683
6684         * pa64-hpux.h (LIB_SPEC): Link against librt when building static
6685         openmp applications.
6686         * pa-hpux11.h (LIB_SPEC): Likewise.
6687
6688         * ira.c (setup_eliminable_regset): Only declare i if ELIMINABLE_REGS
6689         is defined.
6690
6691 2008-09-01  Jan Hubicka  <jh@suse.cz>
6692
6693         * predict.c (maybe_hot_count_p, maybe_hot_edge_p): When profile is
6694         present, use only counts; when guessed use only frequencies.
6695         (estimate_bb_frequencies): Use function_frequency.
6696         * profile.c (compute_branch_probabilities): Exit early when
6697         profile reading failed. Set profile_status.
6698         (branch_prob): Do not set profile_status.
6699
6700 2008-09-01  Aldy Hernandez  <aldyh@redhat.com>
6701
6702         * tree.c (protected_set_expr_location): New.
6703         * tree.h (protected_set_expr_location): New prototype.
6704         * c-tree.h (build_array_ref): Add argument.
6705         (parser_build_unary_op): Same.
6706         * c-typeck.c (build_indirect_ref): Handle new location argument.
6707         (build_array_ref): Same.
6708         (parser_build_unary_op): Same.
6709         * gimplify.c (gimplify_asm_expr): Set input_location before calling
6710         error.
6711         * c-omp.c (c_finish_omp_atomic): Pass location when calling
6712         build_indirect_ref.
6713         * c-common.c (finish_label_address_expr): Handle new location argument.
6714         * c-common.h (build_indirect_ref): Add argument.
6715         (finish_label_address_expr): Same.
6716         * c-parser.c (c_parser_unary_expression): Pass location to build
6717         functions.
6718         (c_parser_postfix_expression): Same.
6719
6720 2008-09-01  Paul Brook  <paul@codesourcery.com>
6721
6722         * config/arm/arm.md: Include cortex-r4f.md.
6723         (attr fpu): Update type list.
6724         (attr type): Add fcpys, ffariths, ffarithd, fadds, faddd, fconsts,
6725         fconstd, fcmps and fcmpd.
6726         (attr tune_cortexr4): Define.
6727         (attr generic_sched, attr generic_vfp): Use tune_cortexr4.
6728         * config/arm/vfp.md: Document fcpys, ffariths, ffarithd, fadds, faddd,
6729         fconsts, fconstd, fcmps and fcmpd.  Use them in insn patterns.
6730         * config/arm/arm.c (arm_issue_rate): Add cortexr4f.
6731         * config/arm/arm1020e.md (v10_ffarith, v10_farith): Use new insn types.
6732         * config/arm/cortex-a8-neon.md (cortex_a8_vfp_add_sub,
6733         cortex_a8_vfp_farith: Ditto.
6734         * config/arm/vfp11.md (vfp_ffarith, vfp_farith): Ditto.
6735         * config/arm/cortex-r4.md: Use tune_cortexr4.
6736         * config/arm/cortex-r4f.md: New file.
6737
6738 2008-09-01  Richard Guenther  <rguenther@suse.de>
6739
6740         PR tree-optimization/37305
6741         * tree-ssa-ccp.c (ccp_fold): Do not set TREE_OVERFLOW on
6742         the result of constant conversions.
6743         (fold_gimple_assign): Likewise.
6744
6745 2008-09-01  Andrey Belevantsev  <abel@ispras.ru>
6746
6747         * sel-sched-ir.c (cmp_v_in_regset_pool): Surround with
6748         #ifdef ENABLE_CHECKING.
6749
6750 2008-09-01  Andrey Belevantsev  <abel@ispras.ru>
6751
6752         * sel-sched-dump.c: Surround with #ifdef INSN_SCHEDULING.
6753         * sched-int.h (print_insn, print_pattern, print_value): Declare also
6754         when !INSN_SCHEDULING.
6755
6756 2008-09-01  Andreas Schwab  <schwab@suse.de>
6757
6758         * config/ia64/ia64.c (TARGET_ADDRESS_COST): Update.
6759
6760 2008-09-01  Paul Brook  <paul@codesourcery.com>
6761
6762         * config/arm/arm.c (arm_no_early_mul_dep): Handle multiply-subtract.
6763
6764 2008-09-01  Jan Hubicka  <jh@suse.cz>
6765
6766         * config/spu/spu.c (spu_expand_block_move) Update call of MOVE_RATIO.
6767
6768         * expr.c (MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P, SET_BY_PIECES_P):
6769         Pass speed operand.
6770         * expr.h (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Update.
6771         * gimplify.c (gimplify_init_constructor): Add speed operand.
6772         * tree-sra.c (decide_block_copy): Likewise.
6773         * tree-inline.c (estimate_move_cost): Likewise.
6774         * config/alpha/alpha.h (MOVE_RATIO): Update.
6775         * config/frv/frv.c (MOVE_RATIO): Update.
6776         * config/spu/spu.h (MOVE_RATIO): Update.
6777         * config/sparc/sparc.h (MOVE_RATIO): Update.
6778         * config/i386/i386.h (MOVE_RATIO, CLEAR_RATIO): Update.
6779         * config/m68hc11/m68hc11.h (MOVE_RATIO): Update.
6780         * config/cris/cris.h (MOVE_RATIO): Update.
6781         * config/mn10300/mn10300.h (MOVE_RATIO): Update.
6782         * config/arm/arm.h (MOVE_RATIO): Update.
6783         * config/pa/pa.md: Update uses of MOVE_RATIO
6784         * config/pa/pa.h (MOVE_RATIO): Update.
6785         * config/mips/mips.h (MOVE_RATIO, MOVE_BY_PIECES,
6786         CLEAR_RATIO, SET_RATIO): Update.
6787         * config/h8300/h8300.h (MOVE_RATIO): Update.
6788         * config/v850/v850.h (MOVE_RATIO): Update.
6789         * config/bfin/bfin.h (MOVE_RATIO): Update.
6790
6791 2008-08-31  Andrey Belevantsev  <abel@ispras.ru>
6792             Dmitry Melnik  <dm@ispras.ru>
6793             Dmitry Zhurikhin  <zhur@ispras.ru>
6794             Alexander Monakov  <amonakov@ispras.ru>
6795             Maxim Kuvyrkov  <maxim@codesourcery.com>
6796
6797         * sel-sched.h, sel-sched-dump.h, sel-sched-ir.h, sel-sched.c,
6798         sel-sched-dump.c, sel-sched-ir.c: New files.
6799         * Makefile.in (OBJS-common): Add selective scheduling object files.
6800         (sel-sched.o, sel-sched-dump.o, sel-sched-ir.o): New entries.
6801         (SEL_SCHED_IR_H, SEL_SCHED_DUMP_H): New entries.
6802         (sched-vis.o): Add dependency on $(INSN_ATTR_H).
6803         * cfghooks.h (get_cfg_hooks, set_cfg_hooks): New prototypes.
6804         * cfghooks.c (get_cfg_hooks, set_cfg_hooks): New functions.
6805         (make_forwarder_block): Update loop latch if we have redirected
6806         the loop latch edge.
6807         * cfgloop.c (get_loop_body_in_custom_order): New function.
6808         * cfgloop.h (LOOPS_HAVE_FALLTHRU_PREHEADERS): New enum field.
6809         (CP_FALLTHRU_PREHEADERS): Likewise.
6810         (get_loop_body_in_custom_order): Declare.
6811         * cfgloopmanip.c (has_preds_from_loop): New.
6812         (create_preheader): Honor CP_FALLTHRU_PREHEADERS.
6813         Assert that the preheader edge will be fall thru when it is set.
6814         * common.opt (fsel-sched-bookkeeping, fsel-sched-pipelining,
6815         fsel-sched-pipelining-outer-loops, fsel-sched-renaming,
6816         fsel-sched-substitution, fselective-scheduling): New flags.
6817         * cse.c (hash_rtx_cb): New.
6818         (hash_rtx): Use it.
6819         * dbgcnt.def (sel_sched_cnt, sel_sched_region_cnt,
6820         sel_sched_insn_cnt): New counters.
6821         * final.c (compute_alignments): Export.  Free dominance
6822         info after loop_optimizer_finalize.
6823         * genattr.c (main): Output maximal_insn_latency prototype.
6824         * genautomata.c (output_default_latencies): New.
6825         Factor its code from ...
6826         (output_internal_insn_latency_func): ... here.
6827         (output_internal_maximal_insn_latency_func): New.
6828         (output_maximal_insn_latency_func): New.
6829         * hard-reg-set.h (UHOST_BITS_PER_WIDE_INT): Define unconditionally.
6830         (struct hard_reg_set_iterator): New.
6831         (hard_reg_set_iter_init, hard_reg_set_iter_set,
6832         hard_reg_set_iter_next): New functions.
6833         (EXECUTE_IF_SET_IN_HARD_REG_SET): New macro.
6834         * lists.c (remove_free_INSN_LIST_node,
6835         remove_free_EXPR_LIST_node): New functions.
6836         * loop-init.c (loop_optimizer_init): When
6837         LOOPS_HAVE_FALLTHRU_PREHEADERS, set CP_FALLTHRU_PREHEADERS when
6838         calling create_preheaders.
6839         (loop_optimizer_finalize): Do not verify flow info after reload.
6840         * recog.c (validate_replace_rtx_1): New parameter simplify.
6841         Default it to true.  Update all uses.  Factor out simplifying
6842         code to ...
6843         (simplify_while_replacing): ... this new function.
6844         (validate_replace_rtx_part,
6845         validate_replace_rtx_part_nosimplify): New.
6846         * recog.h (validate_replace_rtx_part,
6847         validate_replace_rtx_part_nosimplify): Declare.
6848         * rtl.c (rtx_equal_p_cb): New.
6849         (rtx_equal_p): Use it.
6850         * rtl.h (rtx_equal_p_cb, hash_rtx_cb): Declare.
6851         (remove_free_INSN_LIST_NODE, remove_free_EXPR_LIST_node,
6852         debug_bb_n_slim, debug_bb_slim,    print_rtl_slim): Likewise.
6853         * vecprim.h: Add a vector type for unsigned int.
6854         * haifa-sched.c: Include vecprim.h and cfgloop.h.
6855         (issue_rate, sched_verbose_param, note_list, dfa_state_size,
6856         ready_try, cycle_issued_insns, spec_info): Make global.
6857         (readyp): Initialize.
6858         (dfa_lookahead): New global variable.
6859         (old_max_uid, old_last_basic_block): Remove.
6860         (h_i_d): Make it a vector.
6861         (INSN_TICK, INTER_TICK, QUEUE_INDEX, INSN_COST): Make them work
6862         through HID macro.
6863         (after_recovery, adding_bb_to_current_region_p):
6864         New variables to handle correct insertion of the recovery code.
6865         (struct ready_list): Move declaration to sched-int.h.
6866         (rgn_n_insns): Removed.
6867         (rtx_vec_t): Move to sched-int.h.
6868         (find_insn_reg_weight): Remove.
6869         (find_insn_reg_weight1): Rename to find_insn_reg_weight.
6870         (haifa_init_h_i_d, haifa_finish_h_i_d):
6871         New functions to initialize / finalize haifa instruction data.
6872         (extend_h_i_d, init_h_i_d): Rewrite.
6873         (unlink_other_notes): Move logic to add_to_note_list.  Handle
6874         selective scheduler.
6875         (ready_lastpos, ready_element, ready_sort, reemit_notes,
6876         find_fallthru_edge): Make global, remove static prototypes.
6877         (max_issue): Make global.  Add privileged_n and state parameters.  Use
6878         them.
6879         (extend_global, extend_all): Removed.
6880         (init_before_recovery): Add new param.  Fix the handling of the case
6881         when we insert a recovery code before the EXIT which has a predecessor
6882         with a fallthrough edge to it.
6883         (create_recovery_block): Make global.  Rename to
6884         sched_create_recovery_block.  Update.
6885         (change_pattern): Rename to sched_change_pattern.  Make global.
6886         (speculate_insn): Rename to sched_speculate_insn.  Make global.
6887         Split haifa-specific functionality into ...
6888         (haifa_change_pattern): New static function.
6889         (sched_extend_bb): New static function.
6890         (sched_init_bbs): New function.
6891         (current_sched_info): Change type to struct haifa_sched_info.
6892         (insn_cost): Adjust for selective scheduling.
6893         (dep_cost_1): New function.  Move logic from ...
6894         (dep_cost): ... here.
6895         (dep_cost): Use dep_cost_1.
6896         (contributes_to_priority_p): Use sched_deps_info instead of
6897         current_sched_info.
6898         (priority): Adjust to work with selective scheduling.  Process the
6899         corner case when all dependencies don't contribute to priority.
6900         (rank_for_schedule): Use ds_weak instead of dep_weak.
6901         (advance_state): New function.  Move logic from ...
6902         (advance_one_cycle): ... here.
6903         (add_to_note_list, concat_note_lists): New functions.
6904         (rm_other_notes): Make static.  Adjust for selective scheduling.
6905         (remove_notes, restore_other_notes): New functions.
6906         (move_insn): Add two arguments.  Update assert.  Don't call
6907         reemit_notes.
6908         (choose_ready): Remove lookahead variable, use dfa_lookahead.
6909         Remove more_issue, max_points.  Move the code to initialize
6910         max_lookahead_tries to max_issue.
6911         (schedule_block): Remove rgn_n_insns1 parameter.  Don't allocate
6912         ready.  Adjust use of move_insn.  Call restore_other_notes.
6913         (luid): Remove.
6914         (sched_init, sched_finish): Move Haifa-specific initialization/
6915         finalization to ...
6916         (haifa_sched_init, haifa_sched_finish): ... respectively.
6917         New functions.
6918         (setup_sched_dump): New function.
6919         (haifa_init_only_bb): New static function.
6920         (haifa_speculate_insn): New static function.
6921         (try_ready): Use haifa_* instead of speculate_insn and change_pattern.
6922         (extend_ready, extend_all): Remove.
6923         (sched_extend_ready_list, sched_finish_ready_list): New functions.
6924         (create_check_block_twin, add_to_speculative_block): Use
6925         haifa_insns_init instead of extend_global.  Update to use new
6926         initialization functions.  Change parameter.  Factor out code from
6927         create_check_block_twin to ...
6928         (sched_create_recovery_edges) ... this new function.
6929         (add_block): Remove.
6930         (sched_scan_info): New.
6931         (extend_bb): Use sched_scan_info.
6932         (init_bb, extend_insn, init_insn, init_insns_in_bb, sched_scan): New
6933         static functions for walking through scheduling region.
6934         (sched_luids): New vector variable to replace uid_to_luid.
6935         (luids_extend_insn): New function.
6936         (sched_max_luid): New variable.
6937         (luids_init_insn): New function.
6938         (sched_init_luids, sched_finish_luids): New functions.
6939         (insn_luid): New debug function.
6940         (sched_extend_target): New function.
6941         (haifa_init_insn): New static function.
6942         (sched_init_only_bb): New hook.
6943         (sched_split_block): New hook.
6944         (sched_split_block_1): New function.
6945         (sched_create_empty_bb): New hook.
6946         (sched_create_empty_bb_1): New function.
6947         (common_sched_info, ready): New global variables.
6948         (current_sched_info_var): Remove.
6949         (move_block_after_check): Use common_sched_info.
6950         (haifa_luid_for_non_insn): New static function.
6951         (init_before_recovery): Use haifa_init_only_bb instead of add_block.
6952         (increase_insn_priority): New.
6953         * modulo-sched.c: (issue_rate): Remove static declaration.
6954         (sms_sched_info): Change type to haifa_sched_info.
6955         (sms_sched_deps_info, sms_common_sched_info): New variables.
6956         (setup_sched_infos): New.
6957         (sms_schedule): Initialize them.  Call haifa_sched_init/finish.
6958         Do not call regstat_free_calls_crossed.
6959         (sms_print_insn): Use const_rtx.
6960         * params.def (PARAM_MAX_PIPELINE_REGION_BLOCKS,
6961         PARAM_MAX_PIPELINE_REGION_INSNS, PARAM_SELSCHED_MAX_LOOKAHEAD,
6962         PARAM_SELSCHED_MAX_SCHED_TIMES, PARAM_SELSCHED_INSNS_TO_RENAME,
6963         PARAM_SCHED_MEM_TRUE_DEP_COST): New.
6964         * sched-deps.c (sched_deps_info): New.  Update all relevant uses of
6965         current_sched_info to use it.
6966         (enum reg_pending_barrier_mode): Move to sched-int.h.
6967         (h_d_i_d): New variable. Initialize to NULL.
6968         ({true, output, anti, spec, forward}_dependency_cache): Initialize
6969         to NULL.
6970         (estimate_dep_weak): Remove static declaration.
6971         (sched_has_condition_p): New function.  Adjust users of
6972         sched_get_condition to use it instead.
6973         (conditions_mutex_p): Add arguments indicating which conditions are
6974         reversed.  Use them.
6975         (sched_get_condition_with_rev): Rename from sched_get_condition.  Add
6976         argument to indicate whether returned condition is reversed.  Do not
6977         generate new rtx when condition should be reversed; indicate it by
6978         setting new argument instead.
6979         (add_dependence_list_and_free): Add deps parameter.
6980         Update all users.  Do not free dependence list when
6981         deps context is readonly.
6982         (add_insn_mem_dependence, flush_pending_lists): Adjust for readonly
6983         contexts.
6984         (remove_from_dependence_list, remove_from_both_dependence_lists): New.
6985         (remove_from_deps): New. Use the above functions.
6986         (cur_insn, can_start_lhs_rhs_p): New static variables.
6987         (add_or_update_back_dep_1): Initialize present_dep_type.
6988         (haifa_start_insn, haifa_finish_insn, haifa_note_reg_set,
6989         haifa_note_reg_clobber, haifa_note_reg_use, haifa_note_mem_dep,
6990         haifa_note_dep): New functions implementing dependence hooks for
6991         the Haifa scheduler.
6992         (note_reg_use, note_reg_set, note_reg_clobber, note_mem_dep,
6993         note_dep): New functions.
6994         (ds_to_dt, extend_deps_reg_info, maybe_extend_reg_info_p): New
6995         functions.
6996         (init_deps): Initialize last_reg_pending_barrier and deps->readonly.
6997         (free_deps): Initialize deps->reg_last.
6998         (sched_analyze_reg, sched_analyze_1, sched_analyze_2,
6999         sched_analyze_insn): Update to use dependency hooks infrastructure
7000         and readonly contexts.
7001         (deps_analyze_insn): New function.  Move part of logic from ...
7002         (sched_analyze): ... here.  Also move some logic to ...
7003         (deps_start_bb): ... here.  New function.
7004         (add_forw_dep, delete_forw_dep): Guard use of INSN_DEP_COUNT with
7005         sel_sched_p.
7006         (sched_deps_init): New function.  Move code from ...
7007         (init_dependency_caches): ... here.  Remove.
7008         (init_deps_data_vector): New.
7009         (sched_deps_finish): New function.  Move code from ...
7010         (free_dependency_caches): ... here.  Remove.
7011         (init_deps_global, finish_deps_global): Adjust for use with
7012         selective scheduling.
7013         (get_dep_weak): Move logic to ...
7014         (get_dep_weak_1): New function.
7015         (ds_merge): Move logic to ...
7016         (ds_merge_1): New static function.
7017         (ds_full_merge, ds_max_merge, ds_get_speculation_types): New functions.
7018         (ds_get_max_dep_weak): New function.
7019         * sched-ebb.c (sched_n_insns): Rename to sched_rgn_n_insns.
7020         (n_insns): Rename to rgn_n_insns.
7021         (debug_ebb_dependencies): New function.
7022         (init_ready_list): Use it.
7023         (begin_schedule_ready): Use sched_init_only_bb.
7024         (ebb_print_insn): Indicate when an insn starts a new cycle.
7025         (contributes_to_priority, compute_jump_reg_dependencies,
7026         add_remove_insn, fix_recovery_cfg): Add ebb_ prefix to function names.
7027         (add_block1): Remove to ebb_add_block.
7028         (ebb_sched_deps_info, ebb_common_sched_info): New variables.
7029         (schedule_ebb): Initialize them.  Use remove_notes instead of
7030         rm_other_notes.  Use haifa_local_init/finish.
7031         (schedule_ebbs): Use haifa_sched_init/finish.
7032         * sched-int.h: Include vecprim.h, remove rtl.h.
7033         (struct ready_list): Delete declaration.
7034         (sched_verbose_param, enum sched_pass_id_t,
7035         bb_vec_t, insn_vec_t, rtx_vec_t): New.
7036         (struct sched_scan_info_def): New structure.
7037         (sched_scan_info, sched_scan, sched_init_bbs,
7038         sched_init_luids, sched_finish_luids, sched_extend_target,
7039         haifa_init_h_i_d, haifa_finish_h_i_d): Declare.
7040         (struct common_sched_info_def): New.
7041         (common_sched_info, haifa_common_sched_info,
7042         sched_emulate_haifa_p): Declare.
7043         (sel_sched_p): New.
7044         (sched_luids): Declare.
7045         (INSN_LUID, LUID_BY_UID, SET_INSN_LUID): Declare.
7046         (sched_max_luid, insn_luid): Declare.
7047         (note_list, remove_notes, restore_other_notes, bb_note): Declare.
7048         (sched_insns_init, sched_insns_finish, xrecalloc, reemit_notes,
7049         print_insn, print_pattern, print_value, haifa_classify_insn,
7050         sel_find_rgns, sel_mark_hard_insn, dfa_state_size, advance_state,
7051         setup_sched_dump, sched_init, sched_finish,
7052         sel_insn_is_speculation_check): Export.
7053         (struct ready_list): Move from haifa-sched.c.
7054         (ready_try, ready, max_issue): Export.
7055         (ebb_compute_jump_reg_dependencies, find_fallthru_edge,
7056         sched_init_only_bb, sched_split_block, sched_split_block_1,
7057         sched_create_empty_bb, sched_create_empty_bb_1,
7058         sched_create_recovery_block, sched_create_recovery_edges): Export.
7059         (enum reg_pending_barrier_mode): Export.
7060         (struct deps): New fields `last_reg_pending_barrier' and `readonly'.
7061         (deps_t): New.
7062         (struct sched_info): Rename to haifa_sched_info.  Use const_rtx for
7063         print_insn field.  Move add_block and fix_recovery_cfg to
7064         common_sched_info_def.  Move compute_jump_reg_dependencies,
7065         use_cselib  ...
7066         (struct sched_deps_info_def): ... this new structure.
7067         (sched_deps_info): Declare.
7068         (struct spec_info_def): Remove weakness_cutoff, add
7069         data_weakness_cutoff and control_weakness_cutoff.
7070         (spec_info): Declare.
7071         (struct _haifa_deps_insn_data): Split from haifa_insn_data.  Add
7072         dep_count field.
7073         (struct haifa_insn_data): Rename to struct _haifa_insn_data.
7074         (haifa_insn_data_def, haifa_insn_data_t): New typedefs.
7075         (current_sched_info): Change type to struct haifa_sched_info.
7076         (haifa_deps_insn_data_def, haifa_deps_insn_data_t): New typedefs.
7077         (h_d_i_d): New variable.
7078         (HDID): New accessor macro.
7079         (h_i_d): Change type to VEC (haifa_insn_data_def, heap) *.
7080         (HID): New accessor macro.  Rewrite h_i_d accessor macros through HID
7081         and HDID.
7082         (IS_SPECULATION_CHECK_P): Update for selective scheduler.
7083         (enum SCHED_FLAGS): Update for selective scheduler.
7084         (enum SPEC_SCHED_FLAGS): New flag SEL_SCHED_SPEC_DONT_CHECK_CONTROL.
7085         (init_dependency_caches, free_dependency_caches): Delete declarations.
7086         (deps_analyze_insn, remove_from_deps, get_dep_weak_1,
7087         estimate_dep_weak, ds_full_merge, ds_max_merge, ds_weak,
7088         ds_get_speculation_types, ds_get_max_dep_weak, sched_deps_init,
7089         sched_deps_finish, haifa_note_reg_set, haifa_note_reg_use,
7090         haifa_note_reg_clobber, maybe_extend_reg_info_p, deps_start_bb,
7091         ds_to_dt): Export.
7092         (rm_other_notes): Delete declaration.
7093         (schedule_block): Remove one argument.
7094         (cycle_issued_insns, issue_rate, dfa_lookahead, ready_sort,
7095         ready_element, ready_lastpos, sched_extend_ready_list,
7096         sched_finish_ready_list, sched_change_pattern, sched_speculate_insn,
7097         concat_note_lists): Export.
7098         (struct region): Move from sched-rgn.h.
7099         (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
7100         RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
7101         BLOCK_TO_BB, CONTAINING_RGN): Export.
7102         (ebb_head, BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB, INSN_BB): Likewise.
7103         (current_nr_blocks, current_blocks, target_bb): Likewise.
7104         (dep_cost_1, sched_is_disabled_for_current_region_p, sched_rgn_init,
7105         sched_rgn_finish, rgn_setup_region, sched_rgn_compute_dependencies,
7106         sched_rgn_local_init, extend_regions,
7107         rgn_make_new_region_out_of_new_block, compute_priorities,
7108         debug_rgn_dependencies, free_rgn_deps, contributes_to_priority,
7109         extend_rgns, deps_join rgn_setup_common_sched_info,
7110         rgn_setup_sched_infos, debug_regions, debug_region, dump_region_dot,
7111         dump_region_dot_file, haifa_sched_init, haifa_sched_finish): Export.
7112         (get_rgn_sched_max_insns_priority, sel_add_to_insn_priority,
7113         increase_insn_priority): Likewise.
7114         * sched-rgn.c: Include sel-sched.h.
7115         (ref_counts): New static variable.  Use it ...
7116         (INSN_REF_COUNT): ... here.  Rewrite and move closer to uses.
7117         (FED_BY_SPEC_LOAD, IS_LOAD_INSN): Rewrite to use HID accessor macro.
7118         (sched_is_disabled_for_current_region_p): Delete static declaration.
7119         (struct region): Move to sched-int.h.
7120         (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
7121         ebb_head): Define and initialize.
7122         (RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
7123         BLOCK_TO_BB, CONTAINING_RGN, debug_regions, extend_regions,
7124         BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB): Move to
7125         sched-int.h.
7126         (find_single_block_region): Add new argument to indicate that EBB
7127         regions should be constructed.
7128         (debug_live): Delete declaration.
7129         (current_nr_blocks, current_blocks, target_bb):
7130         Remove static qualifiers.
7131         (compute_dom_prob_ps, check_live, update_live, set_spec_fed): Delete
7132         declaration.
7133         (init_regions): Delete declaration.
7134         (debug_region, bb_in_region_p, dump_region_dot_file, dump_region_dot,
7135         rgn_estimate_number_of_insns): New.
7136         (too_large): Use estimate_number_of_insns.
7137         (haifa_find_rgns): New. Move the code from ...
7138         (find_rgns): ... here.  Call either sel_find_rgns or haifa_find_rgns.
7139         (free_trg_info): New.
7140         (compute_trg_info): Allocate candidate tables here instead of ...
7141         (init_ready_list): ... here.
7142         (rgn_print_insn): Use const_rtx.
7143         (contributes_to_priority, extend_regions): Delete static declaration.
7144         (add_remove_insn, fix_recovery_cfg): Add rgn_ to function names.
7145         (add_block1): Rename to rgn_add_block.
7146         (debug_rgn_dependencies): Delete static qualifier.
7147         (new_ready): Use sched_deps_info.  Simplify.
7148         (rgn_common_sched_info, rgn_const_sched_deps_info,
7149         rgn_const_sel_sched_deps_info, rgn_sched_deps_info, rgn_sched_info):
7150         New.
7151         (region_sched_info): Rename to rgn_const_sched_info.
7152         (deps_join): New, extracted from ...
7153         (propagate_deps): ... here.
7154         (compute_block_dependences, debug_dependencies): Update for selective
7155         scheduling.
7156         (free_rgn_deps, compute_priorities): New functions.
7157         (sched_rgn_init, sched_rgn_finish, rgn_setup_region,
7158         sched_rgn_compute_dependencies): New functions.
7159         (schedule_region): Use them.
7160         (sched_rgn_local_init, sched_rgn_local_free, sched_rgn_local_finish,
7161         rgn_setup_common_sched_info, rgn_setup_sched_infos):
7162         New functions.
7163         (schedule_insns): Call new functions that were split out.
7164         (rgn_make_new_region_out_of_new_block): New.
7165         (get_rgn_sched_max_insns_priority): New.
7166         (rest_of_handle_sched, rest_of_handle_sched2): Call selective
7167         scheduling when appropriate.
7168         * sched-vis.c: Include insn-attr.h.
7169         (print_value, print_pattern): Make global.
7170         (print_rtl_slim, debug_bb_slim, debug_bb_n_slim): New functions.
7171         * target-def.h (TARGET_SCHED_ADJUST_COST_2,
7172         TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
7173         TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
7174         TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_CHECKED_DS,
7175         TARGET_SCHED_GET_INSN_SPEC_DS, TARGET_SCHED_SKIP_RTX_P): New target
7176         hooks.  Initialize them to 0.
7177         (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
7178         * target.h (struct gcc_target): Add them.  Rename gen_check field to
7179         gen_spec_check.
7180         * flags.h (sel_sched_switch_set): Declare.
7181         * opts.c (sel_sched_switch_set): New variable.
7182         (decode_options): Unset flag_sel_sched_pipelining_outer_loops if
7183         pipelining is disabled from command line.
7184         (common_handle_option): Record whether selective scheduling is
7185         requested from command line.
7186         * doc/invoke.texi: Document new flags and parameters.
7187         * doc/tm.texi: Document new target hooks.
7188         * config/ia64/ia64.c (TARGET_SCHED_GEN_SPEC_CHECK): Define to
7189         ia64_gen_check.
7190         (dfa_state_size): Do not declare locally.
7191         * config/ia64/ia64.opt (msched-ar-data-spec): Default to 0.
7192         * config/rs6000/rs6000.c (rs6000_init_sched_context,
7193         rs6000_alloc_sched_context, rs6000_set_sched_context,
7194         rs6000_free_sched_context): New functions.
7195         (struct _rs6000_sched_context): New.
7196         (rs6000_sched_reorder2): Do not modify INSN_PRIORITY for selective
7197         scheduling.
7198         (rs6000_sched_finish): Do not run for selective scheduling.
7199
7200 2008-08-31  Jan Hubicka  <jh@suse.cz>
7201
7202         * frv.c (frv_rtx_costs): Update forward declaration.
7203         * spu.c (spu_rtx_costs): Likewise.
7204         * pdp11.c: Include df.h
7205         (pdp11_output_function_epilogue): Use df_set_regs_ever_live.
7206         * m68hc11.c (m68hc11_gen_highpart): Fix call of gen_rtx_SUBREG.
7207         (m68hc11_rtx_costs_1): Fix call of rtx_cost.
7208         * iq2000.c (iq2000_address_cost): Add speed argument.
7209         (iq2000_rtx_costs): Likewise.
7210         * mn10300.c (mn10300_address_cost_1): Remove speed argument;
7211         update call of mn10300_address_cost.
7212         * mcore.c: Include df.h
7213         (mcore_rtx_costs): Update prototype.
7214         * score3.c: Include df.h
7215         (score3_rtx_costs): Remove speed argument.
7216         * score7.c: Include df.h
7217         (score7_address_cost): Remove speed argument.
7218         * score-protos.h (score_address_cost): Update prototype.
7219         * score.c: Include df.h
7220         (score_rtx_costs): Update call of costs functions.
7221         * v850.c (v850_rtx_costs): Add bool argument.
7222
7223 2008-08-31  Hans-Peter Nilsson  <hp@axis.com>
7224
7225         * config/cris/cris.c (cris_rtx_costs): Correct call to rtx_costs.
7226
7227 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
7228
7229         * gthr-win32.h (__gthread_setspecific): Use CONST_CAST2.
7230         * config/i386/gthr-win32.c (__gthread_setspecific): Same.
7231
7232 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
7233
7234         * mkmap-flat.awk: Add option pe_dll.
7235         * config/i386/t-cygming (SHLIB_LINK): Support building libgcc_s.
7236         * config/i386/t-cygwin (SHLIB_LC): Add.
7237         * config/i386/t-mingw32 (SHLIB_LC): Add.
7238         * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): New.
7239         (SUBTARGET_EXTRA_SPECS): Use SHARED_LIBGCC_UNDEFS_SPEC.
7240         (LINK_SPEC): Support libgcc_s.
7241         (LIBGCC_SPEC): Support libgcc_s.
7242         (LIBGCC_SONAME): New.
7243
7244 2008-08-31  Jan Hubicka  <jh@suse.cz>
7245
7246         * predict.c (maybe_hot_bb_p, maybe_hot_edge_p): Previous commit
7247         mistakely had old version of patch.
7248
7249         * ipa-cp.c (ipcp_need_original_clone_p): Remove.
7250         (ipcp_estimate_growth): New.
7251         (ipcp_insert_stage): Use ipcp_estimate_growth.
7252         * profile.c (branch_prob): When reading failed, do not consider
7253         profile as read.
7254
7255 2008-08-31  Jan Hubicka  <jh@suse.cz>
7256
7257         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Check that
7258         loop is optimized for speed.
7259
7260 2008-08-31  Richard Guenther  <rguenther@suse.de>
7261
7262         PR middle-end/37289
7263         * fold-const.c (fold_binary): Retain conversions in folding
7264         ~A + 1 to -A.
7265
7266 2008-08-31  Jan Hubicka  <jh@suse.cz>
7267
7268         * postreload-gcse.c (eliminate_partially_redundant_loads):
7269         Use optimize_bb_for_size_p.
7270         * predict.c (maybe_hot_frequency_p): Make inline.
7271         (maybe_hot_count_p): Break out from ...
7272         (maybe_hot_bb_p): ... this one.
7273         (maybe_hot_edge_p): Simplify.
7274         * basic-block.h (probably_cold_bb_p): Remove.
7275
7276 2008-08-31  Jakub Jelinek  <jakub@redhat.com>
7277
7278         PR target/37168
7279         * config/rs6000/rs6000-protos.h (const_vector_elt_as_int): Add
7280         prototype.
7281         * config/rs6000/rs6000.c (const_vector_elt_as_int): No longer static.
7282         * config/rs6000/altivec.md (easy_vector_constant_add_self splitter):
7283         Also split V4SFmode.
7284         * config/rs6000/predicates.md (easy_vector_constant_add_self): Handle
7285         vector float modes.
7286
7287 2008-08-31  Jan Hubicka  <jh@suse.cz>
7288
7289         * predict.c (PROB_VERY_LIKELY): Make small enough so things
7290         become cold.
7291         * predict.def (PRED_NORETURN_CALL, PRED_COLD_CALL): Use it.
7292
7293 2008-08-31  Jakub Jelinek  <jakub@redhat.com>
7294
7295         PR debug/37287
7296         * dwarf2out.c (gen_namespace_die): For DECL_EXTERNAL modules don't
7297         add source coords.
7298
7299         * dwarf2out.c (native_encode_initializer): Subtract min_index for
7300         non-range array index.  Handle VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
7301
7302 2008-08-31  Jan Hubicka  <jh@suse.cz>
7303
7304         * sparc.h (BRANCH_COST): Fix macro definition.
7305         * avr.c (avr_operand_rtx_cost): Add speed argument.
7306         (avr_rtx_costs): Update calls of avr_operand_rtx_cost.
7307
7308 2008-08-31  Richard Guenther  <rguenther@suse.de>
7309
7310         * tree-cfg.c (verify_types_in_gimple_assign): Dump mismatched
7311         types instead of operands.  Re-instantiate verifying of
7312         binary expression operands.
7313
7314 2008-08-30  Jan Hubicka  <jh@suse.cz>
7315
7316         * fwprop.c (should_replace_address): Add speed attribute.
7317         (PR_OPTIMIZE_FOR_SPEED): New flag.
7318         (propagate_rtx_1): Use it.
7319         (propagate_rtx): Set it.
7320         (try_fwprop_subst): Update call of rtx_costs.
7321         (forward_propagate_and_simplify): LIkewise.
7322         * hooks.c (hook_int_rtx_bool_0): New
7323         (hook_bool_rtx_int_int_intp_false): Replace by ...
7324         (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
7325         * hooks.h (hook_int_rtx_bool_0): New
7326         (hook_bool_rtx_int_int_intp_false): Replace by ...
7327         (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
7328         * optabs.c (avoid_expensive_constant): UPdate call of rtx_cost.
7329         (prepare_cmp_insn): UPdate call of rtx_cost.
7330         * postreload.c (reload_cse_simplify_set): Update call of rtx_cost.
7331         (reload_cse_simplify_operands): Update call of rtx_cost.
7332         (reload_cse_move2add): call of rtx_cost.
7333         * target.h (struct gcc_target): Update rtx_costs and address_costs.
7334         * rtlanal.c (rtx_cost): Add speed argument.
7335         (address_cost): Add speed argument
7336         (default_address_cost): Likewise.
7337         (insn_rtx_cost): Likewise.
7338         * cfgloopanal.c (seq_cost): Add speed argument.
7339         (target_reg_cost, target_spill_cost): Turn to array.
7340         (init_set_costs): Update for speed.
7341         (estimate_reg_pressure_cost): Add speed argument.
7342         * auto-inc-dec.c (attempt_change): Update call of rtx_cost.
7343         * dojump.c (prefer_and_bit_test): UPdate call of rtx_cost.
7344         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field speed.
7345         (seq_cost): Add speed argument.
7346         (computation_cost): Add speed arugment.
7347         (add_cost, multiply_by_const, get_address_cost): add speed argument.
7348         (force_expr_to_var_cost): Update for profile info.
7349         (force_var_cost): Likewise.
7350         (split_address_cost): Likewise.
7351         (ptr_difference_cost): Likewise.
7352         (difference_cost): Likewise.
7353         (get_computation_cost_at): Likewise.
7354         (determine_iv_cost): Likewise.
7355         (ivopts_global_cost_for_size): Likewise.
7356         (rewrite_use_address): Likewise.
7357         (tree_ssa_iv_optimize_loop): Initialize speed field.
7358         * cse.c (optimize_this_for_speed_p): New static var.
7359         (notreg_cost): Update call of rtx_cost.
7360         (cse_extended_basic_block): set optimize_this_for_speed_p.
7361         * ifcvt.c (cheap_bb_rtx_cost_p): Update call of rtx_cost.
7362         (noce_try_cmove_arith): Likewise.
7363         (noce_try_sign_mask): LIkewise.
7364         * expr.c (compress_float_constant): Update rtx_cost calls.
7365         * tree-ssa-address.c (most_expensive_mult_to_index): Add speed
7366         argument.
7367         (addr_to_parts): Likewise.
7368         (create_mem_ref): Likewise.
7369         * dse.c (find_shift_sequence): Add speed argument.
7370         (replace_read): Update call.
7371         * calls.c (precompute_register_parameters): Update call of rtx_cost.
7372         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost,
7373         * neg_cost, shift_cost, shiftadd_cost,
7374         shiftsub_cost, mul_cost, sdiv_cost, udiv_cost ,mul_widen_cost,
7375         mul_highpart_cost): Increase dimension.
7376         (init_expmed): Initialize for both size and speed.
7377         (expand_shift): Use profile.
7378         (synth_mult): Use profile.
7379         (choose_mult_variant): Use profile.
7380         (expand_mult): Use profile.
7381         (expand_mult_highpart_optab): Use profile.
7382         (expand_mult_highpart): Use profile.
7383         (expand_smod_pow2): Use profile.
7384         (expand_divmod): Use profile.
7385         * simplify-rtx.c (simplify_binary_operation_1): Update call of
7386         rtx_cost.
7387         * loop-invariant.c (create_new_invariant): Use profile.
7388         (gain_for_invariant): Add speed parameter.
7389         (best_gain_for_invariant): Likewise.
7390         (find_invariants_to_move): Likewise.
7391         (move_single_loop_invariants): Set it.
7392         * target-def.h (TARGET_RTX_COSTS): Use hook.
7393         * rtl.h (rtx_cost, address_cost, insn_rtx_cost): Update prototpe.
7394         (optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
7395         * output.h (default_address_cost): Update prototype.
7396         * combine.c (optimize_this_for_speed_p): New static var.
7397         (combine_validate_cost): Update call of rtx_cost.
7398         (combine_instructions): Set optimize_this_for_speed_p.
7399         (expand_compound_operation): Update call of rtx_cost.
7400         (make_extraction):Update call of rtx_cost.
7401         (force_to_mode):Update call of rtx_cost.
7402         (distribute_and_simplify_rtx):Update call of rtx_cost.
7403         * cfgloop.h (target_reg_cost, target_spill_cost): Turn to array.
7404         (estimate_reg_pressure_cost): Update prototype.
7405         * tree-flow.h (multiply_by_cost, create_mem_ref): Update prototype.
7406         * basic-block.h (optimize_insn_for_size_p, optimize_insn_for_speed_p):
7407         Remove.
7408         * config/alpha/alpha.c (alpha_rtx_costs): Update.
7409         (alpha_rtx_costs): Update.
7410         * config/frv/frv.c (frv_rtx_costs): Update.
7411         * config/s390/s390.c (s390_rtx_costs): Update.
7412         * config/m32c/m32c.c (m32c_memory_move_cost): Update.
7413         (m32c_rtx_costs): Update.
7414         * config/spu/spu.c (TARGET_ADDRESS_COST): Upate.
7415         (spu_rtx_costs): Update.
7416         * config/sparc/sparc.c (sparc_rtx_costs): Update.
7417         * config/m32r/m32r.c (m32r_rtx_costs): Update.
7418         * config/i386/i386.c (:ix86_address_cost): Update.
7419         (ix86_rtx_costs): Update.
7420         * config/sh/sh.c (sh_rtx_costs, sh_address_cost): Update.
7421         * config/pdp11/pdp11.c (pdp11_rtx_costs): Update.
7422         * config/avr/avr.c (avr_rtx_costs, avr_address_cost): Update.
7423         * config/crx/crx.c (crx_address_cost): Update.
7424         * config/xtensa/xtensa.c (xtensa_rtx_costs): Update.
7425         * config/stormy16/stormy16.c
7426         (xstormy16_address_cost, xstormy16_rtx_costs): Update.
7427         * config/m68hc11/m68hc11.c
7428         (m68hc11_address_cost, m68hc11_rtx_costs): Update.
7429         * config/cris/cris.c (cris_rtx_costs, cris_address_cost): Update.
7430         * config/iq2000/iq2000.c (iq2000_rtx_costs, iq2000_address_cost):
7431         Update.
7432         * config/mn10300/mn10300.c (mn10300_address_cost, mn10300_rtx_costs):
7433         Update
7434         * config/ia64/ia64.c (ia64_rtx_costs): Update.
7435         * config/m68k/m68k.c (m68k_rtx_costs): Update.
7436         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update.
7437         * config/arc/arc.c (arc_rtx_costs, arc_address_cost): Update.
7438         * config/mcore/mcore.c (TARGET_ADDRESS_COST): Update.
7439         (mcore_rtx_costs): update.
7440         * config/score/score3.c (score3_rtx_costs): Update.
7441         * config/score/score7.c (score7_rtx_costs): Update.
7442         * config/score/score3.h (score3_rtx_costs):Update.
7443         * config/score/score7.h (score7_rtx_costs): Update.
7444         * config/score/score.c (score_rtx_costs): Update.
7445         * config/arm/arm.c (arm_address_cost): Update.
7446         (arm_rtx_costs_1): Update.
7447         (arm_rtx_costs_1): Update.
7448         (arm_size_rtx_costs): Update.
7449         (arm_size_rtx_costs): Update.
7450         (arm_size_rtx_costs): Update.
7451         (arm_xscale_rtx_costs): Update.
7452         (arm_thumb_address_cost): Update.
7453         * config/pa/pa.c (hppa_address_cost): Update.
7454         * config/mips/mips.c (mips_rtx_costs): Update.
7455         * config/vax/vax.c (vax_address_cost): Update.
7456         * config/h8300/h8300.c (h8300_shift_costs): Update.
7457         (h8300_rtx_costs): Update.
7458         * config/v850/v850.c (TARGET_ADDRESS_COST): Update.
7459         (v850_rtx_costs): Update.
7460         * config/mmix/mmix.c (mmix_rtx_costs, mmix_rtx_costs): Update.
7461         * config/bfin/bfin.c
7462         (bfin_address_cost): Update.
7463         (bfin_rtx_costs): Update.
7464         * stmt.c (lshift_cheap_p): Update.
7465
7466 2008-08-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7467
7468         PR middle-end/36444
7469         * expmed.c (extract_bit_field_1): Check the mode size to make
7470         sure the vector modes have the same size.
7471
7472 2008-08-29  Michael Meissner  <gnu@the-meissners.org>
7473
7474         * dojump.c (top level): Include basic-block.h to declare
7475         optimize_insn_for_speed_p
7476
7477         * Makefile.in (dodump.h): Add $(BASIC_BLOCK_H) dependency.
7478
7479         * opts.h (CL_SAVE): New option class for marking options that are
7480         target specific options usable in the target attribute.
7481         (CL_MIN_OPTION_CLASS): CL_SAVE is now the minimum option.
7482
7483         * opt-functions.awk (switch_flags): Add CL_SAVE flag so backends
7484         can easily find the target specific options that are safe to use
7485         in the attribute or pragma.
7486
7487         * attribs.c (decl_attributes): Change #pragma GCC option to
7488         #pragma GCC target, and attribute((option(...))) to
7489         attribute((target(...))).
7490
7491         * doc/extend.texi (target attribute): Change from option
7492         attribute.  Delete push/pop/reset.
7493         (#pragma GCC target): Change from #pragma GCC option.  Delete
7494         push/pop/reset.
7495         (#pragma GCC push_options): Document new pragma.
7496         (#pragma GCC pop_options): Document new pragma.
7497         (#pragma GCC reset_options): Document new pragma.
7498
7499         * targhooks.c (default_target_option_valid_attribute_p): Add
7500         warning about port not supporting target attributes.
7501         (default_target_option_pragma_parse): New function, warn about
7502         #pragma GCC target not being supported.
7503
7504         * targhooks.h (default_target_option_pragma_parse): Add
7505         declaration.
7506
7507         * tree.h (TI_CURRENT_TARGET_PRAGMA): Rename from
7508         TI_CURRENT_OPTION_PRAGMA.
7509         (current_target_pragma): Rename from current_option_pragma.
7510
7511         * target.h: (struct target_option): Delete booleans for changing
7512         the optimization level on hot/cold functions.  Change signature of
7513         pragma_parse hook to take a second tree.
7514
7515         * c-tree.h (c_builtin_function_ext_scope): Add declaration.
7516
7517         * c-decl.c (c_builtin_function_ext_scope): New function, guarantee
7518         that the declaration is done at global scope.
7519
7520         * langhooks.c (add_builtin_function_common): Move most of the code
7521         from add_builtin_function here, calling the hook passed in.
7522         (add_builtin_function): Call add_builtin_function_common with
7523         standard builtin hook.
7524         (add_builtin_function_ext_scope): New function to add builtins to
7525         global scope.
7526
7527         * langhooks.h (struct lang_hooks): Add builtin_function_ext_scope
7528         hook.
7529         (add_builtin_function_ext_scope): Add declaration.
7530
7531         * c-pragma.c (handle_pragma_target): Rename from
7532         handle_pragma_option, #pragma GCC option is now #pragma GCC
7533         target.  Move warning about port not supporting target options to
7534         default pragma parse hook.  Remove push/pop/reset from this
7535         pragma.
7536         (handle_pragma_optimize): Remove push/pop/reset from this pragma.
7537         (option_stack): Delete static variable.
7538         (optimize_stack): Ditto.
7539         (optons_stack): New stack of saved target and optimization
7540         options.
7541         (handle_pragma_push_options): New function to handle pushing both
7542         target and optimization options.
7543         (handle_pragma_pop_options): New function to handle popping both
7544         target and optimization options.
7545         (handle_pragma_reset_options): New function to handle resetting
7546         both target and optimization options to their initial state.
7547         (init_pragma): Rename handle_pragma_option to
7548         handle_pragma_target.  Add support for push_options, pop_options,
7549         and reset_options pragmas.
7550
7551         * target-def.h (TARGET_OPTION_PRAGMA_PARSE): Change default to
7552         default_target_option_pragma_parse.
7553         (TARGET_OPTION_VALID_ATTRIBUTE_P): Change default to
7554         default_target_option_valid_attribute_p.
7555         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
7556         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
7557         (TARGET_OPTION_HOOKS): Delete the fields for whether to change
7558         optimization level on hot/cold functions.
7559
7560         * tree-inline.c (tree_can_inline_p): Disable suppressing inlining
7561         if the caller and callee have different optimization levels.
7562
7563         * c-common.c (handle_target_attribute): Rename from
7564         handle_option_attribute, attribute((option(...))) is now
7565         attribute((target(...))).  Move warning if the port does not
7566         support target attributes to the default hook.
7567         (handle_hot_attribute): Delete code to change the optimization
7568         level of hot functions.
7569         (handle_cold_attribute): Ditto.
7570
7571         * config/i386/i386-c.c (ix86_pragma_target_parse): Take a second
7572         argument that is the binary tree options to use if there are no
7573         arguments.  Call ix86_valid_target_attribute_tree instead of
7574         ix86_valid_option_attribute_tree.
7575         (ix86_pragma_target_parse): Rename from ix86_pragma_option_parse.
7576         (ix86_register_pragmas): Use ix86_pragma_target_parse instead of
7577         ix86_pragma_option_parse.
7578
7579         * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
7580         Rename from ix86_valid_option_attribute_tree.
7581
7582         * config/i386/i386.c (ix86_add_new_builtins): New function to add
7583         new builtins when the ISA changes.
7584         (ix86_valid_target_attribute_tree): Rename from
7585         ix86_valid_option_attribute_tree.  Change callers.  If the
7586         function specified optimization options, use those as the starting
7587         point before setting up the target attributes.  If the
7588         optimization options were changed in the course of setting the
7589         target attributes, record the new optimization options.
7590         (ix86_valid_target_attribute_tree_inner_p): Rename from
7591         ix86_valid_option_attribute_tree_inner_p.  Change callers.  Call
7592         ix86_add_new_builtins if the ISA changed.
7593         (ix86_valid_target_attribute_p): Rename from
7594         ix86_valid_option_attribute_p.  Change callers.
7595         (enum ix86_builtins): Add IX86_BUILTIN_PCMOV to allow both
7596         __builtin_ia32_pcmov and __builtin_ia32_pcmov_v2di to be declared
7597         as delayed builtin functions.
7598         (struct builtin_isa): New structure to record builtin functions
7599         that should be delayed until the ISA for that function is used.
7600         (ix86_builtins_isa): Change from int to struct to track builtin
7601         functions we want to declare at some point.
7602         (def_builtin): If the front end can delay defining the builtin
7603         functions, don't create builtins for ISAs not part of the default
7604         options.
7605         (def_builtin_const): Ditto.
7606         (bdesc_multi_arg): Declare __builtin_ia32_pcmov and
7607         __builtin_ia32_pcmov_v2di to be different builtin functions.
7608         (ix86_expand_builtin): Changes due to ix86_builtins_isa now being
7609         a structure instead of an int.
7610         (TARGET_OPTION_VALID_ATTRIBUTE_P): Use
7611         ix86_valid_target_attribute_p, not ix86_valid_option_attribute_p.
7612         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
7613         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
7614
7615         * config/ia64/ia64.h
7616         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
7617         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
7618
7619         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): New
7620         hook, default to being the same as LANG_HOOKS_BUILTIN_FUNCTION.
7621         (LANG_HOOKS_INITIALIZER): Add
7622         LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE hook.
7623
7624 2008-08-30  Kaz Kojima  <kkojima@gcc.gnu.org>
7625
7626         PR target/37270
7627         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Generate
7628         the reload address with the index register for SFmode
7629         access with a displacement.
7630
7631 2008-08-30  Jan Hubicka  <jh@suse.cz>
7632
7633         * optabs.c (expand_abs_nojump): Update BRANCH_COST call.
7634         * fold-cost.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop): Likewise.
7635         * dojump.c (do_jump): Likewise.
7636         * ifcvt.c (MAX_CONDITIONAL_EXECUTE): Likewise.
7637         (note-if_info): Add BRANCH_COST.
7638         (noce_try_store_flag_constants, noce_try_addcc,
7639         noce_try_store_flag_mask, noce_try_cmove_arith, noce_try_cmove_arith,
7640         noce_try_cmove_arith, noce_find_if_block, find_if_case_1,
7641         find_if_case_2): Use computed branch cost.
7642         * expr.h (BRANCH_COST): Update default.
7643         * predict.c (predictable_edge_p): New function.
7644         * expmed.c (expand_smod_pow2, expand_sdiv_pow2, emit_store_flag):
7645         Update BRANCH_COST call.
7646         * basic-block.h (predictable_edge_p): Declare.
7647         * config/alpha/alpha.h (BRANCH_COST): Update.
7648         * config/frv/frv.h (BRANCH_COST): Update.
7649         * config/s390/s390.h (BRANCH_COST): Update.
7650         * config/spu/spu.h (BRANCH_COST): Update.
7651         * config/sparc/sparc.h (BRANCH_COST): Update.
7652         * config/m32r/m32r.h (BRANCH_COST): Update.
7653         * config/i386/i386.h (BRANCH_COST): Update.
7654         * config/i386/i386.c (ix86_expand_int_movcc): Update use of
7655         BRANCH_COST.
7656         * config/sh/sh.h (BRANCH_COST): Update.
7657         * config/pdp11/pdp11.h (BRANCH_COST): Update.
7658         * config/avr/avr.h (BRANCH_COST): Update.
7659         * config/crx/crx.h (BRANCH_COST): Update.
7660         * config/xtensa/xtensa.h (BRANCH_COST): Update.
7661         * config/stormy16/stormy16.h (BRANCH_COST): Update.
7662         * config/m68hc11/m68hc11.h (BRANCH_COST): Update.
7663         * config/iq2000/iq2000.h (BRANCH_COST): Update.
7664         * config/ia64/ia64.h (BRANCH_COST): Update.
7665         * config/rs6000/rs6000.h (BRANCH_COST): Update.
7666         * config/arc/arc.h (BRANCH_COST): Update.
7667         * config/score/score.h (BRANCH_COST): Update.
7668         * config/arm/arm.h (BRANCH_COST): Update.
7669         * config/pa/pa.h (BRANCH_COST): Update.
7670         * config/mips/mips.h (BRANCH_COST): Update.
7671         * config/vax/vax.h (BRANCH_COST): Update.
7672         * config/h8300/h8300.h (BRANCH_COST): Update.
7673         * params.def (PARAM_PREDICTABLE_BRANCH_OUTCOME): New.
7674         * doc/invoke.texi (predictable-branch-cost-outcome): Document.
7675         * doc/tm.texi (BRANCH_COST): Update.
7676
7677 2008-08-30  Samuel Tardieu  <sam@rfc1149.net>
7678
7679         PR target/37283
7680         * config/arm/arm.c (arm_optimization_options): Set
7681         flag_section_anchors to 2 instead of 1 to distinguish it from
7682         -fsection-anchors given explicitely on the command line.
7683
7684 2008-08-30  Richard Sandiford  <rdsandiford@googlemail.com>
7685
7686         * recog.c (split_insn): Consider attaching a REG_EQUAL note to the
7687         final insn of a split.
7688
7689 2008-08-30  Jan Hubicka  <jh@suse.cz>
7690
7691         * postreload-gcse.c (gate_handle_gcse2): Disable for functions
7692         optimized for speed.
7693         * final.c (compute_alignments): Use optimize_bb_for_size_p.
7694         * tree-call-cdce.c (gate_call_cdce): Use optimize_function_for_speed_p.
7695         * opts.c (flag_predictive_commoning_set, flag_unswitch_loops_set,
7696         flag_gcse_after_reload_set): New static vars.
7697         (common_handle_option): Enable those flags for profile-use.
7698         (decode_options): Remove optimize_size flags that are handled
7699         on higher granuality.
7700         * tree-vectorizer.c (vectorize_loops): Use
7701         optimize_loop_nest_for_speed_p.
7702         * tree-ssa-pre.c (do_pre): Use optimize_function_for_speed_p.
7703         * tree-predcom.c (tree_predictive_commoning): Use
7704         optimize_loop_for_speed_p.
7705         * varasm.c (assemble_start_function): Use
7706         optimize_function_for_speed_p.
7707         * bb-reorder.c (rest_of_handle_reorder_blocks): Likewise.
7708         * predict.c (optimize_loop_for_speed_p): Fix walk.
7709
7710 2008-08-30  Jan Hubicka  <jh@suse.cz>
7711
7712         * ipa-inline.c (cgraph_estimate_growth): Discover self recursive
7713         functions.
7714         (cgraph_decide_inlining_of_small_function): Use edge->count to detect
7715         profile presence locally.
7716
7717 2008-08-29  Joseph Myers  <joseph@codesourcery.com>
7718
7719         PR bootstrap/37086
7720         * tree-vrp.c (find_switch_asserts): Make idx volatile for GCC
7721         versions before 4.0.
7722
7723 2008-08-29  Jan Hubicka  <jh@suse.cz>
7724
7725         * tree-inline.c (insert_init_stmt): Insert sequence even when
7726         not in SSA form.
7727
7728 2008-08-29  Jeff Law  <law@redhat.com>
7729
7730         * mn10300.c (mn10300_secondary_reload_class): We need secondary
7731         reloads for AM33-2 if IN is a pseudo with an equivalent memory
7732         location and class is an FP register.
7733
7734 2008-08-29  Jan Hubicka  <jh@suse.cz>
7735
7736         * see.c (see_merge_one_def_extension): Silence used uninitialized
7737         warning.
7738         * matrix-reorg.c (check_allocation_function): Likewise.
7739         * config/i386/driver-i386.c (detect_caches_amd): Likewise.
7740
7741 2008-08-29  Jakub Jelinek  <jakub@redhat.com>
7742
7743         PR c/37261
7744         * fold-const.c (fold_binary): In (X | C1) & C2 canonicalization
7745         compute new & and | in type rather than TREE_TYPE (arg0).
7746
7747         * dwarf2out.c (fortran_common): Update comment.
7748         (gen_variable_die): Swap com_die and var_die variables in Fortran
7749         COMMON block handling code.
7750
7751         * dwarf2out.c (descr_info_loc): Handle VAR_DECL.
7752
7753         * dwarf2out.c (gen_const_die): New function.
7754         (size_of_die, value_format, output_die): Output larger
7755         dw_val_class_vec using DW_FORM_block2 or DW_FORM_block4.
7756         (native_encode_initializer): New function.
7757         (tree_add_const_value_attribute): Call it.
7758         (gen_decl_die, dwarf2out_decl): Handle CONST_DECLs if is_fortran ().
7759
7760         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): For
7761         DECL_BY_REFERENCE decls don't pass TREE_READONLY and
7762         TREE_THIS_VOLATILE to add_type_attribute.
7763
7764         * dwarf2out.c (add_subscript_info): Stop on Fortran TYPE_STRING_FLAG
7765         types.
7766         (gen_array_type_die): Emit DW_TAG_string_type for Fortran character
7767         types.
7768
7769         * dwarf2out.c (loc_by_reference): New function.
7770         (add_location_or_const_value_attribute): Use it.
7771
7772         PR fortran/23057
7773         * dwarf2out.c (gen_variable_die): Represent Fortran COMMON vars
7774         as DW_TAG_variable children of DW_TAG_common_block rather than
7775         DW_TAG_member children.  Put DW_AT_external to individual
7776         DW_TAG_variable DIEs, not to DW_TAG_common_block.
7777
7778         * dwarf2out.c (add_bound_info): If lookup_decl_die failed, try
7779         loc_descriptor_from_tree_1.
7780
7781         PR fortran/29635
7782         PR fortran/23057
7783         * debug.h (struct gcc_debug_hooks): Add NAME and CHILD
7784         arguments to imported_module_or_decl.
7785         (debug_nothing_tree_tree): Removed.
7786         (debug_nothing_tree_tree_tree_bool): New prototype.
7787         * debug.c (do_nothing_debug_hooks): Adjust.
7788         (debug_nothing_tree_tree): Removed.
7789         (debug_nothing_tree_tree_tree_bool): New function.
7790         * dwarf2out.c (is_symbol_die): Handle DW_TAG_module.
7791         (gen_variable_die): Put all common vars for the
7792         same COMMON block under one DW_TAG_common_block.
7793         (declare_in_namespace): Return new context_die, for Fortran
7794         return the module DIE instead of adding extra declarations into
7795         the namespace.
7796         (gen_type_die_with_usage): Adjust declare_in_namespace caller.
7797         (gen_namespace_die): If is_fortran (), generate DW_TAG_module
7798         instead of DW_TAG_namespace.  If DECL_EXTERNAL is set, add
7799         DW_AT_declaration.
7800         (dwarf2out_global_decl): Don't skip Fortran global vars.
7801         (gen_decl_die): Likewise.  Adjust declare_in_namespace callers.
7802         (dwarf2out_imported_module_or_decl): Add NAME and CHILD arguments.
7803         If NAME is non-NULL, add DW_AT_name.  If CHILD is non-NULL, put
7804         DW_TAG_imported_declaration as child of previous
7805         DW_TAG_imported_module.
7806         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Adjust.
7807         * sdbout.c (sdb_debug_hooks): Likewise.
7808         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
7809
7810 2008-08-29  Jan Hubicka  <jh@suse.cz>
7811
7812         * cgraph.c (cgraph_remove_node): Do not remove nested nodes.
7813
7814         * cgraph.h (cgraph_maybe_hot_edge_p): Declare.
7815         * ipa-cp.c (n_cloning_candidates): New static variable.
7816         (ipcp_print_profile_data, ipcp_function_scale_print): Forward declare.
7817         (ipcp_print_all_lattices): Improve debug output.
7818         (ipcp_cloning_candidate_p): New function.
7819         (ipcp_initialize_node_lattices): Use it.
7820         (ipcp_init_stage): Do only analyzis here; prettier debug output.
7821         (ipcp_propagate_stage): Prettier debug output.
7822         (ipcp_iterate_stage): Initialize latices here; prettier debug output.
7823         (ipcp_print_all_structures): Remove.
7824         (ipcp_need_redirect_p): Test !n_cloning_candidates.
7825         (ipcp_insert_stage): Prettier debug output; call
7826         cgraph_remove_unreachable_nodes before propagating.
7827         (pass_ipa_cp): Schedule function removal pass.
7828         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Better
7829         debug output.
7830         (cgraph_maybe_hot_edge_p): Move to ...
7831         * predict.c (cgraph_maybe_hot_edge_p) ... here.
7832         * opts.c (flag_ipa_cp_set, flag_ipa_cp_clone_set): New.
7833         (common_handle_option): Set them; enable ipa-cp when profiling.
7834         * ipa-prop.c (ipa_print_node_jump_functions): Prettier output.
7835         (ipa_print_all_jump_functions): Likewise.
7836         (ipa_print_all_tree_maps, ipa_print_node_param_flags): Remove.
7837         (ipa_print_node_params, ipa_print_all_params): New.
7838         * ipa-prop.h (ipa_print_all_tree_maps, ipa_print_node_param_flags,
7839         ipa_print_all_param_flags): Remove.
7840         (ipa_print_node_params, ipa_print_all_params): New.
7841
7842 2008-08-29  Bob Wilson  <bob.wilson@acm.org>
7843
7844         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Revert
7845         change from 2008-04-03.
7846         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Define.
7847
7848 2008-08-29  Vladimir Makarov  <vmakarov@redhat.com>
7849
7850         PR rtl-opt/37251
7851         * ira-color.c (push_allocnos_to_stack): Truncate
7852         removed_splay_allocno_vec.
7853
7854 2008-08-29  Vladimir Makarov  <vmakarov@redhat.com>
7855
7856         PR rtl-opt/37243
7857         * ira-color (ira_fast_allocation): Don't assign hard registers to
7858         global allocnos.
7859
7860 2008-08-29  Jan Hubicka  <jh@suse.cz>
7861
7862         PR middle-end/37278
7863         * predict.c (optimize_loop_nest_for_speed_p): Do not ICE
7864         for cold internal loops.
7865
7866 2008-08-29  Richard Guenther  <rguenther@suse.de>
7867
7868         * tree-ssa-structalias.c (create_variable_info_for): Do not
7869         create fields for heap vars or vars with a noalias state.
7870         For NO_ALIAS_ANYTHING variables add a self-constraint, not one
7871         from ESCAPED.
7872
7873 2008-08-29  Richard Guenther  <rguenther@suse.de>
7874
7875         * common.opt (ftree-store-ccp): Mark as preserved for
7876         backward compatibility.
7877         * doc/invoke.texi (-ftree-store-ccp): Remove documentation.
7878         * tree-pass.h (pass_store_ccp): Remove.
7879         * tree-ssa-propagate.h (struct prop_value_d): Remove mem_ref field.
7880         (first_vdef): Remove declaration.
7881         (get_value_loaded_by): Likewise.
7882         * tree-ssa-ccp.c (do_store_ccp): Remove.
7883         (get_default_value): Simplify as do_store_ccp is always false
7884         now.  Do not initialize mem_ref.
7885         (set_value_varying): Likewise.
7886         (canonicalize_float_value): Likewise.
7887         (set_lattice_value): Likewise.
7888         (likely_value): Likewise.
7889         (surely_varying_stmt_p): Likewise.
7890         (ccp_initialize): Likewise.
7891         (ccp_lattice_meet): Likewise.
7892         (ccp_visit_phi_node): Likewise.
7893         (ccp_fold): Likewise.
7894         (evaluate_stmt): Likewise.
7895         (visit_assignment): Likewise.
7896         (ccp_visit_stmt): Likewise.
7897         (execute_ssa_ccp): Fold into ...
7898         (do_ssa_ccp): ... this.
7899         (do_ssa_store_ccp): Remove.
7900         (gate_store_ccp): Likewise.
7901         (pass_store_ccp): Likewise.
7902         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not
7903         initialize mem_ref.
7904         * tree-ssa-propagate.c (first_vdef): Remove.
7905         (get_value_loaded_by): Likewise.
7906         (replace_vuses_in): Likewise.
7907         (substitute_and_fold): Do not call replace_vuses_in.
7908         * opts.c (decode_options): Do not set flag_tree_store_ccp.
7909
7910 2008-08-29  Richard Guenther  <rguenther@suse.de>
7911
7912         PR middle-end/37236
7913         * tree-ssa-structalias.c (intra_create_variable_infos): Mark
7914         PARAM_NOALIAS tags with is_heapvar.
7915         * tree-ssa-operands.c (access_can_touch_variable): Offset
7916         based tests do not apply for heapvars.  Fix offset test.
7917
7918 2008-08-29  Jan Hubicka  <jh@suse.cz>
7919
7920         * doc/invoke.texi (-fipa-cp): Enabled by default at -O2/-Os/-O3
7921         (-fipa-cp-clone): Enabled by default at -O3.
7922         * opts.c (decode_options): Enable ipa-cp at -O2, ipa-cp-clone at -O3;
7923         make ipa-cp-clone to imply ipa-cp; disable cloning at -Os.
7924
7925 2008-08-29  Jan Hubicka  <jh@suse.cz>
7926
7927         * tree.c (build_function_type_skip_args,
7928         build_function_decl_skip_args): New functions.
7929         * tree.h (build_function_type_skip_args,
7930         build_function_decl_skip_args): Declare.
7931         * gimple.c (giple_copy_call_skip_args): New function.
7932         (giple_copy_call_skip_args): Declare.
7933
7934         * cgraph.h (cgraph_function_versioning): Add skip_args arugmnet
7935         * ipa-cp.c (ipcp_node_not_modifiable_p): Rename to ...
7936         (ipcp_node_modifiable_p): ... this one; use
7937         tree_versionable_function_p.
7938         (ipcp_create_replace_map): Improve debug output.
7939         (ipcp_need_redirect_p): Return false when not clonning.
7940         (ipcp_update_callgraph): Skip args.
7941         (ipcp_insert_stage): UPdate call of !ipcp_node_modifiable_p;
7942         skip args.
7943         * cgraphunit.c (cgraph_function_versioning): Add skip_args argument.
7944         (save_inline_function_body): Update call of tree_function_versioning.
7945         * ipa-prop.c (ipa_edge_removal_hook): Do not ICE on unanalyzed nodes.
7946         * tree-inline.c (copy_arguments_for_versioning): Add skip_args
7947         argument.
7948         (tree_function_versioning): Likewise.
7949         * tree-inline.h (tree_function_versioning): Update prototype.
7950
7951 2008-08-29  Jan Hubicka  <jh@suse.cz>
7952
7953         * loop-unswitch.c (unswitch_single_loop): Use
7954         optimize_loop_for_speed_p.
7955         * tree-ssa-threadupdate.c (mark_threaded_blocks):
7956         Use optimize_function_for_size_p.
7957         * tracer.c (ignore_bb_p): Use optimize_bb_for_size_p.
7958         * postreload-gcse.c (eliminate_partially_redundant_load):
7959         Use optimize_bb_for_size_p.
7960         * value-prof.c (gimple_divmod_fixed_value_transform,
7961         gimple_mod_pow2_value_transform, gimple_mod_subtract_transform,
7962         gimple_stringops_transform): Use optimize_bb_for_size_p.
7963         * ipa-cp.c (ipcp_insert_stage): Use optimize_function_for_size_p.
7964         * final.c (compute_alignments): Use optimize_function_for_size_p.
7965         * builtins.c (fold_builtin_cabs): Use optimize_function_for_speed_p.
7966         (fold_builtin_strcpy, fold_builtin_fputs): Use
7967         optimize_function_for_size_p.
7968         * fold-const.c (tree_swap_operands_p): Use
7969         optimize_function_for_size_p.
7970         * recog.c (relax_delay_slots): Likewise.
7971         * tree-ssa-math-opts.c (replace_reciprocal):
7972         Use optimize_bb_for_speed_p.
7973         (execute_cse_reciprocals): Use optimize_bb_for_size_p.
7974         * ipa-inline.c (cgraph_decide_recursive_inlining): Use
7975         optimize_function_for_size_p.
7976         (cgraph_decide_inlining_of_small_function): Use
7977         optimize_function_for_size_p.
7978         * global.c (find_reg): Use optimize_function_for_size_p.
7979         * opts.c (decode_options): Do not clear flag_tree_ch,
7980         flag_inline_functions, flag_unswitch_loops, flag_unroll_loops,
7981         flag_unroll_all_loops and flag_prefetch_loop_arrays. Those can
7982         work it out from profile.
7983         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Use
7984         optimize_loop_for_speed_p.
7985         * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
7986         Constify argument.
7987         (optimize_loop_nest_for_size_p, optimize_loop_nest_for_speed_p): New.
7988         * tree-parloops.c (parallelize_loops): Use optimize_loop_for_size_p.
7989         * tree-eh.c (decide_copy_try_finally): Use
7990         optimize_function_for_size_p.
7991         * local-alloc.c (block_alloc): Pass BB pointer.
7992         (find_free_reg): Add BB pointer, use optimize_bb_for_size_p.
7993         * gcse.c (gcse_main): Use optimize_function_for_size_p.
7994         * loop-unroll.c (decide_unrolling_and_peeling):
7995         Use optimize_loop_for_size_p.
7996         (decide_peel_completely): Likewise.
7997         * tree-vect-analyze.c (vect_mark_for_runtime_alias_test): Use
7998         optimize_loop_for_size_p.
7999         (vect_enhance_data_refs_alignment): Likewise.
8000         * tree-ssa-coalesce.c (coalesce_cost): Add optimize_for_size argument.
8001         (coalesce_cost_bb, coalesce_cost_edge, create_outofssa_var_map):
8002         Update call.
8003         * cfgcleanup.c (outgoing_edges_match): Use optimize_bb_for_speed_p.
8004         (try_crossjump_bb): Use optimize_bb_for_size_p.
8005         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
8006         optimize_loop_for_speed_p.
8007         * bb-reorder.c (find_traces_1_round): Likewise.
8008         (copy_bb): Use optimize_bb_for_speed_p.
8009         (duplicate_computed_gotos): Likewise.
8010         * basic-block.h (optimize_loop_nest_for_size_p,
8011         optimize_loop_nest_for_speed_p): New.
8012         * stmt.c (expand_case): Use optimize_insn_for_size_p.
8013
8014 2008-08-29  Tristan Gingold  <gingold@adacore.com>
8015
8016         * gcov.c (main): Call expandargv.
8017
8018 2008-08-29  Jan Hubicka  <jh@suse.cz>
8019
8020         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Check that loop
8021         is not cold.
8022         * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
8023         Constify arguments.
8024         (optimize_loop_for_size_p, optimize_loop_for_speed_p): New functions.
8025         * basic-block.h (optimize_bb_for_size_p, optimize_bb_for_speed_p):
8026         Constify.
8027         (optimize_loop_for_size_p, optimize_loop_for_speed_p): Declare.
8028
8029 2008-08-29  Jan Hubicka  <jh@suse.cz>
8030
8031         * tree-pass.h (pass_strip_predict_hints): Declare.
8032         * predict.c (strip_builtin_expect): Rename to ...
8033         (strip_predict_hints): ... this one; strip also GIMPLE_PREDICT.
8034         (tree_bb_level_predictions): Do not remove GIMPLE_PREDICT.
8035         (tree_estimate_probability): Do not strip builtin_expect.
8036         (pass_strip_predict_hints): New pass.
8037         * tree-inline.c (expand_call_inline): When inlining cold function,
8038         predict it as unlikely.
8039         * passes.c (init_optimization_passes): Add pass_strip_predict_hints.
8040
8041 2008-08-29  Richard Guenther  <rguenther@suse.de>
8042
8043         PR tree-optimization/37207
8044         * tree-vrp.c (extract_range_from_binary_expr): Also try
8045         to constant fold if only one of the operands is a constant.
8046
8047 2008-08-29  Nick Clifton  <nickc@redhat.com>
8048
8049         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Treat LABEL_REFs in
8050         the same way as SYMBOL_REFs.
8051
8052 2008-08-28  Bob Wilson  <bob.wilson@acm.org>
8053
8054         * config/xtensa/xtensa.md (<u>mulsidi3): Use a temporary register.
8055
8056 2008-08-28  Adam Nemet  <anemet@caviumnetworks.com>
8057
8058         * config/mips/mips.h (ISA_HAS_BBIT): New macro.
8059         * config/mips/mips.md (branch_likely): Remove const.  Fix
8060         comment formatting.
8061         (define_delay for type "branch"): Change to only apply for branch
8062         with likely variant.
8063         (define_delay for type "branch" and "branch_likely" no).  New delay
8064         definition.
8065         (equality_op): New code iterator.
8066         (bbv, bbinv): New code attributes.
8067         (*branch_bit<bbv><mode>, *branch_bit<bbv><mode>_inverted): New
8068         patterns.
8069
8070 2008-08-28  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8071             Andrew Pinski  <pinskia@gcc.gnu.org>
8072
8073         PR 18050
8074         * c-common.c (verify_tree): Fix handling of ADDR_EXPR.
8075
8076 2008-08-28  Paolo Carlini  <paolo.carlini@oracle.com>
8077
8078         * gtrh-posix.h: Fix uses of _POSIX_TIMEOUTS per the normal Posix
8079         rule that a symbolic constant must be defined and >= 0 for the
8080         corresponding facility to be present at compile-time.
8081         * gthr-posix.c: Likewise.
8082
8083 2008-08-28  Adam Nemet  <anemet@caviumnetworks.com>
8084
8085         * config/mips/mips.h (ISA_HAS_DMUL3): New macro.
8086         * config/mips/mips.md (D): New mode attribute.
8087         (mulsi3, muldi3): Merge it into ...
8088         (mul<mode>3): ... new template.  Use _mul3 ending for 3-op patterns.
8089         (muldi3_mul3): New pattern.
8090         (mulsi3_mult3): Rename to mulsi3_mul3.
8091
8092 2008-08-28  Jan Hubicka  <jh@suse.cz>
8093
8094         * expmed.c (store_bit_field_1): Be prepared for movstrict expander
8095         to fail.
8096         * predict.c (always_optimize_for_size_p): Rename to ...
8097         (optimize_function_for_size): ... this one; make extern.
8098         (optimize_function_for_speed_p): New.
8099         (optimize_bb_for_size_p, optimize_bb_for_size_p,
8100         optimize_edge_for_size_p,optimize_edge_for_size_p,
8101         optimize_insn_for_size_p, optimize_insn_for_size_p): Update.
8102         * basic-block.h (optimize_function_for_size_p,
8103         optimize_function_for_speed_p): Declare.
8104         * i386.md (optimize_size checks): Replace them by appropriate
8105         predicate.
8106         (standard_80387_constant_p, ix86_compute_frame_layout,
8107         ix86_expand_epilogue, ix86_decompose_address,
8108         print_operand, emit_i387_cw_initialization,
8109         inline_memory_move_cost, ix86_pad_returns,
8110         ix86_reorg): Replace optimize_size checks.
8111
8112 2008-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8113
8114         * rtl.h (simplify_subreg_regno): Declare.
8115         * rtlanal.c (simplify_subreg_regno): New function, split out from...
8116         * simplify-rtx.c (simplify_subreg): ...here.
8117         * reload.c (find_reloads): Use simplify_subreg_regno instead of
8118         subreg_offset_representable_p.
8119
8120 2008-08-28  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8121
8122         PR c/30949
8123         * c-typeck.c (convert_for_assignment): Give a note describing what
8124         was passed and what was expected.
8125
8126 2008-08-28  Joey Ye  <joey.ye@intel.com>
8127
8128         * doc/extend.texi: Document AVX built-in functions.
8129         * doc/invoke.texi: Document -mavx.
8130
8131 2008-08-28  H.J. Lu  <hongjiu.lu@intel.com>
8132             Joey Ye  <joey.ye@intel.com>
8133             Xuepeng Guo  <xuepeng.guo@intel.com>
8134
8135         * config.gcc (extra_headers): Add gmmintrin.h for x86 and x86-64.
8136
8137         * config/i386/cpuid.h (bit_FMA): New.
8138         (bit_XSAVE): Likewise.
8139         (bit_OSXSAVE): Likewise.
8140         (bit_AVX): Likewise.
8141
8142         * config/i386/gas.h (ASM_OUTPUT_OPCODE): Undefine before
8143         define.  Use ASM_OUTPUT_AVX_PREFIX.
8144
8145         * config/i386/gmmintrin.h: New.
8146
8147         * config/i386/i386.c (x86_64_reg_class): Add X86_64_AVX_CLASS.
8148         (OPTION_MASK_ISA_AVX_SET): New.
8149         (OPTION_MASK_ISA_FMA_SET): Likewise.
8150         (OPTION_MASK_ISA_AVX_UNSET): Likewise.
8151         (OPTION_MASK_ISA_FMA_SET): Likewise.
8152         (OPTION_MASK_ISA_SSE4_2_UNSET): Updated.
8153         (ix86_handle_option): Handle OPT_mavx and OPT_mfma.
8154         (pta_flags): Add PTA_AVX and PTA_FMA.
8155         (override_options): Handle PTA_AVX and PTA_FMA.
8156         (init_cumulative_args): Handle warn_avx.
8157         (classify_argument): Return 0 for COImode and OImode.  Return
8158         1 and X86_64_AVX_CLASS for 256bit vector types.
8159         (examine_argument): Handle X86_64_AVX_CLASS.
8160         (construct_container): Likewise.
8161         (function_arg_advance_32): Pass OImode and 256bit vector types
8162         in AVX register.
8163         (function_arg_advance_64): Take a new argument to indicate if a
8164         parameter is named.  Handle 256bit vector types.  Return
8165         immediately for unnamed 256bit vector mode parameters.
8166         (function_arg_advance): Updated.
8167         (function_arg_32): Add comments for TImode.  Handle OImode
8168         and 256bit vector types.
8169         (function_arg_64): Take a new argument to indicate if a
8170         parameter is named.  Handle 256bit vector types.  Return NULL
8171         for unnamed 256bit vector mode parameters.
8172         (function_arg): Updated.
8173         (setup_incoming_varargs_64): Support
8174         AVX encoding for *sse_prologue_save_insn.
8175         (ix86_gimplify_va_arg): Handle 256bit vector mode parameters.
8176         (standard_sse_constant_p): Return -2 for all 1s if SSE2 isn't
8177         enabled.  For all 1s in 256bit vector modes, return 3 if AVX is
8178         enabled, otherwise return -3.
8179         (standard_sse_constant_opcode): Handle AVX and 256bit vector
8180         modes.
8181         (print_reg): Support AVX registers.  Handle 'x' and 't'.
8182         Handle 'd' to duplicate the operand.
8183         (print_operand): Likewise.  Also support AVX vector compare
8184         instructions.
8185         (output_387_binary_op): Support AVX.
8186         (output_fp_compare): Likewise.
8187         (ix86_expand_vector_move_misalign): Likewise.
8188         (ix86_attr_length_vex_default): New.
8189         (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
8190         IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
8191         IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
8192         IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
8193         IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_BLENDPD256,
8194         IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
8195         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DIVPD256,
8196         IX86_BUILTIN_DIVPS256, IX86_BUILTIN_DPPS256,
8197         IX86_BUILTIN_HADDPD256, IX86_BUILTIN_HADDPS256,
8198         IX86_BUILTIN_HSUBPD256, IX86_BUILTIN_HSUBPS256,
8199         IX86_BUILTIN_MAXPD256, IX86_BUILTIN_MAXPS256,
8200         IX86_BUILTIN_MINPD256, IX86_BUILTIN_MINPS256,
8201         IX86_BUILTIN_MULPD256, IX86_BUILTIN_MULPS256,
8202         IX86_BUILTIN_ORPD256, IX86_BUILTIN_ORPS256,
8203         IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
8204         IX86_BUILTIN_SUBPD256, IX86_BUILTIN_SUBPS256,
8205         IX86_BUILTIN_XORPD256, IX86_BUILTIN_XORPS256,
8206         IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
8207         IX86_BUILTIN_CMPPS, IX86_BUILTIN_CMPPD256,
8208         IX86_BUILTIN_CMPPS256, IX86_BUILTIN_CVTDQ2PD256,
8209         IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
8210         IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
8211         IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
8212         IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_EXTRACTF128PD256,
8213         IX86_BUILTIN_EXTRACTF128PS256, IX86_BUILTIN_EXTRACTF128SI256,
8214         IX86_BUILTIN_VZEROALL, IX86_BUILTIN_VZEROUPPER,
8215         IX86_BUILTIN_VZEROUPPER_REX64, IX86_BUILTIN_VPERMILVARPD,
8216         IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
8217         IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_VPERMILPD,
8218         IX86_BUILTIN_VPERMILPS, IX86_BUILTIN_VPERMILPD256,
8219         IX86_BUILTIN_VPERMILPS256, IX86_BUILTIN_VPERMIL2PD,
8220         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256,
8221         IX86_BUILTIN_VPERMIL2PS256, IX86_BUILTIN_VPERM2F128PD256,
8222         IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
8223         IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
8224         IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
8225         IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_VINSERTF128PD256,
8226         IX86_BUILTIN_VINSERTF128PS256, IX86_BUILTIN_VINSERTF128SI256,
8227         IX86_BUILTIN_LOADUPD256, IX86_BUILTIN_LOADUPS256,
8228         IX86_BUILTIN_STOREUPD256, IX86_BUILTIN_STOREUPS256,
8229         IX86_BUILTIN_LDDQU256, IX86_BUILTIN_LOADDQU256,
8230         IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_MASKLOADPD,
8231         IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKSTOREPD,
8232         IX86_BUILTIN_MASKSTOREPS, IX86_BUILTIN_MASKLOADPD256,
8233         IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKSTOREPD256,
8234         IX86_BUILTIN_MASKSTOREPS256, IX86_BUILTIN_MOVSHDUP256,
8235         IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
8236         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
8237         IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
8238         IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
8239         IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
8240         IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
8241         IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
8242         IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
8243         IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
8244         IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
8245         IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
8246         IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
8247         IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
8248         IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
8249         IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
8250         IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
8251         IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
8252         IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256
8253         and IX86_BUILTIN_MOVMSKPS256,
8254         (ix86_special_builtin_type): Add V32QI_FTYPE_PCCHAR,
8255         V8SF_FTYPE_PCV4SF, V8SF_FTYPE_PCFLOAT, V4DF_FTYPE_PCV2DF,
8256         V4DF_FTYPE_PCDOUBLE, V8SF_FTYPE_PCV8SF_V8SF,
8257         V4DF_FTYPE_PCV4DF_V4DF, V4SF_FTYPE_PCV4SF_V4SF,
8258         V2DF_FTYPE_PCV2DF_V2DF, VOID_FTYPE_PCHAR_V32QI,
8259         VOID_FTYPE_PFLOAT_V8SF, VOID_FTYPE_PDOUBLE_V4DF,
8260         VOID_FTYPE_PV8SF_V8SF_V8SF, VOID_FTYPE_PV4DF_V4DF_V4DF,
8261         VOID_FTYPE_PV4SF_V4SF_V4SF and VOID_FTYPE_PV2DF_V2DF_V2DF,
8262         (ix86_builtin_type): Add INT_FTYPE_V8SF_V8SF_PTEST,
8263         INT_FTYPE_V4DI_V4DI_PTEST, INT_FTYPE_V4DF_V4DF_PTEST,
8264         INT_FTYPE_V4SF_V4SF_PTEST, INT_FTYPE_V2DF_V2DF_PTEST,
8265         INT_FTYPE_V8SF, INT_FTYPE_V4DF, V8SI_FTYPE_V8SF, V8SI_FTYPE_V4SI,
8266         V8SF_FTYPE_V8SF, V8SF_FTYPE_V8SI, V8SF_FTYPE_V4SF,
8267         V4SI_FTYPE_V8SI, V4SI_FTYPE_V4DF, V4DF_FTYPE_V4DF,
8268         V4DF_FTYPE_V4SI, V4DF_FTYPE_V4SF, V4DF_FTYPE_V2DF,
8269         V4SF_FTYPE_V4DF, V4SF_FTYPE_V8SF, V2DF_FTYPE_V4DF,
8270         V8SF_FTYPE_V8SF_V8SF, V8SF_FTYPE_V8SF_V8SI,
8271         V4DF_FTYPE_V4DF_V4DF, V4DF_FTYPE_V4DF_V4DI,
8272         V4SF_FTYPE_V4SF_V4SI, V2DF_FTYPE_V2DF_V2DI,
8273         V8SF_FTYPE_V8SF_INT, V4SI_FTYPE_V8SI_INT, V4SF_FTYPE_V8SF_INT,
8274         V2DF_FTYPE_V4DF_INT, V4DF_FTYPE_V4DF_INT,
8275         V8SF_FTYPE_V8SF_V8SF_V8SF, V4DF_FTYPE_V4DF_V4DF_V4DF,
8276         V8SI_FTYPE_V8SI_V8SI_INT, V8SF_FTYPE_V8SF_V8SF_INT,
8277         V4DF_FTYPE_V4DF_V4DF_INT, V4DF_FTYPE_V4DF_V2DF_INT,
8278         V8SF_FTYPE_V8SF_V8SF_V8SI_INT, V4DF_FTYPE_V4DF_V4DF_V4DI_INT,
8279         V4SF_FTYPE_V4SF_V4SF_V4SI_INT and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
8280         (bdesc_special_args): Add IX86_BUILTIN_VZEROALL,
8281         IX86_BUILTIN_VZEROUPPER. IX86_BUILTIN_VZEROUPPER_REX64,
8282         IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
8283         IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
8284         IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_LOADUPD256,
8285         IX86_BUILTIN_LOADUPS256, IX86_BUILTIN_STOREUPD256,
8286         IX86_BUILTIN_STOREUPS256, IX86_BUILTIN_LOADDQU256,
8287         IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_LDDQU256,
8288         IX86_BUILTIN_MASKLOADPD, IX86_BUILTIN_MASKLOADPS,
8289         IX86_BUILTIN_MASKLOADPD256, IX86_BUILTIN_MASKLOADPS256,
8290         IX86_BUILTIN_MASKSTOREPD, IX86_BUILTIN_MASKSTOREPS,
8291         IX86_BUILTIN_MASKSTOREPD256 and IX86_BUILTIN_MASKSTOREPS256.
8292         (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
8293         IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
8294         IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
8295         IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
8296         IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_DIVPD256,
8297         IX86_BUILTIN_DIVPS256, IX86_BUILTIN_HADDPD256,
8298         IX86_BUILTIN_HSUBPS256, IX86_BUILTIN_HSUBPD256,
8299         IX86_BUILTIN_HADDPS256, IX86_BUILTIN_MAXPD256,
8300         IX86_BUILTIN_MAXPS256, IX86_BUILTIN_MINPD256,
8301         IX86_BUILTIN_MINPS256, IX86_BUILTIN_MULPD256,
8302         IX86_BUILTIN_MULPS256, IX86_BUILTIN_ORPD256,
8303         IX86_BUILTIN_ORPS256, IX86_BUILTIN_SUBPD256,
8304         IX86_BUILTIN_SUBPS256, IX86_BUILTIN_XORPD256,
8305         IX86_BUILTIN_XORPS256, IX86_BUILTIN_VPERMILVARPD,
8306         IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
8307         IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_BLENDPD256,
8308         IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
8309         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DPPS256,
8310         IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
8311         IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
8312         IX86_BUILTIN_CMPPS,
8313         IX86_BUILTIN_CMPPD256,IX86_BUILTIN_CMPPS256,
8314         IX86_BUILTIN_EXTRACTF128PD256, IX86_BUILTIN_EXTRACTF128PS256,
8315         IX86_BUILTIN_EXTRACTF128SI256, IX86_BUILTIN_CVTDQ2PD256,
8316         IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
8317         IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
8318         IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
8319         IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_VPERM2F128PD256,
8320         IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
8321         IX86_BUILTIN_VPERMILPD, IX86_BUILTIN_VPERMILPS,
8322         IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
8323         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMILPS,
8324         IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
8325         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
8326         IX86_BUILTIN_VPERMIL2PD256, IX86_BUILTIN_VPERMIL2PS256,
8327         IX86_BUILTIN_VINSERTF128PD256, IX86_BUILTIN_VINSERTF128PS256,
8328         IX86_BUILTIN_VINSERTF128SI256, IX86_BUILTIN_MOVSHDUP256,
8329         IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
8330         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
8331         IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
8332         IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
8333         IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
8334         IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
8335         IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
8336         IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
8337         IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
8338         IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
8339         IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
8340         IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
8341         IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
8342         IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
8343         IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
8344         IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
8345         IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
8346         IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256 and
8347         IX86_BUILTIN_MOVMSKPS256.
8348         (ix86_init_mmx_sse_builtins): Support AVX builtins.
8349         (ix86_expand_args_builtin): Likewise.
8350         (ix86_expand_special_args_builtin): Likewise.
8351         (ix86_hard_regno_mode_ok): Handle AVX modes.
8352         (ix86_expand_vector_init_duplicate): Likewise.
8353         (ix86_expand_vector_init_one_nonzero): Likewise.
8354         (ix86_expand_vector_init_one_var): Likewise.
8355         (ix86_expand_vector_init_concat): Likewise.
8356         (ix86_expand_vector_init_general): Likewise.
8357         (ix86_expand_vector_set): Likewise.
8358         (ix86_vector_mode_supported_p): Likewise.
8359         (x86_extended_reg_mentioned_p): Check INSN_P before using
8360         PATTERN.
8361
8362         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
8363         OPTION_MASK_ISA_AVX and OPTION_MASK_ISA_FMA.
8364
8365         * config/i386/i386.h (TARGET_AVX): New.
8366         (TARGET_FMA): Likewise.
8367         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AVX and TARGET_FMA.
8368         (BIGGEST_ALIGNMENT): Set to 256 for TARGET_AVX.
8369         (VALID_AVX256_REG_MODE): New.
8370         (AVX256_VEC_FLOAT_MODE_P): Likewise.
8371         (AVX_FLOAT_MODE_P): Likewise.
8372         (AVX128_VEC_FLOAT_MODE_P): Likewise.
8373         (AVX256_VEC_FLOAT_MODE_P): Likewise.
8374         (AVX_VEC_FLOAT_MODE_P): Likewise.
8375         (ASM_OUTPUT_AVX_PREFIX): Likewise.
8376         (ASM_OUTPUT_OPCODE): Likewise.
8377         (UNITS_PER_SIMD_WORD): Add a FIXME for 32byte vectorizer
8378         support.
8379         (SSE_REG_MODE_P): Allow 256bit vector modes.
8380         (ix86_args): Add a warn_avx field.
8381
8382         * config/i386/i386.md (UNSPEC_PCMP): New.
8383         (UNSPEC_VPERMIL): Likewise.
8384         (UNSPEC_VPERMIL2): Likewise.
8385         (UNSPEC_VPERMIL2F128): Likewise.
8386         (UNSPEC_MASKLOAD): Likewise.
8387         (UNSPEC_MASKSTORE): Likewise.
8388         (UNSPEC_CAST): Likewise.
8389         (UNSPEC_VTESTP): Likewise.
8390         (UNSPECV_VZEROALL): Likewise.
8391         (UNSPECV_VZEROUPPER): Likewise.
8392         (XMM0_REG): Likewise.
8393         (XMM1_REG): Likewise.
8394         (XMM2_REG): Likewise.
8395         (XMM3_REG): Likewise.
8396         (XMM4_REG): Likewise.
8397         (XMM5_REG): Likewise.
8398         (XMM6_REG): Likewise.
8399         (XMM8_REG): Likewise.
8400         (XMM9_REG): Likewise.
8401         (XMM10_REG): Likewise.
8402         (XMM11_REG): Likewise.
8403         (XMM12_REG): Likewise.
8404         (XMM13_REG): Likewise.
8405         (XMM14_REG): Likewise.
8406         (XMM15_REG): Likewise.
8407         (prefix): Likewise.
8408         (prefix_vex_imm8): Likewise.
8409         (prefix_vex_w): Likewise.
8410         (length_vex): Likewise.
8411         (maxmin): Likewise.
8412         (movoi): Likewise.
8413         (*avx_ashlti3): Likewise.
8414         (*avx_lshrti3): Likewise.
8415         (*avx_setcc<mode>): Likewise.
8416         (*fop_<mode>_comm_mixed_avx): Likewise.
8417         (*fop_<mode>_comm_avx): Likewise.
8418         (*fop_<mode>_1_mixed_avx): Likewise.
8419         (*fop_<mode>_1_avx): Likewise.
8420         (*avx_<code><mode>3): Likewise.
8421         (*avx_ieee_smin<mode>3): Likewise.
8422         (*avx_ieee_smax<mode>3): Likewise.
8423         (mode): Add OI, V8SF and V4DF.
8424         (length): Support VEX prefix.
8425         (*cmpfp_i_mixed): Set prefix attribute.
8426         (*cmpfp_i_sse): Likewise.
8427         (*cmpfp_iu_mixed): Likewise.
8428         (*cmpfp_iu_sse): Likewise.
8429         (*movsi_1): Support AVX.
8430         (*movdi_2): Likewise.
8431         (*movdi_1_rex64): Likewise.
8432         (*movti_internal): Likewise.
8433         (*movti_rex64): Likewise.
8434         (*movsf_1): Likewise.
8435         (*movdf_nointeger): Likewise.
8436         (*movdf_integer_rex64): Likewise.
8437         (*movtf_internal): Likewise.
8438         (zero_extendsidi2_32): Likewise.
8439         (zero_extendsidi2_rex64): Likewise.
8440         (*extendsfdf2_mixed): Likewise.
8441         (*extendsfdf2_sse): Likewise.
8442         (*truncdfsf_fast_mixed): Likewise.
8443         (*truncdfsf_fast_sse): Likewise.
8444         (*truncdfsf_mixed): Likewise.
8445         (fix_trunc<mode>di_sse): Likewise.
8446         (fix_trunc<mode>si_sse): Likewise.
8447         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
8448         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
8449         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
8450         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
8451         (*rcpsf2_sse): Likewise.
8452         (*rsqrtsf2_sse): Likewise.
8453         (*sqrt<mode>2_sse): Likewise.
8454         (sse4_1_round<mode>2): Likewise.
8455         (*sse_prologue_save_insn): Disallow REX prefix for AVX.
8456         Support AVX.  Set length attribute properly for AVX.
8457
8458         * config/i386/i386-modes.def (VECTOR_MODES (INT, 32)): New.
8459         (VECTOR_MODES (FLOAT, 32)): Likewise.
8460         (VECTOR_MODE (INT, DI, 8)): Likewise.
8461         (VECTOR_MODE (INT, HI, 32)): Likewise.
8462         (VECTOR_MODE (INT, QI, 64)): Likewise.
8463         (VECTOR_MODE (FLOAT, DF, 8)): Likewise.
8464         (VECTOR_MODE (FLOAT, SF, 16)): Likewise.
8465         (VECTOR_MODE (INT, DI, 4)): Removed.
8466         (VECTOR_MODE (INT, SI, 8)): Likewise.
8467         (VECTOR_MODE (INT, HI, 16)): Likewise.
8468         (VECTOR_MODE (INT, QI, 32)): Likewise.
8469         (VECTOR_MODE (FLOAT, SF, 8)): Likewise.
8470         (INT_MODE (OI, 32)): Likewise.
8471
8472         * config/i386/i386.opt (mavx): New.
8473         (mfma): Likewise.
8474
8475         * config/i386/i386-protos.h (ix86_attr_length_vex_default): New.
8476
8477         * config/i386/mmx.md (*mov<mode>_internal_rex64): Support AVX.
8478         (*mov<mode>_internal_avx): New.
8479         (*movv2sf_internal_rex64_avx): Likewise.
8480         (*movv2sf_internal_avx): Likewise.
8481
8482         * config/i386/predicates.md (const_4_to_5_operand): New.
8483         (const_6_to_7_operand): Likewise.
8484         (const_8_to_11_operand): Likewise.
8485         (const_12_to_15_operand): Likewise.
8486         (avx_comparison_float_operator): Likewise.
8487
8488         * config/i386/sse.md (AVX256MODEI): New.
8489         (AVX256MODE): Likewise.
8490         (AVXMODEQI): Likewise.
8491         (AVXMODE): Likewise.
8492         (AVX256MODEF2P): Likewise.
8493         (AVX256MODE2P): Likewise.
8494         (AVX256MODE4P): Likewise.
8495         (AVX256MODE8P): Likewise.
8496         (AVXMODEF2P): Likewise.
8497         (AVXMODEF4P): Likewise.
8498         (AVXMODEDCVTDQ2PS): Likewise.
8499         (AVXMODEDCVTPS2DQ): Likewise.
8500         (avxvecmode): Likewise.
8501         (avxvecpsmode): Likewise.
8502         (avxhalfvecmode): Likewise.
8503         (avxscalarmode): Likewise.
8504         (avxcvtvecmode): Likewise.
8505         (avxpermvecmode): Likewise.
8506         (avxmodesuffixf2c): Likewise.
8507         (avxmodesuffixp): Likewise.
8508         (avxmodesuffixs): Likewise.
8509         (avxmodesuffix): Likewise.
8510         (vpermilbits): Likewise.
8511         (pinsrbits): Likewise.
8512         (mov<mode>): Likewise.
8513         (*mov<mode>_internal): Likewise.
8514         (push<mode>1): Likewise.
8515         (movmisalign<mode>): Likewise.
8516         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Likewise.
8517         (avx_movdqu<avxmodesuffix>): Likewise.
8518         (avx_lddqu<avxmodesuffix>): Likewise.
8519         (<plusminus_insn><mode>3): Likewise.
8520         (*avx_<plusminus_insn><mode>3): Likewise.
8521         (*avx_vm<plusminus_insn><mode>3): Likewise.
8522         (mul<mode>3): Likewise.
8523         (*avx_mul<mode>3): Likewise.
8524         (*avx_vmmul<mode>3): Likewise.
8525         (divv8sf3): Likewise.
8526         (divv4df3): Likewise.
8527         (avx_div<mode>3): Likewise.
8528         (*avx_div<mode>3): Likewise.
8529         (*avx_vmdiv<mode>3): Likewise.
8530         (avx_rcpv8sf2): Likewise.
8531         (*avx_vmrcpv4sf2): Likewise.
8532         (sqrtv8sf2): Likewise.
8533         (avx_sqrtv8sf2): Likewise.
8534         (*avx_vmsqrt<mode>2): Likewise.
8535         (rsqrtv8sf2): Likewise.
8536         (avx_rsqrtv8sf2): Likewise.
8537         (*avx_vmrsqrtv4sf2): Likewise.
8538         (<code><mode>3): Likewise.
8539         (*avx_<code><mode>3_finite): Likewise.
8540         (*avx_<code><mode>3): Likewise.
8541         (*avx_vm<code><mode>3): Likewise.
8542         (*avx_ieee_smin<mode>3): Likewise.
8543         (*avx_ieee_smax<mode>3): Likewise.
8544         (avx_addsubv8sf3): Likewise.
8545         (avx_addsubv4df3): Likewise.
8546         (*avx_addsubv4sf3): Likewise.
8547         (*avx_addsubv2df3): Likewise.
8548         (avx_h<plusminus_insn>v4df3): Likewise.
8549         (avx_h<plusminus_insn>v8sf3): Likewise.
8550         (*avx_h<plusminus_insn>v4sf3): Likewise.
8551         (*avx_h<plusminus_insn>v2df3): Likewise.
8552         (avx_cmpp<avxmodesuffixf2c><mode>3): Likewise.
8553         (avx_cmps<ssemodesuffixf2c><mode>3): Likewise.
8554         (*avx_maskcmp<mode>3): Likewise.
8555         (avx_nand<mode>3): Likewise.
8556         (*avx_<code><mode>3): Likewise.
8557         (*avx_nand<mode>3): Likewise.
8558         (*avx_<code><mode>3): Likewise.
8559         (*avx_cvtsi2ss): Likewise.
8560         (*avx_cvtsi2ssq): Likewise.
8561         (*avx_cvtsi2sd): Likewise.
8562         (*avx_cvtsi2sdq): Likewise.
8563         (*avx_cvtsd2ss): Likewise.
8564         (avx_cvtss2sd): Likewise.
8565         (avx_cvtdq2ps<avxmodesuffix>): Likewise.
8566         (avx_cvtps2dq<avxmodesuffix>): Likewise.
8567         (avx_cvttps2dq<avxmodesuffix>): Likewise.
8568         (*avx_cvtsi2sd): Likewise.
8569         (*avx_cvtsi2sdq): Likewise.
8570         (avx_cvtdq2pd256): Likewise.
8571         (avx_cvtpd2dq256): Likewise.
8572         (avx_cvttpd2dq256): Likewise.
8573         (*avx_cvtsd2ss): Likewise.
8574         (*avx_cvtss2sd): Likewise.
8575         (avx_cvtpd2ps256): Likewise.
8576         (avx_cvtps2pd256): Likewise.
8577         (*avx_movhlps): Likewise.
8578         (*avx_movlhps): Likewise.
8579         (avx_unpckhps256): Likewise.
8580         (*avx_unpckhps): Likewise.
8581         (avx_unpcklps256): Likewise.
8582         (*avx_unpcklps): Likewise.
8583         (avx_movshdup256): Likewise.
8584         (avx_movsldup256): Likewise.
8585         (avx_shufps256): Likewise.
8586         (avx_shufps256_1): Likewise.
8587         (*avx_shufps_<mode>): Likewise.
8588         (*avx_loadhps): Likewise.
8589         (*avx_storelps): Likewise.
8590         (*avx_loadlps): Likewise.
8591         (*avx_movss): Likewise.
8592         (*vec_dupv4sf_avx): Likewise.
8593         (*vec_concatv2sf_avx): Likewise.
8594         (*vec_concatv4sf_avx): Likewise.
8595         (*vec_setv4sf_0_avx): Likewise.
8596         (*vec_setv4sf_avx): Likewise.
8597         (*avx_insertps): Likewise.
8598         (avx_vextractf128<mode>): Likewise.
8599         (vec_extract_lo_<mode>): Likewise.
8600         (vec_extract_hi_<mode>): Likewise.
8601         (vec_extract_lo_<mode>): Likewise.
8602         (vec_extract_hi_<mode>): Likewise.
8603         (vec_extract_lo_v16hi): Likewise.
8604         (vec_extract_hi_v16hi): Likewise.
8605         (vec_extract_lo_v32qi): Likewise.
8606         (vec_extract_hi_v32qi): Likewise.
8607         (avx_unpckhpd256): Likewise.
8608         (*avx_unpckhpd): Likewise.
8609         (avx_movddup256): Likewise.
8610         (*avx_movddup): Likewise.
8611         (avx_unpcklpd256): Likewise.
8612         (*avx_unpcklpd): Likewise.
8613         (avx_shufpd256): Likewise.
8614         (avx_shufpd256_1): Likewise.
8615         (*avx_punpckhqdq): Likewise.
8616         (*avx_punpcklqdq): Likewise.
8617         (*avx_shufpd_<mode>): Likewise.
8618         (*avx_storehpd): Likewise.
8619         (*avx_loadhpd): Likewise.
8620         (*avx_loadlpd): Likewise.
8621         (*avx_movsd): Likewise.
8622         (*vec_concatv2df_avx): Likewise.
8623         (*avx_<plusminus_insn><mode>3): Likewise.
8624         (*avx_<plusminus_insn><mode>3): Likewise.
8625         (*avx_mulv8hi3): Likewise.
8626         (*avxv8hi3_highpart): Likewise.
8627         (*avx_umulv8hi3_highpart): Likewise.
8628         (*avx_umulv2siv2di3): Likewise.
8629         (*avx_mulv2siv2di3): Likewise.
8630         (*avx_pmaddwd): Likewise.
8631         (*avx_mulv4si3): Likewise.
8632         (*avx_ashr<mode>3): Likewise.
8633         (*avx_lshr<mode>3): Likewise.
8634         (*avx_ashl<mode>3): Likewise.
8635         (*avx_<code><mode>3): Likewise.
8636         (*avx_eq<mode>3): Likewise.
8637         (*avx_gt<mode>3): Likewise.
8638         (*avx_nand<mode>3): Likewise.
8639         (*avx_nand<mode>3): Likewise.
8640         (*avx_<code><mode>3): Likewise.
8641         (*avx_<code><mode>3): Likewise.
8642         (*avx_packsswb): Likewise.
8643         (*avx_packssdw): Likewise.
8644         (*avx_packuswb): Likewise.
8645         (*avx_punpckhbw): Likewise.
8646         (*avx_punpcklbw): Likewise.
8647         (*avx_punpckhwd): Likewise.
8648         (*avx_punpcklwd): Likewise.
8649         (*avx_punpckhdq): Likewise.
8650         (*avx_punpckldq): Likewise.
8651         (*avx_pinsr<avxmodesuffixs>): Likewise.
8652         (*avx_pinsrq): Likewise.
8653         (*avx_loadld): Likewise.
8654         (*vec_extractv2di_1_rex64_avx): Likewise.
8655         (*vec_extractv2di_1_avx): Likewise.
8656         (*vec_dupv2di_avx): Likewise.
8657         (*vec_concatv2si_avx): Likewise.
8658         (*vec_concatv4si_1_avx): Likewise.
8659         (*vec_concatv2di_avx): Likewise.
8660         (*vec_concatv2di_rex64_avx): Likewise.
8661         (*avx_uavgv16qi3): Likewise.
8662         (*avx_uavgv8hi3): Likewise.
8663         (*avx_psadbw): Likewise.
8664         (avx_movmskp<avxmodesuffixf2c>256): Likewise.
8665         (*avx_phaddwv8hi3): Likewise.
8666         (*avx_phadddv4si3): Likewise.
8667         (*avx_phaddswv8hi3): Likewise.
8668         (*avx_phsubwv8hi3): Likewise.
8669         (*avx_phsubdv4si3): Likewise.
8670         (*avx_phsubswv8hi3): Likewise.
8671         (*avx_pmaddubsw128): Likewise.
8672         (*avx_pmulhrswv8hi3): Likewise.
8673         (*avx_pshufbv16qi3): Likewise.
8674         (*avx_psign<mode>3): Likewise.
8675         (*avx_palignrti): Likewise.
8676         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
8677         (avx_blendvp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
8678         (avx_dpp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
8679         (*avx_mpsadbw): Likewise.
8680         (*avx_packusdw): Likewise.
8681         (*avx_pblendvb): Likewise.
8682         (*avx_pblendw): Likewise.
8683         (avx_vtestp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
8684         (avx_ptest256): Likewise.
8685         (avx_roundp<avxmodesuffixf2c>256): Likewise.
8686         (*avx_rounds<ssemodesuffixf2c>): Likewise.
8687         (*avx_aesenc): Likewise.
8688         (*avx_aesenclast): Likewise.
8689         (*avx_aesdec): Likewise.
8690         (*avx_aesdeclast): Likewise.
8691         (avx_vzeroupper): Likewise.
8692         (avx_vzeroupper_rex64): Likewise.
8693         (avx_vpermil<mode>): Likewise.
8694         (avx_vpermilvar<mode>3): Likewise.
8695         (avx_vpermil2<mode>3): Likewise.
8696         (avx_vperm2f128<mode>3): Likewise.
8697         (avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>): Likewise.
8698         (avx_vbroadcastss256): Likewise.
8699         (avx_vbroadcastf128_p<avxmodesuffixf2c>256): Likewise.
8700         (avx_vinsertf128<mode>): Likewise.
8701         (vec_set_lo_<mode>): Likewise.
8702         (vec_set_hi_<mode>): Likewise.
8703         (vec_set_lo_<mode>): Likewise.
8704         (vec_set_hi_<mode>): Likewise.
8705         (vec_set_lo_v16hi): Likewise.
8706         (vec_set_hi_v16hi): Likewise.
8707         (vec_set_lo_v32qi): Likewise.
8708         (vec_set_hi_v32qi): Likewise.
8709         (avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
8710         (avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>): Likewise.
8711         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
8712         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Likewise.
8713         (vec_init<mode>): Likewise.
8714         (*vec_concat<mode>_avx): Likewise.
8715         (blendbits): Support V8SF and V4DF.
8716         (sse2_movq128): Support AVX.
8717         (<sse>_movnt<mode>): Likewise.
8718         (sse2_movntv2di): Likewise.
8719         (sse_rcpv4sf2): Likewise.
8720         (sse_sqrtv4sf2): Likewise.
8721         (sse_rsqrtv4sf2): Likewise.
8722         (<sse>_comi): Likewise.
8723         (<sse>_ucomi): Likewise.
8724         (sse_cvtss2si): Likewise.
8725         (sse_cvtss2si_2): Likewise.
8726         (sse_cvtss2siq): Likewise.
8727         (sse_cvtss2siq_2): Likewise.
8728         (sse_cvttss2si): Likewise.
8729         (sse_cvttss2siq): Likewise.
8730         (sse2_cvtsd2si): Likewise.
8731         (sse2_cvtsd2si_2): Likewise.
8732         (sse2_cvtsd2siq): Likewise.
8733         (sse2_cvtsd2siq_2): Likewise.
8734         (sse2_cvttsd2si): Likewise.
8735         (sse2_cvttsd2siq): Likewise.
8736         (sse2_cvtdq2pd): Likewise.
8737         (*sse2_cvtpd2dq): Likewise.
8738         (*sse2_cvttpd2dq): Likewise.
8739         (*sse2_cvtpd2ps): Likewise.
8740         (sse2_cvtps2pd): Likewise.
8741         (sse3_movshdup): Likewise.
8742         (sse3_movsldup): Likewise.
8743         (sse_storehps): Likewise.
8744         (*sse4_1_extractps): Likewise.
8745         (sse2_storelpd): Likewise.
8746         (vec_dupv2df_sse3): Likewise.
8747         (*vec_concatv2df_sse3): Likewise.
8748         (*sse4_1_pextrb): Likewise.
8749         (*sse4_1_pextrb_memory): Likewise.
8750         (*sse2_pextrw): Likewise.
8751         (*sse4_1_pextrw_memory): Likewise.
8752         (*sse4_1_pextrd): Likewise.
8753         (*sse4_1_pextrq): Likewise.
8754         (sse2_pshufd_1): Likewise.
8755         (sse2_pshuflw_1): Likewise.
8756         (sse2_pshufhw_1): Likewise.
8757         (*sse2_storeq_rex64): Likewise.
8758         (*vec_dupv4si): Likewise.
8759         (<sse>_movmskp<ssemodesuffixf2c>): Likewise.
8760         (sse2_pmovmskb): Likewise.
8761         (*sse2_maskmovdqu): Likewise.
8762         (*sse2_maskmovdqu_rex64): Likewise.
8763         (sse_ldmxcsr): Likewise.
8764         (sse_stmxcsr): Likewise.
8765         (abs<mode>2): Likewise.
8766         (sse4_1_movntdqa): Likewise.
8767         (sse4_1_phminposuw): Likewise.
8768         (sse4_1_extendv8qiv8hi2): Likewise.
8769         (*sse4_1_extendv8qiv8hi2): Likewise.
8770         (sse4_1_extendv4qiv4si2): Likewise.
8771         (*sse4_1_extendv4qiv4si2): Likewise.
8772         (sse4_1_extendv2qiv2di2): Likewise.
8773         (*sse4_1_extendv2qiv2di2): Likewise.
8774         (sse4_1_extendv4hiv4si2): Likewise.
8775         (*sse4_1_extendv4hiv4si2): Likewise.
8776         (sse4_1_extendv2hiv2di2): Likewise.
8777         (*sse4_1_extendv2hiv2di2): Likewise.
8778         (sse4_1_extendv2siv2di2): Likewise.
8779         (*sse4_1_extendv2siv2di2): Likewise.
8780         (sse4_1_zero_extendv8qiv8hi2): Likewise.
8781         (*sse4_1_zero_extendv8qiv8hi2): Likewise.
8782         (sse4_1_zero_extendv4qiv4si2): Likewise.
8783         (*sse4_1_zero_extendv4qiv4si2): Likewise.
8784         (sse4_1_zero_extendv2qiv2di2): Likewise.
8785         (*sse4_1_zero_extendv2qiv2di2): Likewise.
8786         (sse4_1_zero_extendv4hiv4si2): Likewise.
8787         (*sse4_1_zero_extendv4hiv4si2): Likewise.
8788         (sse4_1_zero_extendv2hiv2di2): Likewise.
8789         (*sse4_1_zero_extendv2hiv2di2): Likewise.
8790         (sse4_1_zero_extendv2siv2di2): Likewise.
8791         (*sse4_1_zero_extendv2siv2di2): Likewise.
8792         (sse4_1_ptest): Likewise.
8793         (sse4_1_roundp<ssemodesuffixf2c>): Likewise.
8794         (sse4_2_pcmpestri): Likewise.
8795         (sse4_2_pcmpestrm): Likewise.
8796         (sse4_2_pcmpistri): Likewise.
8797         (sse4_2_pcmpistrm): Likewise.
8798         (aesimc): Likewise.
8799         (aeskeygenassist): Likewise.
8800
8801 2008-08-28  Uros Bizjak  <ubizjak@gmail.com>
8802
8803         * config/i386/predicates.md (vzeroall_operation): New.
8804
8805         * config/i386/sse.md (avx_vzeroall): New.
8806         (*avx_vzeroall): Likewise.
8807
8808 2008-08-28  Paul Brook  <paul@codesourcery.com>
8809             Mark Shinwell  <shinwell@codesourcery.com>
8810             Richard Earnshaw  <richard.earnshaw@arm.com>
8811
8812         * config/arm/arm.c (TARGET_MAX_ANCHOR_OFFSET): New.
8813         (TARGET_MIN_ANCHOR_OFFSET): New.
8814         (arm_override_options): Set correct anchor ranges for Thumb-1
8815         and Thumb-2 if required.
8816         (legitimize_pic_address): Handle case involving a TLS symbol
8817         reference with an addend.
8818         (arm_optimization_options): Enable section anchors at -O1 and
8819         above.
8820         * config/arm/arm.h (OPTIMIZATION_OPTIONS): New.
8821         * config/arm/arm-protos.h (arm_optimization_options): New.
8822
8823 2008-08-28  Nick Clifton  <nickc@redhat.com>
8824
8825         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Define.
8826         * config/stormy16/stormy16.md (zero_extendqihi2): Fix length
8827         attribute.
8828
8829         * config/v850/v850.h (IRA_COVER_CLASSES): Define.
8830         * config/v850/v850.md (return): Remove frame size restriction.
8831
8832         * config/mcore/mcore.h (IRA_COVER_CLASSES): Define.
8833
8834         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Define.
8835
8836         * config/fr30/fr30.h (IRA_COVER_CLASSES): Define.
8837
8838         * config/m32r/m32r.h (IRA_COVER_CLASSES): Define.
8839
8840 2008-08-28  Paul Brook  <paul@codesourcery.com>
8841
8842         * config/arm/vfp11.md: Update license notice.
8843         * config/arm/cortex-r4.md: Ditto.
8844
8845 2008-08-28  Richard Guenther  <rguenther@suse.de>
8846
8847         PR tree-optimization/37207
8848         * tree-ssa-ifcombine.c (recognize_single_bit_test): Fix
8849         tuplification bug.
8850
8851 2008-08-28  Dodji Seketeli  <dodji@redhat.com>
8852
8853         PR c++/36741
8854         * tree.c (int_fits_type_p): Don't forget unsigned integers
8855           of type sizetype which higher end word equals -1.
8856
8857 2008-08-28  Ira Rosen  <irar@il.ibm.com>
8858
8859         * target.h (struct vectorize): Add new target builtin.
8860         * tree-vectorizer.c (destroy_loop_vec_info): Call
8861         vect_free_slp_instance instead of vect_free_slp_node.
8862         * tree-vectorizer.h (enum slp_load_perm_type): New.
8863         (struct _slp_instance): Add new fields.
8864         (SLP_INSTANCE_LOAD_PERMUTATION): New.
8865         (SLP_INSTANCE_LOADS): New.
8866         (vect_free_slp_tree): Remove.
8867         (vect_free_slp_instance): Declare.
8868         (SLP_TREE_LOADS_PERM_TYPE, TARG_VEC_PERMUTE_COST): New.
8869         (vectorizable_load): Add argument.
8870         (vect_transform_slp_perm_load): New.
8871         * tree-vect-analyze.c (vect_analyze_operations): Add an argument to
8872         vectorizable_load.
8873         (vect_get_place_in_interleaving_chain): New function.
8874         (vect_free_slp_tree): Make static.
8875         (vect_free_slp_instance): New function.
8876         (vect_build_slp_tree): Add new arguments. Allow load permutations and
8877         collect the load location in the interleaving chain.
8878         (vect_supported_slp_permutation_p): New function.
8879         (vect_supported_load_permutation_p): Likewise.
8880         (vect_analyze_slp_instance): In case of loads permutation, call
8881         vect_supported_load_permutation_p to check that the permutation is
8882         supported.
8883         * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM): New.
8884         * tree-vect-transform.c (vect_transform_stmt): Add new argument.
8885         (vect_create_mask_and_perm): New function.
8886         (vect_get_mask_element, vect_transform_slp_perm_load): Likewise.
8887         (vectorizable_load): Add an argument. Don't keep the created vectors
8888         statements in the node if permutation is required. Call
8889         vect_transform_slp_perm_load to generate the permutation.
8890         (vect_transform_stmt): Add new argument. Call vectorizable_load with
8891         additional argument.
8892         (vect_schedule_slp_instance): In case of loads permutation, allocate
8893         vectorized statements structure for all the related SLP nodes. Call
8894         vect_transform_stmt with addditional argument.
8895         (vect_transform_loop): Call vect_transform_stmt with correct arguments.
8896         * config/spu/spu.c (spu_builtin_vec_perm): New.
8897         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
8898         * config/spu/spu.h (TARG_VEC_PERMUTE_COS): Define.
8899         * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): New.
8900         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
8901
8902 2008-08-28  Chris Fairles  <chris.fairles@gmail.com>
8903
8904         * gthr-posix.h (__gthread_create,  __gthread_join, __gthread_detach,
8905         __gthread_mutex_timed_lock, __gthread_recursive_mutex_timed_lock,
8906         __gthread_cond_signal, __gthread_cond_timedwait,
8907         __gthread_cond_timedwait_recursive): New functions.
8908         * gthr-posix.c (pthread_mutex_timedlock, pthread_cond_timedwait):
8909         Likewise.
8910         * gthr.h: Comment on defining __GTHREADS_CXX0X macro in conforming
8911         thread interfaces.
8912
8913 2008-08-28  Richard Guenther  <rguenther@suse.de>
8914
8915         PR middle-end/37005
8916         * fold-const.c (maybe_canonicalize_comparison_1): Require
8917         undefined overflow only for canonicalizing A +- CST cmp CST.
8918         Make sure to not generate new constants that are not inside
8919         their TYPE_MIN/MAX_VALUE range.
8920         (maybe_canonicalize_comparison): Remove undefined overflow
8921         checking from here.
8922         (fold_binary): Remove now duplicate folding.
8923
8924 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
8925
8926         * c-typeck.c (convert_for_assignment): Adjust WARN_FOR_ASSIGNMENT
8927         use not updated in the last change.
8928
8929 2008-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
8930
8931         * config/sh/sh.h (REG_CLASS_CONTENTS): Drop fr32 from FPUL_REGS.
8932         (IRA_COVER_CLASSES): Add FPUL_REGS.
8933
8934 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8935
8936         PR 37217
8937         * c-common.c (conversion_warning): Check for null operands.
8938
8939 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8940
8941         PR c/31673
8942         * c-decl.c (check_for_loop_decls): Improve error message. Give
8943         hint.
8944
8945 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8946
8947         PR c/37186
8948         * c-typeck.c (WARN_FOR_ASSIGNMENT): Add OPT parameter.
8949         (convert_for_assignment): Pass corrent OPT_W* parameter to
8950         WARN_FOR_ASSIGNMENT.
8951
8952 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
8953
8954         PR c++/35321
8955         * c-common.c (fold_offsetof_1): Handle TARGET_EXPR like CALL_EXPR.
8956
8957 2008-08-27  Paul Brook  <paul@codesourcery.com>
8958
8959         * config.gcc: Loosen checks for arm uclinux eabi targets.
8960
8961 2008-08-27  Paul Brook  <paul@codesourcery.com>
8962
8963         * config/arm/t-arm-coff (LIB1ASMFUNCS): Add missing undescrore on
8964         _clzsi2.
8965         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
8966
8967 2008-08-26  Douglas Gregor  <doug.gregor@gmail.com>
8968
8969         * c-common.c (do_switch_warnings): Look through the CONST_DECLs in
8970         the enumerators of an ENUMERAL_TYPE.
8971         * dbxout.c (dbxout_type): Ditto.
8972
8973 2008-08-26  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8974
8975         PR rtl-opt/37219
8976         * fwprop.c (fwprop): Check that the loop_father is the outer loop.
8977         (fwprop_addr): Check that the loop_father is not the outer loop.
8978
8979 2008-08-26  Paul Brook  <paul@codesourcery.com>
8980
8981         * config/arm/vfp.md: Document fmul{s,d} and fmac{s,d} types.
8982         Remove documentation entry for fmul type.
8983         Use fmuls to annotate single-precision multiplication patterns,
8984         fmuld to annotate double-precision multiplication patterns,
8985         fmacs to annotate single-precision multiply-accumulate patterns
8986         and fmacd to annotate double-precision multiply-accumulate patterns.
8987         * config/arm/vfp11.md: Update reservations accordingly.
8988         * config/arm/arm.md: Note that certain values of the "type"
8989         attribute are documented in vfp.md.
8990         * config/arm/arm1020e.md: Remove out of date duplicate comment.
8991         (v10_cvt): Use new fmul types.
8992
8993 2008-08-26  Paul Brook  <paul@codesourcery.com>
8994
8995         * config/arm/vfp.md: Move pipeline description for VFP11 to...
8996         * config/arm/vfp11.md: ...here.  New.
8997         * config/arm/arm.md: Include vfp11.md.
8998
8999 2008-08-26  Hans-Peter Nilsson  <hp@axis.com>
9000
9001         * opts.c (decode_options) [!IRA_COVER_CLASSES]: Add missing
9002         parameter to inform call.
9003
9004 2008-08-26  Jeff Law  <law@redhat.com>
9005
9006         * mn10300.md (movqi, movhi): Split i->d*a case into two cases to
9007         avoid the possibility of getting DATA_OR_ADDRESS_REGS as the
9008         preferred class when copying a constant into a partial word register.
9009
9010 2008-08-26  Ben Elliston  <bje@au.ibm.com>
9011
9012         * rtlanal.c: Fix uses of "it's" with "its" where appropriate.
9013         * cp/typeck.c: Likewise.
9014         * cp/tree.c: Likewise.
9015         * gimple-low.c: Likewise.
9016         * jump.c: Likewise.
9017
9018 2008-08-26  Vladimir Makarov  <vmakarov@redhat.com>
9019
9020         * ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
9021         ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.
9022
9023         * doc/passes.texi: Describe IRA.
9024
9025         * doc/tm.texi (IRA_COVER_CLASSES,
9026         IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.
9027
9028         * doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
9029         (-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
9030         -fira-propagate-cost, -fno-ira-share-save-slots,
9031         -fno-ira-share-spill-slots, -fira-verbose): Describe new options.
9032
9033         * flags.h (ira_algorithm): New enumeration.
9034         (flag_ira_algorithm, flag_ira_verbose): New external variable
9035         declarations.
9036
9037         * postreload.c (gate_handle_postreload): Don't do post reload
9038         optimizations unless the reload is completed.
9039
9040         * reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
9041         IRA.
9042
9043         * tree-pass.h (pass_ira): New external variable declaration.
9044
9045         * reload.h: Add 2008 to the Copyright.
9046
9047         * cfgloopanal.c: Include params.h.
9048         (estimate_reg_pressure_cost): Decrease cost for IRA optimization
9049         mode.
9050
9051         * params.h (IRA_MAX_LOOPS_NUM): New macro.
9052
9053         * toplev.c (ira.h): New include.
9054         (flag_ira_algorithm, flag_ira_verbose): New external variables.
9055         (backend_init_target): Call ira_init.
9056         (backend_init): Call ira_init_once.
9057         (finalize): Call finish_ira_once.
9058
9059         * toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
9060         flag_ira_share_save_slots, flag_ira_share_spill_slots): New
9061         external variables.
9062
9063         * regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
9064         may_move_out_cost): New external variable declarations.
9065         (move_table): New typedef.
9066
9067         * caller-save.c: Include headers output.h and ira.h.
9068         (no_caller_save_reg_set): New global variable.
9069         (save_slots_num, save_slots): New variables.
9070         (reg_save_code, reg_restore_code, add_stored_regs): Add
9071         prototypes.
9072         (init_caller_save): Set up no_caller_save_reg_set.
9073         (init_save_areas): Reset save_slots_num.
9074         (saved_hard_reg): New structure.
9075         (hard_reg_map, saved_regs_num, all_saved_regs): New variables.
9076         (initiate_saved_hard_regs, new_saved_hard_reg,
9077         finish_saved_hard_regs, saved_hard_reg_compare_func): New
9078         functions.
9079         (setup_save_areas): Add code for sharing stack slots.
9080         (all_blocks): New variable.
9081         (save_call_clobbered_regs): Process pseudo-register too.
9082         (mark_set_regs): Process pseudo-register too.
9083         (insert_one_insn): Put the insn after bb note in a empty basic
9084         block.  Add insn check.
9085
9086         * global.c (eliminable_regset): Make it external.
9087         (mark_elimination): Use DF_LR_IN for IRA.
9088         (pseudo_for_reload_consideration_p): New.
9089         (build_insn_chain): Make it external.  Don't ignore spilled
9090         pseudos for IRA.  Use pseudo_for_reload_consideration_p.
9091         (gate_handle_global_alloc): New function.
9092         (pass_global_alloc): Add the gate function.
9093
9094         * opts.c (decode_options): Set up flag_ira.  Print the warning for
9095         -fira.
9096         (common_handle_option): Process -fira-algorithm and -fira-verbose.
9097
9098         * timevar.def (TV_IRA, TV_RELOAD): New passes.
9099
9100         * regmove.c (regmove_optimize): Don't do replacement of output for
9101         IRA.
9102
9103         * hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
9104         New external variable declarations.
9105
9106         * local-alloc.c (update_equiv_regs): Make it external.  Return
9107         true if jump label rebuilding should be done.  Rescan new_insn for
9108         notes.
9109         (gate_handle_local_alloc): New function.
9110         (pass_local_alloc): Add the gate function.
9111
9112         * alias.c (value_addr_p, stack_addr_p): New functions.
9113         (nonoverlapping_memrefs_p): Use them for IRA.
9114
9115         * common.opt (fira, fira-algorithm, fira-coalesce,
9116         fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
9117         fira-verbose): New options.
9118
9119         * regclass.c (reg_class_subclasses, contains_reg_of_mode,
9120         move_cost, may_move_in_cost, may_move_out_cost): Make the
9121         variables external.
9122         (move_table): Remove typedef.
9123         (init_move_cost): Make it external.
9124         (allocate_reg_info, resize_reg_info, setup_reg_classes): New
9125         functions.
9126
9127         * rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
9128         setup_reg_classes): New function prototypes.
9129         (eliminable_regset): New external variable declaration.
9130         (build_insn_chain, update_equiv_regs): New function prototypes.
9131
9132         * Makefile.in (IRA_INT_H): New definition.
9133         (OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
9134         ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
9135         (reload1.o, toplev.o): Add dependence on ira.h.
9136         (cfgloopanal.o): Add PARAMS_H.
9137         (caller-save.o): Add dependence on output.h and ira.h.
9138         (ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
9139         ira-emit.o, ira-lives.o): New entries.
9140
9141         * passes.c (pass_ira): New pass.
9142
9143         * params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.
9144
9145         * reload1.c (ira.h): Include the header.
9146         (changed_allocation_pseudos): New bitmap.
9147         (init_reload): Initiate the bitmap.
9148         (compute_use_by_pseudos): Permits spilled registers in FROM.
9149         (temp_pseudo_reg_arr): New variable.
9150         (reload): Allocate and free temp_pseudo_reg_arr.  Sort pseudos for
9151         IRA.  Call alter_reg with the additional parameter.  Don't clear
9152         spilled_pseudos for IRA.  Restore original insn chain for IRA.
9153         Clear changed_allocation_pseudos at the end of reload.
9154         (calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
9155         (hard_regno_to_pseudo_regno): New variable.
9156         (count_pseudo): Check spilled pseudos.  Set up
9157         hard_regno_to_pseudo_regno.
9158         (count_spilled_pseudo): Check spilled pseudos. Update
9159         hard_regno_to_pseudo_regno.
9160         (find_reg): Use better_spill_reload_regno_p.  Check
9161         hard_regno_to_pseudo_regno.
9162         (alter_reg): Set up spilled_pseudos.  Add a new parameter.  Add
9163         code for IRA.
9164         (eliminate_regs_1): Use additional parameter for alter_reg.
9165         (finish_spills): Set up pseudo_previous_regs only for spilled
9166         pseudos.  Call reassign_pseudos once for all spilled pseudos, pass
9167         more arguments.  Don't clear live_throughout and dead_or_set for
9168         spilled pseudos.  Use additional parameter for alter_reg.  Call
9169         mark_allocation_change.  Set up changed_allocation_pseudos.
9170         Remove sanity check.
9171         (emit_input_reload_insns, delete_output_reload): Use additional
9172         parameter for alter_reg.  Call mark_allocation_change.
9173         (substitute, gen_reload_chain_without_interm_reg_p): New
9174         functions.
9175         (reloads_conflict): Use gen_reload_chain_without_interm_reg_p.
9176
9177         * testsuite/gcc.dg/20080410-1.c: New file.
9178
9179         * config/s390/s390.h (IRA_COVER_CLASSES,
9180         IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.
9181
9182         * config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.
9183
9184         * config/i386/i386.h (IRA_COVER_CLASSES): Ditto.
9185
9186         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
9187
9188         * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
9189
9190         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
9191
9192         * config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.
9193
9194         2008-08-24  Jeff Law  <law@redhat.com>
9195         * ira.c (setup_reg_class_intersect_union): Prefer smallest class
9196         when ignoring unavailable registers.
9197
9198         2008-08-24  Jeff Law  <law@redhat.com>
9199         * ira-color.c (coalesced_pseudo_reg_slot_compare): Check
9200         FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
9201         * ira.c (setup_eliminable_regset): Check stack_realign_needed.
9202         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.
9203
9204         2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com>
9205         * ira-build.c (allocno_range_compare_func): Stabilize sort.
9206
9207         2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com>
9208         * config/avr/avr.h (IRA_COVER_CLASSES): New macro.
9209         * reload1.c (find_reg): Process registers in register allocation order.
9210
9211         2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
9212         * toplev.c (backend_init_target): Move ira_init call from
9213         here...
9214         (lang_dependent_init_target): ...to here.
9215
9216         2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
9217         * ira.c (setup_class_subset_and_memory_move_costs): Don't
9218         calculate memory move costs for NO_REGS.
9219
9220         2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org>
9221         * ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
9222         STACK_REGS is defined.
9223
9224         2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
9225         * config/spu/spu.h (IRA_COVER_CLASSES): New macro.
9226
9227         2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com>
9228         * config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.
9229
9230         2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org>
9231         * config/sh/sh.h (IRA_COVER_CLASSES): Define.
9232         * config/sh/sh.md (movsicc_true+3): Check if emit returns a
9233         barrier.
9234
9235 2008-08-26  Victor Kaplansky  <victork@il.ibm.com>
9236             Dorit Nuzman  <dorit@il.ibm.com>
9237
9238         * gcc/config/spu/spu.md (vec_extract_evenv4si,
9239         vec_extract_evenv4sf, vec_extract_evenv8hi,
9240         vec_extract_evenv16qi, vec_extract_oddv4si,
9241         vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
9242         vec_interleave_highv4sf, vec_interleave_lowv4sf,
9243         vec_interleave_highv4si, vec_interleave_lowv4si,
9244         vec_interleave_highv8hi, vec_interleave_lowv8hi,
9245         vec_interleave_highv16qi, vec_interleave_lowv16qi,
9246         vec_pack_trunc_v8hi, vec_pack_trunc_v4si): Implement.S
9247
9248 2008-08-25  Janis Johnson  <janis187@us.ibm.com>
9249
9250         PR target/36756
9251         * config/rs6000/rs6000.c (optimization_options): Don't default to
9252         section anchors without toplevel reorder.
9253
9254 2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9255
9256         * config/spu/spu_mfcio.h (mfc_begin_critical_section): New function.
9257         (mfc_end_critical_section): Likewise.
9258
9259 2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9260
9261         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Propagate
9262         all type qualifiers from element type to vector type.
9263
9264 2008-08-25  David Daney  <ddaney@avtrex.com>
9265
9266         * config/mips/mips.md (immediate_insn): Move up in file, fix
9267         comment typo, reformat.
9268         (fetchop_bit, atomic_hiqi_op memory_barrier,
9269         sync_compare_and_swap<mode>, compare_and_swap_12, sync_add<mode>,
9270         sync_<optab><mode>, sync_<optab>_12, sync_old_<optab><mode>,
9271         sync_old_<optab>_12, sync_new_<optab><mode>, sync_new_<optab>_12,
9272         sync_nand<mode>, sync_nand_12, sync_old_nand<mode>,
9273         sync_old_nand_12, sync_new_nand<mode>, sync_new_nand_12,
9274         sync_sub<mode>, sync_old_add<mode>, sync_old_sub<mode>,
9275         sync_new_add<mode>, sync_new_sub<mode>, sync_<optab><mode>,
9276         sync_old_<optab><mode>, sync_new_<optab><mode>, sync_nand<mode>,
9277         sync_old_nand<mode>, sync_new_nand<mode>,
9278         sync_lock_test_and_set<mode>, sync_lock_test_and_set<mode>,
9279         test_and_set_12): Moved to sync.md.
9280         (sync.md): Include.
9281         * config/mips/sync.md: New file.
9282
9283 2008-08-25  Richard Henderson  <rth@redhat.com>
9284
9285         * dwarf2out.c (def_cfa_1): Don't scale by DWARF_CIE_DATA_ALIGNMENT.
9286         (regsave): Likewise.
9287         (lookup_cfa_1): Don't rescale by DWARF_CIE_DATA_ALIGNMENT.
9288         (output_cfi_directive): Likewise.
9289         (div_data_align): New.
9290         (output_cfi): Use it.
9291
9292 2008-08-24  Adam Nemet  <anemet@caviumnetworks.com>
9293
9294         * config.gcc (mips64*-*-linux*): Handle mips64octeon*-*-linux*.
9295         * config/mips/mips.h (enum processor_type): Add PROCESSOR_OCTEON.
9296         (TARGET_OCTEON): New macro.
9297         (TARGET_CPU_CPP_BUILTINS): Define __OCTEON__ for Octeon.
9298         (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC): Handle -march=octeon.
9299         (ISA_HAS_POP): New macro.
9300         * config/mips/driver-native.c (host_detect_local_cpu): Handle
9301         Octeon.
9302         * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
9303         Handle Octeon.
9304         * config/mips/mips.md (cpu): Add octeon.
9305         (type): Add pop attribute value.
9306         (popcount<mode>2): New pattern.
9307         * doc/invoke.texi (-march=@var{arch}): Add octeon.
9308
9309 2008-08-24  Jan Hubicka  <jh@suse.cz>
9310
9311         * doc/invoke.texi (-fipa-cp-clone): New option.
9312         (-fipa-cp): Update docs.
9313         (--param ipcp-unit-growth):New.
9314         * ipa-cp.c: Include fibheap.h, params.h
9315         (ipcp_initialize_node_lattices): When not cloning, all externally
9316         visible functions are bottom.
9317         (ipcp_need_redirect_p): Accept clones.
9318         (ipcp_insert_stage): Use cost driven heuristics.
9319         (max_count, dead_nodes): New static vars.
9320         (ipcp_need_original_clone_p, ipcp_estimate_cloning_cost,
9321         ipcp_const_param_count): New functions.
9322         * common.opt (ipa-cp-clone): New command line option.
9323         * params.def (ipcp-unit-growth): New.
9324
9325 2008-08-24  Jan Hubicka  <jh@suse.cz>
9326
9327         * tree-inline.c (tree_function_versioning): Look harder
9328         for referenced vars.
9329
9330 2008-08-24  Razya Ladelsky  <razya@il.ibm.com>
9331
9332         PR tree-optimization/37185
9333         * matrix-reorg.c (transform_access_sites): Update changed stmt.
9334
9335 2008-08-23  Jan Hubicka  <jh@suse.cz>
9336
9337         * ipa-cp.c (ipcp_analyze_node): New function.
9338         (ipcp_update_cloned_node): Use it.
9339         (ipcp_init_stage): Likewise.
9340         * ipa-inline.c (function_insertion_hook_holder): New static var.
9341         (analyze_function): Break out from ....
9342         (inline_generate_summary): Here; register insertion hook.
9343         (cgraph_decide_inlining): Remove hook.
9344         (add_new_function): New function.
9345
9346 2008-08-23  Jan Hubicka  <jh@suse.cz>
9347
9348         * opts.c (decode_options): Revert accidental change enabling ipa-cp.
9349
9350 2008-08-23  Jan Hubicka  <jh@suse.cz>
9351
9352         * ipa-cp.c (constant_val_insert): Remove.
9353         (ipcp_propagate_one_const): Remove.
9354         (ipcp_create_replace_map): Always insert replacements to the map.
9355         (ipcp_insert_stage): Do not try to insert statements by hand.
9356         * tree-inline.c (insert_init_stmt): Break out from ...
9357         (setup_one_parameter): ... here; allow NULL BB pointer.
9358         (tree_function_versioning): Use setup_one_parameter to process
9359         replacement map.
9360
9361 2008-08-23  Jan Hubicka  <jh@suse.cz>
9362
9363         * tree.c (decl_address_ip_invariant_p): New function.
9364         * tree.h (decl_address_ip_invariant_p): Declare.
9365         * gimple.c (strip_invariant_refs): Break out from ...
9366         (is_gimple_invariant_address): ... here
9367         (is_gimple_ip_invariant_address): New function.
9368         (is_gimple_ip_invariant): New function.
9369         * gimple.h (is_gimple_ip_invariant_address, is_gimple_ip_invariant):
9370         Declare.
9371
9372         * ipa-cp.c (ipcp_lat_is_const): Remove handling of IPA_CONST_VALUE_REF.
9373         (ipcp_lat_is_insertable): All constants are insertable.
9374         (ipcp_lattice_from_jfunc, ipcp_print_all_lattices): Remove handling of
9375         IPA_CONST_VALUE_REF.
9376         (ipcp_initialize_node_lattices): Propagate all types of operands.
9377         (build_const_val): Do not handle IPA_CONST_VALUE_REF.
9378         (ipcp_create_replace_map): Reformat.
9379         (ipcp_need_redirect_p): Simplify.
9380         (ipcp_insert_stage): Check that argument is used before clonning.
9381         * ipa-prop.c (ipa_print_node_jump_functions): Do not handle
9382         IPA_CONST_REF.
9383         (compute_scalar_jump_functions): Simplify using is_gimple_ip_invariat.
9384         (determine_cst_member_ptr): Keep wrapping ADDR_EXPR of members.
9385         (update_call_notes_after_inlining): Expect ADDR_EXPR in operand.
9386         * ipa-prop.h (jump_func_type): Remove IPA_CONST_REF.
9387         (jump_func_type): Remove IPA_CONST_VALUE_REF.
9388         * tree-inline.c (tree_function_versioning): Add variables referenced
9389         by replacing trees.
9390
9391 2008-08-23  Jan Hubicka  <jh@suse.cz>
9392
9393         PR target/37094
9394         * i386.c (standard_80387_constant_p): Use optimize_size.
9395
9396 2008-08-23  Ira Rosen  <irar@il.ibm.com>
9397
9398         PR tree-optimization/37161
9399         * tree-vectorizer.h (vect_get_smallest_scalar_type): Declare.
9400         * tree-vect-analyze.c (vect_get_smallest_scalar_type): New function.
9401         (vect_determine_vectorization_factor): Move the scalar type
9402         retrieval to vect_get_smallest_scalar_type.
9403         (vect_build_slp_tree): Call vect_get_smallest_scalar_type to get
9404         scalar type. Remove redundant computation.
9405         * tree-vect-transform.c (vect_get_constant_vectors): Add argument.
9406         (vect_get_slp_defs): Take the type of RHS into account if
9407         necessary by calling vect_get_smallest_scalar_type. Call
9408         vect_get_constant_vectors with additional argument.
9409
9410 2008-08-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9411
9412         PR 35648
9413         * doc/invoke.texi (Wwrite-strings): Clarify description.
9414
9415 2008-08-23  Ira Rosen  <irar@il.ibm.com>
9416
9417         PR tree-optimization/37174
9418         * tree-vect-analyze.c (vect_get_and_check_slp_defs): Check that the
9419         def stmt is a part of the loop before accessing its stmt_vec_info.
9420
9421 2008-08-22  Anatoly Sokolov  <aesok@post.ru>
9422
9423         PR target/11259
9424         * config/avr/avr.md (UNSPEC_SWAP): New constants.
9425         (*swap): New insn pattern.
9426         (*ashlqi3): Rename from ashlqi3 insn pattern.
9427         (ashlqi3): New expanders.
9428         (*lshrqi3): Rename from lshrqi3 insn pattern.
9429         (lshrqi3): New expanders.
9430         (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, lshrqi3_const4,
9431         lshrqi3_const5, lshrqi3_const6): New splitters.
9432         (andi, ashlqi3_l_const4, ashlqi3_l_const5, ashlqi3_l_const6,
9433         lshrqi3_l_const4, lshrqi3_l_const5, lshrqi3_l_const6): Define
9434         peephole2 patterns.
9435
9436 2008-08-22  Richard Guenther  <rguenther@suse.de>
9437
9438         PR tree-optimization/37078
9439         * tree-vrp.c (extract_range_from_unary_expr): Avoid generating
9440         [+INF, +INF] ranges.
9441
9442 2008-08-22  Richard Guenther  <rguenther@suse.de>
9443
9444         PR tree-optimization/37143
9445         * tree-vect-transform.c (vect_create_cond_for_align_checks): Build
9446         a conversion statement instead of a copy.
9447
9448 2008-08-22  Uros Bizjak  <ubizjak@gmail.com>
9449
9450         PR target/37184
9451         * config/i386/i386.c (ix86_match_ccmode): Handle CCAmode,
9452         CCCmode, CCOmode and CCSmode destination modes.
9453
9454         PR target/37191
9455         * config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers
9456         from different units in a single alternative.
9457         (*vec_extractv2sf_1): Ditto.
9458         (*vec_extractv2si_0): Ditto.
9459         (*vec_extractv2si_1): Ditto.
9460         * config/i386/sse.md (sse2_storehpd): Ditto.
9461         (sse2_storelpd): Ditto.
9462         (sse2_loadhpd): Ditto.
9463         (sse2_loadlpd): Ditto.
9464
9465         PR target/37197
9466         * config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints.
9467         (popcountsi2): Ditto.
9468         (clzdi2_abm): Ditto.
9469         (popcountdi2): Ditto.
9470         (clzhi2_abm): Ditto.
9471         (popcounthi2): Ditto.
9472
9473 2008-08-22  Richard Guenther  <rguenther@suse.de>
9474
9475         PR middle-end/36548
9476         PR middle-end/37125
9477         * fold-const.c (extract_muldiv_1): Optimize (X * C1) % C2 only
9478         if the multiplication does not overflow.
9479
9480 2008-08-21  Nathan Sidwell  <nathan@codesourcery.com>
9481
9482         * c-ppoutput.c (init_pp_output): Initialize src_line to 1.
9483
9484 2008-08-21  Richard Henderson  <rth@redhat.com>
9485
9486         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Remove
9487         spurrious comma from test.
9488         * configure: Rebuild.
9489
9490 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9491
9492         PR 30457
9493         * builtins.c (fold_builtin_next_arg): Add warning about undefined
9494         behaviour.
9495
9496 2008-08-21  Aldy Hernandez  <aldyh@redhat.com>
9497
9498         * c-tree.h (grokfield): New argument.
9499         * c-decl.c (grokfield): Handle new location argument.
9500         * c-parser.c (c_parser_struct_declaration): Pass location to grokfield.
9501
9502 2008-08-21  Richard Guenther  <rguenther@suse.de>
9503
9504         * tree-ssa-ccp.c (ccp_fold): Fold VIEW_CONVERT_EXPRs of constants.
9505
9506 2008-08-21  Jan Hubicka  <jh@suse.cz>
9507
9508         * cgraph.c (first_cgraph_function_insertion_hook): New variable.
9509         (cgraph_add_function_insertion_hook,
9510         cgraph_remove_function_insertion_hook,
9511         cgraph_call_function_insertion_hooks): New functions.
9512         * cgraph.h (cgraph_add_function_insertion_hook,
9513         cgraph_remove_function_insertion_hook,
9514         cgraph_call_function_insertion_hooks): Declare.
9515         * ipa-reference.c (function_insertion_hook_holder): New variable.
9516         (check_operand, look_for_address_of): When checking late, do not care
9517         about module bitmaps.
9518         (add_new_function): New function.
9519         (generate_summary): Register hooks; zero module bitmaps.
9520         (propagate): Unregister hooks.
9521         * ipa-pure-const.c (function_insertion_hook_holder): New variable.
9522         (add_new_function): New function.
9523         (generate_summary): Register hook.
9524         (propagate): Remove hook.
9525
9526         * ipa-cp.c (ipcp_need_redirect_p): Fix to not be constant 0.
9527
9528         * tree-pass.h (pass_ipa_cp): Make ipa_opt_pass.
9529         * ipa-cp.c (ipcp_update_cloned_node): New function.
9530         (build_const_val): Handle functions correctly; bring type logic
9531         into sync with tree-inline.c
9532         (ipcp_init_stage):  Take care of computing stuff needed by
9533         indirect inlining; update clones.
9534         (ipcp_generate_summary): Break out of ipcp_driver.
9535         (ipcp_driver): Do only execution and transformation.
9536         (pass_ipa_cp): Make IPA_PASS.
9537         * tree-ssa-ccp.c (fold_stmt_r): Check type before trying to fold
9538         offset to address.
9539         * ipa-inline.c (inline_indirect_intraprocedural_analysis): When doing
9540         ipcp, some info is already available.
9541         * ipa-prop.c (ipa_count_arguments): Grow edge lists as needed.
9542         * tree-inline.c (remap_ssa_name): Unshare expression.
9543
9544 2008-08-21  Richard Guenther  <rguenther@suse.de>
9545
9546         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
9547         a PHI ask VN if it is already available.
9548         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
9549         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
9550
9551 2008-08-21  Richard Guenther  <rguenther@suse.de>
9552
9553         PR middle-end/36817
9554         * tree-chrec.c (chrec_apply): Always call chrec_fold_plus which
9555         makes sure to produce a result of the correct type.
9556
9557 2008-08-21  Jan Hubicka  <jh@suse.cz>
9558         Backport from LTO branch:
9559
9560         2008-05-05  Kenneth Zadeck <zadeck@naturalbridge.com>
9561                     Jan Hubicka  <jh@suse.cz>
9562
9563         * ipa-pure-const.c
9564         (init_state, finish_state, set_function_state, generate_summary):
9565         New functions.
9566         (scan_stmt): Renamed from scan_function.  Changed to keep state in
9567         local static vars rather than cgraph aux field.
9568         (propagate): Renamed from static_execute. Changed to keep state in
9569         local static vars rather than cgraph aux field.
9570         (pass_ipa_pure_const): Changed from SIMPLE_IPA_PASS to IPA_PASS.
9571         * tree-pass.h (pass_ipa_pure_const): Turn into IPA_PASS.
9572
9573         2008-07-15  Kenneth Zadeck <zadeck@naturalbridge.com>
9574
9575         * tree-pass.h (pass_ipa_reference): Make into ipa_opt_pass.
9576         * ipa-reference.c (init_function_info, generate_summary,
9577         propagate): New functions.
9578         (analyze_function):  Call init_function_info.
9579         (static_execute): Stripped into generate_summary and propagate.
9580         (pass_ipa_reference): Made into ipa_opt_pass.
9581
9582 2008-08-21  Richard Guenther  <rguenther@suse.de>
9583
9584         PR tree-optimization/37181
9585         * tree-vrp.c (extract_range_from_binary_expr): Check for NULL
9586         folding result.
9587         (extract_range_from_unary_expr): Likewise.
9588
9589 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9590
9591         * diagnostic.c (pedwarn_at): Rename as pedwarn.
9592         (pedwarn): Delete.
9593         * toplev.h (pedwarn_at): Likewise.
9594         * builtins.c: Update all calls to pedwarn.
9595         * c-lex.c: Likewise.
9596         * toplev.c: Likewise.
9597         * c-tree.h: Likewise.
9598         * c-decl.c: Likewise.
9599         * c-errors.c: Likewise.
9600         * c-typeck.c: Likewise.
9601         * c-common.c: Likewise.
9602         * c-parser.c: Likewise.
9603
9604 2008-08-20  Joseph Myers  <joseph@codesourcery.com>
9605
9606         PR target/31070
9607         * config/sparc/sparc.c (function_arg_slotno): Handle structure
9608         with MODE_VECTOR_INT mode.
9609
9610 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9611
9612         PR middle-end/179
9613         * tree-ssa.c (warn_uninit): Do not warn for variables that can be
9614         initialized outside the current module.
9615         (warn_uninitialized_var): Ignore left-hand side when walking the
9616         trees. Ignore address expressions. Examine VUSE operands in gimple
9617         statements with a variable declaration on the right-hand side.
9618
9619 2008-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
9620
9621         PR bootstrap/37155
9622         * rtlanal.c (subreg_offset_representable_p): Revert last change.
9623
9624 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9625
9626         PR 35701
9627         * c-common.c (conversion_warning): Do not warn if applying bit-and
9628         operator to unsigned constant that fits in the target type.
9629
9630 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9631
9632         PR c++/35602
9633         * c-common.c (conversion_warning): Do not warn for artificial
9634         expressions.
9635
9636 2008-08-20  Richard Guenther  <rguenther@suse.de>
9637
9638         * tree-vrp.c (op_with_constant_singleton_value_range): New function.
9639         (extract_range_from_binary_expr): Fall back to constant propagation.
9640         (extract_range_from_unary_expr): Likewise.
9641
9642 2008-08-20  Richard Guenther  <rguenther@suse.de>
9643
9644         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Do not mess
9645         with TREE_THIS_VOLATILE on shared nodes.
9646         (fold_stmt_r): Likewise.
9647
9648 2008-08-20  Jakub Jelinek  <jakub@redhat.com>
9649
9650         PR c/37171
9651         * c-parser.c (c_parser_attributes): For keywords use canonical
9652         spelling for attr_name.
9653
9654 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9655
9656         * value-prof.c (check_counter): Revert wrong call to error.
9657
9658 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9659
9660         * profile.c: Update calls to inform.
9661         * value-prof.c: Update calls to inform.
9662
9663 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9664
9665         * diagnostic.c (inform): Add an explicit location_t parameter.
9666         * toplev.h (inform): Update declaration.
9667         * builtins.c: Update all calls to inform.
9668         * c-common.c: Likewise.
9669         * c-decl.c: Likewise.
9670         * c-opts.c: Likewise.
9671         * c-pch.c: Likewise.
9672         * c-pragma.c: Likewise.
9673         * c-typeck.c: Likewise.
9674         * coverage.c: Likewise.
9675         * opts.c: Likewise.
9676         * toplev.c: Likewise.
9677         * tree-cfg.c: Likewise.
9678         * tree-ssa.c: Likewise.
9679
9680 2008-08-20  H.J. Lu  <hongjiu.lu@intel.com>
9681
9682         PR target/37169
9683         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): In
9684         V2DI mode, for SSE4.1, use movq instead of vector set if the
9685         second element is zero and inter-unit moves are OK.
9686
9687 2008-08-20  Richard Guenther  <rguenther@suse.de>
9688
9689         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): More
9690         properly handle conversion/copy chains after tuplification.
9691
9692 2008-08-20  Richard Guenther  <rguenther@suse.de>
9693
9694         * passes.c (init_optimization_passes): Move the second
9695         forwprop pass before alias computation.  Remove the second
9696         DCE pass.  Remove the first dominator and phi copy/const
9697         prop passes.
9698
9699 2008-08-20  Nick Clifton  <nickc@redhat.com>
9700
9701         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Always test for assembler
9702         support of this feature.  Do not assume that a sufficiently new
9703         assembler will support the feature regardless of the target type.
9704         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
9705         * configure: Regenerate.
9706
9707 2008-08-20  Richard Guenther  <rguenther@suse.de>
9708
9709         * tree-vrp.c (found_in_subgraph): Remove.
9710         (live): New global static.
9711         (live_on_edge): New function.
9712         (blocks_visited): Remove.
9713         (register_edge_assert_for_2): Use live_on_edge.
9714         (find_conditional_asserts): Remove code dealing with
9715         found_in_subgraph.  Do not walk the CFG.
9716         (find_switch_asserts): Likewise.
9717         (find_assert_locations_1): Renamed from find_assert_locations.
9718         Move finding assert locations for conditional and switch
9719         statements first.  Update live bitmap.  Do not walk the CFG.
9720         (find_assert_locations): New function.
9721         (insert_range_assertions): Remove entry of CFG walk.
9722         Adjust call to find_assert_locations.
9723         * tree-ssa-pre.c (do_regular_insertion): Ignore critical edges
9724         that only can appear because of fake exit edges but assert we
9725         never try to insert on those.
9726         (fini_pre): Do not remove fake exit edges here...
9727         (execute_pre): ...but here, before committing edge inserts.
9728
9729 2008-08-19  Richard Guenther  <rguenther@suse.de>
9730
9731         * passes.c (init_optimization_passes): Exchange store-ccp
9732         with a ccp pass.
9733
9734 2008-08-19  Rafael Espíndola  <espindola@google.com>
9735
9736         * varasm.c (weak_decls): Move earlier in the file.
9737         (assemble_external): Add weak decls to the weak_decls list.
9738         (declare_weak): Don't add decls to the weak_decls list.
9739
9740 2008-08-19  H.J. Lu  <hongjiu.lu@intel.com>
9741
9742         PR target/37157
9743         * config/i386/sse.md (sse2_punpckhqdq, sse2_punpcklqdq): Moved
9744         before (sse2_shufpd_<mode>).
9745
9746 2008-08-19  Jakub Jelinek  <jakub@redhat.com>
9747
9748         PR debug/37156
9749         * pretty-print.c (pp_base_format): Deal with recursive BLOCK trees.
9750         * tree.c (block_nonartificial_location): Likewise.
9751
9752 2008-08-19  Richard Guenther  <rguenther@suse.de>
9753
9754         PR tree-optimization/35972
9755         PR tree-optimization/23094
9756         * tree-ssa-sccvn.h (vn_reference_lookup_pieces): Add maywalk
9757         parameter.
9758         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
9759         handle MISALIGNED_INDIRECT_REF.
9760         (get_ref_from_reference_ops): New helper.
9761         (vn_reference_lookup_pieces): Walk the use-def chain using the
9762         alias-oracle if requested.
9763         * tree-ssa-pre.c (phi_translate_1): Do reference lookup with
9764         walking the use-def chain.
9765         (compute_avail): But not here.
9766         (create_component_ref_by_pieces_1): Properly handle
9767         MISALIGNED_INDIRECT_REF.
9768         (do_regular_insertion): Handle fully redundant
9769         expressions after PHI-translation also for SSA_NAME values, not
9770         only constants.  Correctly use edoubleprime for that.
9771
9772 2008-08-19  Ira Rosen  <irar@il.ibm.com>
9773
9774         * tree-vectorizer.c (supportable_widening_operation): Support
9775         multi-step conversion, return the number of steps in such conversion
9776         and the required intermediate types.
9777         (supportable_narrowing_operation): Likewise.
9778         * tree-vectorizer.h (vect_pow2): New function.
9779         (supportable_widening_operation): Change argument types.
9780         (supportable_narrowing_operation): Likewise.
9781         (vectorizable_type_promotion): Add an argument.
9782         (vectorizable_type_demotion): Likewise.
9783         * tree-vect-analyze.c (vect_analyze_operations): Call
9784         vectorizable_type_promotion and vectorizable_type_demotion with
9785         additional argument.
9786         (vect_get_and_check_slp_defs): Detect patterns.
9787         (vect_build_slp_tree): Add an argument, don't fail in case of multiple
9788         types.
9789         (vect_analyze_slp_instance): Don't fail in case of multiple types.
9790         Call vect_build_slp_tree with correct arguments. Calculate unrolling
9791         factor according to the smallest type in the loop.
9792         (vect_detect_hybrid_slp_stmts): Include statements from patterns.
9793         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call
9794         supportable_widening_operation with correct arguments.
9795         * tree-vect-transform.c (vect_get_slp_defs): Allocate output vector
9796         operands lists according to the number of vector statements in left
9797         or right node, if exists.
9798         (vect_gen_widened_results_half): Remove unused argument.
9799         (vectorizable_conversion): Call supportable_widening_operation,
9800         supportable_narrowing_operation, and vect_gen_widened_results_half
9801         with correct arguments.
9802         (vectorizable_assignment): Change documentation, support multiple
9803         types in SLP.
9804         (vectorizable_operation): Likewise.
9805         (vect_get_loop_based_defs): New function.
9806         (vect_create_vectorized_demotion_stmts): Likewise.
9807         (vectorizable_type_demotion): Support loop-aware SLP and general
9808         multi-step conversion. Call vect_get_loop_based_defs and
9809         vect_create_vectorized_demotion_stmts for transformation.
9810         (vect_create_vectorized_promotion_stmts): New function.
9811         (vectorizable_type_promotion): Support loop-aware SLP and general
9812         multi-step conversion. Call vect_create_vectorized_promotion_stmts
9813         for transformation.
9814         (vectorizable_store): Change documentation, support multiple
9815         types in SLP.
9816         (vectorizable_load): Likewise.
9817         (vect_transform_stmt): Pass SLP_NODE to
9818         vectorizable_type_promotion and vectorizable_type_demotion.
9819         (vect_schedule_slp_instance): Move here the calculation of number
9820         of vectorized statements for each node from...
9821         (vect_schedule_slp): ... here.
9822         (vect_transform_loop): Call vect_schedule_slp without the last
9823         argument.
9824
9825 2008-08-19  Dorit Nuzman  <dorit@il.ibm.com>
9826
9827         PR bootstrap/37152
9828         * tree-vect-transform.c (vect_create_epilog_for_reduction): Change =
9829         to == in assert statement.
9830         (vectorizable_reduction): Fix typo.
9831
9832 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
9833
9834         PR bootstrap/37153
9835         * value-prof.c (check_counter): Dereference pointer to overall
9836         count when printing it.
9837
9838 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
9839
9840         * profile.h: Really add it.
9841
9842 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
9843
9844         * mcf.c: Really add it.
9845
9846 2008-08-18  Paul Yuan  <yingbo.com@gmail.com>
9847             Vinodha Ramasamy  <vinodha@google.com>
9848
9849         * cgraph.c (cgraph_edge): Handle inconsistent counts when setting
9850         count_scale.
9851         * value-prof.c (check_counter): Fix the counter if
9852         flag_profile_correction is true.
9853         (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
9854         tree_mod_subtract_transform):
9855         Follow check_counter parameter change.
9856         * common.opt (fprofile-correction): New option.
9857         * mcf.c: New file.
9858         * profile.h: Likewise.
9859         * profile.c (edge_info, EDGE_INFO): Moved to new file profile.h.
9860         (sum_edge_counts, is_edge_inconsistent, correct_negative_edge_counts,
9861         is_inconsistent, set_bb_counts, read_profile_edge_counts): New
9862         functions.
9863         (compute_branch_probabilities): Refactored. Invokes mcf_smooth_cfg if
9864         flag_profile_correction is set.
9865
9866 2008-08-18  Richard Sandiford  <rdsandiford@googlemail.com>
9867
9868         * rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
9869
9870 2008-08-18  Tomas Bily  <tbily@suse.cz>
9871
9872         * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P.
9873         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Use
9874         CONVERT_EXPR_P.
9875         * tree-data-ref.c (split_constant_offset_1): Likewise.
9876         * tree-inline.c (estimate_operator_cost): Use CASE_CONVERT.
9877         * tree-sra.c (sra_walk_expr): Likewise.
9878         * matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise.
9879         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
9880         * gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P.
9881         * tree-ssa-structalias.c (find_func_aliases, find_func_aliases):
9882         Likewise.
9883         * gimple.c (gimple_assign_unary_nop_p): Likewise.
9884         * tree-vect-transform.c (vectorizable_type_demotion)
9885         (vectorizable_type_promotion): Likewise.
9886         * tree-inline.c (expand_call_inline):
9887         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
9888         (forward_propagate_addr_expr_1, forward_propagate_comparison)
9889         (tree_ssa_forward_propagate_single_use_vars): Likewise.
9890         * expr.c (expand_expr_real_1): Likewise.
9891         * tree-ssa-dom.c (hashable_expr_equal_p, iterative_hash_hashable_expr)
9892         (gimple_assign_unary_useless_conversion_p): Likewise.
9893         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
9894         * tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise.
9895         * fold-const.c (fold_unary): Likewise.
9896         * tree.h (CONVERT_EXPR_P): Likewise.
9897         * tree.c (simple_cst_equal, iterative_hash_expr): Likewise.
9898         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
9899         * tree-vrp.c:
9900         (register_edge_assert_for_2, extract_range_from_unary_expr)
9901         (register_edge_assert_for_1): Likewise.
9902
9903 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9904
9905         * real.h (dconst_e, dconst_third, dconst_sqrt2, dconst_e_ptr,
9906         dconst_third_ptr, dconst_sqrt2_ptr): Declare.
9907         (enum real_value_const): Delete.
9908         (get_real_const): Delete.
9909         * real.c (get_real_const): Delete.
9910         (dconst_e_ptr): Define.
9911         (dconst_third_ptr): Define.
9912         (dconst_sqrt2_ptr): Define.
9913         * builtins.c: Update all callers.
9914
9915 2008-08-18  Richard Guenther  <rguenther@suse.de>
9916
9917         * tree-ssa-reassoc.c (reassociate_bb): Properly reset the
9918         statement iterator after statement removal.
9919
9920 2008-08-18  Andreas Tobler  <a.tobler@schweiz.org>
9921
9922         * config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.
9923         (detect_processor_freebsd): Likewise.
9924         (host_detect_local_cpu): Call newly added functions for FreeBSD.
9925
9926 2008-08-18  Richard Guenther  <rguenther@suse.de>
9927
9928         * tree-cfg.c (verify_types_in_gimple_assign): Verify copies
9929         and loads have the correct types.
9930
9931 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9932
9933         PR cpp/7263
9934         * c-opts.c (cpp_opts): Remove static.
9935         * c-parser.c (cpp_opts): Declare it extern.
9936         (disable_extension_diagnostics): Handle cpp options.
9937         (enable_extension_diagnostics): Likewise.
9938
9939 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9940
9941         * diagnostics.c (permerror_at): Rename as permerror.
9942         (permerror): Delete.
9943         * toplev.h: Likewise.
9944
9945 2008-08-18  Richard Guenther  <rguenther@suse.de>
9946
9947         * passes.c (init_optimization_passes): Remove cleanup_cfg1,
9948         sdse1 and addressables2 passes.  Replace dce1 with cddce1.
9949         Move call_cdce before build_alias.  Move copyrename2,
9950         cunrolli and ccp2 beafore build_alias.  Re-add addressable2
9951         right after final inlining.
9952         * tree-cfg.c (build_gimple_cfg): Do not dump function here.
9953         (pass_build_cfg): But instead via TODO_dump_func.
9954
9955 2008-08-18  Richard Guenther  <rguenther@suse.de>
9956
9957         * tree-sra.c (generate_element_init_1): Deal with NULL constructor
9958         element index.
9959         (scalarize_init): If we failed to generate some initializers
9960         do not generate zeros for not instantiated members.  Instead
9961         rely on the copy out.
9962         * tree-ssa-operands.c (get_addr_dereference_operands): Warn
9963         about missing flow-sensitive alias info only if we have
9964         aliases computed.
9965
9966 2008-08-17  Nick Clifton  <nickc@redhat.com>
9967
9968         * doc/extend.texi (Function Attributes): Fix typo in description
9969         if hot function attribute.
9970
9971 2008-08-17  Daniel Jacobowitz  <dan@codesourcery.com>
9972             Richard Sandiford  <rdsandiford@googlemail.com>
9973
9974         * doc/install.texi (--with-mips-plt): Document.
9975         * doc/invoke.texi (-mplt, -mno-plt): Document.
9976         * config.gcc (mips*-*-*): Add mips-plt to supported_defaults
9977         and handle ${with_mips_plt}.
9978         * config/mips/mips.opt (mplt): New option.
9979         * config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
9980         (TARGET_ABICALLS_PIC2): Likewise.
9981         (TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
9982         (OPTION_DEFAULT_SPECS): Add a mips-plt entry.
9983         (ASM_SPEC): Use !mabi=* instead of !mabi*.
9984         (MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
9985         to decide whether to output ".option picX" directives.
9986         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
9987         Pass -call_nonpic rather than -KPIC for -mplt.
9988         (BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
9989         on the command line.  Also remove it when -mabi=64 is used without
9990         -msym32.
9991         * config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
9992         * config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
9993         TARGET_ABICALLS_PIC0.
9994         (mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
9995         TARGET_ABICALLS.
9996         (mips16_build_function_stub): Only output ".option pic" directives
9997         and PIC stubs if TARGET_ABICALLS_PIC2.  Call through $25 instead of $1.
9998         (mips16_build_call_stub): Fix comment and remove redundant
9999         ".set at"/"set .noat" directives.
10000         (mips_function_rodata_section): Use the default behaviour for
10001         TARGET_ABSOLUTE_ABICALLS.
10002         (mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
10003         (mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
10004         (mips_restore_gp): Do nothing if the current function doesn't use
10005         a global pointer.
10006         (mips_expand_prologue): Only save $gp if the current function uses it.
10007         Use a normal move for TARGET_ABICALLS_PIC0.
10008         (mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.
10009
10010 2008-08-17  Richard Sandiford  <rdsandiford@googlemail.com>
10011
10012         * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest
10013         of function when handling GLOBAL_POINTER_REGNUM.
10014
10015 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
10016
10017         PR ada/20548
10018         * common.opt (-fstack-check): Do not declare the variable here.
10019         (-fstack-check=): New option variant.
10020         * doc/invoke.texi (Code Gen Options): Document it.
10021         * expr.h (STACK_OLD_CHECK_PROTECT): New macro.
10022         (STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used.
10023         (STACK_CHECK_STATIC_BUILTIN): New macro.
10024         * doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN.
10025         * opts.c: Include expr.h.
10026         (common_handle_option) <OPT_fold_stack_check_>: New case.
10027         <OPT_fstack_check>: Likewise.
10028         * calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT
10029         consistently in the test for variable-sized types.  Adjust for
10030         new behaviour of flag_stack_check.
10031         * explow.c: Include except.h.
10032         (allocate_dynamic_stack_space): Do not take into account
10033         STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking.
10034         * function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test
10035         for variable-sized parameters.  Treat all parameters whose size is
10036         greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic
10037         stack checking is enabled.
10038         * gimplify.c (gimplify_decl_expr): Treat non-static objects whose
10039         size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized
10040         if generic stack checking is enabled.
10041         (expand_function_end): Adjust for new behaviour of flag_stack_check.
10042         * reload1.c (reload): Likewise.
10043         * stmt.c (expand_decl): Assert that all automatic variables have
10044         fixed size at this point and remove dead code.
10045         * flags.h (stack_check_type): New enumeration type.
10046         (flag_stack_check): Declare.
10047         * toplev.c (flag_stack_check): New global variable.
10048         * Makefile.in (opts.o): Add dependency on EXPR_H.
10049         (explow.o): Add dependency on except.h.
10050
10051 2008-08-16  Andy Hutchinson  <hutchinsonandy@aim.com>
10052
10053         * config/avr/avr.c (avr_override_options): Reduce value of
10054         PARAM_INLINE_CALL_COST.
10055
10056 2008-08-15  Eric Botcazou  <ebotcazou@adacore.com>
10057
10058         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: When converting
10059         to BLKmode, try to fetch an inner memory reference.  Use 'mode' in
10060         lieu of TYPE_MODE (type) throughout.
10061
10062 2008-08-15  Joseph Myers  <joseph@codesourcery.com>
10063
10064         * config/arm/arm.c (add_minipool_backward_ref): Check for
10065         8-byte-aligned entries in second case of forcing insertion after a
10066         particular entry.  Change third case to avoid inserting
10067         non-8-byte-aligned entries before 8-byte-aligned ones.
10068
10069 2008-08-15  Richard Guenther  <rguenther@suse.de>
10070
10071         * tree-ssa-ccp.c (maybe_fold_offset_to_reference): Do not
10072         strip components for unknown size accesses.
10073
10074 2008-08-15  Wolfgang Gellerich  <gellerich@de.ibm.com>
10075
10076         * config/s390/2097.md New file.
10077         * config/s390/s390.md ("z10prop" attribute): Define none,
10078         z10_super, z10_super_E1, z10_super_A1, z10_super_c,
10079         z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
10080         z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
10081         possible values and apply them to insns as appropriate.
10082         ("type" attribute): Removed itof and added ftrunctf,ftruncdf,
10083         ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
10084         fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
10085         fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible values.
10086         ("bfp" mode attribute): Removed.  Every occurence replaced
10087         with <mode>.
10088         * config/s390/s390.c (struct "z10_cost"): Updated entries.
10089         * config/s390/2084.md (insn_reservation "x_itof"): Updated
10090         type attribute.
10091
10092 2008-08-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10093
10094         PR c/28152
10095         * c-parser.c (c_lex_one_token): Do not store the canonical spelling
10096         for keywords.
10097
10098 2008-08-14  Dorit Nuzman  <dorit@il.ibm.com>
10099
10100         * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an
10101         additional argument. Support reduction when duplication is needed due
10102         to data-types of different sizes in the loop.
10103         (get_initial_def_for_induction): Fix printout.
10104         (vect_get_vec_def_for_stmt_copy): Support case where the
10105         vec_stmt_for_operand is a phi node.
10106         (vectorizable_reduction): Support reduction when duplication is needed
10107         due to data-types of different sizes in the loop.
10108         (vectorizable_call): Remove restriction to not vectorize in case we
10109         have data-types of different sizes in the loop.
10110         (vectorizable_conversion): Likewise.
10111         (vectorizable_operation): Likewise.
10112         (vectorizable_type_demotion): Likewise.
10113         (vectorizable_type_promotion): Likewise.
10114         (vectorizable_induction): Add restriction to not vectorize in case
10115         we have data-types of different sizes in the loop.
10116
10117 2008-08-14  Christophe Saout  <christophe@saout.de>
10118             Uros Bizjak  <ubizjak@gmail.com>
10119
10120         PR target/37101
10121         * config/i386/sse.md (vec_concatv2di): Remove movlps alternative.
10122         (*vec_concatv2di_rex64_sse4_1): Ditto.
10123         (*vec_concatv2di_rex64_sse): Ditto.
10124
10125 2008-08-14  Jakub Jelinek  <jakub@redhat.com>
10126
10127         PR middle-end/37103
10128         * fold-const.c (fold_widened_comparison): Do not allow
10129         sign changes that change the result even if shorter type
10130         is wider than arg1_unw's type.
10131
10132 2008-08-13  Kazu Hirata  <kazu@codesourcery.com>
10133
10134         * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c:
10135         Skip if the multilib testing specifies -march that does not
10136         agree with the one specified in the testcase.
10137
10138 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
10139
10140         * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or
10141         zero extend SImode values being converted to TFmode before passing
10142         to libcalls.
10143
10144 2008-08-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10145
10146         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
10147         __PPU__ when targeting the Cell/B.E. PPU processor.
10148
10149 2008-08-13  Eric Botcazou  <ebotcazou@adacore.com>
10150
10151         * gimple.h (gimple_call_set_chain): Accept SSA variables.
10152         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>:
10153         Rematerialize the static chain, if any.
10154         * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the
10155         static chain.
10156
10157 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
10158
10159         * dwarf2out.c (dwarf_stack_op_name): Remove prototype.
10160         (new_loc_descr): Likewise.
10161         (add_loc_descr): Likewise.
10162         (size_of_loc_descr): Likewise.
10163         (size_of_locs): Likewise.
10164         (output_loc_operands): Likewise.
10165         (output_loc_sequence): Likewise.
10166         (new_reg_loc_descr): New.
10167         (build_cfa_loc): Use it.
10168         (build_cfa_aligned_loc): Likewise.
10169         (one_reg_loc_descriptor): Likewise.
10170         (based_loc_descr): Likewise.
10171
10172 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10173
10174         PR 30551
10175         * doc/invoke.texi (Wmain): Update.
10176         * c-decl.c (start_decl): warn_main is only 0 or 1.
10177         (start_function): Likewise. Fix formatting.
10178         (finish_function): Delete redundant warning.
10179         * c.opt (Wmain): Add Var(warn_main) and Init(-1).
10180         * c-opts (c_common_handle_option): -Wall only has effect if
10181         warn_main is uninitialized. OPT_Wmain is automatically
10182         handled. -pedantic also enables Wmain.
10183         (c_common_post_options): Handle all logic for Wmain here.
10184         * c-common.c (warn_main): Delete.
10185         (check_main_parameter_types): Make pedwarns conditional on OPT_Wmain.
10186         * c-common.h (warn_main): Delete.
10187
10188 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
10189
10190         PR middle-end/36701
10191         * expr.c (emit_group_store): Allocate stack temp with the
10192         largest alignment when copying from register to stack.
10193
10194 2008-08-13  Richard Guenther  <rguenther@suse.de>
10195
10196         * tree.h (maybe_fold_offset_to_address): Declare.
10197         * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit.
10198         (ccp_fold): Handle pointer conversions the same as fold_stmt.
10199         Likewise for POINTER_PLUS_EXPR.
10200         (maybe_fold_offset_to_reference): Enable disabled code.
10201         (maybe_fold_offset_to_address): New function.
10202         (fold_stmt_r): Use it.
10203         (fold_gimple_assign): Likewise.
10204         * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address.
10205         (gimplify_expr): Likewise.
10206
10207 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10208
10209         * toplev.h (pedwarn_at): Fix declaration.
10210
10211 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
10212
10213         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
10214         LINK_SPEC): Use %R in -Y P argument.
10215
10216 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10217
10218         PR c/15236
10219         * diagnostic.c (pedwarn_at): New.
10220         * toplev.h (pedwarn_at): Declare.
10221         * c-tree.h (build_enumerator): Update declaration.
10222         * c-decl.c (finish_enum): Update comment.
10223         (build_enumerator): Take a location parameter. Give a pedwarn but do
10224         not perform any conversion.
10225         * c-parser.c (c_parser_enum_specifier): Set correct location for
10226         enumerator.
10227
10228 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10229
10230         PR 35635
10231         * c-common.c (conversion_warning): Use a switch. Ignore boolean
10232         expressions except for conversions to signed:1 bitfields. Handle
10233         COND_EXPR with constant operands.
10234
10235 2008-08-13  Richard Guenther  <rguenther@suse.de>
10236
10237         PR tree-optimization/15255
10238         * tree-ssa-reassoc.c (linearize_expr_tree): Declare.
10239         (struct oecount_s): New struct and VEC types.
10240         (cvec): New global.
10241         (oecount_hash): New function.
10242         (oecount_eq): Likewise.
10243         (oecount_cmp): Likewise.
10244         (zero_one_operation): New function.
10245         (build_and_add_sum): Likewise.
10246         (undistribute_ops_list): Perform un-distribution of multiplication
10247         and division on the chain of summands.
10248         (should_break_up_subtract): Also break up subtracts for factors.
10249         (reassociate_bb): Delete dead visited statements.
10250         Call undistribute_ops_list.  Re-sort and optimize if it did something.
10251         * passes.c (init_optimization_passes): Move DSE before
10252         reassociation.
10253         * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle
10254         PHI nodes.
10255
10256 2008-08-12  Janis Johnson  <janis187@us.ibm.com>
10257
10258         * doc/invoke.texi (-fipa-pta): Say the option is experimental.
10259
10260         * doc/invoke.texi: Revert unintended checkin.
10261
10262 2008-08-12  Nathan Froyd  <froydnj@codesourcery.com>
10263
10264         PR libgomp/26165
10265         * gcc.c (include_spec_function): Tweak call to find_a_file.
10266
10267 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
10268
10269         PR middle-end/37014
10270         * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
10271         and TRUTH_ORIF_EXPR.
10272         * dojump.c (do_jump): Likewise.
10273
10274         PR tree-optimization/37084
10275         * tree-inline.c (copy_bb): Call gimple_regimplify_operands
10276         if id->regimplify, don't assume stmt is a cast assignment.
10277
10278 2008-08-12  Anatoly Sokolov  <aesok@post.ru>
10279
10280         * final.c (final_scan_insn): Use app_enable/app_disable functions.
10281
10282 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10283
10284         PR bootstrap/37097
10285         * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced
10286         by last change.
10287
10288 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10289
10290         * defaults.h (TARGET_FLOAT_FORMAT): Remove.
10291         (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove.
10292
10293         * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove.
10294         * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove.
10295         * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove.
10296         * config/score/score.h (TARGET_FLOAT_FORMAT): Remove.
10297         * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove.
10298
10299         * doc/tm.texi (Storage Layout): Remove documentation for
10300         TARGET_FLOAT_FORMAT.
10301
10302         * simplify-rtx.c (simplify_binary_operation_1): Replace
10303         TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks.
10304
10305 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10306
10307         * real.h (struct real_format): New member has_sign_dependent_rounding.
10308         * real.c (ieee_single_format, mips_single_format, motorola_single_format,
10309         spu_single_format, ieee_double_format, mips_double_format,
10310         motorola_double_format, ieee_extended_motorola_format,
10311         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
10312         ieee_extended_intel_96_round_53_format, ibm_extended_format,
10313         mips_extended_format, ieee_quad_format, mips_quad_format,
10314         vax_f_format, vax_d_format, vax_g_format): Initialize it.
10315         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
10316
10317         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
10318         MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
10319         * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
10320         MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
10321         (ROUND_TOWARDS_ZERO): Likewise.
10322
10323         * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion.
10324         (FLOAT_MODE_FORMAT): New macro.
10325         (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ...
10326         (MODE_COMPOSITE_P): ... this new macro.
10327         (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
10328         MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros.
10329         * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode.
10330
10331         * flags.h: Include "real.h".
10332
10333         * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of
10334         REAL_MODE_FORMAT_COMPOSITE_P.
10335         * simplify-rtx.c (simplify_const_binary_operation): Likewise.
10336
10337         * doc/tm.texi (Storage Layout): Remove documentation of
10338         MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
10339         MODE_HAS_SIGN_DEPENDENT_ROUNDING.  Update documentation of
10340         ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify
10341         they only apply to libgcc2.a.
10342
10343 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10344
10345         * config/spu/float_disf.c: New file.
10346         * config/spu/float_unsdisf.c: New file.
10347         * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them.
10348         (LIB2FUNCS_EXCLUDE): Define.
10349
10350 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10351             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
10352
10353         * real.h (struct real_format): New member round_towards_zero.
10354         * real.c (round_for_format): Respect fmt->round_towards_zero.
10355         (ieee_single_format, mips_single_format, motorola_single_format,
10356         spu_single_format, ieee_double_format, mips_double_format,
10357         motorola_double_format, ieee_extended_motorola_format,
10358         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
10359         ieee_extended_intel_96_round_53_format, ibm_extended_format,
10360         mips_extended_format, ieee_quad_format, mips_quad_format,
10361         vax_f_format, vax_d_format, vax_g_format): Initialize it.
10362         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
10363
10364         * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of
10365         real_format to choose rounding mode when calling MPFR functions.
10366         (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise.
10367         (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise.
10368
10369         * real.h (real_to_decimal_for_mode): Add prototype.
10370         * real.c (real_to_decimal_for_mode): Renames old real_to_decimal.
10371         Respect target rounding mode when generating decimal representation.
10372         (real_to_decimal): New stub for backwards compatibility.
10373         * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use
10374         real_to_decimal_for_mode instead of real_to_decimal.
10375
10376         * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New.
10377
10378 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10379             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
10380
10381         * real.c (spu_single_format): New variable.
10382         * real.h (spu_single_format): Declare.
10383
10384         * config/spu/spu.c (spu_override_options): Install SFmode format.
10385         (spu_split_immediate): Use integer mode to operate on pieces of
10386         floating-point values in all cases.
10387
10388         * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New.
10389         ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND.
10390         ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE.
10391
10392 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10393
10394         * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA.
10395
10396 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10397
10398         * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define.
10399
10400 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
10401
10402         PR c++/36688
10403         * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY
10404         on the VAR_DECL instead of TYPE_READONLY on its type.
10405
10406 2008-08-12  Ira Rosen  <irar@il.ibm.com>
10407
10408         * tree-vectorizer.c: Depend on langhooks.h.
10409         (supportable_widening_operation): Add two arguments. Support double
10410         type conversions.
10411         (supportable_narrowing_operation): Likewise.
10412         * tree-vectorizer.h (supportable_widening_operation): Add two
10413         arguments.
10414         (supportable_narrowing_operation): Likewise.
10415         * tree-vect-patterns.c (vect_recog_widen_mult_pattern) : Call
10416         supportable_widening_operation with correct arguments.
10417         * tree-vect-transform.c (vectorizable_conversion): Likewise.
10418         (vectorizable_type_demotion): Support double type conversions.
10419         (vectorizable_type_promotion): Likewise.
10420         * Makefile.in (tree-vectorizer.o): Depend on langhooks.h.
10421
10422 2008-08-11  Michael Matz  <matz@suse.de>
10423
10424         * i386/i386.c (override_options): Move initialisation from
10425         flag_schedule_insns_after_reload to here from ...
10426         (optimization_options): ... here.
10427
10428 2008-08-11  Jakub Jelinek  <jakub@redhat.com>
10429
10430         PR rtl-optimization/36998
10431         * dwarf2out.c (compute_barrier_args_size_1,
10432         compute_barrier_args_size): Temporarily remove assertions.
10433
10434 2008-08-10  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10435
10436         PR middle-end/20644
10437         * tree-ssa.c (struct walk_data): Add new flag
10438         warn_possibly_uninitialized.
10439         (warn_uninitialized_var): Use it.
10440         (warn_uninitialized_vars): New.
10441         (execute_early_warn_uninitialized): Call it.
10442         (execute_late_warn_uninitialized): Likewise.
10443
10444 2008-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10445
10446         PR middle-end/36238
10447         * reload1.c (gen_reload): Guard calls to get_secondary_mem
10448         for memory subregs.
10449
10450 2008-08-09  Jan Hubicka  <jh@suse.cz>
10451
10452         PR target/37055
10453         * optabs.c (maybe_emit_unop_insn): Remove produced code if
10454         expansion failed.
10455         (expand_fix): Be prepared for expansion to fail.
10456         (expand_sfix_optab): Remove instructions if expansion failed.
10457
10458 2008-08-09  Anatoly Sokolov  <aesok@post.ru>
10459
10460         * config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to
10461         avr31 architecture.
10462         * config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.).
10463         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
10464
10465 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
10466
10467         * config.gcc (mips*-*-linux*, mips64*-*-linux*): Add
10468         mips/t-libgcc-mips16 to tmake_file.
10469         * config/mips/mips-protos.h (mips_call_type): New enum.
10470         (mips_pic_base_register, mips_got_load): Declare.
10471         (mips_restore_gp): Take an rtx argument.
10472         (mips_use_pic_fn_addr_reg_p): Declare.
10473         (mips_expand_call): Replace the sibcall_p argument with
10474         a mips_call_type argument.  Add a lazy_p parameter.
10475         (mips_split_call): Declare.
10476         * config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro.
10477         (MIPS16_PIC_TEMP): Likewise.
10478         (reg_class): Delete M16_NA_REGS.
10479         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
10480         (SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros.
10481         (mips_split_hi_p): Declare.
10482         * config/mips/mips.c (mips_split_hi_p): New array.
10483         (mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS.
10484         (mips_got_symbol_type_p): New function.
10485         (mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P.
10486         (mips16_stub_function_p): New function.
10487         (mips16_local_function_p): Likewise.
10488         (mips_use_pic_fn_addr_reg_p): Likewise.
10489         (mips_cannot_force_const_mem): Return false for HIGHs.
10490         Extend CONST_INT and symbolic handling to MIPS16, using
10491         mips_symbol_insns to check that the base symbol type is a
10492         legitimate constant.  Reject GOT-based constants if
10493         TARGET_MIPS16_PCREL_LOADS.
10494         (mips_const_insns): Check targetm.cannot_force_const_mem when
10495         decomposing a symbolic base and a large offset.
10496         (mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters.
10497         When calling a function that needs $25 from MIPS16 code,
10498         move the target address into $25 separately and add a USE
10499         to the call insn.
10500         (mips16_gp_pseudo_reg): Insert the initializer immediately
10501         before the first real insn.
10502         (mips_pic_base_register, mips_got_load): New functions.
10503         (mips_split_symbol): Generalize the name of the LO_SUM_OUT
10504         parameter to LOW_OUT.  Say that it can be any valid SET_SRC
10505         when splitting a load-address operation.  Split SYMBOL_GOT_DISP
10506         constants and highs of SYMBOL_GOT_PAGE_OFST constants.
10507         (mips_call_tls_get_addr): Update the call to mips_expand_call,
10508         also passing NULL_RTX rather than const0_rtx as the aux argument.
10509         (mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p
10510         instead of TARGET_EXPLICIT_RELOCS.
10511         (mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P.
10512         (mips_load_call_address): Replace the sibcall_p argument with
10513         a mips_call_type argument.  Use mips_got_load.
10514         (mips16_local_alias): New structure.
10515         (mips16_local_aliases): New variable.
10516         (mips16_local_aliases_hash): New function.
10517         (mips16_local_aliases_eq): Likewise.
10518         (mips16_local_alias): Likewise.
10519         (mips16_stub_function): Likewise.
10520         (mips16_build_function_stub): Create a local alias for the target
10521         function.  Handle TARGET_ABICALLS.  For PIC abicalls, emit a
10522         .cpload directive and an R_MIPS_NONE relocation for the target
10523         function, then load the alias rather than the function itself.
10524         Wrap the non-PIC abicalls version in ".option pic0/.option pic2".
10525         (mips16_copy_fpr_return_value): Use mips16_stub_function and
10526         mips_expand_call.  Set SYMBOL_REF_BIND_NOW on the symbol.
10527         (mips16_build_call_stub): Replace the FN parameter with an
10528         FN_PTR parameter.  Force the address into a register if it
10529         isn't a call_insn_operand; don't rely on the caller to do this.
10530         If a call to a locally-defined and locally-binding MIPS16
10531         function must be made indirectly, redirect the call to the
10532         function's local alias.  Use mips16_stub_function_p,
10533         mips16_stub_function, mips_expand_call and use_reg.
10534         Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols.
10535         Use explicit %hi and %lo accesses where possible.
10536         Use MIPS_CALL to generate the correct code form of a
10537         jal instruction.  Add clobbers of $18 instead of uses.
10538         Update the call to mips_emit_call_insn.
10539         (mips_expand_call): Replace the SIBCALL_P argument with a
10540         mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value.
10541         Take a LAZY_P parameter.  Call mips16_build_call_stub first,
10542         allowing it to modify the call address.  Update the calls to
10543         mips_load_call_address and mips_emit_call_insn.
10544         (mips_split_call): New function.
10545         (mips_init_relocs): Clear mips_split_hi_p.  Only use %gp_rel if
10546         !TARGET_MIPS16.  Split SYMBOL_GOT_DISP, and the high parts of
10547         SYMBOL_GOT_PAGE_OFST, for MIPS16 code.
10548         (mips_global_pointer): Check mips16_cfun_returns_in_fpr_p.
10549         (mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM
10550         if TARGET_MIPS16.
10551         (mips_cprestore_slot): New function.
10552         (mips_restore_gp): Take a TEMP parameter.  Handle TARGET_MIPS16
10553         and use mips_cprestore_slot.
10554         (mips_output_function_prologue): Handle TARGET_MIPS16 for
10555         LOADGP_OLDABI.
10556         (mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16,
10557         then use a copygp_mips16 instruction to set up $28.
10558         (mips_expand_prologue): Initialize the cprestore slot for MIPS16 too.
10559         (mips16_lay_out_constants): Call split_all_insns_noflow.
10560         (mips_reorg_process_insns): Explicitly set all_noreorder_p to
10561         false if TARGET_MIPS16.
10562         (mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16.
10563         (mips_output_mi_thunk): Use mips_got_symbol_type_p.  Use the
10564         mips_dangerous_for_la25_p approach for MIPS16 PIC calls too.
10565         (mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for
10566         MIPS16 code.  Allow MIPS16 o32 PIC.
10567         (mips_override_options): Allow MIPS16 o32 PIC.
10568         * config/mips/mips.md: Lower CONST_GP_P moves into register moves
10569         after reload if TARGET_USE_GOT.
10570         (UNSPEC_COPYGP): New constant.
10571         (length): Use a default length of 8 for MIPS16 GOT loads.
10572         (*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT.
10573         (*got_page<mode>): Check mips_split_hi_p.
10574         (*got_disp<mode>, *got_page<mode>): Use mips_got_load.
10575         (unspec_got<mode>, unspec_call<mode>): New expanders.
10576         (load_got<mode>, load_call<mode>): Remove the length attributes.
10577         Use a got attribute instead of a type attribute.
10578         (copygp_mips16): New insn.
10579         (restore_gp): Add a scratch clobber and pass it to mips_restore_gp.
10580         (load_call<mode>): Use a "d" constraint instead of an "r" constraint.
10581         (sibcall, sibcall_value, call, call_value): Update the calls
10582         to mips_expand_call.
10583         (call_internal, call_value_internal): Use mips_split_call.
10584         (call_value_multiple_internal): Likewise.
10585         (call_split): Move after call_internal (the insn it is split from).
10586         (call_internal_direct, call_value_internal_direct): Turn into
10587         define_insn_and_splits.  Split if TARGET_SPLIT_CALLS.
10588         (call_direct_split, call_value_direct_split): New patterns.
10589         * config/mips/constraints.md (c): Handle TARGET_MIPS16 first
10590         and use M16_REGS instead of M16_NA_REGS.
10591         * config/mips/predicates.md (const_call_insn_operand): Replace
10592         the TARGET_ABSOLUTE_ABICALLS-based check with a more general
10593         mips_use_pic_fn_addr_reg_p check.
10594         (move_operand): Reject HIGHs if mips_split_hi_p.
10595         * config/mips/mips16.S: Assembly as empty if the ABI is not suitable.
10596         (__mips16_floatunsisf): Inline __mips16_floatsisf.
10597         (CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25.
10598         * config/mips/libgcc-mips16.ver: New file.
10599         * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add
10600         $(srcdir)/config/mips/libgcc-mips16.ver.
10601
10602 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
10603
10604         * config/mips/mips.c (mips_unspec_address_offset): Move earlier
10605         in file.
10606         (mips_unspec_address, mips_unspec_offset_high): Likewise.
10607         (mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise.
10608         (mips16_cfun_returns_in_fpr_p): Likewise.
10609
10610 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
10611
10612         * config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary.
10613         * config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2
10614         rather than 4 to PC.
10615
10616 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
10617
10618         * config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
10619         (FUNCTION_PROFILER): Save the static chain pointer into $2
10620         beforehand and restore it aftewards.
10621         (TRAMPOLINE_TEMPLATE): Adjust accordingly.  Load the target
10622         address directly into $25 and call the function through $25;
10623         do not clobber $3.  Pad the DImode version to cover the space
10624         left by the deleted $25 <- $3 move.
10625         (TRAMPOLINE_SIZE): Adjust the size of the SImode version after
10626         the removal of the $25 <- $3 move.
10627         (INITIALIZE_TRAMPOLINE): Update offsets accordingly.
10628         * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
10629
10630 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
10631             Daniel Jacobowitz  <dan@codesourcery.com>
10632
10633         * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete.
10634         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete.
10635         (ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete.
10636         * config/mips/mips.c (mips_start_function_definition): New function.
10637         (mips_end_function_definition): Likewise.
10638         (mips_output_function_prologue): Use mips_start_function_definition.
10639         (mips_output_function_epilogue): Use mips_end_function_definition.
10640         (build_mips16_function_stub): Use mips_start_function_definition
10641         and mips_end_function_definition.
10642         (build_mips16_call_stub): Likewise.
10643
10644 2008-08-09  Richard Guenther  <rguenther@suse.de>
10645
10646         * gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
10647         * gimple.h (gimple_call_fn): Adjust comment.
10648         (gimple_call_set_fndecl): New function.
10649         (gimple_call_fndecl): Adjust for GIMPLE_CALL no
10650         longer having bare FUNCTION_DECL operand.
10651         (gimple_call_return_type): Likewise.
10652         * tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL.
10653
10654         * value-prof.c (gimple_divmod_fixed_value): Do not emit labels.
10655         (gimple_mod_pow2): Likewise.
10656         (gimple_mod_subtract): Likewise.
10657         (gimple_ic): Likewise.
10658         (gimple_stringop_fixed_value): Likewise.
10659         (gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no
10660         longer having bare FUNCTION_DECL operand.
10661         * ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl.
10662         * omp-low.c (optimize_omp_library_calls): Likewise.
10663         * cgraphunit.c (update_call_expr): Likewise.
10664         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
10665         (execute_convert_to_rsqrt): Likewise.
10666         * cfgexpand.c (gimple_to_tree): Simplify.
10667         (release_stmt_tree): Fix for GIMPLE_CALL no longer having
10668         bare FUNCTION_DECL operand.
10669         * tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type.
10670         (convert_gimple_call): Use gimple_call_fndecl.
10671         * c-common.c (c_warn_unused_result): Likewise.
10672
10673 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10674
10675         PR c/17880
10676         * c-typeck.c (digest_init): Call verify_sequence_points from here.
10677         (c_finish_return): Likewise.
10678         (c_start_case): Likewise.
10679         * c-common.c (warn_for_collisions_1): Use explicit location in warning.
10680         * c-parser.c (c_parser_condition): New. Call
10681         verify_sequence_points.
10682         (c_parser_paren_condition): Call c_parser_condition.
10683         (c_parser_for_statement): Call c_parser_condition.
10684
10685 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10686
10687         PR 36901
10688         * diagnostic.def (DK_PEDWARN, DK_PERMERROR): New.
10689         * diagnostic.c (pedantic_warning_kind, permissive_error_kind):
10690         Moved from diagnostic.h
10691         (diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and
10692         DK_PERMERROR.
10693         (emit_diagnostic): New.
10694         (warning0, pedwarn0): Delete.
10695         (warning, warning_at, pedwarn, permerror): Return bool.
10696         * diagnostic.h (pedantic_warning_kind, permissive_error_kind):
10697         Moved to diagnostic.c.
10698         (struct diagnostic_context): Use correct type for
10699         classify_diagnostic.
10700         (diagnostic_report_diagnostic): Update declaration.
10701         (emit_diagnostic): Declare.
10702         * errors.c (warning): Return bool.
10703         * errors.h (warning): Update declaration.
10704         * toplev.h (warning0, pedwarn0): Delete.
10705         (warning, warning_at, pedwarn, permerror): Return bool.
10706         * c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN.
10707         * c-decl.c (locate_old_decl): Delete 'diag' argument. Always use
10708         inform. Update all calls.
10709         (diagnose_mismatched_decls): Check return value of warning/pedwarn
10710         before giving informative note.
10711         (implicit_decl_warning): Likewise.
10712         * c-typeck.c (build_function_call): Likewise.
10713         * tree-sssa.c (warn_uninit): Likewise.
10714         * builtins.c (gimplify_va_arg_expr): Likewise.
10715
10716 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10717
10718         PR 7651
10719         * doc/invoke.texi (-Wextra): Move warning from here...
10720         (-Wuninitialized): ... to here.
10721
10722 2008-08-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10723
10724         PR 28875
10725         * flags.h (set_Wunused): Delete
10726         * toplev.c (process_options): Handle Wunused flags here.
10727         * opts.c (maybe_warn_unused_parameter): Delete.
10728         (common_handle_option): Replace set_Wunused by warn_unused.
10729         (set_Wextra): Do not handle Wunused-parameter here.
10730         (set_Wunused): Delete.
10731         * c-opts.c (c_common_handle_option): Replace set_Wunused by
10732         warn_unused.
10733         * common.opt (Wunused): Add Var and Init.
10734         (Wunused-function): Likewise.
10735         (Wunused-label): Likewise.
10736         (Wunused-parameter): Likewise.
10737         (Wunused-value): Likewise.
10738         (Wunused-variable): Likewise.
10739
10740 2008-08-08  Peter Bergner  <bergner@vnet.ibm.com>
10741
10742         * doc/invoke.texi: Add cpu_type power7.
10743         * config.in (HAVE_AS_VSX): New.
10744         * config.gcc: Add cpu_type power7.
10745         * configure.ac (HAVE_AS_VSX): Check for assembler support of the
10746         VSX instructions.
10747         * configure: Regenerate.
10748         * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to
10749         power5.
10750         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define.
10751         (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7.
10752         (EXTRA_SPECS): Add asm_cpu_power7 spec string.
10753
10754 2008-08-08  Dorit Nuzman  <dorit@il.ibm.com>
10755
10756         * tree-vect-transform.c (vectorizable_conversion): Pass the integral
10757         type to vectorize.builtin_conversion.
10758         (vectorizable_conversion): Likewise.
10759         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes
10760         integral type as input.
10761         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
10762         FIX_TRUNC_EXPR.
10763         (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS
10764         and ALTIVEC_BUILTIN_VCTSXS.
10765         (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix
10766         formatting.
10767
10768 2008-08-08  Richard Guenther  <rguenther@suse.de>
10769
10770         * tree-ssa-ccp.c (likely_value): Calls are not all varying.
10771         (surely_varying_stmt_p): Calls are varying only if they are
10772         non-builtin and not indirect or have no result.
10773         (ccp_fold): Re-instantiate code before the tuples merge.
10774
10775 2008-08-08  Richard Guenther  <rguenther@suse.de>
10776
10777         PR tree-optimization/37056
10778         * gimple.h (gimple_assign_rhs_class): New helper function.
10779         * tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle
10780         unary operations properly.
10781
10782 2008-08-07  Jan Hubicka  <jh@suse.cz>
10783
10784         * i386.h (ix86_size_cost): Declare.
10785         (ix86_cur_cost): New function macro.
10786         * i386.md (peepholes expanding size and splitters): Predicate by
10787         optimize_insn_for_speed_p.
10788         (peepholes reduce size and splitters): Predicate by
10789         optimize_insn_for_size_p.
10790         * i386.c (ix86_size_cost): Rename from ...
10791         (size_cost): This one.
10792         (override_options): Update.
10793         (decide_alg): Likewise.
10794         (ix86_expand_clear): Use RTL profile.
10795         (ix86_pad_returns): Use RTL profile.
10796
10797 2008-08-07  Jan Hubicka  <jh@suse.cz>
10798
10799         * recog.c (split_all_insns): Set RTL profile
10800         (peephole2_optimize): Likewise.
10801         * function.c (thread_prologue_and_epilogue_insns): Likewise.
10802         * combine.c (combine_instructions): Likewise.
10803
10804 2008-08-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10805
10806         * c-common.c (c_common_reswords): Also warn about keyword "bool".
10807
10808 2008-08-07  Bob Wilson  <bob.wilson@acm.org>
10809
10810         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming
10811         value in a6 after the set_frame_ptr insn.
10812
10813 2008-08-07  Richard Henderson  <rth@redhat.com>
10814
10815         PR debug/37033
10816         * gcc.c (cpp_options): Pass along -g*.
10817
10818 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
10819
10820         * config/arm/arm.c (output_move_neon): Update comment describing
10821         big-endian vector layout.
10822         (arm_assemble_integer): Do not handle big-endian NEON vectors
10823         specially.
10824         * config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>,
10825         neon_vget_lane<mode>_sext_internal,
10826         neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust
10827         element indices for big-endian.
10828
10829 2008-08-07  Richard Henderson  <rth@redhat.com>
10830
10831         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New.
10832         * configure, config.in: Rebuild.
10833         * debug.h (dwarf2out_do_cfi_asm): Declare.
10834         * c-cppbuiltin.c (c_cpp_builtins): Use it.
10835         * dwarf2out.c (dwarf2out_do_cfi_asm): New.
10836         (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info,
10837         dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it.
10838
10839 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
10840
10841         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
10842         movv2si_internal): Combine into mov<mode>_internal.
10843         (movv2si_internal_2): Remove.
10844
10845 2008-08-07  Jan Hubicka  <jh@suse.cz>
10846
10847         PR target/37048
10848         * i386.md (single stringop patterns): Enable unconditionally.
10849
10850 2008-08-07  H.J. Lu  <hongjiu.lu@intel.com>
10851
10852         PR target/36992
10853         * config/i386/emmintrin.h (_mm_move_epi64): Use __builtin_ia32_movq128.
10854
10855         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128.
10856         (bdesc_args): Add IX86_BUILTIN_MOVQ128.
10857
10858         * config/i386/sse.md (sse2_movq128): New.
10859
10860         * doc/extend.texi: Document __builtin_ia32_movq128.
10861
10862 2008-08-07  Richard Guenther  <rguenther@suse.de>
10863
10864         PR middle-end/37042
10865         * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all
10866         pointers can access anything.
10867
10868 2008-08-06  Jan Hubicka  <jh@suse.cz>
10869
10870         * optabs.c (emit_unop_insn): Break out to ...
10871         (maybe_emit_unop_insn): ... this one.
10872         (expand_sfix_optab): Use maybe variant.
10873         * optabs.h (maybe_emit_unop_insn): Declare.
10874
10875         * i386.md (mov0 patterns): Enable by default.
10876         (FP conversion expanders): Disable expansion of code expanding
10877         sequences when instruction should be optimized for size.
10878         (single strinop patterns): Enable when optimizing for size.
10879         (string expanders): Disable expanding of code expanding sequences
10880         when optimizning instruction for size.
10881         * i386.c (ix86_expand_vector_move_misalign): Do code size optimization
10882         per BB basis.
10883         (ix86_fp_comparison_sahf_cost): Likewise.
10884         (ix86_expand_branch): Likewise.
10885         (ix86_expand_ashl_const): Likewise.
10886         (ix86_split_ashl): Likewise.
10887         (ix86_expand_strlen): Likewise.
10888         (ix86_emit_fp_unordered_jump): Likewie.
10889
10890 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10891
10892         * c-common.c: Fix typo.
10893         (c_common_reswords): Activate more C++ keyword warnings.
10894
10895         * matrix-reorg.c (compute_offset): Avoid C++ keywords.
10896
10897 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10898
10899         PR 26785
10900         * diagnostic.c (permerror_at): New.
10901         * toplev.h (permerror_at): Declare.
10902
10903 2008-08-06  Victor Kaplansky  <victork@il.ibm.com>
10904             Ira Rosen  <irar@il.ibm.com>
10905
10906         * tree-vect-transform.c (vect_model_simple_cost): Return
10907         immediately if stmt is pure SLP.
10908         (vect_model_store_cost): Ditto.
10909         (vect_model_load_cost): Ditto.
10910         (vectorizable_store): Remove PURE_SLP check before call
10911         to vect_model_store_cost.
10912         (vect_model_store_cost): When checking whether stmt describe
10913         strided access, add a check that it is not slp_node.
10914
10915 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10916
10917         PR 8715
10918         * c-common.c (warn_for_sign_compare): New. Handle separately the
10919         case that 'constant' is zero.
10920         * c-typeck.c (build_binary_op): Move code to c-common.c
10921
10922 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10923
10924         * config/alpha/alpha.c (alpha_preferred_reload_class,
10925         alpha_secondary_reload, alpha_emit_set_const_1, function_value,
10926         alpha_output_mi_thunk_osf): Avoid C++ keywords.
10927         * config/arm/arm.c (output_move_vfp, output_move_neon): Likewise.
10928         * config/arm/arm.md: Likewise.
10929         * config/avr/avr-protos.h (preferred_reload_class,
10930         test_hard_reg_class, avr_simplify_comparison_p,
10931         out_shift_with_cnt, class_max_nregs): Likewise.
10932         * config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p,
10933         output_movqi, output_movhi, output_movsisf, out_shift_with_cnt,
10934         preferred_reload_class, test_hard_reg_class): Likewise.
10935         * config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok,
10936         bfin_memory_move_cost, bfin_secondary_reload,
10937         bfin_output_mi_thunk): Likewise.
10938         * config/crx/crx.c (crx_secondary_reload_class,
10939         crx_memory_move_cost): Likewise.
10940         * config/frv/frv-protos.h (frv_secondary_reload_class,
10941         frv_class_likely_spilled_p, frv_class_max_nregs): Likewise.
10942         * config/frv/frv.c (frv_override_options, frv_alloc_temp_reg,
10943         frv_secondary_reload_class, frv_class_likely_spilled_p,
10944         frv_class_max_nregs): Likewise.
10945         * config/h8300/h8300.c (h8300_classify_operand,
10946         h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count):
10947         Likewise.
10948         * config/i386/winnt.c (i386_pe_declare_function_type): Likewise.
10949         * config/ia64/ia64.c (ia64_preferred_reload_class,
10950         ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise.
10951         * config/iq2000/iq2000.c (gen_int_relational): Likewise.
10952         * config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare):
10953         Likewise.
10954         * config/m68hc11/m68hc11.c (preferred_reload_class,
10955         m68hc11_memory_move_cost): Likewise.
10956         * config/mcore/mcore.c (mcore_secondary_reload_class,
10957         mcore_reload_class): Likewise.
10958         * config/mips/mips.c (mips_hard_regno_mode_ok_p,
10959         mips_class_max_nregs, mips_cannot_change_mode_class,
10960         mips_preferred_reload_class, mips_secondary_reload_class,
10961         mips_output_mi_thunk): Likewise.
10962         * config/mmix/mmix.c (mmix_preferred_reload_class,
10963         mmix_preferred_output_reload_class, mmix_secondary_reload_class):
10964         Likewise.
10965         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
10966         Likewise.
10967         * config/pa/pa.c (pa_secondary_reload, pa_combine_instructions,
10968         pa_can_combine_p, pa_cannot_change_mode_class): Likewise.
10969         * config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
10970         * config/rs6000/rs6000.c (paired_expand_vector_init,
10971         rs6000_secondary_reload_class, rs6000_output_mi_thunk,
10972         compare_section_name, rs6000_memory_move_cost): Likewise.
10973         * config/s390/s390.c (s390_emit_compare_and_swap,
10974         s390_preferred_reload_class, s390_secondary_reload,
10975         legitimize_pic_address, legitimize_tls_address,
10976         legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic,
10977         s390_class_max_nregs): Likewise.
10978         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
10979         * config/s390/s390.md: Likewise.
10980         * config/score/score-protos.h (score_secondary_reload_class,
10981         score_preferred_reload_class): Likewise.
10982         * config/score/score.c (score_preferred_reload_class,
10983         score_secondary_reload_class): Likewise.
10984         * config/score/score3.c (score3_output_mi_thunk,
10985         score3_preferred_reload_class, score3_secondary_reload_class,
10986         score3_hard_regno_mode_ok): Likewise.
10987         * config/score/score3.h (score3_preferred_reload_class,
10988         score3_secondary_reload_class): Likewise.
10989         * config/score/score7.c (score7_output_mi_thunk,
10990         score7_preferred_reload_class, score7_secondary_reload_class,
10991         score7_hard_regno_mode_ok): Likewise.
10992         * config/score/score7.h (score7_preferred_reload_class,
10993         score7_secondary_reload_class): Likewise.
10994         * config/sh/sh.c (prepare_move_operands, output_far_jump,
10995         output_branchy_insn, add_constant, gen_block_redirect,
10996         sh_insn_length_adjustment, sh_cannot_change_mode_class,
10997         sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload): Likewise.
10998         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
10999         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
11000         xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
11001         xstormy16_preferred_reload_class): Likewise.
11002         * config/xtensa/xtensa.c (xtensa_expand_compare_and_swap,
11003         xtensa_expand_atomic, override_options,
11004         xtensa_preferred_reload_class, xtensa_secondary_reload_class):
11005         Likewise.
11006         * reorg.c (try_merge_delay_insns): Likewise.
11007         * tree.c (merge_dllimport_decl_attributes): Likewise.
11008
11009         * config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA.
11010
11011 2008-08-06  Michael Matz  <matz@suse.de>
11012
11013         * Makefile.in (write_entries_to_file): Quote words.
11014         * gengtype.c: (read_input_line): Skip over leading white-space.
11015
11016 2008-08-06  Marc Gauthier  <marc@tensilica.com>
11017
11018         * config.gcc: Match more processor names for Xtensa.
11019         * configure.ac: Likewise.
11020         * doc/install.texi (Specific): Likewise.
11021         * configure: Regenerate.
11022
11023 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11024
11025         * builtins.c (expand_builtin_profile_func): Avoid C++ keywords.
11026         * calls.c (avoid_likely_spilled_reg): Likewise.
11027         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
11028         * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise.
11029         * config/i386/i386.c (ix86_expand_special_args_builtin,
11030         ix86_secondary_reload): Likewise.
11031         * except.c (struct eh_region, gen_eh_region_catch,
11032         remove_unreachable_regions, duplicate_eh_regions,
11033         assign_filter_values, build_post_landing_pads,
11034         sjlj_find_directly_reachable_regions, remove_eh_handler,
11035         reachable_next_level, foreach_reachable_handler,
11036         can_throw_internal_1, can_throw_external_1,
11037         collect_one_action_chain): Likewise.
11038         * expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise.
11039         * fold-const.c (twoval_comparison_p, eval_subst): Likewise.
11040         * function.c (update_temp_slot_address, instantiate_new_reg,
11041         instantiate_virtual_regs_in_rtx,
11042         instantiate_virtual_regs_in_insn): Likewise.
11043         * gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise.
11044         * gimplify.c (gimplify_call_expr, gimplify_init_constructor,
11045         gimplify_cleanup_point_expr): Likewise.
11046         * ipa-cp.c (ipcp_lattice_changed): Likewise.
11047         * passes.c (next_pass_1): Likewise.
11048         * print-tree.c (print_node_brief, print_node): Likewise.
11049         * profile.c (branch_prob): Likewise.
11050         * tree-dump.c (dump_register): Likewise.
11051         * tree-eh.c (replace_goto_queue_cond_clause, lower_catch):
11052         Likewise.
11053         * tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks,
11054         copy_statement_list, remap_gimple_op_r, copy_tree_body_r,
11055         copy_edges_for_bb, copy_cfg_body, copy_tree_r,
11056         copy_arguments_for_versioning, copy_static_chain): Likewise.
11057         * tree-into-ssa.c (names_replaced_by, add_to_repl_tbl,
11058         add_new_name_mapping, register_new_name_mapping): Likewise.
11059         * tree-mudflap.c (mf_xform_derefs): Likewise.
11060         * tree-predcom.c (struct chain, dump_chain, replace_ref_with,
11061         get_init_expr, combine_chains): Likewise.
11062         * tree-pretty-print.c (dump_generic_node): Likewise.
11063         * tree-ssa-structalias.c (create_variable_info_for): Likewise.
11064         * tree-vrp.c (simplify_cond_using_ranges): Likewise.
11065         * tree.c (substitute_in_expr, iterative_hash_expr): Likewise.
11066         * value-prof.c (gimple_duplicate_stmt_histograms): Likewise.
11067
11068 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
11069
11070         PR middle-end/37010
11071         * calls.c (expand_call): Use the biggest preferred stack
11072         boundary.
11073
11074 2008-08-06  Michael Matz  <matz@suse.de>
11075
11076         PR target/36613
11077         * reload.c (push_reload): Merge in,out,in_reg,out_reg members
11078         for reused reload, instead of overwriting them.
11079
11080 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
11081
11082         PR middle-end/37009
11083         * cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary
11084         for incoming stack boundary.
11085
11086         * function.c (assign_parm_find_entry_rtl): Update
11087         parm_stack_boundary.
11088
11089         * function.h (rtl_data): Add parm_stack_boundary.
11090
11091         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Check
11092         parm_stack_boundary for incoming stack boundary.
11093
11094 2008-08-06  Joseph Myers  <joseph@codesourcery.com>
11095
11096         * jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset
11097         for unrepresentable subregs or treat them as equal to other regs
11098         or subregs with the same register number.
11099
11100 2008-08-06  Aldy Hernandez  <aldyh@redhat.com>
11101
11102         PR middle-end/35432
11103         * gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types
11104         if want_value.
11105
11106 2008-08-06  Jan Hubicka  <jh@suse.cz>
11107
11108         * predict.c (maybe_hot_frequency_p): When profile is absent, all
11109         frequencies might be hot.
11110
11111 2008-08-06  Andreas Krebbel  <krebbel1@de.ibm.com>
11112
11113         * reload.c (find_reloads): Force constants into literal pool
11114         also if they are wrapped in a SUBREG.
11115
11116 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
11117
11118         PR target/35659
11119         * haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ...
11120         * sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here.
11121         Don't allow predicated instructions for data speculation.
11122         * sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move
11123         declaration.
11124
11125 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
11126
11127         * haifa-sched.c (extend_global): Split to extend_global_data and
11128         extend_region_data.  Update all uses.
11129         (extend_all): Rename to extend_block_data.
11130
11131 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
11132
11133         * sched-rgn.c (new_ready): Check if instruction can be
11134         speculatively scheduled before attempting speculation.
11135         (debug_rgn_dependencies): Remove wrongful assert.
11136
11137 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
11138
11139         * config/xtensa/t-xtensa: Remove dependency for gt-xtensa.h.
11140
11141 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
11142
11143         * config/xtensa/xtensa.c (xtensa_va_start): Unshare valist.
11144         (xtensa_gimplify_va_arg_expr): Unshare valist, orig_ndx, ndx, array,
11145         va_size, and type_size.
11146
11147 2008-08-04  Jason Merrill  <jason@redhat.com>
11148
11149         PR c++/37016
11150         * tree-ssa.c (useless_type_conversion_p_1): Call langhook
11151         if TYPE_STRUCTURAL_EQUALITY_P is true for both types.
11152
11153 2008-08-05  Richard Henderson  <rth@redhat.com>
11154
11155         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Check .cfi_personality.
11156         * configure: Rebuild.
11157
11158 2008-08-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11159
11160         PR tree-opt/37024
11161         * tree-tailcall.c (process_assignment): Use gimple_assign_cast_p
11162         instead of IS_CONVERT_EXPR_CODE_P for seeing if the assignment
11163         is a conversion.
11164
11165 2008-08-05  Richard Henderson  <rth@redhat.com>
11166
11167         * Makefile.in (c-cppbuiltin.o): Depend on debug.h.
11168         * c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM.
11169         * doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it.
11170         * common.opt (fdwarf2-cfi-asm): New.
11171         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): New.
11172         * config.in, configure: Rebuild.
11173         * dwarf2asm.c (dw2_asm_output_data_raw): New.
11174         (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw):
11175         New.
11176         (dw2_force_const_mem): Externalize.
11177         * dwarf2asm.h: Update.
11178         * dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't
11179         generate a real label.
11180         (output_cfi_directive): New.
11181         (add_fde_cfi): If flag_dwarf2_cfi_asm, use it.
11182         (output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm.
11183         (dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality,
11184         and .cfi_lsda.
11185         (dwarf2out_end_epilogue): Emit .cfi_endproc.
11186         (output_loc_operands_raw, output_loc_sequence_raw): New.
11187         (output_cfa_loc_raw): New.
11188
11189 2008-08-05  Paul Brook  <paul@codesourcery.com>
11190
11191         * doc/invoke.texi: Document new ARM -mfpu= and -mcpu= options.
11192         * config/arm/arm.c (all_fpus): Add vfpv3 and vfpv3-d16.
11193         (fp_model_for_fpu): Add entry for FPUTYPE_VFP3D16.
11194         (arm_file_start): Add FPUTYPE_VFP3D16.  Rename vfp3 to vfpv3.
11195         * config/arm/arm.h (TARGET_VFPD32): Define.
11196         (TARGET_VFP3): Use TARGET_VFPD32.
11197         (fputype): Add FPUTYPE_VFP3D16.
11198         (LAST_VFP_REGNUM): Use TARGET_VFPD32.
11199         * config/arm/constraints.md ("w"): Use TARGET_VFPD32.
11200         * config/arm/arm-cores.def: Add cortex-r4f.
11201         * config/arm/arm-tune.md: Regenerate.
11202
11203 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11204
11205         * config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus.
11206         Reword some comments throughout the file.
11207
11208         (MFC_MIN_DMA_LIST_ELEMENTS): New define.
11209         (MFC_MAX_DMA_LIST_ELEMENTS): Likewise.
11210         (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of
11211         MFC_MIN_DMA_LIST_ELEMENTS.
11212         (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of
11213         MFC_MAX_DMA_LIST_ELEMENTS.
11214
11215         (MFC_START_ENABLE): Remove PPU-only define.
11216         (MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise.
11217         (MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise.
11218
11219         (MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants.
11220         (MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise.
11221         (MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise.
11222         (MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise.
11223         (MFC_GETB_CMD, MFC_GETF_CMD): Likewise.
11224         (MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise.
11225         (MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise.
11226
11227         (MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines.
11228         (MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise.
11229         (mfc_sdcrt, mfc_sdcrtst): Likewise.
11230         (mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise.
11231
11232         (spu_read_machine_status): Fix typo.
11233
11234 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11235
11236         * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized
11237         SUBREG of multi-word hard register.
11238         * config/spu/spu.c (valid_subreg): Likewise.
11239         (adjust_operand): Handle SUBREGs of multi-word hard registers.
11240
11241 2008-08-04  Richard Guenther  <rguenther@suse.de>
11242
11243         * tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add
11244         the candidate with the stripped base if that base is different
11245         from the original base even for offset zero.
11246
11247 2008-08-04  Richard Guenther  <rguenther@suse.de>
11248
11249         PR middle-end/36691
11250         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly
11251         check for no_overflow.
11252
11253 2008-08-04  Richard Guenther  <rguenther@suse.de>
11254
11255         * tree-vect-transform.c (vectorizable_call): Fix tuplification.
11256
11257 2008-08-04  Paul Brook  <paul@codesourcery.com>
11258
11259         * cofig/arm/arm.c (thumb_core_reg_alloc_order): New.
11260         (arm_order_regs_for_local_alloc): New function.
11261         * config/arm/arm-protos.h (arm_order_regs_for_local_alloc): Add
11262         prototype.
11263         * config/arm/arm.h (ORDER_REGS_FOR_LOCAL_ALLOC): Define.
11264
11265 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
11266
11267         PR target/37012
11268         * config/i386/i386.c (ix86_expand_prologue): Use UNITS_PER_WORD
11269         instead of STACK_BOUNDARY / BITS_PER_UNIT to align stack.
11270         (ix86_expand_epilogue): Likewise.
11271
11272 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
11273
11274         * config/i386/i386.c (ix86_compute_frame_layout): Fix a typo
11275         in comments.
11276
11277 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
11278
11279         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x
11280         to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES.
11281         (*movv2sf_internal_rex64): Ditto.
11282
11283 2008-08-03  Jan Hubicka  <jh@suse.cz>
11284
11285         * optabs.c (expand_binop, expand_builtin_pow, expand_builtin_powi,
11286         expand_builtin_strcat): Upse optimize_insn_for_speed predicate.
11287         * expmed.c (expand_smod_pow2): Likewise.
11288
11289 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
11290
11291         PR target/36992
11292         * config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
11293         alternative 0 of operand 1.
11294         (*vec_concatv2di_rex64_sse): Ditto.
11295         (*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
11296         of operand 1.
11297         (*sse2_storeq_rex64): Penalize allocation of "r" registers.
11298         * config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation
11299         of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
11300         (*movv2sf_internal_rex64): Ditto.
11301
11302 2008-08-02  Richard Guenther  <rguenther@suse.de>
11303
11304         PR target/35252
11305         * config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators.
11306         (ssedoublesizemode): New mode attribute.
11307         (sse_shufps): Call gen_sse_shufps_v4sf.
11308         (sse_shufps_1): Macroize.
11309         (sse2_shufpd): Call gen_Sse_shufpd_v2df.
11310         (sse2_shufpd_1): Macroize.
11311         (vec_extract_odd, vec_extract_even): New expanders.
11312         (vec_interleave_highv4sf, vec_interleave_lowv4sf,
11313         vec_interleave_highv2df, vec_interleave_lowv2df): Likewise.
11314         * i386.c (ix86_expand_vector_init_one_nonzero): Call
11315         gen_sse_shufps_v4sf instead of gen_sse_shufps_1.
11316         (ix86_expand_vector_set): Likewise.
11317         (ix86_expand_reduc_v4sf): Likewise.
11318
11319 2008-08-01  Doug Kwan  <dougkwan@google.com>
11320
11321         * matrix-reorg.c: Re-enable all code.
11322         (struct malloc_call_data): Change CALL_STMT to gimple type.
11323         (collect_data_for_malloc_call): Tuplify.
11324         (struct access_site_info): Change STMT to gimple type.
11325         (struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT,
11326         and MALLOC_FOR_LEVEL to gimple and gimple pointer type.
11327         (struct free_info): Change STMT to gimple type.
11328         (struct matrix_access_phi_node):  Change PHI to gimple type.
11329         (get_inner_of_cast_expr): Remove.
11330         (may_flatten_matrices_1): Tuplify.
11331         (may_flatten_matrices): Ditto.
11332         (mark_min_matrix_escape_level): Ditto.
11333         (ssa_accessed_in_tree): Refactor statement RHS related code into ...
11334         (ssa_accessed_in_call_rhs): New
11335         (ssa_accessed_in_assign_rhs): New
11336         (record_access_alloc_site_info): Tuplify.
11337         (add_allocation_site): Ditto.
11338         (analyze_matrix_allocation_site): Ditto.
11339         (analyze_transpose): Ditto.
11340         (get_index_from_offset): Ditto.
11341         (update_type_size): Ditto.
11342         (analyze_accesses_for_call_expr): Tuplify and renamed into ...
11343         (analyze_accesses_for_call_stmt): New. Also handle LHS of a call.
11344         (analyze_accesses_for_phi_node): Tuplify.
11345         (analyze_accesses_for_modify_stmt): Tuplify and renamed into ...
11346         (analyze_accesses_for_assign_stmt): Remove code for handling call LHS.
11347         (analyze_matrix_accesses): Tuplify.
11348         (check_var_data): New call-back type for check_var_notmodified_p.
11349         (check_var_notmodified_p): Tuplify and use call-back struct to
11350         return statement found.
11351         (can_calculate_expr_before_stmt): Factor out statement related code
11352         into ...
11353         (can_calculate_stmt_before_stmt): New.
11354         (check_allocation_function): Tuplify.
11355         (find_sites_in_func): Ditto.
11356         (record_all_accesses_in_func): Ditto.
11357         (transform_access_sites): Ditto.
11358         (transform_allocation_sites): Ditto.
11359         (matrix_reorg): Re-enable.
11360         (gate_matrix_reorg): Re-enable.
11361
11362 2008-08-01  Jakub Jelinek  <jakub@redhat.com>
11363
11364         * dwarf2out.c (compute_barrier_args_size): Set barrier_args_size
11365         for labels for which it hasn't been set yet.  If it has been set,
11366         stop walking insns and continue with next worklist item.
11367         (dwarf2out_stack_adjust): Don't call compute_barrier_args_size
11368         if the only BARRIER is at the very end of a function.
11369
11370 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
11371
11372         * cfgexpand.c (expand_stack_alignment): Assert that
11373         stack_realign_drap and drap_rtx must match.
11374
11375         * function.c (instantiate_new_reg): If DRAP is used to realign
11376         stack, replace virtual_incoming_args_rtx with internal arg
11377         pointer.
11378
11379 2008-08-01  Richard Guenther  <rguenther@suse.de>
11380
11381         * tree-ssa-pre.c (fini_pre): Take in_fre parameter.  Free
11382         loop information only if we initialized it.
11383         (execute_pre): Call fini_pre with in_fre.
11384         * tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump
11385         if we do not unroll because we hit max-completely-peeled-insns.
11386         Use our estimation for consistency, do allow shrinking.
11387
11388 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
11389
11390         * config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY
11391         with MIN_STACK_BOUNDARY.
11392         (ix86_update_stack_boundary): Likewise.
11393         (ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of
11394         STACK_BOUNDARY.
11395
11396         * config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ...
11397         (MIN_STACK_BOUNDARY): This.
11398
11399 2008-08-01  Richard Guenther  <rguenther@suse.de>
11400
11401         PR middle-end/36997
11402         * gimplify.c (gimplify_call_expr): Set error_mark_node on GS_ERROR.
11403
11404 2008-08-01  Richard Guenther  <rguenther@suse.de>
11405
11406         PR tree-optimization/36988
11407         * tree-ssa-ccp.c (ccp_fold): Conversions of constants only
11408         do not matter if that doesn't change volatile qualification.
11409
11410 2008-08-01  Paolo Bonzini  <bonzini@gnu.org>
11411
11412         * configure.ac: Do not generate libada-mk.  Do not subst
11413         host_cc_for_libada.
11414         * libada-mk.in: Remove.
11415         * Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars.
11416         * configure: Regenerate.
11417
11418 2008-08-01  Basile Starynkevitch  <basile@starynkevitch.net>
11419
11420         * tree-pass.h: Added comment about not dumping passes with name
11421         starting with star in struct opt_pass.
11422         * passes.c (register_dump_files_1): Don't do dump for a pass with
11423         name starting with star.
11424         * doc/passes.texi (Pass manager): Mention pass names and special
11425         meaning of star prefix to avoid dump.
11426
11427 2008-07-31  Adam Nemet  <anemet@caviumnetworks.com>
11428
11429         * config.gcc (mipsisa64r2*-*-linux*): New configuration.  Set ISA
11430         to MIPS64r2.
11431         * config/mips/mips.h (GENERATE_MIPS16E): Update comment.
11432         (ISA_MIPS64R2): New macro.
11433         (TARGET_CPU_CPP_BUILTINS, MULTILIB_ISA_DEFAULT): Handle it.
11434         (ISA_HAS_64BIT_REGS, ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE,
11435         ISA_HAS_8CC, ISA_HAS_FP4, ISA_HAS_PAIRED_SINGLE,
11436         ISA_HAS_MADD_MSUB, ISA_HAS_NMADD4_NMSUB4, ISA_HAS_CLZ_CLO,
11437         ISA_HAS_ROR, ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX, ISA_HAS_SEB_SEH,
11438         ISA_HAS_EXT_INS, ISA_HAS_MXHC1, ISA_HAS_HILO_INTERLOCKS,
11439         ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Return true for ISA_MIPS64R2.
11440         (MIPS_ISA_LEVEL_SPEC, ASM_SPEC, LINK_SPEC): Handle -mips64r2.
11441         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF):
11442         Move up to keep list alphabetically sorted.
11443         (TUNE_20KC, TUNE_24K, TUNE_74K, TUNE_LOONGSON_2EF): Likewise.
11444         * config/mips/mips.c (mips_cpu_info_table): Add default MIPS64r2
11445         processor.
11446         * doc/invoke.texi (MIPS Options): Add -mips64r2.
11447         (-march=@var{arch}): Add mips64r2.
11448
11449 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
11450
11451         * config/i386/darwin.h (MAIN_STACK_BOUNDARY): Define to 128.
11452
11453 2008-07-31  Steve Ellcey  <sje@cup.hp.com>
11454
11455         * expr.c (expand_assignment): Check for complete type.
11456
11457 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
11458
11459         PR debug/36977
11460         * cfgexpand.c (expand_stack_alignment): Set stack_realign_tried.
11461
11462         * dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried
11463         for stack alignment.
11464
11465         * function.h (rtl_data): Add stack_realign_tried.  Update comments.
11466
11467 2008-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
11468
11469         * config/sh/sh.c (sh_canonical_va_list_type): Remove.
11470         (TARGET_CANONICAL_VA_LIST_TYPE): Remove.
11471
11472 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
11473
11474         PR rtl-optimization/36419
11475         * dwarf2out.c (barrier_args_size): New variable.
11476         (compute_barrier_args_size, compute_barrier_args_size_1): New
11477         functions.
11478         (dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size
11479         if not called yet in the current function, use barrier_args_size
11480         array to find the new args_size value.
11481         (dwarf2out_frame_debug): Free and clear barrier_args_size.
11482
11483 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
11484
11485         PR debug/36980
11486         * dwarf2out.c (dwarf2out_frame_debug_expr): Move rule 17 before
11487         rule 19.
11488
11489 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
11490
11491         PR debug/36976
11492         * dwarf2out.c (dwarf2out_args_size_adjust): New.
11493         (dwarf2out_stack_adjust): Use it.
11494         (dwarf2out_frame_debug_expr): Likewise.
11495
11496 2008-07-31  Richard Guenther  <rguenther@suse.de>
11497
11498         PR tree-optimization/36978
11499         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Do not fold
11500         the generated condition.
11501
11502 2008-07-31  Richard Guenther  <rguenther@suse.de>
11503
11504         * passes.c (init_optimization_passes): Always call
11505         pass_early_warn_uninitialized.
11506         * opts.c (decode_options): Do not warn about -Wuninitialized at -O0.
11507         * doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0.
11508         * doc/passes.texi (Warn for uninitialized variables): Adjust.
11509
11510 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
11511
11512         PR c/36970
11513         * builtins.c (maybe_emit_free_warning): New function.
11514         (expand_builtin): Process BUILT_IN_FREE even at -O0.  Call
11515         maybe_emit_free_warning for BUILT_IN_FREE.
11516
11517         PR debug/36278
11518         * dwarf2out.c (get_context_die): New function.
11519         (force_decl_die, force_type_die): Use it.
11520         (dwarf2out_imported_module_or_decl): Likewise.  If base_type_die
11521         returns NULL, force generation of DW_TAG_typedef and put that into
11522         DW_AT_import.
11523
11524         PR preprocessor/36649
11525         * c-pch.c (c_common_read_pch): Save and restore
11526         line_table->trace_includes across PCH restore.
11527
11528 2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>
11529
11530         PR ada/36554
11531         * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.
11532
11533 2008-07-30  Rafael Ávila de Espíndola  <espindola@google.com>
11534
11535         PR 36974
11536         * final.c (call_from_call_insn): Handle COND_EXEC.
11537
11538 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
11539
11540         * builtins.c (std_gimplify_va_arg_expr): Replace
11541         PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT.
11542         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
11543
11544 2008-07-30  Joey Ye  <joey.ye@intel.com>
11545             H.J. Lu  <hongjiu.lu@intel.com>
11546
11547         * builtins.c (expand_builtin_setjmp_receiver): Replace
11548         virtual_incoming_args_rtx with crtl->args.internal_arg_pointer.
11549         (expand_builtin_apply_args_1): Likewise.
11550         (expand_builtin_longjmp): Need DRAP for stack alignment.
11551         (expand_builtin_apply): Likewise.
11552
11553         * caller-save.c (setup_save_areas): Call assign_stack_local_1
11554         instead of assign_stack_local to allow alignment reduction.
11555
11556         * calls.c (emit_call_1): Need DRAP for stack alignment if
11557         return pops.
11558         (expand_call): Replace virtual_incoming_args_rtx with
11559         crtl->args.internal_arg_pointer.
11560         * stmt.c (expand_nl_goto_receiver): Likewise.
11561
11562         * cfgexpand.c (get_decl_align_unit): Estimate stack variable
11563         alignment and store to stack_alignment_estimated and
11564         max_used_stack_slot_alignment.
11565         (expand_one_var): Likewise.
11566         (expand_stack_alignment): New function.
11567         (tree_expand_cfg): Initialize max_used_stack_slot_alignment
11568         and stack_alignment_estimated fields in rtl_data.  Call
11569         expand_stack_alignment at end.
11570
11571         * defaults.h (INCOMING_STACK_BOUNDARY): New.
11572         (MAX_STACK_ALIGNMENT): Likewise.
11573         (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise.
11574         (SUPPORTS_STACK_ALIGNMENT): Likewise.
11575
11576         * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for
11577         stack alignment when generating virtual registers.
11578
11579         * function.c (assign_stack_local): Renamed to ...
11580         (assign_stack_local_1): This.  Add a parameter to indicate
11581         if it is OK to reduce alignment.
11582         (assign_stack_local): Use it.
11583         (instantiate_new_reg): Instantiate virtual incoming args rtx
11584         to vDRAP if stack realignment and DRAP is needed.
11585         (assign_parms): Collect parameter/return type alignment and
11586         contribute to stack_alignment_estimated.
11587         (locate_and_pad_parm): Likewise.
11588         (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx
11589         with crtl->args.internal_arg_pointer.
11590
11591         * function.h (rtl_data): Add new field drap_reg,
11592         max_used_stack_slot_alignment, stack_alignment_estimated,
11593         stack_realign_needed, need_drap, stack_realign_processed and
11594         stack_realign_finalized.
11595         (stack_realign_fp): New macro.
11596         (stack_realign_drap): Likewise.
11597
11598         * global.c (compute_regsets): Frame pointer is needed when
11599         stack is realigned.  Can eliminate frame pointer when stack is
11600         realigned and dynamic realigned argument pointer isn't used.
11601
11602         * reload1.c (update_eliminables):  Frame pointer is needed
11603         when stack is realigned.
11604         (init_elim_table): Can eliminate frame pointer when stack is
11605         realigned and dynamic realigned argument pointer isn't used.
11606
11607         * rtl.h (assign_stack_local_1): Declare new funtion.
11608
11609         * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New.
11610         (TARGET_GET_DRAP_RTX): Likewise.
11611         (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and
11612         TARGET_GET_DRAP_RTX.
11613
11614         * target.h (gcc_target): Add update_stack_boundary and get_drap_rtx.
11615
11616         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
11617         STACK_BOUNDARY with MAX_STACK_ALIGNMENT.
11618
11619 2008-07-30  Xuepeng Guo  <xuepeng.guo@intel.com>
11620             H.J. Lu  <hongjiu.lu@intel.com>
11621
11622         * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg,
11623         vdrap_reg, stack_realign and drap_reg_saved.
11624         (add_cfi): Don't allow redefining CFA when DRAP is used.
11625         (reg_save): Handle stack alignment.
11626         (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack
11627         alignment.  Don't generate DWARF information for (set fp sp)
11628         when DRAP is used.
11629         (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg
11630         to INVALID_REGNUM.
11631         (int_loc_descriptor): Move prototype forward.  Also define if
11632         DWARF2_UNWIND_INFO is true.
11633         (output_cfa_loc): Handle DW_CFA_expression.
11634         (build_cfa_aligned_loc): New.
11635         (based_loc_descr): Update assert for stack realign.  For local
11636         variables, use sp+offset when stack is aligned without drap and
11637         fp+offset when stack is aligned with drap.  For arguments, use
11638         cfa+offset when drap is used to align stack.
11639
11640 2008-07-30  Joey Ye  <joey.ye@intel.com>
11641             H.J. Lu  <hongjiu.lu@intel.com>
11642
11643         * config/i386/i386.c (ix86_force_align_arg_pointer_string):
11644         Break long line.
11645         (ix86_gen_andsp): New.
11646         (ix86_user_incoming_stack_boundary): Likewise.
11647         (ix86_default_incoming_stack_boundary): Likewise.
11648         (ix86_incoming_stack_boundary): Likewise.
11649         (ix86_can_eliminate): Likewise.
11650         (find_drap_reg): Likewise.
11651         (ix86_update_stack_boundary): Likewise.
11652         (ix86_get_drap_rtx): Likewise.
11653         (ix86_finalize_stack_realign_flags): Likewise.
11654         (TARGET_UPDATE_STACK_BOUNDARY): Likewise.
11655         (TARGET_GET_DRAP_RTX): Likewise.
11656         (override_options): Overide option value for new options.
11657         (ix86_function_ok_for_sibcall): Remove check for
11658         force_align_arg_pointer.
11659         (ix86_handle_cconv_attribute): Likewise.
11660         (ix86_function_regparm): Likewise.
11661         (setup_incoming_varargs_64): Don't set stack_alignment_needed here.
11662         (ix86_va_start): Replace virtual_incoming_args_rtx with
11663         crtl->args.internal_arg_pointer.
11664         (ix86_select_alt_pic_regnum): Check DRAP register.
11665         (ix86_save_reg): Replace force_align_arg_pointer with drap_reg.
11666         (ix86_compute_frame_layout): Compute frame layout wrt stack
11667         realignment.
11668         (ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx.
11669         (ix86_expand_prologue): Decide if stack realignment is needed
11670         and generate prologue code accordingly.
11671         (ix86_expand_epilogue): Generate epilogue code wrt stack
11672         realignment is really needed or not.
11673
11674         * config/i386/i386.h (MAIN_STACK_BOUNDARY): New.
11675         (ABI_STACK_BOUNDARY): Likewise.
11676         (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise.
11677         (STACK_REALIGN_DEFAULT): Likewise.
11678         (INCOMING_STACK_BOUNDARY): Likewise.
11679         (MAX_STACK_ALIGNMENT): Likewise.
11680         (ix86_incoming_stack_boundary): Likewise.
11681         (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed.
11682         (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG.
11683         (CAN_ELIMINATE): Defined with ix86_can_eliminate.
11684         (machine_function): Remove force_align_arg_pointer.
11685
11686         * config/i386/i386.md (BX_REG): New.
11687         (R13_REG): Likewise.
11688
11689         * config/i386/i386.opt (mforce_drap): New.
11690         (mincoming-stack-boundary): Likewise.
11691         (mstackrealign): Add Init(-1).
11692
11693         * config/i386/i386-protos.h (ix86_can_eliminate): New
11694
11695 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
11696
11697         * doc/extend.texi: Update force_align_arg_pointer.
11698
11699         * doc/invoke.texi: Document -mincoming-stack-boundary.  Update
11700         -mstackrealign.
11701
11702         * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro.
11703         (INCOMING_STACK_BOUNDARY): Likewise.
11704         (TARGET_UPDATE_STACK_BOUNDARY): New target hook.
11705         (TARGET_GET_DRAP_RTX): Likewise.
11706
11707 2008-07-30  Andreas Schwab  <schwab@suse.de>
11708
11709         PR rtl-optimization/36929
11710         * dse.c (replace_inc_dec): Use emit_insn_before instead of
11711         add_insn_before and fix argument order.
11712         (replace_inc_dec_mem): Handle NULL rtx.
11713
11714 2008-07-30  Andrew Jenner  <andrew@codesourcery.com>
11715
11716         * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
11717         function.
11718         (arm_compute_initial_elimination_offset): Use it.
11719         (arm_compute_save_reg_mask): Include static chain save slot when
11720         calculating alignment.
11721         (arm_get_frame_offsets): Ditto.
11722         (thumb1_compute_save_reg_mask): Ensure we have a low register saved
11723         that we can use to decrement the stack when the stack decrement
11724         could be too big for an immediate value in a single insn.
11725         (thumb1_expand_prologue): Avoid using r12 for stack decrement.
11726
11727 2008-07-30  Richard Guenther  <rguenther@suse.de>
11728
11729         PR tree-optimization/36967
11730         * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p.
11731         Release defs of statements we remove.
11732
11733 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
11734
11735         * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
11736         instead of NULL_RTVEC.
11737
11738 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
11739
11740         PR target/35866
11741
11742         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
11743         vector modes.
11744
11745 2008-07-30  Rafael Ávila de Espíndola  <espindola@google.com>
11746
11747         * final.c (call_from_call_insn): New.
11748         (final_scan_insn): Call assemble_external on FUNCTION_DECLs.
11749
11750 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
11751
11752         * configure.ac: Substitute ADA_CFLAGS.
11753         * configure: Regenerate.
11754         * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files.
11755         * Makefile.in: Remove mention of X_* variables.
11756         * config/pa/x-ada-hpux10: Remove.
11757         * config/pa/x-ada: Remove.
11758
11759         * doc/fragments.texi: Update.
11760
11761 2008-07-30  Olivier Hainque  <hainque@adacore.com>
11762
11763         * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
11764         * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
11765         __dso_handle explicitly here.
11766
11767 2008-07-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11768
11769         PR 34389
11770         * c-typeck.c (build_binary_op): Encapsulate code into...
11771         * c-common.c (shorten_binary_op): ...this new function.
11772         (conversion_warning): Use the new function. Handle non-negative
11773         constant in bitwise-and.
11774         * c-common.h (shorten_binary_op): Declare.
11775
11776 2008-07-30  Olivier Hainque  <hainque@adacore.com>
11777
11778         * scan.c (make_sstring_space): Add explicit conversions of
11779         allocator's return value.
11780         * fix-header.c (recognized_function): Likewise.
11781
11782 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11783
11784         * doc/cpp.texi: Update to GFDL 1.2.
11785         * doc/gcc.texi: Do not list GPL as Invariant Section.
11786         * doc/gccint.texi: Likewise.  Update copyright years.
11787         * doc/install.texi: Update copyright years.
11788
11789 2008-07-30  Alan Modra  <amodra@bigpond.net.au>
11790
11791         PR target/36955
11792         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
11793         a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.
11794
11795 2008-07-29  Jan Hubicka  <jh@suse.cz>
11796
11797         * c-decl.c (merge_decls): Do not handle DECL_INLINE.
11798         (grokdeclarator): Likewise.
11799         * langhooks.c (lhd_warn_unused_global_decl): Use
11800         DECL_DECLARED_INLINE_P.
11801         * print-tree.c (print_node): Remove DECL_INLINE check.
11802
11803 2008-07-29  Richard Guenther  <rguenther@suse.de>
11804
11805         PR tree-optimization/36945
11806         * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
11807         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
11808         Record invariant addresses un-decomposed.
11809         (copy_reference_ops_from_call): Record reference call
11810         arguments properly.  Simplify.
11811         * tree-ssa-pre.c (create_component_ref_by_pieces_1): New
11812         helper split out from ...
11813         (create_component_ref_by_pieces): ... here.  Simplify.
11814         Prepare for recursive invocation for call arguments.
11815         (create_expression_by_pieces): Adjust call to
11816         create_component_ref_by_pieces.
11817         (compute_avail): Process operand 2 of reference ops.
11818
11819 2008-07-29  Richard Guenther  <rguenther@suse.de>
11820
11821         * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for OBJ_TYPE_REF.
11822
11823 2008-07-29  Jakub Jelinek  <jakub@redhat.com>
11824
11825         * c-format.c (check_format_types): Revert unwanted checkin.
11826
11827 2008-07-29  Jan Hubicka  <jh@suse.cz>
11828
11829         * flags.h (flag_really_no_inline): Remove.
11830         * cgraph.c (cgraph_function_possibly_inlined_p): Simplify.
11831         * toplev.c (flag_really_no_inline): Remove.
11832         * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline.
11833         * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline.
11834         (cgraph_decide_inlining_incrementally): Likewise.
11835         (compute_inline_parameters): Likewise.
11836         * opts.c (decode_options): Simplify.
11837         * c-opts.c (c_common_post_options): Do not set flag_no_inline.
11838         * common.opt (finline): Initialize to 1.
11839         * tree-inline.c (inlinable_function_p): Check flag_no_inline.
11840
11841 2008-07-29  Jan Hubicka  <jh@suse.cz>
11842
11843         * predict.c (always_optimize_for_size_p): New function.
11844         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
11845         optimize_edge_for_size_p, optimize_edge_for_speed_p,
11846         optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
11847         functions.
11848         (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
11849         * function.c (prepare_function_start): Set default profile.
11850         * function.h (rtl_data): Add maybe_hot_insn_p.
11851         * cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
11852         (construct_exit_block): Likewise.
11853         (tree_expand_cfg): Likewise.
11854         * basic-block.h
11855         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
11856         optimize_edge_for_size_p, optimize_edge_for_speed_p,
11857         optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
11858         (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
11859         Declare.
11860
11861 2008-07-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11862
11863         PR 34985
11864         * c-decl.c (merge_decls): Merge USED flags.
11865
11866 2008-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
11867
11868         * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
11869         valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit,
11870         next_stack, lab_false and lab_over trees.
11871
11872 2008-07-28  Richard Guenther  <rguenther@suse.de>
11873
11874         PR tree-optimization/36957
11875         * tree-flow.h (tree_ssa_useless_type_conversion): Remove.
11876         (useless_type_conversion_p): Remove.
11877         (types_compatible_p): Remove.
11878         * gimple.h (tree_ssa_useless_type_conversion): Declare.
11879         (useless_type_conversion_p): Declare.
11880         (types_compatible_p): Declare.
11881         (gimple_expr_type): Return the base type only if it is
11882         trivially convertible to the subtype.
11883
11884 2008-07-28  Andreas Tobler  <a.tobler@schweiz.org>
11885
11886         * configure.ac: Use the m4_do macro to concatenate the warnings into
11887         one string in ACX_PROG_CC_WARNING_OPTS,
11888         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and
11889         ACX_PROG_CC_WARNINGS_ARE_ERRORS.
11890         * configure: Regenerate.
11891
11892 2008-07-28  Richard Guenther  <rguenther@suse.de>
11893
11894         * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code.
11895         (insert_fake_stores): Remove.
11896         (realify_fake_stores): Likewise.
11897         (execute_pre): Remove dead code.
11898         * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary case.
11899         (find_func_aliases): Deal with it here instead.
11900         Re-enable gcc_unreachable call.
11901
11902 2008-07-28  Richard Guenther  <rguenther@suse.de>
11903
11904         Merge from gimple-tuples-branch.
11905
11906         * ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
11907         * gimple.def: New file.
11908         * gsstruct.def: Likewise.
11909         * gimple-iterator.c: Likewise.
11910         * gimple-pretty-print.c: Likewise.
11911         * tree-gimple.c: Removed.  Merged into ...
11912         * gimple.c: ... here.  New file.
11913         * tree-gimple.h: Removed.  Merged into ...
11914         * gimple.h: ... here.  New file.
11915
11916         * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
11917         * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
11918         --enable-checking=gimple flag.
11919         * config.in: Likewise.
11920         * configure: Regenerated.
11921
11922         * tree-ssa-operands.h: Tuplified.
11923         * tree-vrp.c: Likewise.
11924         * tree-loop-linear.c: Likewise.
11925         * tree-into-ssa.c: Likewise.
11926         * tree-ssa-loop-im.c: Likewise.
11927         * tree-dump.c: Likewise.
11928         * tree-complex.c: Likewise.
11929         * cgraphbuild.c: Likewise.
11930         * tree-ssa-threadupdate.c: Likewise.
11931         * tree-ssa-loop-niter.c: Likewise.
11932         * tree-pretty-print.c: Likewise.
11933         * tracer.c: Likewise.
11934         * gengtype.c: Likewise.
11935         * tree-loop-distribution.c: Likewise.
11936         * tree-ssa-loop-unswitch.c: Likewise.
11937         * cgraph.c: Likewise.
11938         * cgraph.h: Likewise.
11939         * tree-ssa-loop-manip.c: Likewise.
11940         * value-prof.c: Likewise.
11941         * tree-ssa-loop-ch.c: Likewise.
11942         * tree-tailcall.c: Likewise.
11943         * value-prof.h: Likewise.
11944         * tree.c: Likewise.
11945         * tree.h: Likewise.
11946         * tree-pass.h: Likewise.
11947         * ipa-cp.c: Likewise.
11948         * tree-scalar-evolution.c: Likewise.
11949         * tree-scalar-evolution.h: Likewise.
11950         * target.h: Likewise.
11951         * lambda-mat.c: Likewise.
11952         * tree-phinodes.c: Likewise.
11953         * diagnostic.h: Likewise.
11954         * builtins.c: Likewise.
11955         * tree-ssa-alias-warnings.c: Likewise.
11956         * cfghooks.c: Likewise.
11957         * fold-const.c: Likewise.
11958         * cfghooks.h: Likewise.
11959         * omp-low.c: Likewise.
11960         * tree-ssa-dse.c: Likewise.
11961         * ipa-reference.c: Likewise.
11962         * tree-ssa-uncprop.c: Likewise.
11963         * toplev.c: Likewise.
11964         * tree-gimple.c: Likewise.
11965         * tree-gimple.h: Likewise.
11966         * tree-chrec.c: Likewise.
11967         * tree-chrec.h: Likewise.
11968         * tree-ssa-sccvn.c: Likewise.
11969         * tree-ssa-sccvn.h: Likewise.
11970         * cgraphunit.c: Likewise.
11971         * tree-ssa-copyrename.c: Likewise.
11972         * tree-ssa-ccp.c: Likewise.
11973         * tree-ssa-loop-ivopts.c: Likewise.
11974         * tree-nomudflap.c: Likewise.
11975         * tree-call-cdce.c: Likewise.
11976         * ipa-pure-const.c: Likewise.
11977         * c-format.c: Likewise.
11978         * tree-stdarg.c: Likewise.
11979         * tree-ssa-math-opts.c: Likewise.
11980         * tree-ssa-dom.c: Likewise.
11981         * tree-nrv.c: Likewise.
11982         * tree-ssa-propagate.c: Likewise.
11983         * ipa-utils.c: Likewise.
11984         * tree-ssa-propagate.h: Likewise.
11985         * tree-ssa-alias.c: Likewise.
11986         * gimple-low.c: Likewise.
11987         * tree-ssa-sink.c: Likewise.
11988         * ipa-inline.c: Likewise.
11989         * c-semantics.c: Likewise.
11990         * dwarf2out.c: Likewise.
11991         * expr.c: Likewise.
11992         * tree-ssa-loop-ivcanon.c: Likewise.
11993         * predict.c: Likewise.
11994         * tree-ssa-loop.c: Likewise.
11995         * tree-parloops.c: Likewise.
11996         * tree-ssa-address.c: Likewise.
11997         * tree-ssa-ifcombine.c: Likewise.
11998         * matrix-reorg.c: Likewise.
11999         * c-decl.c: Likewise.
12000         * tree-eh.c: Likewise.
12001         * c-pretty-print.c: Likewise.
12002         * lambda-trans.c: Likewise.
12003         * function.c: Likewise.
12004         * langhooks.c: Likewise.
12005         * ebitmap.h: Likewise.
12006         * tree-vectorizer.c: Likewise.
12007         * function.h: Likewise.
12008         * langhooks.h: Likewise.
12009         * tree-vectorizer.h: Likewise.
12010         * ipa-type-escape.c: Likewise.
12011         * ipa-type-escape.h: Likewise.
12012         * domwalk.c: Likewise.
12013         * tree-if-conv.c: Likewise.
12014         * profile.c: Likewise.
12015         * domwalk.h: Likewise.
12016         * tree-data-ref.c: Likewise.
12017         * tree-data-ref.h: Likewise.
12018         * tree-flow-inline.h: Likewise.
12019         * tree-affine.c: Likewise.
12020         * tree-vect-analyze.c: Likewise.
12021         * c-typeck.c: Likewise.
12022         * gimplify.c: Likewise.
12023         * coretypes.h: Likewise.
12024         * tree-ssa-phiopt.c: Likewise.
12025         * calls.c: Likewise.
12026         * tree-ssa-coalesce.c: Likewise.
12027         * tree.def: Likewise.
12028         * tree-dfa.c: Likewise.
12029         * except.c: Likewise.
12030         * except.h: Likewise.
12031         * cfgexpand.c: Likewise.
12032         * tree-cfgcleanup.c: Likewise.
12033         * tree-ssa-pre.c: Likewise.
12034         * tree-ssa-live.c: Likewise.
12035         * tree-sra.c: Likewise.
12036         * tree-ssa-live.h: Likewise.
12037         * tree-predcom.c: Likewise.
12038         * lambda.h: Likewise.
12039         * tree-mudflap.c: Likewise.
12040         * ipa-prop.c: Likewise.
12041         * print-tree.c: Likewise.
12042         * tree-ssa-copy.c: Likewise.
12043         * ipa-prop.h: Likewise.
12044         * tree-ssa-forwprop.c: Likewise.
12045         * ggc-page.c: Likewise.
12046         * c-omp.c: Likewise.
12047         * tree-ssa-dce.c: Likewise.
12048         * tree-vect-patterns.c: Likewise.
12049         * tree-ssa-ter.c: Likewise.
12050         * tree-nested.c: Likewise.
12051         * tree-ssa.c: Likewise.
12052         * lambda-code.c: Likewise.
12053         * tree-ssa-loop-prefetch.c: Likewise.
12054         * tree-inline.c: Likewise.
12055         * tree-inline.h: Likewise.
12056         * tree-iterator.c: Likewise.
12057         * tree-optimize.c: Likewise.
12058         * tree-ssa-phiprop.c: Likewise.
12059         * tree-vect-transform.c: Likewise.
12060         * tree-object-size.c: Likewise.
12061         * tree-outof-ssa.c: Likewise.
12062         * cfgloop.c: Likewise.
12063         * system.h: Likewise.
12064         * tree-profile.c: Likewise.
12065         * cfgloop.h: Likewise.
12066         * c-gimplify.c: Likewise.
12067         * c-common.c: Likewise.
12068         * tree-vect-generic.c: Likewise.
12069         * tree-flow.h: Likewise.
12070         * c-common.h: Likewise.
12071         * basic-block.h: Likewise.
12072         * tree-ssa-structalias.c: Likewise.
12073         * tree-switch-conversion.c: Likewise.
12074         * tree-ssa-structalias.h: Likewise.
12075         * tree-cfg.c: Likewise.
12076         * passes.c: Likewise.
12077         * ipa-struct-reorg.c: Likewise.
12078         * ipa-struct-reorg.h: Likewise.
12079         * tree-ssa-reassoc.c: Likewise.
12080         * cfgrtl.c: Likewise.
12081         * varpool.c: Likewise.
12082         * stmt.c: Likewise.
12083         * tree-ssanames.c: Likewise.
12084         * tree-ssa-threadedge.c: Likewise.
12085         * langhooks-def.h: Likewise.
12086         * tree-ssa-operands.c: Likewise.
12087         * config/alpha/alpha.c: Likewise.
12088         * config/frv/frv.c: Likewise.
12089         * config/s390/s390.c: Likewise.
12090         * config/m32c/m32c.c: Likewise.
12091         * config/m32c/m32c-protos.h: Likewise.
12092         * config/spu/spu.c: Likewise.
12093         * config/sparc/sparc.c: Likewise.
12094         * config/i386/i386.c: Likewise.
12095         * config/sh/sh.c: Likewise.
12096         * config/xtensa/xtensa.c: Likewise.
12097         * config/stormy16/stormy16.c: Likewise.
12098         * config/ia64/ia64.c: Likewise.
12099         * config/rs6000/rs6000.c: Likewise.
12100         * config/pa/pa.c: Likewise.
12101         * config/mips/mips.c: Likewise.
12102
12103 2008-07-28  Simon Baldwin  <simonb@google.com>
12104
12105         * c-pragma.c (handle_pragma_message): New function.
12106         (init_pragma): Register handle_pragma_message.
12107         * doc/extend.texi (Diagnostic Pragmas): Added #pragma message
12108         documentation.
12109
12110 2008-07-27  Victor Kaplansky  <victork@il.ibm.com>
12111
12112         PR tree-optimization/35252
12113         * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
12114         REALPART_EXPR to be considered as same load operation.
12115
12116 2008-07-27  Eric Botcazou  <ebotcazou@adacore.com>
12117
12118         PR tree-optimization/36830
12119         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
12120         (expressions_equal_p): Return false if only one operand is null.
12121
12122 2008-07-26  Gerald Pfeifer  <gerald@pfeifer.com>
12123
12124         * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
12125         version requirements.
12126
12127 2008-07-26  Olivier Hainque  <hainque@adacore.com>
12128
12129         * collect2.c (symkind): New enum.  Symbol kinds we care about.
12130         (is_ctor_dtor): Return symkind instead of int.  Adjust prototype,
12131         code and head comment accordingly.
12132         (scan_prog_file): Use symkind names instead of bare integers.
12133
12134 2008-07-25  Jan Hubicka  <jh@suse.cz>
12135
12136         * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on
12137         DECL_INLINE.
12138         * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
12139         (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
12140         * dojump.c (clear_pending_stack_adjust): Likewise.
12141         * print-tree.c (print_node): Ignore DECL_INLINE.
12142         * tree-inline.c (inlinable_function_p): Likewise.
12143
12144 2008-07-25  Michael Meissner  <gnu@the-meissners.org>
12145
12146         * doc/extend.texi (hot attribute): Document that the hot attribute
12147         turns on -O3 for some ports.
12148         (cold attribute): Document that the cold attribute turns on -Os
12149         for some ports
12150
12151         * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
12152         reflect function specific option support.
12153
12154         * target.h (struct target_option_hooks): Add fields to say whether
12155         the cold attribute implies -Os and the hot attribute implies -O3.
12156
12157         * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
12158         By default, do not turn on -Os for cold functions.
12159         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
12160         not turn on -O3 for hot functions.
12161
12162         * c-common.c (handle_hot_attribute): Use target hook to determine
12163         if hot functions should enable -O3.
12164         (handle_cold_attribute): Use target hook to determine if cold
12165         functions should enable -Os.
12166
12167         * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
12168         (override_options): Move disable scheduling to
12169         optimization_options.
12170         (optimization_options): Disable scheduling here, not
12171         override_options.
12172         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
12173         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
12174
12175         * config/ia64/ia64.c (ia64_override_options): Move setting
12176         scheduling flags to ia64_optimization_options.
12177         (ia64_optimization_options): Disable scheduling options here, and
12178         not in ia64_override_options.
12179         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
12180         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
12181
12182 2008-07-25  H.J. Lu  <hongjiu.lu@intel.com>
12183
12184         PR target/36936
12185         * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
12186
12187 2008-07-25  Martin Jambor  <mjambor@suse.cz>
12188
12189         PR tree-optimization/36926
12190         * ipa-prop.c (ipa_analyze_call_uses): Call
12191         ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
12192
12193 2008-07-25  Joseph Myers  <joseph@codesourcery.com>
12194
12195         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
12196         movv2si_internal): Add mem = reg alternative.
12197
12198 2008-07-25  Andreas Tobler  <a.tobler@schweiz.org>
12199
12200         PR bootstrap/36918
12201         * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
12202         DEFAULT_PCC_STRUCT_RETURN to 127.
12203
12204 2008-07-24  Jan Hubicka  <jh@suse.cz>
12205
12206         * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
12207         (build_cgraph_edges): Likewise.
12208         * cgraph.c (cgraph_node): Do not update assembler hash.
12209         (cgraph_remove_node): Drop non-unit-at-a-time code.
12210         * tree-pass.h (pass_O0_always_inline): Remove.
12211         * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
12212         * toplev.c (process_options): Flag unit-at-a-time does not imply
12213         no section anchors.
12214         * cgraphunit.c: Update comments.
12215         (decide_is_function_needed): Drop non-unit-at-a-time mode.
12216         (cgraph_assemble_pending_functions): Remove.
12217         (cgraph_reset_node): Drop non-unit-at-a-time code.
12218         (cgraph_finalize_function): Likewise.
12219         (cgraph_analyze_function): Likewise.
12220         (cgraph_finalize_compilation_unit): Likewise.
12221         (cgraph_expand_function): Likewise.
12222         (cgraph_optimize): Likesise.
12223         (save_inline_function_body): Likewise.
12224         * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
12225         * tree-ssa-alias.c (maybe_be_aliased): Likewise.
12226         * ipa-inline.c: Update comments.
12227         (enum inlining_mode): remove INLINE_SPEED.
12228         (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
12229         (cgraph_mark_inline_edge): Likewise.
12230         (try_inline): Likewise.
12231         (cgraph_decide_inlining_incrementally): Likewise.
12232         (cgraph_gate_inlining): Remove.
12233         (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
12234         (cgraph_gate_early_inlining): Likewise.
12235         (gate_inline_passes): Remove.
12236         (pass_inline_parameters, pass_ipa_inline): Remove gates.
12237         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
12238         pass_O0_always_inline): Remove.
12239         * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
12240         * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
12241         * opts.c (no_unit_at_a_time_default): Remove.
12242         (decode_options): Remove flag_unit_at_a_time reset and warning.
12243         * opts.h (no_unit_at_a_time_default): Remove.
12244         * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
12245         early in GNU dialect.
12246         (merge_decls): Update comment; drop unit-at-a-time check.
12247         (finish_decl): Likewise.
12248         (grok_declaration): Remove flag_inline_trees code.
12249         (finish_functions): Return on function returning non-void on all
12250         statics.
12251         * ipa-tye-escape.c (gate_type_escape_vars): Remove.
12252         * cfgexpand.c (expand_one_static_var): Remove.
12253         (expand_one_var): Remove expand_one_static_var call.
12254         (expand_used_vars_for_block): Remove flag_unit_a_time check.
12255         * c-opts.c (c_common_post_options): Remove flag_inline_trees code
12256         and flag_unit_at_a-time compatibility checks.
12257         * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
12258         * tree-inline.c (flag_inline_trees): Remove.
12259         (inlinable_function_p): Don't check it.
12260         (expand_call_inline): Remove non-unit-at-a-time code.
12261         * tree-inline.h (flag_inline_trees): Remove.
12262         * tree-optimize.c (execute_early_local_optimizations): Remove
12263         unit-at-a-time checks.
12264         (tree_rest_of_compilation): Likewise.
12265         * combine.c (setup_incoming_promotions): Likewise.
12266         * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
12267         * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
12268         * passes.c (pass_inline_parameters): Update comments; remove
12269         O0_alwaysinline pass.
12270         (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
12271         (execute_one_pass): Likewise.
12272         * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
12273         (ix86_function_sseregparm): Likewise.
12274         * arm.c (arm_function_in_section_p): Likewise.
12275         * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
12276         * varpool.c: Update comments.
12277         (decide_is_variable_needed): Remove unit-at-a-time checks.
12278         (varpool_finalize_decl): Likewise.
12279
12280 2008-07-24  Kaz Kojima  <kkojima@gcc.gnu.org>
12281
12282         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
12283         to 2 instead of -1.
12284         (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal to 2.
12285
12286 2008-07-24  Kai Tietz  <kai.tietz@onevision.com>
12287
12288         * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
12289         imp symbol extension.
12290
12291         2008-07-23  Ian Lance Taylor  <iant@google.com>
12292
12293         * tree-vrp.c (infer_value_range): Ignore asm statements when
12294         looking for memory accesses for -fdelete-null-pointer-checks.
12295
12296 2008-07-24  Ben Elliston  <bje@au.ibm.com>
12297
12298         * config/spu/spu-c.c (__vector_keyword): New variable.
12299         (vector_keyword): Likewise.
12300         (spu_categorize_keyword): New function.
12301         (spu_macro_to_expand): Likewise.
12302         (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
12303         compiling an ISO C dialect.
12304
12305 2008-07-24  Ben Elliston  <bje@au.ibm.com>
12306
12307         * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
12308         conventional usage.
12309
12310 2008-07-23  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
12311
12312         * configure: Regenerate.
12313         * configure.ac: Require texinfo 4.7.
12314         * doc/install.texi: Document texinfo 4.7 requirement.
12315
12316 2008-07-23  Martin Jambor  <mjambor@suse.cz>
12317
12318         * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
12319         rather than for DECL_SAVED_TREE.
12320         * ipa-prop.c: Include diagnostic.h.
12321         (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
12322         thoroughly.
12323         (ipa_detect_param_modifications): Function rewritten from scratch.
12324         (ipa_compute_jump_functions): Changed accesses to modification flags.
12325         (ipa_free_node_params_substructures): Update flags destruction.
12326         (ipa_node_duplication_hook): Update flags duplication.
12327         (ipa_print_all_params_modified): Updated flag access.
12328         * ipa-prop.h (struct ipa_param_flags): New structure.
12329         (struct ipa_node_params): New field modification_analysis_done,
12330         modified_flags changed into param_flags.
12331         (ipa_is_ith_param_modified): Changed to use new flags.
12332         * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
12333
12334         * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
12335         ipa-cp.c and split into two functions.
12336         (ipa_print_node_jump_functions): New function.
12337         (compute_scalar_jump_functions): New function.
12338         (type_like_member_ptr_p): New function.
12339         (compute_pass_through_member_ptrs): New function.
12340         (fill_member_ptr_cst_jump_function): New function.
12341         (determine_cst_member_ptr): New function.
12342         (compute_cst_member_ptr_arguments): New function.
12343         (ipa_compute_jump_functions): Complete rewrite.
12344         * ipa-prop.h (enum jump_func_type): Make explicit that we depend
12345         on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
12346         (struct ipa_member_ptr_cst): New structure.
12347         (union jump_func_value): New field member_cst.
12348         * ipa-cp.c (ipcp_lat_is_insertable): New function.
12349         (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
12350         jump function types.
12351         (ipcp_print_all_lattices): Slight fprintf rearrangement.
12352         (ipcp_print_all_structures): Call ipa_print_all_jump_functions
12353         instead of ipcp_print_all_jump_functions.
12354         (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
12355         only for replacable scalars.
12356
12357         * doc/invoke.texi (Optimize options): Add description of
12358         -findirect-inlining.
12359         * common.opt (flag_indirect_inlining): New flag.
12360         * opts.c (decode_options): Set flag_indirect_inlining when
12361         optimize >= 3.
12362
12363         * ipa-inline.c: Include ipa-prop.h.
12364         (inline_indirect_intraprocedural_analysis): New function.
12365         (inline_generate_summary): Allocate parameter and argument info
12366         structures, call inline_indirect_intraprocedural_analysis on each
12367         node when doing indirect inlining and deallocate indirect inlining
12368         data structures in the end.
12369         * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
12370         (free_all_ipa_structures_after_iinln): New function.
12371         (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be
12372         done.
12373         * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
12374
12375         * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
12376         (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
12377         of computing the frequency separately.
12378         (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
12379         of computing the frequency separately.
12380         * ipa-cp.c (ipcp_print_all_structures): Replace a call to
12381         ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
12382         * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
12383         (ipa_get_stmt_member_ptr_load_param): New function.
12384         (ipa_is_ssa_with_stmt_def): New function.
12385         (ipa_note_param_call): New function.
12386         (ipa_analyze_call_uses): New function.
12387         (ipa_analyze_stmt_uses): New function.
12388         (ipa_analyze_params_uses): New function.
12389         (ipa_free_node_params_substructures): Also free the param_calls linked
12390         list.
12391         (ipa_node_duplication_hook): Also duplicate the param_calls
12392         linked list.
12393         (ipa_print_node_param_flags): New function.
12394         (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
12395         (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
12396         * ipa-prop.h (struct ipa_param_flags): New field called.
12397         (struct ipa_param_call_note): New structure.
12398         (struct ipa_node_params): New fields param_calls and
12399         uses_analysis_done.
12400         (ipa_is_ith_param_called): New function.
12401         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
12402         ipa_analyze_params_uses and dump parameter flags.
12403
12404         * ipa-inline.c (cgraph_decide_recursive_inlining): Call
12405         ipa_propagate_indirect_call_infos if performing indirect inlining,
12406         pass a new parameter new_edges to it.
12407         (add_new_edges_to_heap): New fucntion.
12408         (cgraph_decide_inlining_of_small_functions): New vector
12409         new_indirect_edges for newly found indirect edges , call
12410         ipa_propagate_indirect_call_infos after inlining.
12411         (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
12412         inlining if performing indirect inlining.  Call
12413         free_all_ipa_structures_after_iinln when doing so too.
12414         (inline_generate_summary): Do not call
12415         free_all_ipa_structures_after_iinln here.
12416         * ipa-prop.c (update_jump_functions_after_inlining): New function.
12417         (print_edge_addition_message): New function.
12418         (update_call_notes_after_inlining): New function.
12419         (propagate_info_to_inlined_callees): New function.
12420         (ipa_propagate_indirect_call_infos): New function.
12421         * ipa-prop.h: Include cgraph.h
12422         (struct ipa_param_call_note): Fields reordered, new field processed.
12423         * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
12424         flag indirect_call.
12425         * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
12426         rediscovered call statements.
12427         * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
12428         (dump_cgraph_node): Dump also the indirect_call flag.
12429         (cgraph_clone_edge): Copy also the indirect_call flag.
12430         * tree-inline.c (copy_bb): Do not check for fndecls from call
12431         expressions, check for edge availability when moving clones.
12432         (get_indirect_callee_fndecl): New function.
12433         (expand_call_inline): If callee declaration is not apprent from
12434         the statement, try calling get_indirect_callee_fndecl.  Do not
12435         issue warnings or call sorry when not inlinings an indirect edge.
12436         * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
12437
12438         * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
12439         bit more frandly to matching.
12440         * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
12441         * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
12442         * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
12443
12444 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
12445
12446         PR 36907
12447         * opth-gen.awk: Suppress function specific features when building
12448         target libraries.
12449         * optc-gen.awk: Ditto.
12450
12451 2008-07-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12452
12453         PR 35058
12454         * diagnostic.c (pedwarn): Add opt parameter.
12455         (pedwarn0): New.
12456         * c-tree.h (pedwarn_init): Add opt parameter.
12457         (pedwarn_c90): Likewise.
12458         (pedwarn_c99): Likewise.
12459         * c-errors.c (pedwarn_c99): Likewise.
12460         (pedwarn_c90): Likewise.
12461         * toplev.h (pedwarn): Update declaration.
12462         (pedwarn0): Declare.
12463         * c-lex.c: All calls to pedwarn changed.
12464         * builtins.c: All calls to pedwarn changed.
12465         * toplev.c: All calls to pedwarn changed.
12466         * c-decl.c: All calls to pedwarn changed.
12467         * c-typeck.c: All calls to pedwarn changed.
12468         * c-common.c: All calls to pedwarn changed.
12469         * c-parser.c: All calls to pedwarn changed.
12470
12471 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
12472             Karthik Kumar  <karthikkumar@gmail.com>
12473
12474         * attribs.c (file scope): Include c-common.h.
12475         (decl_attributes): Add support for #pragma GCC optimize and
12476         #pragma GCC option.
12477
12478         * targhooks.c (default_can_inline_p): New function that is the
12479         default for the TARGET_CAN_INLINE_P target hook.
12480
12481         * targhooks.h (default_can_inline_p): Add declaration.
12482
12483         * tree.c (cl_optimization_node): New static tree for building
12484         OPTIMIZATION_NODE tree.
12485         (cl_target_option_node): New static tree for building
12486         TARGET_OPTION_NODE tree.
12487         (cl_option_hash_table): New hash table for hashing
12488         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
12489         (cl_option_hash_hash): New function to provide the hash value for
12490         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
12491         (cl_option_hash_eq): New function to provide an equality test for
12492         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
12493         (tree_code_size): Add support for OPTIMIZATION_NODE and
12494         TARGET_OPTION_NODE trees.
12495         (tree_code_structure): Add support for OPTIMIZATION_NODE and
12496         TARGET_OPTION_NODE trees.
12497         (build_optimization_node): Build a tree that has all of the
12498         current optimization options.
12499         (build_target_option_node): Build a tree that has the target
12500         options that might be changed on a per function basis.
12501
12502         * tree.h (file scope): Include options.h.
12503         (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
12504         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
12505         (TREE_OPTIMIZATION): Ditto.
12506         (TREE_TARGET_SPECIFIC): Ditto.
12507         (struct tree_function_decl): Add fields for remembering the
12508         current optimization options and target specific options.
12509         (struct tree_optimization_option): New tree variant that remembers
12510         the optimization options.
12511         (struct tree_target_option): New tree variant that remembers the
12512         target specific flags that might change for compiling a particular
12513         function.
12514         (union tree_node): Include tree_optimization_option and
12515         tree_target_option fields.
12516         (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
12517         TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
12518         TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
12519         TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
12520         TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
12521         optimization and target options.
12522         (optimization_default_node): New macro to refer to global_trees
12523         field.
12524         (optimization_current_node): Ditto.
12525         (optimization_cold_node): Ditto.
12526         (optimization_hot_node): Ditto.
12527         (target_option_default_node): Ditto.
12528         (target_option_current_node): Ditto.
12529         (current_option_pragma): Ditto.
12530         (current_optimize_pragma): Ditto.
12531
12532         * target.h (struct gcc_target): Add valid_option_attribute_p,
12533         target_option_save, target_option_restore, target_option_print,
12534         target_option_pragma_parse, and can_inline_p hooks.
12535
12536         * toplev.h (parse_optimize_options): Add declaration.
12537         (fast_math_flags_struct_set_p): Ditto.
12538
12539         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
12540         adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
12541         optimize is used.
12542
12543         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
12544         tree_can_inline_p hook to see if one function can inline another.
12545         (cgraph_decide_inlining): Ditto.
12546         (cgraph_decide_inlining_incrementally): Ditto.
12547
12548         * opts.c (decode_options): Add support for running multiple times
12549         to allow functions with different target or optimization options
12550         than was specified on the command line.
12551         (fast_math_flags_struct_set_p): New function that is similar to
12552         fast_math_flags_set_p, except it uses the values in the
12553         cl_optimization structure instead of global variables.
12554
12555         * optc-gen.awk: Add support for TargetSave to allow a back end to
12556         declare new fields that need to be saved when using function
12557         specific options.  Include flags.h and target.h in the options.c
12558         source.  Add support for Save to indicate which options can be set
12559         for individual functions.  Generate cl_optimize_save,
12560         cl_optimize_restore, cl_optimize_print, cl_target_option_save,
12561         cl_target_option_restore, cl_target_option_print functions to
12562         allow functions to use different optimization or target options.
12563
12564         * opt-functions.awk (var_type_struct): Return the type used for
12565         storing the field in a structure.
12566
12567         * opth-gen.awk: Add support for TargetSave to allow a back end to
12568         declare new fields that need to be saved when using function
12569         specific options.  Add support for Save to indicate which options
12570         can be set for individual functions.  Only generate one extern for
12571         Mask fields.  Generate cl_optimization and cl_target_option
12572         structures to remember optimization and target options.
12573
12574         * treestruct.def (TS_OPTIMIZATION): Add support for garbage
12575         collecting new tree nodes.
12576         (TS_TARGET_OPTION): Ditto.
12577
12578         * c-decl.c (merge_decls): Merge function specific target and
12579         optimization options.
12580
12581         * function.c (invoke_set_current_function_hook): If the function
12582         uses different optimization options, change the global variables
12583         to reflect this.
12584
12585         * coretypes.h (struct cl_optimization): Add forward reference.
12586         (struct cl_target_option): Ditto.
12587
12588         * c-pragma.c (option_stack): New static vector to remember the
12589         current #pragma GCC option stack.
12590         (handle_pragma_option): New function to support #pragma GCC option
12591         to change target options.
12592         (optimize_stack): New static vector to remember the current
12593         #pragma GCC optimize stack.
12594         (handle_pragma_optimize): New function to support #pragma GCC
12595         optimize to change optimization options.
12596         (init_pragma): Add support for #pragma GCC optimize and #pragma
12597         GCC option.
12598
12599         * tree.def (OPTIMIZATION_NODE): New tree code for remembering
12600         optimization options.
12601         (TARGET_OPTION_NODE): New tree code for remembering certain target
12602         options.
12603
12604         * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
12605         TARGET_OPTION_NODE trees.
12606
12607         * common.opt (-O): Add Optimization flag.
12608         (-Os): Ditto.
12609         (-fmath-errno): Ditto.
12610         (-falign-functions): Add UInteger flag to make sure flag gets full
12611         int in cl_optimization structure.
12612         (-falign-jumps): Ditto.
12613         (-falign-labels): Ditto.
12614         (-falign-loops): Ditto.
12615         (-fsched-stalled-insns): Ditto.
12616         (-fsched-stalled-insns-dep): Ditto.
12617
12618         * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
12619         definition.
12620         (TARGET_OPTION_SAVE): Ditto.
12621         (TARGET_OPTION_RESTORE): Ditto.
12622         (TARGET_OPTION_PRINT): Ditto.
12623         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
12624         (TARGET_CAN_INLINE_P): Ditto.
12625         (TARGET_INITIALIZER): Add new hooks.
12626
12627         * tree-inline.c (tree_can_inline_p): New function to determine
12628         whether one function can inline another.  Check if the functions
12629         use compatible optimization options, and also call the backend
12630         can_inline_p hook.
12631
12632         * tree-inline.h (tree_can_inline_p): Add declaration.
12633
12634         * c-common.c (c_common_attribute): Add support for option and
12635         optimize attributes.
12636         (handle_option_attribute): Add support for the option attribute to
12637         allow the user to specify different target options for compiling a
12638         specific function.
12639         (handle_optimize_attribute): Add support for the optimize
12640         attribute to allow the user to specify different optimization
12641         options for compiling a specific function.
12642         (handle_hot_attribute): Turn on -O3 optimization for this one
12643         function if it isn't the default optimization level.
12644         (handle_cold_attribute): Turn on -Os optimization for this one
12645         function if it insn't the default optimization.
12646         (const_char_p): New const char * typedef.
12647         (optimize_args): New static vector to remember the optimization
12648         arguments.
12649         (parse_optimize_options): New function to set up the optimization
12650         arguments from either the optimize attribute or #pragma GCC optimize.
12651
12652         * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
12653         (builtin_define_std): Ditto.
12654
12655         * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
12656         Add t-i386 Makefile fragment to add i386-c.o and i386.o dependencies.
12657         (x86_64-*-*): Ditto.
12658
12659         * Makefile.in (TREE_H): Add options.h.
12660         (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
12661
12662         * doc/extend.texi (option attribute): Document new attribute.
12663         (optimize attribute): Ditto.
12664         (hot attribute): Document hot attribute sets -O3.
12665         (cold attribute): Document cold attribute sets -Os.
12666         (#pragma GCC option): Document new pragma.
12667         (#pragma GCC optimize): Ditto.
12668
12669         * doc/options.texi (TargetSave): Document TargetSave syntax.
12670         (UInteger): Document UInteger must be used for certain flags.
12671         (Save): Document Save option to create target specific options
12672         that can be saved/restored on a function specific context.
12673
12674         * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new macro.
12675         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
12676
12677         * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new hook.
12678         (TARGET_OPTION_SAVE): Ditto.
12679         (TARGET_OPTION_RESTORE): Ditto.
12680         (TARGET_OPTION_PRINT): Ditto.
12681         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
12682         (TARGET_CAN_INLINE_P): Ditto.
12683
12684         * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
12685         -mfpmath=sse,387.
12686         (-mfpmath=both): Ditto.
12687
12688 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
12689             Karthik Kumar  <karthikkumar@gmail.com>
12690
12691         * config/i386/i386.h (TARGET_ABM): Move switch into ix86_isa_flags.
12692         (TARGET_POPCNT): Ditto.
12693         (TARGET_SAHF): Ditto.
12694         (TARGET_AES): Ditto.
12695         (TARGET_PCLMUL): Ditto.
12696         (TARGET_CMPXCHG16B): Ditto.
12697         (TARGET_RECIP): Move switch into target_flags.
12698         (TARGET_FUSED_MADD): Ditto.
12699         (ix86_arch_features): Make an unsigned char type.
12700         (ix86_tune_features): Ditto.
12701         (OVERRIDE_OPTIONS): Add bool argument to override_options call.
12702         (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
12703         (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
12704
12705         * config/i386/i386.opt (arch): New TargetSave field to define
12706         fields that need to be saved for function specific option support.
12707         (tune): Ditto.
12708         (fpmath): Ditto.
12709         (branch_cost): Ditto.
12710         (ix86_isa_flags_explicit): Ditto.
12711         (tune_defaulted): Ditto.
12712         (arch_specified): Ditto.
12713         (-m128-long-double): Add Save flag to save option for target
12714         specific option support.
12715         (-m80387): Ditto.
12716         (-maccumulate-outgoing-args): Ditto.
12717         (-malign-double): Ditto.
12718         (-malign-stringops): Ditto.
12719         (-mfancy-math-387): Ditto.
12720         (-mhard-float): Ditto.
12721         (-mieee-fp): Ditto.
12722         (-minline-all-stringops): Ditto.
12723         (-minline-stringops-dynamically): Ditto.
12724         (-mms-bitfields): Ditto.
12725         (-mno-align-stringops): Ditto.
12726         (-mno-fancy-math-387): Ditto.
12727         (-mno-push-args): Ditto.
12728         (-mno-red-zone): Ditto.
12729         (-mpush-args): Ditto.
12730         (-mred-zone): Ditto.
12731         (-mrtd): Ditto.
12732         (-msseregparm): Ditto.
12733         (-mstack-arg-probe): Ditto.
12734         (-m32): Ditto.
12735         (-m64): Ditto.
12736         (-mmmx): Ditto.
12737         (-m3dnow): Ditto.
12738         (-m3dnowa): Ditto.
12739         (-msse): Ditto.
12740         (-msse2): Ditto.
12741         (-msse3): Ditto.
12742         (-msse4.1): Ditto.
12743         (-msse4.2): Ditto.
12744         (-msse4): Ditto.
12745         (-mno-sse4): Ditto.
12746         (-msse4a): Ditto.
12747         (-msse5): Ditto.
12748         (-mrecip): Move flag into target_flags.
12749         (-mcld): Ditto.
12750         (-mno-fused-madd): Ditto.
12751         (-mfused-madd): Ditto.
12752         (-mabm): Move flag into ix86_isa_flags.
12753         (-mcx16): Ditto.
12754         (-mpopcnt): Ditto.
12755         (-msahf): Ditto.
12756         (-maes): Ditto.
12757         (-mpclmul): Ditto.
12758
12759         * config/i386/i386-c.c: New file for #pragma support.
12760         (ix86_target_macros_internal): New function to #define or #undef
12761         target macros based when the user uses the #pragma GCC option to
12762         change target options.
12763         (ix86_pragma_option_parse): New function to add #pragma GCC option
12764         support.
12765         (ix86_target_macros): Move defining the target macros here from
12766         TARGET_CPU_CPP_BUILTINS in i386.h.
12767         (ix86_register_pragmas): Register the #pragma GCC option hook.  If
12768         defined, initialize any subtarget #pragmas.
12769
12770         * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
12771         REGISTER_TARGET_PRAGMAS.
12772
12773         * config/i386/t-i386: New file for x86 dependencies.
12774         (i386.o): Make dependencies mirror the include files used.
12775         (i386-c.o): New file, add dependencies.
12776
12777         * config/i386/i386-protos.h (override_options): Add bool argument.
12778         (ix86_valid_option_attribute_tree): Add declaration.
12779         (ix86_target_macros): Ditto.
12780         (ix86_register_macros): Ditto.
12781
12782         * config/i386/i386.c (ix86_tune_features): Move initialization of
12783         the target masks to initial_ix86_tune_features to allow functions
12784         to have different target options.  Make type unsigned char,
12785         instead of unsigned int.
12786         (initial_ix86_tune_features): New static vector to hold processor
12787         masks for the tune variables.
12788         (ix86_arch_features): Move initialization of the target masks to
12789         initial_ix86_arch_features to allow functions to have different
12790         target options.  Make type unsigned char, instead of unsigned int.
12791         (initial_ix86_arch_features): New static vector to hold processor
12792         masks for the arch variables.
12793         (enum ix86_function_specific_strings): New enum to describe the
12794         string options used for attribute((option(...))).
12795         (ix86_target_string): New function to return a string that
12796         describes the target options.
12797         (ix86_debug_options): New function to print the current options in
12798         the debugger.
12799         (ix86_function_specific_save): New function hook to save the
12800         function specific global variables in the cl_target_option structure.
12801         (ix86_function_specific_restore): New function hook to restore the
12802         function specific variables from the cl_target_option structure to
12803         the global variables.
12804         (ix86_function_specific_print): New function hook to print the
12805         target specific options in the cl_target_option structure.
12806         (ix86_valid_option_attribute_p): New function hook to validate
12807         attribute((option(...))) arguments.
12808         (ix86_valid_option_attribute_tree): New function that is common
12809         code between attribute((option(...))) and #pragma GCC option
12810         support that parses the options and returns a tree holding the options.
12811         (ix86_valid_option_attribute_inner_p): New helper function for
12812         ix86_valid_option_attribute_tree.
12813         (ix86_can_inline_p): New function hook to decide if one function
12814         can inline another on a target specific basis.
12815         (ix86_set_current_function); New function hook to switch target
12816         options if the user used attribute((option(...))) or #pragma GCC
12817         option.
12818         (ix86_tune_defaulted): Move to static file scope from
12819         override_options.
12820         (ix86_arch_specified): Ditto.
12821         (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
12822         ix86_isa_flags.
12823         (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
12824         (OPTION_MASK_ISA_ABM_SET): Ditto.
12825         (OPTION_MASK_ISA_POPCNT_SET): Ditto.
12826         (OPTION_MASK_ISA_CX16_SET): Ditto.
12827         (OPTION_MASK_ISA_SAHF_SET): Ditto.
12828         (OPTION_MASK_ISA_AES_UNSET): Ditto.
12829         (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
12830         (OPTION_MASK_ISA_ABM_UNSET): Ditto.
12831         (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
12832         (OPTION_MASK_ISA_CX16_UNSET): Ditto.
12833         (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
12834         (struct ptt): Move to static file scope from override_options.
12835         (processor_target_table): Ditto.
12836         (cpu_names): Ditto.
12837         (ix86_handle_option): Add support for options that are now isa options.
12838         (override_options): Add support for declaring functions that
12839         support different target options than were specified on the
12840         command line.  Move struct ptt, processor_target_table, cpu_names,
12841         ix86_tune_defaulted, ix86_arch_specified to static file scope.
12842         Add bool argument.  Fix up error messages so the appropriate error
12843         is given for either command line or attribute.
12844         (ix86_previous_fndecl): New static to remember previous function
12845         declaration to see if we need to change target options.
12846         (ix86_builtins_isa): New array to record the ISA of each builtin
12847         function.
12848         (def_builtin): Always create the builtin function, even if the
12849         current ISA doesn't support it.
12850         (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
12851         tests for those builtins.
12852         (ix86_init_builtins): Remove TARGET_MMX test for calling
12853         ix86_init_mmx_sse_builtins.
12854         (ix86_expand_builtin): If the current ISA doesn't support a given
12855         builtin, signal an error.
12856         (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
12857         (TARGET_SET_CURRENT_FUNCTION): Ditto.
12858         (TARGET_OPTION_SAVE): Ditto.
12859         (TARGET_OPTION_RESTORE): Ditto.
12860         (TARGET_OPTION_PRINT): Ditto.
12861         (TARGET_CAN_INLINE_P): Ditto.
12862
12863 2008-07-22  Rafael Ávila de Espíndola  <espindola@google.com>
12864
12865         * c-typeck.c (build_external_ref): Don't call assemble_external.
12866         * final.c (output_operand): Call assemble_external.
12867
12868 2008-07-21  DJ Delorie  <dj@redhat.com>
12869
12870         * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
12871         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
12872
12873 2008-07-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12874
12875         * config/spu/spu.md ("div<mode>3"): Convert into expander, move
12876         original insn and splitter contents into ...
12877         ("*div<mode>3_fast"): ... this new pattern.  Enable only if
12878         flag_unsafe_math_optimizations.  Add dummy scratch register.
12879         ("*div<mode>3_adjusted"): New insn and splitter.  Enable only if
12880         !flag_unsafe_math_optimizations.  Returns number with next
12881         highest magnitude if this is still less or equal to the true
12882         quotient in magnitude.
12883
12884 2008-07-21  Rafael Ávila de Espíndola  <espindola@google.com>
12885
12886         * Makefile.in: Replace toplev.h with TOPLEV_H.
12887         * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
12888         * c-lex.c (fe_file_change): Don't set in_system_header.
12889         * c-parser.c (c_token): Remove in_system_header.
12890         (c_lex_one_token): Don't set in_system_header.
12891         (c_parser_set_source_position_from_token): Don't set in_system_header.
12892         * diagnostic.c (diagnostic_report_diagnostic): Use location from
12893         diagnostic_info.
12894         (warning_at): New.
12895         * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
12896         * flags.h (in_system_header): Remove.
12897         * function.c (saved_in_system_header): Remove.
12898         (push_cfun): Don't set in_system_header.
12899         (pop_cfun): Don't set in_system_header.
12900         (push_struct_function): Don't set in_system_header.
12901         * input.h (expanded_location): Add sysp.
12902         (in_system_header_at): New.
12903         (in_system_header): New.
12904         * toplev.c (in_system_header): Remove.
12905         * toplev.h: Include input.h
12906         (warning_at): New.
12907         * tree-cfg.c (execute_warn_function_return): Call warning_at.
12908         * tree-ssa.c (warn_uninit): Call warning_at.
12909         (warn_uninitialized_var): Update calls to warn_uninit.
12910         (warn_uninitialized_phi): Update calls to warn_uninit.
12911         * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
12912         (expand_location): Initialize xloc.sysp.
12913         * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
12914         (tree_decl_with_vis): Remove in_system_header_flag.
12915
12916 2008-07-21  Andreas Krebbel  <krebbel1@de.ibm.com>
12917
12918         PR target/36822
12919         * recog.c (asm_operand_ok): Change the order of the extra
12920         memory constraint checks.
12921
12922 2008-07-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12923
12924         PR tree-opt/36879
12925         * tree-switch-conversion.c (build_one_array): Call
12926         varpool_mark_needed_node and varpool_finalize_decl
12927         instead of assemble_variable.
12928
12929 2008-07-19  Jan Hubicka  <jh@suse.cz>
12930
12931         * cgraph.c (cgraph_add_new_function): Do early local passes.
12932         * tree-nrv.c (gate_pass_return_slot): New gate.
12933         (pass_nrv): Add the gate.
12934         * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
12935         functions.
12936         (coalesce_ssa_name): Coalesce SSA names.
12937         * tree-ssa-live.c (remove_unused_locals): Be more conservative when
12938         not optimizing so unused user vars remains visible.
12939         * common.opt (flag_tree_ter): Always enable by default.
12940         * tree-ssa-ter.c: Include flags.h
12941         (is_replaceable_p): Check that locations match; when aliasing
12942         is missing be conservative about loads.
12943         * tree-optimize.c (gate_init_datastructures): Remove.
12944         (pass_init_datastructures): New.
12945         * passes.c: Reorder passes so we always go into SSA.
12946
12947 2008-07-19  Jan Hubicka  <jh@suse.cz>
12948
12949         * doc/extend.texi (flatten attribute): Remove note about
12950         unit-at-a-time.
12951         * doc/invoke.texi (--combine): Likewise.
12952         (-finline-functions-called-once): Update levels when enabled.
12953         (-funit-at-a-time): Document new behaviour.
12954         (-ftoplevel-reorder): Document that it is enabled -O0 and imply
12955         -fno-section-anchors when disabled explicitly.
12956         (inline params): They are not ignored now.
12957         (precompiled headers): Remove unit-at-a-time as being incompatible.
12958         * opts.c (decode_options): Handle unit-at-a-time as alias;
12959         imply -fno-section-anchors when toplevel reorder is disabled
12960         explicitly.
12961         * common.opt (ftoplevel-reorder): Set default value to 2.
12962         (funit-at-a-time): Set default value to 1.
12963         * config/rs6000/rs6000.c (optimization_options): Set section anchors
12964         to 2.
12965
12966 2008-07-19  Jan Hubicka  <jh@suse.cz>
12967
12968         * builtins.c (expand_builtin_int_roundingfn,
12969         expand_builtin_int_roundingfn_2): Do not take subtarget argument;
12970         it is not useful.
12971
12972 2008-07-19  Richard Guenther  <rguenther@suse.de>
12973
12974         PR bootstrap/36864
12975         * tree-ssa-sccvn.h (get_constant_value_id): Declare.
12976         * tree-ssa-sccvn.c (get_constant_value_id): New function.
12977         * tree-ssa-pre.c (get_expr_value_id): For newly created
12978         constant value-ids make sure to add the expression to its
12979         expression-set.
12980
12981 2008-07-19  Jakub Jelinek  <jakub@redhat.com>
12982
12983         PR middle-end/36877
12984         * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
12985         return value of the builtin is ignored.
12986
12987 2008-07-19  Olivier Hainque  <hainque@adacore.com>
12988
12989         * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
12990         bits, a C conformant malloc implementation has to provide.
12991         * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
12992
12993 2008-07-19  Joseph Myers  <joseph@codesourcery.com>
12994
12995         PR target/36780
12996         PR target/36827
12997         * reload.c (find_reloads_subreg_address): Only reload address if
12998         reloaded == 0, not for reloaded != 1.
12999
13000         Revert:
13001         2008-07-16  Joseph Myers  <joseph@codesourcery.com>
13002         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
13003         (m32c_legitimate_address_p): Handle "++rii" addresses created by
13004         m32c_legitimize_reload_address.
13005
13006         2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
13007         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
13008         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
13009
13010 2008-07-19  Olivier Hainque  <hainque@adacore.com>
13011
13012         * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
13013         argument, saying whether nested array are to be collapsed
13014         into a single array type DIE with multiple subscripts.
13015         (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
13016         issues, centralize the nested array types collapsing control and
13017         disable the transformation for Ada.
13018
13019 2008-07-18  Uros Bizjak  <ubizjak@gmail.com>
13020
13021         PR target/36786
13022         * config/i386/i386.md (x86_64_shift_adj_1): Rename from
13023         x86_64_shift_adj.
13024         (x86_64_shift_adj_2): New expander.
13025         (x86_64_shift_adj_3): Ditto.
13026         * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
13027         to split TImode operands.
13028         (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
13029         (ix86_split_lshr): Ditto.
13030
13031 2008-07-18  Kris Van Hees  <kris.van.hees@oracle.com>
13032
13033         * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
13034         and __CHAR32_TYPE__.
13035         * c-typeck.c (digest_init): Support char16_t and char32_t.
13036         (set_nonincremental_init_from_string): Idem.
13037
13038 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
13039
13040         PR middle-end/36859
13041         * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
13042         PREFERRED_STACK_BOUNDARY.
13043         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
13044
13045 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
13046
13047         PR middle-end/36858
13048         * function.c (locate_and_pad_parm): Cap boundary earlier.
13049
13050 2008-07-17  Julian Brown  <julian@codesourcery.com>
13051
13052         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
13053         no-op for targets which don't use DLLs.
13054
13055 2008-07-17  Martin Jambor  <mjambor@suse.cz>
13056
13057         * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
13058         that nodes are relevant by examining the node->analyzed flag.
13059         (ipcp_init_stage): Check which nodes are relevant, assert that the
13060         relevant ones are also required.
13061         (ipcp_propagate_stage): Check on the side arrays are properly
13062         allocated.
13063         (ipcp_print_all_jump_functions): Make sure not to touch any node
13064         that is not analyzed or an edge that does not have a corresponding
13065         entry in the on-the-side vectors.
13066         (ipcp_function_scale_print): Likewise.
13067         (ipcp_update_callgraph): Check that the node is relevant.
13068         (ipcp_insert_stage): Check that the node is relevant.  Check there is
13069         an info for every node and edge.
13070         * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
13071         (ipa_print_all_tree_maps): Likewise and a new variable info.
13072         (ipa_print_all_params_modified): Likewise.
13073         * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
13074
13075 2008-07-17  Roman Zippel <zippel@linux-m68k.org>
13076
13077         PR target/25343
13078         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
13079
13080 2008-07-17  Paolo Bonzini  <bonzini@gnu.org>
13081
13082         PR rtl-optimization/36753
13083         * fwprop.c (use_killed_between): Don't shortcut
13084         single-definition global registers.
13085
13086 2008-07-16  Jan Hubicka  <jh@suse.cz>
13087
13088         * cgraph.h (varpool_empty_needed_queue): Declare.
13089         * cgraphunit.c (output_in_order): Mark all variables as needed;
13090         empty the queue.
13091         * varpool.c (varpool_assemble_node): Update debug queue.
13092         (varpool_assemble_pending_decls): Don't do it here.
13093         (varpool_empty_needed_queue):  New function.
13094
13095 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13096
13097         * recog.c (peephole2_optimize): Fix formatting.
13098
13099 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13100
13101         * c-pch.c (get_ident): Avoid C++ keywords.
13102         * combine-stack-adj.c (single_set_for_csa): Likewise.
13103         * final.c (asm_insn_count, final_scan_insn, alter_subreg,
13104         output_asm_insn): Likewise.
13105         * reload.c (push_secondary_reload, find_reusable_reload,
13106         push_reload, combine_reloads, find_reloads,
13107         debug_reload_to_stream): Likewise.
13108         * reload.h (struct reload): Likewise.
13109         * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
13110         allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
13111         emit_output_reload_insns): Likewise.
13112         * targhooks.c (default_secondary_reload): Likewise.
13113         * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
13114
13115 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13116
13117         * recog.c (validate_change_1, validate_change,
13118         validate_unshare_change, validate_replace_rtx_1, struct
13119         funny_match, constrain_operands, peephole2_optimize): Avoid C++
13120         keywords.
13121         * reload.c (push_secondary_reload, secondary_reload_class,
13122         scratch_reload_class, find_valid_class, find_reusable_reload,
13123         push_reload, find_dummy_reload, find_reloads_address_1,
13124         find_reloads_address_part, find_equiv_reg): Likewise.
13125         * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
13126         choose_reload_regs): Likewise.
13127         * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
13128         Likewise.
13129         * rtlhooks.c (gen_lowpart_if_possible): Likewise.
13130         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
13131         * sched-rgn.c (concat_INSN_LIST): Likewise.
13132         * stor-layout.c (mode_for_size, mode_for_size_tree,
13133         smallest_mode_for_size): Likewise.
13134
13135 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13136
13137         * cfg.c (dump_reg_info): Avoid C++ keywords.
13138         * dwarf2asm.c (dw2_force_const_mem,
13139         dw2_asm_output_encoded_addr_rtx): Likewise.
13140         * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
13141         * expmed.c (expand_shift): Likewise.
13142         * global.c (find_reg): Likewise.
13143         * graph.c (draw_edge): Likewise.
13144         * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
13145         * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
13146         widen_clz, widen_bswap, expand_parity, expand_unop,
13147         emit_cmp_and_jump_insn_1): Likewise.
13148         * postreload.c (reload_cse_simplify_operands): Likewise.
13149         * ra.h (add_neighbor): Likewise.
13150         * reg-stack.c (remove_regno_note, change_stack): Likewise.
13151         * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
13152         record_reg_classes, copy_cost, record_address_regs,
13153         invalid_mode_change_p): Likewise.
13154         * regrename.c (regrename_optimize, scan_rtx_reg,
13155         dump_def_use_chain, find_oldest_value_reg,
13156         replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
13157
13158 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
13159
13160         * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
13161         MASK_POWERPC64 for power4 in previous commit.
13162
13163 2008-07-16  Olivier Hainque  <hainque@adacore.com>
13164
13165         * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
13166         instead of bare conversion to cast const-ness away.
13167
13168 2008-07-16  Anatoly Sokolov  <aesok@post.ru>
13169
13170         * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
13171         XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
13172         * config/xtensa/xtensa.c (xtensa_function_value): New function.
13173         (TARGET_FUNCTION_VALUE): Define.
13174
13175 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
13176
13177         * config/rs6000/rs6000.c (processor_target_table): Add
13178         MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
13179
13180 2008-07-16  Joseph Myers  <joseph@codesourcery.com>
13181
13182         PR target/36827
13183         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
13184         (m32c_legitimate_address_p): Handle "++rii" addresses created by
13185         m32c_legitimize_reload_address.
13186
13187 2007-07-16  Rafael Ávila de Espíndola  <espindola@google.com>
13188
13189         * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
13190         DECL_IN_SYSTEM_HEADER in sync.
13191
13192 2008-07-15  Daniel Berlin  <dberlin@dberlin.org>
13193
13194         * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
13195         * tree-ssa-pre.c (pre_expr_eq): Ditto
13196         (get_constant_for_value_id): Take a type as an argument.
13197         (fully_constant_expression): Pass in type.
13198         (find_or_generate_expression): Short circuit constant case.
13199         (create_expression_by_pieces): Remove special casing of
13200         pointer_plus.
13201         (do_regular_insertion): Short circuit constant case.
13202         (do_partial_partial_insertion): Ditto.
13203
13204 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
13205
13206         PR target/36782
13207         * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
13208
13209 2008-07-15  Bob Wilson  <bob.wilson@acm.org>
13210
13211         * config/xtensa/libgcc-xtensa.ver: New file.
13212         * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
13213
13214 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13215
13216         * df-problems.c (df_set_note): Avoid C++ keywords.
13217         * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
13218         * dse.c (record_store, remove_useless_values): Likewise.
13219         * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
13220         gen_reg_rtx_offset, operand_subword, change_address_1,
13221         change_address, adjust_address_1, offset_address,
13222         widen_memory_access, emit_copy_of_insn_after): Likewise.
13223         * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
13224         * fwprop.c (should_replace_address, propagate_rtx_1,
13225         propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
13226         Likewise.
13227         * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
13228         gcse_emit_move_after, update_ld_motion_stores): Likewise.
13229         * lcm.c (compute_insert_delete, pre_edge_lcm,
13230         compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
13231         * lower-subreg.c (resolve_reg_notes): Likewise.
13232         * mode-switching.c (optimize_mode_switching): Likewise.
13233
13234 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13235
13236         * bt-load.c (add_btr_def, migrate_btr_def,
13237         branch_target_load_optimize): Avoid C++ keywords.
13238         * caller-save.c (insert_restore, insert_save, insert_one_insn):
13239         Likewise.
13240         * combine.c (subst, simplify_set, make_extraction,
13241         make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
13242         * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
13243         fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
13244
13245 2008-07-15  Richard Guenther  <rguenther@suse.de>
13246
13247         PR middle-end/36369
13248         * c-common.c (strict_aliasing_warning): Do not warn for
13249         TYPE_REF_CAN_ALIAS_ALL pointers.
13250         (c_common_get_alias_set): may_alias types are not special.
13251         * tree.c (build_pointer_type_for_mode): Look up the may_alias
13252         attribute and set can_ref_all accordingly.
13253         (build_reference_type_for_mode): Likewise.
13254         * doc/extend.texi (may_alias): Clarify.
13255
13256 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
13257
13258         PR target/36780
13259         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
13260         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
13261
13262 2008-07-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13263
13264         PR target/31568
13265         * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
13266         gcc_assert, instead call output_operand_lossage.
13267
13268 2008-07-15  Kai Tietz  <kai.tietz@onevision.com>
13269
13270         * builtins.c (std_canonical_va_list): Treat structure based
13271         va_list types.
13272
13273 2008-07-15  Ben Elliston  <bje@au.ibm.com>
13274
13275         * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
13276
13277 2007-07-14  Rafael Ávila de Espíndola  <espindola@google.com>
13278
13279         * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
13280         is set.
13281
13282 2008-07-14  Jan Hubicka  <jh@suse.cz>
13283
13284         * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
13285         * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
13286         fix predicates and constraints.
13287         * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
13288         * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
13289
13290 2008-07-14  Doug Kwan  <dougkwan@google.com>
13291
13292         * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
13293         additional option file arm/eabi.opt.
13294         * config/arm/eabi.h (File): New configuration file for EABI targets.
13295         * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
13296         SUBSUBTARGET_EXTRA_SPECS.
13297         (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
13298         * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
13299         from STARTFILE_SPEC so that it can be referenced in an override.
13300         (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
13301         (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
13302         can be referenced in an override.
13303         (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
13304         * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
13305         so that it can be referenced in an override.
13306         (LINK_SPEC): Use BPABI_LINK_SPEC.
13307         * config/arm/eabi.opt (File): New.
13308
13309 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13310
13311         * Makefile.in (TARGET_DEF_H): Add targhooks.h.
13312         (FIXED_VALUE_H): New variable.
13313         (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
13314         input.h, fixed-value.h.
13315         (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
13316         (BASIC_BLOCK_H): Use $(BITMAP_H).
13317         (FUNCTION_H): Add varray.h.
13318         (IPA_REFERENCE_H): Use $(BITMAP_H).
13319         (CGRAPH_H): Add $(BASIC_BLOCK_H).
13320         (DF_H): Use $(BITMAP_H).
13321         (GGC_H): Add statistics.h.
13322         (INSN_ADDR_H): New.
13323         (INSN_ATTR_H): Use it.
13324         (SYSTEM_H): Add safe-ctype.h, filenames.h.
13325         (INPUT_H): New.
13326         (SYMTAB_H): Add $(OBSTACK_H).
13327         (CPP_INTERNAL_H): New.
13328         (TREE_DUMP_H): Add tree-pass.h.
13329         (TREE_FLOW_H): Use $(BITMAP_H)
13330         (PRETTY_PRINT_H): Use $(INPUT_H).
13331         (EBITMAP_H): Rename from typo-ed EBIMAP_H.
13332         (GSTAB_H): New.
13333         (BITMAP_H): New.
13334         (many object files): Fix lots of header dependencies throughout.
13335
13336 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13337
13338         * Makefile.in (write_entries_to_file, write_entries_to_file_split):
13339         New macros.
13340         (s-gtyp-input): Use them to write tmp-gi.list.
13341         (echo_to_gi.list): Remove.
13342
13343 2008-07-14  Richard Guenther  <rguenther@suse.de>
13344
13345         * tree-ssa-sccvn.c (pre_info): Remove.
13346         (switch_to_PRE_table): Likewise.
13347         (free_scc_vn): Do not clear SSA_NAME_VALUE.  Do not free pre_info.
13348         (set_hashtable_value_ids): Do not create value-ids for the
13349         optimistic tables.
13350         (run_scc_vn): Remove double test.  Remove bogus special-case
13351         in value-number printing.
13352         * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
13353         * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
13354         SSA_NAME_VALUE.
13355         * tree-flow-inline.h (get_value_handle): Remove.
13356         * tree-flow.h (get_value_handle): Remove.
13357
13358 2008-07-14  Martin Jambor  <mjambor@suse.cz>
13359
13360         * tree-switch-conversion.c (gen_inbound_check): Make sure the type
13361         in which we generate arithmetics is not a subrange.
13362
13363 2008-07-14  Martin Jambor  <mjambor@suse.cz>
13364
13365         * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
13366
13367 2008-07-14  Richard Guenther  <rguenther@suse.de>
13368
13369         * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
13370
13371 2008-07-14  Andreas Krebbel  <krebbel1@de.ibm.com>
13372
13373         PR target/36745
13374         * config/s390/s390.c: (s390_secondary_reload): Add a secondary
13375         reload for symbol refs moved to r0 with -fPIC.
13376         (legitimize_pic_address): Use the target register as temporary
13377         reg if possible.
13378         (emit_symbolic_move): Adjust comment.
13379         * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
13380         New expanders.
13381
13382 2008-07-14  Ben Elliston  <bje@au.ibm.com>
13383
13384         * c-common.h (C_CPP_HASHNODE): New macro.
13385         * coretypes.h (struct cpp_token): Forward declare.
13386         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
13387         the context-sensitive keyword method.
13388         * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
13389         __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
13390         expand_bool_pixel): New.
13391         (altivec_categorize_keyword): New function.
13392         (init_vector_keywords): New function.
13393         (rs6000_macro_to_expand): Likewise.
13394         (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
13395         compiling an ISO C dialect.
13396
13397 2008-07-13  Daniel Berlin  <dberlin@dberlin.org>
13398
13399         * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
13400         (create_expression_by_pieces): Fix typo.
13401         (do_regular_insertion): Use debug counter here too.
13402
13403 2008-07-14  Hans-Peter Nilsson  <hp@axis.com>
13404
13405         PR target/35492.
13406         * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
13407         CONST_OK_FOR_LETTER_P.  All port-local users changed.
13408         (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
13409         implement Kp matching power-of-two.
13410         (CONSTRAINT_LEN): Define to match.
13411         * config/cris/cris.md: Replace all use of constraint K with Kc.
13412         ("*btst*): Use Kp for operand 0 of last alternative.
13413
13414 2008-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13415
13416         PR testsuite/36440
13417         * tree-call-cdce.c (check_target_format): Accept MIPS single, double
13418         and quad formats.
13419
13420 2008-07-13  Jan Hubicka  <jh@suse.cz>
13421
13422         * tree.c (decl_assembler_name_equal): Expect assembler name of decl
13423         to be mangled too.
13424
13425 2008-07-13  Richard Guenther  <rguenther@suse.de>
13426
13427         PR middle-end/36811
13428         * langhooks.c (lhd_print_error_function): Deal with recursive
13429         BLOCK trees.
13430
13431 2008-07-12  Jan Hubicka  <jh@suse.cz>
13432
13433         * cgraph.c (assembler_name_hash): New static var.
13434         (hash_node_by_assembler_name, eq_assembler_name): New.
13435         (cgraph_node_for_asm): Use hashtable.
13436         (cgraph_remove_node): Maintain hashtable.
13437         (change_decl_assembler_name): Sanity check that names are not changing
13438         after aliasing was processed.
13439         * cgraph.h (varpoon_node): Add next GGC marker.
13440         * tree.c (decl_assembler_name_equal): Constify.
13441         (decl_assembler_name_hash): New.
13442         * tree.h (decl_assembler_name_equal): Constify.
13443         (decl_assembler_name_hash): Update.
13444
13445 2008-07-12  David Daney  <ddaney@avtrex.com>
13446
13447         * config/mips/driver-native.c (host_detect_local_cpu): Handle
13448         sb1 and r5000 cpus.
13449
13450 2008-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13451
13452         * doc/md.texi: Document the MIPS "v" constraint.
13453         * config/mips/mips.h (reg_class): Revert last change.
13454         (REG_CLASS_NAMES): Likewise.
13455         (REG_CLASS_CONTENTS): Likewise.
13456         * config/mips/mips.c (mips_regno_to_class): Likewise.
13457         * config/mips/constraints.md (v): Likewise, but add documentation.
13458         Add a comment to say that this constraint should not be used in
13459         gcc code.
13460
13461 2008-07-11  DJ Delorie  <dj@redhat.com>
13462
13463         * config/h8300/h8300.md (length): Fix branch offset limit.
13464
13465 2008-07-11  Anatoly Sokolov  <aesok@post.ru>
13466
13467         * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
13468         * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
13469         (avr_hard_regno_scratch_ok): New function.
13470         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
13471         * config/avr/avr.md (all peepholes that request a scratch register):
13472         Remove avr_peep2_scratch_safe use.
13473
13474 2008-07-11  Tom Tromey  <tromey@redhat.com>
13475             Ian Lance Taylor  <iant@google.com>
13476
13477         * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
13478         (struct c_common_resword): Define.
13479         (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
13480         (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
13481         (c_common_reswords, num_c_common_reswords): Declare.
13482         * c-common.c (c_common_reswords): New global const array.
13483         (num_c_common_reswords): New const int.
13484         * c-parser.c (struct resword, reswords): Don't define.
13485         (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
13486         (c_parse_init): Clarify mask code.  Use c_common_reswords rather
13487         than reswords.  If warning about C++ keywords, give them a special
13488         RID code.
13489         (c_lex_one_token): Warn about C++ keywords.  Call
13490         objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
13491         (c_parser_external_declaration): Look for RID_xxx rather than
13492         RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
13493         (c_parser_statement_after_labels): Likewise.
13494         (c_parser_objc_class_instance_variables): Likewise.
13495         (c_parser_objc_class_declaration): Likewise.
13496         (c_parser_objc_try_catch_statement): Likewise.
13497         * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
13498         (declspecs_add_type): Likewise.
13499
13500 2008-07-11  Angelo Graziosi  <angelo.graziosi@alice.it>
13501
13502         * ggc-page.c (alloc_page):
13503         Substituting xmalloc, xcalloc with
13504         XNEWVEC and XCNEWVAR macros which add the
13505         needed casts.
13506
13507 2008-07-11  Richard Guenther  <rguenther@suse.de>
13508
13509         PR tree-optimization/36765
13510         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
13511         aliases from HEAP vars to SMTs.
13512
13513 2008-07-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13514
13515         * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
13516         * configure.ac (loose_warn): Move -Wc++-compat from here...
13517         (strict_warn): ...to here.
13518         * configure: Regenerate.
13519
13520 2008-07-10  Joseph Myers  <joseph@codesourcery.com>
13521
13522         * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
13523         i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
13524         m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
13525         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
13526         excluding more specific h8300-*-* and sh-*-* targets.
13527
13528 2008-07-10  Daniel Berlin  <dberlin@dberlin.org>
13529
13530         * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
13531         (eliminate): Ditto.
13532         (execute_pre): Call loop_optimizer_finalize in early exit.
13533
13534 2008-07-10  Jakub Jelinek  <jakub@redhat.com>
13535
13536         PR middle-end/36790
13537         * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
13538         uids in the bitmap, not just VAR_DECL uids.
13539
13540         PR rtl-optimization/36419
13541         * combine-stack-adj.c (adjust_frame_related_expr): New function.
13542         (combine_stack_adjustments_for_block): Call it if needed.  Delete
13543         correct insn.
13544         * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
13545         DW_CFA_GNU_args_size if CSA pass merged some adjustments into
13546         prologue sp adjustment.
13547
13548 2008-07-10  Peter Maydell  <pmaydell@chiark.greenend.org.uk>
13549
13550         PR other/28322
13551         * opts.c (print_ignored_options): Report postponed diagnostics for
13552         unknown -Wno-* options as warnings, not errors.
13553         (postpone_unknown_option_error): Renamed to...
13554         (postpone_unknown_option_warning): ... this.
13555
13556 2008-07-09  Doug Kwan  <dougkwan@google.com>
13557
13558         Revert:
13559         2008-07-08  Doug Kwan  <dougkwan@google.com>
13560
13561         * config/arm/arm.opt (mandroid): New option.
13562         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
13563         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
13564         (CC1_SPEC): Same.
13565         (CC1PLUS_SPEC): Same.
13566         (LIB_SPEC): Same.
13567         (STARTFILE_SPEC): Same.
13568         (ENDFILE_SPEC): Same.
13569         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
13570         used.
13571
13572 2008-07-09  Richard Sandiford  <rdsandiford@googlemail.com>
13573
13574         PR target/35802
13575         * config/mips/mips.h (reg_class): Remove V1_REG.
13576         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
13577         * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
13578         instead of V1_REGS.
13579         (mips_get_tp): New function.
13580         (mips_legitimize_tls_address): Use it.
13581         * config/mips/constraints.md (v): Delete.
13582         * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
13583         (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
13584         After reload, split into a move and ...
13585         (*tls_get_tp_<mode>_split): ...this new instruction.
13586
13587 2008-07-09  David Daney  <ddaney@avtrex.com>
13588
13589         * config/mips/driver-native.c: Include coretypes.h and tm.h.
13590
13591 2008-07-09  Jakub Jelinek  <jakub@redhat.com>
13592
13593         * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
13594         (push_gimplify_context): Don't allocate temp_htab nor c itself here.
13595         Add c argument.
13596         (pop_gimplify_context): Check c->temp_htab instead of optimize whether
13597         htab_delete should be called.  Don't free c.
13598         (lookup_tmp_var): Create temp_htab lazily.
13599         (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
13600         gimplify_body, force_gimple_operand): Adjust push_gimplify_context
13601         callers.
13602         * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
13603         lower_omp_ordered, lower_omp_critical, lower_omp_for,
13604         create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
13605         * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
13606         * tree-sra.c (generate_element_init): Likewise.
13607         * tree-mudflap.c (execute_mudflap_function_ops,
13608         execute_mudflap_function_decls): Likewise.
13609         * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
13610         * tree-gimple.h (struct gimplify_ctx): New type.
13611         (push_gimplify_context): Adjust prototype.
13612
13613 2008-07-09  Daniel Berlin  <dberlin@dberlin.org>
13614
13615         * tree-ssa-pre.c (phi_translate_1): Update placement of
13616         add_to_value calls.
13617
13618 2008-07-09  Anatoly Sokolov  <aesok@post.ru>
13619
13620         * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
13621         * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
13622         (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
13623         * targhooks.c (default_hard_regno_scratch_ok): New function.
13624         * targhooks.h (default_hard_regno_scratch_ok): Declare function.
13625         * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
13626         * recog.c:  Include "target.h".
13627         (peep2_find_free_register): Add check for global regs. Add target
13628         specific check.
13629         * Makefile.in (recog.o): Depend on target.h.
13630
13631 2008-07-09  Kaz Kojima  <kkojima@gcc.gnu.org>
13632
13633         * config/sh/sh.c (sh_canonical_va_list_type): New.
13634         (TARGET_CANONICAL_VA_LIST_TYPE): Define.
13635
13636 2008-07-09  Raksit Ashok <raksit@google.com>
13637
13638         * doc/invoke.texi (Option Summary): Mention new option
13639         -Wdisallowed-function-list=...
13640         (Warning Options): Document -Wdisallowed-function-list=...
13641         * common.opt (Wdisallowed-function-list=): New flag.
13642         * flags.h (warn_disallowed_functions): External definition of new
13643         boolean warning flag.
13644         (warn_if_disallowed_function_p): Declare new function.
13645         * opts.c (warning_disallowed_functions): New static variable.
13646         (warn_disallowed_functions): New boolean warning flag.
13647         (warn_if_disallowed_function_p): New function.
13648         (add_comma_separated_to_vector): Rename
13649         add_instrument_functions_exclude_list to this.
13650         (common_handle_option): Handle new option. Rename calls to
13651         add_instrument_functions_exclude_list into calls to
13652         add_comma_separated_to_vector.
13653         * c-parser.c (c_parser_postfix_expression_after_primary): New warning
13654         based on flag warn_disallowed_functions.
13655
13656 2008-07-09  Christian Bruel  <christian.bruel@st.com>
13657
13658         * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
13659          instead of get_attr_length.
13660
13661 2008-07-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13662
13663         * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
13664         keywords.
13665         * genemit.c (gen_insn): Likewise.
13666         * gengtype.c (note_def_vec): Likewise.
13667         * gengtype.h (note_def_vec): Likewise.
13668         * genoutput.c (struct data, output_insn_data, process_template,
13669         gen_expand, gen_split, note_constraint): Likewise.
13670         * genrecog.c (new_decision, add_to_sequence, factor_tests,
13671         make_insn_sequence): Likewise.
13672         * gensupport.c (record_insn_name): Likewise.
13673
13674 2008-07-08  Doug Kwan  <dougkwan@google.com>
13675
13676         * config/arm/arm.opt (mandroid): New option.
13677         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
13678         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
13679         (CC1_SPEC): Same.
13680         (CC1PLUS_SPEC): Same.
13681         (LIB_SPEC): Same.
13682         (STARTFILE_SPEC): Same.
13683         (ENDFILE_SPEC): Same.
13684         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
13685         used.
13686
13687 2008-07-08  Raksit Ashok  <raksit@google.com>
13688
13689         * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
13690         (set_storage_via_setmem): Fix expected_align parameter.
13691         * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
13692         missing from the list.
13693         * doc/md.texi (movmem): Explicitly state that expected alignment is
13694         to be expressed in bytes.
13695         (setmem): Explicitly state that expected alignment is to be expressed
13696         in bytes.
13697
13698 2008-07-08  Joseph Myers  <joseph@codesourcery.com>
13699
13700         * reload.c (find_reloads_subreg_address): Do not require validity
13701         of address in original mode before reloading address.
13702
13703 2008-07-07  Tianwei Sheng  <tianweis@google.com>
13704
13705         * df-core.c (df_remove_problem): Adjust the access to avoid out of
13706         bounds array access.
13707
13708 2008-07-08  Jakub Jelinek  <jakub@redhat.com>
13709
13710         * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
13711
13712 2008-07-05  Daniel Berlin  <dberlin@dberlin.org>
13713
13714         Fix PR tree-optimization/23455
13715         Fix PR tree-optimization/35286
13716         Fix PR tree-optimization/35287
13717         * Makefile.in (OBJS-common): Remove tree-vn.o.
13718         (tree-vn.o): Remove.
13719         * dbgcnt.def: Add treepre_insert debug counter.
13720         * gcc/tree-flow.h (add_to_value): Updated for other changes.
13721         (debug_value_expressions): Ditto.
13722         (print_value_expressions): Ditto.
13723         * tree-pretty-print.c (dump_generic_node): Updated for
13724         VALUE_HANDLE removal.
13725         * tree-ssa-dom.c (record_equality): Ditto.
13726         (cprop_operand): Ditto.
13727         (lookup_avail_expr): Ditto.
13728         * tree-ssa-threadedge.c
13729         (record_temporary_equivalences_from_stmts_at_dest): Ditto.
13730         (simplify_control_stmt_condition): Ditto.
13731         * tree.c (tree_code_size): Ditto.
13732         (tree_node_structure): Ditto.
13733         (iterative_hash_expr): Ditto.
13734         * tree.def: Ditto.
13735         * tree.h (VALUE_HANDLE_ID): Ditto.
13736         (VALUE_HANDLE_EXPR_SET): Ditto.
13737         (struct tree_value_handle): Ditto.
13738         (union tree_node): Ditto.
13739         * treestruct.def: Ditto.
13740         * tree-vn.c: Removed.
13741         * tree-ssa-pre.c: Rewritten entirely.
13742         * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
13743         (constant_value_ids): Ditto.
13744         (vn_nary_op_t): Moved to header.
13745         (vn_phi_t): Ditto.
13746         (vn_reference_op_t): Ditto
13747         (vn_reference_t): Ditto.
13748         (next_value_id): New variable.
13749         (VN_INFO): Add an assert.
13750         (vn_constant_eq): New function.
13751         (vn_constant_hash): Ditto.
13752         (get_or_alloc_constant_value_id): Ditto.
13753         (value_id_constant_p): Ditto.
13754         (vn_reference_compute_hash): De-staticify.
13755         (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
13756         Disable some code with a FIXME.  Remove VALUE_HANDLE use.
13757         (valueize_refs): Update opcode if it changes from ssa name to constant.
13758         (vn_reference_lookup_1): Add new argument.
13759         (vn_reference_lookup):  Ditto.
13760         (vn_reference_lookup_pieces): New function.
13761         (vn_reference_insert): Add return type. Modify to deal with value ids.
13762         (vn_reference_insert_pieces):  New function.
13763         (vn_nary_op_compute_hash): De-staticify.
13764         (vn_nary_op_eq): Ditto.
13765         (vn_nary_op_lookup_pieces): New function.
13766         (vn_nary_op_lookup): Add new argument.
13767         (vn_nary_op_insert_pieces): New function.
13768         (vn_nary_op_insert): Add return type. Modify to deal with value ids.
13769         (vn_phi_insert): Ditto.
13770         (visit_unary_op): Update for callee changes.
13771         (visit_binary_op): Ditto.
13772         (visit_reference_op_load): Ditto.
13773         (visit_reference_op_store): Ditto.
13774         (init_scc_vn): Init next_value_id, constant_to_value_id and
13775         constant_value_ids.
13776         (free_scc_vn): Free them.
13777         (set_hashtable_value_ids): New function.
13778         (run_scc_vn): Use it.
13779         (get_max_value_id): New function.
13780         (get_next_value_id): Ditto.
13781         (expressions_equal_p): Moved from tree-vn.c
13782         (sort_vuses): Ditto.
13783         (sort_vuses_heap): Ditto.
13784         * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
13785         above).
13786         * tree.c (iterative_hash_hashval_t): Made non-static
13787         * tree.h (iterative_hash_hashval_t): Declare it.
13788
13789 2008-07-08  Martin Jambor  <mjambor@suse.cz>
13790
13791         * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
13792         instead of ipa_create_node_params.
13793         (ipcp_driver): Allocate infos with ipa_check_create_node_params and
13794         ipa_check_create_edge_args, free them with
13795         free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
13796
13797         * ipa-prop.c: Include flags.h and tree-inline.h.
13798         (ipa_node_params_vector): New variable.
13799         (ipa_edge_args_vector): New variable.
13800         (edge_removal_hook_holder): New variable.
13801         (node_removal_hook_holder): New variable.
13802         (edge_duplication_hook_holder): New variable.
13803         (node_duplication_hook_holder): New variable.
13804         (ipa_detect_param_modifications): Check for presence of modified flags.
13805         (ipa_compute_jump_functions): Check for presence of jump functions.
13806         (ipa_free_edge_args_substructures): New function.
13807         (ipa_create_node_params): Removed.
13808         (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
13809         (ipa_free_node_params_substructures): New function.
13810         (ipa_free_all_node_params): Changed to deallocate the on-the-side
13811         vector.
13812         (ipa_edge_removal_hook): New function.
13813         (ipa_node_removal_hook): New function.
13814         (duplicate_array): New function.
13815         (ipa_edge_duplication_hook): New function.
13816         (ipa_node_duplication_hook): New function.
13817         (ipa_register_cgraph_hooks): New function.
13818         (ipa_unregister_cgraph_hooks): New function.
13819         (free_all_ipa_structures_after_ipa_cp): New function.
13820
13821         * ipa-prop.h: Include vec.h.
13822         (ipa_node_params_t): New typedef with vector types for it.
13823         (ipa_edge_args_t):  New typedef with vector types for it.
13824         (IPA_NODE_REF): Changed to access an on-the-side vector.
13825         (IPA_EDGE_REF): Changed to access an on-the-side vector.
13826         (ipa_check_create_node_params): New function.
13827         (ipa_check_create_edge_args): New function.
13828
13829         * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h.  Converted
13830         all users.
13831
13832 2008-07-07  Tom Tromey  <tromey@redhat.com>
13833
13834         * configure, config.in: Rebuilt.
13835         * configure.ac: Don't check for scandir or alphasort.
13836
13837 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
13838
13839         * config/arm/arm.c (arm_init_neon_builtins): Register built-in
13840         types immediately after creating them.
13841
13842 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
13843
13844         * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
13845
13846 2008-07-07  Fernando Pereira <fernando@cs.ucla.edu>
13847
13848         * tree-ssa-structalias.c (compute_points_to_sets): Add call to
13849         dump_constraint_graph.
13850         (dump_constraint_edge): New function.
13851         (dump_constraint_graph): New function.
13852         (debug_constraint_graph): New function.
13853         (dump_constraint): Removed useless comparison.
13854         * tree-ssa-structalias.h (dump_constraint_edge): Declare.
13855         (dump_constraint_graph): Declare.
13856         (debug_constraint_graph): Declare.
13857         * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
13858
13859 2008-07-07  Kai Tietz  <kai.tietz@onevision.com>
13860
13861         * config/i386/i386.c (is_va_list_char_pointer): New.
13862         (ix86_va_start): Replace compare with ms_va_list_type_node
13863         by is_va_list_char_pointer.
13864         (ix86_gimplify_va_arg): Likewise.
13865
13866 2008-07-07  Martin Jambor  <mjambor@suse.cz>
13867
13868         * cgraph.c (cgraph_edge_max_uid): New variable.
13869         (struct cgraph_edge_hook_list): New type.
13870         (struct cgraph_node_hook_list): New type.
13871         (struct cgraph_2edge_hook_list): New type.
13872         (struct cgraph_2node_hook_list): New type.
13873         (first_cgraph_edge_removal_hook): New variable.
13874         (first_cgraph_node_removal_hook): New variable.
13875         (first_cgraph_edge_duplicated_hook): New variable.
13876         (first_cgraph_node_duplicated_hook): New variable.
13877         (cgraph_add_edge_removal_hook): New function.
13878         (cgraph_remove_edge_removal_hook): New function.
13879         (cgraph_call_edge_removal_hooks):  New function.
13880         (cgraph_add_node_removal_hook):  New function.
13881         (cgraph_remove_node_removal_hook):  New function.
13882         (cgraph_call_node_removal_hooks):  New function.
13883         (cgraph_add_edge_duplication_hook):  New function.
13884         (cgraph_remove_edge_duplication_hook):  New function.
13885         (cgraph_call_edge_duplication_hooks):  New function.
13886         (cgraph_add_node_duplication_hook):  New function.
13887         (cgraph_remove_node_duplication_hook):  New function.
13888         (cgraph_call_node_duplication_hooks):  New function.
13889         (cgraph_create_edge): Assign to edge uid.
13890         (cgraph_remove_edge): Call edge removal hooks.
13891         (cgraph_node_remove_callees): Call edge removal hooks.
13892         (cgraph_node_remove_callers): Call edge removal hooks.
13893         (cgraph_remove_node): Call node removal hooks.
13894         (cgraph_clone_edge): Call edge duplication hooks.
13895         (cgraph_clone_node): Call node duplication hooks.
13896
13897         * cgraph.h (cgraph_edge): New field uid.
13898         (cgraph_edge_hook): New type.
13899         (cgraph_node_hook): New type.
13900         (cgraph_2edge_hook): New type.
13901         (cgraph_2node_hook): New type.
13902
13903 2008-07-07  Andreas Tobler  <a.tobler@schweiz.org>
13904
13905         * config.in: Regenerate.
13906
13907 2008-07-07  Vladimir Prus  <vladimir@codesourcery.com>
13908
13909         * gcc.c (print_sysroot): New.
13910         (option_map, display_help, process_command): Handle the
13911         -print-sysroot option.
13912         (main): Print the sysroot if requested.
13913         * doc/invoke.texi (Debugging Options): Document -print-sysroot.
13914
13915 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13916
13917         PR target/34780
13918         * unwind-pe.h (size_of_encoded_value): add attribute unused.
13919
13920 2008-07-07  Daniel Jacobowitz  <dan@codesourcery.com>
13921
13922         * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
13923         (assign_parm_setup_block_p): Also check mode of entry_parm.
13924
13925 2008-07-07  Richard Guenther  <rguenther@suse.de>
13926
13927         * tree-ssa-structalias.h (set_used_smts): Remove.
13928         * tree-ssa-structalias.c (used_smts): Likewise.
13929         (set_used_smts): Likewise.
13930         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
13931         call to set_used_smts.
13932
13933 2008-07-07  Richard Guenther  <rguenther@suse.de>
13934
13935         * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
13936         (new_var_info): Set it to false.
13937         (solution_set_add): Correctly handle pointers outside a var and
13938         inside a field.
13939         (type_safe): Treat variables with is_full_var properly.
13940         (do_sd_constraint): Likewise.
13941         (do_ds_constraint): Likewise.
13942         (process_constraint): Remove zeroing offset for !use_field_sensitive.
13943         (get_constraint_for_ptr_offset): New function.
13944         (get_constraint_for_component_ref): For addresses at least include
13945         the last field of the variable.  Handle is_full_vars properly.
13946         (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
13947         (handle_ptr_arith): Remove.
13948         (find_func_aliases): Simplify assignment handling.
13949         (create_function_info_for): For parameter and result varinfos set
13950         is_full_var flag.
13951         (create_variable_info_for): Set is_full_var flag whenever we
13952         just created a single varinfo for a decl.
13953         (init_alias_vars): Initialize use_field_sensitive from
13954         max-fields-for-field-sensitive parameter.
13955
13956 2008-07-07  Richard Guenther  <rguenther@suse.de>
13957
13958         PR tree-optimization/36713
13959         * tree-flow-inline.h (is_call_used): New function.
13960         * tree-nrv.c (dest_safe_for_nrv_p): Use it.
13961         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
13962         * tree-outof-ssa.c (create_temp): Set call-used flag if required.
13963
13964 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
13965
13966         * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
13967
13968 2008-07-07  Mark Shinwell  <shinwell@codesourcery.com>
13969
13970         * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
13971
13972 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
13973             Nathan Sidwell  <nathan@codesourcery.com>
13974
13975         * config.gcc (m68k-*-linux*): Add with_arch.  Add sysroot-suffix.h
13976         to tm_file.  Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
13977         tmake_file.
13978         * config/m68k/t-linux: New.
13979         * doc/install.texi: Document m68k-*-linux is now multilibbed by
13980         default.
13981
13982 2008-07-07  Nathan Sidwell  <nathan@codesourcery.com>
13983
13984         * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
13985         * config/m68k/m68k-devices.def: Remove multilibs that only differ
13986         by MAC/EMAC.
13987
13988 2008-07-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13989
13990         * gcc.c (execute): Fix -Wc++-compat warning.
13991
13992 2008-07-06  H.J. Lu  <hongjiu.lu@intel.com>
13993
13994         PR target/36720
13995         * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
13996         constant for little endian.
13997
13998 2008-07-06  Richard Sandiford  <rdsandiford@googlemail.com>
13999
14000         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
14001         mips_base_mips16 instead of TARGET_MIPS16.
14002         (mips_base_mips16): Declare.
14003         * config/mips/mips.c (mips_base_mips16): Make global.
14004         (was_mips16_p): Remove GTY marker.
14005         (was_mips16_pch_p): New variable.
14006         (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
14007         (mips_override_options): Force to non-MIPS16 mode initially.
14008         Do not complain about MIPS16 PIC incompatibilities here.
14009         Only allow -mgpopt if -mexplicit-relocs is in force for
14010         non-MIPS16 code.
14011
14012 2008-07-06  Andreas Tobler  <a.tobler@schweiz.org>
14013
14014         * configure.ac: Check for caddr_t, define to char * if not defined.
14015         * configure: Regenerate.
14016         * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
14017         (mmap_gt_pch_use_address): Likewise.
14018         * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
14019
14020 2008-07-06  Richard Guenther  <rguenther@suse.de>
14021
14022         * tree-ssa-structalias.c (struct variable_info): Remove has_union.
14023         (new_var_info): Deal with it.
14024         (solution_set_add): Likewise.
14025         (bitpos_of_field): Make signed, fix.
14026         (struct fieldoff): Remove type and decl fields.  Make size field
14027         unsigned HOST_WIDE_INT.  Add has_unknown_size and may_have_pointers
14028         flags.
14029         (fieldoff_compare): Deal with it.
14030         (push_fields_onto_fieldstack): Remove has_union argument, glob
14031         adjacent non-pointer fields together.
14032         (create_function_info_for): Do not set has_union.
14033         (create_variable_info_for): Simplify.
14034
14035 2008-07-06  Kai Tietz  <kai.tietz@onevision.com>
14036
14037         * config.gcc (extra_headers): Add cross-stdarg.h for target
14038         x86_64-*-* and i?86-*-*.
14039         * config/i386/cross-stdarg.h: New.
14040         * builtins.c (std_fn_abi_va_list): New.
14041         (std_canonical_va_list_type): New.
14042         (stabilize_va_list): Replace va_list_type_node use by
14043         mtarget.canonical_va_list_type.
14044         (gimplify_va_arg_expr): Likewise.
14045         (expand_builtin_va_copy): Replace va_list_type_node use by
14046         mtarget.fn_abi_va_list.
14047         * tree-sra.c (is_va_list_type): New helper.
14048         (decl_can_be_decomposed_p): Replace
14049         va_list_type_node use by is_va_list_type.
14050         * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
14051         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
14052         * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
14053         * config/i386/i386-protos.h (ix86_get_valist_type): New.
14054         (ix86_enum_va_list): New.
14055         * config/i386/i386.c (sysv_va_list_type_node): New.
14056         (ms_va_list_type_node): New.
14057         (ix86_function_type_abi): Remove sorry.
14058         (ix86_build_builtin_va_list_abi): New.
14059         (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
14060         for 64-bit targets.
14061         (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
14062         (ix86_init_builtins_va_builtins_abi): New.
14063         (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
14064         for 64-bit targets.
14065         (ix86_handle_abi_attribute): New.
14066         (attribute_spec): Add sysv_abi and ms_abi.
14067         (ix86_fn_abi_va_list): New.
14068         (ix86_canonical_va_list_type): New.
14069         (ix86_enum_va_list): New.
14070         (TARGET_FN_ABI_VA_LIST): New.
14071         (TARGET_CANONICAL_VA_LIST_TYPE): New.
14072         * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
14073         * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
14074         (TARGET_CANONICAL_VA_LIST_TYPE): New.
14075         (TARGET_ENUM_VA_LIST): New.
14076         * expr.h (std_fn_abi_va_list): New.
14077         (std_canonical_va_list_type): New.
14078         * target-def.h (TARGET_FN_ABI_VA_LIST): New.
14079         (TARGET_CANONICAL_VA_LIST_TYPE): New.
14080         (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
14081         TARGET_CANONICAL_VA_LIST_TYPE.
14082         * target.h (struct gcc_target): Add fn_abi_va_list hook
14083         and canonical_va_list_type hook.
14084
14085 2008-07-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
14086
14087         * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
14088         integral and pointer types.
14089
14090 2008-07-04  Roger Sayle  <roger@eyesopen.com>
14091
14092         * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
14093         the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
14094
14095 2008-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
14096
14097         PR target/36684
14098         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
14099
14100 2008-07-04  Jakub Jelinek  <jakub@redhat.com>
14101
14102         * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
14103         build_gimple_modify_stmt.
14104         (build_arrays, gen_inbound_check): Likewise.  Force RHS to be
14105         gimple operand.  Use fold_build* instead of build*.
14106
14107 2008-07-04  Richard Guenther  <rguenther@suse.de>
14108
14109         * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
14110         (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
14111         properly to compute the reachability set if we do field-sensitive PTA.
14112         * invoke.texi (max-fields-for-field-sensitive): Document default.
14113         * opts.c (decode_options): Set max-fields-for-field-sensitive to
14114         100 for optimize >= 2.
14115
14116 2008-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14117
14118         * ggc-zone.c (lookup_page_table_if_allocated,
14119         set_page_table_entry, zone_find_object_size, alloc_small_page,
14120         alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
14121         new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
14122         -Wc++-compat and/or -Wcast-qual warnings.
14123
14124 2008-07-04  Alan Modra  <amodra@bigpond.net.au>
14125
14126         PR target/36634
14127         * config/rs6000/rs6000.md (call, call_value): Don't arrange for
14128         pic_offset_table_rtx to be marked as used here.
14129         (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
14130         TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
14131         (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
14132         (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
14133         !TARGET_SECURE_PLT.
14134
14135 2008-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14136
14137         * alloc-pool.c (hash_descriptor, eq_descriptor,
14138         alloc_pool_descriptor): Fix -Wc++-compat warnings.
14139         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
14140         Likewise.
14141         * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
14142         loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
14143         final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
14144         * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
14145         Likewise.
14146
14147 2008-07-03  Eric Botcazou  <ebotcazou@adacore.com>
14148
14149         * tree-flow.h (loop_only_exit_p): Declare.
14150         * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
14151         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
14152         the number of iterations if it is constant.  Otherwise, if this is the
14153         only possible exit of the loop, use the conservative estimate on the
14154         number of iterations of the entire loop if available.
14155
14156 2008-07-03  Richard Sandiford  <rdsandiford@googlemail.com>
14157
14158         * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
14159         * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
14160         Add synchronization functions.
14161         * config/sync.c: New file.
14162         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
14163         (LIBGCC_SYNC_CFLAGS): Likewise.
14164
14165 2008-07-03  Uros Bizjak  <ubizjak@gmail.com>
14166
14167         PR target/36710
14168         * config/i386/i386.md (mode): Add TF to "mode" attribute.
14169         (*pushtf_sse): New insn pattern.
14170         (pushtf splitters): New splitters.
14171
14172 2008-07-03  Michael Meissner  <gnu@the-meissners.org>
14173
14174         PR middle-end/35736
14175         * predict.c (build_predict_expr): Use void_type_node for the tree
14176         type, instead of NULL_TREE.
14177
14178 2008-07-03  H.J. Lu  <hongjiu.lu@intel.com>
14179
14180         * config/i386/i386.c (contains_aligned_value_p): Return true
14181         for TCmode.
14182         (ix86_data_alignment): Align TCmode to 128bits.
14183         (ix86_local_alignment): Likewise.
14184
14185 2008-07-03  Andrew Haley  <aph@redhat.com>
14186
14187         PR bootstrap/33304
14188         * vec.h (VEC_TA): New.
14189         (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
14190         DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
14191         * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
14192         (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
14193         (C_COMMON_FIXED_TYPES): Remove first arg.
14194         (C_COMMON_FIXED_MODE_TYPES): Likewise.
14195         * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
14196         MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
14197         not to use empty macro arguments.
14198
14199 2008-07-02  Joseph Myers  <joseph@codesourcery.com>
14200
14201         * config/alpha/vms_tramp.asm, config/arm/crti.asm,
14202         config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
14203         config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
14204         config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
14205         config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
14206         config/i386/sol2-gc1.asm, config/ia64/crti.asm,
14207         config/ia64/crtn.asm, config/m68hc11/larith.asm,
14208         config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
14209         config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
14210         config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
14211         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
14212         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
14213         config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
14214         config/rs6000/e500crtres64gpr.asm,
14215         config/rs6000/e500crtres64gprctr.asm,
14216         config/rs6000/e500crtrest32gpr.asm,
14217         config/rs6000/e500crtrest64gpr.asm,
14218         config/rs6000/e500crtresx32gpr.asm,
14219         config/rs6000/e500crtresx64gpr.asm,
14220         config/rs6000/e500crtsav32gpr.asm,
14221         config/rs6000/e500crtsav64gpr.asm,
14222         config/rs6000/e500crtsav64gprctr.asm,
14223         config/rs6000/e500crtsavg32gpr.asm,
14224         config/rs6000/e500crtsavg64gpr.asm,
14225         config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
14226         config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
14227         config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
14228         config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
14229         config/sparc/sol2-cn.asm: Remove .file directives.
14230
14231 2008-07-02  Richard Sandiford  <rdsandiford@googlemail.com>
14232
14233         * resource.c (mark_referenced_resources): Look inside
14234         UNSPEC_VOLATILEs and ASM_INPUTs.
14235
14236 2008-07-02  Ian Lance Taylor  <iant@google.com>
14237
14238         * rtlanal.c (add_reg_note): New function.
14239         * rtl.h (add_reg_note): Declare.
14240         * auto-inc-dec.c (attempt_change): Use add_reg_note.
14241         * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
14242         * builtins.c (expand_builtin_longjmp): Likewise.
14243         (expand_builtin_nonlocal_goto): Likewise.
14244         * calls.c (emit_call_1, expand_call): Likewise.
14245         * cfgexpand.c (add_reg_br_prob_note): Likewise.
14246         * cfglayout.c (fixup_reorder_chain): Likewise.
14247         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
14248         (commit_one_edge_insertion): Likewise.
14249         * combine.c (move_deaths, distribute_notes): Likewise.
14250         * df-problems.c (df_set_note): Likewise.
14251         * emit-rtl.c (link_cc0_insns, try_split): Likewise.
14252         (set_unique_reg_note): Likewise.
14253         (emit_copy_of_insn_after): Likewise.
14254         * expr.c (expand_expr_real): Likewise.
14255         * gcse.c (add_label_notes): Likewise.
14256         * haifa-sched.c (create_check_block_twin): Likewise.
14257         * jump.c (mark_jump_label_1): Likewise.
14258         * loop-doloop.c (add_test, doloop_modify): Likewise.
14259         * loop-unswitch.c (compare_and_jump_seq): Likewise.
14260         * lower-subreg.c (move_eh_region_note): Likewise.
14261         * optabs.c (emit_libcall_block): Likewise.
14262         * predict.c (predict_insn): Likewise.
14263         (combine_predictions_for_insn): Likewise.
14264         * recog.c (peephole2_optimize): Likewise.
14265         * regmove.c (try_auto_increment): Likewise.
14266         * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
14267         * reload.c (find_reloads): Likewise.
14268         * reload1.c (fixup_eh_region_note): Likewise.
14269         (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
14270         * reorg.c (delete_prior_computation): Likewise.
14271         (delete_computation, dbr_schedule): Likewise.
14272         * config/pa/pa.c (legitimize_pic_address): Likewise.
14273         * config/sh/sh.c (sh_reorg): Likewise.
14274
14275 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
14276
14277         PR target/36669
14278         * config/libgcc-glibc.ver: Add %exclude.
14279         * config/m32r/libgcc-glibc.ver: Likwise.
14280         * config/s390/libgcc-glibc.ver: Likwise.
14281         * config/sh/libgcc-glibc.ver: Likwise.
14282         * config/sparc/libgcc-sparc-glibc.ver: Likwise.
14283
14284         * config/i386/libgcc-glibc.ver: New.
14285
14286         * config/i386/libgcc-x86_64-glibc.ver: Removed.
14287
14288 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
14289
14290         * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
14291         from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
14292         i[34567]86-*-linux*, x86_64-*-linux*.  Add
14293         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
14294         i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
14295         x86_64-*-linux*.  Add i386/t-linux to tmake_file for
14296         i[34567]86-*-linux*, x86_64-*-linux*.
14297
14298         * libgcc-std.ver: Add empty GCC_4.4.0.
14299
14300         * mkmap-symver.awk: Support multiple versions per symbol.
14301
14302         * config/i386/i386.c (ix86_init_builtins): Always define
14303         __builtin_fabsq and __builtin_copysignq with fallbacks.
14304         (ix86_expand_builtin): Emit normal call for __builtin_fabsq
14305         and __builtin_copysignq if SSE2 isn't available.
14306
14307         * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
14308         (LIBGCC2_TF_CEXT): Likwise.
14309         (TF_SIZE): Likwise.
14310
14311         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
14312
14313         * config/i386/sfp-machine.h: Moved to libgcc.
14314
14315         * config/i386/sfp-machine.h: New.
14316         * config/i386/t-linux: Likwise.
14317
14318         * config/i386/t-darwin: Remove softfp_wrap_start and
14319         softfp_wrap_end.
14320         * config/i386/t-darwin64: Likewise.
14321
14322         * config/i386/t-fprules-softfp64: Renamed to ...
14323         * config/i386/t-fprules-softfp: This.
14324
14325         * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
14326         and softfp_wrap_end.
14327
14328 2008-07-02  Jason Merrill  <jason@redhat.com>
14329
14330         * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
14331
14332         * tree.c (ctor_to_list): New fn.
14333         * tree.h: Declare it.
14334         (CONSTRUCTOR_ELT): New macro.
14335         (CONSTRUCTOR_NELTS): New macro.
14336
14337 2008-07-02  Richard Guenther  <rguenther@suse.de>
14338
14339         * tree-ssa-structalias.c (struct variable_info): Reorder
14340         to fill padding on 64bit hosts.  Make collapsed_to an int.
14341         (get_varinfo_fc): Deal with that.
14342         (new_var_info): Likewise.
14343         (collapse_rest_of_var): Likewise.
14344
14345 2008-07-02  Joshua Sumali  <jsumali@redhat.com>
14346
14347         * doc/install.texi (--enable-java-home): Document.
14348         (--enable-aot-compile-rpm): Likewise.
14349         (--with-arch-directory): Likewise.
14350         (--with-os-directory): Likewise.
14351         (--with-origin-name): Likewise.
14352         (--with-arch-suffix): Likewise.
14353         (--with-jvm-root-dir): Likewise.
14354         (--with-jvm-jar-dir): Likewise.
14355         (--with-python-dir): Likewise.
14356
14357 2008-07-02  Richard Guenther  <rguenther@suse.de>
14358
14359         * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
14360         from decls explicitly.  Merge operand checking from tuples.
14361
14362 2008-07-02  Martin Jambor  <mjambor@suse.cz>
14363
14364         * tree-switch-conversion.c: Included timevar.h which I forgot before.
14365
14366 2008-07-02  Martin Jambor  <mjambor@suse.cz>
14367
14368         * tree-switch-conversion.c: Included timevar.h
14369         (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
14370
14371         * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
14372
14373 2008-07-02  Martin Jambor  <mjambor@suse.cz>
14374
14375         * tree-switch-conversion.c: Corrected various comments and
14376         whitespace issues
14377         (build_constructors): Fixed minor formatting mistakes.
14378
14379         * invoke.texi (Optimize Options): Corrected the
14380         switch-conversion-max-branch-ratio parameter.
14381
14382 2008-07-02  Mark Shinwell  <shinwell@codesourcery.com>
14383
14384         * final.c (asm_insn_count): Return zero for an empty asm body.
14385
14386 2008-07-02  Richard Guenther  <rguenther@suse.de>
14387
14388         * bitmap.h (bitmap_set_bit): Return bool.
14389         (bitmap_clear_bit): Likewise.
14390         * bitmap.c (bitmap_set_bit): Return if the bit changed.  Only
14391         write to the bitmap if it would.
14392         (bitmap_clear_bit): Likewise.
14393         * tree-ssa-structalias.c (add_implicit_graph_edge): Use
14394         bitmap_set_bit return value.
14395         (add_pred_graph_edge): Likewise.
14396         (add_graph_edge): Likewise.
14397         (do_sd_constraint): Likewise.
14398         (do_ds_constraint): Likewise.
14399
14400 2008-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14401
14402         * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
14403         Fix -Wc++-compat and/or -Wcast-qual warnings.
14404         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
14405         gen_regparm_prefix): Likewise.
14406         * vmsdbgout.c (write_modbeg, lookup_filename,
14407         vmsdbgout_source_line, vmsdbgout_init): Likewise.
14408
14409 2008-07-02  Danny Smith  <dannysmith@users.sourceforge.net>
14410
14411         * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
14412         defaults.h definition apply.
14413
14414 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
14415
14416         * function.c (assign_parm_remove_parallels): New.
14417         (assign_parm_setup_block_p): Do not return true for non-BLKmode
14418         PARALLELs.
14419         (assign_parm_setup_block): Do not handle them.
14420         (assign_parm_setup_reg, assign_parm_setup_stack): Call
14421         assign_parm_remove_parallels.
14422
14423 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
14424
14425         * c-typeck.c (convert_for_assignment): Use
14426         vector_targets_convertible_p.
14427         * c-common.c (vector_targets_convertible_p): New.
14428         * c-common.h (vector_targets_convertible_p): New prototype.
14429         * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
14430         opaque_p_V2SI_type_node.
14431
14432 2008-07-01  Steve Ellcey  <sje@cup.hp.com>
14433
14434         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
14435         RFmode constants.
14436
14437 2008-07-01  Uros Bizjak  <ubizjak@gmail.com>
14438
14439         * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
14440         TFmode constants via two element DImode vector for hosts with
14441         HOST_BITS_PER_WIDE_INT < 64.
14442         (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
14443         also for HOST_BITS_PER_WIDE_INT < 64.
14444
14445 2008-07-01  Richard Guenther  <rguenther@suse.de>
14446
14447         PR tree-optimization/36666
14448         * tree-ssa-structalias.c (get_constraint_for_1): Declare.
14449         (get_constraint_exp_from_ssa_var): Split into ...
14450         (get_constraint_exp_for_temp): ... this ...
14451         (get_constraint_for_ssa_var): ... and that.
14452         Return constraint expressions for all touched sub-fields
14453         if the results address is not taken.
14454         (process_constraint): Remove assertion that aggregate
14455         assignments do not happen at this place.
14456         (get_constraint_for_component_ref): Add address_p argument.
14457         Return constraint expressions for all touched sub-fields
14458         if the results address is not taken.
14459         (do_deref): Use get_constraint_exp_for_temp.
14460         (get_constraint_for_1): Rename from ...
14461         (get_constraint_for): ... this.  Add the old function as wrapper.
14462         (do_structure_copy): Use get_constraint_for_1.
14463
14464 2008-07-01  Martin Jambor  <mjambor@suse.cz>
14465
14466         * Makefile.in (tree-switch-conversion.o): Add.
14467         (OBJS-common): Add tree-swtch-conversion.o.
14468         * passes.c (init_optimization_passes): Add pass_convert_switch.
14469         * tree-pass.h: (pass_convert_switch): Add.
14470         * tree-switch-conversion.c: New file.
14471         * gcc.dg/tree-ssa/cswtch.c: New testcase.
14472         * common.opt (ftree-cswtch): New option.
14473         * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
14474         * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
14475         * opts.c (decode_options): Set flag_tree_switch_conversion when
14476         optimization level is >= 2.
14477         * doc/invoke.texi (Optimize Options): Added description of
14478         -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
14479
14480 2008-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14481
14482         * config/darwin-driver.c (darwin_default_min_version): Fix
14483         -Wc++-compat warnings.
14484
14485 2008-06-30  Uros Bizjak  <ubizjak@gmail.com>
14486
14487         * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
14488         of operand 0.
14489
14490 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
14491
14492         * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
14493
14494 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
14495
14496         PR rtl-optimization/34744
14497         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
14498         (df_scan_free_internal): Free data structures not
14499         allocated in storage pools.
14500         (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
14501         (df_refs_add_to_chains): Use df_scan_free_ref_vec and
14502         df_scan_free_mws_vec.
14503         * dse.c (dse_step6): Free offset_map_p and offset_map_n
14504         unconditionally.
14505
14506 2008-06-30  H.J. Lu  <hongjiu.lu@intel.com>
14507
14508         * config/i386/i386.c (contains_aligned_value_p): Return true
14509         for __float128.
14510         (ix86_function_arg_boundary): Return its natural boundary
14511         for __float128.
14512         (return_in_memory_32): Don't check TDmode.
14513         (ix86_split_to_parts): Support splitting into 4 parts and
14514         support TFmode for 32bit target.
14515         (ix86_split_long_move): Support splitting into 4 parts.
14516         (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
14517         for SSE2.
14518         (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
14519         (ix86_init_builtins): Here.
14520         (ix86_scalar_mode_supported_p): Always return true for TFmode.
14521         (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
14522         'q' and 'w', respectively.
14523
14524         * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
14525         TARGET_64BIT.
14526         (movtf_internal): Likewise.
14527         (<code>tf2): Likewise.
14528         (*absnegtf2_sse): Likewise.
14529         (copysign<mode>3): Likewise.
14530         (copysign<mode>3_const): Likewise.
14531         (copysign<mode>3_var): Likewise.
14532         (define_split UNSPEC_COPYSIGN): Likewise.
14533         * config/i386/sse.md (*nandtf3): Likewise.
14534         (<code>tf3): Likewise.
14535         (*<code>tf3): Likewise.
14536
14537 2008-06-30  Joey Ye  <joey.ye@intel.com>
14538             H.J. Lu  <hongjiu.lu@intel.com>
14539
14540         * global.c (compute_regsets): Set frame_pointer_needed here.
14541         * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
14542
14543 2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
14544
14545         * doc/install.texi (specific): Expand Windows build notes.
14546
14547 2008-06-30  Ira Rosen  <irar@il.ibm.com>
14548
14549         PR tree-optimization/36648
14550         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
14551         number of prolog iterations by step. Fix the comment.
14552
14553 2008-06-30  Richard Guenther  <rguenther@suse.de>
14554
14555         PR middle-end/36671
14556         * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
14557         handle calls from ECF_MALLOC functions.
14558         (handle_pure_call): ECF_MALLOC functions do not return
14559         call-used memory.
14560         (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
14561
14562 2008-06-29  Andreas Schwab  <schwab@suse.de>
14563
14564         * config/m68k/m68k.c (print_operand): Always print a float
14565         constant in hex.
14566         * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
14567         (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
14568         Remove macros.
14569
14570         * config/rs6000/x-linux64: Remove never used file.
14571
14572 2008-06-29  Richard Guenther  <rguenther@suse.de>
14573
14574         * tree-ssa-structalias.h (compute_points_to_sets): Adjust
14575         prototype.
14576         (struct alias_info): Move ...
14577         * tree-ssa-alias.c: ... here.
14578         (update_alias_info): Declare.
14579         (compute_may_aliases): Call it.
14580         (update_alias_info): New function.
14581         * tree-ssa-structalias.c (update_alias_info): Move ...
14582         * tree-ssa-alias.c (update_alias_info_1): ... here.
14583         * tree-ssa-structalias.c (process_constraint_1): Remove
14584         unused from_call argument.  Rename to ...
14585         (process_constraint): ... this.  Delete old wrapper.
14586         (make_constraint_to): Adjust callers.
14587         (handle_const_call): Likewise.
14588         (handle_pure_call): Likewise.
14589         (init_base_vars): Likewise.
14590         (handle_lhs_call): Likewise.  Remove unnecessary constraint.
14591         (find_func_aliases): We don't need structure copies for
14592         complex types.
14593         (make_constraint_from_anything): Remove.
14594         (create_variable_info_for): For globals make constraints
14595         from escaped, not from anything.
14596         (compute_points_to_sets): Do not call update_alias_info.
14597         (ipa_pta_execute): Use make_constraint_from.
14598
14599 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14600
14601         * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
14602         (bitmap.o-warn, dominance.o-warn): New.
14603         * configure.ac (cxx_compat_warn): Delete.
14604         (loose_warn): Add -Wcast-qual and -Wc++-compat.
14605         * system.h: Remove #pragma diagnostic for -Wcast-qual and
14606         -Wc++-compat.
14607         * configure: Regenerate.
14608
14609         * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
14610         warnings.
14611
14612 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14613
14614         * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
14615         * df-scan.c (df_notes_rescan): Likewise.
14616         * ggc-page.c (set_page_table_entry): Likewise.
14617         * intl.c (gcc_gettext_width): Likewise.
14618         * varasm.c (get_unnamed_section, get_noswitch_section,
14619         get_section): Likewise.
14620
14621 2008-06-28  Andrew Jenner  <andrew@codesourcery.com>
14622
14623         * regrename.c (build_def_use): Don't copy RTX.
14624
14625 2008-06-28  Sandra Loosemore  <sandra@codesourcery.com>
14626
14627         * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
14628         (Type Attributes): Fix nesting of @table and @subsection.  Adjust
14629         punctuation.  Use @ref instead of @xref.
14630         (Function Names): Remove stray @display/@end display.
14631         (C++ Attributes): Use @ref instead of @xref.
14632         (Deprecated Features): Fix punctuation around @xref.
14633         (Backwards Compatibility): Likewise.
14634         * doc/rtl.texi (Incdec): Remove stray @table/@end table.
14635
14636 2008-06-28  Joseph Myers  <joseph@codesourcery.com>
14637
14638         * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
14639         constants for E500 double.
14640
14641 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14642
14643         * doc/rtl.texi (const_vector): Document const_fixed as legitimate
14644         element type of const_vector.
14645
14646 2008-06-28  Uros Bizjak  <ubizjak@gmail.com>
14647
14648         * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
14649         Remove FLAGS_REG clobber from expander pattern.
14650         (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
14651         (anddi3, andsi3, andhi3, andqi3): Ditto.
14652         (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
14653         (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
14654         (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
14655         (ashlsi3, ashlhi3, ashlqi3): Ditto.
14656         (ashrsi3, ashrhi3, ashrqi3): Ditto.
14657         (lshrsi3, lshrhi3, lshrqi3): Ditto.
14658         (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
14659         (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
14660
14661 2008-06-28  Richard Guenther  <rguenther@suse.de>
14662
14663         * tree-ssa-structalias.c (callused_id, var_callused,
14664         callused_tree): Add.
14665         (handle_pure_call): New function.
14666         (find_func_aliases): Call it.
14667         (find_what_p_points_to): Handle the call-used set.
14668         (clobber_what_escaped): Likewise.
14669         (compute_call_used_vars): New function.
14670         (init_base_vars): Init the call-used variable.
14671         (do_sd_constraint): Do not propagate the solution from CALLUSED
14672         but use CALLUSED as a placeholder.
14673         (solve_graph): Likewise.
14674         * tree-flow-inline.h (gimple_call_used_vars): New function.
14675         * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
14676         (compute_call_used_vars): Declare.
14677         * tree-ssa-alias.c (set_initial_properties): Call
14678         compute_call_used_vars.
14679         (reset_alias_info): Clear call-used variables.
14680         (add_call_clobber_ops): Assert we are not called for const/pure
14681         functions.  Remove handling of them.
14682         (add_call_read_ops): Handle pure functions by adding the
14683         call-used set of variables as VUSEs.
14684         * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
14685         (delete_tree_ssa): Free it.
14686         * tree-dfa.c (remove_referenced_var): Clear the var from the
14687         call-used bitmap.
14688
14689 2008-06-28  Kai Tietz  <kai.tietz@onevision.com>
14690
14691         * tree.c (build_varargs_function_type_list): New.
14692         (build_function_type_list_1): New.
14693         (build_function_type_list): Use build_function_type_list_1.
14694         * tree.h (build_varargs_function_type_list): New.
14695
14696 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14697
14698         PR target/34856
14699         * config/spu/spu.c (spu_builtin_splats): Do not generate
14700         invalid CONST_VECTOR expressions.
14701         (spu_expand_vector_init): Likewise.
14702
14703 2008-06-28  Richard Sandiford  <rdsandiford@googlemail.com>
14704
14705         * optabs.c (libfunc_decls): New variable.
14706         (libfunc_decl_hash, libfunc_decl_eq): New functions.
14707         (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
14708         for the same function twice.
14709
14710 2008-06-27  Uros Bizjak  <ubizjak@gmail.com>
14711
14712         * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
14713         ix86_expand_binary_operator directly.
14714         (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
14715         for operand 2.
14716         (*ashrti3_1): Ditto.
14717         (*lshrti3_1): Ditto.
14718         (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
14719         (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
14720         using only one splitter.  Conditionaly execute splitter before or
14721         after peephole2 pass.
14722         (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
14723         (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
14724         Use only one alternative in asm template.
14725         (x86_64_shld): Compress operand 2 constraints. Use only one alternative
14726         in asm template.
14727         (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
14728         "J" operand constraint for operand 2.
14729         (*ashldi3_cconly_rex64): Ditto.
14730         (*ashrdi3_cmp_rex64): Ditto.
14731         (*ashrdi3_cconly_rex64): Ditto.
14732         (*lshrdi3_cmp_rex64): Ditto.
14733         (*lshrdi3_cconly_rex64): Ditto.
14734         * config/i386/predicates.md (const_1_to_63_operand): New predicate.
14735         * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
14736         (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
14737         gen_x86_shrd_1.
14738
14739 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
14740
14741         * gimplify.c (omp_is_private): Don't return true if decl is not
14742         already private on #pragma omp for or #pragma omp parallel for.
14743
14744         PR debug/36617
14745         * tree-cfg.c (struct move_stmt_d): Replace block field with
14746         orig_block and new_block fields.
14747         (move_stmt_r): Only set TREE_BLOCK to p->new_block if
14748         if it used to be NULL, p->orig_block or if p->orig_block is NULL.
14749         (move_block_to_fn): Replace vars_map and new_label_map arguments
14750         with struct move_stmt_d pointer.
14751         (replace_block_vars_by_duplicates): New function.
14752         (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
14753         move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
14754         all subblocks of ORIG_BLOCK to the new function.  Call
14755         replace_block_vars_by_duplicates.
14756         * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
14757         * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
14758         BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
14759         Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
14760         (expand_omp): Temporarily set input_location to the location of
14761         region's controlling stmt.
14762         (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
14763         BIND_EXPR, push ctx->block_vars and gimplification vars into
14764         the BIND_EXPR and its block's BLOCK_VARS instead of directly
14765         into dest function.
14766         (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
14767         there are any BLOCK_VARS.
14768         (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
14769         OMP_PARALLEL or OMP_TASK stmt.
14770         (lower_omp): Save and restore input_location around the lower_omp_1
14771         call.
14772
14773 2008-06-27  Richard Guenther  <rguenther@suse.de>
14774
14775         PR tree-optimization/36400
14776         PR tree-optimization/36373
14777         PR tree-optimization/36344
14778         * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
14779         var_nonlocal, nonlocal_tree, nonlocal_id): New globals
14780         (update_alias_info): Remove call clobbering code.
14781         (make_constraint_to): New helper function.
14782         (make_escape_constraint): Likewise.
14783         (handle_rhs_call): Use it on all pointer containing arguments.
14784         Also mark the static chain escaped.
14785         (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
14786         instead of ANYTHING.
14787         (make_constraint_from): New helper split out from ...
14788         (make_constraint_from_anything): ... here.
14789         (find_func_aliases): Add constraints for escape sites.
14790         (intra_create_variable_infos): Make constraints from NONLOCAL
14791         for parameters.
14792         (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
14793         as ANYTHING.
14794         (clobber_what_p_points_to): Remove.
14795         (clobber_what_escaped): New function.
14796         (init_base_vars): Init NONLOCAL and ESCAPED.
14797         (do_sd_constraint): Do not propagate the solution from ESCAPED
14798         but use ESCAPED as a placeholder.
14799         (solve_graph): Likewise.
14800         * tree-flow.h (clobber_what_p_points_to): Remove.
14801         (clobber_what_escaped): Declare.
14802         * tree-ssa-alias.c (set_initial_properties): Call it.
14803         Remove code clobbering escaped pointers.
14804
14805 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
14806
14807         * function.c (allocate_struct_function): Only allocate a unique
14808         funcdef_no if the decl is nonzero.
14809
14810 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
14811
14812         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
14813         * config/mips/mips.c (mips_split_const_insns): New function.
14814         * config/mips/mips.md (move_type): New attribute.
14815         (mode): Move attribute definition earlier in file.  Add "TI" and "TF".
14816         (dword_mode): New attribute.
14817         (type): Avoid long line.  Map "move_type"s to "type"s,
14818         choosing "multi" for doubleword moves if appropriate.
14819         Swap MTC/MFC comments to match their declaration order.
14820         (extended_mips16): Default to "yes" if "move_type" is "sll0",
14821         "type" is "branch" or "jal" is "direct".
14822         (length): Handle "extended_mips16" first.  Make the default
14823         "0" for "ghost" instructions.  Set the length from "move_type".
14824         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
14825         of "type", with "sll0" for the register alternative.  Remove the
14826         "extended_mips16" attribute.
14827         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
14828         of "type", with "shift_shift" for the register alternative.
14829         Remove the "length" attribute.
14830         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
14831         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
14832         of "type", with "andi" for the register alternative.
14833         (*zero_extendqihi2): Likewise.
14834         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
14835         of "andi" instead of a "type" of "arith".
14836         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
14837         instead of "type".
14838         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
14839         (mov_<store>r, *mov<mode>_ra): Likewise.
14840         (extendsidi2): Use "move_type" instead of "type", with "move"
14841         for the register alternative.
14842         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
14843         of "type", with "signext" for the register alternative.
14844         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
14845         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
14846         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
14847         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
14848         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
14849         (unnamed branch insn): Likewise.
14850         (*movdi_gp32_fp64): Fold into...
14851         (*movdi_32bit): ...here.
14852         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
14853         (*movdf_hardfloat): ...this new pattern.
14854         (*movdf_softfloat): Remove redundant FPR alternatives.
14855         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
14856         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
14857         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
14858         the "move" attribute.
14859         (*movdi_32bit): Use "move_type" instead of "type" and remove the
14860         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
14861         and "store" for COP loads and stores.
14862         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
14863         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
14864         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
14865         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
14866         (*movtf_mips16, *movv2sf): Likewise.
14867         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
14868         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
14869         (mfhc1<mode>): Use "move_type" instead of "move".
14870         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
14871         (loadgp_blockage): Remove the "length" attribute.
14872         (blockage, set_got_version, update_got_version): Likewise.
14873         (call_internal): Remove the "extended_mips16" attribute.
14874         (call_value_internal, call_value_multiple_internal): Likewise.
14875         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
14876         instead of "move".
14877         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
14878         the "length" attribute.
14879
14880 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14881
14882         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
14883         -Wcast-qual warnings.
14884         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
14885         handle_pragma_pop_macro): Likewise.
14886         * collect2.c (resolve_lib_name): Likewise.
14887         * config/arc/arc.c (arc_init): Likewise.
14888         * config/arm/arm.c (neon_builtin_compare,
14889         locate_neon_builtin_icode): Likewise.
14890         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
14891         * config/bfin/bfin.c (bfin_init_machine_status,
14892         bfin_optimize_loop): Likewise.
14893         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
14894         * config/cris/cris.c (cris_init_expanders): Likewise.
14895         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
14896         * config/darwin.c (machopic_indirection_eq,
14897         machopic_indirection_name, machopic_output_indirection): Likewise.
14898         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
14899         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
14900         frv_optimize_membar): Likewise.
14901         * config/i386/cygwin.h (mingw_scan,
14902         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
14903         * config/i386/cygwin1.c (mingw_scan): Likewise.
14904         * config/i386/i386.c (machopic_output_stub): Likewise.
14905         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
14906         i386_pe_unique_section): Likewise.
14907         * config/ia64/ia64.c (ia64_init_machine_status,
14908         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
14909         Likewise.
14910         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
14911         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
14912         * config/m68k/m68k.c (m68k_handle_option,
14913         m68k_sched_md_init_global): Likewise.
14914         * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
14915         mcore_unique_section): Likewise.
14916         * config/mips/mips.c (mips_block_move_straight,
14917         mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
14918         Likewise.
14919         * config/mmix/mmix.c (mmix_init_machine_status,
14920         mmix_encode_section_info): Likewise.
14921         * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
14922         * config/rs6000/rs6000.c (rs6000_init_machine_status,
14923         print_operand_address, output_toc, redefine_groups,
14924         rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
14925         * config/s390/s390.c (s390_init_machine_status): Likewise.
14926         * config/score/score.c (score_block_move_straight,
14927         score_block_move_loop_body): Likewise.
14928         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
14929         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
14930         * emit-rtl.c (find_auto_inc): Likewise.
14931         * gcc.c (translate_options, process_command): Likewise.
14932         * reorg.c (dbr_schedule): Likewise.
14933         * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
14934         * xcoffout.c (xcoffout_declare_function): Likewise.
14935
14936 2008-06-27  Daniel Berlin  <dberlin@dberlin.org>
14937
14938         * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
14939         ipa-pta working again.
14940
14941 2008-06-27  David Edelsohn  <edelsohn@gnu.org>
14942
14943         * config/rs6000/t-aix52: Append large data option to LDFLAGS for
14944         genautomata.
14945
14946 2008-06-27  Edmar Wienskoski  <edmar@freescale.com>
14947
14948         * config.gcc (powerpc*-*-*): Add new core e500mc.
14949         * config/rs6000/e500mc.md: New file.
14950         * config/rs6000/rs6000.c (processor_costs): Add new costs for
14951         e500mc.
14952         (rs6000_override_options): Add e500mc case to
14953         processor_target_table. Altivec and Spe options not allowed
14954         with e500mc. Add isel instruction to e500mc by
14955         default. Initialize rs6000_cost for e500mc.
14956         (rs6000_issue_rate): Set issue rate for e500mc.
14957         * config/rs6000/rs6000.h (processor_type): Add
14958         PROCESSOR_PPCE500MC.
14959         (ASM_CPU_SPEC): Add e500mc.
14960         Set TARGET_ISEL to rs6000_isel.
14961         * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
14962         (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
14963         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
14964         Include e500mc.md.
14965         * doc/invoke.texi: Add e500mc to list of cpus.
14966
14967 2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
14968
14969         PR c/34867
14970         * c-lex.c (lex_charconst): Initialize unsignedp.
14971
14972 2008-06-27  Olivier Hainque  <hainque@adacore.com>
14973
14974         * gimplify.c (gimplify_modify_expr_to_memset): Assert our
14975         documented assumptions.
14976
14977 2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>
14978
14979         * dwarf2out.c: Remove trailing white spaces.  Break long line
14980         in comments.
14981
14982 2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>
14983
14984         * libfuncs.h (LTI_synchronize): New libfunc_index.
14985         (synchronize_libfunc): Declare.
14986         * builtins.c (expand_builtin_synchronize): Consider using
14987         synchronize_libfunc before falling back on an asm blockage.
14988         * config/mips/mips.c: Include libfuncs.h
14989         (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
14990
14991 2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>
14992
14993         * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
14994         parameter.  Copy stack_reg to r11 where appropriate.
14995         (no_global_regs_above): Add gpr parameter.
14996         (rs6000_stack_info): Only add padding for SPE save area if we
14997         are saving SPE GPRs and CR.
14998         (saveres_routine_syms): New variable.
14999         (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
15000         Define.
15001         (rs6000_savres_routine_sym): New function.
15002         (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
15003         split out of...
15004         (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
15005         rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
15006         Tweak FPR out-of-line saving.
15007         (rs6000_make_savres_rtx): New function.
15008         (rs6000_use_multiple_p): New function.
15009         (rs6000_savres_strategy): New function.
15010         (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
15011         out-of-line if appropriate.
15012         * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
15013         if we are optimizing for size.
15014         (GP_SAVE_INLINE): Define.
15015         (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
15016         * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
15017         * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
15018         * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
15019         (*save_fpregs_<mode>): Add use of r11.
15020         (*restore_gpregs_<mode>): New insn.
15021         (*return_and_restore_gpregs_<mode>): New insn.
15022         (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
15023         use r11.
15024         * config/rs6000/spe.md (*save_gpregs_spe): New insn.
15025         (*restore_gpregs_spe): New insn.
15026         (*return_and_restore_gpregs_spe): New insn.
15027         * config/rs6000/predicates.md (save_world_operation): Fix check.
15028
15029 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
15030
15031         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
15032         this point, so assert that.
15033
15034 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
15035
15036         * cfganal.c: Include vec.h and vecprim.h.
15037         (compute_idf): Import from...
15038         * tree-into-ssa (compute_idf): ...here.
15039         * basic-block.h (compute_idf): Export.
15040
15041 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
15042
15043         * c-decl.c (merge_decls): Use !current_function_decl to check for
15044         extern declaration of C99 inline function being at file scope.
15045
15046 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
15047
15048         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
15049
15050 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15051
15052         * alias.c (record_alias_subset, init_alias_analysis): Fix
15053         -Wc++-compat and/or -Wcast-qual warnings.
15054         * attribs.c (lookup_attribute_spec): Likewise.
15055         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
15056         copy_bb, connect_traces,
15057         find_rarely_executed_basic_blocks_and_cr): Likewise.
15058         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
15059         note_btr_set, migrate_btr_defs): Likewise.
15060         * builtins.c (result_vector, expand_builtin_memcpy,
15061         expand_builtin_mempcpy_args, expand_builtin_strncpy,
15062         builtin_memset_read_str, expand_builtin_printf,
15063         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
15064         Likewise.
15065         * caller-save.c (mark_set_regs): Likewise.
15066         * calls.c (expand_call, emit_library_call_value_1): Likewise.
15067         * cgraph.c (cgraph_edge): Likewise.
15068         * combine.c (likely_spilled_retval_1): Likewise.
15069         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
15070         htab_counts_entry_del, get_coverage_counts): Likewise.
15071         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
15072         new_cselib_val): Likewise.
15073         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
15074         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
15075         Likewise.
15076         * df-core.c (df_compact_blocks): Likewise.
15077         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
15078         * df-scan.c (df_grow_reg_info, df_ref_create,
15079         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
15080         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
15081         df_record_entry_block_defs, df_record_exit_block_uses,
15082         df_bb_verify): Likewise.
15083         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
15084         DF_REF_EXTRACT_MODE_CONST): New.
15085         * dominance.c (get_immediate_dominator, get_dominated_by,
15086         nearest_common_dominator, root_of_dom_tree,
15087         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
15088         -Wc++-compat and/or -Wcast-qual warnings.
15089         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
15090         record_store, replace_read, check_mem_read_rtx, scan_insn,
15091         dse_step1, dse_record_singleton_alias_set): Likewise.
15092         * dwarf2asm.c (dw2_force_const_mem): Likewise.
15093
15094 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15095
15096         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
15097         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
15098         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
15099         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
15100         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
15101         add_ranges_num, add_ranges_by_labels, file_info_cmp,
15102         file_name_acquire, output_file_names, add_const_value_attribute,
15103         premark_used_types_helper, file_table_eq, file_table_hash,
15104         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
15105         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
15106         -Wcast-qual warnings.
15107         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
15108         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
15109         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
15110         gen_reg_rtx, start_sequence, init_emit): Likewise.
15111         * et-forest.c (et_new_occ, et_new_tree): Likewise.
15112         * except.c (init_eh_for_function, gen_eh_region,
15113         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
15114         arh_to_landing_pad, arh_to_label, add_action_record,
15115         add_call_site, switch_to_exception_section): Likewise.
15116         * expmed.c (synth_mult): Likewise.
15117         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
15118         store_expr): Likewise.
15119         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
15120         Likewise.
15121         * function.c (assign_stack_temp_for_type,
15122         allocate_struct_function, match_asm_constraints_1): Likewise.
15123         * gcov-io.c (gcov_allocate): Likewise.
15124         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
15125         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
15126         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
15127         record_one_set, insert_expr_in_table, insert_set_in_table,
15128         dump_hash_table, compute_hash_table_work, alloc_hash_table,
15129         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
15130         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
15131         -Wcast-qual warnings.
15132
15133 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15134
15135         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
15136         -Wcast-qual warnings.
15137         * gcc.c (process_command): Likewise.
15138         * genattrtab.c (oballoc): Use XOBNEW.
15139         (oballocvec): Define.
15140         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
15141         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
15142         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
15143         -Wc++-compat and/or -Wcast-qual warnings.
15144         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
15145         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
15146         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
15147         gen_presence_absence_set, gen_automaton, gen_regexp_el,
15148         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
15149         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
15150         add_excls, process_presence_absence_names,
15151         process_presence_absence_patterns, add_presence_absence,
15152         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
15153         get_free_state, add_arc, get_free_automata_list_el,
15154         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
15155         transform_3, cache_presence, create_ainsns, create_automata,
15156         create_state_ainsn_table, dfa_insn_code_enlarge,
15157         output_trans_func, output_min_issue_delay_func,
15158         output_dead_lock_func, output_reset_func,
15159         output_get_cpu_unit_code_func, output_dfa_start_func,
15160         expand_automata): Likewise.
15161         * genextract.c (gen_insn): Likewise.
15162         * gengtype-lex.l: Likewise.
15163         * gengtype.c (read_input_list, adjust_field_type,
15164         process_gc_options): Likewise.
15165         * genoutput.c (note_constraint): Likewise.
15166         * genpreds.c (mangle, add_constraint): Likewise.
15167         * genrecog.c (process_define_predicate, new_decision,
15168         add_to_sequence): Likewise.
15169         * gensupport.c (record_insn_name): Likewise.
15170
15171 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15172
15173         * config/i386/driver-i386.c (detect_caches_amd,
15174         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
15175         and/or -Wcast-qual warnings.
15176         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
15177         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
15178         gt_pch_save): Likewise.
15179         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
15180         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
15181         * global.c (compute_regsets): Likewise.
15182         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
15183         finish_graph_dump_file): Likewise.
15184         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
15185         unlink_bb_notes): Likewise.
15186         * integrate.c (get_hard_reg_initial_val): Likewise.
15187         * ipa-prop.c (ipa_push_func_to_list): Likewise.
15188         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
15189         * local-alloc.c (update_equiv_regs): Likewise.
15190         * loop-invariant.c (check_invariant_table_size,
15191         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
15192         Likewise.
15193         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
15194         altered_reg_used, mark_altered): Likewise.
15195         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
15196         insert_var_expansion_initialization,
15197         combine_var_copies_in_loop_exit, apply_opt_in_copies,
15198         release_var_copies): Likewise.
15199         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
15200         analyze_matrix_decl, add_allocation_site, analyze_transpose,
15201         analyze_accesses_for_phi_node, check_var_notmodified_p,
15202         check_allocation_function, find_sites_in_func,
15203         record_all_accesses_in_func, transform_access_sites,
15204         transform_allocation_sites): Likewise.
15205         * omp-low.c (new_omp_region, create_omp_child_function_name,
15206         check_omp_nesting_restrictions, check_combined_parallel,
15207         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
15208         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
15209         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
15210         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
15211         Likewise.
15212         * opts-common.c (prune_options): Likewise.
15213         * opts.c (add_input_filename, print_filtered_help,
15214         get_option_state): Likewise.
15215         * params.c (add_params): Likewise.
15216         * passes.c (set_pass_for_id, next_pass_1,
15217         do_per_function_toporder, pass_fini_dump_file): Likewise.
15218         * postreload.c (reload_cse_simplify_operands): Likewise.
15219         * predict.c (tree_predicted_by_p, tree_predict_edge,
15220         clear_bb_predictions, combine_predictions_for_bb): Likewise.
15221
15222 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15223
15224         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
15225         warnings.
15226         * recog.c (check_asm_operands, validate_change_1): Likewise.
15227         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
15228         subst_asm_stack_regs): Likewise.
15229         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
15230         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
15231         * regmove.c (reg_is_remote_constant_p): Likewise.
15232         * regrename.c (regrename_optimize, scan_rtx_reg,
15233         kill_clobbered_value, kill_set_value, kill_autoinc_value):
15234         Likewise.
15235         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
15236         regstat_compute_calls_crossed): Likewise.
15237         * reload1.c (init_reload, new_insn_chain,
15238         has_nonexceptional_receiver, reload, copy_reloads,
15239         calculate_needs_all_insns, init_elim_table): Likewise.
15240         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
15241         * rtl.c (shallow_copy_rtx_stat): Likewise.
15242         * rtlanal.c (parms_set): Likewise.
15243         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
15244         sbitmap_resize, sbitmap_vector_alloc): Likewise.
15245         * sched-ebb.c (earliest_block_with_similiar_load,
15246         add_deps_for_risky_insns): Likewise.
15247         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
15248         schedule_region): Likewise.
15249         * see.c (eq_descriptor_pre_extension,
15250         hash_descriptor_pre_extension, hash_del_pre_extension,
15251         eq_descriptor_properties, hash_descriptor_properties,
15252         hash_del_properties, see_seek_pre_extension_expr,
15253         see_initialize_data_structures, see_print_register_properties,
15254         see_print_pre_extension_expr, see_delete_merged_def_extension,
15255         see_delete_unmerged_def_extension, see_emit_use_extension,
15256         see_pre_delete_extension, see_map_extension, see_commit_changes,
15257         see_analyze_merged_def_local_prop,
15258         see_analyze_merged_def_local_prop,
15259         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
15260         see_set_prop_merged_def, see_set_prop_unmerged_def,
15261         see_set_prop_unmerged_use, see_print_one_extension,
15262         see_merge_one_use_extension, see_merge_one_def_extension,
15263         see_store_reference_and_extension, see_update_uses_relevancy,
15264         see_update_defs_relevancy): Likewise.
15265         * statistics.c (hash_statistics_hash, hash_statistics_eq,
15266         hash_statistics_free, curr_statistics_hash): Likewise.
15267         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
15268         expand_asm_operands, expand_return, case_bit_test_cmp,
15269         expand_case): Likewise.
15270         * stor-layout.c (start_record_layout): Likewise.
15271         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
15272         gt_pch_save_stringpool): Likewise.
15273         * tree-data-ref.c (hash_stmt_vertex_info,
15274         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
15275         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
15276
15277 2008-06-25  Uros Bizjak  <ubizjak@gmail.com>
15278
15279         PR target/36627
15280         * config/i386/i386.md : Change constraints of HImode and QImode
15281         immediate operands from "i" to "n".  Change SImode "ni" constraint to
15282         "i" and SImode "rmi" constraint to "g".  Remove all constraints
15283         from const0_operand and const1_operand predicated operands.
15284         (i): Change QImode and HImode attribute from "i" to "n".
15285         (*subqi_2): Change HImode operands to QImode.
15286         (*subqi_3): Ditto.
15287
15288 2008-06-25  Olivier Hainque  <hainque@adacore.com>
15289
15290         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
15291         sed substitutions.
15292
15293 2008-06-25  Richard Guenther  <rguenther@suse.de>
15294
15295         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
15296         not overflow the result type.
15297
15298 2008-06-25  Richard Guenther  <rguenther@suse.de>
15299
15300         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
15301         (vn_lookup): Likewise.
15302
15303 2008-06-25  Richard Guenther  <rguenther@suse.de>
15304
15305         PR tree-optimization/35518
15306         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
15307         * tree-sra.c (instantiate_element): Use fold_build3 to build
15308         BIT_FIELD_REFs.
15309         (try_instantiate_multiple_fields): Likewise.
15310
15311 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15312
15313         * config/rs6000/rs6000.md: Change all string instruction's clobber to
15314         be early clobbers.
15315
15316 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15317
15318         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
15319         use_backchain_to_restore_sp to true
15320         if the offset of the link register save area would go over the 32k - 1
15321         offset limit of the load
15322         instructions.
15323
15324 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
15325
15326         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
15327         anchor for the type-punning blurb.  Cross-reference "Structures
15328         unions enumerations and bit-fields implementation".  Provide a
15329         cast-through-pointer example.  Make final sentence self-contained.
15330         * doc/implement-c.texi (Structures unions enumerations and
15331         bit-fields implementation): Cross-reference the type-punning blurb
15332         in the -fstrict-aliasing documentation.
15333
15334 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15335
15336         PR middle-end/36594
15337         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
15338         the memory instead of the memory itself for the save area.
15339
15340 2008-06-24  Olivier Hainque  <hainque@adacore.com>
15341             Nicolas Roche  <roche@adacore.com>
15342
15343         * gengtype.c (srcdir_len): size_t instead of int.
15344         (get_file_realbasename): New function.  For F a filename, the real
15345         basename of F, with all the path components stripped.
15346         (get_file_srcdir_relative_path): New function.  For F a filename, the
15347         relative path to F from $(srcdir).
15348         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
15349         get_file_realbasename.  Adjust the head comment.
15350         (get_prefix_langdir_index): New function. For F a filename, return the
15351         lang_dir_names[] relative index of the language directory that is
15352         a prefix in F.
15353         (get_file_langdir): For F a filename, return the name of the language
15354         directory where F is located.
15355         (get_file_gtfilename): New function. The gt- output file name for an
15356         input filename F.
15357         (get_output_file_with_visibility): Replace in-line computations with
15358         uses of get_file_gtfilename and get_prefix_langdir_index.
15359         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
15360
15361 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
15362
15363         PR tree-optimization/36504
15364         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
15365         references without base address.
15366
15367 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
15368
15369         PR middle-end/36584
15370         * calls.c (expand_call): Increase alignment for recursive functions.
15371
15372 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
15373
15374         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
15375         (TARGET_FUNCTION_VALUE): New define.
15376         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
15377         * config/avr/avr.h (FUNCTION_VALUE): Remove.
15378
15379 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
15380
15381         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
15382         (fmod<mode>3): Ditto.
15383         (remainderxf3): Ditto.
15384         (remainder<mode>3): Ditto.
15385
15386 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
15387
15388         PR target/36533
15389         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
15390         REG is a hard register.
15391
15392         PR tree-optimization/36508
15393         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
15394         499, don't check it at all in release compilers.
15395
15396 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
15397
15398         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
15399         together with SSE_TARGET_MATH to disable insn pattern.
15400         (*fop_<MODEF:mode>_2_i387): Ditto.
15401         (*fop_<MODEF:mode>_3_i387): Ditto.
15402
15403 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
15404
15405         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
15406
15407 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
15408
15409         PR middle-end/34906
15410         * gimplify.c (gimplify_asm_expr): Check the return code of
15411         parse_output_constraint call, set function return and is_inout
15412         value if it failed.
15413
15414 2008-06-22  Ian Lance Taylor  <iant@google.com>
15415
15416         * c-lex.c (narrowest_unsigned_type): Change itk to int.
15417         (narrowest_signed_type): Likewise.
15418         * c-typeck.c (c_common_type): Change local variable mclass to enum
15419         mode_class, twice.
15420         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
15421         tcc_comparison, not the tree code itself.
15422         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
15423         (c_expand_expr): Cast modifier to enum expand_modifier.
15424         * c-common.h (C_RID_CODE): Add casts.
15425         (C_SET_RID_CODE): Define.
15426         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
15427         (c_lex_one_token): Add cast to avoid warning.
15428         (c_parser_objc_type_name): Rename local typename to type_name.
15429         (check_no_duplicate_clause): Change code parameter to enum
15430         omp_clause_code.
15431         (c_parser_omp_var_list_parens): Change kind parameter to enum
15432         omp_clause_code.
15433         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
15434         c_parser_omp_list_var_parens.
15435         (c_parser_omp_threadprivate): Likewise.
15436         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
15437         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
15438         * c-format.c (NO_FMT): Define.
15439         (printf_length_specs): Use NO_FMT.
15440         (asm_fprintf_length_specs): Likewise.
15441         (gcc_diag_length_specs): Likewise.
15442         (scanf_length_specs): Likewise.
15443         (strfmon_length_specs): Likewise.
15444         (gcc_gfc_length_specs): Likewise.
15445         (printf_flag_specs): Change 0 to STD_C89.
15446         (asm_fprintf_flag_specs): Likewise.
15447         (gcc_diag_flag_specs): Likewise.
15448         (gcc_cxxdiag_flag_specs): Likewise.
15449         (scanf_flag_specs): Likewise.
15450         (strftime_flag_specs): Likewise.
15451         (strfmon_flag_specs): Likewise.
15452         (print_char_table): Likewise.
15453         (asm_fprintf_char_table): Likewise.
15454         (gcc_diag_char_table): Likewise.
15455         (gcc_tdiag_char_table): Likewise.
15456         (gcc_cdiag_char_table): Likewise.
15457         (gcc_cxxdiag_char_table): Likewise.
15458         (gcc_gfc_char_table): Likewise.
15459         (scan_char_table): Likewise.
15460         (time_char_table): Likewis.
15461         (monetary_char_table): Likewise.
15462         * c-format.h (BADLEN): Likewise.
15463
15464 2008-06-21  Ian Lance Taylor  <iant@google.com>
15465
15466         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
15467         Define END_OF_BASE_TREE_CODES around inclusion.
15468         * tree.c (tree_code_type): New global array.
15469         (tree_code_length, tree_code_name): Likewise.
15470         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
15471         $(lang_tree_files).
15472         (all-tree.def, s-alltree): New targets.
15473         (gencheck.h, s-gencheck): Remove.
15474         (tree.o): Depend upon all-tree.def.
15475         (build/gencheck.o): Remove gencheck.h dependency.
15476         (mostlyclean): Don't remove gencheck.h.
15477         * c-common.h (enum c_tree_code): Remove.
15478         * c-lang.c (tree_code_type): Remove.
15479         (tree_code_length, tree_code_name): Remove.
15480         * gencheck.c (tree_codes): Include all-tree.def, rather than
15481         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
15482         after it is used.
15483         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
15484         than tree.def.
15485         * cp/cp-tree.h (enum cplus_tree_code): Remove.
15486         (operator_name_info): Size to MAX_TREE_CODES.
15487         (assignment_operator_name_info): Likewise.
15488         * cp/cp-lang.c (tree_code_type): Remove.
15489         (tree_code_length, tree_code_name): Remove.
15490         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
15491         (assignment_operator_name_info): Likewise.
15492         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
15493         MAX_TREE_CODES.
15494         * cp/mangle.c (write_expression): Likewise.
15495         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
15496         * fortran/f95-lang.c (tree_code_type): Remove.
15497         (tree_code_length, tree_code_name): Remove.
15498         * java/java-tree.h (enum java_tree_code): Remove.
15499         * java/lang.c (tree_code_type): Remove.
15500         (tree_code_length, tree_code_name): Remove.
15501         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
15502         * objc/objc-act.h (enum objc_tree_code): Remove.
15503         * objc/objc-lang.c (tree_code_type): Remove.
15504         (tree_code_length, tree_code_name): Remove.
15505         * objcp/objcp-lang.c (tree_code_type): Remove.
15506         (tree_code_length, tree_code_name): Remove.
15507         * ada/ada-tree.h (enum gnat_tree_code): Remove.
15508         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
15509         * ada/misc.c (tree_code_type): Remove.
15510         (tree_code_length, tree_code_name): Remove.
15511
15512 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
15513
15514         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
15515         the grand_bitmap_obstack.
15516
15517 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15518
15519         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
15520         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
15521         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
15522         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
15523         move_stmt_r, new_label_mapper): Likewise.
15524         * tree-complex.c (cvc_lookup): Likewise.
15525         * tree-dfa.c (create_function_ann): Likewise.
15526         * tree-dump.c (dump_register): Likewise.
15527         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
15528         find_phi_replacement_condition): Likewise.
15529         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
15530         tree_function_versioning): Likewise.
15531         * tree-into-ssa.c (cmp_dfsnum): Likewise.
15532         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
15533         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
15534         get_nonlocal_debug_decl, convert_nonlocal_reference,
15535         convert_nonlocal_omp_clauses, get_local_debug_decl,
15536         convert_local_reference, convert_local_omp_clauses,
15537         convert_nl_goto_reference, convert_nl_goto_receiver,
15538         convert_tramp_reference, convert_call_expr): Likewise.
15539         * tree-outof-ssa.c (contains_tree_r): Likewise.
15540         * tree-parloops.c (reduction_phi, initialize_reductions,
15541         eliminate_local_variables_1, add_field_for_reduction,
15542         add_field_for_name, create_phi_for_local_result,
15543         create_call_for_reduction_1, create_loads_for_reductions,
15544         create_stores_for_reduction, create_loads_and_stores_for_name):
15545         Likewise.
15546         * tree-phinodes.c (allocate_phi_node): Likewise.
15547         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
15548         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
15549         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
15550         * tree-ssa-coalesce.c (compare_pairs): Likewise.
15551         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
15552         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
15553         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
15554         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
15555         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
15556         vn_nary_op_insert): Likewise.
15557         * tree-ssa.c (redirect_edge_var_map_add,
15558         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
15559         * tree-vectorizer.c (vectorize_loops): Likewise.
15560         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
15561         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
15562         tree_cons_stat, build1_stat, build_variant_type_copy,
15563         decl_init_priority_lookup, decl_fini_priority_lookup,
15564         decl_priority_info, decl_restrict_base_lookup,
15565         decl_restrict_base_insert, decl_debug_expr_lookup,
15566         decl_debug_expr_insert, decl_value_expr_lookup,
15567         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
15568         type_hash_add, get_file_function_name, tree_check_failed,
15569         tree_not_check_failed, tree_range_check_failed,
15570         omp_clause_range_check_failed, build_omp_clause,
15571         build_vl_exp_stat): Likewise.
15572         * value-prof.c (gimple_histogram_value,
15573         gimple_duplicate_stmt_histograms): Likewise.
15574         * var-tracking.c (attrs_list_insert, attrs_list_copy,
15575         unshare_variable, variable_union_info_cmp_pos, variable_union,
15576         dataflow_set_different_1, dataflow_set_different_2,
15577         vt_find_locations, variable_was_changed, set_variable_part,
15578         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
15579         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
15580         section_entry_hash, object_block_entry_eq,
15581         object_block_entry_hash, create_block_symbol,
15582         initialize_cold_section_name, default_function_rodata_section,
15583         strip_reg_name, set_user_assembler_name, const_desc_eq,
15584         build_constant_desc, output_constant_def, lookup_constant_def,
15585         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
15586         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
15587         default_internal_label): Likewise.
15588         * varray.c (varray_init, varray_grow): Likewise.
15589         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
15590
15591 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
15592
15593         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
15594         operators for "test" insn.  Macroize insn using SWI mode macro.
15595         (*jcc_fused_2): Ditto.
15596         (*jcc_fused_3): Macroize insn using SWI mode macro.
15597         (*jcc_fused_4): Ditto.
15598
15599 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
15600
15601         * tree-ssa-pre.c: Fix typo in comment.
15602         (init_antic, fini_antic): Add explicit funtions for
15603         initializing and deinitializing ANTIC and AVAIL sets.
15604         (create_expression_by_pieces): Fix typo in comment.
15605         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
15606         (execute_pre): Eventually dump details about ANTIC_IN.
15607
15608 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15609
15610         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
15611         * gcc.c (translate_options, init_spec, store_arg, read_specs,
15612         add_to_obstack, file_at_path, find_a_file, execute,
15613         add_preprocessor_option, add_assembler_option, add_linker_option,
15614         process_command, insert_wrapper, do_option_spec, do_self_spec,
15615         spec_path, do_spec_1, is_directory, main, used_arg,
15616         getenv_spec_function): Likewise.
15617         * tlink.c (symbol_hash_lookup, file_hash_lookup,
15618         demangled_hash_lookup, symbol_push, file_push, frob_extension):
15619         Likewise.
15620
15621 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
15622
15623         * doc/rtl.texi: Updated subreg section.
15624
15625 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
15626
15627         PR c++/36523
15628         * cgraphunit.c (cgraph_process_new_functions): Don't clear
15629         node->needed and node->reachable.
15630         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
15631         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
15632         (expand_task_call): Don't call expand_task_copyfn.
15633         (expand_task_copyfn): Renamed to...
15634         (finalize_task_copyfn): ... this.
15635
15636 2008-06-19  Jan Hubicka  <jh@suse.cz>
15637
15638         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
15639         clobbering framepointer.
15640
15641 2008-06-19  Jan Hubicka  <jh@suse.cz>
15642
15643         * tree-optimize.c (execute_early_local_optimizations): Set
15644         cgraph_state only at first invocation.
15645
15646 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15647
15648         * system.h (-Wc++-compat): Activate as a warning, no an error.
15649
15650 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
15651
15652         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
15653         instead of "#" in insn asm template.
15654         (*jcc_fused_2): Ditto.
15655
15656 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
15657
15658         * config/i386/i386.h (ix86_tune_indices)
15659         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
15660         (TARGET_FUSE_CMP_AND_BRANCH): New define.
15661         * config/i386/i386.md (*jcc_fused_1): New insn pattern
15662         (*jcc_fused_2): Ditto.
15663         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
15664         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
15665         (print operand): Handle 'E' and 'e' code.
15666
15667 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
15668
15669         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
15670         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
15671         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
15672
15673 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
15674
15675         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
15676         node->decl.
15677         (cgraph_expand_function): Use local copy of decl.
15678         (cgraph_expand_all_functions): Remove redundant initialization of
15679         order_pos.
15680         (cgraph_optimize): Reword internal_error message.
15681
15682 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
15683
15684         * arm-protos.h (arm_return_in_memory): Remove public
15685         arm_return_in_memory() prototype.
15686         * arm.c (arm_return_in_memory): Add static prototype, add target
15687         hook macro, change definition and comments.
15688         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
15689
15690 2008-06-19  Ben Elliston  <bje@au.ibm.com>
15691
15692         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
15693         real.c: Remove references to IEEE 754R.
15694         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
15695         * doc/libgcc.texi (Decimal float library routines): Likewise.
15696
15697 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15698
15699         * targhooks.h (struct gcc_target): New member unwind_word_mode.
15700         (default_unwind_word_mode): Add prototype.
15701         * targhooks.c (default_unwind_word_mode): New function.
15702         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
15703         instead of word_mode.
15704         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
15705         (TARGET_INITIALIZER): Use it.
15706
15707         * c-common.c (handle_mode_attribute): Support "unwind_word"
15708         mode attribute.
15709         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
15710
15711         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
15712         word_mode to access SjLj_Function_Context member "data".
15713         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
15714         conversion from targetm.eh_return_filter_mode () to
15715         targetm.unwind_word_mode () if they differ.
15716
15717         * builtin-types.def (BT_UNWINDWORD): New primitive type.
15718         (BT_FN_UNWINDWORD_PTR): New function type.
15719         (BT_FN_WORD_PTR): Remove.
15720         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
15721         * except.c (expand_builtin_extend_pointer): Convert pointer to
15722         targetm.unwind_word_mode () instead of word_mode.
15723
15724         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
15725         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
15726         (spu_unwind_word_mode): New function.
15727         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
15728         (TARGET_UNWIND_WORD_MODE): Define.
15729         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
15730
15731 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15732
15733         * config/spu/spu.c (reg_align): Remove.
15734         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
15735         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
15736         (spu_split_store): Likewise.
15737
15738 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
15739
15740         * gcc/tree-vn.c: Fix typo in comment.
15741
15742 2008-06-18  Jan Hubicka  <jh@suse.cz>
15743
15744         * cgraphunit.c (cgraph_optimize): Output debug info when doing
15745         toplevel reorder too.
15746
15747 2008-06-18  Jan Hubicka  <jh@suse.cz>
15748
15749         * c-opts.c (c_common_post_options): PCH is not compatible with
15750         no-unit-at-a-time.
15751         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
15752         -fno-toplevel-reorder by default now.
15753
15754 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15755
15756         PR documentation/30739
15757         * doc/install.texi (Prerequisites): Document dependency on awk.
15758
15759 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
15760             Ian Lance Taylor  <iant@google.com>
15761
15762         PR rtl-optimization/35604
15763         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
15764         only want to change jump destinations, not eventual label comparisons.
15765
15766 2008-06-16  Jan Hubicka  <jh@suse.cz>
15767
15768         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
15769         syntax errors.
15770         (cgraph_analyze_function): Likewise.
15771
15772 2008-06-16  Jan Hubicka  <jh@suse.cz>
15773
15774         * cgraph.h (cgraph_mark_if_needed): New function.
15775         * cgraphunit.c (cgraph_mark_if_needed): New function.
15776         * c-decl.c (duplicate_decl): Use it.
15777
15778 2008-06-16  Jan Hubicka  <jh@suse.cz>
15779
15780         * cgraph.c (cgraph_add_new_function): When in expansion state, do
15781         lowering.
15782
15783 2008-06-16  Jan Hubicka  <jh@suse.cz>
15784
15785         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
15786
15787 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
15788             Kazu Hirata  <kazu@codesourcery.com>
15789             Maxim Kuvyrkov  <maxim@codesourcery.com
15790
15791         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
15792         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
15793         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
15794         EXTRA_SPEC_FUNCTIONS.
15795         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
15796         (DRIVER_SELF_SPECS): Adjust.
15797         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
15798         * config/mips/st.h, config/mips/t-st: New.
15799         * config/mips/driver-native.c, config/mips/x-native: New.
15800         * doc/invoke.texi (MIPS): Document 'native' value for -march and
15801         -mtune options.
15802
15803 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
15804
15805         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
15806         from it.
15807         (ISA_HAS_FP_CONDMOVE): New macro.
15808         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
15809         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
15810         (ISA_HAS_NMADD3_NMSUB3): New macro.
15811         * config/mips/mips.c (mips_rtx_costs): Update.
15812         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
15813         compiling for ST Loongson 2E/2F.
15814         (madd<mode>): Rename to madd4<mode>.  Update.
15815         (madd3<mode>): New pattern.
15816         (msub<mode>): Rename to msub4<mode>.  Update.
15817         (msub3<mode>): New pattern.
15818         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
15819         (nmadd3<mode>): New pattern.
15820         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
15821         (nmadd3<mode>_fastmath): New pattern.
15822         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
15823         (nmsub3<mode>): New pattern.
15824         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
15825         (nmsub3<mode>_fastmath): New pattern.
15826         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
15827
15828 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
15829
15830         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
15831         (DF_REF_INSN_INFO): New.
15832         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
15833         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
15834         with a NULL DF_REF_INSN_INFO.
15835         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
15836         DF_INSN_SET.
15837         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
15838         DF_INSN_INFO_EQ_USES): New.
15839         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
15840         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
15841         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
15842         * df-core.c: Update comment for above changes.
15843         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
15844         DF_INSN_UID_* macros.
15845         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
15846         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
15847         insn rtx.  Update all callers.
15848         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
15849         df_ref_create_structure, df_insn_refs_collect): Likewise.
15850         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
15851         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
15852         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
15853         macros to access the insn refs.
15854         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
15855         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
15856         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
15857         for accessing the refs.
15858         (try_fwprop_subst): Likewise.
15859         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
15860         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
15861         for accessing the refs.
15862         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
15863         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
15864         to look at the insn refs.
15865         (record_uses): Likewise.
15866         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
15867         function anymore.
15868         (mark_artificial_uses): Don't mark_insn for artificial refs.
15869         (mark_reg_rependencies): Likewise.
15870
15871         * doc/rtl.texi: Remove documentation of ADDRESSOF.
15872
15873 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15874
15875         * configure: Regenerate.
15876
15877 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
15878
15879         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
15880         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
15881         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
15882
15883 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
15884
15885         * config/avr/avr.c (avr_mcu_t): Add attiny167.
15886         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
15887         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
15888
15889 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
15890
15891         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
15892         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
15893         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
15894
15895 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
15896
15897         * tree-ssa-sccvn.c: Fix format of comments.
15898
15899 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
15900
15901         * cgraph.c: Remove unneeded forward declarations of eq_node()
15902         and hash_node().
15903
15904 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
15905
15906         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
15907         REG_RETVAL notes.
15908         (see_update_relevancy): Likewise.
15909         * fwprop.c (try_fwprop_subst): Likewise.
15910         * rtlanal.c (noop_move_p): Likewise.
15911         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
15912         notes to non-existing libcall blocks.
15913         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
15914         Remove orig_set.
15915         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
15916         (dead_libcall_p): Remove.
15917         (delete_trivially_dead_insns): Don't use it.
15918         * web.c (union_defs): Remove comment about keeping nops.
15919         * gcse.c (hash_scan_insn): Don't take libcall pointers.
15920         (compute_hash_table_work): Don't track libcall notes.
15921         (do_local_cprop): Don't take libcall pointers.  Don't update
15922         libcall notes.
15923         (adjust_libcall_notes): Deleted.
15924         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
15925         ever have existed in the first place).
15926         (replace_store_insn): Don't try to remove libcall notes.
15927         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
15928         (resolve_reg_notes): Don't call them.
15929         (resolve_simple_move): Likewise.
15930         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
15931         Don't remove REG_RETVAL notes.
15932         * emit-rtl.c (try_split): Don't update libcall notes.
15933         (emit_copy_of_insn_after): Dito.
15934         * cselib.c (cselib_current_insn_in_libcall): Remove.
15935         (cselib_process_insn): Don't set/clear it.
15936         (new_elt_loc_list): Don't record it.
15937         (cselib_init): Don't initialize it.
15938         * cselib.c (struct elt_loc_list): Remove in_libcall field.
15939         * loop-invariant.c (find_invariant_insn): Don't look for libcall
15940         notes.
15941         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
15942         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
15943         (init_deps): Don't initialize it.
15944         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
15945         * combine.c (delete_noop_moves): Don't update libcall notes.
15946         (can_combine_p): Remove now pointless #if 0 block.
15947         (try_combine): Remove another obsolete #if 0 block.
15948         (distribute_notes): Don't distribute libcall notes.
15949         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
15950         * dce.c (libcall_dead_p): Remove.
15951         (delete_unmarked_insns): Don't handle libcall blocks.
15952         (preserve_libcall_for_dce): Remove.
15953         (prescan_insns_for_dce): Don't special-case libcall block insns.
15954         * reload1 (reload): Don't handle libcall notes.
15955         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
15956         documentation.
15957
15958 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
15959
15960         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
15961         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
15962         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
15963
15964 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
15965
15966         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
15967         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
15968         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
15969
15970 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15971
15972         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
15973
15974 2008-06-16  Ira Rosen  <irar@il.ibm.com>
15975
15976         PR tree-optimization/36493
15977         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
15978         the arguments list. Use VECTYPE to create vector pointer.
15979         (vectorizable_store): Fail if accesses through a pointer to vectype
15980         do not alias the original memory reference operands.
15981         Call vect_create_data_ref_ptr without the removed argument.
15982         (vectorizable_load): Likewise.
15983         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
15984         removed argument.
15985
15986 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
15987
15988         PR target/36336
15989         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
15990         reg_equiv_constant.
15991
15992 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
15993
15994         * config/mips/loongson2ef.md: New file.
15995         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
15996         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
15997         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
15998         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
15999         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
16000         and loongson_2f.
16001         (loongson2ef.md): New include.
16002         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
16003         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
16004         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
16005         (loongson_gt_<mode>, loongson_extract_halfword)
16006         (loongson_insert_halfword_0, loongson_insert_halfword_2)
16007         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
16008         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
16009         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
16010         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
16011         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
16012         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
16013         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
16014         (vec_interleave_low<mode>): Define type attribute.
16015         * config/mips/mips.c (mips_ls2): New static variable.
16016         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
16017         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
16018         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
16019         Implement target scheduling hooks.
16020         (mips_multipass_dfa_lookahead): Update to handle tuning for
16021         Loongson 2E/2F.
16022         (mips_sched_init): Initialize data for Loongson scheduling.
16023         (mips_ls2_variable_issue): New static function.
16024         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
16025         Add sanity check.
16026         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
16027         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
16028         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
16029         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
16030         Handle ST Loongson 2E/2F cores.
16031         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
16032
16033 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16034
16035         * omp-low.c (extract_omp_for_data): Fix comment typo.
16036         * c.opt: Fix typo.
16037
16038 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16039
16040         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
16041         FIXME note about gcc/config.guess.
16042         * doc/options.texi (Option file format): Remove non-ASCII bytes.
16043         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
16044         * doc/cppopts.texi: Likewise.
16045         * doc/extend.texi: Likewise.
16046         * doc/gcc.texi: Likewise.
16047         * doc/gccint.texi: Likewise.
16048         * doc/gcov.texi: Likewise.
16049         * doc/gty.texi: Likewise.
16050         * doc/hostconfig.texi: Likewise.
16051         * doc/install.texi: Likewise.
16052         * doc/invoke.texi: Likewise.
16053         * doc/loop.texi: Likewise.
16054         * doc/makefile.texi: Likewise.
16055         * doc/md.texi: Likewise.
16056         * doc/passes.texi: Likewise.
16057         * doc/tm.texi: Likewise.
16058         * doc/tree-ssa.texi: Likewise.
16059         * doc/trouble.texi: Likewise.
16060
16061 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
16062             Nathan Sidwell  <nathan@codesourcery.com>
16063             Maxim Kuvyrkov  <maxim@codesourcery.com>
16064             Richard Sandiford  <rdsandiford@googlemail.com>
16065
16066         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
16067         * config/mips/mips-protos.h (mips_expand_vector_init): New.
16068         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
16069         builtins.
16070         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
16071         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
16072         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
16073         V8QImode cases.
16074         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
16075         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
16076         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
16077         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
16078         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
16079         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
16080         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
16081         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
16082         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
16083         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
16084         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
16085         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
16086         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
16087         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
16088         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
16089         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
16090         (mips_builtins): Add Loongson builtins.
16091         (mips_loongson_2ef_bdesc): New.
16092         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
16093         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
16094         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
16095         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
16096         New.
16097         (mips_expand_vector_init): New.
16098         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
16099         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
16100         if appropriate.
16101         * config/mips/mips.md: Add unspec numbers for Loongson
16102         builtins.  Include loongson.md.
16103         (MOVE64): Include Loongson vector modes.
16104         (SPLITF): Include Loongson vector modes.
16105         (HALFMODE): Handle Loongson vector modes.
16106         * config/mips/loongson.md: New.
16107         * config/mips/loongson.h: New.
16108         * config.gcc: Add loongson.h header for mips*-*-* targets.
16109         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
16110
16111 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
16112
16113         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
16114         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
16115         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
16116         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
16117         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
16118         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
16119         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
16120         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
16121         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
16122         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
16123         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
16124         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
16125         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
16126         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
16127         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
16128         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
16129         Remove use_fixproto=yes.
16130         (ia64*-*-hpux*): Remove comment about using fixproto.
16131         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
16132
16133 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16134
16135         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
16136         library rebuilds.
16137         * configure: Regenerate.
16138
16139 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
16140
16141         PR middle-end/36520
16142         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
16143         before evaluating it.
16144
16145 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
16146
16147         PR c/36507
16148         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
16149         nested inline functions.
16150         (start_decl, start_function): Don't invert DECL_EXTERNAL
16151         for nested inline functions.
16152
16153 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
16154
16155         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
16156         splits that must be made for correctness.
16157
16158 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
16159
16160         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
16161         (AVAIL_NON_MIPS16): Likewise.
16162         (mips_builtin_description): Replace target_flags with a predicate.
16163         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
16164         (dspr2_32): New availability predicates.
16165         (MIPS_BUILTIN): New macro.
16166         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
16167         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
16168         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
16169         Replace the TARGET_FLAGS parameters with AVAIL parameters.
16170         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
16171         (mips_dsp_32only_bdesc): Merge into...
16172         (mips_builtins): ...this new array.
16173         (mips_bdesc_map, mips_bdesc_arrays): Delete.
16174         (mips_init_builtins): Update after above changes.
16175         (mips_expand_builtin_1): Merge into...
16176         (mips_expand_builtin): ...here and update after above changes.
16177
16178 2008-06-12  Paul Brook  <paul@codesourcery.com>
16179
16180         * longlong.h (__arm__): Define count_leading_zeros.
16181         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
16182         (clzsi2, clzdi2): New functions.
16183         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
16184         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
16185         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
16186         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
16187         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
16188         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
16189         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
16190         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
16191         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
16192         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
16193
16194 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
16195
16196         * config/m68k/m68k.c (m68k_tune_flags): New.
16197         (override_options): Compute m68k_tune_flags.
16198         (MULL_COST, MULW_COST): Update for various variants of CFV2.
16199         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
16200
16201 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
16202
16203         PR middle-end/36506
16204         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
16205
16206 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
16207
16208         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
16209         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
16210
16211 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
16212
16213         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
16214         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
16215
16216 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
16217
16218         PR middle-end/36506
16219         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
16220         reductions.
16221
16222 2008-06-12  Richard Guenther  <rguenther@suse.de>
16223
16224         PR tree-optimization/36345
16225         * tree-flow.h (struct ptr_info_def): Align escape_mask,
16226         add memory_tag_needed flag.
16227         (may_alias_p): Declare.
16228         * tree-ssa-alias.c (may_alias_p): Export.
16229         (set_initial_properties): Use memory_tag_needed flag.
16230         (update_reference_counts): Likewise.
16231         (reset_alias_info): Reset memory_tag_needed flag.
16232         (create_name_tags): Check memory_tag_needed flag.
16233         (dump_points_to_info_for): Dump it.
16234         * tree-ssa-structalias.c (struct variable_info): Remove
16235         directly_dereferenced flag.
16236         (new_var_info): Do not initialize it.
16237         (process_constraint_1): Do not set it.
16238         (update_alias_info): Set is_dereferenced flag.
16239         (set_uids_in_ptset): Use may_alias_p.
16240         (set_used_smts): Check memory_tag_needed flag.
16241         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
16242         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
16243         memory_tag_needed flag.
16244         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
16245         from broken design.
16246
16247 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
16248
16249         * config/i386/i386.c (ix86_compute_frame_layout): Disable
16250         red zone for w64 abi.
16251         (ix86_expand_prologue): Likewise.
16252         (ix86_force_to_memory): Likewise.
16253         (ix86_free_from_memory): Likewise.
16254
16255 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
16256
16257         PR target/36425
16258         * config/rs6000/rs6000.c (rs6000_override_options): Set
16259         rs6000_isel conditionally to the absence of comand line override.
16260         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
16261         Remove duplicate rs6000_isel setting.
16262         * config/rs6000/eabispe.h: Ditto.
16263
16264 2008-06-11  Richard Guenther  <rguenther@suse.de>
16265
16266         * alias.c (get_alias_set): Use the element alias-set for arrays.
16267         (record_component_aliases): For arrays and vectors do nothing.
16268         * c-common.c (strict_aliasing_warning): Handle the cases
16269         of alias set zero explicitly.
16270         * Makefile.in (dfp.o-warn): Add -Wno-error.
16271
16272 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
16273
16274         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
16275         tune_32 tune_64.
16276         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
16277         tune_32 tune_64 to supported_defaults.  Allow values not
16278         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
16279         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
16280         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
16281         with_cpu_64 to generic for 64-bit-supporting configurations, not
16282         with_cpu.  Remove FIXMEs.
16283         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
16284         --with-arch-64, --with-tune-32, --with-tune-64): Document.
16285         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
16286         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
16287         arch_32 and arch_64.
16288
16289 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
16290             Olivier Hainque  <hainque@adacore.com>
16291
16292         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
16293         Use DECL_SIZE_UNIT to retrieve the size of the field.
16294
16295 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
16296
16297         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
16298         with function calls after declarations.  Lay out
16299         neon_float_type_node before further use.
16300
16301 2008-06-11  Richard Guenther  <rguenther@suse.de>
16302
16303         * tree-flow.h (may_point_to_global_var): Declare.
16304         * tree-ssa-alias.c (may_point_to_global_var): New function.
16305         * tree-ssa-sink.c (is_hidden_global_store): Use it.
16306
16307 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
16308
16309         * configure.ac: Teach that fido supports .debug_line.
16310         * configure: Regenerate.
16311
16312 2008-06-10  Tom Tromey  <tromey@redhat.com>
16313
16314         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
16315         debug hook.
16316
16317 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
16318
16319         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
16320         (encode_decimal64, decode_decimal64, encode_decimal128,
16321         decode_decimal128): Reverse order of 32-bit parts of value if host
16322         and target endianness differ.
16323
16324 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
16325
16326         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
16327         Avoid division by 0.
16328         (tree_mod_pow2_value_transform): Likewise.
16329         (tree_ic_transform): Likewise.
16330         (tree_stringops_transform): Likewise.
16331         (tree_mod_subtract_transform): Likewise.
16332         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
16333         (copy_edges_for_bb): Likewise.
16334         (initialize_cfun): Likewise.
16335
16336 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
16337
16338         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
16339         nonmemory_operand. Add "N" operand constraint.
16340         (*btsi): Ditto.
16341         (*jcc_btdi_mask_rex64): New instruction and split pattern.
16342         (*jcc_btsi_mask): Ditto.
16343         (*jcc_btsi_mask_1): Ditto.
16344
16345 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
16346
16347         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
16348         TYPE_CANONICAL for copied element type.
16349
16350 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
16351
16352         PR target/36473
16353         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
16354         Add m_CORE2 and m_GENERIC.
16355         * config/i386/predicates.md (bt_comparison_operator): New predicate.
16356         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
16357         (*btsi): Ditto.
16358         (*jcc_btdi_rex64): New instruction and split pattern.
16359         (*jcc_btsi): Ditto.
16360         (*jcc_btsi_1): Ditto.
16361         (*btsq): Fix Intel asm dialect operand order.
16362         (*btrq): Ditto.
16363         (*btcq): Ditto.
16364
16365 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
16366
16367         PR middle-end/36447
16368         * simplify-rtx.c (simplify_subreg): Add check for shift count
16369         greater than size.
16370
16371 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
16372
16373         * doc/md.texi: Synchronize with later constraints.md change.
16374         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
16375         with a C implementation.
16376         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
16377         MFLO handling.
16378         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
16379         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
16380         when moving to and from MD_REGNUM.
16381         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
16382         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
16383         Handle byte and halfword moves.
16384         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
16385         separately.
16386         * config/mips/constraints.md (h): Turn into NO_REGS.
16387         (l, x): Update documentation.
16388         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
16389         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
16390         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
16391         (HILO): New mode iterator.
16392         (MOVE128): Add TI.
16393         (any_div): New code iterator.
16394         (u): Extend code attribute to div and udiv.
16395         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
16396         d_operand in the splitters.  Remove redundant CONST_INT checks.
16397         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
16398         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
16399         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
16400         accordingly, using normal moves instead of unspecs to move LO into
16401         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
16402         (<u>mulsidi3): Handle expansion in C code.
16403         (<u>mulsidi3_32bit_internal): Rename to...
16404         (<u>mulsidi3_32bit): ...this.
16405         (<u>mulsidi3_32bit_r4000): Fix insn separator.
16406         (*<u>mulsidi3_64bit): Rename to...
16407         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
16408         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
16409         to set LO and HI to the multiplication result.  Use a normal move
16410         for MFLO and an unspec for MFHI.
16411         (*<u>mulsidi3_64bit_parts): Replace with...
16412         (<u>mulsidi3_64bit_hilo): ...this new instruction.
16413         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
16414         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
16415         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
16416         instead of HI.  Split the instruction into a separate multiplication
16417         and MFHI if !TARGET_FIX_R4000.
16418         (<su>muldi3_highpart): Likewise.
16419         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
16420         and the "=h" clobber.
16421         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
16422         (<u>mulditi3): New expander.
16423         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
16424         (madsi): Remove "=h" clobber.
16425         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
16426         Force the modulus result to be a GPR and split the instruction into
16427         a division followed by an MFHI after reload.
16428         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
16429         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
16430         the MIPS16 HIGH define_split.
16431         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
16432         of acc<->gpr moves to "multi".
16433         (*movdi_64bit): Replace the single "x" alternative with
16434         alternatives for moving into and out of "a".
16435         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
16436         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
16437         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
16438         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
16439         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
16440         (movti): New expander.
16441         (*movti, *movti_mips16): New insns.
16442         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
16443         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
16444         (mthi<GPR:mode>_<HILO:mode>): Likewise.
16445         * config/mips/predicates.md (fpr_operand): Delete.
16446         (d_operand): New predicate.
16447
16448 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
16449
16450         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
16451         failure on some Bourne shells.
16452         (x86_64-*-*): Ditto.
16453
16454 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
16455
16456         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
16457
16458 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
16459
16460         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
16461         (sparc-sun-solaris2*): Likewise.
16462
16463 2008-06-09  Arnaud Charlet  <charlet@adacore.com
16464
16465         * doc/install.texi: Update requirements to build the Ada compiler.
16466
16467 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
16468
16469         * df-scan.c (struct df_scan_problem_data): Remove the
16470         mw_link_pool alloc pool.
16471         (df_scan_free_internal): Don't free it.
16472         (df_scan_alloc): Don't allocate it.
16473         * df.h (struct df_link): Update comment.
16474
16475 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
16476
16477         * except.h: Correct checks for when SJLJ exceptions must be used.
16478
16479 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16480
16481         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
16482         default.
16483
16484 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
16485
16486         PR tree-optimization/36218
16487         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
16488         configure for the build system.
16489         (BUILD_LDFLAGS): Define.
16490         * configure: Regenerate.
16491         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
16492
16493 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
16494
16495         PR target/36424
16496         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
16497         * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
16498         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
16499
16500 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
16501
16502         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
16503
16504 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
16505
16506         * config.gcc (Obsolete configurations): Remove list of
16507         configurations.
16508         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
16509         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
16510         targets matched by those patterns.
16511         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
16512         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
16513         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
16514         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
16515         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
16516         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
16517         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
16518         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
16519         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
16520         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
16521         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
16522         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
16523         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
16524         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
16525         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
16526         Make code for Solaris 7 and greater unconditional for Solaris.
16527         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
16528         Remove --with-* handling.
16529         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
16530         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
16531         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
16532         LINK_OS_WINDISS_SPEC): Remove.
16533         * config/rs6000/sysv4.opt (mwindiss): Remove.
16534         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
16535         * configure: Regenerate.
16536         * doc/cpp.texi: Don't mention BeOS.
16537         * doc/extend.texi (interrupt): Don't mention MS1.
16538         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
16539         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
16540         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
16541         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
16542         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
16543         Remove.
16544         * doc/invoke.texi (MT Options): Remove.
16545         (-mwindiss): Remove.
16546         (CRIS Options): Remove cris-axis-aout references.
16547         (HPPA Options): Don't mention hppa1.1-*-pro.
16548         * doc/md.texi: (MorphoTech family): Remove.
16549         * libgcc2.c: Don't handle UWIN.
16550         * config/alpha/t-unicosmk: Remove.
16551         * config/alpha/unicosmk.h: Remove.
16552         * config/arm/kaos-arm.h: Remove.
16553         * config/arm/kaos-strongarm.h: Remove.
16554         * config/arm/strongarm-coff.h: Remove.
16555         * config/arm/strongarm-elf.h: Remove.
16556         * config/arm/strongarm-pe.h: Remove.
16557         * config/arm/t-strongarm-pe: Remove.
16558         * config/arm/t-xscale-coff: Remove.
16559         * config/arm/t-xscale-elf: Remove.
16560         * config/arm/xscale-coff.h: Remove.
16561         * config/arm/xscale-elf.h: Remove.
16562         * config/chorus.h: Remove.
16563         * config/cris/aout.h: Remove.
16564         * config/cris/aout.opt: Remove.
16565         * config/cris/t-aout: Remove.
16566         * config/i386/beos-elf.h: Remove.
16567         * config/i386/kaos-i386.h: Remove.
16568         * config/i386/ptx4-i.h: Remove.
16569         * config/i386/sco5.h: Remove.
16570         * config/i386/sco5.opt: Remove.
16571         * config/i386/sysv4-cpp.h: Remove.
16572         * config/i386/sysv5.h: Remove.
16573         * config/i386/t-beos: Remove.
16574         * config/i386/t-sco5: Remove.
16575         * config/i386/t-uwin: Remove.
16576         * config/i386/uwin.asm: Remove.
16577         * config/i386/uwin.h: Remove.
16578         * config/kaos.h: Remove.
16579         * config/mips/windiss.h: Remove.
16580         * config/mt: Remove directory.
16581         * config/pa/pa-osf.h: Remove.
16582         * config/pa/pa-pro-end.h: Remove.
16583         * config/pa/t-pro: Remove.
16584         * config/ptx4.h: Remove.
16585         * config/rs6000/beos.h: Remove.
16586         * config/rs6000/kaos-ppc.h: Remove.
16587         * config/rs6000/t-beos: Remove.
16588         * config/rs6000/windiss.h: Remove.
16589         * config/sh/kaos-sh.h: Remove.
16590         * config/sol2-6.h: Remove.
16591         * config/sparc/sol26-sld.h: Remove.
16592         * config/sparc/sysv4-only.h: Remove.
16593         * config/vax/bsd.h: Remove.
16594         * config/vax/t-memfuncs: Remove.
16595         * config/vax/ultrix.h: Remove.
16596         * config/vax/vaxv.h: Remove.
16597         * config/windiss.h: Remove.
16598
16599 2008-06-06  Uros Bizjak <ubizjak@gmail.com>
16600
16601         PR rtl-optimization/36438
16602         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
16603         for vector shifts with constant scalar shift operands.
16604
16605 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
16606
16607         * doc/invoke.texi: Document -march=xlr.
16608         * config/mips/xlr.md: New file.
16609         * config/mips/mips.md: Include it.
16610         (cpu): Add "xlr".
16611         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
16612         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
16613         (mips_rtx_cost_data): Likewise.
16614
16615 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
16616
16617         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
16618         PRE_INC and PRE_DEC cases.
16619
16620 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
16621
16622         PR rtl-optimization/36419
16623         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
16624         the emitting jump insn.
16625
16626         PR target/36362
16627         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
16628         is not bool, boolify the whole *expr_p and convert to the desired type.
16629
16630 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
16631
16632         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
16633         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
16634         Add omp_private_outer_ref hook, add another argument to
16635         omp_clause_default_ctor hook.
16636         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
16637         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
16638         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
16639         hook_tree_tree_tree_tree_null.
16640         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
16641         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
16642         * hooks.c (hook_tree_tree_tree_tree_null): New function.
16643         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
16644         * tree.def (OMP_TASK): New tree code.
16645         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
16646         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
16647         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
16648         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
16649         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
16650         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
16651         OMP_CLAUSE_COLLAPSE_EXPR): Define.
16652         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
16653         (OMP_DIRECTIVE_P): Add OMP_TASK.
16654         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
16655         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
16656         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
16657         and OMP_CLAUSE_UNTIED entries.
16658         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
16659         num_ops to 2.
16660         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
16661         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
16662         * tree-pretty-print.c (dump_omp_clause): Handle
16663         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
16664         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
16665         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
16666         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
16667         warning about unsigned iterators.  Change decl/init/cond/incr
16668         arguments to TREE_VECs, check arguments for all collapsed loops.
16669         (c_finish_omp_taskwait): New function.
16670         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
16671         ws_clauses.
16672         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
16673         default_function_array_conversion on init.  Add par_clauses argument.
16674         If decl is present in parallel's lastprivate clause, change it to
16675         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
16676         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
16677         collapse count in clauses.
16678         (c_parser_omp_for, c_parser_omp_parallel): Adjust
16679         c_parser_omp_for_loop callers.
16680         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
16681         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
16682         (c_parser_omp_clause_name): Handle collapse and untied clauses.
16683         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
16684         functions.
16685         (c_parser_omp_clause_schedule): Handle schedule(auto).
16686         Include correct location in the error message.
16687         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
16688         and PRAGMA_OMP_CLAUSE_UNTIED.
16689         (OMP_TASK_CLAUSE_MASK): Define.
16690         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
16691         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
16692         * tree-nested.c (convert_nonlocal_omp_clauses,
16693         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
16694         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
16695         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
16696         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
16697         OMP_CLAUSE_DECL.
16698         (conver_nonlocal_reference, convert_local_reference,
16699         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
16700         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
16701         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
16702         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
16703         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
16704         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
16705         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
16706         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
16707         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
16708         OMP_CLAUSE_UNTIED.
16709         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
16710         * c-common.h (c_finish_omp_taskwait): New prototype.
16711         * gimple-low.c (lower_stmt): Handle OMP_TASK.
16712         * tree-parloops.c (create_parallel_loop): Create 1 entry
16713         vectors for OMP_FOR_{INIT,COND,INCR}.
16714         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
16715         (make_edges): Handle OMP_TASK.
16716         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
16717         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
16718         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
16719         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
16720         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
16721         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
16722         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
16723         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
16724         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
16725         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
16726         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
16727         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
16728         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
16729         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
16730         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
16731         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
16732         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
16733         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
16734         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
16735         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
16736         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
16737         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
16738         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
16739         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
16740         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
16741         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
16742         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
16743         original iterator is present in lastprivate clause or if
16744         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
16745         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
16746         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
16747         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
16748         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
16749         if it is set, lookup var in outer contexts too.  Handle
16750         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
16751         to be implicitly determined firstprivate for task regions.
16752         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
16753         if it is set, lookup var in outer contexts too.  Set
16754         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
16755         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
16756         OMP_CLAUSE_UNTIED.  Take region_type as last argument
16757         instead of in_parallel and in_combined_parallel.
16758         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
16759         Adjust callers.
16760         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
16761         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
16762         (new_omp_context): Set default_kind to
16763         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
16764         (omp_region_type): New enum.
16765         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
16766         fields, add region_type.
16767         (new_omp_context): Take region_type as argument instead of is_parallel
16768         and is_combined_parallel.
16769         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
16770         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
16771         ctx->is_combined_parallel checks.
16772         (gimplify_omp_task): New function.
16773         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
16774         OMP_CLAUSE_UNTIED.
16775         * omp-low.c (extract_omp_for_data): Use schedule(static)
16776         for schedule(auto).  Handle pointer and unsigned iterators.
16777         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
16778         Add loops argument.  Extract data for collapsed OMP_FOR loops.
16779         (expand_parallel_call): Assert sched_kind isn't auto,
16780         map runtime schedule to index 3.
16781         (struct omp_for_data_loop): New type.
16782         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
16783         Add loop, loops, collapse and iter_type fields.
16784         (workshare_safe_to_combine_p): Disallow combined for if
16785         iter_type is unsigned long long.  Don't combine collapse > 1 loops
16786         unless all bounds and steps are constant.  Adjust extract_omp_for_data
16787         caller.
16788         (expand_omp_for_generic): Handle pointer, unsigned and long long
16789         iterators.  Handle collapsed OMP_FOR loops.  Adjust
16790         for struct omp_for_data changes.  If libgomp function doesn't return
16791         boolean_type_node, add comparison of the return value with 0.
16792         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
16793         pointer, unsigned and long long iterators.  Adjust for struct
16794         omp_for_data changes.
16795         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
16796         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
16797         unsigned long long.  Allocate loops array, pass it to
16798         extract_omp_for_data.  For collapse > 1 loops use always
16799         expand_omp_for_generic.
16800         (omp_context): Add sfield_map and srecord_type fields.
16801         (is_task_ctx, lookup_sfield): New functions.
16802         (use_pointer_for_field): Use is_task_ctx helper.  Change first
16803         argument's type from const_tree to tree.  Clarify comment.
16804         In OMP_TASK disallow copy-in/out sharing.
16805         (build_sender_ref): Call lookup_sfield instead of lookup_field.
16806         (install_var_field): Add mask argument.  Populate both record_type
16807         and srecord_type if needed.
16808         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
16809         in srecord_type.
16810         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
16811         and DECL_FIELD_OFFSET.
16812         (scan_sharing_clauses): Adjust install_var_field callers.  For
16813         firstprivate clauses on explicit tasks allocate the var by value in
16814         record_type unconditionally, rather than by reference.
16815         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
16816         Use is_taskreg_ctx instead of is_parallel_ctx.
16817         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
16818         (create_omp_child_function_name): Add task_copy argument, use
16819         *_omp_cpyfn* names if it is true.
16820         (create_omp_child_function): Add task_copy argument, if true create
16821         *_omp_cpyfn* helper function.
16822         (scan_omp_parallel): Adjust create_omp_child_function callers.
16823         Rename parallel_nesting_level to taskreg_nesting_level.
16824         (scan_omp_task): New function.
16825         (lower_rec_input_clauses): Don't run constructors for firstprivate
16826         explicit task vars which are initialized by *_omp_cpyfn*.
16827         Pass outer var ref to omp_clause_default_ctor hook if
16828         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
16829         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
16830         OMP_CLAUSE_REDUCTION_INIT.
16831         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
16832         avoid duplicate setting of fields.  Handle
16833         OMP_CLAUSE_PRIVATE_OUTER_REF.
16834         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
16835         copy-out if TREE_READONLY, only copy-in.
16836         (expand_task_copyfn): New function.
16837         (expand_task_call): New function.
16838         (struct omp_taskcopy_context): New type.
16839         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
16840         New functions.
16841         (lower_omp_parallel): Rename to...
16842         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
16843         Call create_task_copyfn if srecord_type is needed.  Adjust
16844         sender_decl type.
16845         (task_shared_vars): New variable.
16846         (check_omp_nesting_restrictions): Warn if work-sharing,
16847         barrier, master or ordered region is closely nested inside OMP_TASK.
16848         Add warnings for barrier if closely nested inside of work-sharing,
16849         ordered, or master region.
16850         (scan_omp_1): Call check_omp_nesting_restrictions even for
16851         GOMP_barrier calls.  Rename parallel_nesting_level to
16852         taskreg_nesting_level.  Handle OMP_TASK.
16853         (lower_lastprivate_clauses): Even if some lastprivate is found on a
16854         work-sharing construct, continue looking for them on parent parallel
16855         construct.
16856         (lower_omp_for_lastprivate): Add lastprivate clauses
16857         to the beginning of dlist rather than end.  Adjust for struct
16858         omp_for_data changes.
16859         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
16860         not after it.  Handle collapsed OMP_FOR loops, adjust for
16861         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
16862         (get_ws_args_for): Adjust extract_omp_for_data caller.
16863         (scan_omp_for): Handle collapsed OMP_FOR
16864         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
16865         (lower_omp_single_simple): If libgomp function doesn't return
16866         boolean_type_node, add comparison of the return value with 0.
16867         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
16868         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
16869         (parallel_nesting_level): Rename to...
16870         (taskreg_nesting_level): ... this.
16871         (is_taskreg_ctx): New function.
16872         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
16873         of is_parallel_ctx.
16874         (execute_lower_omp): Rename parallel_nesting_level to
16875         taskreg_nesting_level.
16876         (expand_omp_parallel): Rename to...
16877         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
16878         Call omp_task_call for OMP_TASK regions.
16879         (expand_omp): Adjust caller, handle OMP_TASK.
16880         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
16881
16882         * bitmap.c (bitmap_default_obstack_depth): New variable.
16883         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
16884         if argument is NULL and bitmap_default_obstack is already initialized.
16885         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
16886         at the end.
16887         * matrix-reorg.c (matrix_reorg): Likewise.
16888
16889 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
16890
16891         * config/i386/i386.md (*indirect_jump): Macroize using P
16892         mode iterator.  Remove !TARGET_64BIT from insn constraints.
16893         (*tablejump_1): Ditto.
16894         (*indirect_jump_rex64): Remove insn pattern.
16895         (*tablejump_1_rex64): Ditto.
16896         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
16897         and eh_return_si insn patterns.
16898
16899 2008-06-06  Richard Guenther  <rguenther@suse.de>
16900
16901         * tree-ssa-structalias.c (merge_smts_into): Remove.
16902         (find_what_p_points_to): Do not bother to compute the
16903         points-to set for pt_anything pointers.
16904         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
16905         for pt_anything pointers is ok.
16906
16907 2008-06-06  Jan Hubicka  <jh@suse.cz>
16908
16909         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
16910
16911 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16912
16913         * cgraph.c: Fix typos in comments.
16914         (cgraph_availability_names): Fix string typo.
16915         * fold-const.c: Fix typos in comments.
16916         (fold_binary): Fix typo in warning.
16917         * genautomata.c: Fix typos in comments.
16918         (check_presence_pattern_sets): Fix typo in local variable.
16919         (output_description): Fix typo in output.
16920         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
16921         * hwint.h: Likewise.
16922         * matrix-reorg.c (check_allocation_function): Likewise.
16923         * omega.c (smooth_weird_equations): Likewise.
16924         * auto-inc-dec.c: Fix typos in comments.
16925         * bb-reorder.c: Likewise.
16926         * builtins.c: Likewise.
16927         * c-common.c: Likewise.
16928         * c-cppbuiltin.c: Likewise.
16929         * c-parser.c: Likewise.
16930         * c-pretty-print.c: Likewise.
16931         * cfgcleanup.c: Likewise.
16932         * cfgexpand.c: Likewise.
16933         * cfghooks.c: Likewise.
16934         * cfglayout.c: Likewise.
16935         * cfgloopmanip.c: Likewise.
16936         * cgraphunit.c: Likewise.
16937         * coverage.c: Likewise.
16938         * dbxout.c: Likewise.
16939         * df-byte-scan.c: Likewise.
16940         * df-core.c: Likewise.
16941         * df-problems.c: Likewise.
16942         * df-scan.c: Likewise.
16943         * dfp.c: Likewise.
16944         * dominance.c: Likewise.
16945         * domwalk.c: Likewise.
16946         * dse.c: Likewise.
16947         * dwarf2out.c: Likewise.
16948         * emit-rtl.c: Likewise.
16949         * et-forest.c: Likewise.
16950         * function.c: Likewise.
16951         * function.h: Likewise.
16952         * gcc.c: Likewise.
16953         * gcov-io.c: Likewise.
16954         * gcov.c: Likewise.
16955         * gcse.c: Likewise.
16956         * genattrtab.c: Likewise.
16957         * ggc-page.c: Likewise.
16958         * gimplify.c: Likewise.
16959         * gthr-lynx.h: Likewise.
16960         * haifa-sched.c: Likewise.
16961         * ipa-cp.c: Likewise.
16962         * ipa-inline.c: Likewise.
16963         * ipa-prop.h: Likewise.
16964         * ipa-pure-const.c: Likewise.
16965         * ipa-struct-reorg.c: Likewise.
16966         * ipa-struct-reorg.h: Likewise.
16967         * ipa-type-escape.c: Likewise.
16968         * ipa.c: Likewise.
16969         * loop-doloop.c: Likewise.
16970         * mips-tfile.c: Likewise.
16971         * mkmap-flat.awk: Likewise.
16972         * mkmap-symver.awk: Likewise.
16973         * modulo-sched.c: Likewise.
16974         * omp-low.c: Likewise.
16975         * optabs.c: Likewise.
16976         * optabs.h: Likewise.
16977         * opts.c: Likewise.
16978         * passes.c: Likewise.
16979         * postreload-gcse.c: Likewise.
16980         * postreload.c: Likewise.
16981         * predict.c: Likewise.
16982         * pretty-print.h: Likewise.
16983         * profile.c: Likewise.
16984         * protoize.c: Likewise.
16985         * ra-conflict.c: Likewise.
16986         * real.c: Likewise.
16987         * recog.c: Likewise.
16988         * regclass.c: Likewise.
16989         * regs.h: Likewise.
16990         * reload.c: Likewise.
16991         * rtl-error.c: Likewise.
16992         * rtlanal.c: Likewise.
16993         * scan.h: Likewise.
16994         * sched-rgn.c: Likewise.
16995         * see.c: Likewise.
16996         * stmt.c: Likewise.
16997         * target.h: Likewise.
16998         * tree-dfa.c: Likewise.
16999         * tree-eh.c: Likewise.
17000         * tree-flow-inline.h: Likewise.
17001         * tree-inline.c: Likewise.
17002         * tree-into-ssa.c: Likewise.
17003         * tree-loop-distribution.c: Likewise.
17004         * tree-nested.c: Likewise.
17005         * tree-parloops.c: Likewise.
17006         * tree-pass.h: Likewise.
17007         * tree-pretty-print.c: Likewise.
17008         * tree-profile.c: Likewise.
17009         * tree-scalar-evolution.c: Likewise.
17010         * tree-sra.c: Likewise.
17011         * tree-ssa-alias-warnings.c: Likewise.
17012         * tree-ssa-ccp.c: Likewise.
17013         * tree-ssa-coalesce.c: Likewise.
17014         * tree-ssa-dom.c: Likewise.
17015         * tree-ssa-dse.c: Likewise.
17016         * tree-ssa-forwprop.c: Likewise.
17017         * tree-ssa-live.c: Likewise.
17018         * tree-ssa-live.h: Likewise.
17019         * tree-ssa-loop-im.c: Likewise.
17020         * tree-ssa-loop-ivopts.c: Likewise.
17021         * tree-ssa-loop-niter.c: Likewise.
17022         * tree-ssa-loop-prefetch.c: Likewise.
17023         * tree-ssa-phiopt.c: Likewise.
17024         * tree-ssa-phiprop.c: Likewise.
17025         * tree-ssa-sccvn.c: Likewise.
17026         * tree-ssa-ter.c: Likewise.
17027         * tree-ssa-threadupdate.c: Likewise.
17028         * tree-ssa.c: Likewise.
17029         * tree-vect-analyze.c: Likewise.
17030         * tree-vect-transform.c: Likewise.
17031         * tree-vectorizer.c: Likewise.
17032         * tree-vn.c: Likewise.
17033         * tree-vrp.c: Likewise.
17034         * tree.c: Likewise.
17035         * tree.def: Likewise.
17036         * tree.h: Likewise.
17037         * unwind-dw2-fde.c: Likewise.
17038         * unwind.inc: Likewise.
17039         * value-prof.c: Likewise.
17040         * vmsdbgout.c: Likewise.
17041
17042 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
17043
17044         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
17045         always place FP constants in the TOC for TARGET_POWERPC64.
17046         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
17047
17048 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
17049
17050         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
17051         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
17052         enable for TARGET_E500_DOUBLE.
17053         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
17054         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
17055         floating-point modes like integer modes for E500 double.
17056         (rs6000_legitimate_offset_address_p): Likewise.
17057         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
17058         addressing for DDmode for E500 double.
17059         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
17060         modes as using 64-bits of registers for E500 double.
17061         (spe_build_register_parallel): Do not handle DDmode or TDmode.
17062         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
17063         specially for E500 double.
17064         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
17065         TDmode for E500 double.
17066         (rs6000_gimplify_va_arg): Only handle SDmode in registers
17067         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
17068         (rs6000_split_multireg_move): Do not handle TDmode specially for
17069         E500 double.
17070         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
17071         using 64-bit registers for E500 double.
17072         (emit_frame_save): Do not handle DDmode specially for E500 double.
17073         (gen_frame_mem_offset): Likewise.
17074         (rs6000_function_value): Do not call spe_build_register_parallel
17075         for DDmode or TDmode.
17076         (rs6000_libcall_value): Likewise.
17077         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
17078         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
17079         for E500 double.
17080
17081 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
17082
17083         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
17084         in comments.
17085
17086 2008-06-04  Junjie Gu <jgu@tensilica.com>
17087
17088         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
17089         comparison for frame pointers.
17090
17091 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
17092
17093         PR target/27386
17094         * config/avr/avr.h (PUSH_ROUNDING): Remove.
17095
17096 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
17097
17098         PR target/30243
17099         * builtins.c (expand_builtin_signbit): Don't take lowpart when
17100         register is already smaller or equal to required mode.
17101
17102 2008-06-04  Xinliang David Li  <davidxl@google.com>
17103
17104         * tree-call-cdce.c: New file.
17105         (cond_dead_built_in_calls): New static variable.
17106         (input_domain): New struct.
17107         (check_pow): New function.
17108         (check_builtin_call): Ditto.
17109         (check_target_format): Ditto.
17110         (is_call_dce_candidate): Ditto.
17111         (gen_one_condition): Ditto.
17112         (gen_conditions_for_domain): Ditto.
17113         (get_domain): Ditto.
17114         (gen_conditions_for_pow_cst_base): Ditto.
17115         (gen_conditions_for_pow_int_base): Ditto.
17116         (gen_conditions_for_pow): Ditto.
17117         (get_no_error_domain): Ditto.
17118         (gen_shrink_wrap_conditions): Ditto.
17119         (shrink_wrap_one_built_in_call): Ditto.
17120         (shink_wrap_conditional_dead_built_in_calls): Ditto.
17121         (tree_call_cdce): Ditto.
17122         (gate_call_cdce): Ditto.
17123         (pass_call_cdce): New gimple pass.
17124         * passes.c: (init_optimization_passes): New pass.
17125         * tree-pass.h: New pass declaration.
17126         * opts.c (decode_options): New flag setting.
17127         * common.opt: Add -ftree-builtin-call-dce flag.
17128         * Makefile.in: Add new source file.
17129         * tempvar.def: New tv_id.
17130         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
17131
17132 2008-06-04  Richard Guenther  <rguenther@suse.de>
17133
17134         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
17135         (is_call_clobbered): Always check var_ann->call_clobbered.
17136         (mark_call_clobbered): Always set var_ann->call_clobbered.
17137         (clear_call_clobbered): Always clear var_ann->call_clobbered.
17138         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
17139         (reset_alias_info): Clear call clobbering info on MTAGs and
17140         globals as well.
17141         (set_pt_anything): Set pt_global_mem.
17142         (create_tag_raw): Adjust comment.
17143         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
17144
17145 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
17146             Maxim Kuvyrkov  <maxim@codesourcery.com>
17147
17148         * config/m68k/m68k.opt (mxgot): New option.
17149         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
17150         (m68k_output_addr_const_extra): New.
17151         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
17152         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
17153         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
17154         * doc/invoke.texi (M680x0 Options): Document -mxgot.
17155
17156 2008-06-04  Richard Guenther  <rguenther@suse.de>
17157
17158         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
17159         negative or non-representable offsets.
17160
17161 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
17162
17163         * config/i386/i386.c (ix86_gen_leave): New.
17164         (ix86_gen_pop1): Likewise.
17165         (ix86_gen_add3): Likewise.
17166         (ix86_gen_sub3): Likewise.
17167         (ix86_gen_sub3_carry): Likewise.
17168         (ix86_gen_one_cmpl2): Likewise.
17169         (ix86_gen_monitor): Likewise.
17170         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
17171         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
17172         ix86_gen_one_cmpl2 and ix86_gen_monitor.
17173         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
17174         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
17175         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
17176         (ix86_expand_epilogue): Updated.
17177         (print_operand): Handle integer register operand for 'z'.
17178         (ix86_expand_strlensi_unroll_1): Likewise.
17179         (ix86_expand_strlen): Likewise.
17180         (ix86_expand_builtin): Likewise.
17181         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
17182         mov{q}/mov{l} and add{q}/add{l}.
17183
17184 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
17185
17186         * config/i386/i386.md (P): New mode iterator.
17187         (SFmode push_operand splitter): Macroize DImode and SImode pushes
17188         using P mode iterator.
17189         (DFmode push_operand splitter): Ditto.
17190         (XFmode push_operand splitter): Ditto.
17191         (DFmode float_extend SFmode push_operand splitter): Ditto.
17192         (XFmode float_extend SFmode push_operand splitter): Do not generate
17193         SImode pushes for 64bit target.  Macroize Dimode and SImode
17194         pushes using P mode iterator.
17195         (XFmode float_extend DFmode push_operand splitter): Ditto.
17196
17197 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
17198
17199         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
17200         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
17201         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
17202         return type to int.
17203         (ix86_call_abi_override): Remove check for call_used_regs.
17204
17205 2008-06-03  Richard Guenther  <rguenther@suse.de>
17206
17207         * tree-ssa-structalias.c (find_func_aliases): Add constraints
17208         for the lhs of calls if the return type contains pointers.
17209
17210 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
17211
17212         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
17213         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
17214         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
17215         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
17216         of cfun and DEFAULT_ABI to deceide abi mode.
17217         (DEFAULT_ABI): New.
17218         (REG_PARM_STACK_SPACE): Removed.
17219         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
17220         (STACK_BOUNDARY): Use default target to deceide stack boundary.
17221         * config/i386/i386-protos.h (ix86_cfun_abi): New.
17222         (ix86_function_abi): Likewise.
17223         (ix86_function_type_abi): Likewise.
17224         (ix86_call_abi_override): Likewise.
17225         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
17226         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
17227         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
17228         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
17229         specific defines.
17230         (X86_64_REGPARM_MAX): New.
17231         (X86_64_SSE_REGPARM_MAX): New.
17232         (X64_REGPARM_MAX): New.
17233         (X64_SSE_REGPARM_MAX): New.
17234         (X86_32_REGPARM_MAX): New.
17235         (X86_32_SSE_REGPARM_MAX): New.
17236         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
17237         (ix86_function_regparm): Handle user calling abi.
17238         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
17239         by DEFAULT_ABI versus SYSV_ABI check.
17240         (ix86_reg_parm_stack_space): New.
17241         (ix86_function_type_abi): New.
17242         (ix86_call_abi_override): New.
17243         (ix86_function_abi): New.
17244         (ix86_cfun_abi): New.
17245         (init_cumulative_args): Call abi specific initialization.
17246         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
17247         (function_arg_64): Extend SSE_REGPARM_MAX check.
17248         (function_arg (): Remove TARGET_64BIT_MS_ABI.
17249         (ix86_pass_by_reference): Likewise.
17250         (ix86_function_value_regno_p): Likewise.
17251         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
17252         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
17253         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
17254         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
17255         (setup_incoming_varargs_64): Adjust regparm for call abi.
17256         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
17257         (ix86_va_start): Likewise.
17258         (ix86_gimplify_va_arg): Likewise.
17259         (ix86_expand_prologue): Likewise.
17260         (output_pic_addr_const): Likewise.
17261         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
17262         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
17263         (x86_output_mi_thunk): Likewise.
17264         (x86_function_profiler): Likewise.
17265         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
17266         (SYSV_ABI, MS_ABI): New constants.
17267         (DEFAULT_ABI): New.
17268         (init_regs): Add prototype of function in regclass.c file.
17269         (OVERRIDE_ABI_FORMAT): New.
17270         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
17271         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
17272         (OUTGOING_REG_PARM_STACK_SPACE): New.
17273         (ix86_reg_parm_stack_space): New prototype.
17274         (CUMULATIVE_ARGS): Add call_abi member.
17275         (machine_function): Add call_abi member.
17276         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
17277         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
17278
17279 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com>
17280
17281         PR target/34879
17282         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
17283         (avr_builtin_setjmp_frame_value): New function.
17284         * config/avr/avr.md (nonlocal_goto_receiver): Define.
17285         (nonlocal_goto): Define.
17286
17287 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
17288
17289         * config/mips/mips.c (mips_emit_loadgp): Return early if
17290         there is nothing do to, otherwise emit a blockage if
17291         !TARGET_EXPLICIT_RELOCS || crtl->profile.
17292         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
17293
17294 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17295
17296         * configure.ac: Drop unneeded backslash ending up in config.in.
17297         * acinclude.m4: Likewise.
17298         * config.in: Regenerate.
17299
17300 2008-05-26  Jan Hubicka  <jh@suse.cz>
17301
17302         * predict.c (maybe_hot_frequency_p): Break out of...
17303         (maybe_hot_bb_p): ... here.
17304         (maybe_hot_edge_p): New.
17305         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
17306         * basic-block.h (maybe_hot_edge_p): Declare.
17307
17308 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
17309
17310         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
17311         (*cmpfp_<mode>_cc): Ditto.
17312         (*fp_jcc_8<mode>_387): Ditto.
17313         (*fop_<MODEF:mode>_2_i387): Ditto.
17314         (*fop_<MODEF:mode>_3_i387): Ditto.
17315         (*fop_xf_2_i387): Ditto.
17316         (*fop_xf_3_i387): Ditto.
17317
17318 2008-06-02  Tomas Bily  <tbily@suse.cz>
17319
17320         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
17321
17322 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
17323
17324         * config/mips/mips.c (mips_valid_offset_p): New function.
17325         (mips_valid_lo_sum_p): Likewise.
17326         (mips_classify_address): Use them.
17327         (mips_force_address): New function.
17328         (mips_legitimize_address): Use it.
17329         * config/mips/mips.md (MOVE128): New mode iterator.
17330         (movtf): Require TARGET_64BIT.  Remove empty strings.
17331         (*movtf_internal): Rename to...
17332         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
17333         of "R" and use {,fp}{load,store} attributes instead of "multi".
17334         Use a separate define_split.
17335         (*movtf_mips16): New pattern.
17336
17337 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
17338
17339         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
17340         * config/mips/mips.c (mips_expand_before_return): New function.
17341         (mips_expand_epilogue): Call it.
17342         * config/mips/mips.md (return): Turn into a define_expand.
17343         (*return): New insn.
17344
17345 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
17346
17347         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
17348         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
17349         functions.  Do not emit uses and clobbers of CONCATs; individually
17350         use and clobber their operands.
17351         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
17352         gen_clobber, emit_use and gen_use.
17353         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
17354         (expand_builtin_return): Likewise.
17355         * cfgbuild.c (count_basic_blocks): Likewise.
17356         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
17357         * explow.c (emit_stack_restore): Likewise.
17358         * expmed.c (extract_bit_field_1): Likewise.
17359         * expr.c (convert_move, emit_move_complex_parts): Likewise.
17360         (emit_move_multi_word, store_constructor): Likewise.
17361         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
17362         (thread_prologue_and_epilogue_insns): Likewise.
17363         * lower-subreg.c (resolve_simple_move): Likewise.
17364         * optabs.c (widen_operand, expand_binop): Likewise.
17365         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
17366         * reload.c (find_reloads): Likewise.
17367         * reload1.c (eliminate_regs_in_insn): Likewise.
17368         * stmt.c (expand_nl_goto_receiver): Likewise.
17369         * config/alpha/alpha.md (builtin_longjmp): Likewise.
17370         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
17371         * config/arm/arm.c (arm_load_pic_register): Likewise.
17372         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
17373         * config/arm/arm.md (untyped_return): Likewise.
17374         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
17375         * config/avr/avr.c (expand_prologue): Likewise.
17376         * config/bfin/bfin.c (do_unlink): Likewise.
17377         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
17378         * config/cris/cris.c (cris_expand_prologue): Likewise.
17379         * config/darwin.c (machopic_indirect_data_reference): Likewise.
17380         (machopic_legitimize_pic_address): Likewise.
17381         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
17382         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
17383         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
17384         (ix86_expand_convert_uns_didf_sse): Likewise.
17385         (ix86_expand_vector_init_general): Likewise.
17386         * config/ia64/ia64.md (eh_epilogue): Likewise.
17387         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
17388         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
17389         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
17390         (config/iq2000/iq2000.c): Likewise.
17391         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
17392         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
17393         (builtin_longjmp): Likewise.
17394         * config/mn10300/mn10300.md (call, call_value): Likewise.
17395         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
17396         * config/pdp11/pdp11.md (abshi2): Likewise.
17397         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
17398         * config/s390/s390.c (s390_emit_prologue): Likewise.
17399         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
17400         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
17401         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
17402         * config/sh/sh.c (prepare_move_operands): Likewise.
17403         (output_stack_adjust, sh_expand_epilogue): Likewise.
17404         (sh_set_return_address, sh_expand_t_scc): Likewise.
17405         * config/sparc/sparc.c (load_pic_register): Likewise.
17406         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
17407         * config/spu/spu.c (spu_expand_epilogue): Likewise.
17408         * config/v850/v850.c (expand_epilogue): Likewise.
17409
17410 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
17411
17412         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
17413         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
17414         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
17415         * config/avr/avr.c (expand_prologue, expand_epilogue): Use
17416         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
17417         stack pointer register.
17418         (output_movhi): Remove code for interrupt specific writing to the
17419         stack pointer register.
17420
17421 2008-05-31  Richard Guenther  <rguenther@suse.de>
17422
17423         PR tree-optimization/34244
17424         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
17425         (tree_expr_nonzero_warnv_p): Likewise.
17426         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
17427         ssa_name_nonnegative_p.
17428         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
17429         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
17430         not tree_expr_nonzero_warnv_p.
17431
17432         PR tree-optimization/36262
17433         Revert
17434         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
17435
17436         PR tree-optimization/34244
17437         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
17438         (record_numbers_of_iterations): New function.
17439         (execute_vrp): Cache the numbers of iterations of loops.
17440         * tree-scalar-evolution.c (scev_reset_except_niters):
17441         New function.
17442         (scev_reset): Use scev_reset_except_niters.
17443         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
17444
17445 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
17446
17447         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
17448         __WORKAROUND_RETS when appropriate.
17449
17450 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
17451
17452         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
17453         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
17454         mode iterator.
17455         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
17456         *fop_df_comm_sse insn patterns using MODEF mode iterator.
17457         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
17458         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
17459         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
17460         *fop_df_1_mixed insn patterns using MODEF mode iterator.
17461         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
17462         *fop_df_1_sse insn patterns using MODEF mode iterator.
17463         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
17464         *fop_df_1_i387 insn patterns using MODEF mode iterator.
17465         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
17466         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
17467         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
17468         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
17469         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
17470         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
17471         (*fop_xf_4_i387): Use <MODE> for mode attribute.
17472         (*fop_xf_5_i387): Ditto.
17473         (*fop_xf_6_i387): Ditto.
17474
17475 2008-05-30  Richard Guenther  <rguenther@suse.de>
17476
17477         * builtins.c (build_string_literal): Avoid generating
17478         a non-gimple_val result.
17479
17480 2008-05-30  DJ Delorie  <dj@redhat.com>
17481
17482         * exec-tool.in: Use an environment variable (private) instead of a
17483         file (shared) as a semaphore, so as to not break parallel builds.
17484
17485 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
17486
17487         * optabs.c (maybe_encapsulate_block): Remove.
17488         (emit_libcall_block): Adjust accordingly.
17489         * optabs.h (maybe_encapsulate_block): Remove prototype.
17490
17491         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
17492         Don't use maybe_encapsulate_block.
17493
17494 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
17495
17496         * config/rs6000/rs6000.c (rs6000_legitimize_address,
17497         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
17498         rtx is a SYMBOL_REF before calling get_pool_constant.
17499
17500 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
17501
17502         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
17503
17504 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
17505
17506         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
17507         rather than OS names to choose INO_T_EQ definition.
17508         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
17509         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
17510
17511 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
17512
17513         PR target/36348
17514         * config/darwin-f.c: New.
17515         * config/t-darwin: Added rule to build darwin-f.o.
17516         * config.gcc: Defined new variable, fortran_target_objs.
17517         (*-*-darwin*): Set fortran_target_objs.
17518         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
17519         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
17520         * configure: Regenerated.
17521
17522 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
17523
17524         PR target/35771
17525         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
17526         canonical type if needed.
17527
17528 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
17529
17530         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
17531
17532 2008-05-29  Richard Guenther  <rguenther@suse.de>
17533
17534         PR tree-optimization/36343
17535         PR tree-optimization/36346
17536         PR tree-optimization/36347
17537         * tree-flow.h (clobber_what_p_points_to): Declare.
17538         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
17539         pointed-to variable is dereferenced is irrelevant to whether
17540         the pointer can access the pointed-to variable.
17541         (clobber_what_p_points_to): New function.
17542         * tree-ssa-alias.c (set_initial_properties): Use it.
17543         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
17544         call clobber check for NMTs.
17545
17546 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
17547
17548         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
17549         for printing gcov_type.
17550
17551 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
17552
17553         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
17554         and the eh region information.
17555         * value-prof.c (gimple_move_stmt_histograms): New function.
17556         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
17557
17558 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
17559
17560         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
17561
17562 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
17563
17564         * value-prof.c (tree_ic_transform): Print counts.
17565         * tree-profile.c (tree_gen_ic_func_profiler):
17566         Clear __gcov_indreict_call_callee variable to avoid misattribution
17567         of the profile.
17568
17569 2008-05-28  Rafael Espíndola  <espindola@google.com>
17570
17571         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
17572         invalid sharing.
17573
17574 2008-05-28  Richard Guenther  <rguenther@suse.de>
17575
17576         PR tree-optimization/36339
17577         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
17578         and clobbering code out of the loop.
17579
17580 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
17581
17582         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
17583         letters defined.
17584
17585         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
17586         s390_contiguous_bitmask_p, s390_symref_operand_p,
17587         s390_check_symref_alignment, s390_reload_larl_operand,
17588         s390_reload_symref_address): New functions.
17589         (s390_branch_condition_mnemonic): Support compare and branch
17590         instructions.
17591         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
17592         and 'W' constraints.
17593         (s390_secondary_reload): Add secondary reloads for unaligned
17594         symbol refs or symbol refs to floating point or QI/TI mode
17595         integer values.
17596         (legitimate_address_p): Accept symbol references as addresses.
17597         (s390_expand_insv): Use rotate and insert selected bits
17598         instruction for insv when building for z10.
17599         (print_operand_address): Handle symbol ref addresses.
17600         (print_operand): Output modifier 'c' added for signed byte values.
17601         (s390_encode_section_info): Mark symbol refs with
17602         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
17603
17604         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
17605         (length attribute): RRF, RRR have 4 byte length.
17606         (FPALL, INTALL): New mode iterators added.
17607         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
17608         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
17609         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
17610         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
17611         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
17612         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
17613         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
17614         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
17615         instructions.
17616         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
17617         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
17618         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
17619         reload<INTALL:mode><P:mode>_toreg_z10,
17620         reload<FPALL:mode><P:mode>_tomem_z10,
17621         reload<FPALL:mode><P:mode>_toreg_z10,
17622         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
17623         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
17624         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
17625         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
17626         definition.
17627         (movmem, clrmem, cmpmem): New splitters added.
17628
17629         * config/s390/predicates.md (larl_operand): Use
17630         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
17631         SYMBOL_REF_ALIGN1_P.
17632         (s390_signed_integer_comparison,
17633         s390_unsigned_integer_comparison): New predicates.
17634
17635         * config/s390/s390-protos.h (s390_check_symref_alignment,
17636         s390_contiguous_bitmask_p, s390_reload_larl_operand,
17637         s390_reload_symref_address,
17638         s390_compare_and_branch_condition_mask): Prototypes added.
17639
17640         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
17641         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
17642         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
17643
17644 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
17645
17646         * config/s390/s390.c (z10_cost): New cost function for z10.
17647         (s390_handle_arch_option, override_options): Support -march=z10 switch.
17648         (s390_issue_rate): Adjust issue rate for z10.
17649         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
17650         (processor_flags): Add PF_Z10.
17651         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
17652         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
17653         * gcc/config.gcc: Add z10.
17654
17655 2008-05-28  Richard Guenther  <rguenther@suse.de>
17656
17657         PR tree-optimization/36291
17658         * tree-flow. h (struct gimple_df): Remove var_anns member.
17659         * tree-flow-inline.h (gimple_var_anns): Remove.
17660         (var_ann): Simplify.
17661         * tree-dfa.c (create_var_ann): Simplify.
17662         (remove_referenced_var): Clear alias info from var_anns of globals.
17663         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
17664         (delete_tree_ssa): Clear alias info from var_anns of globals.
17665         Do not free var_anns.
17666         (var_ann_eq): Remove.
17667         (var_ann_hash): Likewise.
17668
17669 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
17670
17671         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
17672         and loongson2f entries.
17673         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
17674         * config/mips/mips.h (processor_type): Add Loongson-2E
17675         and Loongson-2F entries.
17676         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
17677         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
17678         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
17679         * doc/invoke.texi (MIPS Options): Document loongson2e
17680         and loongson2f processor names.
17681
17682 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
17683
17684         PR target/35767
17685         PR target/35771
17686         * config/i386/i386.c (ix86_function_arg_boundary): Use
17687         alignment of canonical type.
17688         (ix86_expand_vector_move): Check unaligned memory access for
17689         all SSE modes.
17690
17691 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
17692
17693         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
17694         Moved to the front of file.
17695
17696 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
17697             H.J. Lu  <hongjiu.lu@intel.com>
17698
17699         * dwarf2out.c (current_fde): New.
17700         (add_cfi): Use it.
17701         (lookup_cfa:): Likewise.
17702         (dwarf2out_end_epilogue): Likewise.
17703         (dwarf2out_note_section_used): Likewise.
17704
17705 2008-05-27  Michael Matz  <matz@suse.de>
17706
17707         PR c++/27975
17708         * c.opt (Wenum-compare): New warning option.
17709         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
17710
17711 2008-05-27  Michael Matz  <matz@suse.de>
17712
17713         PR middle-end/36326
17714         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
17715         non-BLKmode types.
17716         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
17717         into memory as tail calls.
17718
17719 2008-05-27  Richard Guenther  <rguenther@suse.de>
17720
17721         PR tree-optimization/36339
17722         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
17723         pointers cause all addressable variables to be call clobbered.
17724
17725 2008-05-27  Richard Guenther  <rguenther@suse.de>
17726
17727         PR tree-optimization/36245
17728         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
17729
17730 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
17731
17732         * config/s390/s390.md: Replace all occurences of the 'm'
17733         constraint with 'RT'.
17734
17735 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
17736
17737         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
17738         definitions added.
17739         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
17740         "*movdi_64".
17741         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
17742         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
17743         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
17744
17745 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
17746
17747         * reload.c: (find_reloads): Skip alternatives according to the
17748         "enabled" attribute. Constify the constraint variable.
17749         * recog.c (get_attr_enabled): Add default implementation.
17750         (extract_insn): Set the alternative_enabled_p array
17751         in the recog_data struct.
17752         (preprocess_constraints, constrain_operands): Skip
17753         alternatives according to the "enabled" attribute
17754         * recog.h (struct recog_data): New field alternative_enabled_p.
17755         (skip_alternative): New inline function.
17756         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
17757         (record_reg_classes): Skip alternative according to the
17758         "enabled" attribute.
17759
17760         * doc/md.texi: Add documention for the "enabled" attribute.
17761
17762 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
17763
17764         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
17765         * postreload.c (reload_cse_simplify_operands): Replace 'm'
17766         constraint with TARGET_MEM_CONSTRAINT.
17767         * recog.c (asm_operand_ok, preprocess_constraints,
17768         constrain_operands): Likewise.
17769         * regclass.c (record_reg_classes): Likewise.
17770         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
17771         * reload1.c (maybe_fix_stack_asms): Likewise.
17772         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
17773         * recog.h: Adjust comment.
17774         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
17775         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
17776         * doc/md.texi: Add a note to description of 'm' constraint.
17777         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
17778
17779 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
17780
17781         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
17782         that the bitfield is of integral type before testing its precision.
17783
17784 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
17785             Sa Liu  <saliu@de.ibm.com>
17786
17787         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
17788         __modti3, __udivti3, __umodti3 and __udivmodti4.
17789         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
17790         that implement TImode mul and div functions.
17791         * config/spu/multi3.c: New. Implement __multi3.
17792         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
17793         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
17794         functions on SPU.
17795
17796 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
17797
17798         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
17799         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
17800         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
17801         tls_sysv_suffix): New mode and mode attribute iterators.
17802         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
17803         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
17804         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
17805         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
17806         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
17807         iterators.
17808
17809 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
17810
17811         PR tree-optimization/36329
17812         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
17813         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
17814         * cgraphbuild.c (initialize_inline_failed): Use the latter
17815         macro in lieu of the former.
17816         * ipa-inline.c (cgraph_mark_inline): Likewise.
17817         (cgraph_decide_inlining_of_small_function): Likewise.
17818         (cgraph_decide_inlining): Likewise.
17819         (cgraph_decide_inlining_incrementally): Likewise.
17820
17821 2008-05-26  Tristan Gingold  <gingold@adacore.com>
17822             Anatoly Sokolov  <aesok@post.ru>
17823
17824         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
17825         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
17826         * config/avr/avr.c (expand_prologue): Tune "call_prologue"
17827         optimization for 'avr6' architecture.
17828
17829 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
17830
17831         PR target/34932
17832         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
17833
17834 2008-05-26  Richard Guenther  <rguenther@suse.de>
17835
17836         * tree-ssa-sccvn.c (expr_has_constants): Declare.
17837         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
17838
17839 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
17840
17841         PR middle-end/36253
17842         * caller-save.c (insert_restore): Verify alignment of spill space.
17843         (insert_save): Likewise.
17844         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
17845         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
17846         (STACK_SLOT_ALIGNMENT): Likewise.
17847         * function.c (LOCAL_ALIGNMENT): Removed.
17848         (get_stack_local_alignment): New.
17849         (assign_stack_local): Use it.  Set alignment on stack slot.
17850         (assign_stack_temp_for_type): Use get_stack_local_alignment.
17851         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
17852         (STACK_SLOT_ALIGNMENT): New.
17853         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
17854         stack slot in XFmode.
17855
17856         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
17857
17858 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
17859
17860         PR/36321
17861         * config/i386/i386.md (allocate_stack_worker_64): Make sure
17862         argument operand in rax isn't removed.
17863
17864 2008-05-26  Richard Guenther  <rguenther@suse.de>
17865
17866         PR middle-end/36300
17867         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
17868         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
17869
17870 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
17871
17872         PR bootstrap/36331
17873         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
17874
17875 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
17876
17877         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
17878         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
17879
17880 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
17881
17882         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
17883         build a trampoline if we don't want one.
17884         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
17885         return zero for nested functions if we don't want a trampoline.
17886
17887 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
17888
17889         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
17890
17891 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
17892
17893         PR fortran/18428
17894         * c.opt: Removed undocumented option '-lang-fortran'.
17895         * c-common.h: Removed global variable 'lang_fortran'.
17896         * c-opts.c (c_common_handle_option): Removed code to handle
17897         option '-lang-fortran'. Updated includes.
17898         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
17899         definition of '__GFORTRAN__'.
17900         (define__GNUC__): Reimplemented to use BASEVER and
17901         cpp_define_formatted.
17902         (builtin_define_with_value_n): Removed.
17903         * c-incpath.h: Renamed to ...
17904         * incpath.h: ... this.
17905         * c-incpath.c: Renamed to ...
17906         * incpath.c: ... this. Updated includes.
17907         * fix-header.c: Updated includes.
17908         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
17909         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
17910         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
17911
17912 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
17913
17914         * tree.h: Update the table of flags used on tree nodes.
17915         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
17916         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
17917         (FORCED_LABEL): Add access check.
17918         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
17919         (ASM_INPUT_P): Likewise.
17920         (ASM_VOLATILE_P): Likewise.
17921         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
17922         (OMP_SECTION_LAST): Access private_flag directly.
17923         (OMP_RETURN_NOWAIT): Likewise.
17924         (OMP_PARALLEL_COMBINED): Likewise.
17925         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
17926         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
17927         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
17928         deprecated_flag directly.
17929
17930 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
17931
17932         * final.c (frame_pointer_needed): Removed.
17933         * flags.h (frame_pointer_needed): Likewise.
17934
17935         * function.h (rtl_data): Add frame_pointer_needed.
17936         (frame_pointer_needed): New.
17937
17938 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
17939
17940         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
17941
17942 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
17943
17944         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
17945         SRC is a REG.
17946
17947 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
17948
17949         * c-common.c (strip_array_types): Move function to..
17950         * tree.c: ..here.
17951         (get_inner_array_type): Delete.
17952         * c-common.h (strip_array_types): Move declaration to..
17953         * tree.h: ..here.
17954         (get_inner_array_type): Delete.
17955         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
17956         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
17957         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
17958         * config/pa/pa.c (emit_move_sequence): Likewise.
17959
17960 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
17961
17962         * config/i386/i386.md (*sse_prologue_save_insn): Set length
17963         attribute to 34.
17964
17965 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
17966
17967         * function.c: Include target hook for nonlocal_goto frame value.
17968
17969 2008-05-24  Richard Guenther  <rguenther@suse.de>
17970
17971         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
17972         variable can be only accessed through a pointer or a union.
17973
17974 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17975
17976         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
17977         * doc/extend.texi: Likewise.
17978
17979 2008-05-23  DJ Delorie  <dj@redhat.com>
17980
17981         * config/m32c/jump.md (untyped_call): Add.
17982
17983         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
17984         for A24 to PSImode.
17985         (m32c_address_cost): Detail costs for indirect offsets.
17986
17987 2008-05-23  Rafael Espíndola  <espindola@google.com>
17988
17989         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
17990         if a node is a SUBREG.
17991         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
17992         is a SUBREG.
17993
17994 2008-05-23  Paul Brook  <paul@codesourcery.com>
17995             Carlos O'Donell  <carlos@codesourcery.com>
17996
17997         * doc/extend.texi: Clarify use of __attribute__((naked)).
17998         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
17999         * target.h (gcc_target): Add allocate_stack_slots_for_args.
18000         * function.c (use_register_for_decl): Use
18001         targetm.calls.allocate_stack_slots_for_args.
18002         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
18003         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
18004         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
18005
18006 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
18007
18008         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
18009
18010 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
18011
18012         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
18013         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
18014         is only rounded once.
18015
18016 2008-05-23  Richard Guenther  <rguenther@suse.de>
18017
18018         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
18019
18020 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
18021             Jakub Jelinek  <jakub@redhat.com>
18022
18023         PR target/36079
18024         * configure.ac: Handle --enable-cld.
18025         * configure: Regenerated.
18026         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
18027         * config/i386/i386.h (struct machine_function): Add needs_cld field.
18028         (ix86_current_function_needs_cld): New define.
18029         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
18030         (cld): New isns pattern.
18031         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
18032         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
18033         * config/i386/i386.opt (mcld): New option.
18034         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
18035         TARGET_CLD and ix86_current_function_needs_cld.
18036         (override_options): Use -mcld by default for 32-bit code if
18037         USE_IX86_CLD.
18038
18039         * doc/install.texi (Options specification): Document --enable-cld.
18040         * doc/invoke.texi (Machine Dependent Options)
18041         [i386 and x86-64 Options]: Add -mcld option.
18042         (Intel 386 and AMD x86-64 Options): Document -mcld option.
18043
18044 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
18045         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
18046         (return_in_memory_64): Likewise.
18047         (return_in_memory_ms_64): Likewise.
18048
18049 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18050
18051         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
18052         * builtins.c (fold_builtin_fpclassify): New.
18053         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
18054         * builtins.def (BUILT_IN_FPCLASSIFY): New.
18055         * c-common.c (handle_type_generic_attribute): Adjust to accept
18056         fixed arguments before an elipsis.
18057         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
18058         * doc/extend.texi: Document __builtin_fpclassify.
18059
18060 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
18061
18062         * omp-low.c (gate_expand_omp_ssa): Remove.
18063         (pass_expand_omp_ssa): Remove.
18064         (gate_expand_omp): Do not check for flag_openmp_ssa.
18065         * common.opt (-fopenmp-ssa): Remove.
18066         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
18067
18068 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
18069
18070         * config/sh/sh.opt (mfixed-range): New option.
18071         * config/sh/sh-protos.h (sh_fix_range): Declare.
18072         * config/sh/sh.c (sh_fix_range): New function.
18073         * config/sh/sh.h (sh_fixed_range_str): Declare.
18074         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
18075         is not empty.
18076         * doc/invoke.texi (SH Options): Document -mfixed-range.
18077
18078 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
18079
18080         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
18081         it before the redeclaration.
18082
18083 2008-05-22  Anatoly Sokolov <aesok@post.ru>
18084
18085         * config/avr/avr.c (get_sequence_length): Add new function.
18086         (expand_prologue, expand_epilogue): Remove duplicate code.
18087
18088 2008-05-22  Rafael Espíndola  <espindola@google.com>
18089
18090         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
18091         sharing.
18092
18093 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
18094
18095         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
18096         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
18097
18098         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
18099         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
18100         (vect_update_misalignment_for_peel): Likewise.
18101         (vector_alignment_reachable_p): Likewise.
18102         * tree-vect-transform.c (vectorizable_load): Likewise.
18103         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
18104         (get_vectype_for_scalar_type): Pass mode of scalar_type
18105         to UNITS_PER_SIMD_WORD.
18106
18107         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
18108         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
18109         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
18110         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
18111         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
18112
18113 2008-05-22  Ira Rosen  <irar@il.ibm.com>
18114
18115         PR tree-optimization/36293
18116         * tree-vect-transform.c (vect_transform_strided_load): Don't check
18117         if the first load must be skipped because of a gap.
18118
18119 2008-05-22  Richard Guenther  <rguenther@suse.de>
18120
18121         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
18122         more cases of offset disambiguation that is possible if
18123         strict-aliasing rules apply.
18124         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
18125         for basic offset and type-based disambiguation.
18126
18127 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
18128
18129         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
18130         ix86_expand_vector_set on V16QImode for SSE4.1.
18131
18132 2008-05-21  Tom Tromey  <tromey@redhat.com>
18133
18134         * c.opt (Wimport): Mark as undocumented.
18135         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
18136         -Wno-import.
18137         (Warning Options): Likewise.
18138         * doc/cppopts.texi: Don't mention -Wimport.
18139
18140 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
18141
18142         PR tree-optimization/36287
18143         PR tree-optimization/36286
18144         * lambda-code.c (build_access_matrix): Do not use the loop->num
18145         for computing the number of induction variables: use the loop depth
18146         instead.
18147
18148 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
18149
18150         PR/36280
18151         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
18152         option -f(no-)leading-underscore.
18153
18154 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
18155
18156         * config/i386/i386.c (ix86_expand_vector_init_general): Use
18157         GET_MODE_NUNITS (mode).
18158
18159 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
18160
18161         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
18162         (-mmulhw): Add 464 to description.
18163         (-mdlmzb): Likewise.
18164         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
18165         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
18166         464fp entries.
18167         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
18168         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
18169         * config/rs6000/rs6000.md: Update comments for 464.
18170
18171 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
18172
18173         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
18174
18175 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
18176
18177         * config/i386/sse.md (vec_extractv4sf): Removed.
18178         (vec_extractv2df): Likewise.
18179         (vec_extractv2di): Likewise.
18180         (vec_extractv4si): Likewise.
18181         (vec_extractv8hi): Likewise.
18182         (vec_extractv16qi): Likewise.
18183         (vec_extract<mode>): New.
18184
18185 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
18186
18187         * config/i386/sse.md (vec_setv4sf): Removed.
18188         (vec_setv2df): Likewise.
18189         (vec_setv2di): Likewise.
18190         (vec_setv4si): Likewise.
18191         (vec_setv8hi): Likewise.
18192         (vec_setv16qi): Likewise.
18193         (vec_set<mode>): New.
18194
18195 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
18196
18197         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
18198         goto for vec_concat and vec_interleave.
18199
18200 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
18201
18202         * config/i386/sse.md (vec_initv4sf): Removed.
18203         (vec_initv2df): Likewise.
18204         (vec_initv2di): Likewise.
18205         (vec_initv4si): Likewise.
18206         (vec_initv8hi): Likewise.
18207         (vec_initv16qi): Likewise.
18208         (vec_init<mode>): New.
18209
18210 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
18211
18212         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
18213
18214 2008-05-21  Tom Tromey  <tromey@redhat.com>
18215
18216         * ggc-zone.c (lookup_page_table_if_allocated): New function.
18217         (zone_find_object_offset): Likewise.
18218         (gt_ggc_m_S): Likewise.
18219         (highest_bit): Likewise.
18220         * ggc-page.c (gt_ggc_m_S): New function.
18221         * stringpool.c (string_stack): Remove.
18222         (init_stringpool): Update.
18223         (ggc_alloc_string): Use ggc_alloc.
18224         (maybe_delete_ident): New function.
18225         (ggc_purge_stringpool): Likewise.
18226         (gt_ggc_m_S): Remove.
18227         * ggc-common.c (ggc_protect_identifiers): New global.
18228         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
18229         ggc_protect_identifiers.
18230         * ggc.h (ggc_protect_identifiers): Declare.
18231         (gt_ggc_m_S): Update.
18232         (ggc_purge_stringpool): Declare.
18233         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
18234         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
18235         special case.
18236         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
18237
18238 2008-05-21  David S. Miller  <davem@davemloft.net>
18239
18240         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
18241         tmake_file.
18242
18243 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
18244
18245         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
18246         once finished.
18247
18248 2008-05-20  David Daney  <ddaney@avtrex.com>
18249
18250         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
18251         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
18252         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
18253         UNSPEC_UPDATE_GOT_VERSION): Renumber.
18254         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
18255         (atomic_hiqi_op): New define_code_iterator.
18256         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
18257         mips_expand_compare_and_swap_12.
18258         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
18259         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
18260         (sync_<optab><mode>, sync_old_<optab><mode>,
18261         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
18262         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
18263         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
18264         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
18265         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
18266         (test_and_set_12): New insn.
18267         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
18268         sync_new_<optab><mode>, sync_old_nand<mode>,
18269         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
18270         clobber to operand 0 for SI and DI mode insns.
18271         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
18272         mips_gen_fn_4): New typedefs.
18273         (mips_gen_fn_ptrs): Define new union type.
18274         (mips_expand_compare_and_swap_12): Remove declaration.
18275         (mips_expand_atomic_qihi): Declare function.
18276         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
18277         (mips_expand_atomic_qihi): ... this.  Use new generator function
18278         parameter.
18279         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
18280         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
18281         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
18282         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
18283         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
18284         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
18285         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
18286         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
18287         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
18288         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
18289         New macros.
18290
18291 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
18292
18293         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
18294         the missing break.
18295
18296 2008-05-20  Anatoly Sokolov <aesok@post.ru>
18297
18298         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
18299         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
18300         (avr_attribute_table): Add 'OS_main' function attribute.
18301         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
18302         functions with 'OS_main' attribute.
18303
18304 2008-05-20  Richard Guenther  <rguenther@suse.de>
18305
18306         PR tree-optimization/35204
18307         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
18308         helper, split out from ...
18309         (DFS): ... here.  Make the DFS walk non-recursive.
18310
18311 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
18312             Jan Sjodin  <jan.sjodin@amd.com>
18313
18314         PR tree-optimization/36181
18315         * tree-parloops.c (loop_has_vector_phi_nodes): New.
18316         (parallelize_loops): Don't parallelize when the loop has vector
18317         phi nodes.
18318
18319 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
18320             Sebastian Pop  <sebastian.pop@amd.com>
18321
18322         * tree-loop-linear.c (gather_interchange_stats): Look in the access
18323         matrix, and never look at the tree representation of the memory
18324         accesses.
18325         (linear_transform_loops): Computes parameters and access matrices.
18326         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
18327         when fails.
18328         (access_matrix_get_index_for_parameter): New.
18329         * tree-data-ref.h (struct access_matrix): New.
18330         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
18331         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
18332         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
18333         am_vector_index_for_loop): New.
18334         (struct data_reference): Add field access_matrix.
18335         (DR_ACCESS_MATRIX): New.
18336         (compute_data_dependences_for_loop): Update declaration.
18337         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
18338         * lambda.h (lambda_vector_vec_p): Declared.
18339         * lambda-code.c: Depend on pointer-set.h.
18340         (lambda_collect_parameters_from_af, lambda_collect_parameters,
18341         av_for_af_base, av_for_af, build_access_matrix,
18342         lambda_compute_access_matrices): New.
18343         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
18344
18345 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
18346
18347         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
18348         $SOURCEDIR/include.
18349
18350 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
18351             Sebastian Pop  <sebastian.pop@amd.com>
18352
18353         PR tree-optimization/36206
18354         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
18355         FOLD_CONVERSIONS.
18356         (instantiate_scev_1): Rename flags to fold_conversions.
18357         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
18358         outeside instantiation_loop.
18359         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
18360         (evolution_function_is_affine_or_constant_p): Removed.
18361         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
18362         instantiate_scev.
18363         (analyze_siv_subscript): Pass in the loop nest number.
18364         Call evolution_function_is_affine_in_loop instead of
18365         evolution_function_is_affine_p.
18366         (analyze_overlapping_iterations): Pass in the loop nest number.
18367
18368 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
18369             Sebastian Pop  <sebastian.pop@amd.com>
18370
18371         PR tree-optimization/36206
18372         * tree-chrec.h (chrec_fold_op): New.
18373         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
18374         and other trees.
18375
18376 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
18377
18378         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
18379         (DIRS_EQ): New.
18380         (remove_duplicates): Do not set inode on non-inode systems.
18381         Use DIRS_EQ.
18382
18383 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
18384
18385         * config.gcc (tm_file): Update comments about relative pathnames.
18386
18387 2008-05-20  Richard Guenther  <rguenther@suse.de>
18388
18389         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
18390         * tree-ssa-sccvn.c (process_scc): Likewise.
18391         * tree-ssa-sink.c (execute_sink_code): Likewise.
18392         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
18393         * tree-vrp.c (process_assert_insertions): Likewise.
18394         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
18395         (perform_tree_ssa_dce): Likewise.
18396         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
18397         (dump_dominator_optimization_stats): Likewise.
18398         * tree-vectorizer.c (vectorize_loops): Likewise.
18399
18400 2008-05-20  Richard Guenther  <rguenther@suse.de>
18401
18402         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
18403
18404 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
18405
18406         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
18407         (ix86_i386elf_return_in_memory): Likewise.
18408         (ix86_i386interix_return_in_memory): Likewise.
18409         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
18410         (SUBTARGET_RETURN_IN_MEMORY): New.
18411         * config/i386/i386elf.h: Likewise.
18412         * config/i386/ptx4-i.h: Likewise.
18413         * config/i386/sol2-10.h: Likewise.
18414         * config/i386/sysv4.h: Likewise.
18415         * config/i386/vx-common.h: Likewise.
18416         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
18417         * config/i386/i386.c (ix86_return_in_memory): Made static and
18418         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
18419         (ix86_i386elf_return_in_memory): Removed.
18420         (ix86_i386interix_return_in_memory): Removed.
18421         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
18422         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
18423
18424 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
18425
18426         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
18427
18428 2008-05-19  Xinliang David Li  <davidxl@google.com>
18429
18430         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
18431         * opts.c: Ditto.
18432         * common.opt: Ditto.
18433         * doc/invoke.texi: Ditto.
18434
18435 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
18436
18437         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
18438         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
18439
18440 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
18441
18442         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
18443         sizes of operand array from 8/4 to 4/2.
18444         (ix86_expand_vector_init_general): Change size of operand array
18445         from 32 to 16.  Remove op0, op1 and half_mode.
18446
18447 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
18448
18449         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
18450         (ix86_expand_vector_init_interleave): Likewise.
18451         (ix86_expand_vector_init_general): Use them.  Assert
18452         word_mode == SImode when n_words == 4.
18453
18454 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
18455
18456         * config/i386/i386.c (ix86_secondary_reload): New static function.
18457         (TARGET_SECONDARY_RELOAD): New define.
18458         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
18459         * config/i386/i386.md (reload_outqi): Remove.
18460
18461 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18462
18463         PR middle-end/35509
18464         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
18465         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
18466         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
18467         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
18468         (fold_builtin_1): Likewise.
18469         * builtins.def (BUILT_IN_ISINF_SIGN): New.
18470         c-common.c (check_builtin_function_arguments): Handle
18471         BUILT_IN_ISINF_SIGN.
18472         * doc/extend.texi: Document __builtin_isinf_sign.
18473         * fold-const.c (operand_equal_p): Handle COND_EXPR.
18474
18475 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
18476
18477         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
18478         EH cleanup at the end of the pass, search for those that have been
18479         turned into forwarder blocks and do the cleanup on their successor.
18480
18481 2008-05-18  Richard Guenther  <rguenther@suse.de>
18482
18483         * tree-cfg.c (verify_gimple_expr): Allow conversions from
18484         pointers to sizetype and vice versa.
18485
18486 2008-05-18 Xinliang David Li   <davidxl@google.com>
18487
18488         * gcc/tree-ssa-dce.c: Coding style fix.
18489         (check_pow): Documentation comment.
18490         (check_log): Documenation comment. Coding style fix.
18491         (is_unnecessary_except_errno_call): Ditto.
18492         (gen_conditions_for_pow): Ditto.
18493         (gen_conditions_for_log): Ditto.
18494         (gen_shrink_wrap_conditions): Ditto.
18495         (shrink_wrap_one_built_in_calls): Ditto.
18496         * gcc/doc/invoke.texi: Better documentation string.
18497         * ChangeLog: Fix wrong change log entries from
18498         May 17 checkin on function call DCE.
18499
18500 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
18501
18502         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
18503
18504 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
18505
18506         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
18507         * df-problems.c (simulation routines): Fixed block comment to
18508         properly say how to add forwards scanning functions.
18509
18510 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
18511
18512         * tree-inline.c (setup_one_parameter): Remove dead code.
18513
18514 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
18515
18516         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
18517         a BIT_AND_EXPR only for an INTEGER_TYPE.
18518
18519 2008-05-17 Xinliang David Li   <davidxl@google.com>
18520
18521         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
18522         (check_pow, check_log, is_unnecessary_except_errno_call): New
18523         functions to check for eliminating math functions that are pure
18524         except for setting errno.
18525         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
18526         general condition expressions for shrink-wrapping pow/log calls.
18527         (gen_shrink_wrap_conditions): Ditto.
18528         (shrink_wrap_one_built_in_call): Ditto.
18529         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
18530         (mark_operand_necessary): If debugging, output if OP is necessary.
18531         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
18532         unnecessary.
18533         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
18534         opt level >= 2.
18535         * gcc/common.opt: New user flag -ftree-builtin-dce.
18536         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
18537
18538 2008-05-16  David S. Miller  <davem@davemloft.net>
18539
18540         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
18541         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
18542
18543 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
18544
18545         PR target/36246
18546         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
18547
18548 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
18549
18550         * ifcvt.c (dead_or_predicable): Rename
18551         df_simulate_one_insn_backwards to df_simulate_one_insn.
18552         * recog.c (peephole2_optimize): Ditto.
18553         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
18554         Ditto.
18555         * df.h: Rename df_simulate_one_insn_backwards to
18556         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
18557         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
18558         scanning of defs and uses.
18559         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
18560         (df_simulate_one_insn_forwards): Removed.
18561
18562 2008-05-16  Doug Kwan  <dougkwan@google.com>
18563
18564         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
18565         QNaN & SNaN.
18566         (real_from_string): Handle NaNs and Inf as approriate.
18567
18568 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
18569
18570         * doc/gty.texi (Source Files Containing Type Information): Note
18571         that headers should appear first in the gtfiles list.
18572
18573 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
18574
18575         * tree.def (COND_EXEC): Properly documented this code.
18576
18577 2008-05-16  Diego Novillo  <dnovillo@google.com>
18578
18579         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
18580         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
18581         the new field.
18582
18583 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
18584
18585         * tree-ssa-dse (max_stmt_uid): Removed.
18586         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
18587         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
18588         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
18589         * function.h (cfun.last_stmt_uid): New field.
18590         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
18591         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
18592         New functions.
18593         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
18594         (create_stmt_ann): Initialize the ann->uid field.
18595         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
18596         with new calls.
18597         * tree-flow.h (renumber_gimple_stmt_uids): New function.
18598
18599 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
18600
18601         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
18602         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
18603         (init_empty_tree_cfg): Call it.
18604
18605 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
18606
18607         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
18608         Update all users.
18609
18610 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
18611
18612         * doc/invoke.text (-fdump-tree-*-verbose): New option.
18613         * tree-dump.c (dump_options): New verbose option.
18614         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
18615         Add verbose dump.
18616         * tree-pass.h (TDF_VERBOSE): New dump flag.
18617         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
18618         (tree-flow.h): Added include.
18619         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
18620
18621 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
18622
18623         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
18624
18625         From Jie Zhang  <jie.zhang@analog.com>
18626         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
18627         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
18628         mcpu=bf561-none and mcpu=bf561-0.2.
18629         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
18630         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
18631         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
18632         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
18633         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
18634         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
18635         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
18636         option.
18637         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
18638         (cputype_selected): Remove.
18639         (bfin_handle_option): Don't use cputype_selected.
18640         (override_options): When no mcpu option, enable all workarounds.
18641         Don't use bfin_workarounds.
18642         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
18643         processor type.
18644         (DEFAULT_CPU_TYPE): Don't define.
18645
18646 2008-05-16  Richard Guenther  <rguenther@suse.de>
18647
18648         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
18649         on deletion of the last stmt.
18650
18651 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
18652
18653         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
18654         V8HImode for SSE2 and V16QImode for SSE4.1.
18655
18656 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
18657
18658         * cgraph.h (compute_inline_parameters): Made public.
18659         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
18660         variable_generate_summary, function_write_summary,
18661         variable_write_summary, variable_read_summary.  Added generate_summary,
18662         write_summary, read_summary.
18663         * cgraphunit.c (cgraph_process_new_functions): Changed call from
18664         pass_ipa_inline.function_generate_summary, to
18665         compute_inline_parameters.
18666         * ipa-inline.c (compute_inline_parameters): Made public and added
18667         node parameter.
18668         (compute_inline_parameters_for_current): New function.
18669         (pass_inline_param): Now calls compute_inline_parameters_for_current.
18670         (inline_generate_summary): Removed parameter and made to loop over
18671         all cgraph nodes.
18672         (pass_ipa_inline): Updated for new IPA_PASS structure.
18673         * passes.c (execute_ipa_summary_passes): Now is called once per
18674         pass rather than once per node*pass.
18675
18676 2008-05-15  Anatoly Sokolov <aesok@post.ru>
18677
18678         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
18679         avr_have_mul_p, avr_asm_only_p): Remove variables.
18680         (avr_override_options): Remove initialization of removed variables.
18681         (avr_file_start):  Convert removed variables to fields of
18682         'struct base_arch_s *avr_current_arch'.
18683         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
18684         (AVR_HAVE_MUL): (Ditto.).
18685         (AVR_HAVE_MOVW): (Ditto.).
18686         (AVR_HAVE_LPMX): (Ditto.).
18687         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
18688         avr_asm_only_p): Remove declaration.
18689
18690 2008-05-15  Diego Novillo  <dnovillo@google.com>
18691
18692         * config/arm/arm.c (arm_return_in_memory): Fix return type.
18693         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
18694
18695 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
18696
18697         PR middle-end/36194
18698         * combine.c (check_conversion): Rename back to check_promoted_subreg.
18699         Don't call record_truncated_value from here.
18700         (record_truncated_value): Turn it into a for_each_rtx callback.
18701         (record_truncated_values): New function.
18702         (combine_instructions): Call note_uses with record_truncated_values.
18703         Change name of check_conversion to check_promoted_subreg.
18704
18705 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
18706
18707         * doc/sourcebuild.texi: Document support for torture tests.
18708
18709 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
18710
18711         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
18712         to alternative 4 of operand 2.
18713
18714 2008-05-15  Richard Guenther  <rguenther@suse.de>
18715
18716         * tree-pass.h (current_pass): Declare.
18717         (get_pass_for_id): Likewise.
18718         * passes.c (passes_by_id, passes_by_id_size): New globals.
18719         (set_pass_for_id): New function.
18720         (get_pass_for_id): Likewise.
18721         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
18722         (execute_function_todo): Flush per function statistics.
18723         * toplev.c (compile_file): Init statistics.
18724         (general_init): Do early statistics initialization.
18725         (finalize): Finish statistics.
18726         * statistics.h (statistics_early_init): Declare.
18727         (statistics_init): Likewise.
18728         (statistics_fini): Likewise.
18729         (statistics_fini_pass): Likewise.
18730         (statistics_counter_event): Likewise.
18731         (statistics_histogram_event): Likewise.
18732         * statistics.c: New file.
18733         * Makefile.in (OBJS-common): Add statistics.o.
18734         (statistics.o): Add dependencies.
18735         * doc/invoke.texi (-fdump-statistics): Document.
18736
18737         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
18738         (insert): Likewise.
18739         (execute_pre): Use statistics_counter_event.
18740         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
18741         (substitute_and_fold): Increment it.  Use statistics_counter_event.
18742
18743 2008-05-15  Diego Novillo  <dnovillo@google.com>
18744
18745         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
18746
18747         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
18748         * tree-ssa-alias.c (new_type_alias): Remove references to
18749         sub-variables from comment.
18750         * tree-ssa-operands.c (swap_tree_operands): Likewise.
18751
18752 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
18753
18754         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
18755         attribute to 1 only for insertps alternative.
18756
18757 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
18758
18759         * config/bfin/bfin.md (loadbytes): New pattern.
18760         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
18761         (bfin_init_builtins): Initialize it.
18762         (bdesc_1arg): Add it.
18763
18764 2008-05-15  Sa Liu  <saliu@de.ibm.com>
18765
18766         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
18767         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
18768         * testsuite/lib/target-supports.exp: Add
18769         check_effective_target_fortran_integer_16.
18770
18771 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
18772
18773         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
18774         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
18775         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
18776         (TARGET_RETURN_IN_MEMORY): Define.
18777
18778 2008-05-15  Richard Guenther  <rguenther@suse.de>
18779
18780         PR middle-end/36244
18781         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
18782         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
18783         represent unmodifiable vars.
18784
18785 2008-05-15  Richard Guenther  <rguenther@suse.de>
18786
18787         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
18788         INDIRECT_REF and TARGET_MEM_REF.
18789         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
18790         TARGET_MEM_REF.
18791
18792 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
18793             H.J. Lu  <hongjiu.lu@intel.com>
18794
18795         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
18796         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
18797         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
18798         insn alternatives.  Add missing alternatives.
18799         (*vec_concatv2di_rex64_sse4_1): Likewise.
18800         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
18801         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
18802         Require TARGET_SSE.
18803
18804 2008-05-15  Richard Guenther  <rguenther@suse.de>
18805
18806         PR tree-optimization/36009
18807         PR tree-optimization/36204
18808         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
18809         (determine_invariantness_stmt): Record the loop a store is
18810         always executed in.
18811         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
18812         dependency.
18813
18814 2008-05-15  Richard Guenther  <rguenther@suse.de>
18815
18816         PR tree-optimization/34330
18817         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
18818         through the pointer will alias the SMT.
18819
18820 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
18821
18822         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
18823
18824 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
18825
18826         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
18827
18828 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
18829             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
18830
18831         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
18832         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
18833         (vashl_optab): New optab for vector/vector shifts.
18834         (vashr_optab): Ditto.
18835         (vlshr_optab): Ditto.
18836         (vrotl_optab): Ditto.
18837         (vrotr_optab): Ditto.
18838         (optab_subtype): New enum for optab_for_tree_code call.
18839         (optab_for_tree_code): Add enum optab_subtype argument.
18840
18841         * optabs.c (optab_for_tree_code): Take an additional argument to
18842         distinguish between a vector shift by a scalar and vector shift by
18843         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
18844         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
18845         vector shift by a vector.
18846         (expand_widen_pattern_expr): Pass additional argument to
18847         optab_for_tree_code.
18848
18849         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
18850         vrotl_optab, vrotr_optab.
18851
18852         * expr.c (expand_expr_real_1): Update calls to
18853         optab_for_tree_code to distinguish between vector shifted by a
18854         scalar and vector shifted by a vector.
18855         * tree-vectorizer.c (supportable_widening_operation): Ditto.
18856         (supportable_narrowing_operation): Ditto.
18857         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
18858         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
18859         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
18860         (vect_create_epilog_for_reduction): Ditto.
18861         (vectorizable_reduction): Ditto.
18862         (vectorizable_operation): Ditto.
18863         (vect_strided_store_supported): Ditto.
18864         (vect_strided_load_supported): Ditto.
18865         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
18866         * expmed.c (expand_shift): Ditto.
18867
18868         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
18869         scalar type.
18870         (ashr@var{m}3): Ditto.
18871         (vashl@var{m}3): Document new vector/vector shift standard name.
18872         (vashr@var{m}3): Ditto.
18873         (vlshr@var{m}3): Ditto.
18874         (vrotl@var{m}3): Ditto.
18875         (vrotr@var{m}3): Ditto.
18876
18877         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
18878         (PPERM_INVERT): Ditto.
18879         (PPERM_REVERSE): Ditto.
18880         (PPERM_REV_INV): Ditto.
18881         (PPERM_ZERO): Ditto.
18882         (PPERM_ONES): Ditto.
18883         (PPERM_SIGN): Ditto.
18884         (PPERM_INV_SIGN): Ditto.
18885         (PPERM_SRC1): Ditto.
18886         (PPERM_SRC2): Ditto.
18887
18888         * config/i386/sse.md (mulv2di3): Add SSE5 support.
18889         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
18890         allows a memory operand to be the value being added, and split it
18891         to improve vectorization.
18892         (sse5_pmacsdqh_mem): Ditto.
18893         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
18894         (sse5_mulv2div2di3_high): Ditto.
18895         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
18896         (vec_pack_trunc_v4si): Ditto.
18897         (vec_pack_trunc_v2di): Ditto.
18898         (sse5_pcmov_<mode>): Remove code that tried to use use
18899         andps/andnps instead of pcmov.
18900         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
18901         pmacsdqh instructions.
18902         (vec_widen_smult_lo_v4si): Ditto.
18903
18904         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
18905         (PPERM_INVERT): Ditto.
18906         (PPERM_REVERSE): Ditto.
18907         (PPERM_REV_INV): Ditto.
18908         (PPERM_ZERO): Ditto.
18909         (PPERM_ONES): Ditto.
18910         (PPERM_SIGN): Ditto.
18911         (PPERM_INV_SIGN): Ditto.
18912         (PPERM_SRC1): Ditto.
18913         (PPERM_SRC2): Ditto.
18914         (ix86_expand_sse_movcc): Move the SSE5 test after the if
18915         true/false tests.
18916         (ix86_expand_int_vcond): If SSE5 generate all possible integer
18917         comparisons.
18918         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
18919         says ignore whether the last reference is a memory operand.
18920
18921 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
18922             Paolo Bonzini <bonzini at gnu dot org>
18923
18924         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
18925         shift patterns.
18926
18927         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
18928         (vlshr<mode>3): Rename from vlshr<mode>3.
18929         (vashr<mode>3): Rename from vashr<mode>3.
18930         (mulv4sf3): Change the names of vector shift patterns.
18931         (mulv4si3): Ditto.
18932         (negv4sf2): Ditt.
18933
18934         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
18935         shift insns.
18936
18937         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
18938         (SI_SHLHI): Ditto.
18939         (SI_SHL): Ditto.
18940         (SI_SHLI): Ditto.
18941         (SI_ROTH): Ditto.
18942         (SI_ROTHI): Ditto.
18943         (SI_ROT): Ditto.
18944         (SI_ROTI): Ditto.
18945         (SPU_RL_0): Ditto.
18946         (SPU_RL_1): Ditto.
18947         (SPU_RL_2): Ditto.
18948         (SPU_RL_3): Ditto.
18949         (SPU_RL_4): Ditto.
18950         (SPU_RL_5): Ditto.
18951         (SPU_RL_6): Ditto.
18952         (SPU_RL_7): Ditto.
18953         (SPU_SL_0): Ditto.
18954         (SPU_SL_1): Ditto.
18955         (SPU_SL_2): Ditto.
18956         (SPU_SL_3): Ditto.
18957         (SPU_SL_4): Ditto.
18958         (SPU_SL_5): Ditto.
18959         (SPU_SL_6): Ditto.
18960         (SPU_SL_7): Ditto.
18961
18962         * config/spu/spu.md (v): New iterator macro to add v for vector types.
18963         (floatunssidf2_internal): Change vector/vector shift names.
18964         (floatunsdidf2_internal): Ditto.
18965         (mulv8hi3): Ditto.
18966         (ashrdi3): Ditto.
18967         (ashrti3): Ditto.
18968         (cgt_df): Ditto.
18969         (cgt_v2df): Ditto.
18970         (dftsv): Ditto.
18971         (vashl<mode>3): Rename from ashl<mode>3.
18972         (vashr<mode>3): Rename from ashr<mode>3.
18973         (vlshr<mode>3): Rename from lshr<mode>3.
18974         (vrotl<mode>3): Rename from rotl<mode>3.
18975
18976 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
18977
18978         PR target/36224
18979         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
18980         multiply gives the wrong value when doing widening multiplies.
18981         (vec_widen_smult_lo_v4si): Ditto.
18982
18983 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
18984
18985         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
18986         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
18987         emit_library_call_value.
18988         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
18989         * tree.h (ECF_LIBCALL_BLOCK): Removed.
18990         * calls.c (initialize_argument_information, precompute_arguments,
18991         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
18992         (precompute_arguments): Removed flags parameter.
18993         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
18994
18995 2008-05-14  Richard Guenther  <rguenther@suse.de>
18996
18997         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
18998         Make sure to register the store if the use is a PHI_NODE.
18999
19000 2008-05-14  Olivier Hainque  <hainque@adacore.com>
19001
19002         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
19003         memory if the component is to be referenced in BLKmode according
19004         to get_inner_reference.
19005
19006 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
19007
19008         * calls.c (emit_library_call_value_1): Restore code clearing
19009         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
19010
19011 2008-05-14  Olivier Hainque  <hainque@adacore.com>
19012             Nicolas Roche  <roche@adacore.com>
19013
19014         * configure.ac: Add support for a "gcc_subdir" variable in
19015         config-lang.in, to denote a subdirectory where the language/GCC
19016         integration files are to be found.
19017         * configure: Regenerate.
19018
19019 2008-05-14  Ira Rosen  <irar@il.ibm.com>
19020
19021         PR tree-optimization/36098
19022         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
19023         value for the first load in the group in case of a gap.
19024         (vect_build_slp_tree): Check that there are no gaps in loads.
19025
19026 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
19027
19028         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
19029         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
19030         expand_copysign_bit, ): Change call to emit_no_conflict_block to
19031         emit_insn and remove unneeded code to construct extra args.
19032         (emit_no_conflict_block): Removed.
19033         * optabls.h: (emit_no_conflict_block): Removed.
19034         * cse.c (cse_extended_basic_block): Remove search for
19035         REG_NO_CONFLICT note.
19036         * global.c: Removed incorrect comment added in revision 117.
19037         * expr.c (convert_move): Change call to emit_no_conflict_block to
19038         emit_insn.
19039         * recog.c: Change comments so that they do not mention
19040         REG_NO_CONFLICT.
19041         * local_alloc.c (combine_regs): Removed last parameter.
19042         (no_conflict_p): Removed.
19043         (block_alloc): Removed note, no_conflict_combined_regno and set
19044         local vars. Removed all code to process REG_NO_CONFLICT blocks.
19045         (combine_regs): Removed already_dead and code to look for
19046         REG_NO_CONFLICT notes.
19047         * lower_subreg (remove_retval_note): Removed code to look for
19048         REG_NO_CONFLICT block.
19049         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
19050         (resolve_clobber): Remove code to process libcalls that have
19051         REG_NO_CONFLICT notes.
19052         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
19053         case.
19054         * combine.c (can_combine_p, distribute_notes):  Removed
19055         REG_NO_CONFLICT case.
19056         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
19057         to emit_insns.
19058         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
19059         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
19060         Ditto.
19061         * reg-notes.def (NO_CONFLICT): Removed.
19062
19063 2008-05-14  David S. Miller  <davem@davemloft.net>
19064
19065         * config/sparc/sparc.c (sparc_profile_hook): If
19066         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
19067         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
19068         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
19069
19070 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
19071
19072         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
19073
19074 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
19075
19076         PR target/36222
19077         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
19078         and op1 expansion before vector concat to have less live pseudos.
19079
19080 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
19081
19082         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
19083         ix86_expand_vector_set if supported.
19084
19085 2008-05-13  Diego Novillo  <dnovillo@google.com>
19086             Kenneth Zadeck  <zadeck@naturalbridge.com>
19087
19088         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
19089
19090         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
19091         phinodes_print_statistics, init_ssanames, fini_ssanames,
19092         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
19093         release_ssa_name, release_defs, replace_ssa_name_symbol,
19094         ssanames_print_statistics): Move ...
19095         * tree-flow.h: ... here.
19096         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
19097         Use FN instead of cfun.
19098         (make_ssa_name_fn): Rename from make_ssa_name.
19099         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
19100         * tree-flow-inline.h (make_ssa_name): Move from
19101         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
19102         * omp-low.c (expand_omp_parallel):
19103         * tree-flow-inline.h (redirect_edge_var_map_result):
19104         * tree-ssa.c (init_tree_ssa): Add argument FN.
19105         Use it instead of cfun.  Update all users.
19106
19107 2008-05-13  Tom Tromey  <tromey@redhat.com>
19108
19109         PR preprocessor/22168:
19110         * doc/cpp.texi (Top): Update menu.
19111         (Alternatives to Wrapper #ifndef): New node.
19112         (Other Directives): Document deprecation.
19113         (Obsolete Features): Remove menu.
19114         (Assertions): Merge node into Obsolete Features.
19115         (Obsolete once-only headers): Move earlier; rename to Alternatives
19116         to Wrapper #ifndef.
19117         * doc/cppopts.texi: Update.
19118         * c.opt (Wdeprecated): Enable for C and ObjC.
19119         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
19120         (C++ Dialect Options): Move -Wno-deprecated from here to...
19121         (Warning Options): ... here.
19122
19123 2008-05-13  Richard Guenther  <rguenther@suse.de>
19124
19125         PR middle-end/36227
19126         * fold-const.c (fold_sign_changed_comparison): Do not allow
19127         changes in pointer-ness.
19128
19129 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
19130
19131         PR target/24713
19132         * config/sh/sh.c (sh_expand_prologue): Don't clear
19133         RTX_FRAME_RELATED_P for push insns.
19134
19135 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
19136
19137         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
19138
19139 2008-05-12  Anatoly Sokolov <aesok@post.ru>
19140
19141         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
19142         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
19143         Use 'machine->is_leaf' instead of 'leaf_func_p'.
19144
19145 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
19146
19147         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
19148         (*vec_concatv4sf_sse): This.
19149         (*sse2_concatv2si): Renamed to ...
19150         (*vec_concatv2si_sse2): This.
19151         (*sse1_concatv2si): Renamed to ...
19152         (*vec_concatv2si_sse): This.
19153         (*vec_concatv2di_rex): Renamed to ...
19154         (*vec_concatv2di_rex64): This.
19155         (*vec_concatv2si_sse4_1): New.
19156         (*vec_concatv2di_rex64_sse4_1): Likewise.
19157
19158 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
19159
19160         PR rtl-optimization/36111
19161         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
19162         that was created for swappable operands.
19163
19164 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
19165
19166         PR ada/36001
19167         * Makefile.in: Substitute GNATMAKE and GNATBIND.
19168         * configure.ac: Add call to ACX_PROG_GNAT.
19169
19170 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
19171
19172         * optc-gen.awk: Fix comment typo.
19173
19174 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
19175
19176         * pretty-print.c (pp_integer_with_precision): Use
19177         HOST_LONG_LONG_FORMAT.
19178
19179 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
19180
19181         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
19182
19183 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
19184
19185         * config/i386/i386.c (bdesc_ptest): Removed.
19186         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
19187         (bdesc_args): Add __builtin_ia32_ptestz128,
19188         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
19189         (ix86_init_mmx_sse_builtins): Updated.
19190         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
19191         (ix86_expand_builtin): Updated.
19192
19193 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
19194
19195         * tree-cfg.c (valid_fixed_convert_types_p): New function.
19196         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
19197
19198 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
19199
19200         * value-prof.c (interesting_stringop_to_profile): Do not
19201         return early for BUILT_IN_MEMPCPY.
19202
19203 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
19204
19205         * calls.c (expand_call): Don't use callgraph to increase
19206         preferred_stack_boundary.
19207
19208         * cgraph.h (cgraph_rtl_info): Use unsigned on
19209         preferred_incoming_stack_boundary.
19210
19211         * final.c (rest_of_clean_state): Use unsigned on
19212         preferred_stack_boundary.
19213
19214 2008-05-09  Tom Tromey  <tromey@redhat.com>
19215
19216         PR preprocessor/22231:
19217         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
19218         proceeding.
19219
19220 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
19221
19222         PR tree-optimization/36129
19223         * tree-ssa-ccp.c: Include value-prof.h.
19224         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
19225         built-in function was folded to a constant.
19226         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
19227
19228 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
19229             Sebastian Pop  <sebastian.pop@amd.com>
19230
19231         * tree-scalar-evolution.c: Document instantiate_scev.
19232         (instantiate_parameters_1): Renamed instantiate_scev_1.
19233         Don't use the same loop for instantiation_loop and evolution_loop.
19234         (instantiate_scev): New.
19235         (instantiate_parameters): Moved...
19236         (resolve_mixers): Update call to instantiate_scev_1 to pass the
19237         same loop twice.  Maintains the semantics for this function.
19238         * tree-scalar-evolution.h (instantiate_scev): Declare.
19239         (instantiate_parameters): ...here.  Now static inline.
19240         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
19241         instead of resolve_mixers.
19242
19243 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
19244
19245         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
19246
19247 2008-05-09  Tomas Bily  <tbily@suse.cz>
19248
19249         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
19250         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
19251         * tree-ssa-structalias.c (get_constraint_for): Likewise.
19252         * c-common.c (c_common_truthvalue_conversion): Likewise.
19253         * tree-object-size.c (compute_object_offset): Likewise.
19254         * tree-inline.c (estimate_num_insns_1): Likewise.
19255         * varasm.c (const_hash_1, compare_constant, copy_constant)
19256         (compute_reloc_for_constant, output_addressed_constants)
19257         (initializer_constant_valid_p): Likewise.
19258         * c-omp.c (check_omp_for_incr_expr): Likewise.
19259         * gimplify.c (gimplify_expr): Likewise.
19260         * c-typeck.c (c_finish_return): Likewise.
19261         * tree-vectorizer.c (supportable_widening_operation)
19262         (supportable_narrowing_operation): Likewise.
19263         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
19264         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
19265         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
19266         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
19267         (descr_info_loc): Likewise.
19268         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
19269         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
19270         (fold_unary): Likewise.
19271         * builtins.c (get_pointer_alignment): Likewise.
19272         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
19273         (instantiate_parameters_1): Likewise.
19274         * tree.c (expr_align, stabilize_reference): Likewise.
19275         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
19276         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
19277         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
19278         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
19279         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
19280         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
19281         Likewise.
19282         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
19283         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
19284         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
19285         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
19286         (forward_propagate_comparison)
19287         (tree_ssa_forward_propagate_single_use_vars): Likewise.
19288         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
19289         * emit-rtl.c (component_ref_for_mem_expr)
19290         (set_mem_attributes_minus_bitpos): Likewise.
19291         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
19292         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
19293         Likewise.
19294         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
19295         (build_function_call, pointer_diff, build_compound_expr)
19296         (c_finish_return): Likewise.
19297         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
19298         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
19299         Likewise.
19300         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
19301         * expr.c (is_aligning_offset): Likewise.
19302         * tree-ssa-alias.c (is_escape_site): Likewise.
19303         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
19304         (check_all_va_list_escapes): Likewise.
19305         * tree-ssa-loop-ivopts.c (determine_base_object)
19306         (determine_common_wider_type): Likewise.
19307         * dojump.c (do_jump): Likewise.
19308         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
19309         * tree-gimple.c (is_gimple_cast): Likewise.
19310         * fold-const.c (decode_field_reference, )
19311         (fold_sign_changed_comparison, fold_unary, fold_comparison)
19312         (fold_binary): Likewise.
19313         * tree-ssa-alias-warnings.c (find_alias_site_helper)
19314         (already_warned_in_frontend_p): Likewise.
19315         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
19316         * tree.c (really_constant_p, get_unwidened): Likewise.
19317         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
19318         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
19319         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
19320         Likewise.
19321         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
19322         CONVERT_EXPR_P.
19323         (CONVERT_EXPR_P): Define.
19324         (CASE_CONVERT): Define.
19325
19326 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
19327
19328         PR middle-end/36117
19329         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
19330         (delete_unmarked_insns): When deleting a call, call
19331         delete_unreachable_blocks.
19332         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
19333         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
19334
19335 2008-05-08  Richard Guenther  <rguenther@suse.de>
19336
19337         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
19338         (-ftree-salias): Likewise.
19339         (salias-max-implicit-fields): Remove param documentation.
19340         (salias-max-array-elements): Likewise.
19341         * tree-pass.h (pass_create_structure_vars): Remove.
19342         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
19343         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
19344         * tree-ssa-alias.c (create_structure_vars): Remove.
19345         (gate_structure_vars): Likewise.
19346         (pass_create_structure_vars): Likewise.
19347         (gate_build_alias): Likewise.
19348         (pass_build_alias): Adjust to run always and dump the function.
19349         * common.opt (ftree-salias): Hide.
19350         * passes.c (init_optimization_passes): Remove
19351         pass_create_structure_vars, adjust comment.
19352         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
19353         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
19354         * opts.c (decode_options): Do not set flag_tree_salias.
19355         (common_handle_option): Add OPT_ftree_salias to the backward
19356         compatibility section.
19357
19358 2008-05-08  Richard Guenther  <rguenther@suse.de>
19359
19360         * tree-flow-inline.h (var_can_have_subvars): Move ...
19361         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
19362         * tree-flow.h (var_can_have_subvars): Remove.
19363         (push_fields_onto_fieldstack): Remove.
19364         (sort_fieldstack): Likewise.
19365         (struct fieldoff): Move ...
19366         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
19367         alias_set and base_for_components fields.
19368         (sort_fieldstack): Make static.
19369         (push_fields_onto_fieldstack): Likewise.  Remove code that
19370         handles anything but RECORD_TYPEs.  Remove alias_set and
19371         base_for_components handling.
19372         (create_variable_info_for): Adjust.
19373
19374 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
19375
19376         * common.opt (Wframe-larger-than=): Shorten the help message
19377         to one line.
19378         * doc/invoke.texi (Wframe-larger-than=): Add more description.
19379
19380 2008-05-08  Rafael Espíndola  <espindola@google.com>
19381
19382         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
19383         trap.
19384         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
19385         trap and that both operands are gimple values.
19386         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
19387         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
19388         is a fp operation.
19389
19390 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
19391
19392         * read-rtl.c (join_c_conditions): Return the first string if the
19393         two strings are equal.
19394
19395 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
19396
19397         * gensupport.h (pred_data): Add a "num_codes" field.
19398         (add_predicate_code): Declare.
19399         * gensupport.c (add_predicate_code): New function.
19400         (std_pred_table): Add an "allows_const_p" field.
19401         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
19402         Remove the (incomplete) list of such codes from the codes field.
19403         (init_predicate_table): Use add_predicate_code.  Add all
19404         RTX_CONST_OBJs if allows_const_p is true.
19405         * genrecog.c (process_define_predicate): Use add_predicate_code.
19406
19407 2008-05-08  David Daney  <ddaney@avtrex.com>
19408             Richard Sandiford  <rsandifo@nildram.co.uk>
19409
19410         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
19411         special case of constant zero operands.
19412         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
19413         old and new values.  Special case constant zero values.
19414         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
19415         fails.
19416         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
19417         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
19418
19419 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
19420
19421         PR target/36090
19422         * simplify-rtx.c (simplify_plus_minus): Create CONST of
19423         similar RTX_CONST_OBJ before CONST_INT.
19424
19425 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
19426
19427         * stmt.c (expand_stack_restore): Change sa mode if needed.
19428
19429 2008-05-08  Richard Guenther  <rguenther@suse.de>
19430
19431         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
19432         return type to bool.
19433         (ix86_sol10_return_in_memory): Likewise.
19434         (ix86_i386elf_return_in_memory): Likewise.
19435         (ix86_i386interix_return_in_memory): Likewise.
19436         * config/i386/i386.c (ix86_return_in_memory): Likewise.
19437         (ix86_sol10_return_in_memory): Likewise.
19438         (ix86_i386elf_return_in_memory): Likewise.
19439         (ix86_i386interix_return_in_memory): Likewise.
19440
19441 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
19442
19443         PR bootstrap/36180
19444         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
19445         fndecl argument.
19446         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
19447         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
19448         declared in front.
19449
19450 2008-05-08  Richard Guenther  <rguenther@suse.de>
19451
19452         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
19453         * tree-data-ref.h (struct dr_alias): Remove subvars field.
19454         (DR_SUBVARS): Remove.
19455         * tree-dfa.c (dump_subvars_for): Remove.
19456         (debug_subvars_for): Likewise.
19457         (dump_variable): Do not dump subvars.
19458         (remove_referenced_var): Do not remove subvars.
19459         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
19460         (lookup_subvars_for_var): Remove.
19461         (get_subvars_for_var): Likewise.
19462         (get_subvars_at): Likewise.
19463         (get_first_overlapping_subvar): Likewise.
19464         (overlap_subvar): Likewise.
19465         * tree-flow.h (subvar_t): Remove.
19466         (struct var_ann_d): Remove subvars field.
19467         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
19468         argument.  Remove special handling of SFTs.
19469         (compute_tag_properties): Likewise.
19470         (set_initial_properties): Likewise.
19471         (compute_call_clobbered): Likewise.
19472         (count_mem_refs): Likewise.
19473         (compute_memory_partitions): Likewise.
19474         (compute_flow_insensitive_aliasing): Likewise.
19475         (setup_pointers_and_addressables): Likewise.
19476         (new_type_alias): Likewise.
19477         (struct used_part): Remove.
19478         (used_portions): Likewise.
19479         (struct used_part_map): Likewise.
19480         (used_part_map_eq): Likewise.
19481         (used_part_map_hash): Likewise.
19482         (free_used_part_map): Likewise.
19483         (up_lookup): Likewise.
19484         (up_insert): Likewise.
19485         (get_or_create_used_part_for): Likewise.
19486         (create_sft): Likewise.
19487         (create_overlap_variables_for): Likewise.
19488         (find_used_portions): Likewise.
19489         (create_structure_vars): Likewise.
19490         * tree.def (STRUCT_FIELD_TAG): Remove.
19491         * tree.h (MTAG_P): Adjust.
19492         (struct tree_memory_tag): Remove base_for_components and
19493         unpartitionable flags.
19494         (struct tree_struct_field_tag): Remove.
19495         (SFT_PARENT_VAR): Likewise.
19496         (SFT_OFFSET): Likewise.
19497         (SFT_SIZE): Likewise.
19498         (SFT_NONADDRESSABLE_P): Likewise.
19499         (SFT_ALIAS_SET): Likewise.
19500         (SFT_UNPARTITIONABLE_P): Likewise.
19501         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
19502         (union tree_node): Remove sft field.
19503         * alias.c (get_alias_set): Remove special handling of SFTs.
19504         * print-tree.c (print_node): Remove handling of SFTs.
19505         * tree-dump.c (dequeue_and_dump): Likewise.
19506         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
19507         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
19508         * tree-predcom.c (set_alias_info): Do not set subvars.
19509         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
19510         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
19511         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
19512         (add_vars_for_offset): Remove.
19513         (add_virtual_operand): Remove special handling of SFTs.
19514         (add_call_clobber_ops): Likewise.
19515         (add_call_read_ops): Likewise.
19516         (get_asm_expr_operands): Likewise.
19517         (get_modify_stmt_operands): Likewise.
19518         (get_expr_operands): Likewise.
19519         (add_to_addressable_set): Likewise.
19520         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
19521         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
19522         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
19523         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
19524         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
19525         (tree_node_structure): Likewise.
19526         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
19527         handling of SFTs.
19528         (find_what_p_points_to): Likewise.
19529
19530 2008-05-08  Sa Liu  <saliu@de.ibm.com>
19531
19532         * config/spu/spu.md: Fixed subti3 pattern.
19533
19534 2008-05-08  Richard Guenther  <rguenther@suse.de>
19535
19536         PR middle-end/36154
19537         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
19538         sure to create a representative for trailing arrays for PTA.
19539
19540 2008-05-08  Richard Guenther  <rguenther@suse.de>
19541
19542         PR middle-end/36172
19543         * fold-const.c (operand_equal_p): Two objects which types
19544         differ in pointerness are not equal.
19545
19546 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
19547
19548         * calls.c (compute_argument_block_size): Add argument tree fndecl.
19549         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
19550         (emit_library_call_value_1): Add new variable fndecl initialized by
19551         NULL_TREE. It should be the decl type of orgfun, but this information
19552         seems not to be available here, so it uses the default calling abi.
19553         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
19554         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
19555         by TARGET_RETURN_IN_MEMORY.
19556         * config/i386/i386-interix.h: Likewise.
19557         * config/i386/i386.h: Likewise.
19558         * config/i386/i386elf.h: Likewise.
19559         * config/i386/ptx4-i.h: Likewise.
19560         * config/i386/sol2-10.h: Likewise.
19561         * config/i386/sysv4.h: Likewise.
19562         * config/i386/vx-common.h: Likewise.
19563         * config/cris/cris.h: Removed #if 0 clause.
19564         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
19565         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
19566         argument.
19567         (ix86_sol10_return_in_memory): Likewise.
19568         (ix86_i386elf_return_in_memory): New.
19569         (ix86_i386interix_return_in_memory): New.
19570         * config/mt/mt-protos.h (mt_return_in_memory): New.
19571         * config/mt/mt.c: Likewise.
19572         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
19573         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
19574         * config/bfin/bfin.h: Likewise.
19575         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
19576         argument.
19577         * config/bfin/bfin.c: Likewise.
19578         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
19579         * config/alpha/unicosmk.h: Likewise.
19580         * config/i386/cygming.h: Likewise.
19581         * config/iq2000/iq2000.h: Likewise.
19582         * config/mips/mips.h: Likewise.
19583         * config/mn10300/mn10300.h: Likewise.
19584         * config/rs6000/rs6000.h: Likewise.
19585         * config/score/score.h: Likewise.
19586         * config/spu/spu.h: Likewise.
19587         * config/v850/v850.h: Likewise.
19588         * defaults.h: Likewise.
19589         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
19590         * expr.c (emit_block_move): Adjust use of
19591         OUTGOING_REG_PARM_STACK_SPACE.
19592         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
19593         OUTGOING_REG_PARM_STACK_SPACE.
19594         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
19595
19596 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
19597
19598         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
19599         on OMP_RETURN for OMP_FOR.
19600
19601         PR debug/35896
19602         * dwarf2out.c (dw_expand_expr, common_check): Removed.
19603         (fortran_common): New function.
19604         (gen_variable_die): Call fortran_common instead of common_check,
19605         adjust for it returning tree instead of rtx.  Formatting.
19606
19607 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
19608
19609         PR rtl/7335
19610         PR rtl/33826
19611         * see.c (see_copy_insn): Copy new pure const attributes for new call.
19612         * c-decl.c (merge_decls): Ditto.
19613         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
19614         to RTL_CONST_OR_PURE_CALL_P.
19615         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
19616         Initialized DECL_LOOPING_CONST_PURE.
19617         (process_call_operands): Set tree_side_effects properly.
19618         * tree.h (TREE_READONLY_DECL_P): Removed.
19619         (DECL_IS_PURE): Renamed to DECL_PURE_P.
19620         (DECL_LOOPING_OR_CONST_P): New macro.
19621         (struct tree_function_decl): Added looping_const_or_pure_p.
19622         (ECF_*) Renumbered.
19623         (ECF_LOOPING_OR_CONST_P): New macro.
19624         * rtlanal.c (pure_const_p): Removed.
19625         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
19626         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
19627         to RTL_CONST_CALL_P.
19628         * ipa-pure-const.c (pure_const_state_e): Added looping field.
19629         (check_decl, check_tree, check_call, scan_function): Initialize
19630         looping.
19631         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
19632         (static_execute): Set looping true for recursive functions.
19633         Undo setting state to IPA_NEITHER for recursive functions.
19634         * cse.c (cse_insn):
19635         * ifcvt.c (noce_can_store_speculate_p): Changed
19636         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
19637         RTL_CONST_OR_PURE_CALL_P.
19638         * dse.c (scan_insn): Ditto.
19639         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
19640         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
19641         RTL_CONST_OR_PURE_CALL_P.
19642         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
19643         pure_call_p to RTL_CONST_CALL_P.
19644         * gimplify.c (gimplify_call_expr): Clear side effects for
19645         non-looping pure and constant calls.
19646         * calls.c (emit_call_1): Set rtl flags from ecf flags.
19647         (flags_from_decl_or_type): Set ecf flags from decl flags.
19648         (initialize_argument_information): Turn off
19649         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
19650         Change const to pure if callee_copies is true rather than just
19651         turning off const.
19652         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
19653         way of marking pure calls.
19654         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
19655         Remove hack that was supposed to fix pr7335 and remove old
19656         way of marking pure calls.
19657         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
19658         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
19659         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
19660         RTL_CONST_OR_PURE_CALL_P.
19661         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
19662         * loop-invariant.c (find_exits, find_invariant_bb): Changed
19663         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
19664         * sched-deps.c (schedule_analyze): Ditto.
19665         * rtl.h (struct rtx_def): Use call field, unchanging field, and
19666         return_val field of calls to represent pure and const function info.
19667         (CONST_OR_PURE_CALL_P): Deleted macro.
19668         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
19669         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
19670         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
19671         TREE_READONLY.
19672         * tree-optimize.c (execute_fixup_cfg): Added test for
19673         ECF_LOOPING_CONST_OR_PURE.
19674         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
19675         DECL_PURE_P.
19676         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
19677         effects for looping pure or const calls.
19678         (verify_gimple_expr): Added verification code.
19679         * config/alpha/alpha.c (alpha_legitimize_address,
19680         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
19681         RTL_CONST_CALL_P.
19682         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
19683         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
19684         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
19685         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
19686         RTL_CONST_OR_PURE_CALL_P.
19687         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
19688         and const calls to be deleted.
19689
19690 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
19691
19692         PR target/35714
19693         * config/i386/mmx.md (mmx_subv2sf3): New expander.
19694         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
19695         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
19696         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
19697         to handle nonimmediate operands.
19698         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
19699         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
19700         to handle nonimmediate operands.
19701         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
19702         (mmx_pmulhrwv4hi3): New expander.  Use
19703         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19704         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
19705         (sse2_umulv1siv1di3): New expander.  Use
19706         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19707         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
19708         (mmx_eq<mode>3): New expander.  Use
19709         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19710         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
19711         (mmx_uavgv8qi3): New expander.  Use
19712         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19713         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
19714         (mmx_uavgv4hi3): New expander.  Use
19715         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19716
19717         * config/i386/sse.md
19718         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
19719         to handle nonimmediate operands.
19720         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
19721         to handle nonimmediate operands.
19722         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
19723         to handle nonimmediate operands.
19724         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
19725         to handle nonimmediate operands.
19726         (sse2_unpckhpd_exp): New expander.  Use
19727         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19728         (sse2_unpcklpd_exp): New expander.  Use
19729         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19730         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
19731         to handle nonimmediate operands.
19732         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
19733         to handle nonimmediate operands.
19734         (*sse2_<plusminus_insn><mode>3): Rename from
19735         sse2_<plusminus_insn><mode>3 insn pattern.
19736         (sse2_<plusminus_insn><mode>3): New expander.  Use
19737         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19738         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
19739         (sse2_umulv2siv2di3): New expander.  Use
19740         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19741         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
19742         (sse4_1_mulv2siv2di3): New expander.  Use
19743         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19744         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
19745         (sse2_pmaddwd): New expander.  Use
19746         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19747         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
19748         (sse2_eq<mode>3): New expander.  Use
19749         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19750         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
19751         (sse4_1_eqv2di3): New expander.  Use
19752         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19753         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
19754         (sse2_uavgv16qi3): New expander.  Use
19755         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19756         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
19757         (sse2_uavgv16qi3): New expander.  Use
19758         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19759         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
19760         (sse2_uavgv8hi3): New expander.  Use
19761         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19762         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
19763         (ssse3_pmulhrswv8hi3): New expander.  Use
19764         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19765         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
19766         (ssse3_pmulhrswv4hi3): New expander.  Use
19767         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19768
19769         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
19770         (<sse>_vmmul<mode>3): Ditto.
19771         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
19772         (divv2df3): Ditto.
19773         (ssse3_pmaddubsw128): Use register_operand for operand 1.
19774         (ssse3_pmaddubsw): Ditto.
19775
19776         * config/i386/i386.c (struct_builtin_description)
19777         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
19778         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
19779         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
19780         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
19781         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
19782         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
19783         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
19784         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
19785         (ix86_fixup_binary_operands): Assert that src1
19786         and src2 must have the same mode when swapped.
19787         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
19788         and ix86_binary_operator_ok.  Do not force operands in registers
19789         when optimizing.
19790
19791 2008-05-07  Jan Hubicka  <jh@suse.cz>
19792
19793         * cgraph.c (dump_cgraph_node): Update.
19794         * cgraph.h (cgraph_local_info): Break out inline summary.
19795         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
19796         hook.
19797         * ipa-inline (inline_summary): New accestor function.
19798         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
19799         cgraph_decide_inlining, compute_inline_parameters): Update.
19800         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
19801
19802 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
19803
19804         Cleanup ColdFire scheduling support and add V4 pipeline model.
19805
19806         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
19807         (define_attr cpu): Add cfv4 value.
19808         (define_attr type, define_attr type1): Merge into a single 'type'
19809         attribute.  Update all uses.
19810         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
19811         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
19812         Update all uses.
19813         (define_attr opx_mem, define_attr opy_mem): Remove.
19814         (define_attr op_mem): Clean up, update comment.
19815         (define_attr size): Use specific values instead of general int.
19816         (define_attr guess, define_attr split): Remove.  Update all uses.
19817         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
19818         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
19819         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
19820         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
19821         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
19822         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
19823         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
19824         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
19825         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
19826         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
19827         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
19828         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
19829         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
19830         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
19831         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
19832         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
19833         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
19834         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
19835         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
19836         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
19837         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
19838         Update or set attributes.
19839         (stack_tie): New fake instruction.
19840
19841         * config/m68k/m68k.h (TUNE_CFV4): New macro.
19842         (m68k_sched_attr_size): Update declaration.
19843         (m68k_sched_attr_type2): Remove.
19844         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
19845         Declare new bypass predicates.
19846
19847         * config/m68k/m68k.c (m68k_sched_issue_rate,
19848         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
19849         implementations.
19850         (TARGET_SCHED_ISSUE_RATE,
19851         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
19852         (override_options): Handle scheduling for ColdFire V4 core.
19853         (m68k_expand_prologue): Emit stack_tie.
19854         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
19855         'OP_TYPE_FPN'.  Update all uses.
19856         (sched_guess_p): Remove.
19857         (sched_address_type): Handle symbolic addresses.
19858         (sched_get_operand): New static function.
19859         (sched_operand_type): Merge into sched_attr_op_type.
19860         (sched_attr_op_type): Handle FP registers, handle quick constants,
19861         update.
19862         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
19863         (m68k_sched_attr_size): Update.  Move logic to ...
19864         (sched_get_attr_size_int): New static function.
19865         (sched_get_opxy_mem_type): New static function.
19866         (m68k_sched_attr_op_mem): Update.
19867         (m68k_sched_attr_type2): Remove.
19868         (sched_cfv4_bypass_data): New static variable.
19869         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
19870         (m68k_sched_issue_rate): Implement scheduler hook.
19871         (struct _sched_ib: enabled_p): New field.
19872         (m68k_sched_variable_issue): Update.  Handle V4.
19873         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
19874         sched_dump_class_func_t, sched_dump_split_class,
19875         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
19876         sched_dump_dfa_class, m68k_sched_dump): Remove.
19877         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
19878         hook.
19879         (m68k_sched_init_global): Remove statisctics dumping, introduce
19880         sanity check that all instructions have pipeline reservations.  Handle
19881         ColdFire V4 core.
19882         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
19883         Handle ColdFire V4 core.
19884         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
19885         New static functions.
19886         (m68k_sched_address_bypass_p): New bypass predicate.
19887         (sched_get_indexed_address_scale): New static function.
19888         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
19889
19890         * cf.md: Update comments.
19891         (define_attr type2): Remove.  Use 'type' attribute instead.
19892         Update all uses.
19893         (cf_ib): Rename to cfv123_ib.  Update all uses.
19894         (cf_oep): Rename to cfv123_oep.  Update all uses.
19895         (cf_chr): Rename to cfv123_chr.  Update all uses.
19896         (cf_mem): Rename to cfv123_mem.  Update all uses.
19897         (cf_mac): Move to more appropriate place.
19898         (cfv123_guess): New automaton and cpu_unit.
19899         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
19900         Update uses of 'size' attribute.  Handle before reload scheduling.
19901         (cfv123_guess): New dummy reservation for unhandled instructions.
19902         (cfv4_*): Pipeline description of ColdFire V4 core.
19903         (ignore): New reservation to handle 'ignore' type.
19904
19905 2008-05-07  Ian Lance Taylor  <iant@google.com>
19906
19907         PR middle-end/36013
19908         * gimplify.c (find_single_pointer_decl_1): Don't look through
19909         indirections.
19910         (find_single_pointer_decl): Adjust comments.
19911
19912 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
19913
19914         PR middle-end/36137
19915         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
19916         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
19917
19918         PR middle-end/36106
19919         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
19920         integral type rather than floating point, then VIEW_CONVERT_EXPR
19921         to the floating point type.
19922
19923 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
19924
19925         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
19926         TFmode op0 to register.
19927
19928 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
19929
19930         * c-decl.c (grokdeclarator): Comment typo.
19931
19932 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
19933
19934         * tree-flow.h: Remove prototype for computed_goto_p.
19935         * tree-cfg.c (computed_goto_p): Make static.
19936
19937 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
19938
19939         PR target/35657
19940         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
19941         (contains_aligned_value_p): This.  Handle _Decimal128.
19942         (ix86_function_arg_boundary): Only align _Decimal128 to its
19943         natural boundary and handle it properly.
19944
19945 2008-05-06  Martin Jambor  <mjambor@suse.cz>
19946
19947         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
19948         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
19949         (ipcp_method_set_orig_node): Removed.
19950         (ipcp_cval_get_cvalue_type): Removed.
19951         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
19952         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
19953         (ipcp_cval_set_cvalue_type): Removed.
19954         (ipcp_cval_get_cvalue): Removed.
19955         (ipcp_cval_set_cvalue): Removed.
19956         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
19957         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
19958         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
19959         (ipcp_cval_meet): Renamed to ipa_lattice_meet
19960         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
19961         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
19962         (ipcp_get_ith_lattice): Changed parameters.
19963         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
19964         (ipcp_lattice_from_jfunc): Changed parameters.
19965         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
19966         (ipcp_method_cval_print): Added temporary variable info.
19967         (ipcp_redirect): Removed already unused local variable caller.
19968         (ipcp_redirect): New temporary variable orig_callee_info
19969         (ipcp_redirect): Removed newly unused local variable callee.
19970         (ipcp_redirect): Removed (a bit confusing) local variable type.
19971         (ipcp_insert_stage): Added local variable info.
19972         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
19973         renamed too
19974         (ipcp_formal_create): Removed.
19975         (ipcp_method_cval_set): Removed.
19976         (ipcp_propagate_stage): Renamed lattice variables.
19977         (ipcp_method_cval_set_cvalue_type): Removed.
19978         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
19979         (ipcp_print_all_lattices): Changed printed strings to refer to
19980         lattices rather than cvals.
19981         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
19982         (ipcp_propagate_const): Changed formal parameters.
19983         (build_const_val): Changed formal parameters.
19984         (ipcp_insert_stage): Removed useless variable cvalue
19985         (build_const_val): Changed formal parameters.
19986         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
19987         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
19988         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
19989         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
19990         (ipcp_print_func_profile_counts): Changed string from "method" to
19991         "function"
19992         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
19993         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
19994         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
19995         (ipcp_structures_print): Renamed to ipcp_print_all_structures
19996         (ipcp_profile_print): Renamed to ipcp_print_profile_data
19997         (ipcp_lat_is_const): Changed parameters and made inline.
19998         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
19999         (ipcp_redirect): Renamed to ipcp_need_redirect_p
20000         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
20001         the predicate condition directly
20002         (ipcp_propagate_stage): Added local variable args. Removed local
20003         variable callee.  (Both are mere code simplifications.)
20004         (ipcp_method_dont_insert_const): Renamed to
20005         ipcp_node_not_modifiable_p.
20006         (ipcp_node_not_modifiable_p): Made inline.
20007         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
20008         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
20009         (ipcp_print_all_lattices): Removed variable cvalue
20010         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
20011         Updated comments.
20012
20013 2008-05-06  Olivier Hainque  <hainque@adacore.com>
20014
20015         * tree-sra.c (try_instantiate_multiple_fields): Early return
20016         if field has POINTER_TYPE.
20017
20018 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
20019
20020         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
20021         by using 'q' specifier for instruction.
20022         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
20023
20024 2008-05-06  Anatoly Sokolov <aesok@post.ru>
20025
20026         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
20027         Change mode of zero_extract from QImode to HImode.
20028         (sign bit tests peepholes): (Ditto.).
20029
20030 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
20031
20032         * config/i386/mmx.md: Remove double backslashes from asm templates.
20033         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
20034         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
20035         to handle nonimmediate operands.
20036         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
20037         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
20038         to handle nonimmediate operands.
20039         (*mmx_<code>v2sf3_finite): New insn pattern.
20040         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
20041         (mmx_<code>v2sf3): New expander.  Use
20042         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20043         (mmx_<plusminus_insn><mode>3): New expander.  Use
20044         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20045         (*mmx_<plusminus_insn><mode>3): New insn pattern.
20046         (mmx_add<mode>3): Removed.
20047         (mmx_ssadd<mode>3): Ditto.
20048         (mmx_usadd<mode>3): Ditto.
20049         (mmx_sub<mode>3): Ditto.
20050         (mmx_sssub<mode>3): Ditto.
20051         (mmx_ussub<mode>3): Ditto.
20052         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
20053         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
20054         to handle nonimmediate operands.
20055         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
20056         insn pattern.
20057         (mmx_smulv4hi3_highpart): New expander.  Use
20058         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20059         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
20060         insn pattern.
20061         (mmx_umulv4hi3_highpart): New expander.  Use
20062         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20063         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
20064         (mmx_<code>v4hi3): New expander.  Use
20065         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20066         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
20067         (mmx_<code>v8qi3): New expander.  Use
20068         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20069         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
20070         (mmx_<code><mode>3): New expander.  Use
20071         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
20072
20073 2008-05-05  Jan Hubicka  <jh@suse.cz>
20074
20075         PR tree-optimization/36118
20076         * passes.c (pass_init_dump_file): Fix dump header.
20077
20078 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
20079
20080         PR middle-end/36141
20081         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
20082         VCE for function decls.
20083
20084 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
20085
20086         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
20087
20088 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
20089
20090         * config/i386/i386.md (sat_plusminus): New.
20091         (plusminus_insn): Likewise.
20092         (plusminus_mnemonic): Likewise.
20093         (addsub): Removed.
20094         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
20095         (*<addsub><mode>3_cc_overflow): Renamed to ...
20096         (*<plusminus_insn><mode>3_cc_overflow): This.
20097         (*<addsub>si3_zext_cc_overflow): Renamed to ...
20098         (*<plusminus_insn>si3_zext_cc_overflow): This.
20099
20100         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
20101         (<plusminus_insn><mode>3): This.
20102         (*<addsub><mode>3): Renamed to ...
20103         (*<plusminus_insn><mode>3): This.
20104         (<sse>_vm<addsub><mode>3): Renamed to ...
20105         (<sse>_vm<plusminus_insn><mode>3): This.
20106         (sse3_h<addsub>v4sf3): Renamed to ...
20107         (sse3_h<plusminus_insn>v4sf3): This.
20108         (sse3_h<addsub>v2df3): Renamed to ...
20109         (sse3_h<plusminus_insn>v2df3): This.
20110         (<plusminus_insn><mode>3): New.
20111         (*<plusminus_insn><mode>3): Likewise.
20112         (sse2_<plusminus_insn><mode>3): Likewise.
20113         (add<mode>): Removed.
20114         (*add<mode>3): Likewise.
20115         (sse2_ssadd<mode>3): Likewise.
20116         (sse2_usadd<mode>3): Likewise.
20117         (sub<mode>3): Likewise.
20118         (*sub<mode>3): Likewise.
20119         (sse2_sssub<mode>3): Likewise.
20120         (sse2_ussub<mode>3): Likewise.
20121
20122 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
20123
20124         * gthr-single.h: Add in required interface elements as per gthr.h.
20125         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
20126         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
20127         Generalize UNUSED macro.
20128         (__gthread_once): Add.
20129         (__gthread_key_create): Add.
20130         (__gthread_key_delete): Add.
20131         (__gthread_getspecific): Add.
20132         (__gthread_setspecific): Add.
20133
20134 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
20135
20136         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
20137         the same size types for the indirect reference on the rhs, then
20138         create a VCE.
20139
20140 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
20141
20142         * config/i386/i386.md
20143         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
20144         one insn template instead of template series.
20145         (*xordi_1_rex64): Ditto.
20146         (*xordi_2_rex64): Ditto.
20147
20148 2008-05-05  Ira Rosen  <irar@il.ibm.com>
20149
20150         PR tree-optimization/36119
20151         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
20152         in case of SLP.
20153
20154 2008-06-04  Jan Hubicka  <jh@suse.cz>
20155
20156         tree-optimization/36100
20157         * tree-pass.h (pass_O0_always_inline): Declare.
20158         * ipa-inline.c (inline_transform): Remove dead code.
20159         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
20160         pass_O0_always_inline): New.
20161         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
20162
20163 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
20164
20165         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
20166         mnemonic in this_param move for TARGET_64BIT.
20167
20168 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
20169
20170         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
20171         (*strmovsi_rex_1): Ditto.
20172         (*strsetsi_1): Ditto.
20173         (*strsetsi_rex_1): Ditto.
20174
20175         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
20176         adddicc expanders using SWI mode iterator.
20177
20178 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
20179
20180         PR target/36121
20181         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
20182         argument handling.
20183
20184 2008-05-04  David S. Miller  <davem@davemloft.net>
20185
20186         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
20187         (sparc*-*-linux*): Use linux.h in tm_file.
20188         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
20189         compiler defaulting to 32-bit.
20190         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
20191         no longer needed.
20192         * config/sparc/linux.h: Remove definitions now obtained
20193         properly from linux.h
20194         * config/sparc/linux64.h: Likewise.
20195         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
20196         don't want this setting for 32-bit builds in a biarch compiler.
20197         * doc/install.texi: Add sparc-linux to list of targets
20198         supporting --enable-targets=all.
20199
20200 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
20201
20202         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
20203
20204 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
20205
20206         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
20207         after V4SI_FTYPE_V8HI.
20208         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
20209         case V4SI_FTYPE_V2DF.
20210
20211 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
20212
20213         * doc/invoke.texi (max-flow-memory-locations): Removed.
20214         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
20215
20216 2008-05-03  Richard Guenther  <rguenther@suse.de>
20217
20218         PR middle-end/34973
20219         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
20220
20221 2008-05-02  David S. Miller  <davem@davemloft.net>
20222
20223         * config.gcc (need_64bit_hwint): Document libcpp dependency.
20224
20225 2008-05-02  Simon Baldwin <simonb@google.com>
20226
20227         PR bootstrap/36108
20228         * c-common.h (warn_array_subscript_range): Removed.
20229         * c-common.c (warn_array_subscript_range): Ditto.
20230         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
20231         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
20232
20233 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
20234
20235         * config/i386/i386.c (ix86_special_builtin_type): New.
20236         (bdesc_special_args): Likewise.
20237         (ix86_expand_special_args_builtin): Likewise.
20238         (ix86_init_mmx_sse_builtins): Updated.
20239         (ix86_expand_builtin): Updated.
20240         (ix86_expand_store_builtin): Removed.
20241         (ix86_expand_unop_builtin): Likewise.
20242
20243         * config/i386/mm3dnow.h (__v2sf): Moved to ...
20244         * config/i386/mmintrin.h (__v2sf): Here.
20245
20246         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
20247         const __v2sf.
20248         (_mm_loadl_pi): Likewise.
20249         (_mm_storeh_pi): Replace __v2si with __v2sf.
20250         (_mm_storel_pi): Likewise.
20251
20252         * doc/extend.texi: Correct __builtin_ia32_loadhps,
20253         __builtin_ia32_loadlps, __builtin_ia32_storehps,
20254         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
20255         __builtin_ia32_loadlpd.
20256
20257 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
20258
20259         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
20260         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
20261         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
20262         (ix86_init_mmx_sse_builtins): Updated.
20263         (ix86_expand_args_builtin): Likewise.
20264         (ix86_expand_builtin): Likewise.
20265         (ix86_expand_unop1_builtin): Renamed to ...
20266         (ix86_expand_unop_vec_merge_builtin): This.
20267
20268 2008-05-01  Jan Hubicka  <jh@suse.cz>
20269
20270         PR bootstrap/36100
20271         * ipa-inline.c (inline_generate_summary): Make static.
20272         (inline_transform): Do not call inlining at -O0; make static.
20273         * passes.c (execute_todo): Add sanity check.
20274         (execute_one_ipa_transform_pass): Execute proper flags.
20275
20276 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
20277
20278         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
20279         (DECL_NONADDRESSABLE_P): Likewise.
20280         * alias.c (record_component_aliases): Fix comment.
20281
20282 2008-05-01  Simon Baldwin <simonb@google.com>
20283
20284         * c-common.h (warn_array_subscript_range): New function.
20285         * c-common.c (warn_array_subscript_range): Ditto.
20286         * tree-vrp.c (check_array_ref): Corrected code to agree with
20287         comment, ignoring only arrays of size 0 or size 1.
20288         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
20289
20290 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
20291
20292         * config/i386/i386.c (ix86_builtin_type): Replace
20293         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
20294         (bdesc_args): Updated.
20295         (ix86_init_mmx_sse_builtins): Likewise.
20296         (ix86_expand_args_builtin): Likewise.
20297
20298         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
20299         with __v1di.
20300
20301         * doc/extend.texi: Correct __builtin_ia32_palignr.
20302
20303 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
20304
20305         PR target/36095
20306         * config/i386/i386.c (bdesc_crc32): Removed.
20307         (ix86_expand_crc32): Likewise.
20308         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
20309         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
20310         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
20311         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
20312         UINT_FTYPE_UINT_UCHAR.
20313         (bdesc_args): Updated. Add crc32 builtins.
20314         (ix86_init_mmx_sse_builtins): Updated.
20315         (ix86_expand_args_builtin): Updated to support subreg.
20316
20317         * doc/extend.texi: Correct __builtin_ia32_crc32di.
20318
20319 2008-05-01  Jan Hubicka  <jh@suse.cz>
20320
20321         * tree-pass.h (opt_pass): Add IPA_PASS.
20322         (varpool_node, cgraph_node): Forward declare.
20323         (ipa_opt_pass): Define.
20324         (pass_ipa_inline): Turn into ipa_opt_pass.
20325         (pass_apply_inline): Remove.
20326         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
20327         (apply_inline): Turn into ....
20328         (inline_transform): ... this one.
20329         (inline_generate_summary): New function.
20330         (pass_apply_inline): Remove.
20331         * function.h (ipa_opt_pass): Forward declare structure; typedef;
20332         vector.
20333         (struct function): Add ipa_transforms_to_apply.
20334         * passes.c (register_one_dump_file): Work on IPA_PASS.
20335         (init_optimization_passes): Remove pass_inline_parameters and
20336         pass_apply_inline.
20337         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
20338         (execute_one_pass) ... here; apply transforms when possible.
20339         (add_ipa_transform_pass, execute_ipa_summary_asses,
20340         execute_one_ipa_transform_pass): New.
20341         (execute_ipa_pass_list): Update for IPA_PASS type.
20342
20343 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
20344
20345         * config/i386/i386.c (ix86_builtin_type): Add
20346         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
20347         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
20348         (bdesc_args): Add SSE4a builtins.
20349         (ix86_init_mmx_sse_builtins): Updated.
20350         (ix86_expand_args_builtin): Likewise.
20351         (ix86_expand_builtin): Likewise.
20352
20353 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
20354
20355         * config/i386/i386.c (ix86_builtin_type): Add
20356         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
20357         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
20358         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
20359         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
20360         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
20361         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
20362         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
20363         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
20364         and DI_FTYPE_DI_DI_INT.
20365         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
20366         (ix86_init_mmx_sse_builtins): Updated.
20367         (ix86_expand_args_builtin): Likewise.
20368         (ix86_expand_builtin): Likewise.
20369         (ix86_expand_binop_imm_builtin): Removed.
20370
20371         * doc/extend.texi: Correct __builtin_ia32_palignr128.
20372
20373 2008-04-30  Richard Guenther  <rguenther@suse.de>
20374
20375         PR tree-optimization/32921
20376         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
20377
20378 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
20379
20380         * config/arm/arm.c (arm_unwind_emit): Use
20381         crtl->all_throwers_are_sibcalls instead of
20382         cfun->all_throwers_are_sibcalls.
20383         (arm_output_fn_unwind): Likewise.
20384         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
20385         instead of cfun->uses_pic_offset_table.
20386         (frv_expand_prologue): Likewise.
20387         (frv_frame_pointer_required): Likewise.
20388         (frv_expand_fdpic_call): Likewise.
20389         (frv_emit_movsi): Likewise.
20390         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
20391         cfun->returns_pcc_struct instead of
20392         current_function_returns_pcc_struct.
20393         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
20394         instead of cfun->calls_eh_return.
20395         (m32c_pushm_popm): Likewise.
20396         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
20397         "extern" declaration.
20398
20399 2008-04-30  Richard Guenther  <rguenther@suse.de>
20400
20401         PR tree-optimization/21636
20402         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
20403         constant address.
20404         (evaluate_stmt): Print the likely value.
20405         (ccp_visit_stmt): Avoid excessive vertical spacing.
20406
20407 2008-04-30  Rafael Espíndola  <espindola@google.com>
20408
20409         * builtins.c (fold_call_expr): Return realret.
20410         * tree-ssa-threadedge.c
20411         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
20412         __builtin_object_size.
20413
20414 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
20415
20416         * gcc.c (wrapper_string): New variable.
20417         (insert_wrapper): New function.
20418         (execute): New option -wrapper.
20419         * doc/invoke.texi (Overall Options): New driver option -wrapper.
20420
20421 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
20422
20423         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
20424         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
20425         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
20426         from...
20427         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
20428         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
20429         config/rs6000/e500crtres64gprctr.asm,
20430         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
20431         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
20432         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
20433         config/rs6000/e500crtsav64gprctr.asm,
20434         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
20435         config/rs6000/e500crtsavg64gprctr.asm: New files.
20436         * config/rs6000/t-ppccomm: Add build rules for new files.
20437         (LIB2FUNCS_STATIC_EXTRA): Add new files.
20438         * config/rs6000/t-netbsd: Add build rules for new files.
20439         (LIB2FUNCS_STATIC_EXTRA): New variable.
20440         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
20441         (CRTSAVRES_DEFAULT_SPEC): Likewise.
20442         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
20443
20444 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
20445
20446         * config/i386/i386.c (ix86_builtin_type): Add
20447         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
20448         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
20449         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
20450         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
20451         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
20452         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
20453         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
20454         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
20455         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
20456         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
20457         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
20458         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
20459         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
20460         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
20461         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
20462         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
20463         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
20464         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
20465         V1DI_FTYPE_V2SI_V2SI.
20466         (bdesc_2arg): Moved to ...
20467         (bdesc_args): Here.
20468         (ix86_init_mmx_sse_builtins): Updated.
20469         (ix86_expand_args_builtin): Updated.  Take a pointer
20470         to const struct builtin_description.  Handle comparison
20471         builtin functions.
20472         (ix86_expand_sse_compare): Take a new argument for swapping operands.
20473         (ix86_expand_builtin): Updated.
20474
20475         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
20476         (ssse3_pmaddubsw128): This.
20477         (ssse3_pmaddubswv4hi3): Renamed to ...
20478         (ssse3_pmaddubsw): This.
20479
20480         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
20481         (__builtin_ia32_packssdw128): Likewise.
20482         (__builtin_ia32_packuswb128): Likewise.
20483         (__builtin_ia32_pmaddubsw): Likewise.
20484         (__builtin_ia32_pmaddubsw128): Likewise.
20485
20486 2008-04-30  Richard Guenther  <rguenther@suse.de>
20487
20488         PR tree-optimization/14847
20489         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
20490         (recognize_bits_test): Use it.
20491         (recognize_single_bit_test): Likewise.
20492
20493 2008-04-30  Martin Jambor  <mjambor@suse.cz>
20494
20495         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
20496         instead of setting number of formal parameters to zero.
20497         (ipcp_init_stage): Do not set the number of actual parameters to zero
20498         either.
20499         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
20500         which are called with variable number of arguments.
20501         (ipcp_insert_stage): Explicitely skipping all nodes which are
20502         called with variable number of arguments.
20503         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
20504         number of parameters.
20505
20506         * ipa-prop.h (struct ipa_node_params): Added flag
20507         called_with_var_arguments
20508         (ipa_set_param_count): Added.  Changed sole setter to use it.
20509         (ipa_get_param_count): Added.  All readers of param_count
20510         converted to use it instead.
20511         (ipa_set_called_with_variable_arg): Added.
20512         (ipa_is_called_with_var_arguments): Added.
20513         (ipa_get_ith_param): Added.  All readers of param_decls converted
20514         to use it instead.
20515         (ipa_set_cs_argument_count): Added, sole writer to argument_count
20516         changed to use it.
20517         (ipa_get_cs_argument_count): Added, all readers of argument_count
20518         changed to cal it.
20519         (ipa_get_ith_jump_func): Added. Accessors of jump values changed
20520         to use it.
20521
20522         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
20523         (struct ipcp_lattice): Renamed cval_type to type
20524         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
20525
20526         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
20527         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
20528         (ipcp_insert_stage): Changed the type of variable cvalue to tree
20529         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
20530         (build_const_val): Changed the type of parameter cvalue to tree
20531         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
20532         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
20533
20534         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
20535         constant
20536
20537         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
20538         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
20539         (ipa_add_method): Renamed to ipa_push_func_to_list
20540         (ipa_remove_method): Renamed to ipa_pop_func_from_list
20541         (ipa_callsite_param_count): Removed.
20542         (ipa_callsite_param_count_set): Removed.
20543         (ipa_callsite_param): Removed.
20544         (ipa_callsite_callee): Removed.
20545         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
20546         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
20547         (ipa_method_formal_count): Removed.
20548         (ipa_method_formal_count_set): Removed.
20549         (ipa_method_get_tree): Removed.
20550         (ipa_method_tree_map_create): Removed.
20551         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
20552         (ipa_create_param_decls_array): Creates the array itself
20553         (ipa_create_param_decls_array): Temporary variable info instead of
20554         a few dereferences.
20555         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
20556         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
20557         (get_type): Removed.
20558         (ipa_jf_get_info_type): Removed.
20559         (ipa_node_create): Renamed to ipa_create_node_params
20560         (ipa_free): Renamed to ipa_free_all_node_params
20561         (ipa_nodes_create): Renamed to ipa_create_all_node_params
20562         (ipa_edges_create): Renamed to ipa_create_all_edge_args
20563         (ipa_edges_free): Renamed to ipa_free_all_edge_args
20564         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
20565         (ipa_free_all_node_params): Deallocation to jump_functions moved to
20566         ipa_free_all_edge_args
20567         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
20568         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
20569         (ipa_create_methodlist_node): Removed.
20570         (ipa_methodlist_method): Removed.
20571         (ipa_methodlist_method_set): Removed.
20572         (ipa_methodlist_next_method): Removed.
20573         (ipa_methodlist_next_method_set): Removed.
20574         (ipa_method_is_modified): Removed.
20575         (ipa_method_modify_create): Removed.
20576         (ipa_method_modify_init): Temporary variable info instead of a few
20577         dereferences.
20578         (ipa_detect_param_modifications): Temporary variable info instead of
20579         a few dereferences.
20580         (ipa_compute_jump_functions): Temporary variable info instead of
20581         a few dereferences.
20582         (ipa_method_modify_set): Removed.
20583         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
20584         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
20585         than craph_node as the first parameter.
20586         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
20587         (ipa_method_modify_init): Removed.
20588         (ipa_compute_jump_functions): Added a temp variable instead of
20589         repeatadly dereferencing the cgraph_edge.aux pointer
20590         (ipa_callsite_param_set_type): Removed.
20591         (ipa_compute_jump_functions): i renamed to index and moved to
20592         an inner block
20593         (ipa_callsite_param_set_info_type_formal): Removed.
20594         (ipa_callsite_param_set_info_type): Removed.
20595         (ipa_callsite_param_map_create): Removed.
20596         (ipa_callsite_tree): Removed.
20597         (ipa_callsite_caller): Removed.
20598         (ipa_pop_func_from_list): return_method removed to return_func
20599
20600         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
20601         prefixed all values with IPA_. Changed all users.
20602         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
20603         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
20604         and FORMAL_IPATYPE IPA_PASS_THROUGH.
20605         (union parameter_info): Renamed to jump_func_value.
20606         (union jump_func_value): Renamed value to constant
20607         (struct ipa_jump_func): Renamed info_type to value
20608         (struct ipa_node): Renamed to ipa_node_params
20609         (struct ipa_node_params): Renamed ipa_arg_num to param_count
20610         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
20611         (struct ipa_node_params): Renamed ipa_mod to modified_flags
20612         (struct ipa_edge): Renamed to ipa_edge_args
20613         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
20614         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
20615         (struct ipa_methodlist): Renamed to ipa_func_list
20616         (struct ipa_func_list): method_p renamed to node, next_method
20617         renamed to next
20618         (ipa_methodlist_p): Removed, switched all users to struct pointer
20619         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
20620
20621 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
20622
20623         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
20624         (rs6000_emit_epilogue): Use backchain to restore only when we
20625         have a large frame.  Make use of frame pointer to restore if we
20626         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
20627
20628 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
20629
20630         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
20631         Add mode to zero_extract.
20632         (sign bit tests peepholes): (Ditto.).
20633
20634 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
20635
20636         * config/i386/i386.c (ix86_builtins): Replace Prescott New
20637         Instructions in comments with SSE3.
20638         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
20639         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
20640         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
20641         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
20642         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
20643         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
20644         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
20645         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
20646         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
20647         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
20648         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
20649         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
20650         (bdesc_sse_args): Renamed to ...
20651         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
20652         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
20653         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
20654         IX86_BUILTIN_FABSQ.
20655         (bdesc_1arg): Moved to ...
20656         (bdesc_args): Here.
20657         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
20658         Instructions in comments with SSE3.
20659         (ix86_expand_sse_operands_builtin): Renamed to ...
20660         (ix86_expand_args_builtin): This.  Updated.
20661         (ix86_expand_unop1_builtin): Update comments.
20662         (ix86_expand_builtin): Updated.
20663
20664 2008-04-29  Richard Guenther  <rguenther@suse.de>
20665
20666         PR tree-optimization/36078
20667         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
20668         Update virtual SSA form after cleaning up the CFG.
20669
20670 2008-04-29  Richard Guenther  <rguenther@suse.de>
20671
20672         PR middle-end/15255
20673         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
20674
20675 2008-04-29  Richard Guenther  <rguenther@suse.de>
20676
20677         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
20678         (compute_may_aliases): Do not call finalize_ref_all_pointers.
20679         (compute_flow_insensitive_aliasing): Do not treat
20680         PTR_IS_REF_ALL pointers special.
20681         (get_smt_for): Likewise.
20682         (may_alias_p): Re-structure.
20683         (is_escape_site): A ref-all pointer conversion is not an escape site.
20684         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
20685         PTR_IS_REF_ALL pointers special.
20686         * tree-ssa-structalias.h (struct alias_info): Remove
20687         ref_all_symbol_mem_tag field.
20688         (PTR_IS_REF_ALL): Remove.
20689
20690 2008-04-29  Richard Guenther  <rguenther@suse.de>
20691
20692         PR middle-end/36077
20693         * fold-const.c (extract_muldiv_1): In combining division constants
20694         make sure to never overflow.
20695
20696 2008-04-29  Nick Clifton  <nickc@redhat.com>
20697
20698         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
20699
20700 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20701
20702         PR bootstrap/35169
20703         * optc-gen.awk: Work around HP-UX/IA awk bug.
20704
20705 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
20706
20707         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
20708         2008-04-25 commit.
20709
20710 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
20711
20712         PR target/36073
20713         * config/i386/i386.md
20714         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
20715         Change operand 1 predicate to nonimmediate_operand.
20716
20717 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
20718
20719         PR debug/36060
20720         * dwarf2out.c (struct die_struct): Mark as chain_circular through
20721         die_sub field.
20722         * gengtype.c (walk_type, write_func_for_structure): Handle
20723         chain_circular.
20724         * doc/gty.texi: Document chain_circular.
20725
20726 2008-04-28  Richard Guenther  <rguenther@suse.de>
20727
20728         PR tree-optimization/36066
20729         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
20730         SCEV and loop.
20731
20732 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
20733
20734         PR target/36064
20735         * config/i386/i386.md
20736         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
20737         Use match_scratch instead of match_operand for operands 3 and 4.
20738
20739 2008-04-27  Richard Guenther  <rguenther@suse.de>
20740
20741         PR tree-optimization/18754
20742         PR tree-optimization/34223
20743         * tree-pass.h (pass_complete_unrolli): Declare.
20744         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
20745         loop size before and after unconditionally of UL_NO_GROWTH in effect.
20746         Rewrite loop into loop closed SSA form if it is not already.
20747         (tree_unroll_loops_completely): Re-structure to iterate over
20748         innermost loops with intermediate CFG cleanups.
20749         Unroll outermost loops only if requested or the code does not grow
20750         doing so.
20751         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
20752         loops are available.
20753         (tree_vectorize): Instead do so here.
20754         (tree_complete_unroll): Also unroll outermost loops.
20755         (tree_complete_unroll_inner): New function.
20756         (gate_tree_complete_unroll_inner): Likewise.
20757         (pass_complete_unrolli): New pass.
20758         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
20759         uses outside of the loop.
20760         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
20761         form if it is available.
20762         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
20763         * passes.c (init_optimization_passes): Schedule complete inner
20764         loop unrolling pass before the first CCP pass after final inlining.
20765
20766 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
20767
20768         * targhooks.h (default_emutls_var_fields,
20769         default_emutls_var_init): Declare.
20770         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
20771         * target.h (struct gcc_target): Add struct emutls member.
20772         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
20773         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
20774         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
20775         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
20776         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
20777         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
20778         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
20779         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
20780         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
20781         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
20782         emit debug information.
20783         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
20784         * varasm.c: Include targhooks.h.
20785         (emutls_object_section, emutls_tmpl_section): New.
20786         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
20787         (EMUTLS_SEPARATOR): New.
20788         (prefix_name): New.
20789         (get_emutls_object_name): New.
20790         (default_emutls_var_fields): New, broken out of ...
20791         (get_emutls_object_type): ... here.  Adjust to use target hooks.
20792         (get_emutls_init_templ_addr): Adjust to use target hooks.
20793         (emutls_decl): Adjust to use target hooks.
20794         (emutls_finish): Likewise.
20795         (default_emutls_var_init): New, broken out of ...
20796         (assemble_variable): ... here.  Adjust to use target hooks.
20797         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
20798         SECCAT_EMUTLS_TMPL.
20799         * c-common.c (handle_section_attribute): Prevent overriding
20800         sections for emulated tls with special sections.
20801         * config/i386/i386.c (x86_64_elf_select_section): Add
20802         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
20803         (x86_64_elf_unique_section): Likewise.
20804         * config/vxworks.c: Include tree.h.
20805         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
20806         (vxworks_override_options): Set TLS scheme.
20807         * doc/tm.texi (Emulated TLS): New node.
20808
20809 2008-04-26  Simon Baldwin <simonb@google.com>
20810
20811         PR c/35652
20812         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
20813         with propagated string constants.
20814
20815 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
20816
20817         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
20818         constraint for operand 2 when operand 0 is memory operand.
20819         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
20820         operand 0 is memory operand.
20821         (fix_trunc<mode>_i387_with_temp): Ditto.
20822         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
20823         operand 2 when operand 1 is memory operand.
20824         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
20825         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
20826         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
20827         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
20828         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
20829         operands 2,3 and 4 when operand 1 is memory operand.
20830         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
20831         is memory operand.
20832         (fistdi2_floor_with_temp): Ditto.
20833         (fist<mode>2_floor_with_temp): Ditto.
20834         (fistdi2_ceil_with_temp): Ditto.
20835         (fist<mode>2_ceil_with_temp): Ditto.
20836         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
20837
20838 2008-04-26  David Daney  <ddaney@avtrex.com>
20839
20840         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
20841         unspec_volitile.
20842         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
20843         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
20844         UNSPEC_UPDATE_GOT_VERSION): Renumber.
20845         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
20846         (compare_and_swap_12): New insn.
20847         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
20848         * config/mips/mips.c (mips_force_binary): New function.
20849         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
20850         (mips_expand_compare_and_swap_12): New function.
20851         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
20852
20853 2008-04-25  Jan Hubicka  <jh@suse.cz>
20854
20855         PR testsuite/35843
20856         * cfgexpand.c (pass_expand): Turn into RTL pass.
20857         * passes.c (execute_one_pass): Do pass typechecking after execution.
20858         * tree-pass.h (pass_expand): Turn into RTL pass.
20859
20860         * function.h (struct rtl_data): Move here fields
20861         accesses_prior_frames, calls_eh_return, saves_all_registers,
20862         has_nonlocal_goto, has_asm_statement, is_thunk,
20863         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
20864         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
20865         arg_pointer_save_area_init from struct function; turn into bool.
20866         (struct function): Move
20867         calls_eh_return, saves_all_registers, has_nonlocal_goto,
20868         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
20869         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
20870         tail_call_emit, arg_pointer_save_area_init
20871         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
20872         (current_function_returns_struct, current_function_returns_pcc_struct,
20873         current_function_calls_setjmp, current_function_calls_alloca,
20874         current_function_accesses_prior_frames,
20875         current_function_calls_eh_return, current_function_is_thunk,
20876         current_function_stdarg, current_function_profile,
20877         current_function_limit_stack, current_function_uses_pic_offset_table,
20878         current_function_uses_const_pool, current_function_has_nonlocal_label,
20879         current_function_saves_all_registers,
20880         current_function_has_nonlocal_goto,
20881         current_function_has_asm_statement): Remove accesor macros.
20882         * ra-conflict.c (global_conflicts): Update.
20883         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
20884         (suitable_for_tail_call_opt_p): Update.
20885         * builtins.c (expand_builtin_return_addr): Update.
20886         (expand_builtin_setjmp_setup): Update.
20887         (expand_builtin_nonlocal_goto): Update.
20888         * final.c (final_start_function): Update.
20889         (profile_function): Update.
20890         (leaf_function_p): Update.
20891         (only_leaf_regs_used): Update.
20892         * df-scan.c (df_get_exit_block_use_set): Update.
20893         * dojump.c (clear_pending_stack_adjust): Update.
20894         * tree-stdarg.c (gate_optimize_stdarg): Update.
20895         * gimple-low.c (lower_function_body): Update.
20896         * global.c (compute_regsets): Update.
20897         (global_alloc): Update.
20898         * dwarf2out.c (dwarf2out_begin_prologue): Update.
20899         * expr.c (expand_assignment): Update.
20900         * dse.c (dse_step0): Update.
20901         (dse_step1): Update.
20902         * c-decl.c (store_parm_decls): Update.
20903         * local-alloc.c (combine_regs): Update.
20904         (find_free_reg): Update.
20905         * function.c (assign_parms_augmented_arg_list): Update.
20906         (assign_parm_find_data_types): Update.
20907         (assign_parms): Update.
20908         (allocate_struct_function): Update.
20909         (expand_function_start): Update.
20910         (expand_function_end): Update.
20911         (get_arg_pointer_save_area): Update.
20912         (thread_prologue_and_epilogue_insns): Update.
20913         (rest_of_match_asm_constraints): Update.
20914         * stor-layout.c (variable_size): Update.
20915         * gcse.c (gcse_main): Update.
20916         (bypass_jumps): Update.
20917         * gimplify.c (gimplify_function_tree): Update.
20918         * calls.c (emit_call_1): Update.
20919         (expand_call): Update.
20920         * bt-load.c (compute_defs_uses_and_gen): Update.
20921         * except.c (sjlj_assign_call_site_values): Update.
20922         (sjlj_emit_function_enter): Update.
20923         (can_throw_external): Update.
20924         (set_nothrow_function_flags): Update.
20925         (expand_builtin_unwind_init): Update.
20926         (expand_eh_return): Update.
20927         (convert_to_eh_region_ranges): Update.
20928         (output_function_exception_table): Update.
20929         * emit-rtl.c (gen_tmp_stack_mem): Update.
20930         * cfgexpand.c (expand_used_vars): Update.
20931         (tree_expand_cfg): Update.
20932         * cfgcleanup.c (rest_of_handle_jump): Update.
20933         * explow.c (allocate_dynamic_stack_space): Update.
20934         * varasm.c (assemble_start_function): Update.
20935         (force_const_mem): Update.
20936         (mark_constant_pool): Update.
20937         * tree-optimize.c (tree_rest_of_compilation): Update.
20938         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
20939         * tree-cfg.c (notice_special_calls): Update.
20940         (is_ctrl_altering_stmt): Update.
20941         (tree_can_make_abnormal_goto): Update.
20942         (tree_purge_dead_abnormal_call_edges): Update.
20943         * config/alpha/predicates.md: Update.
20944         * config/alpha/alpha.c (alpha_sa_mask): Update.
20945         (alpha_sa_size): Update.
20946         (alpha_does_function_need_gp): Update.
20947         (alpha_expand_prologue): Update.
20948         (alpha_start_function): Update.
20949         (alpha_output_function_end_prologue): Update.
20950         (alpha_expand_epilogue): Update.
20951         * config/frv/frv.c (frv_stack_info): Update.
20952         (frv_expand_epilogue): Update.
20953         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
20954         (s390_register_info): Update.
20955         (s390_frame_info): Update.
20956         (s390_init_frame_layout): Update.
20957         (s390_can_eliminate): Update.
20958         (save_gprs): Update.
20959         * config/spu/spu.c (spu_split_immediate): Update.
20960         (need_to_save_reg): Update.
20961         (spu_expand_prologue): Update.
20962         (spu_expand_epilogue): Update.
20963         * config/sparc/sparc.md: Update.
20964         * config/sparc/sparc.c (eligible_for_return_delay): Update.
20965         (sparc_tls_got): Update.
20966         (legitimize_pic_address): Update.
20967         (sparc_emit_call_insn): Update.
20968         (sparc_expand_prologue): Update.
20969         (output_return): Update.
20970         (print_operand): Update.
20971         (sparc_function_ok_for_sibcall): Update.
20972         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
20973         * config/m32r/m32r.md: Update.
20974         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
20975         (m32r_compute_frame_size): Update.
20976         (m32r_expand_prologue): Update.
20977         (m32r_expand_epilogue): Update.
20978         (m32r_legitimize_pic_address): Update.
20979         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
20980         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
20981         * config/i386/i386.c (ix86_frame_pointer_required): Update.
20982         (gen_push): Update.
20983         (ix86_save_reg): Update.
20984         (ix86_compute_frame_layout): Update.
20985         (ix86_expand_prologue): Update.
20986         (ix86_expand_epilogue): Update.
20987         * config/sh/sh.c (output_stack_adjust): Update.
20988         (calc_live_regs): Update.
20989         (sh5_schedule_saves): Update.
20990         (sh_expand_prologue): Update.
20991         (sh_expand_epilogue): Update.
20992         (sh_setup_incoming_varargs): Update.
20993         (sh_allocate_initial_value): Update.
20994         (sh_get_pr_initial_val): Update.
20995         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
20996         * config/sh/sh.md (label:): Update.
20997         * config/avr/avr.c (out_movhi_mr_r): Update.
20998         * config/crx/crx.h (enum): Update.
20999         * config/xtensa/xtensa.h (along): Update.
21000         * config/stormy16/stormy16.c Update.
21001         (xstormy16_compute_stack_layout): Update.
21002         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
21003         (fr30_expand_prologue): Update.
21004         * config/cris/cris.c (cris_conditional_register_usage): Update.
21005         (cris_reg_saved_in_regsave_area): Update.
21006         (cris_initial_frame_pointer_offset): Update.
21007         (cris_simple_epilogue): Update.
21008         (cris_expand_prologue): Update.
21009         (cris_expand_epilogue): Update.
21010         (cris_expand_pic_call_address): Update.
21011         (cris_asm_output_symbol_ref): Update.
21012         (cris_asm_output_label_ref): Update.
21013         * config/cris/cris.md Update.
21014         * config/iq2000/iq2000.c (compute_frame_size): Update.
21015         (iq2000_expand_epilogue): Update.
21016         * config/mt/mt.h (save_direction): Update.
21017         * config/mn10300/mn10300.c (mn10300_function_value): Update.
21018         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
21019         (ia64_secondary_reload_class): Update.
21020         * config/m68k/m68k.c (m68k_save_reg): Update.
21021         (m68k_expand_prologue): Update.
21022         (m68k_expand_epilogue): Update.
21023         (legitimize_pic_address): Update.
21024         * config/rs6000/rs6000.c (rs6000_got_register): Update.
21025         (first_reg_to_save): Update.
21026         (first_altivec_reg_to_save): Update.
21027         (compute_vrsave_mask): Update.
21028         (compute_save_world_info): Update.
21029         (rs6000_stack_info): Update.
21030         (spe_func_has_64bit_regs_p): Update.
21031         (rs6000_ra_ever_killed): Update.
21032         (rs6000_emit_eh_reg_restore): Update.
21033         (rs6000_emit_allocate_stack): Update.
21034         (rs6000_emit_prologue): Update.
21035         (rs6000_emit_epilogue): Update.
21036         (rs6000_output_function_epilogue): Update.
21037         (output_profile_hook): Update.
21038         (rs6000_elf_declare_function_name): Update.
21039         * config/rs6000/rs6000.h (rs6000_args): Update.
21040         * config/rs6000/rs6000.md: Update.
21041         * config/mcore/mcore.c (mcore_expand_prolog): Update.
21042         * config/arc/arc.c (arc_output_function_epilogue): Update.
21043         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
21044         * config/darwin.c (machopic_function_base_name): Update.
21045         * config/score/score3.c (score3_compute_frame_size): Update.
21046         (rpush): Update.
21047         (rpop): Update.
21048         (score3_epilogue): Update.
21049         * config/score/score7.c (score7_compute_frame_size): Update.
21050         (score7_prologue): Update.
21051         (score7_epilogue): Update.
21052         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
21053         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
21054         * config/arm/arm.c (use_return_insn): Update.
21055         (require_pic_register): Update.
21056         (arm_load_pic_register): Update.
21057         (arm_compute_save_reg0_reg12_mask): Update.
21058         (arm_compute_save_reg_mask): Update.
21059         (thumb1_compute_save_reg_mask): Update.
21060         (output_return_instruction): Update.
21061         (arm_output_function_prologue): Update.
21062         (arm_output_epilogue): Update.
21063         (arm_get_frame_offsets): Update.
21064         (arm_expand_prologue): Update.
21065         (thumb_pushpop): Update.
21066         (thumb_exit): Update.
21067         (thumb1_expand_prologue): Update.
21068         (thumb1_expand_epilogue): Update.
21069         (arm_unwind_emit): Update.
21070         (arm_output_fn_unwind): Update.
21071         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
21072         * config/arm/arm.md: Update.
21073         * config/pa/pa.md: Update.
21074         * config/pa/pa.c (legitimize_pic_address): Update.
21075         (compute_frame_size): Update.
21076         (hppa_expand_prologue): Update.
21077         (hppa_expand_epilogue): Update.
21078         (borx_reg_operand): Update.
21079         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
21080         (HARD_REGNO_RENAME_OK): Update.
21081         * config/mips/mips.c (mips_global_pointer): Update.
21082         (mips_save_reg_p): Update.
21083         (mips_compute_frame_info): Update.
21084         (mips_frame_pointer_required): Update.
21085         (mips_expand_prologue): Update.
21086         (mips_expand_epilogue): Update.
21087         (mips_can_use_return_insn): Update.
21088         (mips_reorg_process_insns): Update.
21089         * config/v850/v850.c (compute_register_save_size): Update.
21090         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
21091         * config/mmix/mmix.c (along): Update.
21092         (mmix_expand_epilogue): Update.
21093         * config/bfin/bfin.c (legitimize_pic_address): Update.
21094         (must_save_p): Update.
21095         (stack_frame_needed_p): Update.
21096         (add_to_reg): Update.
21097         (bfin_expand_prologue): Update.
21098         * stmt.c (expand_asm_operands): Update.
21099         * reload1.c (reload): Update.
21100         (init_elim_table): Update.
21101
21102 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
21103
21104         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
21105
21106 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
21107
21108         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
21109         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
21110         (mov<mode>): Removed.
21111         (*movv4sf_internal): Likewise.
21112         (*movv2df_internal): Likewise.
21113
21114 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
21115
21116         * config.gcc (crx-*-elf): Remove deprecation.
21117
21118 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
21119
21120         * config/i386/cygming-crtend.c (register_frame_ctor): Register
21121         __gcc_deregister_frame with atexit.
21122         (deregister_frame_dtor): Remove.
21123
21124 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
21125             Nathan Sidwell  <nathan@codesourcery.com>
21126
21127         * config/rs6000/rs6000.opt (mspe): Remove Var property.
21128         (misel): Likewise.
21129         * config/rs6000/rs6000.h (rs6000_spe): Declare.
21130         (rs6000_isel): Likewise.
21131         * config/rs6000/rs6000.c (rs6000_spe): New variable.
21132         (rs6000_isel): New variable.
21133         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
21134
21135 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
21136
21137         PR c++/35758
21138         * c-common.c (handle_vector_size_attribute): Call
21139         lang_hooks.types.reconstruct_complex_type instead of
21140         reconstruct_complex_type.
21141         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
21142         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
21143         * langhooks.h (struct lang_hooks_for_types): Add
21144         reconstruct_complex_type hook.
21145         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
21146         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
21147
21148 2008-04-24  Richard Guenther  <rguenther@suse.de>
21149
21150         * c-common.h (check_builtin_function_arguments): Declare.
21151         * c-common.c (validate_nargs): New function.
21152         (check_builtin_function_arguments): Likewise.
21153         * c-typeck.c (build_function_call): Call
21154         check_builtin_function_arguments.
21155         * builtins.c (fold_builtin_classify): Remove error reporting code.
21156         (fold_builtin_unordered_cmp): Likewise.
21157         (fold_builtin_1): Likewise.
21158         (fold_builtin_n): Likewise.
21159
21160 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
21161
21162         PR tree-optimization/36008
21163         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
21164         the original op1, rather than delta by step.
21165
21166 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
21167             Sebastian Pop  <sebastian.pop@amd.com>
21168
21169         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
21170         eliminate_local_variables_stmt, eliminate_local_variables,
21171         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
21172         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
21173         of code delimited by two edges in the CFG.
21174         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
21175         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
21176         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate
21177         the case of parallelisation of reductions.
21178         (expr_invariant_in_region_p): New.
21179
21180         * tree-flow.h (gather_blocks_in_sese_region): Declared.
21181         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
21182
21183 2008-04-24  Ira Rosen  <irar@il.ibm.com>
21184             Richard Guenther  <rguenther@suse.de>
21185
21186         PR tree-optimization/36034
21187         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
21188         incapable of dealing with loads with gaps.
21189
21190 2008-04-24  Rafael Espíndola  <espindola@google.com>
21191
21192         * tree-flow.h (vrp_evaluate_conditional): Change signature.
21193         * tree-ssa-propagate.c (fold_predicate_in): Update call to
21194         vrp_evaluate_conditional.
21195         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
21196         (vrp_evaluate_conditional): Split the cond argument.
21197         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
21198         (simplify_stmt_for_jump_threading): Update call to
21199         vrp_evaluate_conditional.
21200
21201 2008-04-24  Ira Rosen  <irar@il.ibm.com>
21202
21203         PR tree-optimization/35982
21204         * tree-vect-analyze.c (vect_check_interleaving): Check that the
21205         interleaved data-refs are of the same type.
21206
21207 2008-04-24  Danny Smith  <dannysmith@users.net>
21208
21209         * c-format.c (check_format_info_main): Use strncmp rather than a
21210         magic prefix to handle multichar length specs.
21211         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
21212         Don't prefix "I64" and "I32" with '\0'.
21213
21214 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
21215
21216         PR target/36015
21217         * config/i386/i386.c (init_cumulative_args): Don't pass anything
21218         in registers for -m32 only if stdarg_p (fntype).
21219
21220 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
21221
21222         PR rtl-optimization/36006
21223         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
21224         temp to op0 in order to avoid invalid rtx sharing.
21225
21226 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
21227
21228         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
21229         check TREE_INVARIANT.
21230         * tree-gimple.c (is_gimple_address): New.
21231         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
21232         * tree-gimple.h (is_gimple_address): New.
21233         * tree.h (decl_address_invariant_p): New.
21234         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
21235         (build_string): Likewise.
21236         (decl_address_invariant_p): New, from is_gimple_invariant_address.
21237         (tree_invariant_p_1): Likewise.
21238         (save_expr): Use it.
21239         (tree_invariant_p): New.
21240         (skip_simple_arithmetic): Use it.
21241         (stabilize_reference_1): Use it.
21242         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
21243         simplify.
21244         (build1_stat): Drop code to compute TREE_INVARIANT.
21245         (build2_stat): Drop code to compute TREE_INVARIANT.
21246         (build3_stat): Drop code to compute TREE_INVARIANT.
21247         (build4_stat): Drop code to compute TREE_INVARIANT.
21248         (build5_stat): Drop code to compute TREE_INVARIANT.
21249         (build7_stat): Drop code to compute TREE_INVARIANT.
21250         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
21251         * tree.h (struct tree_base): Remove invariant_flag.
21252         (TREE_INVARIANT): Remove.
21253         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
21254         (fold_builtin_expect): Check TREE_CONSTANT.
21255         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
21256         * c-tree.h (c_expr_to_decl): Drop third parameter.
21257         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
21258         (build_c_cast): Don't set TREE_INVARIANT.
21259         (pop_init_level): Don't set TREE_INVARIANT.
21260         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
21261         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
21262         TREE_CONSTANT.
21263         (gimplify_init_constructor): Don't set TREE_INVARIANT.
21264         (gimplify_addr_expr): Adjust comment.
21265         * tree-mudflap.c (mf_build_string):
21266         * print-tree.c (print_node): Don't print TREE_INVARIANT.
21267         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
21268         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
21269         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
21270         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
21271         * langhooks.h (struct lang_hooks): Drop third parameter from
21272         expr_to_decl.
21273
21274 2008-04-23  Richard Guenther  <rguenther@suse.de>
21275
21276         PR tree-optimization/27799
21277         PR tree-optimization/32921
21278         PR tree-optimization/32624
21279         * tree-ssa-structalias.c (merge_smts_into): Only merge the
21280         SMTs aliases and the tag itself into the solution.
21281         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
21282         merge the points-to solution back into the SMT aliases.
21283         (may_alias_p): Use alias_set_subset_of instead of
21284         aliases_conflict_p.  A pointer which points to
21285         memory with alias set zero may access any variable.
21286
21287 2008-04-23  Richard Guenther  <rguenther@suse.de>
21288
21289         * alias.c (alias_set_subset_of): Correctly handle asking
21290         if zero is a subset of an alias set with zero child.
21291         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
21292         (compute_flow_insensitive_aliasing): Correctly walk all
21293         pointers.  Do not unnecessarily union sets.
21294
21295 2008-04-23  Richard Guenther  <rguenther@suse.de>
21296
21297         PR middle-end/36021
21298         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
21299
21300 2008-04-22  Tomas Bily  <tbily@suse.cz>
21301
21302         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
21303         unreachable case.
21304         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
21305         NON_LVALUE_EXPR.
21306         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
21307         * tree-ssa-structalias.c (get_constraint_for): Likewise.
21308         * tree-inline.c (estimate_num_insns_1): Likewise.
21309         * varasm.c (const_hash_1, compare_constant, copy_constant)
21310         (compute_reloc_for_constant, output_addressed_constants): Likewise.
21311         * emit-rtl.c (component_ref_for_mem_expr)
21312         (set_mem_attributes_minus_bitpos): Likewise.
21313         * expr.c (highest_pow2_factor, expand_expr_real_1, )
21314         (is_aligning_offset): Likewise.
21315         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
21316         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
21317         * dojump.c (do_jump): Likewise.
21318         * builtins.c (get_pointer_alignment, get_memory_rtx)
21319         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
21320         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
21321
21322 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
21323
21324         PR rtl-optimization/36017
21325         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
21326         expanding the library call.
21327
21328 2008-04-22  Ian Lance Taylor  <iant@google.com>
21329
21330         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
21331         than size_in_bytes.
21332
21333 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
21334
21335         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
21336         of LR/CTR moves for Power6.
21337
21338 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
21339
21340         PR middle-end/36003
21341         * passes.c (init_optimization_passes): Remove
21342         pass_fast_rtl_byte_dce.
21343
21344 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
21345
21346         PR target/29096
21347         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
21348         builtin functions to generate faster code.
21349         (_mm_cvtpu16_ps): Ditto.
21350         (_mm_cvtpi32x2_ps): Ditto.
21351
21352 2008-04-22  Nick Clifton  <nickc@redhat.com>
21353
21354         * common.opt (ftree-loop-distribution): Add Optimization
21355         attribute.
21356
21357         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
21358         (frv_expand_builtin_va_start): Likewise.
21359
21360         * config/arm/arm.c (thumb_find_work_register): Fix location of
21361         argument register count.
21362
21363 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
21364
21365         Support scheduling for ColdFire V1 and V3 microarchitecture.
21366         Improve scheduling of multiplication instructions.
21367
21368         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
21369         (mac): New instruction attribute.
21370         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
21371         (m68k_sched_mac): New variable.
21372         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
21373         Handle cfv1 and cfv3.
21374         (max_insn_size): New static variable.
21375         (struct _sched_ib): New type.
21376         (sched_ib): New static variable.
21377         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
21378         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
21379         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
21380         Update.
21381         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
21382         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
21383         new variables.  Update.
21384         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
21385         Add modeling of cfv3 instruction buffer.  Update.
21386         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
21387         * config/m68k/m68k.h (TUNE_CFV3): New macro.
21388         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
21389         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
21390         a particular reservation applies to.
21391         (type2): Reorganize attribute values.  Rename alu to alu_reg,
21392         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
21393         to mul_l and mul_w.
21394         (cf_ib_*): Simplify description of instruction buffer.
21395         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
21396         (cf_mem): Split into cf_mem1 and cf_mem2.
21397         (cf_v2_move_??): Rename to cfv12_alu_??.
21398         (cf_v2_move_l_??): Rename to cfv12_omove_??.
21399         (cf_v2_mul_??): Remove reservations.
21400         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
21401         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
21402         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
21403         appropriate place.
21404         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
21405         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
21406         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
21407         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
21408         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
21409         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
21410         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
21411         expansions of the above reservations for instructions of sizes
21412         1, 2 and 3 words.
21413
21414 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
21415
21416         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
21417
21418 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
21419
21420         * coverage.c: Include tree-pass.h.
21421         (coverage_counter_alloc): Print da_file_name to the dump file.
21422
21423 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
21424
21425         * sbitmap.c (sbitmap_range_empty_p): New function.
21426         * sbitmap.h (sbitmap_range_empty_p): New function.
21427         * bitmap.h: Now includes obstack.h.
21428
21429 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
21430             Kenneth Zadeck  <zadeck@naturalbridge.com>
21431
21432         * dbgcnt.def (ra_byte_scan): Added.
21433         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
21434         when the last hit happens for a counter.
21435         * timevar.def (TV_DF_BYTE_LR): New variable.
21436         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
21437         * passes.c (pass_fast_rtl_byte_dce): New pass.
21438         * fwprop.c (update_df): Added mode to call df_ref_create.
21439         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
21440         DF_REF_EXTRACT_OFFSET.
21441         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
21442         DF_BYTE_LR_OUT, df_byte_lr): New macro.
21443         (df_mm): New enum.
21444         (df_ref_extract): Added mode field.
21445         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
21446         DF_REF_EXTRACT_OFFSET.
21447         (DF_REF_EXTRACT_MODE): New macro.
21448         (df_byte_lr_bb_info): New structure.
21449         (df_print_byte_regset, df_compute_accessed_bytes,
21450         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
21451         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
21452         df_byte_lr_simulate_uses,
21453         df_byte_lr_simulate_artificial_refs_at_top,
21454         df_byte_lr_simulate_artificial_refs_at_end,
21455         df_compute_accessed_bytes): New function.
21456         (df_ref_create): Add parameter.
21457         (df_byte_lr_get_bb_info): New inline function.
21458         * df-scan.c (df_ref_record, df_uses_record,
21459         df_ref_create_structure): Added mode parameter.
21460         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
21461         df_defs_record, df_uses_record, df_get_conditional_uses,
21462         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
21463         df_entry_block_defs_collect, df_exit_block_uses_collect):
21464         Added mode parameter to calls to df_ref_record, df_uses_record,
21465         df_ref_create_structure.
21466         (df_ref_equal_p, df_ref_compare): Added test for modes.
21467         (df_ref_create_structure): Added code to set mode.  Renamed
21468         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
21469         DF_REF_EXTRACT_OFFSET.
21470         * df-core.c (df_print_byte_regset): New function.
21471         * df-byte-scan.c: New file.
21472         * df-problems.c (df_rd_transfer_function): Removed unnecessary
21473         calls to BITMAP_FREE.
21474         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
21475         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
21476         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
21477         df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
21478         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
21479         df_byte_lr_local_compute, df_byte_lr_init,
21480         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
21481         df_byte_lr_transfer_function, df_byte_lr_free,
21482         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
21483         df_byte_lr_add_problem, df_byte_lr_simulate_defs,
21484         df_byte_lr_simulate_uses,
21485         df_byte_lr_simulate_artificial_refs_at_top,
21486         df_byte_lr_simulate_artificial_refs_at_end): New function.
21487         * dce.c (byte_dce_process_block): New function.
21488         (dce_process_block): au is now passed in rather than computed
21489         locally.  Changed loops that look at artificial defs to not look
21490         for conditional or partial ones, because there never are any.
21491         (fast_dce): Now is able to drive byte_dce_process_block or
21492         dce_process_block depending on the kind of dce being done.
21493         (rest_of_handle_fast_dce): Add parameter to fast_dce.
21494         (rest_of_handle_fast_byte_dce): New function.
21495         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
21496         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
21497
21498 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
21499
21500         PR fortran/35019
21501         * gcc.h: Added fortran options that take arguments to
21502         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
21503         macros.
21504
21505 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
21506
21507         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
21508         scalarization if on the LHS and not a full access.
21509
21510 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21511
21512         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
21513
21514 2008-04-18  Rafael Espíndola  <espindola@google.com>
21515
21516         * tree-vrp.c (find_case_label_index): Fix the binary search.
21517         (find_case_label_range): New.
21518         (vrp_visit_switch_stmt): Use find_case_label_range.
21519         (simplify_switch_using_ranges): Use find_case_label_range.
21520
21521 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
21522
21523         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
21524         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
21525
21526 2008-04-18  Tom Tromey  <tromey@redhat.com>
21527
21528         PR libcpp/15500:
21529         * doc/cpp.texi (Implementation-defined behavior): Mention
21530         -finput-charset.
21531
21532 2008-04-18  Ian Lance Taylor  <iant@google.com>
21533
21534         * fold-const.c (pointer_may_wrap_p): New static function.
21535         (fold_comparison): Add another test for pointer overflow.  Use
21536         pointer_may_wrap_p to disable some false positives.
21537
21538 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
21539
21540         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
21541         (fname_as_string): Match updated cpp_interpret_string prototype.
21542         (fix_string_type): Support char16_t* and char32_t*.
21543         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
21544         derivative) nodes.  Register as builtin if C++0x.
21545         (c_parse_error): Support CPP_CHAR{16,32}.
21546         * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
21547         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
21548         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
21549         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
21550         CTI_CHAR32_ARRAY_TYPE>: New elements.
21551         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
21552         char32_type_node, signed_char32_type_node, char16_array_type_node,
21553         char32_array_type_node): New defines.
21554         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
21555         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
21556         (lex_string): Support CPP_STRING{16,32}, match updated
21557         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
21558         (lex_charconst): Support CPP_CHAR{16,32}.
21559         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
21560         and CPP_STRING{16,32}.
21561
21562 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
21563
21564         PR bootstrap/35457
21565         * aclocal.m4: Regenerate.
21566         * configure: Regenerate.
21567
21568 2008-04-18  Jan Hubicka  <jh@suse.cz>
21569
21570         * except.c (dw2_size_of_call_site_table,
21571         sjlj_size_of_call_site_table): Use vector API for call_site_record.
21572
21573         * cgraphbuild.c (build_cgraph_edges): Update.
21574         * tree-pass.h: Update comment.
21575         * final.c (leaf_function_p): Update.
21576         (leaf_renumber_regs): Update.
21577         (rest_of_clean_state): Update.
21578         * omp-low.c (expand_omp_parallel): Update.
21579         * ipa-reference.c (analyze_function): Update.
21580         * reorg.c (find_end_label): Update.
21581         (optimize_skip): Update.
21582         (fill_simple_delay_slots): Update.
21583         (fill_simple_delay_slots): Update.
21584         (make_return_insns): Update.
21585         (dbr_schedule): Update.
21586         * gimple-low.c (record_vars_into): Update.
21587         * cfgbuild.c (make_edges): Update.
21588         * function.c (assign_stack_local): Update.
21589         (assign_parm_adjust_stack_rtl): Update.
21590         (locate_and_pad_parm): Update.
21591         (allocate_struct_function): Do not initialize stack_alignment_needed
21592         and preferred_stack_boundary here.
21593         (stack_protect_prologue): Update.
21594         (stack_protect_epilogue): Update.
21595         (expand_function_start): Initialize stack_alignment_needed,
21596         preferred_stack_boundary and max_jumptable_ents.
21597         (expand_function_end): Update.
21598         (free_after_compilation): Do not NULLify epilogue_delay_list.
21599         * function.h (struct rtl_data): Add stack_protect_guard,
21600         stack_alignment_needed,
21601         preferred_stack_boundary, epilogue_delay_list.
21602         (struct function): Remove value_histograms, stack_alignment_needed,
21603         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
21604         last_label_uid,
21605         unexpanded_var_list, stack_protect_guard.
21606         (current_function_epilogue_delay_list): Remove.
21607         * ipa-type-escape.c (analyze_function): Update.
21608         * gimplify.c (pop_gimplify_context): Update comment.
21609         * calls.c (expand_call): Update.
21610         (emit_library_call_value_1): Update.
21611         * except.c (set_nothrow_function_flags): Update.
21612         * cfgexpand.c (get_decl_align_unit): Update.
21613         (create_stack_guard): Update.
21614         (estimated_stack_frame_size): Update.
21615         (expand_used_vars): Update.
21616         (tree_expand_cfg): Free histogram earliers, init expansion variables.
21617         * explow.c (allocate_dynamic_stack_space): Update.
21618         * tree-ssa-live.c (remove_unused_locals): Update.
21619         * varasm.c (mark_constant_pool): Update.
21620         * tree-inline.c (remap_decls): Update.
21621         (initialize_cfun): Update.
21622         (declare_return_variable): Update.
21623         (inline_forbidden_p): Update.
21624         (expand_call_inline): Update.
21625         (declare_inline_vars): Update.
21626         (tree_function_versioning): Update.
21627         * tree-flow.h (value_histograms): New.
21628         (VALUE_HISTOGRAMS): New macro.
21629         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
21630         last_label_uid.
21631         * tree-cfg.c (set_bb_for_stmt): Update.
21632         (replace_by_duplicate_decl): Update.
21633         (move_block_to_fn): Update.
21634         (new_label_mapper): Update.
21635         (dump_function_to_file): Update.
21636         * ipa-struct-reorg.c (build_data_structure): Update.
21637         * cfgrtl.c (print_rtl_with_bb): Update.
21638         * reload1.c (reload): Update.
21639         (reload): Update.
21640         * config/i386/i386.c (setup_incoming_varargs_64,
21641         ix86_compute_frame_layout): Update.
21642         * config/arc/arc.c (arc_output_function_epilogue): Update.
21643
21644 2008-04-18  Marius Strobl <marius@FreeBSD.org>
21645
21646         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
21647         for FreeBSD as well.
21648         * gthr-posix95.h: Likewise.
21649
21650 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
21651
21652         PR rtl-optimization/35838
21653         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
21654         out the byte offset of the first subreg.
21655
21656 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
21657
21658         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
21659         to split_ti instead of three separate calls with single member arrays.
21660         (subti3 splitter): Ditto.
21661         (adddi3 splitter): Ditto with split_di.
21662         (subdi3 splitter): Ditto.
21663         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
21664         two separate calls with single member arrays.  Swap match_dup
21665         operands 1 and 2 to better fit into the array.
21666         (negdi2 splitter): Ditto with split_di.
21667         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
21668         two separate calls with single member arrays.  Swap match_dup operands
21669         6 and 7 to better fit into the array.
21670
21671 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
21672
21673         * config/i386/i386.c (sse_builtin_type): New.
21674         (bdesc_sse_args): Likewise.
21675         (bdesc_sse_3arg): Removed.
21676         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
21677         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
21678         IX86_BUILTIN_ROUNDPS.
21679         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
21680         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
21681         IX86_BUILTIN_ROUNDPS.
21682         (ix86_expand_sse_4_operands_builtin): Removed.
21683         (ix86_expand_sse_operands_builtin): New.
21684         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
21685         and CODE_FOR_sse4_1_roundps.
21686         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
21687         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
21688
21689 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
21690
21691         PR target/35907
21692         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
21693         regs before frame pop when needed.  If use_backchain_to_restore_sp
21694         then load backchain into a temp reg to restore vr and vrsave.  Add
21695         code to restore vr after frame pop if possible.
21696
21697 2008-04-17  Richard Guenther  <rguenther@suse.de>
21698
21699         * tree-vn.c (expressions_equal_p): Do not check type
21700         equality or compatibility before calling operand_equal_p.
21701         * fold-const.c (operand_equal_p): Check equivalence of
21702         integer constants before bailing out due to signedness or
21703         precision differences.
21704         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
21705         spurious differences in type qualification.  Ignore types
21706         for COMPONENT_REFs at all.
21707
21708 2008-04-17  Christian Bruel  <christian.bruel@st.com>
21709
21710         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
21711         msw_skip comparison.
21712
21713 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
21714
21715         PR c/35739
21716         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
21717         reg type.
21718
21719         PR tree-optimization/35899
21720         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
21721         rather than TREE_OPERAND.
21722
21723 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
21724
21725         PR target/35944
21726         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
21727         temporary registers.  Change operand predicate to general_operand.
21728         (remainderxf3): Ditto.
21729
21730 2008-04-16  Richard Guenther  <rguenther@suse.de>
21731
21732         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
21733         * tree-affine.c (aff_combination_expand): Look through some
21734         conversions.
21735
21736 2008-04-15  Doug Kwan  <dougkwan@google.com>
21737
21738         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
21739         for hex printing.
21740         * tree-pretty-print.c (dump_generic_node): Ditto.
21741         * final.c (output_addr_const): Ditto.
21742         * dwarf2out.c (output_cfi): Ditto.
21743         * c-pretty-print.c (pp_c_integer_constant): Ditto.
21744         * print-rtl.c (print_rtx): Ditto.
21745         * print-tree.c (print_node_brief, print_node): Ditto.
21746         * c-common.c (match_case_to_enum_1): Ditto.
21747         * sched-vis.c (print_value): Ditto.
21748         * config/i386/i386.c (print_operand): Cast to long unsigned int
21749         for hex printing.
21750
21751 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
21752         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
21753         MS Windows VirtualProtect function.
21754
21755 2008-04-15  Jan Hubicka  <jh@suse.cz>
21756
21757         * gengtype.c (write_root): Param_is argument is OK.
21758         * expr.c (expand_expr_real_1): Update call of get_exception_*.
21759         * function.h: Include varray.h
21760         (rtl_eh): New stucture based on except.c one.
21761         (call_site_record): New forward declaration and vector type.
21762         * calls.c (emit_call_1): Do not call
21763         note_current_region_may_contain_throw.
21764         * except.c (eh_status): Remove cur_region, try_region since they are
21765         unused.
21766         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
21767         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
21768         sjlj_fc, sjlj_exit_after to rth_eh in function.h.
21769         Remove call_site_data_used, call_site_data_size.
21770         Turn call_site_record into vector in function.h.
21771         (note_current_region_may_contain_throw): Remove.
21772         (get_exception_pointer, get_exception_filter): Do not take struct
21773         function argument; update.
21774         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
21775         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
21776         build_post_landing_pads, dw2_build_landing_pads,
21777         sjlj_assign_call_site_values, sjlj_mark_call_sites,
21778         sjlj_emit_function_enter, sjlj_emit_function_enter,
21779         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
21780         sjlj_build_landing_pads, finish_eh_generation,
21781         remove_exception_handler_label, remove_eh_handler,
21782         maybe_remove_eh_handler, add_reachable_handler,
21783         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
21784         add_action_record, collect_one_action_chain, add_call_site,
21785         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
21786         sjlj_output_call_site_table, output_function_exception_table,
21787         * except.h (note_current_region_may_contain_throw): Remove
21788         (get_exception_pointer, get_exception_filter): Do not take struct
21789         function argument.
21790         * Makefile.in (GTFILES): Put varargs before struct function.
21791
21792 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
21793
21794         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
21795         punt for STRING_CST.
21796         (get_constraint_for): Deal with STRING_CST here instead.
21797
21798 2008-04-15  Richard Guenther  <rguenther@suse.de>
21799
21800         * tree-ssa-propagate.c (substitute_and_fold): Substitute
21801         statements in a basic-block with a backward walk.  Do not
21802         substitute into dead statements but instead remove those.
21803
21804 2008-04-15  Richard Guenther  <rguenther@suse.de>
21805
21806         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
21807         to zero, thus disable creation of SFTs.
21808
21809 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
21810
21811         * tree-predcom.c (suitable_reference_p): Return false if the
21812         reference can throw.
21813
21814 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
21815
21816         PR c/35751
21817         * c-decl.c (finish_decl): If extern or static var has variable
21818         size, set TREE_TYPE (decl) to error_mark_node.
21819
21820 2008-04-15  Rafael Espíndola  <espindola@google.com>
21821
21822         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
21823         variable arg1.
21824
21825 2008-04-15  Richard Guenther  <rguenther@suse.de>
21826
21827         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
21828         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
21829         (visit_reference_op_load): Do walk vuse-vdef chains on
21830         vn_reference_lookup.
21831         (visit_reference_op_store): But do not here.
21832         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
21833         vn_reference_lookup.
21834         (vn_lookup_with_vuses): But do so here.
21835
21836 2008-04-14  Ian Lance Taylor  <iant@google.com>
21837
21838         * fold-const.c (fold_overflow_warning): Remove assertion.
21839
21840 2008-04-15  Ben Elliston  <bje@au.ibm.com>
21841
21842         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
21843         temp1 local variables.
21844
21845 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
21846
21847         PR target/35661
21848         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
21849         ".text.unlikely" section as executable.
21850
21851 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
21852
21853         * config/ia64/ia64.c (rtx_needs_barrier): Handle
21854         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
21855         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
21856         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
21857         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
21858         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
21859         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
21860
21861 2008-04-14  Ian Lance Taylor  <iant@google.com>
21862
21863         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
21864         * fold-const.c (fold_comparison): If appropriate, test
21865         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
21866         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
21867         reassociating a pointer type.
21868         * doc/invoke.texi (Optimize Options): Document that
21869         -fstrict-overflow applies to pointer wraparound.
21870
21871 2008-04-13  Jan Hubicka  <jh@suse.cz>
21872
21873         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
21874
21875 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
21876
21877         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
21878         we are going to "save the world".
21879
21880 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
21881
21882         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
21883         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
21884         operand 0 constraint, not "=".
21885
21886 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
21887
21888         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
21889
21890 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
21891
21892         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
21893         of size of positions_needed * CHAR_BIT.
21894
21895 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
21896
21897         PR middle-end/35897
21898         * dse.c (store_info): Change positions_needed to unsigned
21899         HOST_WIDE_INT.
21900         (lowpart_bitmask): New.
21901         (record_store): Cast to unsigned HOST_WIDE_INT for
21902         positions_needed.  Assert width <= size of positions_needed *
21903         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
21904         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
21905         lowpart_bitmask to set mask.
21906
21907 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
21908
21909         * config/bfin/constraints.md: New file.
21910         * config/bfin/bfin.md: Include it.
21911         (adddi3): Use satisfies_constraint functions instead of the old macros.
21912         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
21913         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
21914         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
21915         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
21916         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
21917         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
21918         EXTRA_CONSTRAINT): Delete.
21919         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
21920         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
21921         of the old macros.
21922         * config/bfin/bfin.c: Include "tm-constrs.h".
21923         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
21924         Use satisfies_constraint functions instead of the old macros.
21925         * doc/md.texi (Blackfin Constraints): Update file name reference.
21926
21927 2008-04-11  Richard Guenther  <rguenther@suse.de>
21928
21929         PR tree-optimization/35869
21930         * tree-vrp.c (execute_vrp): Move switch statement update after
21931         jump threading.  Schedule another cfg cleanup run.
21932
21933 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
21934
21935         PR c/35744
21936         * attribs.c (decl_attributes): Return early on errorneous node.
21937
21938 2008-04-10  Oleg Ryjkov  <olegr@google.com>
21939
21940         * tree.h (struct tree_base): Added a new flag default_def_flag.
21941         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
21942
21943 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
21944
21945         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
21946
21947 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21948
21949         PR target/35768
21950         * pa.md: Define mode iterator P.  Define mode attribute dwc.
21951         (dcacheflush): Update pattern to use iterator P and attribute dwc.
21952         (icacheflush): Likewise.
21953         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
21954         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
21955
21956 2008-04-11  Ben Elliston  <bje@au.ibm.com>
21957
21958         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
21959
21960 2008-04-10  Rafael Espíndola  <espindola@google.com>
21961
21962         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
21963         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
21964         (extract_range_from_expr): The same.
21965
21966 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
21967
21968         * config/mips/mips.md (GPR2): New mode iterator.
21969         (seq): Add comment.
21970         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
21971         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
21972         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
21973         Rewrite these to take two modes, the mode of comparison and the
21974         mode of the destination.
21975         * config/mips/mips.c (mips_expand_scc): Instead of having
21976         paradoxical subreg as destination, expand "narrowing" scc if mode
21977         of comparison is SI and target is requested in DI mode.
21978         (mips_emit_int_order_test): Update comment.  Make mode of
21979         comparison match CMP0 rather than TARGET.  When creating inverse
21980         target use mode of TARGET.
21981
21982 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
21983
21984         * gcov-dump.c (tag_summary): Only print summaries for the first
21985         GCOV_COUNTERS_SUMMABLE counters.
21986
21987 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
21988
21989         * config/i386/i386.md (absneg): New code iterator.
21990         (absnegprefix): New code attribute.
21991         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
21992         patterns using absneg code iterator.
21993         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
21994         using absneg code iterator.
21995         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
21996         *neg<mode>2 patterns using absneg code iterator.
21997         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
21998         *negextendsfdf2 patterns using absneg code iterator.
21999         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
22000         *negextendsfxf2 patterns using absneg code iterator.
22001         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
22002         *negextendsfdf2 patterns using absneg code iterator.
22003         * config/i386/sse.md (<code><mode>2): Macroize expander from
22004         abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
22005
22006 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
22007
22008         * config/s390/s390.h: Remove the remains of the recent search
22009         & replace action of current_function_outgoing_args_size.
22010
22011 2008-04-10  Ira Rosen  <irar@il.ibm.com>
22012
22013         PR tree-optimization/35821
22014         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
22015         NEW_STMT_LIST is not NULL.
22016
22017 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
22018
22019         PR libstdc++/35597
22020         * toplev.c (process_options): Remove -ffunction-sections debugging
22021         warning.
22022
22023 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
22024
22025         PR middle-end/PR28690
22026         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
22027         than gen_rtx_fmt_ee to perform more canonicalizations.
22028
22029 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22030
22031         PR driver/35665
22032         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
22033
22034 2008-04-09  Richard Guenther  <rguenther@suse.de>
22035
22036         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
22037         (dump_function_to_file): Dump function arguments with types.
22038
22039 2008-04-08  Richard Guenther  <rguenther@suse.de>
22040
22041         * fold-const.c (fold_widened_comparison): Do not allow
22042         sign-changes that change the result.
22043
22044 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
22045
22046         PR target/35839
22047         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
22048         kinds of indirect references.
22049
22050 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
22051
22052         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
22053         GNU Fortran language string.
22054
22055 2008-04-08  Rafael Espíndola  <espindola@google.com>
22056
22057         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
22058         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
22059         * tree.h (tree_call_nonnegative_warnv_p): New.
22060
22061 2008-04-08  Jan Hubicka  <jh@suse.cz>
22062
22063         * function.c (free_after_compilation): Clear out regno_reg_rtx
22064         pointer.
22065
22066 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
22067
22068         Revert
22069         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
22070
22071         PR middle-end/PR28690
22072         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
22073         same precedence as REG_POINTER and MEM_POINTER operands.
22074
22075 2008-04-08  Richard Guenther  <rguenther@suse.de>
22076
22077         PR middle-end/35834
22078         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
22079         for adding index to base.
22080
22081 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
22082
22083         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
22084         (MINGW_ENABLE_EXECUTE_STACK): New.
22085         (IN_LIBGCC2): For libgcc include windows.h file for
22086         function declarations.
22087
22088 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
22089
22090         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
22091         and tem2 if tem1 is not a REG or MULT.
22092
22093 2008-04-08  Jan Hubicka  <jh@suse.cz>
22094
22095         * function.h (incomming_args): Break out of struct function.
22096         (function_subsections): Break out of struct function.
22097         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
22098         return_rtx and hard_reg_initial_vals from struct function.
22099         Kill inl_max_label_num.
22100         (current_function_pops_args, current_function_args_info,
22101         current_function_args_size, current_function_args_size,
22102         current_function_pretend_args_size,
22103         current_function_outgoing_args_size,
22104         current_function_internal_arg_pointer, current_function_return_rtx):
22105         Kill compatibility accestor macros.
22106         * builtins.c (expand_builtin_apply_args_1): Update.
22107         (expand_builtin_next_arg): Update.
22108         * df-scan.c (df_get_call_refs): Update.
22109         * dbxout.c (dbxout_function_end): Update.
22110         * dwarf2out.c (dwarf2out_switch_text_section): Update.
22111         (output_line_info): Update.
22112         (secname_for_decl): Update.
22113         (dwarf2out_var_location): Update.
22114         * function.c (free_after_compilation): Update.
22115         (assign_parm_find_stack_rtl): Update.
22116         (assign_parms): Update.
22117         (expand_dummy_function_end): Update.
22118         (expand_function_end): Update.
22119         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
22120         (expand_call): Update.
22121         (emit_library_call_value_1): Update.
22122         (store_one_arg): Update.
22123         * varasm.c (initialize_cold_section_name): Update.
22124         (unlikely_text_section): Update.
22125         (unlikely_text_section_p): Update.
22126         (assemble_start_function): Update.
22127         (assemble_end_function): Update.
22128         (default_section_type_flags): Update.
22129         (switch_to_section): Update.
22130         * integrate.c (set_decl_abstract_flags): Update.
22131         (get_hard_reg_initial_val): Update.
22132         (has_hard_reg_initial_val): Update.
22133         (allocate_initial_values): Update.
22134         * resource.c (init_resource_info): Update.
22135         * config/alpha/alpha.c (NUM_ARGS): Update.
22136         (direct_return): Update.
22137         (alpha_va_start): Update.
22138         (alpha_sa_size): Update.
22139         (alpha_initial_elimination_offset): Update.
22140         (alpha_expand_prologue): Update.
22141         (alpha_start_function): Update.
22142         (alpha_expand_epilogue): Update.
22143         (unicosmk_initial_elimination_offset):
22144         * config/alpha/alpha.md (call expander): Update.
22145         * config/s390/s390.c (s390_register_info): Update.
22146         (s390_register_info): Update.
22147         (s390_frame_info): Update.
22148         (s390_initial_elimination_offset): Update.
22149         (s390_build_builtin_va_list): Update.
22150         (s390_va_start): Update.
22151         * config/spu/spu.c (direct_return): Update.
22152         (spu_expand_prologue): Update.
22153         (spu_initial_elimination_offset): Update.
22154         (spu_build_builtin_va_list): Update.
22155         (spu_va_start): Update.
22156         * config/sparc/sparc.c (sparc_init_modes): Update.
22157         (sparc_compute_frame_size): Update.
22158         (function_value): Update.
22159         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
22160         * config/i386/i386.md (return expander): Update.
22161         * config/i386/i386.c (ix86_va_start): Update.
22162         (ix86_can_use_return_insn_p): Update.
22163         (ix86_compute_frame_layout): Update.
22164         (ix86_expand_epilogue): Update.
22165         * config/sh/sh.c (output_stack_adjust): Update.
22166         (calc_live_regs): Update.
22167         (sh_expand_prologue): Update.
22168         (sh_builtin_saveregs): Update.
22169         (sh_va_start): Update.
22170         (initial_elimination_offset): Update.
22171         (sh_allocate_initial_value): Update.
22172         (sh_function_ok_for_sibcall): Update.
22173         (sh_get_pr_initial_val): Update.
22174         * config/sh/sh.md (return expander): Update.
22175         * config/avr/avr.c (frame_pointer_required_p): UPdate.
22176         * config/crx/crx.c (crx_compute_frame): UPdate.
22177         (crx_initial_elimination_offset): UPdate.
22178         * config/xtensa/xtensa.c (compute_frame_size): Update
22179         (xtensa_builtin_saveregs): Update.
22180         (xtensa_va_start): Update.
22181         (order_regs_for_local_alloc): Update.
22182         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
22183         (xstormy16_expand_builtin_va_start): Update.
22184         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
22185         * config/m68hc11/m68hc11.md (return expanders): Update.
22186         * config/m68hc11/m68hc11.c (expand_prologue): Update.
22187         (expand_epilogue): Update.
22188         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
22189         (cris_simple_epilogue): Update.
22190         (cris_expand_prologue): Update.
22191         (cris_expand_epilogue): Update.
22192         * config/iq2000/iq2000.c (iq2000_va_start): Update.
22193         (compute_frame_size): Update.
22194         * config/mt/mt.c (mt_compute_frame_size): Update.
22195         * config/mn10300/mn10300.c (expand_prologue): Update.
22196         (expand_epilogue): Update.
22197         (initial_offset): Update.
22198         (mn10300_builtin_saveregs):
22199         * config/mn10300/mn10300.md (return expander): Update.
22200         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
22201         (ia64_initial_elimination_offset): Update.
22202         (ia64_initial_elimination_offset): Update.
22203         (ia64_expand_prologue): Update.
22204         * config/m68k/m68k.md (return expander): Update.
22205         * config/rs6000/rs6000.c (rs6000_va_start): Update.
22206         (rs6000_stack_info): Update.
22207         * config/mcore/mcore.c (layout_mcore_frame): Update.
22208         (mcore_expand_prolog): Update.
22209         * config/arc/arc.c (arc_compute_frame_size): Update.
22210         * config/score/score3.c (score3_compute_frame_size): Update.
22211         * config/score/score7.c (score7_compute_frame_size): Update.
22212         * config/arm/arm.c (use_return_insn): Update.
22213         (thumb_find_work_register): Update.
22214         (arm_compute_save_reg_mask): Update.
22215         (arm_output_function_prologue): Update.
22216         (arm_output_epilogue): Update.
22217         (arm_size_return_regs): Update.
22218         (arm_get_frame_offsets): Update.
22219         (arm_expand_prologue): Update.
22220         (thumb_exit): Update.
22221         (thumb_unexpanded_epilogue): Update.
22222         (thumb1_output_function_prologue): Update.
22223         * config/pa/pa.md (return expander): Update.
22224         * config/pa/pa.c (compute_frame_size): Update.
22225         (hppa_builtin_saveregs): Update.
22226         * config/mips/mips.c (mips_va_start): Update.
22227         (mips16_build_function_stub): Update.
22228         (mips_compute_frame_info): Update.
22229         (mips_restore_gp): Update.
22230         (mips_output_function_prologue): Update.
22231         (mips_expand_prologue): Update.
22232         * config/v850/v850.c (compute_frame_size): Update.
22233         (expand_prologue): * config/mmix/mmix.c (along): update.
22234         (mmix_initial_elimination_offset): update.
22235         (mmix_reorg): update.
22236         (mmix_use_simple_return): update.
22237         (mmix_expand_prologue): update.
22238         (mmix_expand_epilogue): Update.
22239         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
22240         (emit_link_insn): Update.
22241
22242 2008-04-08  Anatoly Sokolov <aesok@post.ru>
22243
22244         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
22245         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
22246         instructions.
22247         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
22248         atmega103 device.
22249
22250 2008-04-07  Jan Hubicka  <jh@suse.cz>
22251
22252         * function.h (rtl): Rename to x_rtl.
22253         (crtl): New define.
22254         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
22255         frame_offset, stack_check_probe_note, arg_pointer_save_area,
22256         used_temp_slots avail_temp_slots, temp_slot_level,
22257         nonlocal_goto_handler_labels): Update accesstors.
22258         (rtl): New global variable.
22259         (struct function): Move some fileds to rtl_data.
22260         (get_arg_pointer_save_area): Update prototype.
22261         * builtins.c (expand_builtin_setjmp_receiver): Update call of
22262         get_arg_pointer_save_area.
22263         * expr.c (init_expr): Update
22264         * function.c (get_frame_size): Update
22265         (assign_stack_local): Update
22266         (expand_function_end): Update.
22267         (get_art_pointer_save_area): Update
22268         * function.h
22269         * emit-rtl.c (rtl): Declare.
22270         (regno_reg_rtx): Declare.
22271         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
22272         Update.
22273         (gen_reg_rtx): Update.
22274         * varasm.c (n_deferred_constatns): Update accestor.
22275         (init_varasm_status): Do not allocate varasm_status.
22276         (force_const_mem, get_pool_size, output_constant_pool): Update.
22277         * stmt.c (force_label_rtx): Do not use x_ prefixes.
22278         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
22279         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
22280         * sparc/sparc.h (INIT_EXPANDERS): Update.
22281         * ia64/ia64.h (INIT_EXPANDERS): Update.
22282
22283 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
22284
22285         * reload.c (push_secondary_reload): Add missing break to for loop.
22286
22287 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
22288
22289         PR middle-end/PR28690
22290         * rtlanal.c: Update copyright years.
22291         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
22292         as REG_POINTER and MEM_POINTER operands.
22293         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
22294         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
22295         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
22296         * gcse.c: Update copyright years.
22297         (pre_delete): Call gen_reg_rtx_and_attrs.
22298         (hoist_code): Likewise.
22299         (build_store_vectors): Likewise.
22300         (delete_store): Likewise.
22301         * loop-invariant.c (move_invariant_reg): Likewise.
22302         Update copyright years.
22303
22304 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
22305
22306         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
22307         control string instead of quoted.
22308
22309 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
22310
22311         * doc/rtl.texi: Rewrite of subreg section.
22312
22313 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
22314
22315         PR/35842
22316         * config/i386/i386.c (legitimize_pic_address): Add treating
22317         of dllimport SYM_REF's.
22318         (legitimize_dllimport_symbol): Add prototype.
22319
22320 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
22321
22322         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
22323         reference in constructor with non self-referential type.
22324
22325 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
22326
22327         Removal of Return with Depressed Stack Pointer support
22328         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
22329         (ECF_SP_DEPRESSED): Likewise.
22330         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
22331         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
22332         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
22333         (expand_call): Do not test ECF_SP_DEPRESSED.
22334         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
22335         * function.c (keep_stack_depressed): Delete.
22336         (handle_epilogue_set): Likewise.
22337         (update_epilogue_consts): Likewise.
22338         (emit_equiv_load): Likewise.
22339         (thread_prologue_and_epilogue_insns): Remove support for Return with
22340         Depressed Stack Pointer.
22341         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
22342
22343 2008-04-06  Richard Guenther  <rguenther@suse.de>
22344
22345         PR tree-optimization/35400
22346         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
22347         information from SSA_NAMEs.
22348
22349 2008-04-06  Anatoly Sokolov <aesok@post.ru>
22350
22351         * config/avr/avr.h (avr_mega_p): Remove declaration.
22352         (AVR_MEGA): Remove macro.
22353         * config/avr/avr.c (avr_mega_p): Remove variable.
22354         (avr_override_options): Remove inicializion of avr_mega_p.
22355         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
22356         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
22357         (avr_jump_mode): (Ditto.).
22358         (avr_output_progmem_section_asm_op): (Ditto.).
22359         (avr_asm_init_sections): (Ditto.).
22360         (avr_asm_init_sections): (Ditto.).
22361         (avr_rtx_costs): (Ditto.).
22362         * config/avr/avr.md: (Ditto.).
22363         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
22364         '__AVR_MEGA__'.
22365
22366 2008-04-06  Richard Guenther  <rguenther@suse.de>
22367
22368         PR tree-optimization/35842
22369         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
22370         is_gimple_invariant_address.
22371
22372 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
22373
22374         * gcc.c (default_compilers): Sync Fortran extensions list with
22375         that in fortran/lang-specs.h.
22376         * doc/invoke.texi: Likewise.
22377         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
22378         * dwarf2out.c (gen_compile_unit_die): Likewise.
22379
22380 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
22381
22382         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
22383
22384 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
22385
22386         PR target/12329
22387         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
22388         attribute is used for nested functions.
22389
22390 2008-04-05  Jan Hubicka  <jh@suse.cz>
22391
22392         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
22393
22394         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
22395         letter argument.
22396         (dump_files): Update.
22397         (enable_rtl_dump_file): Do not accept letter argument.
22398         * tree-pass.h (dump_file_info): Remove letter argument.
22399         * toplev.c (decode_d_option): Update -da handling.
22400         * toplev.h (enable_rtl_dump_file): Update prototype.
22401         * passes.c (register_one_dump_file): Do not accept IPA argument; work
22402         it out based on pass type.
22403         (register_dump_files_1): Likewise.
22404         (init_optimization_passes): Update register_one_dump_file calls.
22405         (execute_one_pass): Sanity check that IPA passes are called at IPA
22406         level and RTL passes at RTL level.
22407         (execute_pass_list): IPA pass can not be after or subpass of
22408         GIMPLE/RTL pass.
22409         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
22410         disallov RTL subpasses of IPA subpasses.
22411
22412 2008-04-05  Ben Elliston  <bje@au.ibm.com>
22413
22414         * tree-cfg.c (need_fake_edge_p): Return false for calls to
22415         builtins that return exactly once and do not throw. Cache call to
22416         call_expr_flags.
22417
22418 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
22419
22420         PR rtl-optimization/34916
22421         PR middle-end/35519
22422         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
22423         between instruction pairs.
22424
22425 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
22426
22427         * doc/invoke.texi: Document -mbitops for SH.
22428         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
22429         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
22430         * config/sh/sh.c (print_operand): Add %t operand code.
22431         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
22432         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
22433         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
22434         (extendqihi2): Likewise.
22435         (movqi_i): Likewise.
22436         (insv): Use bset, bclr and bst instructions for SH2A if possible.
22437         (extv): Use bld instruction for SH2A if possible.
22438         (extzv): Likewise.
22439         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
22440         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
22441         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
22442         (bset.b, bclr.b): Define peepholes.
22443         * config/sh/sh.opt (mbitops): New option.
22444
22445 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
22446
22447         PR target/35620
22448         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
22449         and view convert expression.
22450
22451 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
22452
22453         PR target/35364
22454         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
22455
22456 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
22457
22458         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
22459
22460         * config/i386/cpuid.h (bit_AES): New.
22461         (bit_PCLMUL): Likewise.
22462
22463         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
22464         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
22465         SSE2 if AES or PCLMUL is enabled.
22466         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
22467         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
22468         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
22469         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
22470         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
22471         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
22472         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
22473         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
22474         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
22475         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
22476         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
22477         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
22478         __builtin_ia32_aeskeygenassist128 and
22479         __builtin_ia32_pclmulqdq128.
22480         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
22481         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
22482         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
22483
22484         * config/i386/i386.h (TARGET_AES): New.
22485         (TARGET_PCLMUL): Likewise.
22486         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
22487
22488         * config/i386/i386.md (UNSPEC_AESENC): New.
22489         (UNSPEC_AESENCLAST): Likewise.
22490         (UNSPEC_AESDEC): Likewise.
22491         (UNSPEC_AESDECLAST): Likewise.
22492         (UNSPEC_AESIMC): Likewise.
22493         (UNSPEC_AESKEYGENASSIST): Likewise.
22494         (UNSPEC_PCLMUL): Likewise.
22495
22496         * config/i386/i386.opt (maes): New.
22497         (mpclmul): Likewise.
22498
22499         * config/i386/sse.md (aesenc): New pattern.
22500         (aesenclast): Likewise.
22501         (aesdec): Likewise.
22502         (aesdeclast): Likewise.
22503         (aesimc): Likewise.
22504         (aeskeygenassist): Likewise.
22505         (pclmulqdq): Likewise.
22506
22507         * config/i386/wmmintrin.h: New.
22508
22509         * doc/extend.texi: Document AES and PCLMUL built-in function.
22510
22511         * doc/invoke.texi: Document -maes and -mpclmul.
22512
22513 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
22514
22515         * function.c (free_after_parsing): Replace with
22516         cxx_push_function_context from C++ front-end.
22517         (allocate_struct_function): Don't call langhook.
22518         * langhooks.h (struct lang_hooks_for_functions): Delete.
22519         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
22520         member "function".
22521         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
22522         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
22523         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
22524         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
22525         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
22526         remove LANG_HOOKS_FUNCTION_INITIALIZER.
22527         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
22528
22529         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
22530         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
22531
22532 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
22533
22534         PR c/35440
22535         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
22536         for all types.
22537
22538 2008-04-04  Richard Guenther  <rguenther@suse.de>
22539
22540         PR middle-end/35823
22541         * fold-const.c (optimize_minmax_comparison): Use the correct
22542         type for the constant in the simplified comparison.
22543
22544 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
22545
22546         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
22547         Pass L2 size as "--param l2-cache-size" to the compiler.
22548         (decode_l2_cache): New function to decode L2 cache parameters using
22549         0x8000006 extended cpuid function.
22550         (detect_caches_amd): Determine parameters of L2 cache using
22551         decode_l2_caches function.
22552         (decode_caches_intel): Decode L2 cache parameters.
22553         (detect_caches_intel): Determine L2 cache parameters using
22554         decode_caches_intel and decode_l2_caches functions.
22555
22556 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
22557
22558         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
22559         secondary input reload for subword loads from the constant pool.
22560
22561 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
22562
22563         PR target/35713
22564         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
22565           constants of the appropriate size for runtime calculations.
22566
22567         PR c/35712
22568         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
22569           decimal-float literal constant zero.
22570
22571 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
22572
22573         PR c/35738
22574         * c-parser.c (c_parser_omp_atomic): Call
22575         default_function_array_conversion on the RHS.
22576
22577         PR middle-end/35818
22578         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
22579         call is_variable_sized if decl has incomplete type.
22580
22581 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
22582
22583         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
22584
22585 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
22586
22587         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
22588         iterators.
22589         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
22590         (sgt<u>): Merge sgt and sgtu into new expander.
22591         (sgt, sgtu): Remove expanders.
22592         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
22593         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
22594         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
22595         *sgtu_<mode>_mips16 into new pattern.
22596         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
22597         (sge<u>): Merge sge and sgeu into new expander.
22598         (sge, sgeu): Remove expanders.
22599         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
22600         new pattern.
22601         (*sge_<mode>, second *sge_<mode>): Remove patterns.
22602         (slt<u>): Merge slt and sltu into new expander.
22603         (slt, sltu): Remove expanders.
22604         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
22605         (*slt_<mode>, *sltu_<mode>): Remove patterns.
22606         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
22607         *sltu_<mode>_mips16 into new pattern.
22608         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
22609         (sle<u>): Merge sle and sleu into new expander.
22610         (sle, sleu): Remove expanders.
22611         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
22612         (*sle_<mode>, *sleu_<mode>): Remove patterns.
22613         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
22614         *sleu_<mode>_mips16 into new pattern.
22615         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
22616
22617 2008-04-03  Jan Hubicka  <jh@suse.cz>
22618
22619         PR tree-optimization/35795
22620         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
22621         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
22622         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
22623         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
22624         * score/score3.c (score3_output_mi_thunk): Likewise.
22625         * score/score7.c (score7_output_mi_thunk): Likewise.
22626         * mips/mips.c (mips_output_mi_thunk): Likewise.
22627
22628 2008-04-03  Richard Guenther  <rguenther@suse.de>
22629
22630         * tree-vrp.c (extract_range_from_unary_expr): Handle all
22631         conversions.  Simplify code.
22632
22633 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
22634
22635         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
22636
22637 2008-04-03  Tom Tromey  <tromey@redhat.com>
22638             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22639
22640         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
22641         * config/bfin/t-bfin-linux (generated_files): Add
22642         linux-sysroot-suffix.h.
22643         * doc/install.texi (Prerequisites): Require make 3.80.
22644         * doc/sourcebuild.texi (Front End Directory): Document new
22645         variable.
22646         * Makefile.in (generated_files): New variable.
22647         (ALL_HOST_OBJS): New variable.
22648         ($(ALL_HOST_OBJS)): New target.
22649
22650 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
22651
22652         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
22653         (remap_block): Call id->transform_lang_insert_block instead
22654         of langhook.
22655         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
22656         Set id.transform_lang_insert_block to NULL.
22657         (clone_body): Move to cp/optimize.c
22658         * tree-inline.h (struct copy_body_data): Change
22659         transform_lang_insert_block to function pointer.
22660         (copy_generic_body, copy_decl_no_change): Export.
22661         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
22662         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
22663         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
22664
22665         * c-tree.h (insert_block): Kill.
22666         * c-decl.c (insert_block): Kill.
22667
22668 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
22669
22670         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
22671         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
22672         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
22673         argument.
22674         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
22675         argument, call {push,pop}_function_context from here.
22676         * c-parser.c: Use c_{push,pop}_function_context.
22677
22678         * function.c (push_function_context_to): Move meat ...
22679         (push_function_context): ... here.  Simplify.
22680         * function.c (pop_function_context_from): Move meat ...
22681         (pop_function_context): ... here.  Simplify.
22682         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
22683         leave_nested).
22684         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
22685         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
22686         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
22687         * tree.h (push_function_context_to, pop_function_context_from): Remove.
22688
22689 2008-04-03  Ben Elliston  <bje@au.ibm.com>
22690
22691         * expmed.c (extract_force_align_mem_bit_field): Remove.
22692
22693 2008-04-03  Richard Guenther  <rguenther@suse.de>
22694
22695         PR middle-end/35800
22696         * expr.h (try_casesi): Adjust prototype.
22697         * expr.c (try_casesi): Take fallback label as extra parameter.
22698         Use that for gen_casesi if default_label is NULL.
22699         * stmt.c (expand_case): Pass fallback label to try_casesi,
22700         make sure to fill gaps with a fallback label if default_label
22701         is not present.
22702
22703 2008-04-03  Dominique d'Humières <dominiq@lps.ens.fr>
22704
22705         PR target/35801
22706         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
22707
22708 2008-04-03  Ben Elliston  <bje@au.ibm.com>
22709
22710         * expmed.c (extract_split_bit_field): Remove if (0) code.
22711         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
22712         (do_ds_constraint): Likewise.
22713
22714 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
22715
22716         * doc/cppopts.texi (-dU): Document.
22717         * c-common.h (flag_dump_macros): Update comment.
22718         * c-opts.c (handle_OPT_d): Handle -dU.
22719         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
22720         dump_queued_macros, cb_used_define, cb_used_undef): New.
22721         (init_pp_output): Handle -dU.
22722         (cb_line_change): Call dump_queued_macros.
22723         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
22724
22725 2008-04-02  Anatoly Sokolov <aesok@post.ru>
22726
22727         * config/avr/predicates.md (io_address_operand): New predicate.
22728         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
22729         * config/avr/avr.c (avr_io_address_p): Remove function.
22730         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
22731         'avr_io_address_p' function.
22732         (out_movhi_r_mr): (Ditto.).
22733         (out_movqi_mr_r): (Ditto.).
22734         (out_movhi_mr_r): (Ditto.).
22735         (avr_address_cost): (Ditto.).
22736
22737 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
22738
22739         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
22740         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
22741         in 32bit mode when XMM registers are available to avoid store
22742         forwarding stalls.
22743         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
22744         corresponding post-reload splitters.
22745
22746 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
22747
22748         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
22749         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
22750         __builtin_ia32_roundss.
22751         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
22752         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
22753         __builtin_ia32_roundss.
22754         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
22755         IX86_BUILTIN_SHUFPD here.
22756
22757 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
22758
22759         * config/i386/i386.md (plogic): New.
22760         (plogicprefix): Likewise.
22761
22762         * config/i386/mmx.md (mmx_<code><mode>3): New.
22763         (mmx_and<mode>3): Removed.
22764         (mmx_ior<mode>3): Likewise.
22765         (mmx_xor<mode>3): Likewise.
22766
22767         * config/i386/sse.md (<code><mode>3): New.
22768         (*<code><mode>3): Likewise.
22769         (*<code><mode>3): Likewise.
22770         (<code><mode>3): Likewise.
22771         (*sse_<code><mode>3): Likewise.
22772         (*sse2_<code><mode>3): Likewise.
22773         (<code>tf3): Likewise.
22774         (*<code>tf3): Likewise.
22775         (and<mode>3): Likewise.
22776         (*and<mode>3): Likewise.
22777         (ior<mode>3): Removed.
22778         (*ior<mode>3): Likewise.
22779         (xor<mode>3): Likewise.
22780         (*xor<mode>3): Likewise.
22781         (*and<mode>3): Likewise.
22782         (*ior<mode>3): Likewise.
22783         (*xor<mode>3): Likewise.
22784         (and<mode>3): Likewise.
22785         (*sse_and<mode>3): Likewise.
22786         (*sse2_and<mode>3): Likewise.
22787         (andtf3): Likewise.
22788         (*andtf3): Likewise.
22789         (ior<mode>3): Likewise.
22790         (*sse_ior<mode>3): Likewise.
22791         (*sse2_ior<mode>3): Likewise.
22792         (iortf3): Likewise.
22793         (*iortf3): Likewise.
22794         (xor<mode>3): Likewise.
22795         (*sse_xor<mode>3): Likewise.
22796         (*sse2_xor<mode>3): Likewise.
22797         (xortf3): Likewise.
22798         (*xortf3): Likewise.
22799
22800 2008-04-02  Richard Guenther  <rguenther@suse.de>
22801
22802         PR tree-optimization/14495
22803         PR tree-optimization/34793
22804         * tree-vrp.c (struct switch_update): New structure.
22805         (to_remove_edges, to_update_switch_stmts): New VECs.
22806         (simplify_switch_using_ranges): New function.  Remove not taken
22807         case labels and edges.
22808         (simplify_stmt_using_ranges): Call it.
22809         (identify_jump_threads): Mark edges we have queued for removal
22810         so we don't thread them.
22811         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
22812         case label vector.
22813         * tree-cfg.c (group_case_labels): Deal with missing default label.
22814         (tree_verify_flow_info): Allow missing default label.
22815         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
22816         (emit_case_nodes): Likewise.
22817         (expand_case): Do not rely on the default label to be present.
22818         * expr.c (try_casesi): Deal with NULL default_label.
22819         (do_tablejump): Likewise.
22820
22821 2008-04-02  Richard Guenther  <rguenther@suse.de>
22822
22823         PR tree-optimization/14495
22824         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
22825         SWITCH_EXPR here ...
22826         (vrp_visit_switch_stmt): ... but here (new function).
22827         (find_case_label_index): New helper function.
22828         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
22829
22830 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
22831
22832         * fwprop.c: Fix ISO-C99ism.
22833
22834 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
22835
22836         PR bootstrap/35752
22837         * Makefile.in (objdir): Set it here.
22838         * configure.ac: Not here.  Find dynamic linker characteristics.
22839         * exec-tool.in: Use them.
22840         * aclocal.m4: Regenerate.
22841         * configure: Regenerate.
22842
22843 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
22844
22845         * expr.c (expand_var): Delete it.
22846         * expr.h (expand_var): Delete prototype.
22847         * function.c (expand_function_start): Use expand_decl instead.
22848         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
22849         langhook.
22850
22851 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
22852
22853         PR rtl-optimization/35542
22854         * fwprop.c (forward_propagate_and_simplify): Replace
22855         loc_reg_mentioned_in_p with reg_mentioned_p.
22856
22857 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
22858
22859         PR rtl-optimization/35281
22860         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
22861         (propagate_rtx_1): Handle PR_HANDLE_MEM.
22862         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
22863         (varying_mem_p): Move above propagate_rtx.
22864         (all_uses_available_at): Do not check MEMs.
22865
22866 2008-04-02  Rafael Espíndola  <espindola@google.com>
22867
22868         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
22869         (register_edge_assert_for_2): Split the cond argument.
22870         (register_edge_assert_for_1): Adjust for the change in
22871         register_edge_assert_for_2.
22872         (register_edge_assert_for): Split the cond argument.
22873         (find_switch_asserts): Adjust for the change in
22874         register_edge_assert_for.
22875
22876 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
22877
22878         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
22879         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
22880         offsets for 64-bit mingw.
22881         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
22882         abi for x86_64-pc-mingw.
22883
22884 2008-04-02  Richard Guenther  <rguenther@suse.de>
22885
22886         * tree-vrp.c (extract_range_from_assert): Make sure to not
22887         produce range min/max with TREE_OVERFOW set.
22888         If merging a anti-range and a range keep the anti-range if
22889         the range covers all values of the type.
22890         (register_edge_assert_for_2): Only allow sign-changing
22891         conversions in detecting canonical range checks.  Also
22892         register an assert for the unsigned name if useful.
22893
22894         PR tree-optimization/35787
22895         * tree-vrp.c (vrp_val_max): New function.
22896         (vrp_val_min): Likewise.
22897         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
22898         (vrp_val_is_min): Likewise.
22899         (supports_overflow_infinity): Use vrp_val_{min,max}.
22900         (negative_overflow_infinity): Likewise.
22901         (positive_overflow_infinity): Likewise.
22902         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
22903         (is_positive_overflow_infinity): Likewise.
22904         (is_overflow_infinity): Likewise.
22905         (avoid_overflow_infinity): Use vrp_val_{min,max} and
22906         vrp_val_is_{min,max}.
22907         (set_and_canonicalize_value_range): Canonicalize anti-ranges
22908         to ranges if possible.  Avoid empty ranges.
22909
22910 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22911
22912         PR middle-end/35705
22913         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
22914         the expression is a function address.
22915
22916 2008-04-01  George Helffrich  <george@gcc.gnu.org>
22917
22918         PR fortran/35154, fortran/23057
22919         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
22920         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
22921         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
22922         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
22923         in common.
22924         (dbxout_syms): Check for COMMON-based symbol and wrap in
22925         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
22926         in bracket for efficiency.
22927
22928         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
22929         using DW_TAG_common_block + member offset.
22930         (add_pubname_string): New function.
22931         (dw_expand_expr): New function to find block name and offset for
22932         COMMON var.
22933         (common_check): New function to check whether symbol in Fortran COMMON.
22934         (gen_variable_die): If COMMON, use DW_TAG_common_block.
22935
22936 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
22937
22938         PR c/35436
22939         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
22940
22941 2008-04-02  Ben Elliston  <bje@au.ibm.com>
22942
22943         * config/v850/v850.md (casesi): Remove if (0) code.
22944         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
22945         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
22946
22947 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
22948
22949         * config/i386/i386.md (rex64suffix): New mode attribute.
22950         (floathi<mode>2): Disable expander for SSE math.
22951         (*floathi<mode>2_1): New insn insn_and_split pattern.
22952         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
22953         corresponding post-reload splitters.
22954         (*floathi<mode>2_i387): New macroized insn pattern.
22955         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
22956         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
22957         insn_and_split pattern.
22958         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
22959         New macroized instruction patterns and corresponding post-reload
22960         splitters.
22961         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
22962         and corresponding post-reload splitters.
22963         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
22964         New macroized instruction patterns.
22965         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
22966         macroized instruction patterns and corresponding post-reload splitters.
22967         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
22968         corresponding post-reload splitters.
22969         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
22970         New macroized instruction patterns.
22971         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
22972         corresponding post-reload splitters.
22973         (*floatsi<mode>2_i387): New macroized instruction patterns.
22974
22975 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
22976
22977         * config/i386/i386.md (smaxmin): New.
22978         (umaxmin): Likewise.
22979         (maxminiprefix): Likewise.
22980         (maxminfprefix): Likewise.
22981         (<code><mode>3): Likewise.
22982         (smin<mode>3): Removed.
22983         (smax<mode>3): Likewise.
22984
22985         * config/i386/mmx.md (mmx_<code>v2sf3): New.
22986         (mmx_<code>v4hi3): Likewise.
22987         (mmx_<code>v8qi3): Likewise.
22988         (mmx_smaxv2sf3): Removed.
22989         (mmx_sminv2sf3): Likewise.
22990         (mmx_umaxv8qi3): Likewise.
22991         (mmx_smaxv4hi3): Likewise.
22992         (mmx_uminv8qi3): Likewise.
22993         (mmx_sminv4hi3): Likewise.
22994
22995         * config/i386/sse.md (<addsub><mode>3): New.
22996         (*<addsub><mode>3): Likewise.
22997         (<sse>_vm<addsub><mode>3): Likewise.
22998         (<maxmin><mode>3): Likewise.
22999         (*<maxmin><mode>3_finite): Likewise.
23000         (*<maxmin><mode>3): Likewise.
23001         (<sse>_vm<maxmin><mode>3): Likewise.
23002         (sse3_h<addsub>v4sf3): Likewise.
23003         (sse3_h<addsub>v2df3): Likewise.
23004         (<maxmin>v16qi3): Likewise.
23005         (*<maxmin>v16qi3): Likewise.
23006         (<maxmin>v8hi3): Likewise.
23007         (*<maxmin>v8hi3): Likewise.
23008         (*sse4_1_<maxmin><mode>3): Likewise.
23009         (*sse4_1_<maxmin><mode>3): Likewise.
23010         (add<mode>3): Removed.
23011         (*add<mode>3): Likewise.
23012         (<sse>_vmadd<mode>3): Likewise.
23013         (sub<mode>3): Likewise.
23014         (*sub<mode>3): Likewise.
23015         (<sse>_vmsub<mode>3): Likewise.
23016         (smin<mode>3): Likewise.
23017         (*smin<mode>3_finite): Likewise.
23018         (*smin<mode>3): Likewise.
23019         (<sse>_vmsmin<mode>3): Likewise.
23020         (smax<mode>3): Likewise.
23021         (*smax<mode>3_finite): Likewise.
23022         (*smax<mode>3): Likewise.
23023         (<sse>_vmsmax<mode>3): Likewise.
23024         (sse3_haddv4sf3): Likewise.
23025         (sse3_haddv2df3): Likewise.
23026         (sse3_hsubv4sf3): Likewise.
23027         (sse3_hsubv2df3): Likewise.
23028         (umaxv16qi3): Likewise.
23029         (*umaxv16qi3): Likewise.
23030         (smaxv8hi3): Likewise.
23031         (*smaxv8hi3): Likewise.
23032         (*sse4_1_smax<mode>3): Likewise.
23033         (*sse4_1_umax<mode>3): Likewise.
23034         (uminv16qi3): Likewise.
23035         (*uminv16qi3): Likewise.
23036         (sminv8hi3): Likewise.
23037         (*sminv8hi3): Likewise.
23038         (*sse4_1_smin<mode>3): Likewise.
23039         (*sse4_1_umin<mode>3): Likewise.
23040
23041 2008-04-01  Rafael Espíndola  <espindola@google.com>
23042
23043         * tree-cfg.c (verify_expr): remove in_phi.
23044         (verify_stmt): Don't call walk_tree with verify_expr. Use
23045         is_gimple_min_invariant instead of is_gimple_val.
23046
23047 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
23048
23049         * doc/include/gpl_v3.texi: Update for manpage generation.
23050         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
23051         gpl.texi.
23052         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
23053         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
23054         gpl_v3.texi instead of gpl.texi.
23055         (gpl.pod): New.
23056
23057 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
23058
23059         PR pch/13675
23060         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
23061
23062 2008-04-01  Rafael Espíndola  <espindola@google.com>
23063
23064         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
23065         (extract_code_and_val_from_cond): Use
23066         extract_code_and_val_from_cond_with_ops.
23067
23068 2008-04-01  Jan Hubicka  <jh@suse.cz>
23069
23070         * function.c (free_after_compilation): Free epilogue_delay_list.
23071         (prepare_function_start): Assert that previous compilation was freed.
23072
23073 2008-04-01  Jan Hubicka  <jh@suse.cz>
23074             Jim Wilson  <wilson@tuliptree.org>
23075             Andreas Tobler <andreast@gcc.gnu.org>
23076
23077         PR middle-end/35781
23078         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
23079         rtl.emit instead cfun->emit.
23080         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
23081         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
23082
23083 2008-04-01  Ben Elliston  <bje@au.ibm.com>
23084
23085         * doc/c-tree.texi (Function Basics): Fix grammatical error.
23086
23087 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
23088
23089         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
23090         New options
23091         (fprofile-use): Add var flag_profile_use
23092         * coverage.c (coverage_begin_output): Do not open a gcno file for
23093         output only if -ftest-coverage is set.
23094         Do not add getpwd() to gcda file path.
23095         (build_gcov_info): Check the new flag
23096         flag_profile_datafile_relative_path.
23097         (coverage_init): Use profile_data_prefix.
23098         Read profile counter only if flag_profile_use is set.
23099         * opts.c (common_handle_option): New option fprofile-use=,
23100         fprofile-dir=, fprofile-generate=.
23101         * toplev.c (profile_data_prefix): New variable definition.
23102         * toplev.h (profile_data_prefix): New declaration.
23103         * doc/invoke.tex (Option Summary, Optimization Options):
23104         Add new options.
23105
23106 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
23107
23108         * varasm.c (output_constant_pool_1): In LABEL_REF check,
23109         use tmp consistently.
23110
23111         PR target/35695
23112         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
23113         * config/ia64/ia64.c (rtx_needs_barrier): Handle
23114         UNSPEC_FR_RECIP_APPROX_RES.
23115         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
23116
23117 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
23118
23119         PR c/35750
23120         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
23121
23122 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
23123
23124         PR middle-end/30186
23125         * fold-const.c (fold_indirect_ref_1): Support accessing non first
23126         element of the vector via a pointer.
23127
23128 2008-03-31  Ian Lance Taylor  <iant@google.com>
23129
23130         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
23131
23132 2008-03-31  Jan Hubicka  <jh@suse.cz>
23133
23134         * builtins.c (expand_builtin_setjmp_receiver): Update call of
23135         get_arg_pointer_save_area.
23136         * expr.c (init_expr): Just clear out rtl.expr.
23137         * function.c (free_after_compilation): Clear out whole RTL structure.
23138         (get_func_frame_size): Merge into ...
23139         (get_frame_size): ... this one.
23140         (assign_stack_local_1): Merge into ...
23141         (assign_stack_local): ... this one.
23142         (expand_function_end): Update call of get_arg_pointer_save_area.
23143         (get_art_pointer_save_area): Remove cfun argument.
23144         * function.h (emit_status): regno_pointer_align does not need length
23145         attribute. Move x_regno_reg_rtx to ...
23146         (regno_reg_rtx): ... new global array.
23147         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
23148         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
23149         apply_args_value, forced_labels, stack_pointer_delta):
23150         Update accestors.
23151         (struct varasm_status): Move here from varasm.c
23152         (struct rtl_data): New. Move here some fields from struct function.
23153         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
23154         frame_offset, stack_check_probe_note, arg_pointer_save_area,
23155         used_temp_slots avail_temp_slots, temp_slot_level,
23156         nonlocal_goto_handler_labels): Update accesstors.
23157         (rtl): New global variable.
23158         (struct function): Move some fileds to rtl_data.
23159         (get_arg_pointer_save_area): Update prototype.
23160         * emit-rtl.c (rtl): Declare.
23161         (regno_reg_rtx): Declare.
23162         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
23163         Update.
23164         (gen_reg_rtx): Update.
23165         (init_virtual_regs): Do not tate emit_status argument.
23166         (init_emit): Do not allocate emit.
23167         * varasm.c (varasm_statuc): Move to function.h.
23168         (n_deferred_constatns): Update accestor.
23169         (init_varasm_status): Do not allocate varasm_status.
23170         (force_const_mem, get_pool_size, output_constant_pool): Update.
23171         * stmt.c (force_label_rtx): Do not use x_ prefixes.
23172         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
23173
23174 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
23175
23176         PR rtl-optimization/35729
23177         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
23178         references.
23179
23180 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
23181
23182         PR target/32000
23183         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
23184         load/store if memory is unaligned.
23185         (*movti_rex64): Likewise.
23186
23187         * config/i386/predicates.md (misaligned_operand): New.
23188
23189 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
23190
23191         PR tree-opt/35431
23192         * tree-ssa-phiopt.c (conditional_replacement): Return early for
23193         complex types.
23194
23195 2008-03-31  Jan Beulich  <jbeulich@novell.com>
23196
23197         * config/ia64/constraints.md: Add 'j' constraint.
23198         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
23199         (movdi_internal): Likewise.
23200
23201 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
23202
23203         PR c/35748
23204         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
23205
23206 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
23207
23208         PR target/35757
23209         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
23210         proper error message for the third argument on blendpd and
23211         blendps.
23212
23213         * config/i386/sse.md (blendbits): New.
23214         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
23215
23216 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
23217
23218         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
23219
23220 2008-03-30  Richard Guenther  <rguenther@suse.de>
23221
23222         PR middle-end/31023
23223         * fold-const.c (fold_sign_changed_comparison): Do leave
23224         conversions to base-types alone.
23225
23226 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
23227
23228         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
23229         the link register if one altivec register is be saved.
23230
23231 2008-03-30  Ben Elliston  <bje@au.ibm.com>
23232
23233         * final.c (final_scan_insn): Remove if (0) code.
23234
23235 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
23236
23237         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
23238
23239 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
23240
23241         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
23242         of V4SFmode to ix86_binary_operator_ok.
23243
23244 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
23245
23246         * config/i386/i386.c (override_options): Initialize
23247         ix86_veclib_handler to ix86_veclibabi_svml when
23248         -mveclibabi=svml is used.
23249         (ix86_veclibabi_svml): New function for SVML ABI style
23250         vectorization support.
23251         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
23252
23253 2008-03-28  Rafael Espíndola  <espindola@google.com>
23254
23255         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
23256         (tree_binary_nonnegative_warnv_p): Make it public.
23257         (tree_single_nonnegative_warnv_p): Make it public.
23258         (tree_invalid_nonnegative_warnv_p): Make it public.
23259         (tree_unary_nonzero_warnv_p): Make it public.
23260         (tree_binary_nonzero_warnv_p): Make it public
23261         (tree_single_nonzero_warnv_p): Make it public.
23262         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
23263         (extract_range_from_binary_expr): Split the expr argument.
23264         (extract_range_from_unary_expr): Split the expr argument.
23265         (extract_range_from_comparison): Split the expr argument.
23266         (extract_range_from_expr): Use the new aux functions.
23267         (vrp_evaluate_conditional_warnv): Use
23268         vrp_evaluate_conditional_warnv_with_ops.
23269         * tree.h (tree_unary_nonzero_warnv_p): Declare.
23270         (tree_binary_nonzero_warnv_p): Declare.
23271         (tree_single_nonzero_warnv_p): Declare.
23272         (tree_expr_nonzero_warnv_p): Declare.
23273         (tree_unary_nonnegative_warnv_p): Declare.
23274         (tree_binary_nonnegative_warnv_p): Declare.
23275         (tree_single_nonnegative_warnv_p): Declare.
23276         (tree_invalid_nonnegative_warnv_p): Declare.
23277
23278 2008-03-28  Richard Guenther  <rguenther@suse.de>
23279
23280         PR tree-optimization/30317
23281         PR tree-optimization/30911
23282         PR tree-optimization/34793
23283         * tree-vrp.c (set_and_canonicalize_value_range): New function.
23284         (struct assert_locus_d): New member EXPR.
23285         (register_new_assert_for): Add EXPR parameter to support
23286         ASSERT_EXPR <name, expr OP limit>.
23287         (register_edge_assert_for_1): Adjust callers.
23288         (find_assert_locations): Likewise.
23289         (process_assert_insertions_for): Build condition from expression.
23290         (extract_range_from_assert): Handle ASSERT_EXPRs
23291         of the form ASSERT_EXPR <name, expr OP limit>.
23292         (register_edge_assert_for_2): New helper registering
23293         asserts for comparisons.  Recognize range tests of the form
23294         (unsigned)i - CST1 OP CST2.
23295         (register_edge_assert_for_1): Use it.
23296         (register_edge_assert_for): Likewise.
23297         (needs_overflow_infinity): Integer sub-types
23298         do not need overflow infinities.
23299         (vrp_val_is_max): The extreme values of integer sub-types
23300         are those of the base type.
23301         (vrp_val_is_min): Likewise.
23302         * tree.def (ASSERT_EXPR): Document extra allowed conditional
23303         expressions.
23304
23305 2008-03-28  Nick Clifton  <nickc@redhat.com>
23306
23307         PR target/31110
23308         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
23309         Return GENERAL_REGS for stack adjustment reloads.
23310
23311 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
23312
23313         PR target/31334
23314         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
23315         const_vector when all the vectors are constant.
23316
23317 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
23318
23319         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
23320         comparisons.
23321         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
23322         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
23323         (scc_sf): New.
23324         (s<code>_sf): Use new scc_sf attribute for opcode names.
23325
23326 2008-03-27  Tom Tromey  <tromey@redhat.com>
23327
23328         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
23329         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
23330         config/spu/t-spu-elf, config/i386/t-interix,
23331         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
23332         config/i386/x-darwin, config/i386/x-mingw32,
23333         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
23334         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
23335         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
23336         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
23337         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
23338         config/rs6000/x-darwin, config/rs6000/t-rs6000,
23339         config/score/t-score-elf, config/arm/t-strongarm-pe,
23340         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
23341         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
23342         Revert automatic dependency patch.
23343
23344 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
23345
23346         PR target/35657
23347         * config/i386/i386.c (ix86_function_arg_boundary): Align
23348         decimal floating point to its natural boundary.
23349
23350 2008-03-27  Richard Guenther  <rguenther@suse.de>
23351
23352         PR middle-end/35716
23353         * fold-const.c (fold_comparison): Restrict distinct decl
23354         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
23355         solely rely on operand_equal_p.
23356
23357 2008-03-27  Richard Guenther  <rguenther@suse.de>
23358
23359         PR c/32511
23360         * c-common.c (handle_weak_attribute): Reject combination of
23361         weak and inline.
23362
23363 2008-03-27  Richard Guenther  <rguenther@suse.de>
23364
23365         PR tree-optimization/32810
23366         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
23367         conversions from DECL_INITIAL.
23368         (fold_const_aggregate_ref): Likewise from constructor elements.
23369
23370 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
23371
23372         * tree-affine.h (aff_combination_expand): Declare.
23373         (get_inner_reference_aff): Likewise.
23374         * tree-affine.c (aff_combination_expand): Split out from
23375         tree_to_aff_combination_expand.
23376         (get_inner_reference_aff): New function.
23377         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
23378         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
23379         (struct lim_aux_data): sm_done field removed.
23380         (mem_ref_loc_p, mem_ref_locs_p): New types.
23381         (struct mem_ref): Added id, stored, accesses_in_loop,
23382         indep_loop, dep_loop, indep_ref, dep_ref fields.
23383         Removed is_stored, locs and next fields.
23384         (memory_accesses): New variable.
23385         (movement_possibility): Do not allow moving statements
23386         that store to memory.
23387         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
23388         New functions.
23389         (determine_max_movement): For statements with memory references,
23390         find the outermost loop in that the reference is independent.
23391         (move_computations_stmt): Mark the virtual operands for renaming.
23392         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
23393         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
23394         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
23395         add_vop_ref_mapping, create_vop_ref_mapping_loop,
23396         create_vop_ref_mapping, analyze_memory_references,
23397         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
23398         get_all_locs_in_loop, ref_always_accessed_p,
23399         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
23400         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
23401         store_motion_loop, store_motion): New functions.
23402         (struct vop_to_refs_elt): New type.
23403         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
23404         memref_hash, memref_eq, hoist_memory_references): Rewritten.
23405         (schedule_sm): Replaced by...
23406         (execute_sm): ... this.
23407         (determine_lsm_ref, hoist_memory_references,
23408         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
23409         find_more_ref_vops, free_mem_ref, free_mem_refs,
23410         determine_lsm_loop, determine_lsm): Removed.
23411         (tree_ssa_lim_finalize): Free data structures used by store motion.
23412         (tree_ssa_lim): Call analyze_memory_references.  Use
23413         store_motion instead of determine_lsm.
23414
23415 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
23416
23417         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
23418         rename tmake_file to m68hc11/t-m68hc11.
23419         (mcore): Set inhibit_libc to true.
23420         * config.host (alpha*-dec-*vms*): Set extra_programs.
23421         (interix3*): Don't use host_xmake_file.
23422         * configure.ac: Let config.gcc override inhibit_libc.
23423         * configure: Regenerate.
23424
23425         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
23426         * config/t-openbsd-thread: Remove commented out lines.
23427
23428         * config/x-interix: Remove.
23429
23430         * config/m68hc11/t-m68hc11-gas: Rename to...
23431         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
23432
23433         * config/mcore/t-mcore: Remove T_CFLAGS.
23434         * config/mcore/t-mcore-pe: Likewise.
23435
23436 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
23437
23438         * configure.ac: Replace custom __GNU_SOURCE test with
23439         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
23440         * aclocal.m4: Regenerate.
23441         * configure: Regenerate.
23442         * config.in: Regenerate.
23443
23444 2008-03-27  Richard Guenther  <rguenther@suse.de>
23445
23446         * fold-const.c (target.h): Include.
23447         (fold_comparison): Fold comparison of addresses of decls
23448         that bind locally or of constants.  Consolidate address folding code.
23449         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
23450         results from fold_binary_to_constant.
23451         (compare_values_warnv): Likewise.
23452
23453 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
23454
23455         PR middle-end/35429
23456         * fold-const.c (fold_truthop): Check for integeral types when folding
23457         a == 0 && b == 0 and a != 0 || b != 0 .
23458
23459 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
23460
23461         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
23462
23463 2008-03-26  Andreas Schwab  <schwab@suse.de>
23464
23465         * doc/invoke.texi: Fix use of @item vs. @itemx.
23466
23467 2008-03-26  Tom Tromey  <tromey@redhat.com>
23468
23469         * Makefile.in (build/gensupport.o, build/print-rtl.o,
23470         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
23471         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
23472         build/gencodes.o, build/genconditions.o, build/genconfig.o,
23473         build/genconstants.o, build/genemit.o, build/genextract.o,
23474         build/genflags.o, build/genmddeps.o, build/genopinit.o,
23475         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
23476         options.h.
23477
23478 2008-03-26  Richard Guenther  <rguenther@suse.de>
23479
23480         Revert
23481         2008-03-26  Richard Guenther  <rguenther@suse.de>
23482
23483         * fold-const.c (target.h): Include.
23484         (fold_comparison): Fold comparison of addresses of two decls
23485         that bind locally.  Consolidate address folding code.
23486
23487 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23488
23489         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
23490         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
23491         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
23492         dconstsqrt2, dconstthird, dconste and/or dconst10.
23493         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
23494         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
23495         dconstsqrt2, dconste): Delete.
23496         (init_emit_once): Likewise.  Simplify initializing dconstm1.
23497         Constify variable.
23498         * real.c (get_real_const): New.
23499         * real.h (dconst3, dconst10, dconstm2, dconstthird,
23500         dconstsqrt2, dconste): Delete.
23501         (real_value_const, get_real_const): New.
23502
23503 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
23504
23505         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
23506
23507         * config/i386/i386.c (ix86_function_arg_boundary): Check
23508         BIGGEST_ALIGNMENT instead of 128.
23509         (setup_incoming_varargs_64): Likewise.
23510
23511 2008-03-26  Tom Tromey  <tromey@redhat.com>
23512
23513         * Makefile.in (DEPFILES): Add missing '/'.
23514
23515 2008-03-26  Richard Guenther  <rguenther@suse.de>
23516
23517         * fold-const.c (target.h): Include.
23518         (fold_comparison): Fold comparison of addresses of two decls
23519         that bind locally.  Consolidate address folding code.
23520
23521 2008-03-26  Nick Clifton  <nickc@redhat.com>
23522
23523         PR target/31232
23524         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
23525         not allow INT+INT as a legitimate addressing mode.
23526
23527 2008-03-26  Richard Guenther  <rguenther@suse.de>
23528
23529         * tree-flow.h (widen_bitfield): Remove declaration.
23530         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
23531         (widen_bitfield): Remove function.
23532         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
23533         code.
23534
23535 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
23536
23537         PR target/31558
23538         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
23539         error_mark_node's.
23540
23541 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
23542
23543         PR rtl-optimization/35232
23544         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
23545         (forget_old_reloads_1, forget_marked_reloads): Don't clear
23546         reg_reloaded_call_part_clobbered here.
23547         (reload_regs_reach_end_p): New function.
23548         (reload_reg_rtx_for_input): New variable.
23549         (reload_reg_rtx_for_output): Likewise.
23550         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
23551         when reassigning a pseudo register.  Load reloadreg from
23552         reload_reg_rtx_for_input, moving the mode and register
23553         calculation to...
23554         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
23555         instead of the original when deciding whether an input reload
23556         would be a no-op or whether an output reload can be deleted.
23557         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
23558         when setting up new_spill_reg_store.  Load it from
23559         reload_reg_rtx_for_output, moving the mode and register
23560         calculation to...
23561         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
23562         instead of the original when deciding whether an output reload
23563         would be a no-op.  Do the same when modifying insn notes.
23564         Use rtx_equal_p instead of == to compare the registers.
23565         (inherit_piecemeal_p): Take a mode and two register numbers
23566         as argument.
23567         (emit_reload_insns): Clear new_spill_reg_store for every hard
23568         register in the reload register.  Remove spill registers
23569         from reg_reloaded_valid before considering whether to record
23570         inheritance information for them.  Use reload_reg_rtx_for_output
23571         instead of reg_rtx when recording output reloads.  Use
23572         reload_reg_rtx_for_input instead of reg_rtx when recording
23573         input reloads.  Set or clear reg_reloaded_call_part_clobbered
23574         at the same time as setting reg_reloaded_valid.
23575         (delete_output_reload): Add a new_reload_reg parameter and use it
23576         instead of rld[j].reg_rtx.
23577         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
23578         calls accordingly.
23579
23580 2008-03-25  Tom Tromey  <tromey@redhat.com>
23581
23582         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
23583         (build/genattr.o): Likewise.
23584         (build/genattrtab.o): Likewise.
23585         (build/gencodes.o): Likewise.
23586         (build/genconfig.o): Likewise.
23587         (build/genconstants.o): Likewise.
23588         (build/genemit.o): Likewise.
23589         (build/genextract.o): Likewise.
23590         (build/genflags.o): Likewise.
23591
23592 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
23593
23594         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
23595         instead of size_int for integer types.
23596         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
23597         to match type of MINUS_EXPR.
23598
23599 2008-03-25  Tom Tromey  <tromey@redhat.com>
23600
23601         * configure: Rebuilt.
23602         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
23603         Makefile.
23604
23605 2008-03-25  Tom Tromey  <tromey@redhat.com>
23606
23607         * config/x-solaris (host-solaris.o): Update.
23608         * config/x-linux (host-linux.o): Update.
23609         * config/x-hpux (host-hpux.o): Update.
23610         * config/x-darwin (host-darwin.o): Update.
23611         * config/v850/t-v850e (v850-c.o): Update.
23612         * config/v850/t-v850 (v850-c.o): Update.
23613         * config/t-vxworks (vxworks.o): Update.
23614         * config/t-sol2 (sol2-c.o, sol2.o): Update.
23615         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
23616         * config/spu/t-spu-elf (spu-c.o): Update.
23617         (spu.o): Remove.
23618         * config/sh/t-symbian (sh-c.o): Update.
23619         (symbian.o): Update.
23620         * config/sh/t-sh (sh-c.o): Update.
23621         * config/score/t-score-elf (score7.o, score3.o): Update.
23622         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
23623         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
23624         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
23625         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
23626         (rs6000.o): Remove.
23627         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
23628         * config/m32c/t-m32c (m32c-pragma.o): Update.
23629         * config/ia64/t-ia64 (ia64-c.o): Update.
23630         * config/i386/x-mingw32 (host-mingw32.o): Update.
23631         * config/i386/x-i386 (driver-i386.o): Update.
23632         * config/i386/x-darwin (host-i386-darwin.o): Update.
23633         * config/i386/x-cygwin (host-cygwin.o): Update.
23634         * config/i386/t-nwld (nwld.o): Update.
23635         * config/i386/t-netware (netware.o): Update.
23636         * config/i386/t-interix (winnt.o): Update.
23637         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
23638         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
23639         msformat-c.o): Update.
23640         * config/bfin/t-bfin-linux (generated_files): Add
23641         linux-sysroot-suffix.h.
23642         * config/arm/t-wince-pe (pe.o): Update.
23643         * config/arm/t-strongarm-pe (pe.o): Update.
23644         * config/arm/t-pe (pe.o): Update.
23645         * config/arm/t-arm (arm-c.o): Update.
23646         * doc/install.texi (Prerequisites): Require make 3.80.
23647         * Makefile.in: Remove .o targets.
23648         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
23649         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
23650         (simple_generated_h, simple_generated_c): Move earlier.
23651         (generated_files): New variable.
23652         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
23653         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
23654         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
23655         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
23656         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
23657         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
23658         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
23659         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
23660         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
23661         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
23662         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
23663         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
23664         (.c.o): Remove.
23665         (COMPILE.base, COMPILE): New variables.
23666         (%.o): New pattern rule.
23667         (ALL_HOST_OBJS): New variable.
23668         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
23669         (dummy-checksum.o, cc1-checksum.o): Remove.
23670         (DRIVER_SHLIB): New variable.
23671         (DRIVER_DEFINES): Use it.
23672         (gencondmd.c): Move out of build/.
23673         (s-conditions): Update.
23674         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
23675         (ALL_BUILD_OBJS): Likewise.
23676         (build/%.o): Use BUILDCOMPILE.
23677         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
23678         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
23679         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
23680         build/gencheck.o, build/gencodes.o, build/genconditions.o,
23681         build/genconfig.o, build/genconstants.o, build/genemit.o,
23682         build/genextract.o, build/genflags.o, build/genmddeps.o,
23683         build/genopinit.o, build/genoutput.o, build/genpeep.o,
23684         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
23685         build/gen-protos.o, build/scan.o, build/fix-header.o,
23686         build/scan-decls.o): Simplify.
23687         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
23688         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
23689         prefix.o, toplev.o): Reduce to variable setting.
23690         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
23691         ($(out_object_file), gcc-options.o): New targets.
23692         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
23693         * configure: Rebuilt.
23694         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
23695         * doc/sourcebuild.texi (Front End Directory): Document new variable.
23696
23697 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
23698
23699         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
23700         complain when we hit an error, return ERROR_MARK_NODE.
23701
23702 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
23703
23704         * config/sh/constraints.md (Pso, Psz): New constraints.
23705         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
23706         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
23707
23708 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
23709
23710         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
23711         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
23712
23713 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
23714
23715         * config/sh/sh.md (prefetch): Add condition for SH2A target.
23716         (prefetch_sh2a): New.
23717
23718 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
23719             Naveen.H.S  <naveen.hs@kpitcummins.com>
23720
23721         * config/sh/constraints.md (I28): New constraint.
23722         * config/sh/sh.c (broken_move): Add support for movi20s.
23723         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
23724
23725 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
23726             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
23727             Naveen.H.S  <naveen.hs@kpitcummins.com>
23728
23729         * config/sh/sh.c (SH_ATTRIBUTES): Define.
23730         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
23731         (print_operand): Handle resbank in %@ operand code.
23732         (sh_encode_section_info): New.
23733         (push_regs): Add conditions for resbank.
23734         (sh_expand_epilogue): Likewise.
23735         (sh_insert_attributes): Likewise.
23736         (sh_attribute_table): Likewise.
23737         (sh_handle_resbank_handler_attribute): New.
23738         (sh2a_handle_function_vector_handler_attribute): New.
23739         (sh2a_is_function_vector_call): New.
23740         (sh2a_get_function_vector_number): New.
23741         (sh2a_function_vector_p): New.
23742         (sh_cfun_resbank_handler_p): New.
23743         * config/sh/sh.md (calli): Emit jsr/n if possible.
23744         (calli_tbr_rel): New.
23745         (calli_pcrel): Emit jsr/n if possible.
23746         (return_i): Emit rts/n if possible.
23747         (call_valuei_tbr_rel): New.
23748         (call_valuei_pcrel): Add condition for SH2A target.
23749         (call_value): Likewise.
23750         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
23751         (sh2a_get_function_vector_number): Likewise.
23752         (sh2a_is_function_vector_call): Likewise.
23753         * doc/extend.texi: Document TBR relative addressing of SH2A.
23754         (resbank): Add description for SH2A.
23755
23756 2008-03-24  Richard Guenther  <rguenther@suse.de>
23757
23758         PR c/22371
23759         * gimplify.c (gimplify_modify_expr): For frontend type-correct
23760         pointer assignments change conversions according to middle-end rules.
23761         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
23762         * configure.ac: Include type checking in yes.
23763         * configure: Regenerate.
23764
23765 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
23766
23767         * diagnostic.c (diagnostic_count_diagnostic): Delete.
23768         (diagnostic_report_diagnostic): Update. Handle ICEs here.
23769
23770 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
23771
23772         * gthr-vxworks.h (UNUSED): Define.
23773
23774 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
23775
23776         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
23777
23778 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
23779
23780         * doc/extend.texi (Function Attributes): Add missing comma in the
23781         example of the "alloc_size" attribute.
23782
23783 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
23784
23785         Revert:
23786         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
23787
23788         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
23789         32bit host.
23790
23791         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
23792
23793         PR target/35496
23794         * stor-layout.c (update_alignment_for_field): Set minimum alignment
23795         of the underlying type of a MS bitfield layout to the natural
23796         alignment of the type.
23797
23798         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
23799
23800         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
23801         to their natural alignment to avoid store forwarding stalls.
23802
23803 2008-03-22  Richard Guenther  <rguenther@suse.de>
23804
23805         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
23806         For PHI nodes verify the address is invariant.
23807         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
23808         (get_symbol_constant_value): Use is_gimple_min_invariant.
23809         (maybe_fold_stmt_indirect): Likewise.
23810
23811 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
23812
23813         PR rtl-optimization/33927
23814         * Makefile.in (dse.o): Depend on $(TM_P_H).
23815         * expr.h (extract_low_bits): Declare.
23816         * expmed.c (extract_low_bits): New function.
23817         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
23818         * dse.c: Include tm_p.h.
23819         (find_shift_sequence): Remove the read_reg argument and return the
23820         read value.  Emit the instructions instead of returning them.
23821         Iterate on new_mode rather than calculating it each time.
23822         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
23823         source to NEW_MODE and extract_low_bits to convert the shifted
23824         value to READ_MODE.
23825         (replace_read): Allow the load and store to have different mode
23826         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
23827         or extraction instructions before trying the replacement.  Update
23828         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
23829
23830 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
23831
23832         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
23833         to their natural alignment to avoid store forwarding stalls.
23834
23835 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
23836
23837         PR target/27946
23838         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
23839         encouraging but not allowing gprs for input;
23840         change the input constraint to !f#r.
23841         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
23842         gprs for output;
23843         change the output constraint to !f#r.
23844
23845 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
23846
23847         PR target/13958
23848         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
23849         corresponding post-reload splitters.
23850         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
23851         when x87 FP math is selected.
23852         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
23853         New function prototype.
23854         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
23855         unreachable function to ease macroization of insn patterns.
23856
23857 2008-03-21  Martin Jambor  <mjambor@suse.cz>
23858
23859         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
23860         reference dumps if ddr is NULL or dependence is unknown.
23861
23862 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
23863
23864         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
23865         unsigned extension into account.
23866         (ATOMIC_COMPARE_AND_SWAP): Likewise.
23867         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
23868         Do computations on a scratch register.
23869
23870 2008-03-21  Richard Guenther  <rguenther@suse.de>
23871
23872         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
23873         Use is_gimple_min_invariant instead of TREE_INVARIANT.
23874         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
23875         * tree-ssa-dom.c (record_equality): Likewise.
23876         * tree-inline.c (copy_body_r): Likewise.
23877         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
23878         TREE_INVARIANT.
23879
23880 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
23881
23882         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
23883         as 'delete_unused' argument.
23884
23885 2008-03-20  Richard Guenther  <rguenther@suse.de>
23886
23887         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
23888         special casing of constant qualifiers.
23889         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
23890         care about them in general.
23891         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
23892         regardless of their type.
23893         (fold_stmt_r): Forcefully fold *& if we end up with that.
23894
23895 2008-03-20  Paul Brook  <paul@codesourcery.com>
23896
23897         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
23898         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
23899         linker flags.
23900         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
23901         definition.
23902         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
23903         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
23904
23905 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
23906
23907         * common.opt (Wmudflap): New option.
23908         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
23909         (mx_register_decls): Likewise.
23910         (mudflap_finish_file): Likewise.
23911         * doc/invoke.texi: Document -Wno-mudflap.
23912
23913 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
23914
23915         * c-format.c (replace_format_name_to_system_name): New.
23916         (cmp_attribs): New.
23917         (convert_format_name_to_system_name): New.
23918         (decode_format_attr): Add use of convert_format_name_to_system_name.
23919         (format_types_orig): Add gnu_ prefix to names.
23920         (check_format_info_main): Special treating of \0 escaped names for
23921         supporting multi-character format specifiers as I32, I64.
23922         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
23923         (gnu_target_overrides_format_attributes): New.
23924         * c-format.h: Add structure target_ovr_attr to hold
23925         system specific formatter names.
23926         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
23927         msformat-c.o file to c_target_objs and cxx_target_objs.
23928         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
23929         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
23930         (TARGET_N_FORMAT_TYPES): New.
23931         * config/i386/msformat-c.c: New.
23932         * config/i386/t-cygming: Add build rule for msformat-c.o.
23933         * doc/extend.texi: Add new format names gnu_* and ms_* and
23934         further details.
23935         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
23936
23937 2008-03-20  Ira Rosen  <irar@il.ibm.com>
23938
23939         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
23940         optimizations turned on under -O3.
23941         (ftree-vectorize): Add that the flag is turned on with -O3.
23942
23943 2008-03-20  Ben Elliston  <bje@au.ibm.com>
23944
23945         * regmove.c (try_auto_increment): Fix spelling error in comment.
23946         * final.c (final_scan_insn): Likewise.
23947
23948 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
23949
23950         PR target/14552
23951         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
23952         allocator preferences for "y" and "r" class registers.
23953         ("*mov<mode>_internal"): Ditto.
23954         ("*movv2sf_internal_rex64"): Ditto.
23955         ("*movv2sf_internal"): Ditto.
23956
23957 2008-03-19  Michael Matz  <matz@suse.de>
23958
23959         PR middle-end/35616
23960         * calls.c (expand_call): Check overlap of arguments with call
23961         address for sibcalls.
23962
23963 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
23964
23965         PR target/35496
23966         * stor-layout.c (update_alignment_for_field): Set minimum alignment
23967         of the underlying type of a MS bitfield layout to the natural
23968         alignment of the type.
23969
23970 2008-03-19  Jan Hubicka  <jh@suse.cz>
23971
23972         PR other/35094
23973         * toplev.c (decode_d_option): Handle all CPP flags.
23974         * tree-vrp.c: Update tree_pass descriptors.
23975         * regrename.c: Update tree_pass descriptors.
23976         * fwprop.c: Update tree_pass descriptors.
23977         * doc/invoke.texi: Remove documentation of dropped -d? flags.
23978         * tree-into-ssa.c: Update tree_pass descriptors.
23979         * tree-dump.c: Update tree_pass descriptors.
23980         * tree-complex.c: Update tree_pass descriptors.
23981         * tree-dump.h: Update tree_pass descriptors.
23982         * see.c: Update tree_pass descriptors.
23983         * cgraphbuild.c: Update tree_pass descriptors.
23984         * tracer.c: Update tree_pass descriptors.
23985         * tree-loop-distribution.c: Update tree_pass descriptors.
23986         * cgraph.c: Update tree_pass descriptors.
23987         * postreload-gcse.c: Update tree_pass descriptors.
23988         * postreload.c: Update tree_pass descriptors.
23989         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
23990         * tree-tailcall.c: Update tree_pass descriptors.
23991         * tree-pass.h (tree_opt_pass): Rename to ...
23992         (opt_pass) ... this one; add "type" field and remove letter field.
23993         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
23994         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
23995         all_lowering_passes): Update declaration.
23996         * ipa-cp.c: Update tree_pass descriptors.
23997         * final.c: Update tree_pass descriptors.
23998         * omp-low.c: Update tree_pass descriptors.
23999         * tree-ssa-dse.c: Update tree_pass descriptors.
24000         * ipa-reference.c: Update tree_pass descriptors.
24001         * tree-ssa-uncprop.c: Update tree_pass descriptors.
24002         * auto-inc-dec.c: Update tree_pass descriptors.
24003         * reorg.c: Update tree_pass descriptors.
24004         * cgraphunit.c: Update tree_pass descriptors.
24005         * tree-ssa-copyrename.c: Update tree_pass descriptors.
24006         * tree-ssa-ccp.c: Update tree_pass descriptors.
24007         * df-core.c: Update tree_pass descriptors.
24008         * mode-switching.c: Update tree_pass descriptors.
24009         * tree-nomudflap.c: Update tree_pass descriptors.
24010         * modulo-sched.c: Update tree_pass descriptors.
24011         * ipa-pure-const.c: Update tree_pass descriptors.
24012         * cse.c: Update tree_pass descriptors.
24013         * web.c: Update tree_pass descriptors.
24014         * tree-stdarg.c: Update tree_pass descriptors.
24015         * tree-ssa-math-opts.c: Update tree_pass descriptors.
24016         * tree-ssa-dom.c: Update tree_pass descriptors.
24017         * tree-nrv.c: Update tree_pass descriptors.
24018         * tree-ssa-alias.c: Update tree_pass descriptors.
24019         * loop-init.c: Update tree_pass descriptors.
24020         * gimple-low.c: Update tree_pass descriptors.
24021         * ipa-inline.c: Update tree_pass descriptors.
24022         * tree-ssa-sink.c: Update tree_pass descriptors.
24023         * global.c: Update tree_pass descriptors.
24024         * ifcvt.c: Update tree_pass descriptors.
24025         * jump.c: Update tree_pass descriptors.
24026         * predict.c: Update tree_pass descriptors.
24027         * tree-ssa-loop.c: Update tree_pass descriptors.
24028         * recog.c: Update tree_pass descriptors.
24029         * dse.c: Update tree_pass descriptors.
24030         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
24031         * tree-eh.c: Update tree_pass descriptors.
24032         * regmove.c: Update tree_pass descriptors.
24033         * local-alloc.c
24034         * function.c: Update tree_pass descriptors.
24035         * tree-vectorizer.c: Update tree_pass descriptors.
24036         * gcse.c: Update tree_pass descriptors.
24037         * ipa-type-escape.c: Update tree_pass descriptors.
24038         * tree-if-conv.c: Update tree_pass descriptors.
24039         * init-regs.c: Update tree_pass descriptors.
24040         * ipa.c: Update tree_pass descriptors.
24041         * tree-ssa-phiopt.c: Update tree_pass descriptors.
24042         * rtl-factoring.c: Update tree_pass descriptors.
24043         * lower-subreg.c: Update tree_pass descriptors.
24044         * bt-load.c: Update tree_pass descriptors.
24045         * tree-dfa.c: Update tree_pass descriptors.
24046         * except.c: Update tree_pass descriptors.
24047         * emit-rtl.c: Update tree_pass descriptors.
24048         * cfgexpand.c: Update tree_pass descriptors.
24049         * tree-cfgcleanup.c: Update tree_pass descriptors.
24050         * cfgcleanup.c: Update tree_pass descriptors.
24051         * tree-ssa-pre.c: Update tree_pass descriptors.
24052         * tree-sra.c: Update tree_pass descriptors.
24053         * tree-mudflap.c: Update tree_pass descriptors.
24054         * tree-ssa-copy.c: Update tree_pass descriptors.
24055         * cfglayout.c: Update tree_pass descriptors.
24056         * tree-ssa-forwprop.c: Update tree_pass descriptors.
24057         * tree-ssa-dce.c: Update tree_pass descriptors.
24058         * tree-ssa.c: Update tree_pass descriptors.
24059         * regclass.c: Update tree_pass descriptors.
24060         * integrate.c: Update tree_pass descriptors.
24061         * tree-optimize.c: Update tree_pass descriptors.
24062         * tree-ssa-phiprop.c: Update tree_pass descriptors.
24063         * tree-object-size.c: Update tree_pass descriptors.
24064         * combine.c: Update tree_pass descriptors.
24065         * tree-outof-ssa.c: Update tree_pass descriptors.
24066         * bb-reorder.c: Update tree_pass descriptors.
24067         * stack-ptr-mod.c: Update tree_pass descriptors.
24068         * var-tracking.c: Update tree_pass descriptors.
24069         * tree-profile.c: Update tree_pass descriptors.
24070         * tree-vect-generic.c: Update tree_pass descriptors.
24071         * reg-stack.c: Update tree_pass descriptors.
24072         * sched-rgn.c: Update tree_pass descriptors.
24073         * tree-ssa-structalias.c: Update tree_pass descriptors.
24074         * tree-cfg.c: Update tree_pass descriptors.
24075         * passes.c (current_pass): Update declaration.
24076         (finish_optimization_passes): Update.
24077         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
24078         (register_one_dump_file, register_dump_files_1, next_pass_1):
24079         Update arguments.
24080         (init_optimization_passes): Update handling of new types.
24081         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
24082         * ipa-struct-reorg.c: Update tree_pass descriptors.
24083         * tree-ssa-reassoc.c: Update tree_pass descriptors.
24084         * combine-stack-adj.c: Update tree_pass descriptors.
24085         * cfgrtl.c: Update tree_pass descriptors.
24086         * dce.c: Update tree_pass descriptors.
24087         * tree-ssanames.c: Update tree_pass descriptors.
24088
24089 2008-03-19  Richard Guenther  <rguenther@suse.de>
24090
24091         PR middle-end/35609
24092         * tree-ssa.c (walk_data): New structure.
24093         (warn_uninitialized_var): If not always_executed warn with "maybe"
24094         instead of "is".
24095         (execute_early_warn_uninitialized): Compute post-dominators.
24096         Initialize always_executed before processing each basic block.
24097
24098 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
24099
24100         PR target/35504
24101         * config/i386/i386.c (x86_this_parameter): Calculate correct location
24102         of "this" pointer when "regparm = N" or "fastcall" is in effect.
24103
24104 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24105
24106         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
24107
24108 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
24109
24110         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
24111         is true.
24112         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
24113         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
24114         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
24115         target after ignore has been set, and move there also the commputation
24116         of subtarget and original_target.
24117         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
24118         (LANG_HOOKS_INITIALIZER): Remove it.
24119         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
24120
24121 2008-03-18  Richard Guenther  <rguenther@suse.de>
24122
24123         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
24124         found an expression with constants, note that in the VN for the lhs.
24125         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
24126         fold them to constants if possible.  Run cleanup_cfg if done so.
24127         (execute_pre): Return todo.
24128         (do_pre): Likewise.
24129         (execute_fre): Likewise.
24130         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
24131         of constants.
24132         (get_prop_source_stmt): Look through pointer conversions.
24133
24134 2008-03-18  Jan Hubicka  <jh@suse.cz>
24135
24136         * tree-pretty-print.c: Include predict.h.
24137         (dump_generic_node): Dump predictor.
24138         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
24139         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
24140         * gimple-low.c (lower_stmt): Likewise.
24141         * expr.c (expand_expr_real): Likewise.
24142         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
24143         them.
24144         (build_predict_expr, build_predict_expr): New.
24145         * predict.h (predictor_name, build_predict_expr): Update.
24146         * c-typeck.c (c_finish_bc_stmt): Add prediction.
24147         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
24148         * predict.def (PRED_CONTINUE): Update hitrate.
24149         * tree.def (PREDICT_EXPR): Define.
24150         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
24151         do not handle BIND_EXPR.
24152         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
24153         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
24154         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
24155         operands.
24156
24157 2008-03-18  Michael Matz  <matz@suse.de>
24158
24159         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
24160
24161 2008-03-18  Richard Guenther  <rguenther@suse.de>
24162
24163         * tree-gimple.h (is_gimple_invariant_address): Declare.
24164         (is_gimple_constant): Likewise.
24165         * tree-gimple.c (is_gimple_constant): New function.
24166         (is_gimple_invariant_address): Likewise.
24167         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
24168         and is_gimple_invariant_address.
24169         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
24170         previous change.
24171         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
24172         an addressable base.
24173
24174 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
24175
24176         PR middle-end/35611
24177         * gimplify.c (gimplify_expr): Gimplify second operand of
24178         OMP_ATOMIC_LOAD.
24179
24180 2008-03-17  Richard Guenther  <rguenther@suse.de>
24181
24182         PR tree-optimization/19637
24183         * fold-const.c (fold_unary): Remove restrictions of removing
24184         intermediate pointer-conversions (P2)(P1)P0.
24185         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
24186         conversion to void pointer.
24187         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
24188
24189 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
24190
24191         PR debug/31510
24192         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
24193         emulated thread local variables.
24194
24195 2008-03-16  Richard Guenther  <rguenther@suse.de>
24196
24197         PR middle-end/35607
24198         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
24199         expand TREE_INVARIANT operations that are not gimple invariant.
24200
24201 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
24202
24203         * doc/extend.texi (Alignment): Say that the ABI controls
24204         the __alignof__ for non-strict-alignment targets rather
24205         than being a recommendation.
24206
24207 2008-03-15  Paul Brook  <paul@codesourcery.com>
24208
24209         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
24210         annotations.
24211         (arm_output_fn_unwind): Mark functions that can not be unwound.
24212
24213 2008-03-15  Paul Brook  <paul@codesourcery.com>
24214
24215         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
24216         extension instructions.
24217
24218 2008-03-15  Richard Guenther  <rguenther@suse.de>
24219
24220         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
24221         and fold constant aggregate refs.
24222         (fold_const_aggregate_ref): Handle string constants
24223         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
24224         (evaluate_stmt): Simplify now that ccp_fold folds constant
24225         aggregate refs.
24226
24227 2008-03-15  Paul Brook  <paul@codesourcery.com>
24228
24229         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
24230         (extzv): Use gen_extzv_t2.
24231         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
24232
24233 2008-03-15  Richard Guenther  <rguenther@suse.de>
24234
24235         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
24236         (fold_const_aggregate_ref): Likewise.
24237         (get_value): Return NULL if we don't have any values.
24238         (ccp_finalize): Set const_val to NULL after freeing it.
24239         * tree-flow.h (get_symbol_constant_value): Declare.
24240         (fold_const_aggregate_ref): Likewise.
24241         * tree-ssa-sccvn.c (try_to_simplify): Use them.
24242
24243 2008-03-15  Richard Guenther  <rguenther@suse.de>
24244
24245         PR middle-end/35593
24246         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
24247         to not produce negative array indices if not allowed.  Add
24248         parameter to indicate that.
24249         (maybe_fold_offset_to_component_ref): Allow negative array
24250         indices only for the first member of a structure.
24251         (maybe_fold_offset_to_reference): Allow negative array indices.
24252         (maybe_fold_stmt_addition): Likewise.
24253
24254 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
24255             Anatoly Sokolov <aesok@post.ru>
24256
24257         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
24258         (avr_arch): Add ARCH_AVR6.
24259         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
24260         (initial_elimination_offset): Initialize and use 'avr_pc_size'
24261         instead of fixed value 2.
24262         (print_operand_address): Use gs() asm specifier instead of pm().
24263         (avr_assemble_integer): (Ditto.).
24264         (avr_output_addr_vec_elt): (Ditto.).
24265         (print_operand): Handle "!" code.
24266         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
24267         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
24268         (AVR_HAVE_EIJMP_EICALL): Define.
24269         (AVR_3_BYTE_PC): Redefine.
24270         (AVR_2_BYTE_PC): (Ditto.).
24271         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
24272         (LINK_SPEC): Add atmega2560 and atmega2561.
24273         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
24274         (crtm2561.o).
24275         * config/avr/avr.md (call_insn): Use eicall instead of icall
24276         for 3 byte PC devices.
24277         (call_value_insn): (Ditto.).
24278         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
24279         (indirect_jump): Use only for for 2 byte PC devices.
24280         (*tablejump): (Ditto.).
24281         (*indirect_jump_avr6): Add insn.
24282         (*tablejump_rjmp): Don't use for 3 byte PC devices.
24283         * config/avr/libgcc.S (__prologue_saves__): Use eijmp
24284         instead of ijmp for 3 byte PC devices.
24285         (__tablejump2__): (Ditto.).
24286         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
24287         (MULITLIB_DIRNAMES): (Ditto.).
24288         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
24289
24290 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
24291
24292         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
24293         "sse2_umulsidi3".  Use V1DI mode for operand 0.
24294         ("mmx_psadbw"): Use V1DI mode for operand 0.
24295         * config/i386/i386-modes.def (V1SI): New vector mode.
24296         * config/i386/i386.c (struct builtin_description)
24297         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
24298         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
24299         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
24300         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
24301         v1di_ftype_v8qi_v8qi type.
24302         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
24303
24304         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
24305         __builtin_ia32_pmuludq]: Fix the mode of return value.
24306
24307 2008-03-15  Richard Guenther  <rguenther@suse.de>
24308
24309         PR middle-end/35595
24310         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
24311         being a PHI_NODE.
24312
24313 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
24314
24315         * doc/invoke.texi (Option Summary, Xtensa Options): Document
24316         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
24317         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
24318         unless TARGET_SERIALIZE_VOLATILE is enabled.
24319         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
24320         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
24321         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
24322
24323 2008-03-14  Richard Guenther  <rguenther@suse.de>
24324
24325         PR tree-optimization/34172
24326         * tree-flow.h (refs_may_alias_p): Declare.
24327         (get_single_def_stmt): Likewise.
24328         (get_single_def_stmt_from_phi): Likewise.
24329         (get_single_def_stmt_with_phi): Likewise.
24330         * tree-dfa.c (refs_may_alias_p): New function.
24331         (get_single_def_stmt): Likewise.
24332         (get_single_def_stmt_from_phi): Likewise.
24333         (get_single_def_stmt_with_phi): Likewise.
24334         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
24335         (vn_reference_lookup_1): New helper function.
24336         (vn_reference_lookup): Walk the virtual use-def chain to
24337         continue searching for a match if the def does not alias the
24338         reference we are looking for.
24339
24340 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
24341
24342         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
24343         archive and Perzl.  Update The Written Word listing.
24344
24345 2008-03-14  Richard Guenther  <rguenther@suse.de>
24346
24347         PR tree-optimization/34043
24348         PR tree-optimization/33989
24349         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
24350         when doing FRE.
24351         (bitmap_find_leader): Use extra argument to verify dominance
24352         relationship inside a basic-block.
24353         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
24354         (find_leader_in_sets): Adjust.
24355         (create_component_ref_by_pieces): Take extra argument for
24356         dominance check, handle lookup failures.
24357         (find_or_generate_expression): Likewise.
24358         (create_expression_by_pieces): Likewise.
24359         (insert_into_preds_of_block): Adjust.
24360         (create_value_expr_from): If asked for, verify all operands
24361         are in the blocks AVAIL_OUT set.
24362         (make_values_for_stmt): Check for SSA_NAMEs that are life
24363         over an abnormal edge.
24364         (compute_avail): Remove such check.
24365         (do_SCCVN_insertion): New function.
24366         (eliminate): If we do not find a leader suitable for replacement
24367         insert a replacement expression from SCCVN if available.
24368         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
24369         (struct vn_ssa_aux): Add needs_insertion flag.
24370         * tree-ssa-sccvn.c (may_insert): New global flag.
24371         (copy_reference_ops_from_ref): Value-number union member access
24372         based on its size, not type and member if insertion is allowed.
24373         (visit_reference_op_load): For a weak match from union type
24374         punning lookup a view-converted value and insert a SSA_NAME
24375         for that value if that is not found.
24376         (visit_use): Make dumps shorter.  Do not disallow value numbering
24377         SSA_NAMEs that are life over an abnormal edge to constants.
24378         (free_scc_vn): Release inserted SSA_NAMEs.
24379         (run_scc_vn): New flag to specify whether insertion is allowed.
24380         Process SSA_NAMEs in forward order.
24381         * tree-ssa-loop-im.c (for_each_index): Handle invariant
24382         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
24383         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
24384         pointer type to/from integral types that do not change the
24385         precision to regular conversions.
24386
24387 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
24388
24389         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
24390         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
24391         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
24392         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
24393         input arguments and the mode of return value.  Built-in functions
24394         that operate on whole 64-bit MMX register now use V1DI mode.
24395
24396 2008-03-13  Alon Dayan  <alond@il.ibm.com>
24397             Olga Golovanevsky  <olga@il.ibm.com>
24398
24399         PR tree-optimization/35041
24400         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
24401         to locate the right position in a statement.
24402
24403 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
24404
24405         PR target/34000
24406         PR target/35553
24407         * config/i386/xmmintrin.h:  Change all static inline functions to
24408         extern inline and add __gnu_inline__ attribute.
24409         * config/i386/bmintrin.h: Ditto.
24410         * config/i386/smmintrin.h: Ditto.
24411         * config/i386/tmmintrin.h: Ditto.
24412         * config/i386/mmintrin-common.h: Ditto.
24413         * config/i386/ammintrin.h: Ditto.
24414         * config/i386/emmintrin.h: Ditto.
24415         * config/i386/pmmintrin.h: Ditto.
24416         * config/i386/mmintrin.h: Ditto.
24417         * config/i386/mm3dnow.h: Ditto.
24418
24419 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
24420
24421         PR middle-end/35185
24422         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
24423         (lower_omp_2): New function.
24424         (lower_omp_1, lower_omp): Rewritten.
24425
24426 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
24427
24428         PR 35054
24429         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
24430         with the phrase "Microsoft Windows compilers".
24431         (Push/Pop Macro Pragmas): New subsection. Document
24432         #pragma push_macro and pragma pop_macro.
24433
24434 2008-03-12  Paul Brook  <paul@codesourcery.com>
24435
24436         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
24437
24438 2008-03-12  Paul Brook  <paul@codesourcery.com>
24439
24440         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
24441         (thumb2_alusi3_short): Exclude PLUS and MINUS.
24442         (thumb2_addsi_shortim): Rename ...
24443         (thumb2_addsi_short): ... to this.  Allow register operands.
24444         (thumb2_subsi_short): New pattern.
24445         (thumb2_one_cmplsi2_short,
24446         thumb2_negsi2_short): New patterns and peepholes.
24447
24448 2008-03-12  Paul Brook  <paul@codesourcery.com>
24449
24450         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
24451
24452 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
24453
24454         * config/i386/i386.md (int_cond): New code iterator.
24455         (fp_cond): Ditto.
24456         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
24457         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
24458         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
24459         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
24460         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
24461         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
24462         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
24463         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
24464
24465 2008-03-12  Paul Brook  <paul@codesourcery.com>
24466
24467         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
24468         instead of {arm,thumb}_compute_save_reg_mask.
24469         (output_return_instruction): Ditto.
24470         (thumb_unexpanded_epilogue): Ditto.
24471         (thumb1_expand_prologue): Ditto.
24472         (thumb1_output_function_prologue): Ditto.
24473         (arm_set_return_address): Ditto.
24474         (thumb_set_return_address): Ditto.
24475         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
24476         regs to achieve stack alignment.
24477         (thumb1_compute_save_reg_mask): Fix compiler warning.
24478         (arm_output_epilogue): Use offsets->saved_regs_mask.
24479         Adjust stack pointer by poping call clobered registers.
24480         (arm_expand_prologue): Use offsets->saved_regs_mask.
24481         Adjust stack pointer by pushing extra registers.
24482         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
24483
24484 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
24485
24486         PR tree-opt/35422
24487         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
24488         conversion to the operands of a multiplication.
24489
24490 2008-03-12  Richard Guenther  <rguenther@suse.de>
24491
24492         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
24493         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
24494         * timevar.def (TV_TREE_PHIPROP): Add.
24495         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
24496         pass description.  Use TV_TREE_PHIPROP.
24497         * tree-ssa-forwprop.c: Remove phiprop code.
24498
24499 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
24500
24501         PR middle-end/35549
24502         * omp-low.c (maybe_lookup_decl): Constify first argument.
24503         (use_pointer_for_field): Change last argument from bool to
24504         omp_context *.  Disallow shared copy-in/out in nested
24505         parallel if decl is shared in outer parallel too.
24506         (build_outer_var_ref, scan_sharing_clauses,
24507         lower_rec_input_clauses, lower_copyprivate_clauses,
24508         lower_send_clauses, lower_send_shared_vars): Adjust callers.
24509
24510 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
24511             Ira Rosen  <irar@il.ibm.com>
24512
24513         * tree-vectorizer.c (free_stmt_vec_info): New function.
24514         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
24515         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
24516         * tree-vectorizer.h (free_stmt_vec_info): Declare.
24517         * tree-vect-transform.c (vectorizable_conversion): Free
24518         vec_oprnds0 if it was allocated.
24519         (vect_permute_store_chain): Remove unused VECs.
24520         (vectorizable_store): Free VECs that are allocated in the..
24521         function.
24522         (vect_transform_strided_load, vectorizable_load): Likewise.
24523         (vect_remove_stores): Simplify the code.
24524         (vect_transform_loop): Move code to vect_remove_stores().
24525         Call vect_remove_stores() and free_stmt_vec_info().
24526
24527 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24528
24529         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
24530         TARGET_HPUX.  Revise comment.
24531         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
24532         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
24533         Use sr4 variant of `be' instruction when not generating PIC code.
24534         (attr_length_call): Adjust for above change.
24535
24536 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
24537
24538         * ipa-reference.c (static_execute): Remove module_statics_const and
24539         associated setting code.
24540
24541 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
24542
24543         PR target/35540
24544         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
24545         predicate for operand 1.
24546         (paritysi2_cmp): Use register_operand predicate for operand 2.
24547         Use earlyclobber modifier for operand 1.  Remove support for
24548         memory operands.
24549         (paritydi2_cmp): Use register_operand predicate for operand 3.
24550         Use earlyclobber modifier for operand 1.  Remove support for
24551         memory operands.
24552
24553 2008-03-11  Paul Brook  <paul@codesourcery.com>
24554             Vladimir Prus  <vladimir@codesourcery.com>
24555
24556         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
24557         (arm_compute_save_reg0_reg12_mask): Always
24558         check if register 11 must be saved.  Always safe hard frame pointer
24559         when frame_pointer_needeed.
24560         (arm_compute_save_reg_mask): Save IP and PC
24561         only with apcs frames.
24562         (arm_output_epilogue): Adjust Thumb2 codepath to
24563         be also invoked and work for ARM non-apcs frames.
24564         (arm_expand_prologue): Don't bother saving IP
24565         for non-apcs frame, since it's not clobbered by
24566         prologue code.  Implement non-apcs frame
24567         layout.
24568
24569 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
24570
24571         PR rtl-optimization/35281
24572         * expr.c (convert_move): Use a new pseudo for the intermediate
24573         from_mode->word_mode result.
24574
24575 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
24576
24577         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
24578         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
24579         * toplev.c (compile_file): Don't call it.
24580
24581 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
24582
24583         PR middle-end/35526
24584         * expr.c (store_expr): Call emit_block_move if the mode
24585         of "temp" RTX is BLKmode.
24586
24587 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
24588             Richard Guenther  <rguenther@suse.de>
24589
24590         PR tree-optimization/31358
24591         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
24592         the step with a NULL_TREE.
24593         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
24594         to sizetype if type is a pointer type.
24595         (add_candidate_1): Don't convert the base and step to
24596         the generic type if the orginal type is a pointer type.
24597         (add_iv_value_candidates): Use sizetype for the step
24598         if type is a pointer type.
24599         (cand_value_at): Likewise.
24600         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
24601         for pointer types.
24602         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
24603         Don't convert the tem affine to the type.
24604         (add_elt_to_tree): Use sizetype for the step if a pointer.
24605         Use POINTER_PLUS_EXPR for pointers.
24606         (aff_combination_to_tree): Use sizetype for the step if a
24607         pointer.
24608
24609 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
24610
24611         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
24612         Remove commutativity hint.
24613
24614 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
24615
24616         PR c/35438
24617         PR c/35439
24618         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
24619         errorneous type.  Check that v is a VAR_DECL.
24620
24621         PR middle-end/35099
24622         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
24623
24624 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
24625
24626         PR tree-optimization/35494
24627         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
24628         may be overriden at link and run time.
24629
24630 2008-03-10  Richard Guenther  <rguenther@suse.de>
24631
24632         PR tree-optimization/34677
24633         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
24634         (poolify_tree): Likewise.
24635         (modify_expr_template): Likewise.
24636         (poolify_modify_stmt): Likewise.
24637         (insert_fake_stores): Handle all component-ref style stores
24638         in addition to INDIRECT_REF.  Also handle complex types.
24639         Do not poolify the inserted load.
24640         (realify_fake_stores): Do not rebuild the tree but only
24641         make it a SSA_NAME copy.
24642         (init_pre): Remove initialzation of modify_expr_template.
24643         Do not allocate modify_expr_node_pool.
24644         (fini_pre): Do not free modify_expr_node_pool.
24645
24646 2008-03-10  Paul Brook  <paul@codesourcery.com>
24647
24648         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
24649         to avoid conflicts.
24650
24651 2008-03-10  Paul Brook  <paul@codesourcery.com>
24652             Mark Shinwell  <shinwell@codesourcery.com>
24653
24654         * config/arm/cortex-r4.md: New.
24655         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
24656         insn attributes.
24657         * config/arm/arm.md: Include cortex-r4.md.
24658         (insn): Add smmls, sdiv and udiv values.
24659         (generic_sched): Don't use generic scheduling for Cortex-R4.
24660         (arm_issue_rate): New function.
24661         (TARGET_SCHED_ISSUE_RATE): Define.
24662
24663 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
24664
24665         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
24666
24667 2008-03-10  Richard Guenther  <rguenther@suse.de>
24668
24669         * tree-ssa-pre.c (get_sccvn_value): Simplify.
24670         (compute_avail): Do not add stmt uses to AVAIL_OUT.
24671
24672 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
24673
24674         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
24675         Set default to true.
24676
24677 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24678
24679         * c.opt (Wsynth): Deprecate.
24680         * doc/invoke.texi (Option Summary, Warning Options): Document
24681         -Wno-format-contains-nul.
24682
24683 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
24684
24685         PR target/35496
24686         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
24687         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
24688
24689 2008-03-09  Ira Rosen  <irar@il.ibm.com>
24690
24691         * config/rs6000/rs6000.c (builtin_description): Rename vector
24692         left shift operations.
24693         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
24694         (altivec_vsl<VI_char>): Rename to ...
24695         (ashl<mode>3): ... new name.
24696         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
24697         gen_ashlv4si3.
24698         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
24699
24700 2008-03-08  Richard Guenther  <rguenther@suse.de>
24701
24702         * coverage.h (tree_coverage_counter_addr): Declare.
24703         * coverage.c (tree_coverage_counter_addr): New function.
24704         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
24705         before using again.
24706         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
24707         (tree_gen_one_value_profiler): Likewise.
24708         (tree_gen_ic_profiler): Likewise.
24709         (tree_gen_average_profiler): Likewise.
24710         (tree_gen_ior_profiler): Likewise.
24711
24712 2008-03-08  Richard Guenther  <rguenther@suse.de>
24713
24714         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
24715         (vn_binary_op_insert): Likewise.
24716         (vn_unary_op_lookup): Likewise.
24717         (vn_unary_op_insert): Likewise.
24718         (vn_nary_op_lookup): Declare.
24719         (vn_nary_op_insert): Likewise.
24720         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
24721         and binary hashes, use a single obstack for unary_op_pool
24722         and binary_op_pool.
24723         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
24724         a single struct vn_nary_op_s.  Store tree code length and
24725         a variable number of operands.
24726         (struct vn_reference_op_struct): Remove unused op2.
24727         (vn_reference_op_eq): Do not compare op2.
24728         (vn_reference_op_compute_hash): Do not compute hash of op2.
24729         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
24730         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
24731         with vn_nary_op_compute_hash.
24732         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
24733         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
24734         vn_nary_op_lookup.
24735         (vn_unary_op_insert, vn_binary_op_insert): Replace with
24736         vn_nary_op_insert.
24737         (visit_unary_op): Call nary functions.
24738         (visit_binary_op): Likewise.
24739         (process_scc): Adjust for struct vn_tables_s changes.
24740         (allocate_vn_table): Likewise.
24741         (free_vn_table): Likewise.
24742         * tree-vn.c (vn_add): Call nary functions.
24743         (vn_lookup): Likewise.
24744
24745 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
24746
24747         PR target/35498
24748         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
24749         wdst back after sync_compare_and_swapqhi_internal.
24750
24751 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
24752
24753         PR target/22152
24754         * config/i386/i386-modes.def (V1DI): New vector mode.
24755         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
24756         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
24757         (MMXMODE248): Ditto.
24758         (MMXMODE): Add V1DI mode.
24759         (mmxvecsize): Change DI mode to V1DI mode.
24760         ("mov<mode>): Use MMXMODEI8 mode iterator.
24761         ("*mov<mode>_internal_rex64"): Ditto.
24762         ("*mov<mode>_internal"): Ditto.
24763         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
24764         ("mmx_sub<mode>3"): Ditto.
24765         ("mmx_adddi3"): Remove insn pattern.
24766         ("mmx_subdi3"): Ditto.
24767         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
24768         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
24769         ("mmx_ashl<mode>3"): Ditto.
24770         ("mmx_lshrdi3"): Remove insn pattern.
24771         ("mmx_ashldi3"): Ditto.
24772         * config/i386/i386.c (classify_argument): Handle V1DImode.
24773         (function_arg_advance_32): Ditto.
24774         (function_arg_32): Ditto.
24775         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
24776         mmx_addv1di3 insn pattern.
24777         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
24778         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
24779         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
24780         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
24781         Remove definitions of built-in functions.
24782         (V1DI_type_node): New node.
24783         (v1di_ftype_v1di_int): Ditto.
24784         (v1di_ftype_v1di_v1di): Ditto.
24785         (v2si_ftype_v2si_si): Ditto.
24786         (v4hi_ftype_v4hi_di): Remove node.
24787         (v2si_ftype_v2si_di): Ditto.
24788         (ix86_init_mmx_sse_builtins): Handle V1DImode.
24789         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
24790         Redefine builtins using def_builtin_const with *_ftype_*_int node.
24791         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
24792         Add new builtins using def_builtin_const.
24793         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
24794         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
24795         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
24796         * config/i386/mmintrin.h (__v1di): New typedef.
24797         (_mm_add_si64): Cast arguments to __v1di type.
24798         (_mm_sub_si64): Ditto.
24799         (_mm_sll_pi16): Cast __count to __v4hi type.
24800         (_mm_sll_pi32): Cast __count to __v2si type.
24801         (_mm_sll_si64): Cast arguments to __v1di type.
24802         (_mm_srl_pi16): Cast __count to __v4hi type.
24803         (_mm_srl_pi32): Cast __count to __v2si type.
24804         (_mm_srl_si64): Cast arguments to __v1di type.
24805         (_mm_sra_pi16): Cast __count to __v4hi type.
24806         (_mm_sra_pi32): Cast __count to __v2si type.
24807         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
24808         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
24809         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
24810         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
24811         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
24812         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
24813         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
24814         (_mm_srai_pi32): Use __builtin_ia32_psradi.
24815         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
24816         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
24817         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
24818         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
24819
24820 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
24821
24822         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
24823
24824 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
24825
24826         PR target/35373
24827         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
24828         reg+const addressing for Altivec modes.  Don't generate reg+reg
24829         addressing for TFmode or TDmode quantities.
24830
24831 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
24832
24833         * c-common.c (vector_types_convertible_p): Call langhook
24834         instead of comptypes.
24835
24836 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
24837
24838         PR tree-opt/35402
24839         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
24840         integral and scalar float variables which have a
24841         NULL DECL_INITIAL.
24842
24843 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
24844
24845         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
24846         dwarf_register_span hook when emitting unwind information for
24847         register-to-memory saves.
24848         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
24849         (rs6000_frame_related): Remove call to spe_synthesize_frame.
24850
24851 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
24852
24853         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
24854         for the same VAR_DECL.
24855
24856 2008-03-06  Tom Tromey  <tromey@redhat.com>
24857
24858         * treelang: Delete.
24859         * doc/standards.texi (Standards): Don't mention treelang.
24860         * doc/invoke.texi (Overall Options): Don't mention treelang.
24861         * doc/install.texi (Prerequisites): Don't mention bison or
24862         treelang.
24863         (Configuration): Don't mention treelang.
24864         (Building): Likewise.
24865         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
24866
24867 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
24868
24869         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
24870         word-extractions out of a multi-word object.
24871
24872 2008-03-06  Richard Guenther  <rguenther@suse.de>
24873
24874         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
24875         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
24876         result type and precision.
24877         * expr.c (get_inner_reference): Set unsignedp based on the result
24878         type of BIT_FIELD_REF.
24879         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
24880         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
24881         (try_instantiate_multiple_fields): Likewise.  Use the correct type
24882         for BIT_FIELD_REF.
24883         (sra_build_assignment): Likewise.
24884         (sra_build_elt_assignment): Likewise.
24885         (sra_explode_bitfield_assignment): Likewise.
24886         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
24887         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
24888         set BIT_FIELD_REF_UNSIGNED.
24889         (vectorizable_load): Likewise.
24890
24891 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
24892
24893         * cse.c (cse_extended_basic_block): Invalidate artificial defs
24894         at bb start.
24895
24896 2008-03-06  Richard Guenther  <rguenther@suse.de>
24897
24898         * alias.c (struct alias_set_entry): Move has_zero_child field
24899         to pack with alias_set.
24900
24901 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
24902
24903         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
24904         32bit host.
24905
24906 2008-03-05  Ian Lance Taylor  <iant@google.com>
24907
24908         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
24909
24910 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
24911
24912         * fwprop.c (update_df): Support width and offset parameters of
24913         df_ref_create.
24914         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
24915         global_conflicts): Change DF_REF_EXTRACT to either
24916         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
24917         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
24918         * df-scan.c (df_ref_record, df_defs_record,
24919         df_ref_create_structure, df_def_record_1, df_uses_record,
24920         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
24921         df_bb_refs_collect, df_entry_block_defs_collect,
24922         df_exit_block_uses_collect): Support new width and offset fields.
24923         (ref_extract_pool): New storage pool.
24924         (df_free_ref): New function.
24925         (df_reg_chain_unlink, df_free_collection_rec,
24926         df_sort_and_compress_refs): Call df_free_ref.
24927         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
24928         of df_ref_extract.
24929         (df_ref_create_structure): Allocate df_ref_extract if offset and
24930         width fields are used.
24931         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
24932         (df_uses_record): Get offset and width from ZERO_EXTRACT
24933         and SIGN_EXTRACT.
24934         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
24935         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
24936         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
24937         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
24938         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
24939         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
24940         (df_ref_extract): New structure.
24941         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
24942         (df_ref_create): Add width and offset parameters.
24943
24944 2008-03-05  Richard Guenther  <rguenther@suse.de>
24945
24946         * tree-ssa-structalias.c (get_constraint_for_component_ref):
24947         Use ranges_overlap_p.
24948         (offset_overlaps_with_access): Rename
24949         to ranges_overlap_p and move ...
24950         * tree-flow-inline.h (ranges_overlap_p): ... here.
24951
24952         * tree.h (get_inner_reference, handled_component_p): Update
24953         comments.
24954
24955         * tree.h (record_component_aliases, get_alias_set,
24956         alias_sets_conflict_p, alias_sets_must_conflict_p,
24957         objects_must_conflict_p): Move declarations ...
24958         * alias.h (record_component_aliases, get_alias_set,
24959         alias_sets_conflict_p, alias_sets_must_conflict_p,
24960         objects_must_conflict_p): ... here.
24961         Include coretypes.h.
24962         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
24963
24964 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
24965
24966         * cfg.c: Include tree-flow.h.
24967         (remove_edge_raw): Call redirect_edge_var_map_clear.
24968         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
24969         * tree-flow-inline.h (redirect_edge_var_map_def): New.
24970         (redirect_edge_var_map_result): New.
24971         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
24972         PENDING_STMT use with redirect_edge_var_map_*.
24973         * tree-ssa.c (edge_var_maps): New definition.
24974         (redirect_edge_var_map_add): New.
24975         (redirect_edge_var_map_clear): New.
24976         (redirect_edge_var_map_dup): New.
24977         (redirect_edge_var_map_vector): New.
24978         (redirect_edge_var_map_destroy): New.
24979         (ssa_redirect_edge): Replace PENDING_STMT use with
24980         redirect_edge_var_map_*.
24981         (flush_pending_stmts): Same.
24982         (delete_tree_ssa): Destroy edge var map.
24983         * tree-flow.h (struct _edge_var_map): New.
24984         Define edge_var_map vector type.
24985         Declare redirect_edge_var_map_* prototypes.
24986         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
24987         * tree-cfg.c (reinstall_phi_args): Replace
24988         PENDING_STMT use with redirect_edge_var_map_*.
24989
24990 2008-03-05  Richard Guenther  <rguenther@suse.de>
24991
24992         PR tree-optimization/35472
24993         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
24994         whose single use_stmt has a overlapping set of loaded and
24995         stored symbols as that use_stmt might be a noop assignment then.
24996
24997 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
24998
24999         * gthr-rtems.h: Implement __gthread_mutex_destroy.
25000
25001 2008-03-05  Richard Guenther  <rguenther@suse.de>
25002
25003         PR c++/35336
25004         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
25005         should be constants.
25006         * tree-cfg.c (verify_expr): Verify it.
25007         * fold-const.c (fold_truthop): Remove code generating
25008         BIT_FIELD_REFs of structure bases.
25009         (fold_binary): Likewise.
25010         (fold_ternary): Position and size of BIT_FIELD_REFs are
25011         always host integers.
25012         (make_bit_field_ref): Remove.
25013         (optimize_bit_field_compare): Remove.
25014         (all_ones_mask_p): Remove.
25015
25016 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
25017
25018         PR gcc/33009
25019         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
25020         (split_block_and_df_analyze): New. Split basic block and rebuild
25021         dataflow.
25022         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
25023         SPLIT_BLOCK.
25024         (split_pattern_seq): Likewise.
25025         (erase_matching_seqs): Likewise.
25026         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
25027
25028 2008-03-04  Geoff Keating  <geoffk@apple.com>
25029
25030         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
25031         declaration and code.
25032         (tree_invalid_nonnegative_warnv_p): Likewise.
25033
25034 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
25035
25036         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
25037         examples.  Truncate option-names then causing overfull hbox.
25038
25039 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25040
25041         PR target/35222
25042         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
25043         on hpux10.
25044         * configure: Rebuilt.
25045
25046 2008-03-04  Rafael Espíndola  <espindola@google.com>
25047
25048         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
25049         (tree_unary_nonnegative_warnv_p): New.
25050         (tree_binary_nonnegative_warnv_p): New.
25051         (tree_single_nonnegative_warnv_p): New.
25052         (tree_invalid_nonnegative_warnv_p): New.
25053         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
25054
25055 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
25056
25057         PR 28322
25058         * opts.c (handle_option): Postpone 'unknown option' errors only for
25059         warning options.
25060
25061 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
25062
25063         PR target/35453
25064         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
25065         (_SIDD_XXX): This.
25066
25067 2008-03-04  Rafael Espíndola  <espindola@google.com>
25068
25069         * fold-const.c (tree_unary_nonzero_warnv_p): New.
25070         (tree_binary_nonzero_warnv_p): New.
25071         (tree_single_nonzero_warnv_p): New.
25072         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
25073
25074 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
25075
25076         PR middle-end/35456
25077         * fold-const.c (fold_cond_expr_with_comparison): Prevent
25078         transformations for modes that have signed zeros.
25079         * ifcvt.c (noce_try_abs): Ditto.
25080
25081 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
25082
25083         * config/i386/i386.c (override_options): Force
25084         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
25085
25086 2008-03-04  Jan Hubicka  <jh@suse.cz>
25087
25088         PR c++/35262
25089         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
25090         in last commit.
25091
25092 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
25093
25094         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
25095         label to probe the stack.
25096
25097 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
25098
25099         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
25100         (__gthr_win32_mutex_destroy): Declare.
25101         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
25102         __gthr_win32_mutex_destroy.
25103         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
25104
25105 2008-03-03  Jan Hubicka  <jh@suse.cz>
25106
25107         PR c++/35262
25108         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
25109         aggressive on inlining cold calls.
25110
25111 2008-03-03  Richard Guenther  <rguenther@suse.de>
25112
25113         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
25114         struct copies into the expression table.
25115         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
25116         (try_to_simplify): Likewise.
25117         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
25118         integral and pointer arguments which do not change the
25119         precision to NOP_EXPRs.
25120         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
25121         VIEW_CONVERT_EXPR case.
25122
25123 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
25124
25125         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
25126         defined in a loop at depth 0 is invariant.
25127         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
25128         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
25129         be called at loop depth 0.
25130
25131 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
25132
25133         PR driver/35420
25134         * gcc.c (process_command): Update copyright notice dates.
25135         * gcov.c (print_version): Likewise.
25136         * gcov-dump.c (print_version): Likewise.
25137         * mips-tfile.c (main): Likewise.
25138         * mips-tdump.c (main): Likewise.
25139
25140 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
25141
25142         PR 24924
25143         * c-common.c (flag_permissive): Delete.
25144         (constant_expression_warnings): Check flags first.
25145         (constant_expression_error): New.
25146         * c-common.h (flag_permissive): Delete.
25147         (constant_expression_error): Declare.
25148         * flags.h (flag_permissive): Declare. Update description.
25149         * diagnostic.c (pedwarn): Update.
25150         (permerror): New.
25151         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
25152         (permissive_error_kind): New.
25153         * toplev.c (flag_permissive): Define. Update description.
25154         * toplev.h (permissive_error_kind): Declare.
25155         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
25156         (pedwarn_c90): Use pedantic_warning_kind.
25157         * c-opts.c (c_common_post_options): flag_permissive does not affect
25158         flag_pedantic_errors.
25159
25160 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
25161
25162         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
25163         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
25164         __absvsi2, __absvDI2): Use unsigned arithmetic.
25165
25166 2008-03-02  Andi Kleen  <ak@suse.de>
25167             Richard Guenther  <rguenther@suse.de>
25168
25169         * struct-equiv.c: Remove file.
25170         * cfg_cleanup.c (condjump_equiv_p): Remove.
25171         * Makefile.in (OBJS-common): Remove struct-equiv.o.
25172         (struct-equiv.o): Remove rule.
25173         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
25174         insns_match_p, struct_equiv_block_eq, struct_equiv_init,
25175         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
25176
25177 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
25178
25179         * ifcvt.c (noce_process_if_block): Try to handle only the then
25180         block if the else block exists but isn't suitable.
25181
25182 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
25183
25184         PR gcc/35063
25185         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
25186         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
25187         regression from previous patch.
25188
25189 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
25190
25191         PR gcc/35063
25192         * gthr.h: Add __gthread_mutex_destroy as a function that must be
25193         implemented.
25194         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
25195         * gthr-single.h (__gthread_mutex_destroy): Likewise.
25196         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
25197         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
25198         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
25199         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
25200         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
25201         (__gthread_mutex_destroy_function): Rename to
25202         __gthread_mutex_destroy.
25203         * gthr-dce.h (__gthread_mutex_destroy): Call
25204         pthread_mutex_destroy.
25205         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
25206         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
25207         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
25208
25209 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
25210
25211         * df-scan.c (df_ref_chain_change_bb): Simplify.
25212         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
25213         set_block_for_insn if there's any change.
25214         * df.h ((df_insn_change_bb): Fix prototype.
25215         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
25216         df_insn_change_bb, don't call set_block_for_insn.
25217         * emit-rtl.c (reorder_insns): Likewise.
25218         * haifa-sched.c (move_insn): Likewise.
25219
25220 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
25221
25222         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
25223
25224 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
25225
25226         * tree-flow-inline.h (next_readonly_imm_use): Return
25227         NULL_USE_OPERAND_P after the end.
25228
25229 2008-03-01  Richard Guenther  <rguenther@suse.de>
25230
25231         PR tree-optimization/35411
25232         * tree-sra.c (sra_build_assignment): Split conversion to
25233         final type to a separate statement if we are not assigning
25234         to a register.
25235
25236 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
25237
25238         * fold-const.c (fold_convertible_p): Correct the logic to follow
25239         that in fold_convert().
25240
25241 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
25242
25243         PR c++/35315
25244         * tree-inline.c (build_duplicate_type): When we make a
25245         duplicate type, make it unique in the canonical types system.
25246
25247 2008-02-29  Tom Tromey  <tromey@redhat.com>
25248
25249         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
25250         input_file_stack_history, input_file_stack_restored): Remove.
25251         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
25252         * input.h (struct file_stack): Remove.
25253         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
25254         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
25255         Likewise.
25256         * diagnostic.h (struct diagnostic_context) <last_module>: Change
25257         type.
25258         (diagnostic_last_module_changed): Add 'map' argument.
25259         (diagnostic_set_last_function): Likewise.
25260         * diagnostic.c (undiagnostic_report_current_module): Iterate using
25261         line map, not input_file_stack.
25262         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
25263
25264 2008-02-29  Paul Brook  <paul@codesourcery.com>
25265
25266         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
25267
25268 2008-02-29  Paul Brook  <paul@codesourcery.com>
25269
25270         * config/arm/ieee754-df.S (muldf3): Use RET macros.
25271
25272 2008-02-29  Richard Guenther  <rguenther@suse.de>
25273
25274         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
25275         vn_lookup_or_add.
25276         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
25277         value for comparing for a store match.
25278         (simplify_unary_expression): Do nothing for SSA_NAMEs.
25279         (try_to_simplify): Do not do a full-blown reference lookup.
25280
25281 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
25282
25283         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
25284         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
25285
25286         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
25287
25288 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
25289
25290         * tree-loop-linear.c (try_interchange_loops): Compare memory access
25291         strides against cache sizes.
25292
25293 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
25294
25295         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
25296         constant to fpul.
25297
25298 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
25299
25300         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
25301         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
25302         is smaller than the original promoted value.
25303         (simplify_subreg): If OP is a SUBREG, try to preserve its
25304         SUBREG_PROMOTED_VAR_P information.
25305
25306 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
25307
25308         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
25309         (VN_INFO_GET): Allocate new objects on the obstack.
25310         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
25311         for rpo_numbers_temp, for consistency.
25312         (free_scc_vn): Free the obstack.
25313
25314 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
25315
25316         * doc/invoke.texi: Document -ftree-loop-distribution.
25317         * tree-loop-distribution.c: New.
25318         * tree-pass.h (pass_loop_distribution): New.
25319         * graphds.h (struct graph): Add htab_t indices.
25320         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
25321         * tree-vectorizer.c (rename_variables_in_loop): Extern.
25322         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
25323         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
25324         * tree-data-ref.c (debug_data_dependence_relations): New.
25325         (dump_data_dependence_relation): Also print data references.
25326         (free_data_ref): Extern.
25327         (same_access_functions): Moved...
25328         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
25329         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
25330         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
25331         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
25332         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
25333         (stmts_from_loop): Skip LABEL_EXPR.
25334         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
25335         New.
25336         (build_rdg): Initialize rdg->indices htab.
25337         (free_rdg, stores_from_loop, ref_base_address,
25338         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
25339         have_similar_memory_accesses_1, ref_base_address_1,
25340         remove_similar_memory_refs): New.
25341         * tree-data-ref.h: Depend on tree-chrec.h.
25342         (debug_data_dependence_relations, free_data_ref): Declared.
25343         (same_access_functions): ... here.
25344         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
25345         New.
25346         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
25347         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
25348         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
25349         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
25350         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
25351         rdg_vertex_for_stmt): Declared.
25352         (struct rdg_edge): Add level.
25353         (RDGE_LEVEL): New.
25354         (free_rdg, stores_from_loop, remove_similar_memory_refs,
25355         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
25356         Declared.
25357         (rdg_has_similar_memory_accesses): New.
25358         * tree-vect-analyze.c: Remove unused static decls.
25359         * lambda.h (dependence_level): New.
25360         * common.opt (ftree-loop-distribution): New.
25361         * tree-flow.h (mark_virtual_ops_in_bb,
25362         slpeel_tree_duplicate_loop_to_edge_cfg,
25363         rename_variables_in_loop): Declared.
25364         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
25365         (OBJS-common): Add tree-loop-distribution.o.
25366         (tree-loop-distribution.o): New rule.
25367         * tree-cfg.c (mark_virtual_ops_in_bb): New.
25368         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
25369         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
25370
25371 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
25372
25373         PR target/33963
25374         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
25375         other than structures and unions.
25376
25377 2008-02-28  Richard Guenther  <rguenther@suse.de>
25378
25379         Revert:
25380         2008-02-26  Richard Guenther  <rguenther@suse.de>
25381
25382         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
25383         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
25384         (lookup_decl_from_uid): Declare.
25385         (remove_decl_from_map): Likewise.
25386         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
25387         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
25388         (decl_for_uid_map): New global hashtable mapping DECL_UID
25389         to the decl tree.
25390         (init_ttree): Allocate it.
25391         (insert_decl_to_uid_decl_map): New helper function.
25392         (make_node_stat): Insert new decls into the map.
25393         (copy_node_stat): Likewise.
25394         (lookup_decl_from_uid): New function.
25395         (remove_decl_from_map): Likewise.
25396         (print_decl_for_uid_map_statistics): New helper.
25397         (dump_tree_statistics): Call it.
25398
25399         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
25400         (referenced_var_iterator): Adjust.
25401         (FOR_EACH_REFERENCED_VAR): Adjust.
25402         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
25403         (num_referenced_vars): Adjust.
25404         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
25405         (first_referenced_var): Remove.
25406         (end_referenced_vars_p): Likewise.
25407         (next_referenced_var): Likewise.
25408         (referenced_var_iterator_set): New helper function.
25409         * tree-dfa.c (referenced_var_lookup): Adjust.
25410         (referenced_var_check_and_insert): Likewise.
25411         (remove_referenced_var): Likewise.
25412         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
25413         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
25414         (verify_call_clobbering): Likewise.
25415         (verify_memory_partitions): Likewise.
25416         (init_tree_ssa): Allocate bitmap instead of hashtable for
25417         referenced_vars.
25418         (delete_tree_ssa): Adjust.
25419         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
25420         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
25421         (compute_tag_properties): Likewise.
25422         (set_initial_properties): Likewise.
25423         (find_partition_for): Likewise.
25424         (update_reference_counts): Likewise.
25425         (dump_may_aliases_for): Likewise.
25426         * tree-ssa-operands.c (add_virtual_operand): Likewise.
25427         (add_call_clobber_ops): Likewise.
25428         (add_call_read_ops): Likewise.
25429         (get_asm_expr_operands): Likewise.
25430         * tree-into-ssa.c (dump_decl_set): Likewise.
25431         (update_ssa): Likewise.
25432         * tree-sra.c (scan_function): Likewise.
25433         (decide_instantiations): Likewise.
25434         (scalarize_parms): Likewise.
25435         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
25436         (dsa_named_for): Likewise.
25437         * tree-ssa-structalias.c (update_alias_info): Likewise.
25438         (merge_smts_into): Likewise.
25439
25440 2008-02-27  David Daney  <ddaney@avtrex.com>
25441
25442         PR target/34409
25443         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
25444         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
25445         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
25446         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
25447         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
25448
25449 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
25450
25451         PR target/25477
25452         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
25453         (BUILT_IN_NEXTTOWARD): Remove.
25454         (BUILT_IN_NEXTTOWARDF): Ditto.
25455         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
25456         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
25457
25458 2008-02-27  Tom Tromey  <tromey@redhat.com>
25459
25460         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
25461         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
25462
25463 2008-02-27  Jan Beulich  <jbeulich@novell.com>
25464
25465         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
25466         update the respective field on newdecl.
25467
25468 2008-02-27  Revital Eres  <eres@il.ibm.com>
25469
25470         PR rtl-optimization/34999
25471         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
25472         crossing edges that ends with a call insn.
25473         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
25474         call insn and clear the EDGE_CROSSING flag of the crossing edge
25475         when fixing fallthru edges.
25476
25477 2008-02-27  Richard Guenther  <rguenther@suse.de>
25478
25479         PR middle-end/35390
25480         * fold-const.c (fold_unary): Return the correct argument,
25481         converted to the result type.
25482
25483 2008-02-27  Richard Guenther  <rguenther@suse.de>
25484
25485         PR middle-end/34971
25486         * expr.c (expand_expr_real_1): Assert on rotates that operate
25487         on partial modes.
25488         * fold-const.c (fold_binary): Use the types precision, not the
25489         bitsize of the mode if folding rotate expressions.  Build rotates
25490         only for full modes.
25491
25492 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
25493
25494         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
25495         and CPP_PRAGMA_EOL.
25496         * c-pragma.c (pragma_ns_name): New typedef.
25497         (registered_pp_pragmas): New variable.
25498         (c_pp_lookup_pragma): New function.
25499         (c_register_pragma_1): If flag_preprocess_only, do nothing
25500         for non-expanded pragmas, for expanded ones push pragma's
25501         namespace and name into registered_pp_pragmas vector.
25502         (c_invoke_pragma_handler): Register OpenMP pragmas even when
25503         flag_preprocess_only, don't register GCC pch_preprocess
25504         pragma if flag_preprocess_only.
25505         * c-opts.c (c_common_init): Call init_pragma even if
25506         flag_preprocess_only.
25507         * c-pragma.c (c_pp_lookup_pragma): New prototype.
25508         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
25509         cpp_register_pragma if flag_preprocess_only.
25510
25511 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25512
25513         PR c/28800
25514         * c-parser.c (c_parser_translation_unit): Warn for empty
25515         translation unit, not empty source file.
25516
25517 2008-02-26  Paul Brook  <paul@codesourcery.com>
25518
25519         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
25520         operand for Thumb-2.
25521         * config/arm/arm.h (reg_class): Add CORE_REGS.
25522         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
25523         (BASE_REG_CLASS): Use CORE_REGS.
25524         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
25525         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
25526         (REGNO_OK_FOR_INDEX_P): Exclude SP.
25527         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
25528         ARM_REGNO_OK_FOR_INDEX_P.
25529         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
25530         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
25531         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
25532         (ldm/stm peepholes): Ditto.
25533         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
25534         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
25535         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
25536         * config/arm/constraints.md: Enable "k" constraint on ARM.
25537
25538 2008-02-27  Ben Elliston  <bje@au.ibm.com>
25539
25540         * config/rs6000/rs6000.c: Annotate cache line size field in all
25541         instances of struct processor_costs.
25542
25543 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
25544
25545         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
25546         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
25547         jump_bypass): New counters.
25548         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
25549         * dce.c (gate_ud_dce): Same.
25550         (gate_fast_dce): Same.
25551         * dse.c (gate_dse1): New function.
25552         (gate_dse2): New function.
25553         (gate_dse): Merge results of new gate functions.
25554         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
25555         (gate_handle_jump_bypass): Add dbg_cnt.
25556         (gate_handle_gcse): Add dbg_cnt.
25557         * ifcvt.c (gate_handle_if_conversion): Same.
25558         (gate_handle_if_after_combine): Same.
25559         (gate_handle_if_after_reload): Same.
25560         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
25561
25562 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
25563
25564         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
25565         line sizes.
25566         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
25567
25568 2008-02-26  Jason Merrill  <jason@redhat.com>
25569
25570         PR c++/35315
25571         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
25572         alone if it's the naming decl for the type's main variant.
25573
25574 2008-02-26  Tom Tromey  <tromey@redhat.com>
25575
25576         * system.h (USE_MAPPED_LOCATION): Poison.
25577         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
25578         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
25579         (make_goto_expr_edges): Likewise.
25580         (remove_bb): Likewise.
25581         (execute_warn_function_return): Likewise.
25582         * basic-block.h (struct edge_def) <goto_locus>: Change type to
25583         location_t.
25584         * c-common.c (fname_decl): Remove old location code.
25585         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
25586         location code.
25587         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
25588         variant.
25589         (ASM_INPUT_SOURCE_LOCATION): Likewise.
25590         (gen_rtx_ASM_INPUT): Likewise.
25591         (gen_rtx_ASM_INPUT_loc): Likewise.
25592         (get_rtx_asm_OPERANDS): Remove.
25593         * cfglayout.c (insn_locators_alloc): Remove old location code.
25594         (set_curr_insn_source_location): Likewise.
25595         (curr_insn_locator): Likewise.
25596         * print-tree.c (print_node): Remove old location code.
25597         * tree-mudflap.c (mf_varname_tree): Remove old location code.
25598         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
25599         * cfgexpand.c (expand_gimple_cond_expr): Don't use
25600         location_from_locus.
25601         (construct_exit_block): Remove old location code.
25602         * emit-rtl.c (force_next_line_note): Remove old location code.
25603         * profile.c (branch_prob): Remove old location code.
25604         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
25605         LOC_LINE): Remove old-location variants.
25606         * langhooks.c (lhd_print_error_function): Remove old location
25607         code.
25608         * configure, config.in: Rebuilt.
25609         * configure.ac (--enable-mapped-location): Remove.
25610         * c-decl.c (c_init_decl_processing): Remove old location code.
25611         (finish_function): Likewise.
25612         * recog.c (decode_asm_operands): Remove old location code.
25613         * c-pch.c (c_common_read_pch): Remove old location code.
25614         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
25615         variants.
25616         * gimple-low.c (lower_function_body): Remove old location code.
25617         * toplev.c (unknown_location): Remove.
25618         (push_srcloc): Remove old-location variant.
25619         (process_options): Remove old location code.
25620         (lang_dependent_init): Likewise.
25621         * input.h (UNKNOWN_LOCATION): Move definition.
25622         (location_t): Undeprecate.
25623         (source_locus): Remove.
25624         (location_from_locus): Remove.
25625         (struct location_s): Remove.
25626         Remove all old-location code.
25627         (input_line, input_filename): Remove.
25628         * final.c (final_scan_insn): Remove old location code.
25629         * diagnostic.c (diagnostic_build_prefix): Remove
25630         USE_MAPPED_LOCATION test.
25631         * tree.h (gimple_stmt) <locus>: Now a location_t.
25632         (tree_exp) <locus>: Likewise.
25633         (DECL_IS_BUILTIN): Remove old-location variant.
25634         (annotate_with_file_line, annotate_with_locus): Likewise.
25635         (expr_locus, set_expr_locus): Update.
25636         * tree.c (build1_stat): Remove old location code.
25637         (last_annotated_node): Remove.
25638         (annotate_with_file_line): Remove old-location variant.
25639         (annotate_with_locus): Likewise.
25640         (expr_location): Remove old location code.
25641         (set_expr_location): Likewise.
25642         (expr_has_location): Likewise.
25643         (expr_locus): Likewise.
25644         (set_expr_locus): Likewise.
25645         (expr_filename): Don't use location_from_locus.
25646         (expr_lineno): Likewise.
25647         * rtl-error.c (location_for_asm): Remove old location code.
25648         * c-lex.c (cb_line_change): Remove old location code.
25649         (fe_file_change): Likewise.
25650         (cb_def_pragma): Likewise.
25651         (c_lex_with_flags): Likewise.
25652         * gengtype.c (do_typedef): Don't special-case location types.
25653         (define_location_structures): Remove.
25654         (main): Don't call define_location_structures.
25655         * tree-pretty-print.c (dump_implicit_edges): Remove old location
25656         code.
25657
25658 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
25659
25660         PR 26264
25661         * builtins.def (BUILT_IN_STDARG_START): Remove.
25662         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
25663         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
25664         * tree-inline.c (inline_forbidden_p_1): Likewise.
25665
25666 2008-02-26  Richard Guenther  <rguenther@suse.de>
25667
25668         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
25669         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
25670         (lookup_decl_from_uid): Declare.
25671         (remove_decl_from_map): Likewise.
25672         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
25673         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
25674         (decl_for_uid_map): New global hashtable mapping DECL_UID
25675         to the decl tree.
25676         (init_ttree): Allocate it.
25677         (insert_decl_to_uid_decl_map): New helper function.
25678         (make_node_stat): Insert new decls into the map.
25679         (copy_node_stat): Likewise.
25680         (lookup_decl_from_uid): New function.
25681         (remove_decl_from_map): Likewise.
25682         (print_decl_for_uid_map_statistics): New helper.
25683         (dump_tree_statistics): Call it.
25684
25685         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
25686         (referenced_var_iterator): Adjust.
25687         (FOR_EACH_REFERENCED_VAR): Adjust.
25688         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
25689         (num_referenced_vars): Adjust.
25690         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
25691         (first_referenced_var): Remove.
25692         (end_referenced_vars_p): Likewise.
25693         (next_referenced_var): Likewise.
25694         (referenced_var_iterator_set): New helper function.
25695         * tree-dfa.c (referenced_var_lookup): Adjust.
25696         (referenced_var_check_and_insert): Likewise.
25697         (remove_referenced_var): Likewise.
25698         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
25699         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
25700         (verify_call_clobbering): Likewise.
25701         (verify_memory_partitions): Likewise.
25702         (init_tree_ssa): Allocate bitmap instead of hashtable for
25703         referenced_vars.
25704         (delete_tree_ssa): Adjust.
25705         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
25706         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
25707         (compute_tag_properties): Likewise.
25708         (set_initial_properties): Likewise.
25709         (find_partition_for): Likewise.
25710         (update_reference_counts): Likewise.
25711         (dump_may_aliases_for): Likewise.
25712         * tree-ssa-operands.c (add_virtual_operand): Likewise.
25713         (add_call_clobber_ops): Likewise.
25714         (add_call_read_ops): Likewise.
25715         (get_asm_expr_operands): Likewise.
25716         * tree-into-ssa.c (dump_decl_set): Likewise.
25717         (update_ssa): Likewise.
25718         * tree-sra.c (scan_function): Likewise.
25719         (decide_instantiations): Likewise.
25720         (scalarize_parms): Likewise.
25721         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
25722         (dsa_named_for): Likewise.
25723         * tree-ssa-structalias.c (update_alias_info): Likewise.
25724         (merge_smts_into): Likewise.
25725
25726 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
25727
25728         PR 34351
25729         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
25730         * c-opts.c (c_common_handle_option): Wall enables
25731         Wvolatile-register-var.
25732         * common.opt: Move Wvolatile-register-var to...
25733         * c.opt: ...here.
25734
25735 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
25736
25737         * common.opt (Wlarger-than=): New.
25738         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
25739         -Wlarger-than=.
25740         * opts.c (common_handle_option): Handle -Wlarger-than=.
25741         * optc-gen.awk: Likewise.
25742         * opth-gen.awk: Likewise.
25743         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
25744         * tree-optimize.c (tree_rest_of_compilation): Likewise.
25745
25746 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25747
25748         * c-common.c (match_case_to_enum_1): Add appropriate
25749         OPT_W* parameter to warning.
25750         (c_do_switch_warnings): Likewise.
25751         * c-typeck.c (warning_init): Add one more parameter following
25752         'warning' function.
25753         (push_init_level): Update call to warning_init.
25754         (pop_init_level): Likewise.
25755         (add_pending_init): Likewise.
25756         (output_init_element: Likewise.
25757
25758 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
25759
25760         PR 28322
25761         * toplev.c (toplev_main): If there are warnings or error, print
25762         errors for ignored options.
25763         * opts.c (ignored_options): New static variable.
25764         (postpone_unknown_option_error): New.
25765         (print_ignored_options): New.
25766         (handle_option): Postpone errors for unknown -Wno-* options.
25767         * opts.h (print_ignored_options): Declare.
25768
25769 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
25770
25771         * config/mips/mips.md (loadgp_blockage, blockage): Change type
25772         to "ghost".
25773
25774 2008-02-25  Richard Guenther  <rguenther@suse.de>
25775
25776         Revert:
25777         2008-02-25  Richard Guenther  <rguenther@suse.de>
25778
25779         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
25780         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
25781         (lookup_decl_from_uid): Declare.
25782         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
25783         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
25784         (decl_for_uid_map): New global hashtable mapping DECL_UID
25785         to the decl tree.
25786         (init_ttree): Allocate it.
25787         (insert_decl_to_uid_decl_map): New helper function.
25788         (make_node_stat): Insert new decls into the map.
25789         (copy_node_stat): Likewise.
25790         (lookup_decl_from_uid): New function.
25791         (print_decl_for_uid_map_statistics): New helper.
25792         (dump_tree_statistics): Call it.
25793
25794         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
25795         (referenced_var_iterator): Adjust.
25796         (FOR_EACH_REFERENCED_VAR): Adjust.
25797         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
25798         (num_referenced_vars): Adjust.
25799         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
25800         (first_referenced_var): Remove.
25801         (end_referenced_vars_p): Likewise.
25802         (next_referenced_var): Likewise.
25803         (referenced_var_iterator_set): New helper function.
25804         * tree-dfa.c (referenced_var_lookup): Adjust.
25805         (referenced_var_check_and_insert): Likewise.
25806         (remove_referenced_var): Likewise.
25807         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
25808         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
25809         (verify_call_clobbering): Likewise.
25810         (verify_memory_partitions): Likewise.
25811         (init_tree_ssa): Allocate bitmap instead of hashtable for
25812         referenced_vars.
25813         (delete_tree_ssa): Adjust.
25814         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
25815         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
25816         (compute_tag_properties): Likewise.
25817         (set_initial_properties): Likewise.
25818         (find_partition_for): Likewise.
25819         (update_reference_counts): Likewise.
25820         (dump_may_aliases_for): Likewise.
25821         * tree-ssa-operands.c (add_virtual_operand): Likewise.
25822         (add_call_clobber_ops): Likewise.
25823         (add_call_read_ops): Likewise.
25824         (get_asm_expr_operands): Likewise.
25825         * tree-into-ssa.c (dump_decl_set): Likewise.
25826         (update_ssa): Likewise.
25827         * tree-sra.c (scan_function): Likewise.
25828         (decide_instantiations): Likewise.
25829         (scalarize_parms): Likewise.
25830         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
25831         (dsa_named_for): Likewise.
25832         * tree-ssa-structalias.c (update_alias_info): Likewise.
25833         (merge_smts_into): Likewise.
25834
25835 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
25836
25837         PR fortran/29549
25838         * doc/invoke.texi (-fcx-limited-range): Document new option.
25839         * toplev.c (process_options): Handle -fcx-fortran-rules.
25840         * common.opt: Add documentation for -fcx-fortran-rules.
25841
25842 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
25843
25844         PR c/35162
25845         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
25846         actual behaviour and C99.
25847
25848 2008-02-26  Ben Elliston  <bje@au.ibm.com>
25849
25850         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
25851         (ASM_CPU_POWER6_SPEC): Likewise.
25852         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
25853         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
25854         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
25855
25856 2008-02-25  Richard Guenther  <rguenther@suse.de>
25857
25858         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
25859         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
25860         (lookup_decl_from_uid): Declare.
25861         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
25862         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
25863         (decl_for_uid_map): New global hashtable mapping DECL_UID
25864         to the decl tree.
25865         (init_ttree): Allocate it.
25866         (insert_decl_to_uid_decl_map): New helper function.
25867         (make_node_stat): Insert new decls into the map.
25868         (copy_node_stat): Likewise.
25869         (lookup_decl_from_uid): New function.
25870         (print_decl_for_uid_map_statistics): New helper.
25871         (dump_tree_statistics): Call it.
25872
25873         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
25874         (referenced_var_iterator): Adjust.
25875         (FOR_EACH_REFERENCED_VAR): Adjust.
25876         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
25877         (num_referenced_vars): Adjust.
25878         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
25879         (first_referenced_var): Remove.
25880         (end_referenced_vars_p): Likewise.
25881         (next_referenced_var): Likewise.
25882         (referenced_var_iterator_set): New helper function.
25883         * tree-dfa.c (referenced_var_lookup): Adjust.
25884         (referenced_var_check_and_insert): Likewise.
25885         (remove_referenced_var): Likewise.
25886         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
25887         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
25888         (verify_call_clobbering): Likewise.
25889         (verify_memory_partitions): Likewise.
25890         (init_tree_ssa): Allocate bitmap instead of hashtable for
25891         referenced_vars.
25892         (delete_tree_ssa): Adjust.
25893         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
25894         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
25895         (compute_tag_properties): Likewise.
25896         (set_initial_properties): Likewise.
25897         (find_partition_for): Likewise.
25898         (update_reference_counts): Likewise.
25899         (dump_may_aliases_for): Likewise.
25900         * tree-ssa-operands.c (add_virtual_operand): Likewise.
25901         (add_call_clobber_ops): Likewise.
25902         (add_call_read_ops): Likewise.
25903         (get_asm_expr_operands): Likewise.
25904         * tree-into-ssa.c (dump_decl_set): Likewise.
25905         (update_ssa): Likewise.
25906         * tree-sra.c (scan_function): Likewise.
25907         (decide_instantiations): Likewise.
25908         (scalarize_parms): Likewise.
25909         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
25910         (dsa_named_for): Likewise.
25911         * tree-ssa-structalias.c (update_alias_info): Likewise.
25912         (merge_smts_into): Likewise.
25913
25914 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
25915
25916         PR target/35258
25917         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
25918         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
25919         * alias.h (nonoverlapping_memrefs_p): Likewise.
25920
25921 2008-02-25  Jan Beulich  <jbeulich@novell.com>
25922
25923         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
25924         * config/i386/netware-libgcc.exp: Add __bswap?i2,
25925         __emultls_get_address, __emultls_register_common,
25926         __floatundi?f, and _Unwind_GetIPInfo.
25927         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
25928         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
25929         (gen_regparm_prefix): Likewise.
25930         (i386_nlm_encode_section_info): Sync with
25931         config/i386/winnt.c:i386_pe_encode_section_info().
25932         (i386_nlm_maybe_mangle_decl_assembler_name): New.
25933         i386_nlm_mangle_decl_assembler_name): New.
25934         (netware_override_options): New.
25935         * config/i386/netware.h (netware_override_options): Declare.
25936         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
25937         (i386_nlm_mangle_decl_assembler_name): Declare.
25938         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
25939
25940 2008-02-25  Ben Elliston  <bje@au.ibm.com>
25941
25942         PR other/32948
25943         * c-decl.c (grokdeclarator): Remove unused local variables
25944         `typedef_type' and `type_as_written'.
25945         * bb-reorder.c
25946         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
25947         unused local variable `has_hot_blocks'.
25948         (fix_crossing_conditional_branches): Remove unused local variable
25949         `prev_bb'.
25950
25951 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
25952
25953         PR middle-end/19984
25954         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
25955         using DEF_C99_BUILTIN.
25956         (BUILT_IN_NANF): Ditto.
25957         (BUILT_IN_NANL): Ditto.
25958
25959 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
25960             Revital Eres  <eres@il.ibm.com>
25961
25962         * modulo-sched.c (calculate_must_precede_follow): Address TODO
25963         regarding the order of two dependent insns in the same row.
25964
25965 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
25966
25967         * stor-layout.c (layout_decl): Do not bump the alignment of a
25968         bit-field to more than byte alignment if it is packed.
25969
25970 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
25971
25972         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
25973         e300c2 and e300c3.
25974
25975 2008-02-24  Diego Novillo  <dnovillo@google.com>
25976
25977         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
25978
25979         PR 33738
25980         * tree-vrp.c (vrp_evaluate_conditional): With
25981         -Wtype-limits, emit a warning when comparing against a
25982         constant outside the natural range of OP0's type.
25983         * c.opt (Wtype-limits): Move ...
25984         * common.opt (Wtype-limits): ... here.
25985
25986 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
25987
25988         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
25989         * config/rs6000/e300c2c3.md: New file.
25990         * config/rs6000/rs6000.c (processor_costs): Add new costs for
25991         e300c2 and e300c3.
25992         (rs6000_override_options): Add e300c2 and e300c3 cases to
25993         processor_target_table. Do not allow usage of Altivec or Spe
25994         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
25995         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
25996         * config/rs6000/rs6000.h (processor_type): Add
25997         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
25998         (ASM_CPU_SPEC): Add e300c2 and e300c3.
25999         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
26000         and ppce300c3. Include e300c2c3.md.
26001
26002 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
26003
26004         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
26005         instead of TARGET_STRICT_ALIGN.
26006
26007 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
26008
26009         * explow.c (memory_address): Assert that the generated address is
26010         valid.
26011
26012 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
26013
26014         PR target/25477
26015         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
26016         * config/darwin-ppc-ldouble-patch.def: New file.
26017         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
26018         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
26019         SUBTARGET_INIT_BUILTINS if defined.
26020         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
26021         New functions.
26022
26023 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
26024
26025         PR rtl-opt/33512
26026         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
26027         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
26028
26029 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
26030
26031         PR pch/35027
26032         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
26033         file" warning condtional on -Winvalid-PCH.
26034
26035 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
26036
26037         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
26038
26039 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
26040
26041         PR target/22076
26042         PR target/34256
26043         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
26044         prevent reload from using MMX registers.
26045         (*mov<mode>_internal): Ditto.
26046         (*movv2sf_internal_rex64): Ditto.
26047         (*movv2sf_internal): Ditto.
26048
26049 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26050
26051         PR documentation/31569
26052         * doc/install.texi2html: Use makeinfo --no-number-sections.
26053
26054 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
26055
26056         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
26057         ensure that we can address an entire entity > 8 bytes.  Don't
26058         generate reg+reg addressing for such data.
26059
26060 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
26061
26062         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
26063         strings when optimizing for size, unless the target cares about
26064         alignment.
26065
26066 2008-02-22  Tom Tromey  <tromey@redhat.com>
26067
26068         * regclass.c (current_pass): Remove declaration.
26069
26070 2008-02-22  Anatoly Sokolov <aesok@post.ru>
26071
26072         * config/avr/libgcc.S (__RAMPZ__): Define.
26073         (__do_copy_data): Add for devices with 128KB code memory.
26074
26075 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
26076
26077         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
26078         Use spe_abi.
26079         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
26080
26081 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
26082
26083         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
26084         GENNONACR_REGS.
26085
26086 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26087
26088         PR c/19999
26089         * c-typeck.c (build_binary_op): Warn about floating point
26090         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
26091
26092 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
26093
26094         PR target/34526
26095         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
26096         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
26097         add vrsave.
26098         (rs6000_override_options): Set altivec_abi as default, not override,
26099         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
26100         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
26101         is used; use new member spe_abi.
26102         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
26103         spe_abi and altivec_abi.
26104
26105 2008-02-22  Tomas Bily  <tbily@suse.cz>
26106
26107         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
26108
26109 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26110
26111         PR bootstrap/35273
26112         * config.build (build_file_translate): Set to `CMD //c' only if
26113         it works.
26114         * Makefile.in (build_file_translate): Improve comment.
26115
26116 2008-02-21  Jan Hubicka  <jh@suse.cz>
26117
26118         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
26119         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
26120         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
26121
26122 2008-02-21  Michael Matz  <matz@suse.de>
26123
26124         PR target/35264
26125         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
26126
26127 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
26128
26129         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
26130         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
26131         as insn constraint.
26132         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
26133         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
26134         SSE_VEC_FLOAT_MODE_P as insn constraint.
26135         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
26136         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
26137         sse4a_movntdf using MODEF mode iterator.
26138         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
26139         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
26140         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
26141         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
26142         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
26143         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
26144         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
26145
26146 2008-02-21  Richard Guenther  <rguenther@suse.de>
26147
26148         * tree.def (PAREN_EXPR): New tree code.
26149         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
26150         and PAREN_EXPR.
26151         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
26152         * expr.c (expand_expr_real_1): Likewise.
26153         * tree-inline.c (estimate_num_insns_1): Likewise.
26154         * tree-complex.c (expand_complex_move): Likewise.
26155         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
26156         as plain x.
26157
26158 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
26159
26160         PR target/35225
26161         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
26162
26163 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
26164
26165         PR target/35190
26166         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
26167
26168         * config/sh/sh.c (find_barrier): Don't go past
26169         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
26170
26171 2008-02-20  DJ Delorie  <dj@redhat.com>
26172
26173         * config/h8300/h8300.md (insv): Force source operand to be a register.
26174
26175         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
26176         as a jump, not as a plain insn.
26177
26178 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
26179
26180         * doc/invoke.texi (Warning Options): Add new option
26181         -Wframe-larger-than=.
26182         (-Wframe-larger-than): Document.
26183
26184         * flags.h (warn_frame_larger_than, frame_larger_than_size):
26185         Add declarations for new option variables.
26186
26187         * final.c (final_start_function): Check the frame size
26188         before emission and issue a Wframe-larger-than warning.
26189
26190         * opts.c (warn_frame_larger_than, frame_larger_than_size):
26191         Add definitions for new option variables.
26192         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
26193
26194         * common.opt (Wframe-larger-than=): New option.
26195
26196 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
26197
26198         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
26199         (<sse>_div<mode>3): Ditto.
26200         (<sse>_vmdiv<mode>3): Ditto.
26201         (<sse>_vmsqrt<mode>2): Ditto.
26202         (*smax<mode>3): Ditto.
26203         (sse5_frcz<mode>2): Ditto.
26204         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
26205         as insn constraint.
26206
26207 2008-02-20  Richard Guenther  <rguenther@suse.de>
26208
26209         PR middle-end/35265
26210         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
26211         be happy with INTEGRAL_TYPE_P.
26212
26213 2008-02-20  Richard Guenther  <rguenther@suse.de>
26214
26215         * fold-const.c (split_tree): Associate floatig-point expressions
26216         if flag_associative_math is set.
26217
26218 2008-02-20  Richard Guenther  <rguenther@suse.de>
26219
26220         * tree.h (fold_real_zero_addition_p): Declare.
26221         * fold-const.c (fold_real_zero_addition_p): Export.
26222         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
26223         floating-point operations with zero and one.
26224
26225 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
26226
26227         * doc/install.texi: Correct references to CFLAGS, replacing them
26228         with BOOT_CFLAGS.  Document flags used during bootstrap for
26229         target libraries.
26230
26231 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
26232
26233         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
26234         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
26235         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
26236         insn constraint.
26237         (smin<mode>3): Ditto from similar patterns.
26238         (smax<mode>3): Ditto.
26239         (*ieee_smin<mode>3): Ditto.
26240         (*ieee_smax<mode>3): Ditto.
26241         * config/i386/sse.md (sse): New mode attribute.
26242         (mov<mode>): Macroize expander from movv4sf and movv2df using
26243         SSEMODEF2P mode iterator.
26244         (<sse>_movnt<mode>): Ditto from similar patterns. Use
26245         SSE_VEC_FLOAT_MODE_P as insn constraint.
26246         (storent<mode>): Ditto.
26247         (storent<mode>): Macroize expander from storentsf and storentdf using
26248         MODEF mode iterator.
26249         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
26250         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
26251         (abs<mode>2): Ditto from similar patterns.
26252         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
26253         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
26254         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
26255         (<sse>_vmsqrt<mode>2): Ditto.
26256         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
26257         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
26258         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
26259         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
26260         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
26261         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
26262         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
26263         insn constraint.
26264         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
26265         iterator and SSE_FLOAT_MODE_P as insn constraint.
26266         (<sse>_ucomi): Ditto from similar patterns.
26267         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
26268         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
26269         SSE_VEC_FLOAT_MODE_P as insn constraint.
26270         (vcond<mode>): Ditto from similar patterns.
26271         (and<mode>3, *and<mode>3): Ditto.
26272         (<sse>_nand<mode>3): Ditto.
26273         (ior<mode>3, *ior<mode>3): Ditto.
26274         (xor<mode>3, *xor<mode>3): Ditto.
26275         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
26276         iterator and SSE_FLOAT_MODE_P as insn constraint.
26277         (*nand<mode>3): Ditto from similar patterns.
26278         (*ior<mode>3): Ditto.
26279         (*xor<mode>3): Ditto.
26280
26281 2008-02-20  Ira Rosen  <irar@il.ibm.com>
26282
26283         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
26284         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
26285         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
26286
26287 2008-02-19  Jan Hubicka  <jh@suse.cz>
26288
26289         * predict.c (tree_bb_level_predictions): Remove variable next
26290         mistakely introduced by previous commit.
26291
26292 2008-02-19  Jan Hubicka  <jh@suse.cz>
26293
26294         * predict.c (predict_paths_leading_to): Rewrite.
26295         (predict_paths_for_bb): New.
26296         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
26297
26298 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26299
26300         PR bootstrap/35218
26301         * Makefile.in (build_file_translate): New.
26302         (gcc-vers.texi): Use it for translating $(abs_srcdir).
26303         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
26304         * configure.ac (build_file_translate): Substitute it.
26305         * configure: Regenerate.
26306
26307 2008-02-19  Jan Hubicka  <jh@suse.cz>
26308
26309         PR rtl-optimization/34408
26310         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
26311         invalid sharing.
26312
26313 2008-02-19  Jan Hubicka  <jh@suse.cz>
26314
26315         PR middle-end/28779
26316         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
26317         call_expr.
26318
26319 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
26320
26321         PR Ada/35186
26322         * config/i386/i386-modes.def: Revert the last DI alignment
26323         change until Ada people can look into it.
26324
26325 2008-02-19  Nick Clifton  <nickc@redhat.com>
26326
26327         * opts.c (print_specific_help): Fix typo in --help text.
26328
26329 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
26330
26331         PR target/35239
26332         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
26333         32-bit inline asm without asm alternatives for host GCC < 3.0.
26334
26335 2008-02-19  Richard Guenther  <rguenther@suse.de>
26336
26337         PR tree-optimization/34989
26338         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
26339         Allow propagation to INDIRECT_REF if we can simplify only.
26340
26341 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
26342
26343         * c-common.c (warn_for_collisions_1): Use appropriate option when
26344         warning.
26345
26346 2008-02-19  Nick Clifton  <nickc@redhat.com>
26347
26348         PR other/31349
26349         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
26350         (handle_options): Fix indentation.
26351         (print_filtered_help): If no language-specific options were
26352         displayed tell the user how to list all the options supported by
26353         the language's front-end.
26354         (print_specific_help): Fix indentation and remove duplicate line.
26355         (common_handle_option): Handle the -v option.
26356         For --help enable the display of undocumented options if the -v
26357         switch has been included on the command line.
26358         For --help= check for overlaps in the arguments between the option
26359         classes and the language names and issue a warning when they
26360         cannot be disambiguated.
26361         * c.opt (v): Pass on to the common option handler.
26362
26363 2008-02-19  Revital Eres  <eres@il.ibm.com>
26364
26365         * modulo-sched.c (sms_schedule): Change dump message when
26366         create_ddg function fails.
26367         (try_scheduling_node_in_cycle): Rename row to cycle.
26368         (print_partial_schedule): Rename CYCLE to ROW.
26369
26370 2008-02-19  Christian Bruel  <christian.bruel@st.com>
26371             Zdenek Dvorak  <ook@ucw.cz>
26372
26373         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
26374
26375 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
26376
26377         PR target/33555
26378         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
26379         (*x86_movdicc_0_m1_se): Ditto.
26380
26381 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
26382
26383         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
26384         (CMPtype): Define as __gcc_CMPtype.
26385         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
26386         (CMPtype): Define as __gcc_CMPtype.
26387
26388 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
26389
26390         Support valgrind 3.3 for --enable-checking=valgrind.
26391         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
26392         here.
26393         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
26394         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
26395         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
26396         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
26397         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
26398         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
26399         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
26400         respectively.
26401         * ggc-zone.c: Similar.
26402         * ggc-page.c: Similar.
26403
26404 2008-02-19  Paul Brook  <paul@codesourcery.com>
26405
26406         PR target/35071
26407         * config/arm/ieee754-df.S: Fix do_it typo.
26408         * config/arm/ieee754-sf.S: Fix do_it typo.
26409
26410 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
26411
26412         PR target/35189
26413         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
26414         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
26415         (OPTION_MASK_ISA_SSE_SET): Likewise.
26416         (OPTION_MASK_ISA_SSE2_SET): Likewise.
26417         (OPTION_MASK_ISA_SSE3_SET): Likewise.
26418         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
26419         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
26420         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
26421         (OPTION_MASK_ISA_SSE4_SET): Likewise.
26422         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
26423         (OPTION_MASK_ISA_SSE5_SET): Likewise.
26424         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
26425         (OPTION_MASK_ISA_MMX_UNSET): Updated.
26426         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
26427         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
26428         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
26429         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
26430         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
26431         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
26432         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
26433         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
26434         (OPTION_MASK_ISA_SSE4): Removed.
26435         (ix86_handle_option): Turn on bits in ix86_isa_flags and
26436         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
26437         (override_options): Don't turn on implied SSE/MMX bits in
26438         ix86_isa_flags.
26439
26440 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
26441
26442         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
26443         32bit host.
26444
26445 2008-02-18  Joey Ye  <joey.ye@intel.com>
26446
26447         PR middle-end/34921
26448         * tree-nested.c (insert_field_into_struct): Set type alignment
26449         to field alignment if the former is less than the latter.
26450
26451 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
26452
26453         * BASE-VER: Set to 4.4.0.
26454
26455 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
26456
26457         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
26458         * doc/cfg.texi: Likewise.
26459         * doc/extend.texi: Likewise.
26460         * doc/gty.texi: Likewise.
26461         * doc/invoke.texi: Likewise.
26462         * doc/loop.texi: Likewise.
26463         * doc/md.texi: Likewise.
26464         * doc/passes.texi: Likewise.
26465         * doc/rtl.texi: Likewise.
26466         * doc/sourcebuild.texi: Likewise.
26467         * doc/tm.texi: Likewise.
26468         * doc/tree-ssa.texi: Likewise.
26469
26470 2008-02-17  Richard Guenther  <rguenther@suse.de>
26471
26472         PR middle-end/35227
26473         * tree-complex.c (init_parameter_lattice_values): Handle parameters
26474         without default definition.
26475
26476 2008-02-17  Richard Guenther  <rguenther@suse.de>
26477
26478         PR tree-optimization/35231
26479         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
26480         if A | B != 1.
26481
26482 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
26483
26484         Revert:
26485         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
26486         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
26487         libgcc_cmp_return mode.
26488
26489 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
26490
26491         PR c/28368
26492         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
26493
26494 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
26495
26496         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
26497         multilibs.
26498
26499 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26500
26501         * doc/c-tree.texi: Use `@.' where appropriate.
26502         * doc/extend.texi: Likewise.
26503         * doc/install.texi: Likewise.
26504         * doc/invoke.texi: Likewise.
26505         * doc/loop.texi: Likewise.
26506         * doc/makefile.texi: Likewise.
26507         * doc/md.texi: Likewise.
26508         * doc/passes.texi: Likewise.
26509         * doc/standards.texi: Likewise.
26510         * doc/tm.texi: Likewise.
26511
26512 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
26513
26514         PR middle-end/35196
26515         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
26516         in entry_bb.
26517         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
26518         rather than in entry_bb.
26519
26520 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
26521
26522         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
26523         libgcc_cmp_return mode.
26524
26525 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
26526
26527         PR middle-end/35130
26528         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
26529         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
26530
26531 2008-02-15  Richard Guenther  <rguenther@suse.de>
26532             Zdenek Dvorak  <ook@ucw.cz>
26533
26534         PR tree-optimization/35164
26535         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
26536         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
26537         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
26538         Only propagate addresses which do not have abnormal SSA_NAMEs
26539         in their operands.
26540
26541 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
26542
26543         PR target/35088
26544         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
26545
26546 2008-02-15  Jan Hubicka  <jh@suse.cz>
26547
26548         PR middle-end/35149
26549         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
26550
26551 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
26552
26553         PR middle-end/34621
26554         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
26555         when calculating alignment_pad.
26556
26557 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
26558
26559         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
26560         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
26561         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
26562         and STACK_BOUNDARY define.
26563
26564 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
26565
26566         PR preprocessor/35061
26567         * c-pragma.c (handle_pragma_pop_macro): Check that
26568         pushed_macro_table has been allocated.
26569
26570 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
26571
26572         PR middle-end/35136
26573         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
26574         (force_gimple_operand): Likewise.
26575         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
26576         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
26577         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
26578         (find_interesting_uses_address): Check addressability and alignment
26579         of the base expression only after substituting bases of IVs into it.
26580
26581 2008-02-14  Michael Matz  <matz@suse.de>
26582
26583         PR target/34930
26584         * function.c (instantiate_virtual_regs_in_insn): Reload address
26585         before falling back to reloading the whole operand.
26586
26587 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
26588
26589         * config/s390/s390.c (s390_mainpool_start): Emit the pool
26590         before the first section switch note.
26591
26592 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
26593
26594         * doc/bugreport.texi: Update copyright years.
26595         * doc/c-tree.texi: Likewise.
26596         * doc/cfg.texi: Likewise.
26597         * doc/cpp.texi: Likewise.
26598         * doc/cppinternals.texi: Likewise.
26599         * doc/fragments.texi: Likewise.
26600         * doc/frontends.texi: Likewise.
26601         * doc/gcc.texi: Likewise.
26602         * doc/gty.texi: Likewise.
26603         * doc/hostconfig.texi: Likewise.
26604         * doc/implement-c.texi: Likewise.
26605         * doc/libgcc.texi: Likewise.
26606         * doc/loop.texi: Likewise.
26607         * doc/makefile.texi: Likewise.
26608         * doc/options.texi: Likewise.
26609         * doc/passes.texi: Likewise.
26610         * doc/rtl.texi: Likewise.
26611         * doc/sourcebuild.texi: Likewise.
26612         * doc/standards.texi: Likewise.
26613         * doc/tree-ssa.texi: Likewise.
26614         * doc/trouble.texi: Likewise.
26615
26616         * doc/extend.texi: Use @: or add comma where appropriate.
26617         * doc/invoke.texi: Likewise.
26618         * doc/tm.texi: Likewise.
26619
26620 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
26621
26622         PR target/34393
26623         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
26624         to a reg.
26625
26626 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
26627
26628         * doc/md.texi (clz, ctz): Add reference.
26629         * doc/rtl.texi (clz, ctz): Likewise.
26630
26631 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26632
26633         PR other/35148
26634         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
26635         srcdir.
26636
26637 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
26638
26639         * config/s390/s390.c (struct constant_pool): New field
26640         emit_pool_after added.
26641         (s390_mainpool_start): Set the emit_pool_after flag according
26642         to the section switch notes.
26643         (s390_mainpool_finish): Consider emit_pool_after when emitting
26644         the literal pool at the end of the function.
26645         (s390_chunkify_start): Force literal pool splits at section
26646         switch notes.
26647
26648 2008-02-13  Michael Matz  <matz@suse.de>
26649
26650         PR debug/35065
26651         * var-tracking.c (clobber_variable_part): Correctly traverse the
26652         list.
26653
26654 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
26655
26656         PR 29673
26657         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
26658         Add -fdump-ipa-inline.
26659         * tree-dump.c (dump_files): Remove tree-inlined dump.
26660         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
26661
26662 2008-02-12  Richard Guenther  <rguenther@suse.de>
26663
26664         PR tree-optimization/35171
26665         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
26666         default defs.
26667
26668 2008-02-12  Richard Guenther  <rguenther@suse.de>
26669
26670         PR middle-end/35163
26671         * fold-const.c (fold_widened_comparison): Use get_unwidened in
26672         value-preserving mode.  Disallow final truncation.
26673
26674 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
26675
26676         PR middle-end/35136
26677         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
26678         code from here to...
26679         (force_gimple_operand): ...here.
26680
26681 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
26682
26683         PR c++/35144
26684         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
26685         non-compatible pointers.
26686         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
26687         different FIELD_DECLs, try harder by comparing field offsets, sizes
26688         and types.
26689
26690         PR inline-asm/35160
26691         * function.c (match_asm_constraints_1): Don't replace the same input
26692         multiple times.
26693
26694 2008-02-12  Anatoly Sokolov <aesok@post.ru>
26695
26696         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
26697         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
26698         (expand_epilogue): Restore RAMPZ register.
26699         * config/avr/avr.md (RAMPZ_ADDR): New constant.
26700
26701 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
26702
26703         * config/i386/cygwin.asm: (__alloca): Correct calling
26704         convention and alignment.
26705         (__chkstk): Force 8 byte stack alignment.
26706
26707 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
26708             Richard Guenther  <rguenther@suse.de>
26709
26710         PR tree-optimization/33992
26711         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
26712         the zero we compare against.
26713
26714 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
26715
26716         PR libfortran/35063
26717         * gthr-win32.h (__gthread_mutex_destroy_function): New function
26718         to CloseHandle after unlocking to prevent accumulation of handle
26719         count.
26720
26721 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26722
26723         PR middle_end/34150
26724         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
26725         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
26726         and update LABEL_NUSES during and after reload.
26727
26728 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
26729
26730         PR middle-end/34627
26731         * combine.c (simplify_if_then_else): Make sure the comparison is
26732         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
26733
26734 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
26735
26736         PR bootstrap/35051
26737         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
26738         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
26739         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
26740         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
26741         * tree.h (get_type_static_bounds): Likewise.
26742
26743 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26744
26745         * doc/invoke.texi (Option Summary, C++ Dialect Options)
26746         (Objective-C and Objective-C++ Dialect Options, Warning Options):
26747         Make -Wfoo language annotations match what the compiler outputs.
26748
26749 2008-02-08  Sa Liu  <saliu@de.ibm.com>
26750
26751         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
26752         intrinsics spu_convts, spu_convtu, spu_convtf.
26753
26754 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
26755
26756         * doc/extend.texi (Function Attributes) <noinline>: Mention
26757         asm ("") as method to keep calls.
26758
26759 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
26760
26761         PR other/32754
26762         * doc/options.texi (Options): Replace references to opts.sh with
26763         optc-gen.awk.
26764         * opts-common.c: Likewise.
26765         * optc-gen.awk: Likewise.
26766
26767 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
26768
26769         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
26770
26771 2008-02-07  Richard Henderson  <rth@redhat.com>
26772
26773         PR rtl-opt/33410
26774         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
26775         EXPR_LIST for the REG_EQUAL instead of a comparison with a
26776         funny mode.
26777
26778 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
26779
26780         PR tree-optimization/35085
26781         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
26782         for operand entry oe2 in addition to operand entry oe3 in order to
26783         expose more opportunities for vectorizer sum reduction.
26784
26785 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26786
26787         PR other/35107
26788         * Makefile.in (LIBS): Remove $(GMPLIBS).
26789         (cc1-dummy, cc1): Add $(GMPLIBS).
26790
26791 2008-02-06  Jan Hubicka  <jh@suse.cz>
26792
26793         PR target/23322
26794         * i386.md (moddf_integer): Do not produce partial memory stalls for
26795         targets where it hurts.
26796
26797 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
26798
26799         PR target/35083
26800         * optabs.c (expand_float): Do not check for decimal modes when
26801         expanding unsigned integer through signed conversion.
26802
26803 2008-02-06  Nick Clifton  <nickc@redhat.com>
26804
26805         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
26806         inside the clobber with a match_operand and duplicated operand
26807         number in the constraint.
26808         (ineqbranchsi): Delete redundant comment.
26809
26810 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
26811
26812         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
26813         builtin_define ("__USE_INIT_FINI__").
26814         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
26815         -msx multilibs.
26816         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
26817
26818 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26819
26820         PR documentation/30330
26821         * doc/invoke.texi (C++ Dialect Options)
26822         (Objective-C and Objective-C++ Dialect Options, Warning Options):
26823         For each warning option -Wfoo that allows -Wno-foo, ensure both
26824         -Wfoo and -Wno-foo are listed in the option index.  Fix index
26825         entry of -Wswitch-default, index -Wnormalized= including the
26826         `=', and -Wlarger-than-@var{len} including @var{len}.
26827
26828 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
26829
26830         * config/i386/i386.md (floatunssisf2): Use
26831         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
26832         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
26833         Macroize expander using MODEF mode iterator.
26834
26835 2008-02-05  Diego Novillo  <dnovillo@google.com>
26836
26837         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
26838
26839         PR 33738
26840         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
26841
26842 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26843
26844         PR other/35070
26845         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
26846
26847 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
26848
26849         PR target/35084
26850         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
26851         to indicate if a message should be generated.
26852         (init_cumulative_args): Updated.
26853         (function_value_32): Likewise.
26854
26855 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
26856
26857         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
26858
26859 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
26860
26861         PR target/35083
26862         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
26863         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
26864
26865 2008-02-04  Diego Novillo  <dnovillo@google.com>
26866
26867         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
26868
26869         PR 33738
26870         * tree-vrp.c (vrp_evaluate_conditional): With
26871         -Wtype-limits, emit a warning when comparing against a
26872         constant outside the natural range of OP0's type.
26873
26874 2008-02-04  Richard Guenther  <rguenther@suse.de>
26875
26876         PR middle-end/33631
26877         * expr.c (count_type_elements): Give for unions instead of
26878         guessing.
26879
26880 2008-02-04  Richard Guenther  <rguenther@suse.de>
26881
26882         PR middle-end/35043
26883         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
26884         to TYPE_DOMAINs base type instead of using bitsizetype here.
26885
26886 2008-02-03  Jason Merrill  <jason@redhat.com>
26887
26888         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
26889
26890 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26891
26892         PR other/29972
26893         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
26894         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
26895         (RS/6000 and PowerPC Options): Fix typos and markup.
26896         * doc/passes.texi (Tree-SSA passes): Likewise.
26897
26898 2008-02-02  Michael Matz  <matz@suse.de>
26899
26900         PR target/35045
26901         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
26902         from record_last_reg_set_info.
26903         (record_last_reg_set_info): Take an RTX argument, iterate over all
26904         constituent hardregs.
26905         (record_last_set_info, record_opr_changes): Change calls to
26906         new signature or to record_last_reg_set_info_regno.
26907
26908 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
26909
26910         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
26911
26912 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
26913
26914         PR rtl-optimization/34773
26915         * reg-notes.def (EQUAL): Mention significance of combination of
26916         REG_EQUAL and REG_RETVAL.
26917         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
26918         insn that has a REG_RETVAL.
26919
26920 2008-02-01  Roger Sayle  <roger@eyesopen.com>
26921
26922         PR bootstrap/33781
26923         * configure.ac (--enable-fixed-point): Disable unless explicitly
26924         requested on IRIX.
26925         * configure: Regenerate.
26926
26927 2008-02-01  Richard Guenther  <rguenther@suse.de>
26928
26929         PR other/35042
26930         * invoke.texi (-finline-limit): Remove no longer true parts
26931         of the documentation.  Note that there is no default value.
26932
26933 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
26934             Mark Mitchell  <mark@codesourcery.com>
26935             Ben Elliston  <bje@au.ibm.com>
26936
26937         PR c/29326
26938         * doc/extend.texi (Other Builtins): Document.
26939
26940 2008-01-31  Tom Browder <tom.browder@gmail.com>
26941
26942         * doc/c-tree.texi (Types): Fix grammar.
26943         (Expression trees): Ditto.
26944         * doc/passes.texi (Tree-SSA passes): Ditto.
26945
26946         * doc/configterms.texi (Configure Terms): Fix typo.
26947         * doc/cpp.texi (Common Predefined Macros): Ditto.
26948         * doc/md.texi (Machine Constraints): Ditto.
26949
26950         * doc/makefile.texi (Makefile): Add comma.
26951
26952 2008-01-31  Tom Browder  <tom.browder@gmail.com>
26953             Gerald Pfeifer  <gerald@pfeifer.com>
26954
26955         * doc/sourcebuild.texi (Front End): Remove references to CVS
26956         and CVSROOT/modules.
26957         (Texinfo Manuals): Replace reference to CVS by one to SVN.
26958         (Back End): Remove reference to CVS.
26959
26960 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
26961
26962         PR target/34900
26963         * config/mips/mips.c (gen_load_const_gp): New function, taking a
26964         comment from...
26965         (mips16_gp_pseudo_reg): ...here.
26966         * config/mips/mips.md (load_const_gp): Replace with...
26967         (load_const_gp_<mode>): ...this :P-based insn.
26968
26969 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
26970
26971         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
26972         options. Minor fixes.
26973         (-std): Move reference to standards closer to where language
26974         standards are first mentioned.
26975
26976 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
26977
26978         PR rtl-optimization/34995
26979         * reload.c (alternative_allows_const_pool_ref): Take an rtx
26980         parameter and return a bool.  If the rtx parameter is nonnull,
26981         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
26982         (find_reloads): Update call accordingly.  Pass the new operand
26983         if it needed no address reloads, otherwise pass null.
26984
26985 2008-01-30  Richard Henderson  <rth@redhat.com>
26986
26987         PR c/34993
26988         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
26989         for unbounded arrays.
26990
26991 2008-01-30  Silvius Rus  <rus@google.com>
26992
26993         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
26994
26995 2008-01-30  Jan Hubicka  <jh@suse.cz>
26996
26997         PR target/34982
26998         * i386.c (init_cumulative_args): Use real function declaration when
26999         calling locally.
27000
27001 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
27002
27003         PR rtl-optimization/34998
27004         * global.c (build_insn_chain): Treat non-subreg_lowpart
27005         SUBREGs of pseudos as clobbering all the words covered by the
27006         SUBREG, not just all the bytes.
27007         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
27008         original df_ref rather than an extract parameter.
27009         (global_conflicts): Update call accordingly.
27010
27011 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
27012
27013         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
27014         the overflow check to make it easier to read.
27015         (__fixtfdi): Change the type of the ll member in union
27016         long_double to UDItype_x.
27017
27018 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
27019
27020         PR middle-end/34969
27021         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
27022         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
27023         * tree-inline.c (fold_marked_statements): Call
27024         cgraph_update_edges_for_call_stmt if folding a call statement.
27025         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
27026         debug_generic_stmt calls, reset it back afterwards.
27027
27028         PR c/35017
27029         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
27030         static decls.
27031         * c-typeck.c (build_external_ref): Don't pedwarn about
27032         static vars in current function's scope.
27033
27034 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
27035
27036         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
27037
27038 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
27039
27040         PR c/35002
27041         * ipa-struct-reorg.c: Fix spelling.
27042         * params.def: Ditto.
27043
27044 2008-01-29  Richard Guenther  <rguenther@suse.de>
27045
27046         PR middle-end/35006
27047         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
27048         field.
27049         * tree-inline.c (remap_type): Increment remapping_type_depth
27050         around remapping types.
27051         (copy_body_r): Only add referenced variables if they are referenced
27052         from code, not types.
27053
27054 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
27055
27056         PR c++/34055
27057         PR c++/34103
27058         PR c++/34219
27059         PR c++/34606
27060         PR c++/34753
27061         PR c++/34754
27062         PR c++/34755
27063         PR c++/34919
27064         PR c++/34961
27065         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
27066         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
27067
27068 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
27069
27070         PR target/34412
27071         * config/avr/avr.c (expand_prologue): Use correct QI mode frame
27072         pointer for tiny stack.
27073
27074 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
27075
27076         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
27077
27078 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
27079
27080         * config/vx-common.h: Fix typo in comment.
27081
27082 2008-01-28  Ian Lance Taylor  <iant@google.com>
27083
27084         PR c++/34862
27085         PR c++/33407
27086         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
27087         coalesce pointers if they have different DECL_NO_TBAA_P values.
27088         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
27089         between variables with different DECL_NO_TBAA_P values.
27090
27091 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
27092
27093         PR 31535
27094         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
27095         are not legitimate small data references on SPE targets.
27096
27097 2008-01-28  David Daney  <ddaney@avtrex.com>
27098
27099         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
27100
27101 2008-01-28  David Daney  <ddaney@avtrex.com>
27102
27103         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
27104
27105 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
27106
27107         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
27108         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
27109         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
27110         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
27111         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
27112         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
27113         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
27114         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
27115
27116 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
27117
27118         * basic-block.h (condjump_equiv_p): Fix comment.
27119
27120 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
27121
27122         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
27123         print_generic_stmt_indented): Fix comment.
27124
27125 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
27126
27127         * configure.ac (__stack_chk_fail): Add detecion for availability
27128         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
27129         * configure: Regenerate.
27130
27131 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
27132
27133         PR middle-end/34688
27134         * final.c (output_addr_const): Handle TRUNCATE.
27135
27136 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
27137
27138         PR target/34711
27139         * tree-ssa-loop-ivopts.c (comp_cost): New type.
27140         (zero_cost, infinite_cost): New constants.
27141         (struct cost_pair): Change type of cost to comp_cost.
27142         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
27143         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
27144         New functions.
27145         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
27146         split_address_cost, ptr_difference_cost, difference_cost,
27147         get_computation_cost_at, get_computation_cost,
27148         determine_use_iv_cost_generic, determine_use_iv_cost_address,
27149         determine_use_iv_cost_condition, determine_use_iv_costs,
27150         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
27151         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
27152         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
27153         Change type of cost to comp_cost.
27154         (determine_iv_cost): Increase cost of non-original ivs, instead
27155         of decreasing the cost of original ones.
27156         (get_address_cost): Indicate the complexity of the addressing mode
27157         in comp_cost.
27158         (try_add_cand_for): Prefer using ivs not specific to some object.
27159         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
27160
27161 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
27162             Janis Johnson  <janis187@us.ibm.com>
27163
27164         PR target/34814
27165         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
27166         (TARGET_INSTANTIATE_DECLS): Likewise.
27167         * target.h (expand_to_rtl_hook): New target hook.
27168         (instantiate_decls): Likewise.
27169         * function.c (instantiate_decl): Make non-static.  Rename to...
27170         (instantiate_decl_rtl): ... this.
27171         (instantiate_expr): Use instantiate_decl_rtl.
27172         (instantiate_decls_1): Likewise.
27173         (instantiate_decls): Likewise.
27174         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
27175         * function.h (instantiate_decl_rtl): Add prototype.
27176         * cfgexpand.c (target.h): New include.
27177         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
27178         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
27179         (TARGET_INSTANTIATE_DECLS): Likewise.
27180         (TARGET_INITIALIZER): New target hooks added.
27181         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
27182         New prototype.
27183         * config/rs6000/rs6000.c (tree-flow.h): New include.
27184         (machine_function): Add sdmode_stack_slot field.
27185         (rs6000_alloc_sdmode_stack_slot): New function.
27186         (rs6000_instantiate_decls): Likewise.
27187         (rs6000_secondary_memory_needed_rtx): Likewise.
27188         (rs6000_check_sdmode): Likewise.
27189         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
27190         (TARGET_INSTANTIATE_DECLS): Likewise.
27191         (rs6000_hard_regno_mode_ok): Allow SDmode.
27192         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
27193         (rs6000_emit_move): Handle SDmode.
27194         (function_arg_advance): Likewise.
27195         (function_arg): Likewise.
27196         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
27197         SDmode var args for 32-bit compiles.
27198         (rs6000_secondary_reload_class): Handle SDmode.
27199         (rs6000_output_function_epilogue): Likewise.
27200         (rs6000_function_value): Simplify if statement.
27201         (rs6000_libcall_value): Likewise.
27202         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
27203         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
27204         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
27205         (movsd_hardfloat): New define_insn.
27206         (movsd_softfloat): Likewise.
27207         (movsd_store): Likewise.
27208         (movsd_load): Likewise.
27209         (extendsddd2): Likewise.
27210         (extendsdtd2): Likewise.
27211         (truncddsd2): Likewise.
27212         (movdd_hardfloat64): Fixup comment.
27213         (UNSPEC_MOVSD_LOAD): New constant.
27214         (UNSPEC_MOVSD_STORE): Likewise.
27215
27216 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
27217
27218         PR c++/34965
27219         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
27220         TRUTH_XOR_EXPR.
27221         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
27222         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
27223         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
27224         and TRUTH_XOR_EXPR.
27225
27226 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
27227
27228         PR target/34794
27229         * config.gcc: Separate AIX 5.3 from AIX 6.1.
27230         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
27231         __LONGDOUBLE128 too.
27232         * config/rs6000/aix61.h: New file.
27233
27234 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
27235
27236         PR rtl-optimization/34959
27237         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
27238         popcount and parity rtxes the same mode as their operand.
27239         Truncate or extend the result to the return value's mode
27240         if necessary.
27241
27242 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
27243
27244         PR target/34981
27245         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
27246         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
27247         to GOT_VERSION_REGNUM.
27248         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
27249         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
27250         * config/mips/mips.c (mips_emit_call_insn): New function.
27251         (mips_call_tls_get_addr): Call mips_expand_call directly.
27252         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
27253         emit_call_insn.
27254         (mips16_build_call_stub): Likewise.  Return the call insn or null.
27255         (mips_expand_call): Update the call to mips16_build_call_stub
27256         accordingly and a remove redundant condition.  Assert that MIPS16
27257         stubs do not use lazy binding.  Use mips_emit_call_insn and return
27258         the call insn.
27259         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
27260         TARGET_USE_GOT.
27261         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
27262         (mips_avoid_hazard): Remove hazard_set handling.
27263         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
27264         (UNSPEC_RESTORE_GP): ...this.
27265         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
27266         (FAKE_CALL_REGNO): Rename to...
27267         (GOT_VERSION_REGNUM): ...this.
27268         (type): Add "ghost" value.  Add an associated insn reservation.
27269         (hazard_set): Remove.
27270         (exception_receiver): Rename to...
27271         (restore_gp): ...this and update the unspec identifier accordingly.
27272         (exception_receiver, nonlocal_got_receiver): New expanders.
27273         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
27274         FAKE_CALL_REGNO.  Remove hazard_set attribute.
27275         (set_got_version, update_got_version): New patterns.
27276
27277 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
27278
27279         PR target/34970
27280         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
27281
27282 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
27283
27284         PR other/31955
27285         * doc/install.texi2html: Generate gcc-vers.texi.
27286
27287 2008-01-25  DJ Delorie  <dj@redhat.com>
27288
27289         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
27290
27291 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
27292
27293         * config/c4x: Remove directory.
27294         * config.gcc (crx-*, mt-*): Mark obsolete.
27295         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
27296         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
27297         sh-*-rtemscoff*): Remove cases.
27298         * defaults.h (C4X_FLOAT_FORMAT): Remove.
27299         * real.c (encode_c4x_single, decode_c4x_single,
27300         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
27301         c4x_extended_format): Remove.
27302         * real.h (c4x_single_format, c4x_extended_format): Remove.
27303         * doc/extend.texi (interrupt, naked): Remove mention of attributes
27304         on C4x.
27305         (Pragmas): Remove comment about c4x pragmas.
27306         * doc/install.texi (c4x): Remove target-specific instructions.
27307         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
27308         * doc/md.texi (Machine Constraints): Remove C4x documentation.
27309         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
27310         refer to C4x source files as examples.
27311         (C4X_FLOAT_FORMAT): Remove documentation.
27312
27313 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
27314
27315         * config/bfin/bfin.c (override_options): Reorder tests so that
27316         flag_pic gets enabled for -msep-data.
27317
27318 2008-01-25  Richard Guenther  <rguenther@suse.de>
27319
27320         PR middle-end/32244
27321         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
27322         to its bitfield precision if required.
27323
27324 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
27325
27326         PR middle-end/33880
27327         * tree-nested.c (walk_omp_for): New function.
27328         (convert_nonlocal_reference, convert_local_reference): Call
27329         walk_omp_for on OMP_FOR.
27330         (convert_call_expr): Call walk_body on OMP_FOR's
27331         OMP_FOR_PRE_INIT_BODY.
27332
27333 2008-01-25  Richard Guenther  <rguenther@suse.de>
27334
27335         PR tree-optimization/34966
27336         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
27337         default defs and PHI_NODEs we have to insert after the
27338         defining statement.
27339
27340 2008-01-24  Nick Clifton  <nickc@redhat.com>
27341
27342         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
27343         Provide a default definition.
27344         (LIBGCC2_UNITS_PER_WORD): Likewise.
27345
27346         * config/stormy16/stormy16.c: Include df.h for the prototype
27347         for df_regs_ever_live_p.
27348         (xstormy16_expand_builtin_va_start): Convert the stack offset
27349         into a component_ref and then use POINTER_PLUS_EXPR to add it
27350         to the incoming_virtual_args_rtx.
27351         (xstormy16_gimplify_va_arg_expr): Rename to
27352         xstormy16_gimplify_va_arg_expr.
27353         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
27354         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
27355         xstormy16_gimplify_va_arg_expr.
27356         Fix up some formatting issues.
27357
27358         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
27359         Move to predicates.md.
27360         (xs_hi_general_operand): Likewise.
27361         (xs_hi_nonmemory_operand): Likewise.
27362         * config/stormy16/predicates.md:
27363         (xstormy16_carry_plus_operand): New predicate.
27364         (xs_hi_general_operand): New predicate.
27365         (xs_hi_nonmemory_operand): New predicate.
27366         * config/stormy16/stormy16-protos.h:
27367         (xstormy16_carry_plus_operand): Delete prototype.
27368         (xs_hi_general_operand): Likewise.
27369         (xs_hi_nonmemory_operand): Likewise.
27370
27371         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
27372         modifiers as they are no longer needed and they can trigger
27373         reload spill failures.
27374
27375         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
27376         with a match_operand in order to help reload.
27377
27378         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
27379         constraint with 'e' for the 8th alternative as this version of
27380         the mov.w instruction only accepts the lower 8 registers.
27381
27382 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
27383
27384         PR target/34856
27385         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
27386         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
27387         vector elements.
27388
27389 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
27390
27391         PR middle-end/33333
27392         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
27393
27394 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
27395
27396         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
27397         New functions.
27398         (remove_structure): Update allocations list before removing structure.
27399
27400 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
27401
27402         * ipa-struct-reorg.c (is_safe_cond_expr,
27403         create_new_stmts_for_cond_expr): Use integer_zerop function,
27404         that recognize not only zero-pointer, but zero-integer too.
27405
27406 2008-01-25  Ben Elliston  <bje@au.ibm.com>
27407
27408         PR other/22232
27409         * fixproto: Escape "." in sed expression that strips leading "./".
27410
27411 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
27412
27413         PR driver/34904
27414         * gcc.c (SWITCH_OK): Removed.
27415         (SWITCH_LIVE): Changed to bit.
27416         (SWITCH_FALSE): Likewise.
27417         (SWITCH_IGNORE): Likewise.
27418         (switchstr): Change live_cond to unsigned int.
27419         (process_command): Replace SWITCH_OK with 0.
27420         (do_self_spec): Likewise.
27421         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
27422         (give_switch): Likewise.
27423         (used_arg): Likewise.
27424         (do_spec_1): Set the SWITCH_IGNORE bit.
27425         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
27426         bits.  Set the SWITCH_LIVE bit.
27427
27428 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
27429
27430         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
27431
27432 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
27433
27434         PR tree-optimization/34472
27435         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
27436         parameter to a "bool *" and set *DATA to false if there is
27437         an unsafe access.  Do not delete the structure here.
27438         (check_cond_exprs): Delete it here instead.
27439         (check_cond_exprs, exclude_cold_structs): Do not increase
27440         I when removing a structure.
27441
27442 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
27443
27444         PR target/34856
27445         * config/i386/i386.c (ix86_expand_vector_init): Consider only
27446         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
27447
27448 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
27449
27450         PR middle-end/34934
27451         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
27452         a fixed vector for stack.
27453
27454 2008-01-24  Ben Elliston  <bje@au.ibm.com>
27455
27456         PR c++/25701
27457         * doc/gcc.texi (Software development): Add a direntry for g++.
27458
27459 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
27460
27461         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
27462         stale and straggling -fforce-addr comments above.
27463
27464         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
27465         define.
27466         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
27467         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
27468
27469 2008-01-23  Michael Matz  <matz@suse.de>
27470
27471         PR debug/34895
27472         * dwarf2out.c (force_type_die): Use modified_type_die instead of
27473         gen_type_die.
27474
27475 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
27476
27477         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
27478         malloc result type.
27479
27480 2008-01-23 Anatoly Sokolov <aesok@post.ru>
27481
27482         * config/avr/avr.c (avr_current_arch): New variable.
27483         (avr_arch_types): Add 'avr31' and 'avr51' entries.
27484         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
27485         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
27486         (avr_override_options): Init 'avr_current_arch'.
27487         (base_arch_s): Move from here...
27488         * config/avr/avr.h (base_arch_s): ... here. Add new members
27489         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
27490         'mega' to 'have_jmp_call'.
27491         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
27492         "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
27493         macros.
27494         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
27495         architectures.
27496         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
27497         MULTILIB_MATCHES): Ditto.
27498
27499 2008-01-23  Richard Guenther  <rguenther@suse.de>
27500
27501         PR middle-end/31529
27502         * cgraphunit.c (cgraph_reset_node): Always mark the node
27503         not reachable if it is not queued already.
27504
27505 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
27506
27507         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
27508         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
27509         (cputype_selected): New static variable.
27510         (bfin_handle_option): Set it if -mcpu is used.
27511         (override_option): Select default set of workarounds if no cpu type
27512         selected on the command line.
27513         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
27514
27515         From  Michael Frysinger  <michael.frysinger@analog.com>
27516         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
27517         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
27518
27519         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
27520         for bf547, bf523, bf524, and bf526.
27521         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
27522         bf526.
27523         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
27524         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
27525         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
27526         __ADSPBF547__ and __ADSPBF54x__ for bf547.
27527         * doc/invoke.texi (Blackfin Options): Document that
27528         -mcpu now accept bf547, bf523, bf524, and bf526.
27529
27530 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
27531
27532         PR rtl-optimization/34628
27533         * combine.c (try_combine): Stop and undo after the first combination
27534         if an autoincrement side-effect on the first insn has effectively
27535         been lost.
27536
27537 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
27538
27539         PR target/34529
27540         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
27541         Offset addresses are not valid for Altivec or paired float modes.
27542
27543 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
27544
27545         PR c++/34607
27546         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
27547         if DECL_INITIAL (decl) is error_mark_node.
27548
27549         PR c++/34914
27550         * c-common.c (handle_vector_size_attribute): Only allow
27551         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
27552         the same way as pointer, array etc. types.
27553         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
27554
27555         PR c++/34917
27556         * tree.c (build_type_attribute_qual_variant): Call
27557         build_qualified_type if attributes are equal, but quals are not.
27558
27559 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
27560
27561         PR 32102
27562         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
27563         * flags.h (warn_strict_aliasing): Remove.
27564         (warn_strict_overflow): Remove.
27565         * opts.c (warn_strict_aliasing): Remove.
27566         (warn_strict_overflow): Remove.
27567         * c-opts.c (c_common_handle_option): -Wall only sets
27568         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
27569         (c_common_post_options): Give default values to -Wstrict-aliasing
27570         and -Wstrict-overflow if they are uninitialized.
27571         * common.opt (Wstrict-aliasing): Specify Var and Init.
27572         (Wstrict-overflow): Likewise.
27573
27574 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
27575
27576         PR rtl-optimization/26854
27577         PR rtl-optimization/34400
27578         PR rtl-optimization/34884
27579         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
27580         DF_RD->gen.
27581         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
27582         (df_rd_bb_info.expanded_lr_out): Deleted
27583         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
27584         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
27585         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
27586         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
27587         Removed code to allocate, initialize or free expanded_lr_out.
27588         (df_rd_bb_local_compute_process_def): Restructured to make more
27589         understandable.
27590         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
27591         sets if the sets are being trimmed.
27592
27593 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
27594
27595         PR bootstrap/32287
27596         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
27597         (as_vers): Likewise.
27598         * configure: Regenerated.
27599
27600 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
27601
27602         PR middle-end/33092
27603         * tree-pass.h (pass_build_alias): New pass.
27604         * tree-ssa-alias.c (gate_build_alias): New.
27605         (pass_build_alias): New.
27606         * passes.c (init_optimization_passes): Add pass_build_alias after
27607         pass_create_structure_vars.
27608
27609 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
27610
27611         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
27612         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
27613         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
27614         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
27615         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
27616         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
27617         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
27618         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
27619         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
27620         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
27621         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
27622         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
27623         * config/s390/s390.md (FP_ALL): New mode iterator.
27624         (_d): New mode attribute.
27625         ("*signbit<mode>2>"): Changed mode of first operand.
27626         ("isinf<mode>2"): Changed mode of first operand.
27627         ("*TDC_insn"): Adaptation for DFP modes.
27628
27629 2008-01-22  Ben Elliston  <bje@au.ibm.com>
27630
27631         * tree.c (check_qualified_type): Improve function description.
27632
27633 2008-01-21  Jason Merrill  <jason@redhat.com>
27634
27635         PR c++/34196
27636         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
27637         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
27638         if it is set.
27639
27640 2008-01-21  DJ Delorie  <dj@redhat.com>
27641
27642         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
27643         return zero.
27644
27645 2008-01-21  Richard Guenther  <rguenther@suse.de>
27646
27647         PR middle-end/34856
27648         * tree-cfg.c (verify_expr): Allow all invariant expressions
27649         instead of just constant class ones as reference argument.
27650         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
27651         like any other constant.
27652         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
27653
27654 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
27655
27656         * regmove.c (fixup_match_1): Update call crossed frequencies.
27657
27658 2008-01-21  Richard Guenther  <rguenther@suse.de>
27659
27660         PR c/34885
27661         * tree-inline.c (setup_one_parameter): Deal with mismatched
27662         types using a VIEW_CONVERT_EXPR.
27663
27664 2008-01-21  Alon Dayan  <alond@il.ibm.com>
27665             Olga Golovanevsky  <olga@il.ibm.com>
27666
27667         PR tree-optimization/34701
27668         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
27669         when the structure size is not a power of 2.
27670
27671 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
27672
27673         * doc/install.texi: Add doc for --enable-checking=df.
27674
27675 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
27676
27677         PR rtl-optimization/34808
27678         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
27679
27680 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
27681
27682         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
27683         input.
27684
27685 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
27686
27687         PR rtl-optimization/26854
27688         PR rtl-optimization/34400
27689         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
27690         DF_RD->gen.
27691         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
27692         (df_rd_bb_info.expanded_lr_out): New.
27693         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
27694         * loop_iv.c (iv_analysis_loop_init): Ditto.
27695         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
27696         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
27697         Added code to allocate, initialize or free expanded_lr_out.
27698         (df_rd_bb_local_compute_process_def): Restructured to make
27699         more understandable.
27700         (df_rd_confluence_n): Add code to do nothing with fake edges and
27701         code to no apply invalidate_by_call sets if the sets are being trimmed.
27702         (df_lr_local_finalize): Renamed to df_lr_finalize.
27703         (df_live_local_finalize): Renamed to df_live_finalize.
27704
27705 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
27706
27707         PR target/34831
27708         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
27709         deciding whether to use reciprocal instructions.
27710
27711 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
27712
27713         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
27714         dwarf2out_note_section_used if cold_text_section is NULL.
27715
27716 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
27717
27718         PR gcov-profile/34610
27719         * tree-cfg.c (make_edges): Mark both outgoing edges from
27720         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
27721         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
27722         from OMP_FOR and OMP_CONTINUE outgoing edges.
27723
27724         * tree-profile.c (tree_profiling): Return early if
27725         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
27726         at the end.
27727         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
27728         from cfun to child_cfun.
27729         * function.h (struct function): Add after_tree_profile bit.
27730
27731 2008-01-19 Anatoly Sokolov <aesok@post.ru>
27732
27733         * config/avr/avr.S (_exit): Disable interrupt.
27734
27735 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
27736             Steven Bosscher  <stevenb.gcc@gmail.com>
27737
27738         PR rtl-optimization/26854
27739         PR rtl-optimization/34400
27740         * df-problems.c (df_live_scratch): New scratch bitmap.
27741         (df_live_alloc): Allocate df_live_scratch when doing df_live.
27742         (df_live_reset): Clear the proper bitmaps.
27743         (df_live_bb_local_compute): Only process the artificial defs once
27744         since the order is not important.
27745         (df_live_init): Init the df_live sets only with the variables
27746         found live by df_lr.
27747         (df_live_transfer_function): Use the df_lr sets to prune the
27748         df_live sets as they are being computed.
27749         (df_live_free): Free df_live_scratch.
27750
27751 2008-01-18  Ian Lance Taylor  <iant@google.com>
27752
27753         * common.opt: Add fmerge-debug-strings.
27754         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
27755         flag_merge_debug_strings rather than flag_merge_constants.
27756         * doc/invoke.texi (Option Summary): Mention
27757         -fmerge-debug-strings.
27758         (Debugging Options): Document -fmerge-debug-strings.
27759
27760 2008-01-18  Ian Lance Taylor  <iant@google.com>
27761
27762         PR c++/33407
27763         * tree.h (DECL_IS_OPERATOR_NEW): Define.
27764         (struct tree_function_decl): Add new field operator_new_flag.
27765         * tree-inline.c (expand_call_inline): When inlining a call to
27766         operator new, force the return value to go into a variable, and
27767         set DECL_NO_TBAA_P on that variable.
27768         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
27769
27770 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
27771
27772         PR debug/34484
27773         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
27774         DWARF2_DEBUGGING_INFO.
27775         (dwarf2out_note_section_used): Ditto.  Add prototype.
27776         (have_multiple_function_sections, text_section_used,
27777         cold_text_section_used, *cold_text_sections): Move declarations
27778         before their uses.
27779
27780 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
27781
27782         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
27783         field and add signal_ra.
27784         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
27785         assignments to frame state pc.  Move end of stack check after
27786         MD_FALLBACK_FRAME_STATE_FOR.
27787         (uw_update_context_1): Use frame state signal_regs if set, instead
27788         of checking signal_frame flag.
27789         (uw_update_context): Use frame state signal_ra if set.
27790         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
27791         * config/xtensa/linux-unwind.h: New file.
27792
27793 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
27794
27795         * modulo-sched.c (get_sched_window): Fix comment typo.
27796
27797 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
27798
27799         PR tree-optimization/34648
27800         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
27801
27802 2008-01-17  Anatoly Sokolov <aesok@post.ru>
27803
27804         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
27805         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
27806
27807 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
27808
27809         PR rtl-optimization/34400
27810         * df-core.c (df_worklist_dataflow_overeager,
27811         df_worklist_dataflow_doublequeue): New functions.
27812         (df_worklist_dataflow): Two different worklist solvers.
27813         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
27814         New param.
27815
27816 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
27817
27818         PR testsuite/34821
27819         * doc/invoke.texi: Document the dependence on pthread for fopenmp
27820         and ftree-parallelize-loops.
27821
27822 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
27823
27824         PR rtl-optimization/34826
27825         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
27826
27827 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
27828
27829         * global.c (find_reg): Mark the eh regs as used if necessary.
27830         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
27831         * ra.h (struct allocno): no_eh_reg field added.  Changed
27832         no_stack_reg type to bitfield.
27833
27834 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
27835
27836         * tree.c (substitute_in_expr): Add missing 'break'.
27837
27838 2008-01-17  Richard Guenther  <rguenther@suse.de>
27839
27840         PR tree-optimization/34825
27841         * tree-ssa-math-opts.c (is_division_by): Do not recognize
27842         x / x as division to handle.
27843
27844 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27845
27846         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
27847         "-pthread" is specified.
27848         * pa-hpux11.h (LIB_SPEC): Likewise.
27849
27850 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
27851             Peter Bergner  <bergner@vnet.ibm.com>
27852
27853         PR rtl-optimization/33796
27854         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
27855
27856 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27857
27858         PR libgfortran/34699
27859         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
27860         static links.
27861         * pa-hpux10.h (LINK_SPEC): Likewise.
27862         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
27863
27864 2008-01-16  Richard Guenther  <rguenther@suse.de>
27865
27866         PR middle-end/32628
27867         * fold-const.c (fold_convert_const_int_from_int): Do not
27868         set overflow if that occured only because of a sign extension
27869         change when converting from/to a sizetype with the same
27870         precision and signedness.
27871
27872 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
27873
27874         PR debug/34249
27875         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
27876         location address to the correct place.  Update copyright year.
27877
27878 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
27879
27880         * lambda-code.c (lambda_transform_legal_p): Handle the case of
27881         no dependences in the dependence_relations vector.
27882
27883 2008-01-16  Jan Hubicka  <jh@suse.cz>
27884
27885         PR rtl-optimization/31396
27886         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
27887         * cfg.c (dump_reg_info): Print it.
27888         * regs.h (struct reg_info_t): add freq_calls_crossed.
27889         (REG_FREQ_CALLS_CROSSED): New macro.
27890         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
27891         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
27892         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
27893         regmove_optimize): Update call crossed frequencies.
27894         * local-alloc.c (struct qty): Add freq_calls_crossed.
27895         (alloc_qty): Copute freq_calls_crossed.
27896         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
27897         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
27898         * ra.h (struct allocno): Add freq_calls_crossed.
27899
27900 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
27901
27902         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
27903         libgomp when compiling with ftree-parallelize-loops.
27904         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
27905
27906 2008-01-16  Richard Guenther  <rguenther@suse.de>
27907
27908         PR tree-optimization/34769
27909         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
27910         * tree.c (int_cst_value): Instead make this function more
27911         permissive in what it accepts as valid input.  Document this
27912         function always sign-extends the value.
27913
27914 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
27915             Richard Guenther  <rguenther@suse.de>
27916
27917         PR c/34668
27918         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
27919         (gimple_fold_indirect_ref_rhs): ... this.
27920         (gimple_fold_indirect_ref): New function with foldings
27921         that preserve lvalueness.
27922         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
27923         * tree-flow.h (gimple_fold_indirect_ref): Declare.
27924         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
27925         to fold an INDIRECT_REF, fall back to the old use of
27926         fold_indirect_ref_1.
27927
27928 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
27929
27930         * tree-data-ref.c (subscript_dependence_tester_1): Call
27931         free_conflict_function.
27932         (compute_self_dependence): Same.
27933
27934 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
27935
27936         PR debug/34249
27937         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
27938         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
27939         function global.
27940         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
27941         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
27942         for DWARF2_UNWIND_INFO targets.
27943
27944 2008-01-16  Richard Guenther  <rguenther@suse.de>
27945
27946         PR c/34768
27947         * c-typeck.c (common_pointer_type): Do not merge inconsistent
27948         type qualifiers for function types.
27949
27950 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
27951
27952         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
27953         loop_iterator li from previous commit.
27954
27955 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
27956
27957         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
27958
27959 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
27960
27961         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
27962         (parallelize_loops): Don't parallelize irreducible components.
27963
27964 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
27965
27966         PR c++/24924
27967         * c-opts (c_common_post_options): Do not enable CPP
27968         flag_pedantic_errors by default.
27969
27970 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
27971
27972         PR rtl-optimization/31944
27973         * cse.c (remove_pseudo_from_table): New function.
27974         (merge_equiv_classes): Use above function to remove pseudo-registers.
27975         (invalidate): Likewise.
27976
27977 2008-01-13  Richard Guenther  <rguenther@suse.de>
27978
27979         PR middle-end/34601
27980         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
27981         instead of TYPE_MODE to deal with calls from expand_one_error_var.
27982
27983 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
27984
27985         * gcse.c (cprop_jump): Call validate_unshare_change instead of
27986         validate_change to unshare the source of the PC set.
27987
27988 2008-01-12  Jan Hubicka  <jh@suse.cz>
27989
27990         PR middle-end/32135
27991         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
27992         references above array bounds.  This might trigger bounds checks for
27993         pointers to arrays.
27994
27995 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
27996
27997         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
27998         new_replaceable_dependencies.
27999
28000 2008-01-12  Doug Kwan  <dougkwan@google.com>
28001
28002         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
28003         instead of OPT_Wreturn_type in warning due to ignored return type
28004         qualifiers.
28005         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
28006         options included in -Wextra.
28007         * c.opt: New option -Wignored_qualifiers.
28008         * doc/invoke.texi (Warning Options, -Wextra): Add new option
28009         -Wignore_qualifiers.
28010         (-Wignored-qualifiers): Document.
28011         (-Wreturn-type): Remove description of functionality now handled
28012         by -Wignored-qualifiers.
28013
28014 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
28015
28016         PR ada/33788
28017         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
28018         NOP_EXPR if it is between integral types with the same precision.
28019
28020 2008-01-12  Jan Hubicka  <jh@suse.cz>
28021
28022         PR other/28023
28023         * invoke.texi (max-inline-recursive-depth): Fix default value.
28024
28025 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
28026
28027         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
28028         correct type.
28029
28030 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
28031
28032         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
28033
28034 2008-01-11  James E. Wilson  <wilson@specifix.com>
28035
28036         PR target/26015
28037         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
28038
28039 2008-01-11  Anatoly Sokolov <aesok@post.ru>
28040
28041         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
28042         save/restore frame pointer register and don't use 'call-prologues'
28043         optimization in function with "OS_task" attribute.
28044
28045 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
28046
28047         PR middle-end/31309
28048         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
28049         when copying to memory.
28050
28051 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
28052
28053         PR rtl-optimization/30905
28054         * cfgcleanup.c: Include dce.h
28055         (crossjumps_occured): New global variable.
28056         (try_crossjump_bb): Exit loop after finding a fallthru edge.
28057         If something changed, set crossjumps_occured to true.
28058         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
28059         Don't add/remove fake edges to exit here...
28060         (cleanup_cfg): ...but do it here, when crossjumping.
28061         Run a fast DCE when successful crossjumps occured in the latest
28062         iteration of try_optimize_cfg.
28063
28064 2008-01-11  Richard Guenther  <rguenther@suse.de>
28065
28066         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
28067         (struct vn_unary_op_s): Likewise.
28068         (vn_reference_insert): Free old reference on hash collision.
28069
28070 2008-01-10  Raksit Ashok  <raksit@google.com>
28071
28072         PR rtl-optimization/27971
28073         * combine.c (find_split_point): Split PLUS expressions which are
28074         inside a MEM rtx, and whose first operand is complex.
28075
28076 2008-01-10  DJ Delorie  <dj@redhat.com>
28077
28078         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
28079         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
28080         (m32c_hard_regno_ok): Call the underlying function.
28081
28082 2008-01-10  Richard Guenther  <rguenther@suse.de>
28083
28084         PR middle-end/34683
28085         * tree-cfg.c (tree_merge_blocks): Do not go through the
28086         full-blown folding and stmt updating path if we just deal
28087         with virtual operands.
28088         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
28089         test for abnormal SSA_NAMEs.
28090
28091 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
28092
28093         PR middle-end/34641
28094         * reload.c (push_reload): Add assertions.  All constants from
28095         reg_equiv_constant should have been used for replacing the respective
28096         pseudo earlier.
28097         (find_reloads_address): Invoke find_reloads_address_part for
28098         constant taken from the reg_equiv_constant array.
28099
28100 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
28101
28102         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
28103         field (valnum) the first in the struct.  Replace bools with
28104         unit bit fields.
28105
28106 2008-01-10  Richard Guenther  <rguenther@suse.de>
28107
28108         PR tree-optimization/34651
28109         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
28110         types and ordering for masking and converting.
28111
28112 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
28113
28114         PR tree-optimization/34017
28115         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
28116         also for PHI_NODE expressions.
28117
28118 2008-01-09  Jan Hubicka  <jh@suse.cz>
28119
28120         PR tree-optimization/34708
28121         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
28122         based on number of case labels.
28123         (init_inline_once): Remove switch_cost.
28124         * tree-inline.h (eni_weights_d): Remove switch_cost.
28125
28126 2008-01-09  Richard Guenther  <rguenther@suse.de>
28127         Andrew Pinski  <andrew_pinski@playstation.sony.com>
28128
28129         PR middle-end/30132
28130         * gimplify.c (gimplify_cond_expr): Do not create an addressable
28131         temporary if an rvalue is ok or an lvalue is not required.
28132
28133 2008-01-09  Richard Guenther  <rguenther@suse.de>
28134
28135         PR middle-end/34458
28136         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
28137         adjust return type.
28138
28139 2008-01-09  Richard Guenther  <rguenther@suse.de>
28140
28141         PR middle-end/34679
28142         * tree.c (host_integerp): Check for sizetype only if the
28143         type is an integer type.
28144
28145 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
28146
28147         PR debug/26364
28148         * opts.c (decode_options): Disable inlining of functions called
28149         once if not in unit-at-a-time mode.
28150
28151 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
28152
28153         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
28154
28155 2008-01-08  Richard Guenther  <rguenther@suse.de>
28156
28157         PR middle-end/31863
28158         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
28159         out early if the result will be unused.
28160
28161 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
28162
28163         PR target/34709
28164         Revert:
28165
28166         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
28167         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
28168         for TARGET_RECIP.
28169
28170 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
28171
28172         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
28173         for vectorization tuned.
28174
28175 2008-01-08  Richard Guenther  <rguenther@suse.de>
28176
28177         PR tree-optimization/34683
28178         * tree-ssa-operands.c (operand_build_cmp): Export.
28179         * tree-ssa-operands.h (operand_build_cmp): Declare.
28180         * tree-vn.c (vuses_compare): Remove.
28181         (sort_vuses): Use operand_build_cmp.
28182         (sort_vuses_heap): Likewise.
28183         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
28184         to re-use old VEC if available.  Do not sort already sorted VUSEs.
28185         (vdefs_to_vec): Do not sort already sorted VDEFs.
28186
28187 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
28188
28189         PR middle-end/34694
28190         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
28191
28192 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
28193
28194         PR target/34702
28195         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
28196         limitations of reciprocal sequences on x86 targets.
28197
28198 2008-01-08  Richard Guenther  <rguenther@suse.de>
28199
28200         PR tree-optimization/34683
28201         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
28202
28203 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
28204
28205         PR target/34622
28206         * config/darwin.c (darwin_mergeable_string_section): Don't use
28207         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
28208
28209 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
28210
28211         PR target/34682
28212         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
28213         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
28214         predicates of op0 and op1 to register_operand.
28215         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
28216         expander using X87MODEF mode iterator.  Change predicates of
28217         op0 and op1 to register_operand.
28218         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
28219         corresponding patterns and macroize using MODEF macro.  Change
28220         predicates of op0 and op1 to register_operand and remove
28221         "m" constraint. Disparage "r" alternative with "!".
28222         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
28223         macroize using X87MODEF macro.  Change predicates of op0 and op1
28224         to register_operand and remove "m" constraint.  Disparage "r"
28225         alternative with "!".
28226         (absneg splitter with memory operands): Remove.
28227         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
28228         patterns and macroize using X87MODEF mode iterator.
28229         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
28230         Change predicate of op1 to register_operand.
28231         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
28232         for memory operands.
28233
28234 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
28235
28236         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
28237
28238 2008-01-07  Richard Guenther  <rguenther@suse.de>
28239
28240         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
28241         fields.
28242
28243 2008-01-07  Richard Guenther  <rguenther@suse.de>
28244
28245         PR tree-optimization/34683
28246         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
28247         VOPs of the needed size to save memory.  Use VEC_quick_push
28248         to save compile-time.
28249         (vdefs_to_vec): Likewise.
28250
28251 2008-01-07  Sa Liu  <saliu@de.ibm.com>
28252
28253         * config/spu/spu.md (divdf3): Genetate inline code for double
28254         division.  The implementation doesn't handle INF or NAN, therefore it
28255         only applies when -ffinite-math-only is given.
28256
28257 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
28258
28259         PR libstdc++/34680
28260         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
28261         * doc/cpp.texi ([Common Predefined Macros]): Document.
28262
28263 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
28264
28265         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
28266         order to use commutative addition instead of subtraction.
28267
28268 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
28269             Mircea Namolaru  <namolaru@il.ibm.com>
28270             Vladimir Yanovsky  <yanov@il.ibm.com>
28271             Revital Eres  <eres@il.ibm.com>
28272
28273         PR tree-optimization/34263
28274         * tree-outof-ssa.c (process_single_block_loop_latch,
28275         contains_tree_r): New functions.
28276         (analyze_edges_for_bb): Call process_single_block_loop_latch
28277         function to empty single-basic-block latch block if possible.
28278
28279 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
28280
28281         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
28282         for TARGET_RECIP.
28283         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
28284
28285 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
28286
28287         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
28288
28289 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
28290
28291         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
28292
28293 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
28294
28295         PR tree-optimization/34618
28296         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
28297         flag from T.
28298
28299 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
28300
28301         PR target/34673
28302         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
28303         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
28304         Update copyright year.
28305
28306         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
28307         Update copyright year.
28308         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
28309         using NR fixup.
28310
28311 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
28312
28313         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
28314         edge does not point to current bb before changing need_assert.
28315
28316 2008-01-04  Richard Guenther  <rguenther@suse.de>
28317
28318         PR middle-end/34029
28319         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
28320         for verifying purposes if they are is_gimple_min_invariant.
28321
28322 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
28323
28324         PR tree-optimization/34448
28325         PR tree-optimization/34465
28326         * gimplify.c (gimplify_init_constructor): Add new parameter
28327         notify_temp_creation.  Use it.
28328         (gimplify_modify_expr_rhs): Take volatiles into account when
28329         optimizing constructors.
28330         Do not optimize constructors if gimplify_init_constructor will dump to
28331         memory.
28332         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
28333         * gcc.c-torture/compile/pr34448.c: New.
28334
28335 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
28336
28337         PR gcov-profile/34609
28338         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
28339         return_slot if result is TREE_ADDRESSABLE.
28340
28341 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
28342
28343         * config/mips/mips.md (sqrt_condition): Tweak comment.
28344         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
28345
28346 2008-01-03  Tom Tromey  <tromey@redhat.com>
28347
28348         PR c/34457
28349         * c-common.c (c_type_hash): Handle VLAs.
28350
28351 2008-01-03  Jan Hubicka  <jh@suse.cz>
28352
28353         PR tree-optimization/31081
28354         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
28355         0 when inlining and not inlining to first basic block.
28356         (remap_decl): When var is initialized to 0, don't set default_def.
28357         (expand_call_inline): Set entry_bb.
28358         * tree-inline.h (copy_body_data): Add entry_bb.
28359
28360 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
28361
28362         PR c++/34619
28363         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
28364         before returning.
28365
28366         PR tree-optimization/29484
28367         * tree-inline.c (inline_forbidden_p_2): New function.
28368         (inline_forbidden_p): Disallow inlining if some static var
28369         has an address of a local LABEL_DECL in its initializer.
28370         * doc/extend.texi (Labels as Values): Document &&foo behaviour
28371         vs. inlining.
28372
28373 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
28374
28375         PR tree-optimization/34635
28376         * tree-data-ref.c (add_other_self_distances): Make sure that the
28377         evolution step is constant.
28378
28379 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
28380
28381         PR middle-end/34608
28382         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
28383
28384 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
28385
28386         * tree-sra.c (scalarize_init): Insert the generate_element_init
28387         statements after the generate_element_zero statements.
28388
28389 2008-01-02  Richard Guenther  <rguenther@suse.de>
28390
28391         PR middle-end/34093
28392         PR middle-end/31976
28393         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
28394         for very large number of operands instead of ICEing.
28395
28396 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
28397
28398         PR target/34013
28399         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
28400         while stack probing.
28401
28402 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
28403
28404         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
28405         in C++0x mode.
28406
28407 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
28408
28409         PR libmudflap/26442
28410         * tree-mudflap.c (mx_register_decls): Guard warning by
28411         !DECL_ARTIFICIAL check.
28412
28413 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
28414
28415         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
28416         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
28417         sse5_perm<mode>): Fix constraints.