OSDN Git Service

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