OSDN Git Service

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