OSDN Git Service

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