OSDN Git Service

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