OSDN Git Service

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