OSDN Git Service

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