OSDN Git Service

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