OSDN Git Service

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