OSDN Git Service

2008-11-07 Sebastian Pop <sebastian.pop@amd.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-11-07  Sebastian Pop  <sebastian.pop@amd.com>
2
3         PR middle-end/37379
4         * tree-scalar-evolution.c (instantiate_scev_1): Return
5         chrec_dont_know for VL_EXP_CLASS_P.
6         
7 2008-11-06  Uros Bizjak  <ubizjak@gmail.com>
8
9         * reg-stack.c (reg_to_stack): Add missing braces in memset
10         size calculation.
11
12 2008-11-06  Andrew Stubbs  <ams@codesourcery.com>
13
14         * config/arm/bpabi.h (PROFILE_HOOK): New undef.
15         (NO_PROFILE_COUNTERS): New define.
16
17 2008-11-06  David Edelsohn  <edelsohn@gnu.org>
18
19         PR target/26397
20         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Define.
21         
22 2008-11-06  Kazu Hirata  <kazu@codesourcery.com>
23
24         PR target/35574
25         * config/sparc/constraints.md (D): New.
26         * config/sparc/predicates.md (const_double_or_vector_operand): New.
27         * config/sparc/sparc.c (sparc_extra_constraint_check): Handle the
28         'D' constraint.
29         * config/sparc/sparc.md (*movdf_insn_sp32_v9, *movdf_insn_sp64):
30         Use the 'D' constraint in addition to 'F' in some alternatives.
31         (DF splitter): Generalize for V64mode.
32         * doc/md.texi (SPARC): Document the 'D' constraint.
33
34 2008-11-06  Uros Bizjak  <ubizjak@gmail.com>
35
36         * reg-stack.c (reg_to_stack): Generate +QNaN using real_nan.
37
38 2008-11-06  Ben Elliston  <bje@au.ibm.com>
39
40         * gcc.c: Remove ancient comment about a bug in Sun cc.
41
42 2008-11-05  Janis Johnson  <janis187@us.ibm.com>
43
44         * doc/sourcebuild.texi (Torture Tests): Add ADDITIONAL_TORTURE_OPTIONS.
45
46 2008-11-06  Ben Elliston  <bje@au.ibm.com>      
47
48         * config/rs6000/rs6000.c (rs6000_override_options): Comment fix.
49
50 2008-11-06  Ben Elliston  <bje@au.ibm.com>
51
52         * config/rs6000/rs6000.opt (mwarn-cell-microcode): Improve option
53         description.
54
55 2008-11-05  Hans-Peter Nilsson  <hp@axis.com>
56
57         PR target/38016
58         * config/cris/cris.c (cris_order_for_addsi3): Test for !REG_P, not
59         just MEM_P.
60
61 2008-11-05  Martin Jambor  <mjambor@suse.cz>
62
63         PR middle-end/37861
64         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't turn
65         pointer arithmetics into array_ref if the array is accessed
66         through an indirect_ref.
67
68 2008-11-05  Richard Guenther  <rguenther@suse.de>
69
70         PR middle-end/37742
71         * tree-ssa.c (useless_type_conversion_p_1): Check different restrict
72         qualified pointer conversion before stripping qualifiers.
73         * gimplify.c (create_tmp_from_val): Use correctly qualified type.
74         * tree-flow.h (may_propagate_address_into_dereference): Declare.
75         * tree-ssa-ccp.c (may_propagate_address_into_dereference): New
76         function.
77         (ccp_fold): Use it.
78         * tree-ssa-forwprop.c (rhs_to_tree): Remove useless conversions,
79         properly canonicalize binary ops.
80         (forward_propagate_addr_expr_1): Use
81         may_propagate_address_into_dereference.
82
83 2008-11-05  Uros Bizjak  <ubizjak@gmail.com>
84
85         PR middle-end/37286
86         * reg-stack.c (subst_stack_regs_pat) [MINUS, DIV, MULT, PLUS]:
87         Initialize uninitialized input registers with a NaN.
88
89 2008-11-05  Tobias Grosser  <grosser@fim.uni-passau.de>
90
91         PR middle-end/37833
92
93         * graphite.c (scan_tree_for_params): Add POINTER_PLUS_EXPR.
94
95 2008-11-05  Tobias Grosser  <grosser@fim.uni-passau.de>
96
97         PR middle-end/37943
98
99         * graphite.c (scopdet_basic_block_info): Fix loops with multiple
100         exits and conditions.
101         * testsuite/gcc.dg/graphite/pr37943.c: New.
102
103 2008-11-04  Jakub Jelinek  <jakub@redhat.com>
104             Andrew Pinski  <andrew_pinski@playstation.sony.com>
105
106         PR c/35430
107         * c-common.c (warn_for_sign_compare): For complex result_type
108         use component's type.
109
110 2008-11-04  Jakub Jelinek  <jakuB@redhat.com>
111
112         * print-tree.c (print_node): Use code instead of TREE_CODE (node).
113
114         * print-tree.c (print_node): Don't print DECL_INITIAL
115         for PARM_DECL.
116
117         PR c/37106
118         * c-common.c (parse_optimize_options): Save and restore
119         flag_strict_aliasing around decode_options call.
120
121 2008-11-04  Uros Bizjak  <ubizjak@gmail.com>
122
123         * config/i386/driver-i386.c (enum vendor_signatures): New enum.
124         (host_detect_local_cpu): Use it instead of casted strings to
125         compare vendor signatures.
126
127 2008-11-03  Mikael Pettersson  <mikpe@it.uu.se>
128
129         PR target/37989
130         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Only add libgcc_s.a
131         or libgcc_eh.a to spec if ENABLE_SHARED_LIBGCC.
132
133 2008-11-03  Catherine Moore  <clm@codesourcery.com>
134
135         * config/mips.c (mips_conditional_register_usage):  Handle the
136         DSP control register.
137         * doc/extend.texi: Document the DSP control register.
138
139 2008-11-03  Steve Ellcey <sje@cup.hp.com>
140             Jakub Jelinek  <jakub@redhat.com>
141
142         * omp-low.c (expand_omp_for_generic): If iter_type has different
143         precision than type and type is a pointer type, cast n1 and n2
144         first to an integer type with the same precision as pointers
145         and only afterwards to iter_type.
146
147 2008-11-03  Richard Sandiford  <rdsandiford@googlemail.com>
148
149         * config/arm/arm.md (UNSPEC_PIC_BASE): Update documentation.
150         (UNSPEC_GOTSYM_OFF): New unspec.
151         (pic_add_dot_plus_four): Simplify the UNSPEC_PIC_BASE operands.
152         (pic_add_dot_plus_eight): Likewise.
153         (tls_load_dot_plus_eight): Likewise.  Update peephole2.
154         * config/arm/thumb2.md (pic_load_dot_plus_four): Simplify the
155         UNSPEC_PIC_BASE operands.
156         * config/arm/arm.c (arm_load_pic_register): Use UNSPEC_GOTSYM_OFF.
157         (arm_output_addr_const_extra): Handle it.
158
159 2008-11-03  Eric Botcazou  <ebotcazou@adacore.com>
160
161         * config/i386/i386.c (classify_argument) <ARRAY_TYPE>: Promote partial
162         integer class to full integer class if the offset is not word-aligned.
163
164 2008-11-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
165
166         PR rtl-opt/37782
167         * loop-doloop.c (doloop_modify): Add from_mode argument that says what
168         mode count is in.
169         (doloop_optimize): Update call to doloop_modify.
170
171 2008-11-03  Eric Botcazou  <ebotcazou@adacore.com>
172
173         * tree-sra.c (bitfield_overlaps_p): Fix oversight.
174
175 2008-11-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
176
177         PR other/37463
178         * configure.ac (gcc_cv_ld_ro_rw_mix): Move before
179         gcc_cv_as_cfi_directive.
180         (gcc_cv_as_cfi_directive) [*-*-solaris*]: Check if linker supports
181         merging read-only and read-write sections or assembler emits
182         read-write .eh_frame sections.
183         * configure: Regenerate.
184         
185 2008-11-03  Nathan Froyd  <froydnj@codesourcery.com>
186
187         Revert:
188         2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
189
190         * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
191         problem.
192         (rs6000_emit_prologue): Invert logic.
193         * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
194         (reg:P 11) instead of match_operand.
195         (*save_fpregs_<mode>): Likewise.
196         (*restore_gpregs_<mode>): Likewise.
197         (*return_and_restore_gpregs_<mode>): Likewise.
198         (*return_and_restore_fpregs_<mode>): Likewise.
199         * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
200         (reg:P 11) insted of match_operand.
201         (*restore_gpregs_spe): Likewise.
202         (*return_and_restore_gpregs_spe): Likewise.
203
204 2008-11-03  Harsha Jagasia  <harsha.jagasia@amd.com>
205
206         PR tree-optimization/37684
207         * gcc.dg/graphite/pr37684.c: New.
208         * graphite.c (exclude_component_ref): New.
209         (is_simple_operand): Call exclude_component_ref.
210
211 2008-11-03  Sebastian Pop  <sebastian.pop@amd.com>
212
213         PR tree-optimization/36908
214         * testsuite/gcc.dg/tree-ssa/pr36908.c: New.
215         * tree-loop-distribution.c (number_of_rw_in_rdg): New.
216         (number_of_rw_in_partition): New.
217         (partition_contains_all_rw): New.
218         (ldist_gen): Do not distribute when one of the partitions
219         contains all the memory operations.
220
221 2008-11-03  Sebastian Pop  <sebastian.pop@amd.com>
222
223         * cfghooks.c (split_block): Set BB_IRREDUCIBLE_LOOP and
224         EDGE_IRREDUCIBLE_LOOP.
225
226 2008-11-03  Bernd Schmidt  <bernd.schmidt@analog.com>
227
228         * config/bfin/bfin.c (bfin_optimize_loop): Properly handle case
229         where we have one entry point in the loop which isn't the head.
230
231 2008-11-03  Richard Guenther  <rguenther@suse.de>
232
233         PR middle-end/37573
234         * tree-data-ref.c (split_constant_offset_1): Fix tuplification.
235
236 2008-11-03  Jakub Jelinek  <jakub@redhat.com>
237
238         PR middle-end/37858
239         * passes.c (execute_one_pass): Don't look at cfun->curr_properties
240         for ipa and simple ipa passes.
241
242 2008-11-02  Richard Guenther  <rguenther@suse.de>
243
244         PR tree-optimization/37542
245         * tree-ssa-pre.c (fully_constant_expression): Handle more cases.
246         * tree-ssa-sccvn.c (vn_get_expr_for): Fix typo.
247         (vn_nary_op_lookup_stmt): Adjust for unary reference trees.
248         (vn_nary_op_insert_stmt): Likewise.
249         (visit_use): Likewise.
250
251 2008-11-02  Anatoly Sokolov  <aesok@post.ru>
252
253         * config/avr/avr.md (UNSPEC_SWAP): Remove constants.
254         (*swap): Remove.
255         (rotlqi3, *rotlqi3_4, rotlhi3, *rotlhi3_8,
256         rotlsi3, *rotlsi3_8, *rotlsi3_16, *rotlsi3_24): New patterns.
257         (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, ashlqi3_l_const4,
258         ashlqi3_l_const5, ashlqi3_l_const6, lshrqi3_const4, lshrqi3_const5,
259         lshrqi3_const6, lshrqi3_l_const4, lshrqi3_l_const4, lshrqi3_l_const6
260         peephole2's): Replace unspec with rotate.
261         * config/avr/avr.c (avr_rtx_costs): Add ROTATE.
262
263 2008-11-02  Richard Guenther  <rguenther@suse.de>
264
265         PR tree-optimization/37991
266         * tree-ssa-sccvn.h (copy_vuses_from_stmt): Remove.
267         * tree-ssa-sccvn.c (copy_vuses_from_stmt): Make static.
268         (set_ssa_val_to): Print if the value changed.
269         (simplify_binary_expression): Strip useless conversions.
270
271 2008-11-01  Hans-Peter Nilsson  <hp@axis.com>
272
273         PR target/37939
274         * config/cris/cris.c (cris_rtx_costs) <MULT>: Return 0 for an ADDI
275         operand.
276
277 2008-11-01  Richard Guenther  <rguenther@suse.de>
278
279         PR middle-end/37976
280         * builtins.c (fold_builtin_strspn): Return a size_t.
281         (fold_builtin_strcspn): Likewise.
282
283 2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
284
285         * config/rs6000/rs6000.c (rs6000_file_start): Output gnu
286         attribute for struct return convention.
287
288 2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
289
290         * config/rs6000/crtsavres.asm: Really, really delete.
291
292 2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
293
294         * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
295         problem.
296         (rs6000_emit_prologue): Invert logic.
297         * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
298         (reg:P 11) instead of match_operand.
299         (*save_fpregs_<mode>): Likewise.
300         (*restore_gpregs_<mode>): Likewise.
301         (*return_and_restore_gpregs_<mode>): Likewise.
302         (*return_and_restore_fpregs_<mode>): Likewise.
303         * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
304         (reg:P 11) insted of match_operand.
305         (*restore_gpregs_spe): Likewise.
306         (*return_and_restore_gpregs_spe): Likewise.
307
308 2008-10-28  Luis Machado  <luisgpm@br.ibm.com>
309
310         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add "dumpbase" to the
311         list of word switches that take args.
312
313 2008-10-30  Jakub Jelinek  <jakub@redhat.com>
314
315         * config/s390/s390.c (s390_mark_symbol_ref_as_used): New function.
316         (s390_output_pool_entry): Call it through for_each_rtx.
317
318         PR middle-end/37730
319         * expr.c (store_constructor): For vectors, if target is a MEM, use
320         target's MEM_ALIAS_SET instead of elttype alias set.
321
322 2008-10-29  Kaz Kojima  <kkojima@gcc.gnu.org>
323
324         PR target/37909
325         * config/sh/sh.c (untangle_mova): Return -1 when NEW_MOVA has
326         no address.
327
328 2008-10-29  David Edelsohn  <edelsohn@gnu.org>
329
330         PR target/37878
331         * config/rs6000/predicates.md (word_offset_memref_operand):
332         Restructure code and look inside auto-inc/dec addresses.
333         
334 2008-10-29  Steve Ellcey  <sje@cup.hp.com>
335
336         PR target/32277
337         * libgcov.c ( __gcov_indirect_call_profiler): Check
338         TARGET_VTABLE_USES_DESCRIPTORS.
339
340 2008-10-29  Stefan Schulze Frielinghaus  <xxschulz@de.ibm.com>
341
342         * config/spu/spu.h (FRAME_GROWS_DOWNWARD): Define.
343         (INITIAL_FRAME_POINTER_OFFSET): Remove.
344         * config/spu/spu.c (spu_initial_elimination_offset): Calculate new
345         offset if eliminating soft frame pointer.
346         * config/spu/spu.md (stack_protect_set, stack_protect_test)
347         (stack_protect_test_si): Add initial machine description
348         for Stack Smashing Protector
349
350 2008-10-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
351
352         PR 11492
353         * c-common.c (min_precision): Move to...
354         * tree.c (tree_int_cst_min_precision): ... to here. Renamed.
355         * tree.h (tree_int_cst_min_precision): Declare.
356         * c-common.h (min_precision): Delete declaration.
357         * fold-const.c (tree_binary_nonnegative_warnv_p): Handle
358         multiplication of non-negative integer constants.
359         * c-decl.c (check_bitfield_type_and_width): Rename min_precision to
360         tree_int_cst_min_precision.
361         (finish_enum): Likewise.
362
363 2008-10-29  Joseph Myers  <joseph@codesourcery.com>
364
365         PR middle-end/36578
366         * convert.c (convert_to_real): Do not optimize conversions of
367         binary arithmetic operations between binary and decimal
368         floating-point types.  Consider mode of target type in determining
369         decimal type for arithmetic.  Unless
370         flag_unsafe_math_optimizations, do not optimize binary conversions
371         where this may change rounding behavior.
372         * real.c (real_can_shorten_arithmetic): New.
373         * real.h (real_can_shorten_arithmetic): Declare.
374
375 2008-10-29  Bernd Schmidt  <bernd.schmidt@analog.com>
376         
377         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315,
378         ENABLE_WA_05000257, ENABLE_WA_05000283, ENABLE_WA_05000315): New.
379         * config/bfin/bfin.c (bfin_cpus): Add these workaround bits as
380         appropriate.
381         (must_save_p): For some workarounds, interrupts need to clobber a
382         P register.
383         (expand_prologue_reg_save, expand_epilogue_reg_restore): Save LC0
384         and LC1 for WA_05000257.
385         (expand_interrupt_handler_prologue): Add dummy read of CHIPID for
386         WA_05000283 and WA_05000315.
387         * config/bfin/bfin.md (UNSPEC_VOLATILE_DUMMY): New constant.
388         (movbi): Add alternative to set CC to 1; improve code for setting
389         CC to 0.
390         (dummy_load): New pattern.
391
392 2008-10-29  Jakub Jelinek  <jakub@redhat.com>
393
394         PR middle-end/37870
395         * expmed.c (extract_bit_field_1): If int_mode_for_mode returns
396         BLKmode for non-memory, convert using a wider MODE_INT mode
397         or through memory.
398
399         PR middle-end/37913
400         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Only split bbs
401         that haven't been removed yet.
402
403 2008-10-29  Bernd Schmidt  <bernd.schmidt@analog.com>
404
405         * config/bfin/bfin.c (struct machine_function): New member
406         has_loopreg_clobber.
407         (bfin_expand_movmem): Set it when generating memcpy insns.
408         (n_regs_saved_by_prologue, expand_prologue_reg_save,
409         expand_epilogue_reg_restore): If we have hardware loops,
410         memcpy insns (indicated by has_loopreg_clobber) or function
411         calls, we need to save the loop registers.
412
413 2008-10-28  H.J. Lu  <hongjiu.lu@intel.com>
414
415         * config/i386/i386.c (core2_cost): Fix typos in comments.
416
417 2008-10-28  Jakub Jelinek  <jakub@redhat.com>
418
419         PR c/37924
420         * combine.c (make_compound_operation): Don't call make_extraction with
421         non-positive length.
422         (simplify_shift_const_1): Canonicalize count even if complement_p.
423
424 2008-10-28  Joseph Myers  <joseph@codesourcery.com>
425
426         * convert.c (strip_float_extensions): Do not remove or introduce
427         conversions between binary and decimal floating-point types.
428
429 2008-10-28  Jakub Jelinek  <jakub@redhat.com>
430
431         PR middle-end/37931
432         * fold-const.c (distribute_bit_expr): Convert common, left and
433         right arguments to type.
434
435 2008-10-28  Nick Clifton  <nickc@redhat.com>
436
437         * config/mn10300/mn10300.h (CALL_REALLY_USED_REGISTERS): Define.
438         * config/mn10300/mn10300.c (fp_regs_to_save): Test the
439         call_really_used_regs array rather than the call_used_regs array.
440         (mn10300_get_live_callee_saved_regs, expand_prologue,
441         expand_epilogue, output_tst): Likewise.
442
443 2008-10-27  Jakub Jelinek  <jakub@redhat.com>
444
445         PR target/37378
446         * df-scan.c (df_bb_refs_collect): Don't handle EH_USES here.
447         (df_get_entry_block_def_set): Neither here.
448         (df_get_regular_block_artificial_uses): Add EH_USES registers.
449
450         PR tree-optimization/37879
451         * predict.c (tree_estimate_probability): Check if last_stmt is
452         non-NULL before dereferencing it.
453
454 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
455
456         * ira-int.h (ira_allocno): Add member updated_cover_class_cost.
457         (ALLOCNO_UPDATED_COVER_CLASS_COST): New.
458         (ira_fast_allocation): Remove the prototype.
459         
460         * ira-color.c (update_copy_costs, allocno_cost_compare_func,
461         assign_hard_reg, calculate_allocno_spill_cost): Use updated costs.
462         (color_pass): Modify the updated costs.
463         (ira_color): Rename to color.  Make it static.
464         (ira_fast_allocation): Rename to fast_allocation.  Make it static.
465         (ira_color): New function.
466         
467         * ira-conflicts.c (process_regs_for_copy): Propagate hard reg cost
468         change.
469
470         * ira-lives.c (last_call_num, allocno_saved_at_call): New
471         variables.
472         (set_allocno_live, clear_allocno_live, mark_ref_live,
473         mark_ref_dead): Invalidate corresponding element of
474         allocno_saved_at_call.
475         (process_bb_node_lives): Increment last_call_num.  Setup
476         allocno_saved_at_call.  Don't increase ALLOCNO_CALL_FREQ if the
477         allocno was already saved.
478         (ira_create_allocno_live_ranges): Initiate last_call_num and
479         allocno_saved_at_call.
480
481         * ira-build.c (ira_create_allocno): Initiate
482         ALLOCNO_UPDATED_COVER_CLASS_COST.
483         (create_cap_allocno, propagate_allocno_info,
484         remove_unnecessary_allocnos): Remove setting updated costs.
485         (ira_flattening): Set up ALLOCNO_UPDATED_COVER_CLASS_COST.
486
487         * ira.c (ira):  Don't call ira_fast_allocation.
488
489         * ira-costs.c (setup_allocno_cover_class_and_costs): Don't set up
490         updated costs.
491         
492 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
493
494         PR middle-end/37813
495         * ira-conflicts.c (process_regs_for_copy): Remove class subset check.
496
497         * ira-int.h (ira_hard_regno_cover_class): New.
498
499         * ira-lives.c (mark_reg_live, mark_reg_dead,
500         process_bb_node_lives): Use ira_hard_regno_cover_class.
501
502         * ira.c (reg_class ira_hard_regno_cover_class): New global variable.
503         (setup_hard_regno_cover_class): New function.
504         (ira_init): Call setup_hard_regno_cover_class.
505
506         * ira-costs.c (cost_class_nums): Add comment.
507         (find_allocno_class_costs): Initiate cost_class_nums.
508         (setup_allocno_cover_class_and_costs): Check cost_class_nums.
509
510 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
511
512         PR middle-end/37884
513         * ira-build.c (copy_live_ranges_to_removed_store_destinations):
514         Rename to copy_info_to_removed_store_destinations.  Propagate
515         conflict hard regs and register stack attribute.
516
517 2008-10-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
518
519         PR middle-end/37316
520         * pa.c (function_arg_padding):  Pad complex and vector types
521         upward in 64-bit runtime.
522         (function_arg): Use BLKmode for PARALLEL in 64-bit runtime.
523
524 2008-10-26  Matthias Klose  <doko@ubuntu.com>
525
526         * doc/install.texi: Document requirements on antlr.
527
528 2008-10-25  Richard Sandiford  <rdsandiford@googlemail.com>
529
530         * config/mips/mips.h (REG_ALLOC_ORDER): Put call-clobbered registers
531         first.
532
533 2008-10-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
534
535         PR target/37841
536         * function.c (locate_and_pad_parm): If FUNCTION_ARG_ADJUST_OFFSET
537         is defined, use it to modify the constant offset.
538
539         * doc/tm.texi (FUNCTION_ARG_OFFSET): Document new macro.
540
541         * config/spu/spu.h (FUNCTION_ARG_OFFSET): New macro to move char
542         and short arguments to the correct location as mandated by the ABI.
543
544 2008-10-24  Kaz Kojima  <kkojima@gcc.gnu.org>
545
546         PR rtl-optimization/37769
547         * regmove.c (optimize_reg_copy_2): Update REG_INC note if needed.
548
549 2008-10-24  Kaz Kojima  <kkojima@gcc.gnu.org>
550
551         * config/sh/t-sh: Use $(MULTILIB_CFLAGS) when compiling to
552         unwind-dw2-Os-4-200.o.
553
554 2008-10-24  Joseph Myers  <joseph@codesourcery.com>
555
556         * c-typeck.c (enum impl_conv): Remove ic_argpass_nonproto.
557         (convert_for_assignment): Remove ic_argpass_nonproto cases.
558
559 2008-10-24  Jakub Jelinek  <jakub@redhat.com>
560
561         PR tree-optimization/36038
562         * tree-ssa-loop-ivopts.c (add_old_iv_candidates): For pointer bases
563         add sizetype IV with initial value zero instead of pointer type.
564
565 2008-10-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
566
567         PR c/7543
568         * value-prof.c (gimple_stringop_fixed_value): Use parentheses
569         around bit operation.
570         * profile.c (is_edge_inconsistent): Likewise.
571         * fold-const.c (truth_value_p): Move from here...
572         * tree.h (truth_value_p): ... to here.
573         * c-tree.h (c_expr): Update description of original_code.
574         * c-typeck.c (parser_build_unary_op): Set original_code.
575         (parser_build_binary_op): Update call to warn_about_parentheses.
576         * c-common.c (warn_about_parentheses): Take two additional
577         arguments of the operands. Use a switch. Quote operators
578         appropriately. Define macro APPEARS_TO_BE_BOOLEAN_EXPR_P.
579         Add warning about !x | y and !x & y.
580         * c-common.h (warn_about_parentheses): Update declaration.
581
582 2008-10-24  Jakub Jelinek  <jakub@redhat.com>
583
584         * Makefile.in (lang_checks_parallelized, check_gcc_parallelize,
585         check_p_tool, check_p_vars, check_p_subno, check_p_comma,
586         check_p_subwork, check_p_numbers, check_p_subdir, check_p_subdirs):
587         New variables.
588         (check-subtargets, check-%-subtargets, check-parallel-%): New targets.
589         (check-%): For test targets listed in lang_checks_parallelized
590         if -j is used and RUNTESTFLAGS doesn't specify tests to execute,
591         run the testing in multiple make goals, possibly parallel, and
592         afterwards run dg-extract-results.sh to merge the sum and log files.
593
594 2008-10-24  Richard Sandiford  <rdsandiford@googlemail.com>
595
596         * config/mips/mips.c (mips_canonicalize_move_class): New function.
597         (mips_move_to_gpr_cost): Likewise.
598         (mips_move_from_gpr_cost): Likewise.
599         (mips_register_move_cost): Make more fine-grained.
600
601 2008-10-23  Tobias Grosser  <grosser@fim.uni-passau.de>
602
603         * graphite.c (graphite_apply_transformations): Check for
604         -fgraphite-identity.
605         * toplev.c (process_options): Add graphite_identity.
606         * tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity.
607
608 2008-10-23  Bernd Schmidt  <bernd.schmidt@analog.com>
609
610         * config/bfin/bfin.c (bdesc_2arg): Add mulhisill, mulhisilh,
611         mulhisihl and mulhisihh builtins.
612
613         From Jie Zhang  <jie.zhang@analog.com>
614         * config/bfin/bfin.md (composev2hi): Put operands into vector
615         with correct order.
616         
617 2008-10-22  Chao-ying Fu  <fu@mips.com>
618
619         * config/mips/mips.opt (msmartmips): Accept -mno-smartmips.
620
621 2008-10-22  Bernd Schmidt  <bernd.schmidt@analog.com>
622
623         From Mike Frysinger  <michael.frysinger@analog.com>
624         * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF512,
625         BFIN_CPU_BF514, BFIN_CPU_BF516, and BFIN_CPU_BF518.
626         * config/bfin/bfin.c (bfin_cpus[]): Add 0.0 for bf512, bf514, bf516,
627         and bf518.  Add 0.2 for bf522, bf523, bf524, bf526, and bf527.
628         Add 0.6 for bf533, bf532, and bf531.  Add 0.5 for bf538 and bf539.
629         Add 0.2 for bf542, bf544, bf547, bf548, and bf549.
630         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF512__
631         for BFIN_CPU_BF512, __ADSPBF514__ for BFIN_CPU_BF514, __ADSPBF516__
632         for BFIN_CPU_BF516, and __ADSPBF518__ for BFIN_CPU_BF518.  Define
633         __ADSPBF51x__ for all of them.
634         * config/bfin/elf.h (LIB_SPEC): Select proper linker scripts for
635         -mcpu bf512, bf514, bf516, and bf518.
636         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
637         bf512-none, bf514-none, bf516-none, and bf518-none.
638         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
639         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
640         * doc/invoke.texi (Blackfin Options): Document that
641         -mcpu now accepts bf512, bf514, bf516, and bf518.
642
643 2008-10-22  Jakub Jelinek  <jakub@redhat.com>
644
645         PR middle-end/37882
646         * fold-const.c (build_range_type): For 1 .. signed_max
647         range call build_nonstandard_inter_type if signed_type_for
648         returned a type with bigger precision.
649
650 2008-10-22  Richard Guenther  <rguenther@suse.de>
651
652         * tree.def (COMPLEX_TYPE): Constrain element type.
653         * tree.c (build_complex_type): Assert that.
654         * tree-ssa-structalias.c (could_have_pointers): Complex types
655         cannot have pointers.
656
657 2008-10-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
658
659         PR c/30949
660         * c-typeck.c (convert_for_assignment): Do not give declaration's
661         location for builtins. Spell out which type was expected and which
662         was given.
663
664 2008-10-22  Nick Clifton  <nickc@redhat.com>
665
666         * config/frv/frv.h (HARD_REGNO_RENAME_OK): Define.  Do not allow
667         the fdpic register to be a target when running in fdpic mode.
668
669 2008-10-22 Rafael Espindola  <espindola@google.com>
670
671         * ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the
672         newly created statements.
673
674 2008-10-22  Kaz Kojima  <kkojima@gcc.gnu.org>
675
676         PR target/37633
677         * config/sh/sh.c (sh_hard_regno_mode_ok): New function.
678         * config/sh/sh.h (HARD_REGNO_MODE_OK): Use it.
679         * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare.
680
681 2008-10-22  Jakub Jelinek  <jakub@redhat.com>
682
683         PR target/37880
684         * doc/invoke.texi: Fix spelling of -mlarge-data-threshold option.
685         Adjust -mcmodel=medium description for 2005-07-31 changes.
686
687 2008-10-22  Jan Hubicka  <jh@suse.cz>
688             Jakub Jelinek  <jakub@redhat.com>
689
690         PR middle-end/35853
691         * doc/invoke.texi: Remove references to obsoleted -d dumps.
692
693 2008-10-21  Richard Henderson  <rth@redhat.com>
694
695         PR 37815
696         * emit-rtl.c (get_spill_slot_decl): Export.
697         * emit-rtl.h (get_spill_slot_decl): Declare.
698         * var-tracking.c (vt_add_function_parameters): Relax assertion
699         on the contents of MEM_EXPR in a PARM_DECL to include a spill slot.
700
701 2008-10-21  Bob Wilson  <bob.wilson@acm.org>
702
703         * var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
704         REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
705         of from insn.
706
707 2008-10-21  Adam Nemet  <anemet@caviumnetworks.com>
708
709         PR middle-end/37669
710         * tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be
711         processed by get_maxval_strlen.
712
713 2008-10-21  David Edelsohn  <edelsohn@gnu.org>
714
715         PR target/35485
716         * tree.c (get_file_function_name): Copy first_global_object_name.
717         Centralize call to clean_symbol_name.
718
719 2008-10-21  Sandra Loosemore  <sandra@codesourcery.com>
720
721         * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h.
722         * config/svr4.h (SVR4_ASM_SPEC): New.
723         (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
724         * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
725
726         * doc/invoke.texi (Option Summary): Add -T to linker options.
727         (Link Options): Document -T.
728         
729 2008-10-21  Jakub Jelinek  <jakub@redhat.com>
730
731         * tree-inline.c (tree_inlinable_function_p): Remove tuples
732         debugging hack.
733
734         * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
735
736         PR debug/37020
737         * c-decl.c (merge_decls): Don't call outlining_inline_function hook.
738
739 2008-10-20  Daniel Berlin  <dberlin@dberlin.org>
740
741         * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
742         part of expression.
743
744 2008-10-20  Tobias Schlüter  <tobi@gcc.gnu.org>
745
746         * doc/install.texi: Fix typos in previous patch.
747
748 2008-10-19  Tobias Schlüter  <tobi@gcc.gnu.org>
749
750         * doc/install.texi: Document in-tree building of gcc and mpfr.
751
752 2008-10-19  Richard Guenther  <rguenther@suse.de>
753
754         * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.
755
756 2008-10-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
757
758         PR c/30260
759         * c-decl.c (finish_enum): Convert non-integer enumerators to enum type.
760         (build_enumerator): Convert enumerators that fit in integer to
761         integer type.
762
763 2008-10-18  Uros Bizjak  <ubizjak@gmail.com>
764
765         * config/i386/i386.md (unnamed peephole2): Do not force memory
766         operands of arith or logical instructions into registers for
767         non-TARGET_READ_MODIFY targets.
768
769         (ffs_cmove): Change operand 0 predicate to register_operand.
770         Change operand 1 predicate to nonimmediate_operand.
771         (ffsdi2): Ditto.
772         (*ffs_no_cmove): Change operand 0 predicate to register_operand.
773
774 2008-10-18  Richard Guenther  <rguenther@suse.de>
775
776         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard
777         VIEW_CONVERT_EXPR case against invalid gimple.
778
779 2008-10-17  Andreas Krebbel  <krebbel1@de.ibm.com>
780
781         * c-parser.c (c_parser_binary_expression): Silence the
782         uninitialized variable warning emitted for binary_loc.
783
784 2008-10-16  Daniel Berlin  <dberlin@dberlin.org>
785
786         * tree-ssa-pre.c (phi_translate_set): Add constants to phi
787         translation cache.
788
789 2008-10-16  Joseph Myers  <joseph@codesourcery.com>
790
791         PR c/33192
792         * c-typeck.c (build_unary_op): Use omit_one_operand for
793         IMAGPART_EXPR of real argument.
794
795 2008-10-16  Jakub Jelinek  <jakub@redhat.com>
796
797         PR tree-optimization/37664
798         * fold-const.c (fold_binary): When optimizing comparison with
799         highest or lowest type's value, don't consider TREE_OVERFLOW.
800
801 2008-10-16  David Edelsohn  <edelsohn@gnu.org>
802
803         PR target/35483
804         * Makefile.in (coverage.o): Depend on $(TM_P_H).
805         * coverage.c: Include tm_p.h.
806         * config/rs6000/x-aix (jc1): Override LDFLAGS.
807         * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip
808         dollar signs from PREFIX.
809         * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
810         instead of manual strip_name_encoding.
811
812 2008-10-16  Richard Guenther  <rguenther@suse.de>
813
814         PR middle-end/37418
815         * tree-ssa.c (useless_type_conversion_p_1): Do not treat
816         volatile qualified functions or methods as relevant.
817
818 2008-10-16  Jakub Jelinek  <jakub@redhat.com>
819
820         PR tree-optimization/37525
821         * tree.c (int_fits_type_p): Rewrite using double_int.  Zero extend
822         sizetype unsigned constants, both in the case of C and bounds.
823
824 2008-10-15  Jan Hubicka  <jh@suse.cz>
825
826         * ira-emit.c (change_regs): Return false when replacing reg by itself.
827
828 2008-10-14  Vladimir Makarov  <vmakarov@redhat.com>
829
830         PR target/37633
831         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
832         HARD_REGNO_CALL_PART_CLOBBERED.
833
834 2008-10-15  Vladimir Makarov  <vmakarov@redhat.com>
835
836         PR middle-end/37535
837         * ira-lives.c (mark_early_clobbers): Remove.
838         (make_pseudo_conflict, check_and_make_def_use_conflicts,
839         check_and_make_def_conflicts,
840         make_early_clobber_and_input_conflicts,
841         mark_hard_reg_early_clobbers): New functions.
842         (process_bb_node_lives): Call
843         make_early_clobber_and_input_conflicts and
844         mark_hard_reg_early_clobbers.  Make hard register inputs live again.
845
846         * doc/rtl.texi (clobber): Change descriotion of RA behaviour for
847         early clobbers of pseudo-registers.
848         
849 2008-10-15  Vladimir Makarov  <vmakarov@redhat.com>
850
851         PR middle-end/37674
852         * ira-build.c (ira_flattening): Recalculate
853         ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS
854         from the scratch instead of the propagation.
855         
856 2008-10-15  Richard Sandiford  <rdsandiford@googlemail.com>
857
858         * doc/rtl.texi (const_double): Remove the "addr" operand.
859         Describe CONST_DOUBLE_* macros under const_double rather
860         than const_vector.
861         (const_fixed): Fix the operand description.
862         (const): Add an @findex directive.
863         (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description
864         after the constant rtl table.
865         (fix): Combine floating-point and fixed-point descriptions.
866         Fix hyphenation.
867         * sched-deps.c (sched_analyze_2): Remove reference to
868         CONST_DOUBLE_CHAIN.
869
870 2008-10-15  Richard Sandiford  <rdsandiford@googlemail.com>
871
872         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle
873         UNSPEC_GOTSYM_OFFs.
874         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true
875         for UNSPEC_GOTSYM_OFFs.
876         * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec.
877         (add_GOT_to_pic_reg): Use it.
878         * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF.
879
880 2008-10-15  Jan Sjodin  <jan.sjodin@amd.com>
881             Harsha Jagasia  <harsha.jagasia@amd.com>
882
883         PR tree-optimization/37485
884         * graphite.c (gmp_cst_to_tree): Moved.
885         (iv_stack_entry_is_constant): New.
886         (iv_stack_entry_is_iv): New.
887         (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
888         (loop_iv_stack_insert_constant): New.
889         (loop_iv_stack_pop): Use new datatpype.
890         (loop_iv_stack_get_iv): Same.
891         (loop_iv_stack_get_iv_from_name): Same.
892         (loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
893         (loop_iv_stack_patch_for_consts): New.
894         (loop_iv_stack_remove_constants): New.
895         (graphite_create_new_loop): Use loop_iv_stack_push_iv.
896         (translate_clast): Call loop_iv_stack_patch_for_consts and
897         loop_iv_stack_remove_constants.
898         (gloog): Use new datatype.  Redirect construction edge to end
899         block to avoid accidental deletion.
900         * graphite.h (enum iv_stack_entry_kind): New.  Tag for data in
901         iv stack entry.
902         (union iv_stack_entry_data): New.  Data in iv stack entry.
903         (struct iv_stack_entry): New.  Datatype for iv stack entries.
904
905 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
906
907         * tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
908         * graphite.c (free_scop): Same.
909         (build_scops): Same.
910         (free_scattering): New.
911         (build_cloog_prog): Call free_scattering.
912         (patch_phis_for_virtual_defs): Fix memleak.
913         (graphite_trans_bb_strip_mine): Same.
914         (limit_scops): Same.
915
916 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
917             Harsha Jagasia  <harsha.jagasia@amd.com>
918
919         PR tree-optimization/37828
920         * graphite.c (graphite_trans_loop_block): Do not loop block
921         single nested loops.
922
923 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
924
925         PR tree-optimization/37686
926         * tree-loop-linear.c (linear_transform_loops): Build a
927         loop nest vector.  Pass it to lambda_compute_access_matrices.
928         * tree-data-ref.h (struct access_matrix): Store the loop nest
929         relative to which it encodes the information.
930         (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST.
931         (am_vector_index_for_loop): Reimplemented: iterate over the
932         loop nest for finding the loop index in the access matrix.
933         (lambda_compute_access_matrices): Update declaration.
934         * lambda-code.c (build_access_matrix): Pass the loop nest and
935         record it.
936         (lambda_compute_access_matrices): Same.
937
938 2008-10-15  Andreas Krebbel  <krebbel1@de.ibm.com>
939
940         * config/s390/s390.h: (TARGET_DFP): This requires TARGET_HARD_FLOAT.
941         * config/s390/s390.md: Replace "TARGET_HARD_FLOAT &&
942         TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this
943         already implies hard float.  Also fix several insn condition
944         with TARGET_DFP which shall require TARGET_HARD_DFP instead.
945
946 2008-10-15  David Edelsohn  <edelsohn@gnu.org>
947
948         PR target/35483
949         Based on patches by Laurent Vivier.
950         * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore.
951         * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare.
952         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate
953         dollar sign to underscore.
954         (ASM_OUTPUT_EXTERNAL): Same.
955         (ASM_OUTPUT_LABELREF): New.
956         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New.
957
958         * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define.
959         * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define.
960         * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define.
961         * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define.
962
963 2008-10-15  Jakub Jelinek  <jakub@redhat.com>
964
965         PR tree-optimization/36881
966         * tree-switch-conversion.c (check_final_bb): For flag_pic, check
967         that each value doesn't need runtime relocations, for !flag_pic
968         check that each value is just a valid initializer constant.
969
970 2008-10-14  Richard Sandiford  <rdsandiford@googlemail.com>
971
972         * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS,
973         LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS,
974         COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS.
975         Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and
976         GR_AND_ACC_REGS.
977         (REG_CLASS_NAMES): Update accordingly.
978         (REG_CLASS_CONTENTS): Likewise.  Use the class name in the comments,
979         rather than an unpredictable descriptive string.
980         * config/mips/mips.c (mips_register_move_cost): Remove comment.
981         (mips_register_move_cost): Check for specific COP*_REGS classes,
982         instead of ALL_COP_AND_GR_REGS.
983         (mips_ira_cover_classes): New function.
984         (mips_secondary_reload_class): Remove MTLO and MTHI workarounds.
985         (TARGET_IRA_COVER_CLASSES): Define.
986
987 2008-10-14  Douglas Gregor  <doug.gregor@gmail.com>
988
989         PR c++/37553
990         * tree.c (build_type_attribute_qual_variant): Hash on the
991         unqualified type, and don't overwrite an existing
992         (type_hash_eq): Make the TYPE_NAME of the types significant, to
993         allow distinguishing between wchar_t and its underlying type. This
994         also means that we'll retain a little more typedef information.
995
996 2008-10-14  Andrey Belevantsev  <abel@ispras.ru>
997             Dmitry Melnik  <dm@ispras.ru>
998             Dmitry Zhurikhin  <zhur@ispras.ru>
999             Alexander Monakov  <amonakov@ispras.ru>
1000             Maxim Kuvyrkov  <maxim@codesourcery.com>
1001
1002         * target.h (struct gcc_target): Update prototypes of needs_block_p
1003         and gen_spec_check.
1004         * haifa-sched.c (create_check_block_twin): Update calls to the above.
1005         * sel-sched.c (create_speculation_check): Likewise.
1006         * doc/tm.texi: Provide documentation for new target hooks.
1007                 
1008         * config/ia64/ia64.c: Include sel-sched.h.  Rewrite speculation hooks.
1009         (ia64_gen_spec_insn): Removed.
1010         (get_spec_check_gen_function, insn_can_be_in_speculative_p,
1011         ia64_gen_spec_check): New static functions.
1012         (ia64_alloc_sched_context, ia64_init_sched_context,
1013         ia64_set_sched_context, ia64_clear_sched_context,
1014         ia64_free_sched_context, ia64_get_insn_spec_ds,
1015         ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions.
1016         (ia64_needs_block_p): Change prototype.
1017         (ia64_gen_check): Rename to ia64_gen_spec_check.
1018         (ia64_adjust_cost): Rename to ia64_adjust_cost_2.  Add new parameter
1019         into declaration, add special memory dependencies handling.
1020         (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
1021         TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
1022         TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS,
1023         TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P):
1024         Define new target hooks.
1025         (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
1026         (ia64_optimization_options): Turn on selective scheduling with -O3,
1027         disable -fauto-inc-dec. Set mflag_sched_control_spec to true by
1028         default with selective scheduling.
1029         (ia64_override_options): Initialize align_loops and align_functions
1030         to 32 and 64, respectively.  Set global selective scheduling flags
1031         according to target-dependent flags.
1032         (rtx_needs_barrier): Support UNSPEC_LDS_A.
1033         (group_barrier_needed): Use new mstop-bit-before-check flag.
1034         Add heuristic.
1035         (dfa_state_size): Make global.
1036         (spec_check_no, max_uid): Remove.
1037         (mem_ops_in_group, current_cycle): New variables.
1038         (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload.
1039         Initialize new variables.
1040         (is_load_p, record_memory_reference): New functions.
1041         (ia64_dfa_sched_reorder): Lower priority of loads when limit is
1042         reached.
1043         (ia64_variable_issue): Change use of current_sched_info to
1044         sched_deps_info.  Update comment.  Note if a load or a store is issued.
1045         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle
1046         advance if maximal number of loads or stores was issued on current
1047         cycle.
1048         (scheduled_good_insn): New static helper function.
1049         (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when
1050         a group barrier is needed.  Fix vertical spacing.  Guard the code
1051         doing state transition with last_scheduled_insn check.
1052         Mark that a stop bit should be before current insn if there was a 
1053         cycle advance.  Update current_cycle and mem_ops_in_group.
1054         (ia64_h_i_d_extended): Change use of current_sched_info to
1055         sched_deps_info. Reallocate stops_p by larger chunks.
1056         (struct _ia64_sched_context): New structure.
1057         (ia64_sched_context_t): New typedef.
1058         (ia64_alloc_sched_context, ia64_init_sched_context,
1059         ia64_set_sched_context, ia64_clear_sched_context,
1060         ia64_free_sched_context): New static functions.
1061         (gen_func_t): New typedef.
1062         (get_spec_load_gen_function): New function.
1063         (SPEC_GEN_EXTEND_OFFSET): Declare.      
1064         (ia64_set_sched_flags): Check common_sched_info instead of *flags.
1065         (get_mode_no_for_insn): Change the condition that prevents use of
1066         special hardware registers so it can now handle pseudos.
1067         (get_spec_unspec_code): New function.
1068         (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds,
1069         ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions.
1070         (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks
1071         during selective scheduling.
1072         (ia64_speculate_insn): Use ds_get_speculation_types when
1073         determining whether we need to change the pattern.
1074         (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare.
1075         (ia64_spec_check_src_p): Support new speculation/check codes.
1076         (struct bundle_state): New field.
1077         (issue_nops_and_insn): Initialize it.
1078         (insert_bundle_state): Minimize mid-bundle stop bits.
1079         (important_for_bundling_p): New function.
1080         (get_next_important_insn): Use important_for_bundling_p.
1081         (bundling): When shifting TImode from unimportant insns, ignore
1082         also group barriers.  Assert that best state is found before
1083         the backward bundling pass.  Print number of mid-bundle stop bits.
1084         Minimize mid-bundle stop bits.  Check correct calculation of
1085         mid-bundle stop bits.
1086         (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting.
1087         (final_emit_insn_group_barriers): Emit stop bits before insns starting
1088         a new cycle.
1089         (sel2_run): New variable.
1090         (ia64_reorg): When flag_selective_scheduling2 is set, run the
1091         selective scheduling pass instead of schedule_ebbs.
1092         
1093         * config/ia64/ia64.md (speculable1, speculable2): New attributes.
1094         (UNSPEC_LDS_A): New UNSPEC.
1095         (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
1096         movti_internal, movsf_internal, movdf_internal,
1097         movxf_internal): Make visible.  Add speculable* attributes.
1098         (output_c_nc): New mode attribute.
1099         (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a,
1100         mov<mode>_nc, zero_extend<mode>di2_nc,
1101         advanced_load_check_nc_<mode>): New insns.
1102         (zero_extend*): Add speculable* attributes.
1103
1104         * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option.
1105         (msched-stop-bits-after-every-cycle): Likewise.
1106         (msched-max-memory-insns, msched-max-memory-insns-hard-limit):
1107         Likewise.
1108         (msched-spec-verbose): Remove.
1109         (msched-prefer-non-data-spec-insns,
1110         msched-prefer-non-control-spec-insns,
1111         msched-count-spec-in-critical-path,
1112         msel-sched-dont-check-control-spec): Use Target  Report Var
1113         instead of Common Report Var.
1114
1115         * config/ia64/itanium2.md: Remove incorrect bypass.
1116         
1117         * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h.
1118
1119 2008-10-14  Jakub Jelinek  <jakub@redhat.com>
1120
1121         PR middle-end/37805
1122         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
1123         and -fhelp=separate.
1124
1125 2008-10-14  Ben Elliston  <bje@au.ibm.com>
1126
1127         * config/rs6000/rs6000.md (cell_micro): Fix formatting.
1128
1129 2008-10-13  Joseph Myers  <joseph@codesourcery.com>
1130
1131         * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on
1132         non-integer modes.
1133
1134 2008-10-13  Matthias Klose  <doko@ubuntu.com>
1135
1136         * config/pa/linux-atomic.c: Work around missing header file
1137         for hppa64-linux-gnu targets.
1138
1139 2008-10-13  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1140             Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com>
1141             Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
1142             Grace Cao  <grace_cao@playstation.sony.com>
1143
1144         * doc/invoke.texi (-mgen-cell-microcode): Document.
1145         (-mwarn-cell-microcode): Document.
1146         * cfglayout.c (locator_location): Export.
1147         * rtl.h (locator_location): Define prototype.
1148         * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand):
1149         New predicate.
1150         * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
1151         * config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
1152         (mwarn-cell-microcode): New option.
1153         * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
1154         (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
1155         cell and not already set.
1156         Turn off string instructions if not generating cell microcode.
1157         (rs6000_final_prescan_insn): New function that warns about microcoded
1158         instructions.
1159         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
1160         * config/rs6000/rs6000.md
1161         Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
1162         the instruction would have been microcoded on the Cell.  Set
1163         cell_micro to always on unnamed patterns for the string instructions.
1164         (cell_micro): Update definition, remove load/store conditional
1165         microcoded.
1166         (sign_extend:DI): Define new pattern for non microcoded version.
1167         (sign_extend:SI): Likewise.
1168         (compare (div:P)): Set cell_micro to not.
1169         (andsi3): Define as an expand.
1170         (andsi3_mc): New pattern.
1171         (andsi3_nomc): New pattern.
1172         (andsi3_internal0_nomc): New pattern.
1173         (andsi3_internal2): Rename to ...
1174         (andsi3_internal2_mc): this and enable iff generating microcode.
1175         (andsi3_internal3): Rename to ...
1176         (andsi3_internal3_mc): this and enable iff generating microcode.
1177         (andsi3_internal4): Enable iif generating microcode.
1178         (andsi3_internal5): Rename to ..
1179         (andsi3_internal5_mc): this and enable iff generating microcode.
1180         (andsi3_internal5_nomc): New pattern.
1181         (extzvdi_internal1): Enable iff generating microcode.
1182         (extzvdi_internal2): Likewise.
1183         (rotlsi3_internal7): Set cell_micro to always if non immediate form.
1184         (anddi3): Change to expand.
1185         (anddi3_mc): Rename from anddi3.
1186         (anddi3_no_mc): New pattern.
1187         (anddi3_internal2): Rename to ..
1188         (anddi3_internal2_mc): this and enable iff generating microcode.
1189         (anddi3_internal2_nomc): New pattern.
1190         (anddi3_internal3): Rename to ..
1191         (anddi3_internal3_mc): this and enable iff generating microcode.
1192         (anddi3_internal3_nomc): New pattern.
1193         (movti_string): Set cell_micro to always if TARGET_STRING.
1194         (stmsi8): Set cell_micro to always.
1195         (stmsi7): Likewise.
1196         (stmsi6): Likewise.
1197         (stmsi5): Likewise.
1198         (stmsi4): Likewise.
1199         (stmsi3): Likewise.
1200         (stmsi8_power): Likewise.
1201         (stmsi7_power): Likewise.
1202         (stmsi6_power): Likewise.
1203         (stmsi5_power): Likewise.
1204         (stmsi4_power): Likewise.
1205         (stmsi3_power): Likewise.
1206         (movsi_update2): Enable iff generating microcode.
1207         (movhi_update3): Likewise.
1208         (lmw): Set cell_micro to always.
1209
1210 2008-10-13  Richard Sandiford  <rdsandiford@googlemail.com>
1211
1212         * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant.
1213         * config/s390/s390.c (machine_function): Remove
1214         decomposed_literal_pool_addresses_ok_p.
1215         (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of
1216         the difference of two labels.
1217         (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET.
1218         (s390_pool_offset): New function.
1219         (s390_find_constant, s390_find_execute, s390_dump_pool): Use it.
1220         (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p.
1221
1222 2008-10-13  Nathan Froyd  <froydnj@codesourcery.com>
1223
1224         * doc/install.texi (powerpc-*-*): Require binutils 2.15.
1225         (powerpc*-*-linux-gnu*): Describe.
1226         * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
1227         * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
1228         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
1229         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
1230         config/rs6000/e500crtres32gpr.asm,
1231         config/rs6000/e500crtres64gpr.asm,
1232         config/rs6000/e500crtres64gprctr.asm,
1233         config/rs6000/e500crtrest32gpr.asm,
1234         config/rs6000/e500crtrest64gpr.asm,
1235         config/rs6000/e500crtresx32gpr.asm,
1236         config/rs6000/e500crtresx64gpr.asm,
1237         config/rs6000/e500crtsav32gpr.asm,
1238         config/rs6000/e500crtsav64gpr.asm,
1239         config/rs6000/e500crtsav64gprctr.asm,
1240         config/rs6000/e500crtsavg32gpr.asm,
1241         config/rs6000/e500crtsavg64gpr.asm,
1242         config/rs6000/e500crtsavg64gprctr.asm: Use it.
1243         * config/rs6000/crtsavres.asm: Really remove.
1244
1245 2008-10-13  Kai Tietz  <kai.tietz@onevision.com>
1246
1247         Fix PR/25502
1248         * c-format.c (convert_format_name_to_system_name): Use
1249         TARGET_OVERRIDES_FORMAT_INIT.
1250         * config.gcc (extra_options): Add for mingw targets mingw.opt.
1251         * config/i386/mingw.opt: New.
1252         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New.
1253         * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New.
1254         (ms_printf_length_specs): Removed const specifier.
1255         * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New.
1256         * doc/invoke.texi (Wno-pedantic-ms-format): New.
1257
1258 2008-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1259
1260         * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
1261         * doc/install.texi: Bump recommended MPFR to 2.3.2.
1262
1263 2008-10-12  Kenneth Zadeck <zadeck@naturalbridge.com>
1264
1265         PR middle-end/37808
1266         * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
1267         sure that ref has valid bb.
1268         
1269 2008-10-12  Richard Henderson  <rth@redhat.com>
1270
1271         PR middle-end/37447
1272         * Makefile.in (reload1.o): Depend on EMIT_RTL_H.
1273         * alias.c (value_addr_p, stack_addr_p): Remove.
1274         (nonoverlapping_memrefs_p): Remove IRA special case.
1275         * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New.
1276         * emit-rtl.h (set_mem_attrs_for_spill): Declare.
1277         * reload1.c (alter_reg): Use it.
1278
1279 2008-10-12  Uros Bizjak  <ubizjak@gmail.com>
1280
1281         * config/i386/driver-i386.c (detect_caches_cpuid2): Use array
1282         of registers instead of eax, ebx, ecx and edx.  Use for loop
1283         and check register for non-zero value before the call
1284         to decode_caches_intel.
1285
1286 2008-10-11  Kenneth Zadeck <zadeck@naturalbridge.com>
1287
1288         PR rtl-optimization/37448
1289         * df.h: (df_ref_class): New enum.
1290         (DF_REF_TYPE_NAMES, df_ref_extract): Removed.
1291         (struct df_ref): Replaced with union df_ref_d.
1292         (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
1293         New members of df_ref_d union.
1294         (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
1295         DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
1296         DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
1297         DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
1298         DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
1299         DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d.
1300         (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
1301         (df_scan_bb_info, df_bb_regno_first_def_find,
1302         df_bb_regno_last_def_find, df_find_def, df_find_use,
1303         df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
1304         debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
1305         df_ref_create, df_ref_remove, df_compute_accessed_bytes,
1306         df_get_artificial_defs, df_get_artificial_uses, union_defs)
1307         Replaced struct df_ref * with df_ref.
1308         * df-scan.c (df_collection_rec, df_null_ref_rec,
1309         df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
1310         df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
1311         df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
1312         df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
1313         df_reorganize_refs_by_reg_by_reg,
1314         df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
1315         df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
1316         df_sort_and_compress_refs, df_install_ref, df_install_refs,
1317         df_ref_record, df_get_conditional_uses, df_get_call_refs,
1318         df_bb_refs_record, df_exit_block_uses_collect,
1319         df_record_exit_block_uses, df_reg_chain_mark,
1320         df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
1321         df_ref * with df_ref.
1322         (df_ref_record, df_uses_record, df_ref_create_structure): Added
1323         df_ref_class parameter.
1324         (df_scan_problem_data): Added new pools for different types of refs.
1325         (df_scan_free_internal, df_scan_alloc, df_free_ref,
1326         df_ref_create_structure): Processed new ref pools.
1327         (df_scan_start_dump): Added counts of refs and insns.
1328         (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
1329         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
1330         df_entry_block_defs_collect, df_exit_block_uses_collect): Added
1331         code to pass df_ref_class down to ref creation functions.
1332         (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
1333         df_reg_chain_mark): Use macros to hide references to df_refs.
1334         (df_ref_chain_change_bb): Removed.
1335         (df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
1336         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
1337         Enhanced to understand df_ref union structure.
1338         * fwprop.c (local_ref_killed_between_p, use_killed_between,
1339         all_uses_available_at, update_df, try_fwprop_subst,
1340         forward_propagate_subreg, forward_propagate_and_simplify,
1341         forward_propagate_into, fwprop, fwprop_addr): Replaced struct
1342         df_ref * with df_ref.
1343         (use_killed_between, all_uses_available_at): Use macros to hide
1344         references to df_refs.
1345         * regstat.c (regstat_bb_compute_ri,
1346         regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
1347         df_ref.
1348         * see.c (see_handle_relevant_defs, see_handle_relevant_uses,
1349         see_handle_relevant_refs, see_analyze_one_def,
1350         see_update_relevancy, see_propagate_extensions_to_uses): Replaced
1351         struct df_ref * with df_ref.
1352         * ra-conflict.c (record_one_conflict, clear_reg_in_live,
1353         global_conflicts): Replaced struct df_ref * with df_ref.
1354         * ddg.c (create_ddg_dep_from_intra_loop_link,
1355         add_cross_iteration_register_deps, build_inter_loop_deps):
1356         Replaced struct df_ref * with df_ref.
1357         (create_ddg_dep_from_intra_loop_link,
1358         add_cross_iteration_register_deps): Use macros to hide references
1359         to df_refs.
1360         * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct
1361         df_ref * with df_ref.
1362         * df-core.c (df_bb_regno_first_def_find,
1363         df_bb_regno_last_def_find, df_find_def, df_find_use,
1364         df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
1365         debug_df_ref): Replaced struct df_ref * with df_ref.
1366         (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs.
1367         * cse.c (cse_extended_basic_block): Replaced struct df_ref * with
1368         df_ref.
1369         * web.c (union_defs, entry_register, replace_ref, web_main):
1370         Replaced struct df_ref * with df_ref.
1371         (union_defs, replace_ref): Use macros to hide references to df_refs.
1372         * global.c (compute_regs_asm_clobbered, build_insn_chain):
1373         Replaced struct df_ref * with df_ref.
1374         * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref.
1375         * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets, ):
1376         Replaced struct df_ref * with df_ref.
1377         * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p,
1378         mark_ref_dead, process_bb_node_lives): Replaced struct df_ref *
1379         with df_ref.
1380         * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref.
1381         * df-byte-scan.c (df_compute_accessed_bytes_extract,
1382         df_compute_accessed_bytes_strict_low_part,
1383         df_compute_accessed_bytes_subreg, df_compute_accessed_bytes):
1384         Replaced struct df_ref * with df_ref.
1385         (df_compute_accessed_bytes): Use macros to hide references to df_refs.
1386         * init-regs.c (initialize_uninitialized_regs): Replaced struct
1387         df_ref * with df_ref.
1388         * loop-invariant.c (invariant_for_use, hash_invariant_expr_1,
1389         check_dependency, check_dependencies, record_uses): Replaced
1390         struct df_ref * with df_ref.
1391         (invariant_for_use, check_dependency): Use macros to hide
1392         references to df_refs.
1393         * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def,
1394         get_biv_step_1, get_biv_step, record_iv, iv_analyze_def,
1395         iv_analyze, biv_p): Replaced struct df_ref * with df_ref.
1396         (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide
1397         references to df_refs.
1398         * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref *
1399         with df_ref.
1400         * combine.c (create_log_links): Replaced struct df_ref * with df_ref.
1401         * df-problems.c (df_rd_bb_local_compute_process_def,
1402         df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create,
1403         df_chain_unlink_1, df_chain_unlink, df_chain_copy,
1404         df_chain_remove_problem, df_chain_create_bb_process_use,
1405         df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump,
1406         df_byte_lr_check_regs, df_byte_lr_bb_local_compute,
1407         df_byte_lr_simulate_defs, df_byte_lr_simulate_uses,
1408         df_byte_lr_simulate_artificial_refs_at_top,
1409         df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note,
1410         df_note_bb_compute, df_note_add_problem, df_simulate_defs,
1411         df_simulate_uses, df_simulate_artificial_refs_at_end,
1412         df_simulate_artificial_refs_at_top): Replaced struct df_ref * with
1413         df_ref.
1414         (df_chain_dump): Use macros to hide references to df_refs.
1415         * config/mips/mips.c (r10k_simplify_address): Replaced struct
1416         df_ref * with df_ref.
1417         * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes,
1418         mark_artificial_uses, mark_reg_dependencies,
1419         byte_dce_process_block): Replaced struct df_ref * with df_ref.
1420
1421 2008-10-11  Eric Botcazou  <ebotcazou@adacore.com>
1422
1423         * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in
1424         head comment.
1425         (array_ref_element_size): Likewise.
1426         (array_ref_low_bound): Likewise.
1427         (array_ref_up_bound): Likewise.
1428         * expr.c (contains_packed_reference): Likewise.
1429         (array_ref_element_size): Likewise.
1430         (array_ref_low_bound): Likewise.
1431         (array_ref_up_bound): Likewise.
1432         * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal
1433         with ARRAY_RANGE_REF.
1434         (idx_find_step): Likewise.
1435         (idx_record_use): Likewise.
1436         (strip_offset_1): Likewise.
1437         (idx_remove_ssa_names): Likewise.
1438
1439 2008-10-11  Uros Bizjak  <ubizjak@gmail.com>
1440             Andi Kleen  <ak@linux.intel.com>
1441
1442         * config/i386/cpuid.h (__cpuid_count): New defines.
1443         * config/i386/driver-i386.c (struct cache_desc): New structure.
1444         (describe_cache): Use struct cache_desc to pass cache descriptions.
1445         (detect_l2_cache): Ditto. Rename from decode_l2_cache.
1446         (detect_caches_amd): Use struct cache_desc to describe caches.
1447         (decode_caches_intel): Use struct cache_desc to pass cache
1448         descriptions.  Update descriptions to match latest (rev -032,
1449         December 2007) CPUID documentation.  Do not check valid bit here.
1450         Check for Xeon MP value 0x49 problems.
1451         (detect_caches_cpuid2): New function, split from detect_caches_intel.
1452         Check valid bit before calling decode_caches_intel.  Detect number
1453         of times to repeat CPUID instruction.
1454         (detect_caches_cpuid4): New function.
1455         (detect_caches_intel): Depending on max_level, call
1456         detect_caches_cpuid2 or detect_caches_cpuid4.  Call detect_l2_cache
1457         only when other methods fail to provide valid L2 cache description.
1458
1459 2008-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1460
1461         PR middle-end/37608
1462         * pa.md (call, call_value): Generate an rtx for register r4 and pass
1463         it to PIC call patterns.
1464         (call_symref_pic): Revise pattern to expose PIC register save.  Remove
1465         code generation and attributes from pattern.  Change peephole2 to
1466         split for noreturn case.  Revise split pattern for non noreturn case.
1467         (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
1468         call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
1469         * pa.c (attr_length_call): Simplify extraction of call rtx.  Add some
1470         asserts.
1471
1472 2008-10-11  David Edelsohn  <edelsohn@gnu.org>
1473
1474         * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
1475         (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
1476         and fp_type.
1477         (divdf3): Reformat long line.
1478
1479 2008-10-11  Michael J. Eager  <eager@eagercon.com>
1480
1481         * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
1482         -mfpu options.
1483         (rs6000_handle_option): Process -mfpu options.
1484         * config/rs6000/rs6000.h: (TARGET_XILINX_FPU): New.
1485         (enum fpu_type_t): New.
1486         * config/rs6000/rs6000.md (attr fp_type): New.  Include xfpu.md.
1487         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
1488         fp_type.
1489         (floatsisf2): Remove TARGET_SINGLE_FPU condition.
1490         (floatdidf2): Add TARGET_SINGLE_FPU condition.
1491         * config/rs6000/rs6000.opt (-mfpu): New.
1492         (-mxilinx-fpu): New.
1493         * config/rs6000/sysv4.h: (DRIVER_SELF_SPECS): New.
1494         * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
1495         * config/rs6000/xfpu.md: New. Define Xilinx pipeline.
1496         * gcc/config.gcc: powerpc-xilinx-eabi target: New.
1497         * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.
1498
1499 2008-10-11  Jakub Jelinek  <jakub@redhat.com>
1500
1501         PR target/35760
1502         * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
1503         LO_SUM on Darwin if mode has just one unit.
1504
1505 2008-10-10  H.J. Lu  <hongjiu.lu@intel.com>
1506
1507         PR debug/37002
1508         * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
1509         has been optimized out.
1510
1511 2008-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
1512
1513         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
1514         instead of PIC_DIRECT_ADDR_P.
1515         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
1516         (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
1517         (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
1518         (PIC_OFFSET_P): Rename to...
1519         (PCREL_SYMOFF_P): ...this.
1520         (PIC_DIRECT_ADDR_P): Delete.
1521         (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
1522         PIC_OFFSET_P.
1523         (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
1524         single argument.  Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
1525         UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
1526         * config/sh/sh.c (print_operand): Remove CONST handling.
1527         (unspec_caller_rtx_p): Rewrite to use split_const and check
1528         the operands of UNSPEC bases.
1529         (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
1530         with (unspec [A B] UNSPEC_SYMOFF).
1531         (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
1532         UNSPEC_PCREL_SYMOFF.
1533         (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
1534         * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
1535         (UNSPEC_EXTRACT_U16): Likewise.
1536         (UNSPEC_SYMOFF): Likewise.
1537         (UNSPEC_PCREL_SYMOFF): Likewise.
1538         (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
1539         of constants.
1540         (movsi_const_16bit): Likewise.
1541         (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
1542         (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
1543         with (unspec [A B] UNSPEC_PCREL_SYMOFF).
1544         (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
1545         with (unspec [A B] UNSPEC_SYMOFF).
1546         (symPLT_label2reg): Replace (minus A (minus B pc)) with
1547          (unspec [A B] PCREL_UNSPEC_SYMOFF).
1548         * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
1549         (Csu): Likewise UNSPEC_EXTRACT_U16.
1550         (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
1551         (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.
1552
1553 2008-10-10  Stepan Kasal  <skasal@redhat.com>
1554
1555         * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
1556         for loop strip mining and loop blocking.
1557
1558 2008-10-10  Alexandre Oliva  <aoliva@redhat.com>
1559
1560         * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
1561         vary types depending on debug info.
1562
1563 2008-10-10  Alexandre Oliva  <aoliva@redhat.com>
1564
1565         * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
1566         before ensuring it's already computed.
1567
1568 2008-10-09  Jakub Jelinek  <jakub@redhat.com>
1569
1570         * rtl.h (locator_eq): New decl.
1571         * cfglayout.c (locator_scope): New function.
1572         (insn_scope): Use it.
1573         (locator_eq): New function.
1574         (fixup_reorder_chain): Search for last insn in src bb
1575         that has locator set or first insn in dest bb.  Use
1576         locator_eq instead of == to compare locators.
1577         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
1578         * cfgcleanup.c (try_forward_edges): Use locator_eq instead of
1579         == to compare locators.
1580
1581         * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
1582         as used.
1583         * gimple-low.c (lower_function_body, lower_gimple_return,
1584         lower_builtin_setjmp): Set gimple_block on the newly created stmts.
1585         * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
1586         goto_block on edges if goto_locus is known.
1587
1588         PR middle-end/37774
1589         * tree.h (get_object_alignment): Declare.
1590         * emit-rtl.c (set_mem_attributes_minus_bitpos): Call
1591         get_object_alignment if needed.
1592         * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand
1593         handling to ...
1594         (get_object_alignment): ... here.  New function.  Try harder to
1595         determine alignment from get_inner_reference returned offset.
1596
1597 2008-10-08  Jakub Jelinek  <jakub@redhat.com>
1598
1599         * graphite.c (gloog): Don't call find_unreachable_blocks
1600         before delte_unreachable_blocks.
1601
1602         * cfgexpand.c (expand_gimple_cond): Convert also goto_block and
1603         goto_locus of true_edge into RTL locator.
1604
1605 2008-10-08  Uros Bizjak  <ubizjak@gmail.com>
1606
1607         * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
1608         (*jcc_btdi_mask_rex64): Ditto.
1609         (*jcc_btsi): Ditto.
1610         (*jcc_btsi_mask): Ditto.
1611         (*jcc_btsi_1): Ditto.
1612         (*jcc_btsi_mask_1): Ditto.
1613
1614 2008-10-08  Paul Brook  <paul@codesourcery.com>
1615
1616         * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
1617         compatible profiler (__gnu_mcount_nc).
1618         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
1619
1620 2008-10-08  H.J. Lu  <hongjiu.lu@intel.com>
1621
1622         * config/i386/i386.c (initial_ix86_tune_features): Add
1623         X86_TUNE_USE_VECTOR_FP_CONVERTS.
1624         * config/i386/i386.h (ix86_tune_indices): Likewise.
1625         (TARGET_USE_VECTOR_FP_CONVERTS): New.
1626
1627         * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
1628         instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
1629         for FP to FP splitters.
1630
1631 2008-10-08  H.J. Lu  <hongjiu.lu@intel.com>
1632
1633         * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
1634         splitter.
1635
1636 2008-10-08  Jakub Jelinek  <jakub@redhat.com>
1637
1638         PR target/36635
1639         PR target/37290
1640         PR rtl-optimization/37341
1641         * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
1642         to ORIG_BB, pass through ORIG_BB recursively.
1643         (cse_condition_code_reg): Adjust caller.
1644
1645 2008-10-08  Kai Tietz  <kai.tietz@onevision.com>
1646
1647         * sdbout.c (sdbout_one_type): Treat the value type
1648         CONST_DECL for enumerals.
1649
1650 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
1651
1652         * config/i386/i386.md: Remove trailing white spaces.
1653
1654 2008-10-07  Kenneth Zadeck <zadeck@naturalbridge.com>
1655
1656         PR rtl-optimization/37448
1657         * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field.
1658         (stuct alloc_pool_descriptor) [created, allocated, current, peak]:
1659         Make unsigned long.
1660         (struct output_info) [count]: Renamed total_created and made
1661         unsigned long.
1662         (struct output_info) [size]: Renamed total_allocated and made
1663         unsigned long.
1664         (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free):
1665         Properly keep track of desc->size.
1666         (print_statistics, dump_alloc_pool_statistics): Enhance the
1667         printing of statistics to print the number of elements and to use
1668         unsigned longs.
1669         
1670 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
1671
1672         PR middle-end/37576
1673         * opts.h (CL_SAVE): Move up to flags range.
1674         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
1675         CL_COMMON): Renumber.
1676         (CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
1677         * opts.c (common_handle_option): Revert last change.
1678
1679 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
1680
1681         * config/i386/i386-protos.h (ix86_schedule): New.
1682
1683         * config/i386/i386.c (ix86_schedule): New.
1684         (override_options): Add schedule to processor_alias_table.  Set
1685         ix86_schedule from the schedule field in processor_alias_table.
1686         (ix86_function_specific_save): Save ix86_schedule.
1687         (ix86_function_specific_restore): Restore ix86_schedule.
1688
1689         * config/i386/i386.md (cpu): Map to ix86_schedule instead of
1690         ix86_tune.  Add none and remove i386, i486, pentium4, nocona
1691         and generic32.
1692
1693         * config/i386/i386.opt: Add schedule.
1694
1695         * config/i386/ppro.md: Remove generic32.
1696
1697 2008-10-07  Simon Martin  <simartin@users.sourceforge.net>
1698
1699         PR c/35437
1700         * expr.c (count_type_elements): Handle ERROR_MARK.
1701
1702 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
1703
1704         PR debug/29609
1705         PR debug/36690
1706         PR debug/37616
1707         * basic-block.h (struct edge_def): Add goto_block field.
1708         * cfglayout.c (fixup_reorder_chain): Ensure that there is at least
1709         one insn with locus corresponding to edge's goto_locus if !optimize.
1710         * profile.c (branch_prob): Copy edge's goto_block.
1711         * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
1712         emitted jumps.
1713         (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
1714         locator in between the merged basic blocks if !optimize and needed.
1715         * cfgexpand.c (expand_gimple_cond): Convert goto_block and
1716         goto_locus into RTL locator.  For unconditional jump use that
1717         locator for the jump insn.
1718         (expand_gimple_cond): Convert goto_block and goto_locus into
1719         RTL locator for all remaining edges.  For unconditional jump
1720         use that locator for the jump insn.
1721         * cfgcleanup.c (try_forward_edges): Avoid the optimization if
1722         there is more than one edge or insn locator along the forwarding
1723         edges and !optimize.  If there is just one, set e->goto_locus.
1724         * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
1725         edge's goto_block.
1726         (move_block_to_fn): Adjust edge's goto_block.
1727
1728 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
1729
1730         PR middle-end/37731
1731         * expmed.c (expand_mult): Properly check DImode constant in
1732         CONST_DOUBLE.
1733
1734 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
1735
1736         PR debug/37738
1737         * dwarf2out.c (common_block_die_table): New variable.
1738         (common_block_die_table_hash, common_block_die_table_eq): New
1739         functions.
1740         (gen_variable_die): Look up a DW_TAG_common_block die for a particular
1741         COMMON block in the current scope rather than globally.  Optimize
1742         DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
1743         DW_OP_addr SYMBOL_REF+off.
1744
1745 2008-10-07  Eric Botcazou  <ebotcazou@adacore.com>
1746
1747         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
1748         Return true for non-addressable GIMPLE operands.
1749
1750 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
1751
1752         PR target/24765
1753         * config/i386/i386.c (initial_ix86_tune_features): Remove
1754         X86_TUNE_USE_BIT_TEST.
1755         * config/i386/i386.h (ix86_tune_indices): Likewise.
1756         (TARGET_USE_BIT_TEST): Removed.
1757
1758 2008-10-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1759
1760         * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.
1761
1762 2008-10-06  Adam Nemet  <anemet@caviumnetworks.com>
1763
1764         * config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
1765         (mul<mode>3_mul3): ... into this new template.
1766
1767 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
1768
1769         * gimplify.c (gimplify_arg): Add location argument.  Use it.
1770         (gimplify_call_expr): Pass location to gimplify_arg.
1771         (gimplify_modify_expr_to_memcpy): Same.
1772         (gimplify_modify_expr_to_memset): Same.
1773
1774 2008-10-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1775
1776         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1777         Update calls to build_unary_op and build_indirect_ref for location
1778         changes.
1779
1780 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
1781
1782         build_modify_expr.
1783         * c-decl.c (finish_decl): Pass input_location to build_unary_op.
1784         * c-typeck.c (array_to_pointer_conversion): Pass location to
1785         build_unary_op.
1786         (function_to_pointer_conversion): Use error_at and warning_at.
1787         (build_indirect_ref): Same.
1788         (build_array_ref): Pass location to build_binary_op.
1789         (parser_build_unary_op): Do not set location after calling
1790         build_unary_op.
1791         (build_unary_op): Add location argument.  Use it throughout.  Set
1792         EXPR_LOCATION before returning new tree.
1793         (build_modify_expr): Same.
1794         (build_binary_op): Use location throughout.  Set EXPR_LOCATION before
1795         returning node.
1796         * c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
1797         build_indirect_ref, build_modify_expr.
1798         (c_finish_omp_for): Same.  Use error_at instead of error.
1799         * c-common.c (c_common_truthvalue_conversion): Pass location to
1800         build_unary_op.
1801         (warn_for_div_by_zero): Add location argument.
1802         * c-common.h: Add argument to build_modify_expr, build_indirect_ref,
1803         build_unary_op, warn_for_div_by_zero.
1804         * c-parser.c (c_parser_typeof_specifier): Use
1805         protected_set_expr_location.
1806         (c_parser_statement_after_labels): Same.
1807         (c_parser_condition): Same.
1808         (c_parser_expr_no_commas): Pass correct location to build_modify_expr.
1809         (c_parser_conditional_expression): Use protected_set_expr_location.
1810         (c_parser_unary_expression): Pass location to build_indirect_ref.
1811         (c_parser_postfix_expression_after_primary): Pass location to
1812         build_indirect_ref, build_unary_op.
1813         (c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.
1814
1815 2008-10-06  Joshua Kinard  <kumba@gentoo.org>
1816
1817         * doc/invoke.texi: List r1x000 family under the -march MIPS option.
1818         * config/mips/mips.h (PROCESSOR_R10000): New processor_type.
1819         * config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
1820         r14000 and r16000.
1821         (mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
1822         (mips_issue_rate): Handle PROCESSOR_R10000.
1823         * config/mips/mips.md (cpu): Add r10000.
1824         Include r10000.md.
1825         * config/mips/10000.md: New file.
1826
1827 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
1828
1829         * config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare.
1830         * config/rs6000/rs6000.h (FIND_BASE_TERM): New macro.
1831         * config/rs6000/rs6000.c (rs6000_find_base_term): New function.
1832
1833 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
1834
1835         * config/darwin-protos.h (machopic_function_base_name): Delete.
1836         (machopic_function_base_sym): Likewise.
1837         (machopic_gen_offset): Declare.
1838         * config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro.
1839         (ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant.
1840         * config/darwin.c (machopic_function_base_name): Delete.
1841         (machopic_function_base_sym): Likewise.
1842         (gen_pic_offset): Rename to...
1843         (machopic_gen_offset): ...this and remove the pic_base argument.
1844         Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset
1845         is needed.  Create an UNSPEC_MACHOPIC_OFFSET if so, and set
1846         crtl->uses_pic_offset_table.
1847         (machopic_indirect_data_reference): Use new machopic_gen_offset
1848         interface.
1849         (machopic_legitimize_pic_address): Likewise.
1850         (machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.
1851
1852         * config/i386/darwin.h (GOT_SYMBOL_NAME): Use
1853         MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name.
1854         * config/i386/i386.c (output_set_got): Likewise.
1855         (darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET
1856         instead of a MINUS.
1857         (legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET.
1858         (legitimate_address_p): Likewise.
1859         (output_pic_addr_const): Likewise.
1860         (output_addr_const_extra): Likewise.
1861         (ix86_delegitimize_address): Expect darwin_local_data_pic to
1862         match an UNSPEC rather than a MINUS.
1863         * config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define.
1864         (builtin_setjmp_receiver): Use machopic_gen_offset.
1865         * config/i386/predicates.md (pic_symbolic_operand): Handle
1866         UNSPEC_MACHOPIC_OFFSET.
1867
1868         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
1869         Use machopic_gen_offset and machopic_operand_p.
1870         (rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET.
1871         (rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME.
1872         * config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define.
1873         (builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME.
1874         Set crtl->uses_pic_offset_table.
1875
1876 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
1877
1878         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
1879         Declare.
1880         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro.
1881         * config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant.
1882         * config/rs6000/rs6000.c (constant_pool_expr_1): Delete.
1883         (constant_pool_expr_p): Use split_const and check the base.
1884         (toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL
1885         instead of a MINUS.
1886         (legitimate_constant_pool_address_p): Check toc_relative_p
1887         instead of constant_pool_expr_p.
1888         (print_operand_address): Always use output_addr_const for
1889         constant pool addresses.
1890         (rs6000_output_addr_const_extra): New function.
1891         (create_TOC_reference): Create an UNSPEC_TOCREL instead of a MINUS.
1892
1893 2008-10-06  Vladimir Makarov  <vmakarov@redhat.com>
1894
1895         PR middle-end/37535
1896
1897         * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
1898         (mark_ref_live, mark_ref_dead): Use them.
1899         (def_conflicts_with_inputs_p): Remove.
1900         (mark_early_clobbers): New function.
1901         (process_bb_node_lives): Call preprocess_constraints and
1902         mark_early_clobbers.
1903
1904         * doc/rtx.texi (clobber): Change how RA deals with clobbers.
1905
1906 2008-10-06  Danny Smith  <dannysmith@users.sourceforge.net>
1907
1908         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Add thread cleanup
1909         lib with -mthread switch.
1910
1911 2008-10-05  Dodji Seketeli  <dodji@redhat.com>
1912
1913         PR c++/37410
1914         * dwarf2out.c (dwarf2out_imported_module_or_decl): Split this
1915         function in two, making it call a new and reusable
1916         dwarf2out_imported_module_or_decl() that takes the containing
1917         BLOCK of the declaration in argument.
1918         (dwarf2out_imported_module_or_decl_real): New function.
1919         (decls_for_scope, gen_decl_die, dwarf2out_decl): Take
1920         IMPORTED_DECL in account.
1921         * tree.def: Added IMPORTED_DECL node type.
1922         * tree.h: Added accessors for IMPORTED_DECL nodes.
1923         * tree.c (init_ttree): Initialise IMPORTED_DECL node type.
1924
1925 2008-10-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1926
1927         * doc/gimple.texi: Fix some typos, wrap some long lines,
1928         fix some broken wraps with continuations.
1929         * tree-ssa-reassoc.c: Fix comment typos.
1930
1931 2000-10-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1932
1933         PR target/37603
1934         * pa.c (legitimize_pic_address): Force function labels to memory in
1935         word mode.
1936
1937 2008-10-04  Anton Blanchard  <anton@samba.org>
1938
1939         * config/rs6000/rs6000.c (rs6000_emit_sync): Use gen_lwsync().
1940         (rs6000_split_atomic_op): Same.
1941         (rs6000_split_compare_and_swap): Same.
1942         (rs6000_split_compare_and_swapqhi): Same.
1943
1944 2008-10-04  Richard Guenther  <rguenther@suse.de>
1945
1946         * tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p
1947         instead of pointer equality.
1948         (vn_nary_op_eq): Likewise.
1949
1950 2008-10-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1951
1952         * config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT 
1953         condition.
1954         (fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS &&
1955         TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT".
1956
1957 2008-10-03  Danny Smith  <dannysmith@users.sourceforge.net>
1958
1959         * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
1960         Revert previous change.
1961
1962 2008-10-03  Tom Tromey  <tromey@redhat.com>
1963
1964         * stringpool.c (ggc_alloc_string): Terminate string.
1965
1966 2008-10-03  Jakub Jelinek  <jakub@redhat.com>
1967
1968         * gimplify.c (gimplify_function_tree): For -finstrument-functions
1969         use gimple_bind_{,set_}block instead of gimple_{,set_}block.
1970         * gimple.h (gimple_bind_set_block): Allow second argument to be NULL.
1971
1972         PR debug/37726
1973         * gimplify.c (declare_vars): Use gimple_bind_block instead of
1974         gimple_block.
1975
1976 2008-10-03  Pascal Obry  <obry@adacore.com>
1977
1978         * gcov.c (create_file_names): Properly handle UNIX and DOS
1979         directory separators.
1980         (make_gcov_file_name): Likewise + convert the ':' DOS drive
1981         separator to '~' to ensure clean filenames on Windows.
1982
1983 2008-10-02  Danny Smith  <dannysmith@users.sourceforge.net>
1984
1985         * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
1986         Add a null terminator to the stripped name.
1987
1988 2008-10-02  David Edelsohn  <edelsohn@gnu.org>
1989
1990         * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert
1991         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1992         (function_arg_advance): Condition on TARGET_DOUBLE_FLOAT,
1993         TARGET_SINGLE_FLOAT.  Revert SCALAR_FLOAT_MODE_P condition.
1994         (function_arg): Condition on TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1995         (rs6000_function_value): Revert TARGET_DOUBLE_FLOAT,
1996         TARGET_SINGLE_FLOAT.
1997
1998 2008-10-02  Daniel Jacobowitz  <dan@codesourcery.com>
1999
2000         * builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE.
2001
2002 2008-10-02  Richard Guenther  <rguenther@suse.de>
2003
2004         PR middle-end/37713
2005         * tree-ssa.c (useless_type_conversion_p_1): For COMPLEX_TYPE
2006         and VECTOR_TYPE recurse with useless_type_conversion_p which
2007         properly handles void pointer conversion.
2008
2009 2008-10-02  Danny Smith  <dannysmith@users.sourceforge.net>  
2010
2011         PR target/37528
2012         * config/i386/mingw32.h (LIBGCC_SPEC) : Replace with ..
2013         (REAL_LIBGCC_SPEC): New.  Always include -lgcc.
2014
2015 2008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2016
2017         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2018         Handle ALTIVEC_BUILTIN_VEC_SPLATS, ALTIVEC_BUILTIN_VEC_PROMOTE,
2019         ALTIVEC_BUILTIN_VEC_EXTRACT, and ALTIVEC_BUILTIN_VEC_INSERT specially,
2020         they translate to non builtins.
2021         * config/rs6000/rs6000.c (altivec_init_builtins): Add new variable
2022         opaque_ftype_opaque.  Define builtins __builtin_vec_splats,
2023         __builtin_vec_promote, __builtin_vec_extract, and
2024         __builtin_vec_insert.
2025         * config/rs6000/rs6000.h (enum rs6000_builtins): Add
2026         ALTIVEC_BUILTIN_VEC_EXTRACT, ALTIVEC_BUILTIN_VEC_PROMOTE,
2027         ALTIVEC_BUILTIN_VEC_INSERT, and ALTIVEC_BUILTIN_VEC_SPLATS.
2028         * config/rs6000/altivec.h (vec_extract): Define
2029         (vec_insert): Define.
2030         (vec_splats): Define.
2031         (vec_promote): Define.
2032
2033 2008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2034             Yukishige Shibata  <shibata@rd.scei.sony.co.jp>
2035             Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
2036
2037         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell
2038         Altivec intrinsics.
2039         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Delete
2040         prototype.  Add new parameter, blk.
2041         Use BLKmode for the MEM if blk is true.
2042         (altivec_expand_builtin): Handle ALTIVEC_BUILTIN_STVLX,
2043         ALTIVEC_BUILTIN_STVLXL, ALTIVEC_BUILTIN_STVRX, and
2044         ALTIVEC_BUILTIN_STVRXL.
2045         Update usage of altivec_expand_lv_builtin.
2046         Handle ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL,
2047         ALTIVEC_BUILTIN_LVRX, and ALTIVEC_BUILTIN_LVRXL.
2048         (altivec_init_builtins): If compiling for the Cell, also define the
2049         cell VMX builtins.
2050         * config/rs6000/rs6000.h (rs6000_builtins): Define
2051         ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, ALTIVEC_BUILTIN_LVRX,
2052         ALTIVEC_BUILTIN_LVRXL, ALTIVEC_BUILTIN_STVLX, ALTIVEC_BUILTIN_STVLXL,
2053         ALTIVEC_BUILTIN_STVRX, ALTIVEC_BUILTIN_STVRXL,
2054         ALTIVEC_BUILTIN_VEC_LVLX, ALTIVEC_BUILTIN_VEC_LVLXL,
2055         ALTIVEC_BUILTIN_VEC_LVRX, ALTIVEC_BUILTIN_VEC_LVRXL,
2056         ALTIVEC_BUILTIN_VEC_STVLX, ALTIVEC_BUILTIN_VEC_STVLXL,
2057         ALTIVEC_BUILTIN_VEC_STVRX, and ALTIVEC_BUILTIN_VEC_STVRXL.
2058         * config/rs6000/altivec.md (define_constants): Define UNSPEC_LVLX,
2059         UNSPEC_LVLXL, UNSPEC_LVRX, UNSPEC_LVRXL, UNSPEC_STVLX, UNSPEC_STVLXL,
2060         UNSPEC_STVRX, and UNSPEC_STVRXL.
2061         (altivec_lvlx): New pattern.
2062         (altivec_lvlxl): New pattern.
2063         (altivec_lvrx): New pattern.
2064         (altivec_lvrxl): New pattern.
2065         (altivec_stvlx): New pattern.
2066         (altivec_stvlxl): New pattern.
2067         (altivec_stvrx): New pattern.
2068         (altivec_stvrxl): New pattern.
2069         * config/rs6000/altivec.h (vec_lvlx): Define if PPU is defined.
2070         (vec_lvlxl): Likewise.
2071         (vec_lvrx): Define if PPU is defined.
2072         (vec_lvrxl): Likewise.
2073         (vec_stvlx): Define if PPU is defined.
2074         (vec_stvlxl): Likewise.
2075         (vec_stvrx): Define if PPU is defined.
2076         (vec_stvrxl): Likewise.
2077
2078 2008-10-01  Geert Bosch  <bosch@adacore.com>
2079
2080         * tree.c (contains_placeholder_p): Return 0 for a SAVE_EXPR.
2081
2082 2008-10-01  Richard Guenther  <rguenther@suse.de>
2083
2084         PR tree-optimization/37617
2085         * tree-ssa-pre.c (create_expression_by_pieces): During FRE
2086         do not add to the NEW_SETS.
2087
2088 2008-10-01  Richard Guenther  <rguenther@suse.de>
2089
2090         PR middle-end/37285
2091         * tree-vrp.c (execute_vrp): If we optimized away the default
2092         case make sure to promote the label that got in place of it
2093         to a default case label.
2094
2095 2008-10-01  Richard Henderson  <rth@redhat.com>
2096
2097         PR tree-opt/35737
2098         * tree-complex.c (set_component_ssa_name): Don't optimize
2099         is_gimple_min_invariant values with ssa_names in abnormal phis.
2100
2101 2008-09-30  Paolo Bonzini  <bonzini@gnu.org>
2102
2103         PR tree-optimization/37662
2104         * tree-ssa-ccp.c (fold_gimple_assign): Invert the operands of a
2105         commutative binary operation if they are in the wrong order and
2106         fold_build2 produces non-GIMPLE.
2107
2108 2008-09-30  Jakub Jelinek  <jakub@redhat.com>
2109
2110         PR tree-optimization/37662
2111         PR tree-optimization/37663
2112         * tree-vrp.c (simplify_truth_ops_using_ranges): Don't call
2113         get_value_range with non-SSA_NAME.  Don't assert operands have been
2114         folded, instead just bail out.
2115
2116 2008-09-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2117
2118         * config/rs6000/rs6000.md (fnmadds combiner): Revert typo.
2119
2120 2008-09-30  Richard Guenther  <rguenther@suse.de>
2121
2122         PR middle-end/37491
2123         * tree-vect-transform.c (vect_create_data_ref_ptr): Properly
2124         build restrict-qualified pointers.
2125         (vectorizable_store): Move alias check later.
2126         (vectorizable_load): Likewise.
2127
2128 2008-09-30  Paolo Bonzini  <bonzini@gnu.org>
2129
2130         * c-common.c (empty_if_body_warning): Remove.
2131         * c-common.h (empty_if_body_warning): Remove.
2132         * c-parser.c (c_parser_if_body, c_parser_else_body): Implement
2133         here the -Wempty-body warning for `if' and `else' statements.
2134         * c-typeck.c (c_finish_if_stmt): Do not call empty_body_warning.
2135
2136 2008-09-29  H.J. Lu  <hongjiu.lu@intel.com>
2137
2138         * config/i386/i386.opt: Add msse2avx.
2139
2140         * config/i386/linux.h (ASM_SPEC): New.  Support -msse2avx.
2141         * config/i386/linux64.h (ASM_SPEC): Likewise.
2142
2143         * doc/invoke.texi: Document -msse2avx.
2144
2145 2008-09-29  Eric Botcazou  <ebotcazou@adacore.com>
2146
2147         * dwarf2out.c (constant_size): Use HOST_WIDE_INT in parameter type.
2148
2149 2008-09-29  Joseph Myers  <joseph@codesourcery.com>
2150
2151         * ifcvt.c (noce_emit_store_flag): If using condition from original
2152         jump, reverse it if if_info->cond was reversed.
2153
2154 2008-09-29  Eric Botcazou  <ebotcazou@adacore.com>
2155
2156         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
2157         non-constant memory if it cannot be forced to constant memory.
2158         Overhaul surrounding code and factor out common condition.
2159
2160 2008-09-29  Jeff Law <law@redhat.com>
2161
2162         * reload1.c (alter_reg): Add missing curly braces.
2163
2164 2008-09-29  Michael J. Eager  <eager@eagercon.com>
2165
2166         * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
2167         are easy.
2168         * config/rs6000/rs6000.c (rs6000_override_options): Move
2169         rs6000_init_hard_regno_mode_ok after all options changed.
2170         Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
2171         (rs6000_handle_option): Process -msingle-float, -mdouble-float,
2172         -msimple-fpu flags.  Add warning messages if single FP not configured.
2173         (rs6000_file_start): Output gnu_attribute for single-float.
2174         (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
2175         (rs6000_legitimize_address): Likewise.
2176         (rs6000_legitimize_reload_address): Likewise.
2177         (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
2178         TARGET_SINGLE_FLOAT.
2179         (function_arg_advance): Likewise (partial conversion).
2180         (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
2181         (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
2182         TARGET_SINGLE_FLOAT.
2183         (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
2184         (rs6000_emit_prologue): Likewise.
2185         (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
2186         TARGET_SINGLE_FLOAT.
2187         (rs6000_libcall_value): Likewise.
2188         * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
2189         (TARGET_DOUBLE_FLOAT): New default to 1
2190         (TARGET_SIMPLE_FPU): New default to 0
2191         (TARGET_SINGLE_FPU): New default to 0
2192         (TARGET_SINGLE_FLOAT_MODE): New.
2193         (TARGET_DOUBLE_FLOAT_MODE): New.
2194         * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
2195         TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
2196         UNITS_PER_FP_WORD
2197         * config/rs6000/rs6000.md (define_mode_iterator): Condition on
2198         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
2199         (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
2200         copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
2201         nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
2202         muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
2203         movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
2204         floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
2205         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
2206         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
2207         rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
2208         floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
2209         movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
2210         extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
2211         abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
2212         cmptf_internal1, *cmptf_internal2): Condition on
2213         TARGET_DOUBLE_FLOAT.
2214         (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
2215         mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
2216         *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
2217         btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
2218         floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
2219         *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
2220         TARGET_SINGLE_FLOAT.
2221         (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
2222         * config/rs6000/rs6000.opt (-msingle-float): New.
2223         (-mdouble-float): New.
2224         (-msimple-fpu): New.
2225         * doc/invoke.texi (RS/6000 and PowerPC Options): Add
2226         -msingle-float, -mdouble-float, -msimple-fpu options.
2227         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
2228         _SOFT_DOUBLE for -msingle-float.
2229         * config.gcc: New config for target=powerpc-xilinx-eabi.
2230
2231 2008-09-29  Tobias Grosser  <grosser@fim.uni-passau.de>
2232
2233         * graphite.c (dot_all_scops_1): Remove unused checks. SCoPs always
2234         have exit and entry.
2235         (new_scop): Take entry and exit edge to define new SCoP.
2236         (sd_region_p): New structure used during SCoP detection.
2237         (move_scops): Delete.
2238         (move_sd_regions): New.
2239         (scopdet_info): Change the definition from edges back to basic_blocks.
2240         (scopdet_edge_info):  Work on basic_blocks and rename to
2241         scopdet_basic_block_info.
2242         (split_difficult_bb): At the moment removed. We should later
2243         add it at another place.
2244         (build_scops_1): Work on basic_blocks.
2245         (bb_in_sd_region): New.
2246         (find_single_entry_edge): New.
2247         (find_single_exit_edge): New.
2248         (create_single_entry_edge): New.
2249         (sd_region_without_exit): New.
2250         (create_single_exit_edge): New.
2251         (unmark_exit_edges): New.
2252         (mark_exit_edges): New.
2253         (create_sese_edges): New.
2254         (build_graphite_scops): New.
2255         (build_scops): Make SCoPs SESE.
2256         (limit_scops): Use the new functions.
2257
2258 2008-09-29  Hans-Peter Nilsson  <hp@axis.com>
2259
2260         * config/cris/cris.h (IRA_COVER_CLASSES): Define.
2261
2262 2008-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2263
2264         PR target/37640
2265         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force
2266         address to a register before taking the lower part.
2267
2268 2008-09-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2269
2270         * config/sh/sh.h (OVERRIDE_OPTIONS): Unset flag_dwarf2_cfi_asm
2271         for SHmedia.
2272
2273 2008-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2274             Kaushal Kantawala  <kaushal_kantawala@playstation.sony.com>
2275
2276         PR tree-opt/36891
2277         * tree-ssa-loop-im.c (rewrite_reciprocal): Set DECL_GIMPLE_REG_P on
2278         the newly created variable.
2279         Create a VECTOR_CST of all 1s for vector types.
2280
2281 2008-09-28  Eric Botcazou  <ebotcazou@adacore.com>
2282
2283         PR middle-end/36575
2284         * fold-const.c (div_and_round_double) <ROUND_DIV_EXPR>: Fix typo.
2285
2286 2008-09-28  Eric Botcazou  <ebotcazou@adacore.com>
2287
2288         * expmed.c (store_fixed_bit_field): Always use convert_to_mode in
2289         order to convert between modes.
2290         (extract_bit_field_1): Test TRULY_NOOP_TRUNCATION on the right mode.
2291
2292 2008-09-27  Kaz Kojima  <kkojima@gcc.gnu.org>
2293
2294         * config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR
2295         if needed.
2296
2297 2008-09-26  Vladimir Makarov  <vmakarov@redhat.com>
2298
2299         Revert:
2300         2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
2301         * ira-lives.c:...
2302         * doc/rtl.texi:...
2303
2304 2008-09-26  Adam Nemet  <anemet@caviumnetworks.com>
2305
2306         * config/mips/mips.h (ISA_HAS_DMUL3, ISA_HAS_BADDU, ISA_HAS_BBIT,
2307         ISA_HAS_CINS, ISA_HAS_EXTS, ISA_HAS_SEQ_SNE, ISA_HAS_POP): Change
2308         them to yield false with MIPS16.
2309
2310 2008-09-26  Jakub Jelinek  <jakub@redhat.com>
2311
2312         PR middle-end/37275
2313         * dwarf2out.c (tls_mem_loc_descriptor): New function.
2314         (mem_loc_descriptor): Use it for MEM.  For PLUS fail if second
2315         mem_loc_descriptor failed.  Accept UNSPEC.
2316         (loc_descriptor): Use tls_mem_loc_descriptor for MEM.  For PARALLEL
2317         fail if one of the loc_descriptor calls for pieces failed.
2318         (loc_descriptor_from_tree_1): Handle even DECL_EXTERNAL __thread vars,
2319         as long as they bind locally.  For COMPONENT_REF, ARRAY_REF etc. fail
2320         if loc_descriptor_from_tree_1 on offset failed.
2321
2322         PR middle-end/37576
2323         * opts.c (common_handle_option): Don't call print_specific_help with
2324         CL_SAVE as first argument.
2325
2326 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
2327             Steve Ellcey  <sje@cup.hp.com>
2328
2329         * configure: Regenerate for new libtool.
2330         * aclocal.m4: Ditto.
2331
2332 2008-09-26  Pat Haugen  <pthaugen@us.ibm.com>
2333
2334         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Use correct
2335         alias set on MEM when saving stack pointer.
2336         * config/rs6000/rs6000.md (allocate_stack): Likewise
2337
2338 2008-09-26  Dorit Nuzman  <dorit@il.ibm.com>
2339
2340         PR tree-optimization/37574
2341         * tree-vectorizer.c (vect_is_simple_use): Fix indentation.
2342         * tree-vect-transform.c (vect_get_constant_vectors): Use vectype
2343         instead of vector_type for constants. Take computation out of loop.
2344         (vect_get_vec_def_for_operand): Use only vectype for constant case,
2345         and use only vector_type for invariant case.
2346         (get_initial_def_for_reduction): Use vectype instead of vector_type.
2347
2348 2008-09-25  Jakub Jelinek  <jakub@redhat.com>
2349
2350         PR c/37645
2351         * c-common.c (handle_weakref_attribute): Ignore the attribute unless
2352         the decl is a VAR_DECL or FUNCTION_DECL.
2353
2354 2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
2355
2356         PR middle-end/37535
2357         * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
2358         (mark_ref_live, mark_ref_dead): Use them.
2359         (def_conflicts_with_inputs_p): Remove.
2360         (mark_early_clobbers): New function.
2361         (process_bb_node_lives): Call preprocess_constraints and
2362         mark_early_clobbers.
2363
2364         * doc/rtl.texi (clobber): Change how RA deals with clobbers.
2365
2366 2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
2367
2368         PR middle-end/37448
2369         * ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP.
2370         (ira_compress_allocno_live_ranges): New prototype.
2371
2372         * ira-color.c: Rename IRA_ALLOCNO_TEMP to ALLOCNO_TEMP.
2373         (coalesced_allocnos_living_at_program_points): New.
2374         (coalesced_allocnos_live_at_points_p,
2375         set_coalesced_allocnos_live_points): New functions.
2376         (coalesce_spill_slots): Rewrite.
2377         
2378         * ira-lives.c (remove_some_program_points_and_update_live_ranges,
2379         ira_compress_allocno_live_ranges): New functions.
2380
2381         * ira-build.c (ira_flattening): Call
2382         ira_compress_allocno_live_ranges.
2383         (ira_build): Ditto.
2384
2385 2008-09-25  H.J. Lu  <hongjiu.lu@intel.com>
2386
2387         * config/i386/i386.md: Check cmp/branch fuse for cmp peephole
2388         optimization.
2389
2390 2008-09-25  Richard Sandiford  <rdsandiford@googlemail.com>
2391
2392         * combine.c (make_compound_operation): Handle the 'E' format.
2393         (count_rtxs): Likewise.
2394         (update_table_tick): Likewise.
2395         (get_last_value_validate): Likewise.
2396
2397 2008-09-25  Eric Botcazou  <ebotcazou@adacore.com>
2398
2399         * dbxout.c (dbxout_parms): Fetch the inner REG inside a PARALLEL.
2400
2401 2008-09-25 Sergei Dyshel <sergeid@il.ibm.com>
2402
2403         * matrix-reorg.c (transform_allocation_sites): Initializers 
2404         added to avoid the warning.
2405
2406 2008-09-25  Martin Jambor  <mjambor@suse.cz>
2407
2408         * cgraph.c (free_nodes): New variable.
2409         (NEXT_FREE_NODE): New macro.
2410         (cgraph_create_node): Reuse nodes from the free list.  Do not
2411         update uid if doing so.
2412         (cgraph_remove_node): Add the node to the free list.
2413
2414 2008-09-25  Gerald Pfeifer  <gerald@pfeifer.com>
2415
2416         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
2417
2418 2008-09-24  Richard Henderson  <rth@redhat.com>
2419
2420         * dwarf2.h (DW_OP_GNU_encoded_addr): New.
2421         * unwind-dw2.c (execute_stack_op): Handle it.
2422
2423 2008-09-24  David Edelsohn  <edelsohn@gnu.org>
2424
2425         Revert:
2426         2008-09-24  Michael J. Eager  <eager@eagercon.com>
2427
2428 2008-09-24  Aldy Hernandez  <aldyh@redhat.com>
2429
2430         * c-common.c (fname_decl): New location argument.
2431         * c-common.h (fname_decl): Same.
2432         * c-parser.c (c_lex_one_token): Use {warning,error}_at instead of
2433         {warning,error}.
2434         (c_parser_typeof_specifier): Same.
2435         (c_parser_parms_list_declarator): Same.
2436         (c_parser_asm_string_literal): Same.
2437         (c_parser_compound_statement_nostart): Same.
2438         (c_parser_label): Same.
2439         (c_parser_do_statement): Same.
2440         (c_parser_asm_statement): Same.
2441         (c_parser_unary_expression): Same.
2442         (c_parser_sizeof_expression): Same.
2443         (c_parser_postfix_expression): Same.
2444         (c_parser_pragma): Same.
2445         (c_parser_omp_clause_collapse): Same.
2446         (c_parser_omp_clause_num_threads): Same.
2447         (c_parser_omp_clause_schedule): Same.
2448         (c_parser_omp_all_clauses): Same.
2449         (c_parser_omp_sections_scope): Same.
2450         (c_parser_omp_for_loop): Same.  Pass condition's location to
2451         c_objc_common_truthvalue_conversion.
2452         (c_parser_enum_specifier): Remove comment.
2453
2454 2008-09-24  Michael J. Eager  <eager@eagercon.com>
2455
2456         * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
2457         are easy.
2458         * config/rs6000/rs6000.c (rs6000_override_options): Move
2459         rs6000_init_hard_regno_mode_ok after all options changed.
2460         Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
2461         (rs6000_handle_option): Process -msingle-float, -mdouble-float,
2462         -msimple-fpu flags.  Add warning messages if single FP not configured.
2463         (rs6000_file_start): Output gnu_attribute for single-float.
2464         (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
2465         (rs6000_legitimize_address): Likewise.
2466         (rs6000_legitimize_reload_address): Likewise.
2467         (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
2468         TARGET_SINGLE_FLOAT.
2469         (function_arg_advance): Likewise.
2470         (function_arg): Likewise.
2471         (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
2472         (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
2473         TARGET_SINGLE_FLOAT.
2474         (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
2475         (rs6000_emit_prologue): Likewise.
2476         (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
2477         TARGET_SINGLE_FLOAT.
2478         (rs6000_libcall_value): Likewise.
2479         * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
2480         (TARGET_DOUBLE_FLOAT): New default to 1
2481         (TARGET_SIMPLE_FPU): New default to 0
2482         (TARGET_SINGLE_FPU): New default to 0
2483         (TARGET_SINGLE_FLOAT_MODE): New.
2484         (TARGET_DOUBLE_FLOAT_MODE): New.
2485         * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
2486         TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
2487         UNITS_PER_FP_WORD
2488         * config/rs6000/rs6000.md (define_mode_iterator): Condition on
2489         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
2490         (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
2491         copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
2492         nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
2493         muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
2494         movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
2495         floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
2496         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
2497         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
2498         rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
2499         floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
2500         movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
2501         extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
2502         abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
2503         cmptf_internal1, *cmptf_internal2): Condition on
2504         TARGET_DOUBLE_FLOAT.
2505         (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
2506         mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
2507         *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
2508         btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
2509         floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
2510         *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
2511         TARGET_SINGLE_FLOAT.
2512         (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
2513         * config/rs6000/rs6000.opt (-msingle-float): New.
2514         (-mdouble-float): New.
2515         (-msimple-fpu): New.
2516         * doc/invoke.texi (RS/6000 and PowerPC Options): Add
2517         -msingle-float, -mdouble-float, -msimple-fpu options.
2518         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
2519         _SOFT_DOUBLE for -msingle-float.
2520         * config.gcc: New config for target=powerpc-xilinx-eabi.
2521
2522 2008-09-23  Eric Botcazou  <ebotcazou@adacore.com>
2523
2524         * config/sparc/constraints.md: New file.
2525         * config/sparc/sparc.md: Include it.
2526         * config/sparc/sparc-protos.h (memory_ok_for_ldd): Declare.
2527         (sparc_extra_constraint_check): Delete.
2528         * config/sparc/sparc.c (register_ok_for_ldd): Minor tweaks.
2529         (memory_ok_for_ldd): New predicate.
2530         (sparc_extra_constraint_check): Delete.
2531         * config/sparc/sparc.h (REG_CLASS_FROM_LETTER): Likewise.
2532         (CONST_OK_FOR_LETTER_P): Likewise.
2533         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
2534         (EXTRA_CONSTRAINT): Likewise.
2535
2536 2008-08-23  Steve Ellcey  <sje@cup.hp.com>
2537
2538         * regrename.c (do_replace): Copy REG_POINTER value to new reg.
2539
2540 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
2541
2542         * alias.c (find_base_value): Use FIND_BASE_TERM.
2543         * doc/tm.texi (FIND_BASE_TERM): Update documentation.
2544
2545 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
2546
2547         * config/i386/i386.c: Include cselib.h.
2548         (ix86_pic_register_p): New function.
2549         (ix86_delegitimize_address): Use it to check for the PIC register.
2550
2551 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
2552
2553         * doc/tm.texi (FIND_BASE_TERM): Expand documentation.
2554         * config/i386/i386.c (ix86_find_base_term): Don't check for
2555         SYMBOL_REF and LABEL_REF.
2556
2557 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
2558
2559         * config/i386/i386.c (ix86_delegitimize_address): Wrap the
2560         constant PLUS in a CONST.
2561
2562 2008-09-23  Kai Tietz  <kai.tietz@onevision.com>
2563
2564         * config/i386/i386.c (ix86_function_ok_for_sibcall): Correct
2565         check for sibcall support for w64.
2566
2567 2008-09-23  Eric Botcazou  <ebotcazou@adacore.com>
2568
2569         * c-ppoutput.c (cb_used_define): Do nothing for a builtin node.
2570
2571 2008-09-23  Aldy Hernandez  <aldyh@redhat.com>
2572
2573         * c-tree.h: Add argument to c_objc_common_truthvalue_conversion,
2574         parser_build_binary_op.
2575         * c-decl.c (build_enumerator): Pass location to build_binary_op.
2576         * c-typeck.c (build_array_ref): Same.
2577         (parser_build_unary_op): New location argument.
2578         (pointer_diff): Pass location to build_binary_op,
2579         c_objc_common_truthvalue_conversion.
2580         (build_modify_expr): Same.
2581         (build_unary_op): New location argument.
2582         (build_binary_op): New location argument.
2583         (c_objc_common_truthvalue_conversion): Pass location to
2584         c_*common_truthvalue_conversion.
2585         * c-convert.c (convert): Same.
2586         * c-common.c (binary_op_error): New location argument.
2587         (pointer_int_sum): Pass location to build_binary_op.
2588         (c_common_truthvalue_conversion): New location argument.
2589         (warn_for_sign_compare): Same.
2590         * c-common.h: Add location argument to c_common_truthvalue_conversion,
2591         binary_op_error, build_binary_op, warn_for_sign_compare.
2592         * c-parser.c (c_parser_condition): Pass location to
2593         c_*common_truthvalue_conversion.
2594         (c_parser_conditional_expression): Save condition's location and pass
2595         it on down.
2596         (c_parser_binary_expression): Same, but for the binary operator's
2597         location.
2598         (c_parser_omp_for_loop): Pass location to
2599         c_objc_common_truthvalue_conversion.
2600
2601 2008-09-23  Martin Jambor  <mjambor@suse.cz>
2602
2603         * cgraph.c (cgraph_free_edge): Use sizeof(*e).
2604         (cgraph_node_remove_callees): New temporary f.  Hold the next item
2605         in f when looping.
2606         (cgraph_node_remove_callers): Likewise.
2607
2608         * ipa-prop.c (ipa_edge_removal_hook): Use ATTRIBUTE_UNUSED.
2609         (ipa_node_removal_hook): Likewise.
2610
2611         * doc/gimple.texi (gimple_copy_call_skip_args): Changed to
2612         gimple_call_copy_skip_args and moved to the gimple_call section.
2613         * gimple.c (gimple_copy_call_skip_args): Renamed to
2614         gimple_call_copy_skip_args.  Changed al users.
2615
2616 2008-09-22  Vladimir Makarov  <vmakarov@redhat.com>
2617
2618         * ira-color.c (start_allocno_priorities): Rename to
2619         setup_allocno_priorities.  Use costs and
2620         ALLOCNO_EXCESS_PRESSURE_POINTS_NUM instead of frequencies and
2621         range lengths.  Get rid off doubles.
2622         (ira_fast_allocations): Call start_allocno_priorities.
2623         
2624 2008-09-22  David Daney  <ddaney@avtrex.com>
2625
2626         PR target/37593
2627         * config/mips/mips.h (FUNCTION_PROFILER): Call _mcount via a
2628         register if TARGET_LONG_CALLS.
2629
2630 2008-09-22  Richard Guenther  <rguenther@suse.de>
2631
2632         PR tree-optimization/37145
2633         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Re-enable
2634         value-numbering union accesses with their offset and size only.
2635         (visit_reference_op_load): Fix simplification of inserted conversions.
2636         * tree-ssa-pre.c (find_or_generate_expression): Do not
2637         recursively generate expressions if running FRE.
2638
2639 2008-09-22  Adam Nemet  <anemet@caviumnetworks.com>
2640
2641         * config/mips/mips.h (ISA_HAS_BADDU): New macro.
2642         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el, *baddu_di<mode>):
2643         New patterns.
2644
2645 2008-09-22  Richard Guenther  <rguenther@suse.de>
2646
2647         PR tree-optimization/37145
2648         * tree-ssa-pre.c (fully_constant_expression): Simplify builtin calls.
2649         (phi_translate_1): Constant fold references.
2650
2651 2008-09-22  Ira Rosen  <irar@il.ibm.com>
2652
2653         PR tree-optimization/37482
2654         * tree-vectorizer.h (struct _slp_instance): Add new field.
2655         (SLP_INSTANCE_FIRST_LOAD_STMT): New.
2656         (get_earlier_stmt): New function.
2657         * tree-vect-analyze.c (vect_find_first_load_in_slp_instance): New
2658         function.
2659         (vect_analyze_slp_instance): Set SLP_INSTANCE_FIRST_LOAD_STMT.
2660         * tree-vect-transform.c (vect_finish_stmt_generation): Remove the
2661         asserts that GSI points to the scalar statement being vectorized.
2662         Set new statement location according to GSI.
2663         (vect_schedule_slp_instance): Use GSI of
2664         SLP_INSTANCE_FIRST_LOAD_STMT when vectorizing loads.
2665
2666 2008-09-21  Jan Hubicka  <jh@suse.cz>
2667
2668         * ipa-cp.c (ipcp_estimate_growth): Check recursive calls.
2669         (ipcp_insert_stage): Update dead_nodes bitmap.
2670
2671 2008-09-22  Danny Smith  <dannysmith@users.sourceforge.net>
2672
2673         PR target/37528 
2674         * config/i386/t-cygming (SHLIB_LC): Remove.
2675         (SHLIB_LINK): Don't add static objects to SHLIB_IMPLIB
2676         * config/i386/t-cygwin (SHLIB_LC): Specify all required libraries.
2677
2678 2008-09-22  Hans-Peter Nilsson  <hp@axis.com>
2679
2680         PR middle-end/37170
2681         PR middle-end/37280
2682         * final.c (mark_symbol_ref_as_used): New helper function.
2683         (output_operand): Instead of just looking inside MEMs for
2684         SYMBOL_REFs, use new helper function and for_each_rtx.
2685         * varasm.c (assemble_external): Move #ifndef ASM_OUTPUT_EXTERNAL
2686         to after weak-handling.  Don't mark decls with TREE_STATIC as weak.
2687         Make head comment more general.
2688         * config/darwin.c (machopic_output_indirection): Handle weak
2689         references here, like in assemble_external.
2690
2691 2008-09-21  Eric Botcazou  <ebotcazou@adacore.com>
2692
2693         * config/sparc/sparc-protos.h (gen_compare_operator): Declare.
2694         (sparc_emit_float_lib_cmp): Change return type.
2695         * config/sparc/sparc.c (gen_compare_reg): Add comment about TFmode.
2696         (gen_compare_operator): New function.
2697         (sparc_emit_float_lib_cmp): Return the new operator to be used in
2698         the comparison sequence.  Minor tweaks.
2699         * config/sparc/sparc.md (seq, sne, sgt, slt, sge, sle): Assert
2700         that the final operator and the result of sparc_emit_float_lib_cmp
2701         match for software TFmode; use emit_insn in lieu of emit_jump_insn.
2702         (beq, bne, bgt, blt, bge, ble, bunordered, bordered, bungt, bunlt,
2703         buneq, bunge, bunle, bltgt): Assert that the final operator and the
2704         result of sparc_emit_float_lib_cmp match for software TFmode.
2705         (movqicc, movhicc, movsicc, movdicc): Merge into...
2706         (mov<I:mode>cc): ...this.
2707         (movsfcc, movdfcc, movtfcc): Merge into...
2708         (mov<F:mode>cc): ...this.
2709         (movqi_cc_sp64, movhi_cc_sp64, movsi_cc_sp64, movdi_cc_sp64): Merge
2710         into...
2711         (mov<I:mode>_cc_v9): ...this.
2712         (movdi_cc_sp64_trunc): Delete.
2713         (movqi_cc_reg_sp64, movhi_cc_reg_sp64, movsi_cc_reg_sp64,
2714         movdi_cc_reg_sp64): Merge into...
2715         (mov<I:mode>_cc_reg_sp64): ...this.
2716         (movsf_cc_sp64): Rename into...
2717         (movsf_cc_v9): ...this.
2718         (movdf_cc_sp64): Rename into...
2719         (movdf_cc_v9): ...this.
2720         (movtf_cc_hq_sp64): Rename into...
2721         (movtf_cc_hq_v9): ...this.
2722         (movtf_cc_sp64): Rename into...
2723         (movtf_cc_v9): ...this.  Adjust for renaming of movdf_cc_sp64.
2724
2725 2008-09-21  Diego Novillo  <dnovillo@google.com>
2726
2727         * doc/gccint.texi: Include generic.texi and gimple.texi.
2728         Re-order index.
2729         * doc/tree-ssa.texi (GENERIC): Move to generic.texi.
2730         (GIMPLE): Move to gimple.texi.
2731         (Annotations): Remove references to to stmt_ann_t and
2732         ssa_name_ann_t.
2733         (SSA Operands): Rename from 'Statement Operands'.
2734         * doc/generic.texi: New.
2735         * doc/gimple.texi: New.
2736         * Makefile.in (TEXI_GCCINT_FILES): Add generic.texi and gimple.texi.
2737         * Makefile.in (TEXI_GCCINT_FILES):
2738         * gimple.c (gimple_copy_call_skip_args): Rename from
2739         giple_copy_call_skip_args.  Update all users.
2740         * doc/gimple.texi (gimple_copy_call_skip_args): Document.
2741
2742 2008-09-21  Ira Rosen  <irar@il.ibm.com>
2743
2744         PR tree-optimization/37539
2745         * tree-vect-transform.c (vect_transform_strided_load): Save vector
2746         statement in related statement field only for the first load of the
2747         group of loads with the same data reference.
2748
2749 2008-09-20  Adam Nemet  <anemet@caviumnetworks.com>
2750
2751         * config/mips/mips.h (TUNE_OCTEON): New macro.
2752         * config/mips/mips.c (mips_issue_rate): Return 2 for Octeon.
2753         (mips_multipass_dfa_lookahead): Return 2 for Octeon.
2754         * config/mips/octeon.md: New file.
2755         * config/mips/mips.md: Include octeon.md.  Restore
2756         semi-alphabetical order of include files.
2757
2758 2008-09-20  H.J. Lu  <hongjiu.lu@intel.com>
2759
2760         PR target/37571
2761         * config/i386/i386.md (*jcc_fused_1): Removed.
2762         (*jcc_fused_2): Likewise.
2763         (*jcc_fused_3): Likewise.
2764         (*jcc_fused_4): Likewise.
2765
2766 2008-09-20  Richard Sandiford  <rdsandiford@googlemail.com>
2767
2768         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Define.
2769         (IRA_COVER_CLASSES): Refer to TARGET_IRA_COVER_CLASSES.
2770         * target.h (gcc_target): Add ira_cover_classes.
2771         * ira.c: Remove IRA_COVER_CLASSES guards.
2772         (setup_cover_and_important_classes): Use targetm.ira_cover_classes
2773         instead of IRA_COVER_CLASSES.
2774         (setup_cover_and_important_classes): Remove IRA_COVER_CLASSES guard.
2775         (setup_class_translate): Likewise.
2776         (setup_reg_class_intersect_union): Likewise.
2777         (find_reg_class_closure): Replace IRA_COVER_CLASSES guard with a
2778         test of targetm.ira_cover_classes.
2779         * opts.c (decode_options): Use targetm.ira_cover_classes instead
2780         of IRA_COVER_CLASSES.
2781         * target-def.h (TARGET_IRA_COVER_CLASSES): Define.
2782         (TARGET_INITIALIZER): Include it.
2783         * targhooks.h (default_ira_cover_classes): Declare.
2784         * targhooks.c (default_ira_cover_classes): New function.
2785
2786 2008-09-19  Bob Wilson  <bob.wilson@acm.org>
2787         
2788         * config/xtensa/xtensa.md (reload<mode>_literal): Handle MEM operands.
2789         
2790 2008-09-19  Ian Lance Taylor  <iant@google.com>
2791
2792         * varasm.c (narrowing_initializer_constant_valid_p): Return
2793         NULL_TREE if ENDTYPE is not an integer.
2794
2795 2008-09-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2796
2797         PR tree-opt/30930
2798         * tree-ssa.c (execute_update_addresses_taken): Also update
2799         DECL_GIMPLE_REG_P for vector and complex types.
2800
2801 2008-09-19  Andrew MacLeod  <amacleod@redhat.com>
2802             Jan Hubicka  <jh@suse.cz>
2803
2804         PR middle-end/37567
2805         * tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually
2806         empty before freeing them.
2807         (find_replaceable_exprs): Move asserts to free_temp_expr_table.
2808
2809 2008-09-18  Bob Wilson  <bob.wilson@acm.org>
2810
2811         * configure.ac: Add HAVE_AS_TLS check for Xtensa.
2812         * config/xtensa/predicates.md (tls_symbol_operand): New.
2813         * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Define.
2814         (TARGET_CANNOT_FORCE_MEM): Define.
2815         (xtensa_tls_symbol_p): New.
2816         (xtensa_emit_move_sequence): Check for and legitimize TLS addresses.
2817         (xtensa_legitimate_address_p): Disallow constant pool TLS references.
2818         (xtensa_tls_module_base): New.
2819         (xtensa_call_tls_desc): New.
2820         (xtensa_legitimize_tls_address): New.
2821         (xtensa_legitimize_address): Handle TLS symbols.
2822         (xtensa_tls_referenced_p_1): New.
2823         (xtensa_tls_referenced_p): New.
2824         (xtensa_output_addr_const_extra): Handle UNSPEC_TPOFF and
2825         UNSPEC_DTPOFF.
2826         (XTENSA_BUILTIN_THREAD_POINTER): New.
2827         (XTENSA_BUILTIN_SET_THREAD_POINTER): New.
2828         (xtensa_init_builtins): Set NOTHROW and READONLY for umulsidi3
2829         builtin.  Add declarations for __builtin_thread_pointer and
2830         __builtin_set_thread_pointer.
2831         (xtensa_fold_builtin): Recognize new builtins.
2832         (xtensa_expand_builtin): Expand new builtins.
2833         * config/xtensa/xtensa.h (XCHAL_HAVE_THREADPTR): Define default value.
2834         (TARGET_THREADPTR): Define.
2835         (HAVE_AS_TLS): Define default value.
2836         (LEGITIMATE_CONSTANT_P): Disallow TLS references.
2837         * config/xtensa/xtensa.md (UNSPEC_TPOFF, UNSPEC_DTPOFF): New.
2838         (UNSPEC_TLS_FUNC, UNSPEC_TLS_ARG, UNSPEC_TLS_CALL, UNSPEC_TP): New.
2839         (UNSPECV_SET_TP): New.
2840         (sym_TPOFF, sym_DTPOFF): New.
2841         (load_tp, set_tp, tls_func, tls_arg, tls_call): New.
2842         * config/xtensa/xtensa-protos.h (xtensa_tls_referenced_p): Declare.
2843         * configure: Regenerated.
2844         
2845 2008-09-18  H.J. Lu  <hongjiu.lu@intel.com>
2846
2847         PR target/37394
2848         * config/ia64/ia64.c (ia64_optimization_options): Move
2849         checking and setting flag_schedule_insns_after_reload and
2850         ia64_flag_schedule_insns2 back to ...
2851         (ia64_override_options): Here.
2852
2853 2008-09-18  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2854
2855         PR rtl-opt/37451
2856         * loop-doloop.c (doloop_modify): New argument zero_extend_p and
2857         zero extend count after the correction to it is done.
2858         (doloop_optimize): Update call to doloop_modify, don't zero extend
2859         count before call.
2860
2861 2008-09-18  Martin Jambor  <mjambor@suse.cz>
2862
2863         * ipa-cp.c (ipcp_estimate_growth): Return 0 instead of false.
2864
2865         * ipa-prop.c: Correct comments.
2866         * ipa-prop.h: Likewise.
2867
2868 2008-09-18  Jan Hubicka  <jh@suse.cz>
2869
2870         PR middle-end/37448
2871         * ipa-reference.c (ipa_reference_local_vars_info_d,
2872         ipa_reference_global_vars_info_d,
2873         ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
2874         ipa_reference_vars_info_t): Move here from ipa-reference.h
2875         (node_duplication_hook_holder, node_removal_hook_holder): New.
2876         (get_reference_vars_info_from_cgraph): Rename to ...
2877         (get_reference_vars_info): ... this one, use cgraph uids.
2878         (get_local_reference_vars_info, get_global_reference_vars_info):
2879         Use cgraph instead of decl.
2880         (ipa_reference_get_read_local, ipa_reference_get_written_local):
2881         Remove.
2882         (ipa_reference_get_read_global, ipa_reference_get_not_read_global
2883         ipa_reference_get_written_global,
2884         ipa_reference_get_not_written_global): Use cgraph argument.
2885         (check_call): Simplify avail check.
2886         (scan_stmt_for_static_refs): Update.
2887         (propagate_bits): Update.
2888         (merge_callee_local_info): Remove.
2889         (init_function_info): Use cgraph nodes.
2890         (clean_function_local_data): Break out from ...
2891         (clean_function): ... here.
2892         (copy_local_bitmap, copy_global_bitmap): New functions.
2893         (duplicate_node_data, remove_node_data): New functions.
2894         (generate_summary): Register hooks; use visibility instead of
2895         master clones.
2896         (propafate): Use cgraph nodes; copy bitmap to each node in cycle.
2897         * ipa-reference.h (ipa_reference_local_vars_info_d,
2898         ipa_reference_global_vars_info_d,
2899         ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
2900         ipa_reference_vars_info_t): Move to ipa-reference.c
2901         (ipa_reference_get_read_local, ipa_reference_get_written_local):
2902         Remove.
2903         (ipa_reference_get_read_global, ipa_reference_get_written_global,
2904         ipa_reference_get_not_read_global,
2905         ipa_reference_get_not_written_global): Update prototype.
2906         * ipa-pure-const.c (funct_state_vec): Turn into VECtor.
2907         (init_state): Remove.
2908         (node_duplication_hook_holder, node_removal_hook_holder): New.
2909         (get_function_state, set_function_state): Use VECtor.
2910         (analyze_function): Check body availability.
2911         (add_new_function): Likewise.
2912         (duplicate_node_data, remove_node_data): New.
2913         (generate_summary): Register hooks; do not care about clones.
2914         (propafate): Do not care about clones; recursive functions are
2915         not looping.
2916         * ipa-utils.c (searchc, ipa_utils_reduced_inorder): Do not skip clones.
2917         * ipa-prop.c (edge_removal_hook_holder, node_removal_hook_holder,
2918         * edge_duplication_hook_holder, node_duplication_hook_holder): Make
2919         static.
2920         * tree-flow.h (function_ann_d): Remove reference_vars_info.
2921         * tree-ssa-opreands.c (add_call_clobber_ops, add_call_read_ops):
2922         Update call of ipa-reference accesors.
2923
2924 2008-09-18  Simon Baldwin  <simonb@google.com>
2925
2926         * c-opts.c (c_common_handle_option): Add handling for
2927         -Wbuiltin-macro-redefined command line option.
2928         * c.opt: Added builtin-macro-redefined option.
2929         * doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined
2930         documentation.
2931
2932 2008-09-18  Richard Guenther  <rguenther@suse.de>
2933
2934         PR tree-optimization/37258
2935         * tree-ssa-sccvn.c (vn_phi_compute_hash): Include the precision
2936         and signedness for integral types.
2937         (vn_phi_eq): Require compatible types.
2938
2939 2008-09-18  Jakub Jelinek  <jakub@redhat.com>
2940
2941         PR debug/34037
2942         * gimplify.c (gimplify_type_sizes): When not optimizing, ensure
2943         TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
2944         VAR_DECL.
2945         * cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
2946         !DECL_IGNORED_P vars in local_decls list for instantiate_decls,
2947         ggc_free other TREE_LIST nodes from that chain.
2948         * function.c (instantiate_decls): Instantiate also DECL_RTL
2949         of vars in cfun->local_decls, free that list afterwards.
2950
2951 2008-09-18  Eric Botcazou  <ebotcazou@adacore.com>
2952
2953         * config/sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): Move to...
2954         * config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): ...here.
2955
2956 2008-09-18  Andrew MacLeod  <amacleod@redhat.com>
2957
2958         * tree-outof-ssa.c (eliminate_useless_phis): Fix formatting.
2959         * tree-flow-.h (struct immediate_use_iterator_d): Fix comment.
2960
2961 2008-09-18  Andrew MacLeod  <amacleod@redhat.com>
2962
2963         PR tree-optimization/37102
2964         * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args
2965         from a node. Check to see if another PHI is dead.
2966         (eliminate_useless_phis): Rename from eliminate_virtual_phis and 
2967         remove real PHIs which have no uses.
2968         (rewrite_out_of_ssa): Call eliminate_useless_phis.
2969
2970 2008-09-18  Richard Guenther  <rguenther@suse.de>
2971
2972         PR middle-end/37284
2973         * tree-cfg.c (remove_useless_stmts_1): Remove
2974         GIMPLE_CHANGE_DYNAMIC_TYPE if not optimizing.
2975
2976 2008-09-18  Nick Clifton  <nickc@redhat.com>
2977
2978         * config/frv/frv.h (IRA_COVER_CLASSES): Define.
2979         (SECONDARY_INPUT_RELOAD_CLASS): Omit unused argument in call
2980         to frv_secondary_reload_class.
2981         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
2982         * config/frv/frv.c (TARGET_SECONDARY_RELOAD): Define.
2983         (frv_secondary_reload_class): Omit unused parameter.
2984         (frv_secondary_reload): New function.  Handle the case when
2985         secondary_reload_class() is called before the reload_(in|out)
2986         _optabs have been initialised.
2987         * config/frv/frv-protos.h (frv_secondary_reload_class): Omit
2988         unused parameter.
2989         * config/frv/frv.md: Define an exclusion set between fr550_m0
2990         and fr550_f0.
2991
2992 2008-09-18  Richard Guenther  <rguenther@suse.de>
2993
2994         PR tree-optimization/37456
2995         * tree-ssa-reassoc.c (build_and_add_sum): If the stmt we
2996         want to insert after ends a BB insert on the single fallthru
2997         outgoing edge.
2998
2999 2008-09-18  Andreas Krebbel  <krebbel1@de.ibm.com>
3000
3001         * doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
3002         Mention -march=z9-109, z9-ec and z10.
3003
3004 2008-09-18  Uros Bizjak  <ubizjak@gmail.com>
3005
3006         PR rtl-optimization/37544
3007         * regrename.c (maybe_mode_change): Exit early when copy_mode
3008         is narrower than orig_mode and narrower than new_mode.
3009
3010 2008-09-18  Alexander Monakov  <amonakov@ispras.ru>
3011
3012         PR middle-end/37499
3013         * sched-int.h (struct _haifa_insn_data): Remove unused field ref_count.
3014
3015         * sched-rgn.c (ref_counts): Remove.
3016         (insn_referenced): New static variable.
3017         (INSN_REF_COUNT): Remove.
3018         (sched_run_compute_dependencies): Use insn_referenced instead of
3019         INSN_REF_COUNT.
3020         (add_branch_dependences): Likewise.  Delete dead assignment.
3021
3022 2008-09-17  Adam Nemet  <anemet@caviumnetworks.com>
3023
3024         * haifa-sched.c (dep_cost_1): Recognize the producer even if the
3025         consumer is an asm.  Add comment why this is important.
3026         (choose_ready): Add comment to the "INSN_CODE (insn) >= 0 ||
3027         recog_memoized (insn) < 0" assert.  Put ENABLE_CHECKING around it.
3028
3029 2008-09-17  Joseph Myers  <joseph@codesourcery.com>
3030
3031         * expr.c (emit_group_store): Do not shift before moving via a
3032         stack slot.
3033
3034 2008-09-17  Eric Botcazou  <ebotcazou@adacore.com>
3035
3036         * varasm.c (initializer_constant_valid_p): Forbid view-conversions
3037         from aggregate to non-aggregate type if the bit pattern is not fully
3038         preserved afterwards.
3039
3040 2008-09-17  Richard Guenther  <rguenther@suse.de>
3041
3042         * tree-cfg.c (verify_types_in_gimple_assign): Rename to ...
3043         (verify_gimple_assign): ... this.  Split into ...
3044         (verify_gimple_assign_unary): ... this,
3045         (verify_gimple_assign_binary): ... that,
3046         (verify_gimple_assign_single): ... and this.
3047         (verify_types_in_gimple_stmt): Call verify_gimple_assign.
3048         Fix GIMPLE_CHANGE_DYNAMIC_TYPE handling.
3049         (verify_types_in_gimple_min_lval): Handle TARGET_MEM_REF.
3050         (verify_types_in_gimple_reference): Be forgiving with
3051         VIEW_CONVERT_EXPRs.
3052         (verify_gimple_phi): Deal with virtual operands.
3053
3054         * tree.def (PREDICT_EXPR): Change to tcc_expression.
3055
3056 2008-09-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3057
3058         * tree.c (get_callee_fndecl): Don't call the language hook.
3059         * langhooks.h (lang_hooks): Remove lang_get_callee_fndecl.
3060         * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): Kill.
3061         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_GET_CALLEE_FNDECL.
3062
3063 2008-09-17  Jakub Jelinek  <jakub@redhat.com>
3064
3065         * tree.c (protected_set_expr_location): Don't unnecessarily
3066         check for error_mark_node.
3067
3068 2008-09-17  Art Haas  <ahaas@impactweather.com>
3069
3070         * ipa-reference.c (analyze_function): Declare step only if
3071         ENABLE_CHECKING is defined.
3072
3073 2008-09-17  Jan Hubicka  <jh@suse.cz>
3074
3075         PR c++/18071
3076         * tree.h (DECL_INLINE): remove.
3077         (DECL_DECLARED_INLINE_P): Update docs.
3078         (DECL_NO_INLINE_WARNING_P): new.
3079         (tree_function_decl): Replace inline_flag by no_inline_warning_flag.
3080         * tree-inline.c (inlinable_function_p): Set DECL_NO_INLINE_WARNING_P.
3081
3082 2008-09-17  Jakub Jelinek  <jakub@redhat.com>
3083             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3084
3085         PR bootstrap/37441
3086         * dwarf2out.c (dwarf2out_do_cfi_asm) [MIPS_DEBUGGING_INFO]: Return
3087         false.
3088
3089 2008-09-17  Jan Hubicka  <jh@suse.cz>
3090
3091         * ipa-reference.c (ipa_obstack): Remove.
3092         (local_info_obstack, global_info_obstack): New.
3093         (add_static_var): We now handle variables only.
3094         (mark_address_taken, mark_load, mark_store): New functions based on ...
3095         (check_operand): ... remove.
3096         (get_asm_stmt_operands): Rename to ...
3097         (check_asm_memory_clobber): ... this. Look only for memory clobber.
3098         (scan_stmt_for_static_refs): Rewrite.
3099         (scan_op_for_static_refs): Rename to ...
3100         (scan_initializer_for_static_refs): do not look for VAR_DECL
3101         initializers; stop recursion on types and decls.
3102         (ipa_init): Use proper obstacks.
3103         (analyze_variable): Use scan_initializer_for_static_refs.
3104         (init_function_info): Use local obstack.
3105         (analyze_function): Simplify.
3106         (add_new_function): We don't need visited_nodes obstack.
3107         (generate_summary): Use proper obstacks; cleanup after propagation.
3108
3109 2008-09-17  Richard Guenther  <rguenther@suse.de>
3110
3111         PR middle-end/37385
3112         PR tree-optimization/37491
3113         * alias.c (get_alias_set): Use the canonical type.
3114         * tree-vect-transform.c (vectorizable_store): Use the type of
3115         the lhs for the vector type.  Adjust checking.
3116         (vectorizable_load): Adjust checking.
3117
3118 2008-09-16  Jakub Jelinek  <jakub@redhat.com>
3119             Adam Nemet  <anemet@caviumnetworks.com>
3120
3121         PR rtl-optimization/37483
3122         * ifcvt.c (noce_try_sign_mask): Use if_info->test_bb instead of
3123         if_info->insn_b's bb as argument to optimize_bb_for_speed_p.
3124         Rearrange code to better match the original comment.  Check
3125         t_unconditional first.  Improve comment.
3126
3127 2008-09-16  Jakub Jelinek  <jakub@redhat.com>
3128
3129         PR c/37529
3130         * gimplify.c (gimplify_expr) <case GOTO_EXPR>: If gimplification of
3131         GOTO_DESTINATION failed, don't create GIMPLE_GOTO.
3132
3133         PR c++/37530
3134         * gimplify.c (gimplify_expr) <case TRY_CATCH_EXPR>: Don't create
3135         GIMPLE_TRY if cleanup sequence is empty.
3136
3137 2008-09-16  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3138
3139         PR middle-end/37263
3140         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Prefer the
3141         eliminate IV if the cost are the same.
3142
3143 2008-09-16  Richard Guenther  <rguenther@suse.de>
3144
3145         PR middle-end/37380
3146         * tree-sra.c (sra_build_assignment): Do not call the gimplifier
3147         if not necessary.
3148
3149 2008-09-16  Richard Guenther  <rguenther@suse.de>
3150
3151         PR tree-optimization/37508
3152         * tree-vrp.c (simplify_truth_ops_using_ranges): Also allow -1.
3153
3154 2008-09-15  Kaz Kojima  <kkojima@gcc.gnu.org>
3155
3156         * config/sh/sh.md (movsf_ie): Fix length for TARGET_SH2A.
3157
3158 2008-09-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3159
3160         * config/rs6000/rs6000.md (floatsidf2): Rewrite PowerPC64 case to
3161         use gen_floatdidf2 directly.
3162         (floatunssidf2): Likewise.
3163         (floatsidf_ppc64_mfpgpr): Remove.
3164         (floatsidf_ppc64): Remove.
3165         (floatunssidf_ppc64): Remove.
3166
3167 2008-09-15  Jakub Jelinek  <jakub@redhat.com>
3168
3169         * ira-color.c (finish_cost_update): Free update_cost_queue_elems
3170         rather than update_cost_queue.
3171
3172         * tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_release
3173         in every call starting with the second one, instead of only when
3174         alias_bitmap_obstack.elements != NULL.
3175
3176         * tree-predcom.c (filter_suitable_components): Free all refs in
3177         act->refs vector before calling release_component.
3178         (add_ref_to_chain): Free ref if not adding it to chain->refs.
3179
3180         * tree-data-ref.c (free_subscripts): Free all subscript objects.
3181
3182         * tree-loop-linear.c (linear_transform_loops): Initialize
3183         lambda_obstack only after calling perfect_loop_nest_depth.
3184         Goto free_and_continue instead of just continue for later failures.
3185
3186         PR middle-end/37479
3187         * doc/invoke.texi: Document -fno-dwarf2-cfi-asm.
3188
3189         PR libmudflap/36397
3190         * tree-mudflap.c (mf_xform_derefs_1): Handle VIEW_CONVERT_EXPR.
3191
3192 2008-09-14  Andreas Schwab  <schwab@suse.de>
3193
3194         * tree-call-cdce.c (check_target_format): Accept Motorola formats.
3195
3196 2008-09-14  Jan Hubicka  <jh@suse.cz>
3197
3198         * invoke.texi (-fconserve-stack): Document.
3199         * opts.c (decode_options): Handle conserve_stack.
3200         * common.opt (fconvserve_stack): New.
3201
3202 2008-09-14  David Edelsohn  <edelsohn@gnu.org>
3203
3204         * config.host: Add x-aix to host_xmake_file.
3205         * config/rs6000/t-aix52: Do not override LDFLAGS.
3206         * config/rs6000/x-aix: New file.
3207
3208 2008-09-14  Andy Hutchinson  <hutchinsonandy@aim.com>
3209
3210         PR target/19636
3211         PR target/24894
3212         PR target/31644
3213         PR target/31786
3214         * config/avr/avr.c (legitimate_address_p): Fix problem where subreg
3215         is not recognized as a valid register usage. Allow REG_X to be used
3216         as a base pointer.
3217         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Remove code that
3218         forces a reload when using a base register.
3219
3220 2008-09-14  Danny Smith  <dannysmith@users.sourceforge.net>
3221
3222         * config/i386/cygming-crtend.c (register_frame_ctor): If
3223         DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame
3224         directly with atexit.
3225         (deregister_frame_ctor): Rename to ...
3226         (deregister_frame_dtor): Use to call __gcc_deregister_frame
3227         if !DEFAULT_USE_CXA_ATEXIT.
3228
3229 2008-09-13  Jan Hubicka  <jh@suse.cz>
3230
3231         * cgraph.c: Include value-prof.h
3232         * Makefile.in (cgraph.o): Add value-prof.h dependency.
3233
3234 2008-09-13  Jan Hubicka  <jh@suse.cz>
3235
3236         PR middle-end/32581
3237         * tree-profile.c (add_abnormal_goto_call_edges): New function.
3238         (tree_gen_interval_profiler, tree_gen_pow2_profiler,
3239         tree_gen_one_value_profiler, tree_gen_average_profiler,
3240         tree_gen_ic_func_profiler, tree_gen_ior_profiler): Use it.
3241
3242 2008-09-13  Jan Hubicka  <jh@suse.cz>
3243
3244         * i386.c (ix86_expand_movmem, ix86_expand_movstr): Avoid processing
3245         too many bytes on misalligned blocks.
3246
3247 2008-09-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3248
3249         * doc/cfg.texi: Fix some typos.
3250         * doc/extend.texi: Likewise.
3251         * doc/install.texi: Likewise.
3252         * doc/invoke.texi: Likewise.
3253         * doc/rtl.texi: Likewise.
3254         * doc/tree-ssa.texi: Likewise.
3255
3256 2008-09-13  Richard Guenther  <rguenther@suse.de>
3257
3258         PR middle-end/30141
3259         * tree-nested.c (finalize_nesting_tree_1): Generate valid
3260         gimple stores for memory rhs.
3261
3262 2008-09-13  H.J. Lu  <hongjiu.lu@intel.com>
3263
3264         PR rtl-optimization/37489
3265         * cse.c (fold_rtx): Don't return const_true_rtx for float
3266         compare if FLOAT_STORE_FLAG_VALUE is undefined.
3267
3268 2008-09-13  Jan Hubicka  <jh@suse.cz>
3269
3270         PR tree-optimization/37392
3271         * tree-inline.c (remap_gimple_stmt): Do not remap return value.
3272
3273 2008-09-13  Martin Jambor  <mjambor@suse.cz>
3274             Jan Hubicka  <jh@suse.cz>
3275
3276         * cgraph.c (free_edges): New variable.
3277         (NEXT_FREE_EDGE): New macro.
3278         (cgraph_free_edge): New function.
3279         (cgraph_remove_edge): Call cgraph_remove_edge_1.
3280         (cgraph_node_remove_callees): Likewise.
3281         (cgraph_node_remove_callers): Likewise.
3282         (cgraph_create_edge): Reuse edges from the free list.  Do not
3283         update uid if doing so.
3284         (cgraph_remove_*_hook): Add free call.
3285
3286 2008-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
3287
3288         * ira-color.c (conflict_allocno_vec): Delete.
3289         (update_cost_queue_elem): New structure.
3290         (update_cost_queue): New variable.
3291         (update_cost_queue_tail): Likewise.
3292         (update_cost_queue_elems): Likewise.
3293         (allocno_update_cost_check): Delete.
3294         (initiate_cost_update): Allocate update_cost_queue_elems
3295         instead of allocno_update_cost_check.
3296         (finish_cost_update): Update the free()s accordingly.
3297         (start_update_cost): New function.
3298         (queue_update_cost): Likewise.
3299         (get_next_update_cost): Likewise.
3300         (update_copy_costs_1): Inline into...
3301         (update_copy_costs): ...here.  Use a queue instead of recursive calls.
3302         Use cover_class instead of ALLOCNO_COVER_CLASS (another_allocno),
3303         once we've established they are equal.  Don't allocate update
3304         costs if there is nothing to add to them.
3305         (update_conflict_hard_regno_costs): Remove ALLOCNO and
3306         DIVISOR arguments.  Use a queue instead of recursive calls;
3307         process all the allocnos in the initial queue, rather than
3308         a single allocno.
3309         (assign_hard_reg): Use queue_update_cost instead of
3310         conflict_allocno_vec.  Queue coalesced allocnos instead
3311         of calling update_conflict_hard_regno_costs for each one.
3312         Just call update_conflict_hard_regno_costs once for the
3313         entire queue.
3314         (ira_color): Remove conflict_allocno_vec handling.
3315
3316 2008-09-12  Sebastian Pop  <sebastian.pop@amd.com>
3317
3318         PR tree-optimization/37484
3319         * graphite.c (scop_record_loop): Use snprintf instead of sprintf.
3320         (save_var_name): Same.
3321         (initialize_cloog_names): Same.
3322         (initialize_cloog_names): Same.
3323
3324 2008-09-12  Sebastian Pop  <sebastian.pop@amd.com>
3325
3326         * tree-scalar-evolution.c (set_instantiated_value): Set
3327         instantiated_below.
3328
3329 2008-09-12  Vladimir Makarov  <vmakarov@redhat.com>
3330
3331         PR rtl-opt/37377
3332
3333         * ira-build.c (common_loop_tree_node_dominator): Remove.
3334         (copy_live_ranges_to_removed_store_destinations): New function.
3335         (regno_top_level_allocno_map): Move to top level from ...
3336         (ira_flattening): ... here.  Use
3337         copy_live_ranges_to_removed_store_destinations.
3338
3339         * ira-emit.c (generate_edge_moves): Fix a comment.
3340
3341 2008-09-12  Anatoly Sokolov  <aesok@post.ru>
3342
3343         PR target/37466
3344         * config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for
3345         scratch register after 'set' pattern.
3346
3347 2008-09-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3348
3349         * emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment
3350         information passed to mark_reg_pointer.
3351         * explow.c (force_reg): Likewise.
3352
3353 2008-09-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3354
3355         * config/spu/spu.c (spu_override_options): Default to -mno-safe-hints
3356         when building for the celledp architecture.
3357
3358 2008-09-12  Richard Guenther  <rguenther@suse.de>
3359
3360         * tree-vrp.c (simplify_truth_ops_using_ranges): Fix types.
3361
3362 2008-09-12  Eric Botcazou  <ebotcazou@adacore.com>
3363
3364         PR rtl-optimization/37424
3365         * ira-color.c (coalesced_pseudo_reg_slot_compare): Untie by comparing
3366         the regnos instead of the addresses.
3367
3368 2008-09-11  Janis Johnson  <janis187@us.ibm.com>
3369
3370         * ginclude/float.h (DEC_EVAL_METHOD): Correct the macro name.
3371
3372 2008-09-11  Richard Guenther  <rguenther@suse.de>
3373
3374         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid
3375         entering the weaker equivalence recording.
3376
3377         * tree-ssa-phiprop.c (propagate_with_phi): Fix tuplification.
3378
3379 2008-09-11  Jeff Law <law@redhat.com>
3380
3381         * reload1.c (alter_reg): Undo the BYTE_BIG_ENDIAN correction performed
3382         by assign_stack_local on the IRA path for stack slot sharing
3383         as well as the non-IRA path.
3384
3385 2008-09-11  Uros Bizjak  <ubizjak@gmail.com>
3386
3387         * config/i386/i386.h: Fix whitespace issues.
3388
3389 2008-09-11  Martin Jambor  <mjambor@suse.cz>
3390
3391         * ipa-prop.h (struct ipa_param_flags): Removed.
3392         (struct ipa_param_descriptor): New structure.
3393         (struct ipa_node_params): ipcp_lattices, param_decls and
3394         param_flags moved to ipa_param_description.
3395         (ipa_get_ith_param): Renamed to ipa_get_param, changed to access
3396         descriptors.  Renamed all users.
3397         (ipa_is_ith_param_modified): Renamed to ipa_is_param_modified,
3398         changed to access descriptors.  Renamed all users.
3399         (ipa_is_ith_param_called): Renamed to ipa_is_param_called, changed
3400         to access descriptors. Renamed all users.
3401         * ipa-cp.c (ipcp_init_cloned_node): Call
3402         ipa_initialize_node_params instead of ipa_count_formal_params and
3403         ipa_create_param_decls_array.
3404         (ipcp_analyze_node): Likewise.
3405         (ipcp_get_ith_lattice): Renamed to ipcp_get_lattice, changed to access
3406         descriptors.  Renamed all users.
3407         (ipcp_initialize_node_lattices): Remove allocation.
3408         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
3409         ipa_initialize_node_params instead of ipa_count_formal_params and
3410         ipa_create_param_decls_array.
3411         * ipa-prop.c (ipa_create_param_decls_array): Renamed to
3412         ipa_populate_param_decls, made static, added parameter info,
3413         renamed mt to node, removed allocation, changed to use
3414         descriptors.
3415         (ipa_count_formal_params): Made static, added parameter info,
3416         renamed mt to node.
3417         (ipa_initialize_node_params): New function.
3418         (ipa_check_stmt_modifications): Changed to use descriptors.
3419         (ipa_detect_param_modifications): Removed allocation, changed to
3420         use descriptors.
3421         (ipa_note_param_call): Changed to use descriptors.
3422         (ipa_analyze_params_uses): Removed allocation.
3423         (ipa_free_node_params_substructures): Changed to use descriptors.
3424         (ipa_edge_duplication_hook): Use the unused attribute.
3425         (ipa_node_duplication_hook): Use the unused attribute, changed to
3426         use descriptors, changed to duplicate descriptors.
3427
3428         * ipa-inline.c (cgraph_mark_inline_edge): New parameter new_edges,
3429         changed all callers.  Call ipa_propagate_indirect_call_infos if doing
3430         indirect inlining.  Made static.
3431         (cgraph_decide_inlining): Freeing ipa-prop structures after inlining
3432         functions called only once.
3433         (cgraph_decide_recursive_inlining): Don't call
3434