OSDN Git Service

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