OSDN Git Service

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