OSDN Git Service

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