OSDN Git Service

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