OSDN Git Service

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