OSDN Git Service

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