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