OSDN Git Service

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