OSDN Git Service

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