OSDN Git Service

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