OSDN Git Service

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