OSDN Git Service

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