OSDN Git Service

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