OSDN Git Service

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