OSDN Git Service

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