OSDN Git Service

Correct ChangeLog entry for revision r141440 and remove white spaces.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-11-03  Harsha Jagasia  <harsha.jagasia@amd.com>
2
3         PR tree-optimization/37684
4         * gcc.dg/graphite/pr37684.c: New.
5         * graphite.c (exclude_component_ref): New.
6         (is_simple_operand): Call exclude_component_ref.
7
8 2008-11-03  Sebastian Pop  <sebastian.pop@amd.com>
9
10         PR tree-optimization/36908
11         * testsuite/gcc.dg/tree-ssa/pr36908.c: New.
12         * tree-loop-distribution.c (number_of_rw_in_rdg): New.
13         (number_of_rw_in_partition): New.
14         (partition_contains_all_rw): New.
15         (ldist_gen): Do not distribute when one of the partitions
16         contains all the memory operations.
17
18 2008-11-03  Sebastian Pop  <sebastian.pop@amd.com>
19
20         * cfghooks.c (split_block): Set BB_IRREDUCIBLE_LOOP and
21         EDGE_IRREDUCIBLE_LOOP.
22
23 2008-11-03  Bernd Schmidt  <bernd.schmidt@analog.com>
24
25         * config/bfin/bfin.c (bfin_optimize_loop): Properly handle case
26         where we have one entry point in the loop which isn't the head.
27
28 2008-11-03  Richard Guenther  <rguenther@suse.de>
29
30         PR middle-end/37573
31         * tree-data-ref.c (split_constant_offset_1): Fix tuplification.
32
33 2008-11-03  Jakub Jelinek  <jakub@redhat.com>
34
35         PR middle-end/37858
36         * passes.c (execute_one_pass): Don't look at cfun->curr_properties
37         for ipa and simple ipa passes.
38
39 2008-11-02  Richard Guenther  <rguenther@suse.de>
40
41         PR tree-optimization/37542
42         * tree-ssa-pre.c (fully_constant_expression): Handle more cases.
43         * tree-ssa-sccvn.c (vn_get_expr_for): Fix typo.
44         (vn_nary_op_lookup_stmt): Adjust for unary reference trees.
45         (vn_nary_op_insert_stmt): Likewise.
46         (visit_use): Likewise.
47
48 2008-11-02  Anatoly Sokolov  <aesok@post.ru>
49
50         * config/avr/avr.md (UNSPEC_SWAP): Remove constants.
51         (*swap): Remove.
52         (rotlqi3, *rotlqi3_4, rotlhi3, *rotlhi3_8,
53         rotlsi3, *rotlsi3_8, *rotlsi3_16, *rotlsi3_24): New patterns.
54         (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, ashlqi3_l_const4,
55         ashlqi3_l_const5, ashlqi3_l_const6, lshrqi3_const4, lshrqi3_const5,
56         lshrqi3_const6, lshrqi3_l_const4, lshrqi3_l_const4, lshrqi3_l_const6
57         peephole2's): Replace unspec with rotate.
58         * config/avr/avr.c (avr_rtx_costs): Add ROTATE.
59
60 2008-11-02  Richard Guenther  <rguenther@suse.de>
61
62         PR tree-optimization/37991
63         * tree-ssa-sccvn.h (copy_vuses_from_stmt): Remove.
64         * tree-ssa-sccvn.c (copy_vuses_from_stmt): Make static.
65         (set_ssa_val_to): Print if the value changed.
66         (simplify_binary_expression): Strip useless conversions.
67
68 2008-11-01  Hans-Peter Nilsson  <hp@axis.com>
69
70         PR target/37939
71         * config/cris/cris.c (cris_rtx_costs) <MULT>: Return 0 for an ADDI
72         operand.
73
74 2008-11-01  Richard Guenther  <rguenther@suse.de>
75
76         PR middle-end/37976
77         * builtins.c (fold_builtin_strspn): Return a size_t.
78         (fold_builtin_strcspn): Likewise.
79
80 2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
81
82         * config/rs6000/rs6000.c (rs6000_file_start): Output gnu
83         attribute for struct return convention.
84
85 2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
86
87         * config/rs6000/crtsavres.asm: Really, really delete.
88
89 2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
90
91         * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
92         problem.
93         (rs6000_emit_prologue): Invert logic.
94         * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
95         (reg:P 11) instead of match_operand.
96         (*save_fpregs_<mode>): Likewise.
97         (*restore_gpregs_<mode>): Likewise.
98         (*return_and_restore_gpregs_<mode>): Likewise.
99         (*return_and_restore_fpregs_<mode>): Likewise.
100         * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
101         (reg:P 11) insted of match_operand.
102         (*restore_gpregs_spe): Likewise.
103         (*return_and_restore_gpregs_spe): Likewise.
104
105 2008-10-28  Luis Machado  <luisgpm@br.ibm.com>
106
107         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add "dumpbase" to the
108         list of word switches that take args.
109
110 2008-10-30  Jakub Jelinek  <jakub@redhat.com>
111
112         * config/s390/s390.c (s390_mark_symbol_ref_as_used): New function.
113         (s390_output_pool_entry): Call it through for_each_rtx.
114
115         PR middle-end/37730
116         * expr.c (store_constructor): For vectors, if target is a MEM, use
117         target's MEM_ALIAS_SET instead of elttype alias set.
118
119 2008-10-29  Kaz Kojima  <kkojima@gcc.gnu.org>
120
121         PR target/37909
122         * config/sh/sh.c (untangle_mova): Return -1 when NEW_MOVA has
123         no address.
124
125 2008-10-29  David Edelsohn  <edelsohn@gnu.org>
126
127         PR target/37878
128         * config/rs6000/predicates.md (word_offset_memref_operand):
129         Restructure code and look inside auto-inc/dec addresses.
130         
131 2008-10-29  Steve Ellcey  <sje@cup.hp.com>
132
133         PR target/32277
134         * libgcov.c ( __gcov_indirect_call_profiler): Check
135         TARGET_VTABLE_USES_DESCRIPTORS.
136
137 2008-10-29  Stefan Schulze Frielinghaus  <xxschulz@de.ibm.com>
138
139         * config/spu/spu.h (FRAME_GROWS_DOWNWARD): Define.
140         (INITIAL_FRAME_POINTER_OFFSET): Remove.
141         * config/spu/spu.c (spu_initial_elimination_offset): Calculate new
142         offset if eliminating soft frame pointer.
143         * config/spu/spu.md (stack_protect_set, stack_protect_test)
144         (stack_protect_test_si): Add initial machine description
145         for Stack Smashing Protector
146
147 2008-10-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
148
149         PR 11492
150         * c-common.c (min_precision): Move to...
151         * tree.c (tree_int_cst_min_precision): ... to here. Renamed.
152         * tree.h (tree_int_cst_min_precision): Declare.
153         * c-common.h (min_precision): Delete declaration.
154         * fold-const.c (tree_binary_nonnegative_warnv_p): Handle
155         multiplication of non-negative integer constants.
156         * c-decl.c (check_bitfield_type_and_width): Rename min_precision to
157         tree_int_cst_min_precision.
158         (finish_enum): Likewise.
159
160 2008-10-29  Joseph Myers  <joseph@codesourcery.com>
161
162         PR middle-end/36578
163         * convert.c (convert_to_real): Do not optimize conversions of
164         binary arithmetic operations between binary and decimal
165         floating-point types.  Consider mode of target type in determining
166         decimal type for arithmetic.  Unless
167         flag_unsafe_math_optimizations, do not optimize binary conversions
168         where this may change rounding behavior.
169         * real.c (real_can_shorten_arithmetic): New.
170         * real.h (real_can_shorten_arithmetic): Declare.
171
172 2008-10-29  Bernd Schmidt  <bernd.schmidt@analog.com>
173         
174         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315,
175         ENABLE_WA_05000257, ENABLE_WA_05000283, ENABLE_WA_05000315): New.
176         * config/bfin/bfin.c (bfin_cpus): Add these workaround bits as
177         appropriate.
178         (must_save_p): For some workarounds, interrupts need to clobber a
179         P register.
180         (expand_prologue_reg_save, expand_epilogue_reg_restore): Save LC0
181         and LC1 for WA_05000257.
182         (expand_interrupt_handler_prologue): Add dummy read of CHIPID for
183         WA_05000283 and WA_05000315.
184         * config/bfin/bfin.md (UNSPEC_VOLATILE_DUMMY): New constant.
185         (movbi): Add alternative to set CC to 1; improve code for setting
186         CC to 0.
187         (dummy_load): New pattern.
188
189 2008-10-29  Jakub Jelinek  <jakub@redhat.com>
190
191         PR middle-end/37870
192         * expmed.c (extract_bit_field_1): If int_mode_for_mode returns
193         BLKmode for non-memory, convert using a wider MODE_INT mode
194         or through memory.
195
196         PR middle-end/37913
197         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Only split bbs
198         that haven't been removed yet.
199
200 2008-10-29  Bernd Schmidt  <bernd.schmidt@analog.com>
201
202         * config/bfin/bfin.c (struct machine_function): New member
203         has_loopreg_clobber.
204         (bfin_expand_movmem): Set it when generating memcpy insns.
205         (n_regs_saved_by_prologue, expand_prologue_reg_save,
206         expand_epilogue_reg_restore): If we have hardware loops,
207         memcpy insns (indicated by has_loopreg_clobber) or function
208         calls, we need to save the loop registers.
209
210 2008-10-28  H.J. Lu  <hongjiu.lu@intel.com>
211
212         * config/i386/i386.c (core2_cost): Fix typos in comments.
213
214 2008-10-28  Jakub Jelinek  <jakub@redhat.com>
215
216         PR c/37924
217         * combine.c (make_compound_operation): Don't call make_extraction with
218         non-positive length.
219         (simplify_shift_const_1): Canonicalize count even if complement_p.
220
221 2008-10-28  Joseph Myers  <joseph@codesourcery.com>
222
223         * convert.c (strip_float_extensions): Do not remove or introduce
224         conversions between binary and decimal floating-point types.
225
226 2008-10-28  Jakub Jelinek  <jakub@redhat.com>
227
228         PR middle-end/37931
229         * fold-const.c (distribute_bit_expr): Convert common, left and
230         right arguments to type.
231
232 2008-10-28  Nick Clifton  <nickc@redhat.com>
233
234         * config/mn10300/mn10300.h (CALL_REALLY_USED_REGISTERS): Define.
235         * config/mn10300/mn10300.c (fp_regs_to_save): Test the
236         call_really_used_regs array rather than the call_used_regs array.
237         (mn10300_get_live_callee_saved_regs, expand_prologue,
238         expand_epilogue, output_tst): Likewise.
239
240 2008-10-27  Jakub Jelinek  <jakub@redhat.com>
241
242         PR target/37378
243         * df-scan.c (df_bb_refs_collect): Don't handle EH_USES here.
244         (df_get_entry_block_def_set): Neither here.
245         (df_get_regular_block_artificial_uses): Add EH_USES registers.
246
247         PR tree-optimization/37879
248         * predict.c (tree_estimate_probability): Check if last_stmt is
249         non-NULL before dereferencing it.
250
251 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
252
253         * ira-int.h (ira_allocno): Add member updated_cover_class_cost.
254         (ALLOCNO_UPDATED_COVER_CLASS_COST): New.
255         (ira_fast_allocation): Remove the prototype.
256         
257         * ira-color.c (update_copy_costs, allocno_cost_compare_func,
258         assign_hard_reg, calculate_allocno_spill_cost): Use updated costs.
259         (color_pass): Modify the updated costs.
260         (ira_color): Rename to color.  Make it static.
261         (ira_fast_allocation): Rename to fast_allocation.  Make it static.
262         (ira_color): New function.
263         
264         * ira-conflicts.c (process_regs_for_copy): Propagate hard reg cost
265         change.
266
267         * ira-lives.c (last_call_num, allocno_saved_at_call): New
268         variables.
269         (set_allocno_live, clear_allocno_live, mark_ref_live,
270         mark_ref_dead): Invalidate corresponding element of
271         allocno_saved_at_call.
272         (process_bb_node_lives): Increment last_call_num.  Setup
273         allocno_saved_at_call.  Don't increase ALLOCNO_CALL_FREQ if the
274         allocno was already saved.
275         (ira_create_allocno_live_ranges): Initiate last_call_num and
276         allocno_saved_at_call.
277
278         * ira-build.c (ira_create_allocno): Initiate
279         ALLOCNO_UPDATED_COVER_CLASS_COST.
280         (create_cap_allocno, propagate_allocno_info,
281         remove_unnecessary_allocnos): Remove setting updated costs.
282         (ira_flattening): Set up ALLOCNO_UPDATED_COVER_CLASS_COST.
283
284         * ira.c (ira):  Don't call ira_fast_allocation.
285
286         * ira-costs.c (setup_allocno_cover_class_and_costs): Don't set up
287         updated costs.
288         
289 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
290
291         PR middle-end/37813
292         * ira-conflicts.c (process_regs_for_copy): Remove class subset
293         check.
294
295         * ira-int.h (ira_hard_regno_cover_class): New.
296
297         * ira-lives.c (mark_reg_live, mark_reg_dead,
298         process_bb_node_lives): Use ira_hard_regno_cover_class.
299
300         * ira.c (reg_class ira_hard_regno_cover_class): New global
301         variable.
302         (setup_hard_regno_cover_class): New function.
303         (ira_init): Call setup_hard_regno_cover_class.
304
305         * ira-costs.c (cost_class_nums): Add comment.
306         (find_allocno_class_costs): Initiate cost_class_nums.
307         (setup_allocno_cover_class_and_costs): Check cost_class_nums.
308
309 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
310
311         PR middle-end/37884
312         * ira-build.c (copy_live_ranges_to_removed_store_destinations):
313         Rename to copy_info_to_removed_store_destinations.  Propagate
314         conflict hard regs and register stack attribute.
315
316 2008-10-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
317
318         PR middle-end/37316
319         * pa.c (function_arg_padding):  Pad complex and vector types upward in
320         64-bit runtime.
321         (function_arg): Use BLKmode for PARALLEL in 64-bit runtime.
322
323 2008-10-26  Matthias Klose  <doko@ubuntu.com>
324
325         * doc/install.texi: Document requirements on antlr.
326
327 2008-10-25  Richard Sandiford  <rdsandiford@googlemail.com>
328
329         * config/mips/mips.h (REG_ALLOC_ORDER): Put call-clobbered registers
330         first.
331
332 2008-10-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
333
334         PR target/37841
335         * function.c (locate_and_pad_parm): If FUNCTION_ARG_ADJUST_OFFSET
336         is defined, use it to modify the constant offset.
337
338         * doc/tm.texi (FUNCTION_ARG_OFFSET): Document new macro.
339
340         * config/spu/spu.h (FUNCTION_ARG_OFFSET): New macro to move char
341         and short arguments to the correct location as mandated by the
342         ABI.
343
344 2008-10-24  Kaz Kojima  <kkojima@gcc.gnu.org>
345
346         PR rtl-optimization/37769
347         * regmove.c (optimize_reg_copy_2): Update REG_INC note if needed.
348
349 2008-10-24  Kaz Kojima  <kkojima@gcc.gnu.org>
350
351         * config/sh/t-sh: Use $(MULTILIB_CFLAGS) when compiling to
352         unwind-dw2-Os-4-200.o.
353
354 2008-10-24  Joseph Myers  <joseph@codesourcery.com>
355
356         * c-typeck.c (enum impl_conv): Remove ic_argpass_nonproto.
357         (convert_for_assignment): Remove ic_argpass_nonproto cases.
358
359 2008-10-24  Jakub Jelinek  <jakub@redhat.com>
360
361         PR tree-optimization/36038
362         * tree-ssa-loop-ivopts.c (add_old_iv_candidates): For pointer bases
363         add sizetype IV with initial value zero instead of pointer type.
364
365 2008-10-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
366
367         PR c/7543
368         * value-prof.c (gimple_stringop_fixed_value): Use parentheses
369         around bit operation.
370         * profile.c (is_edge_inconsistent): Likewise.
371         * fold-const.c (truth_value_p): Move from here...
372         * tree.h (truth_value_p): ... to here.
373         * c-tree.h (c_expr): Update description of original_code.
374         * c-typeck.c (parser_build_unary_op): Set original_code.
375         (parser_build_binary_op): Update call to warn_about_parentheses.
376         * c-common.c (warn_about_parentheses): Take two additional
377         arguments of the operands. Use a switch. Quote operators
378         appropriately. Define macro APPEARS_TO_BE_BOOLEAN_EXPR_P.
379         Add warning about !x | y and !x & y.
380         * c-common.h (warn_about_parentheses): Update declaration.
381
382 2008-10-24  Jakub Jelinek  <jakub@redhat.com>
383
384         * Makefile.in (lang_checks_parallelized, check_gcc_parallelize,
385         check_p_tool, check_p_vars, check_p_subno, check_p_comma,
386         check_p_subwork, check_p_numbers, check_p_subdir, check_p_subdirs):
387         New variables.
388         (check-subtargets, check-%-subtargets, check-parallel-%): New
389         targets.
390         (check-%): For test targets listed in lang_checks_parallelized
391         if -j is used and RUNTESTFLAGS doesn't specify tests to execute,
392         run the testing in multiple make goals, possibly parallel, and
393         afterwards run dg-extract-results.sh to merge the sum and log files.
394
395 2008-10-24  Richard Sandiford  <rdsandiford@googlemail.com>
396
397         * config/mips/mips.c (mips_canonicalize_move_class): New function.
398         (mips_move_to_gpr_cost): Likewise.
399         (mips_move_from_gpr_cost): Likewise.
400         (mips_register_move_cost): Make more fine-grained.
401
402 2008-10-23  Tobias Grosser  <grosser@fim.uni-passau.de>
403
404         * graphite.c (graphite_apply_transformations): Check for
405         -fgraphite-identity.
406         * toplev.c (process_options): Add graphite_identity.
407         * tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity.
408
409 2008-10-23  Bernd Schmidt  <bernd.schmidt@analog.com>
410
411         * config/bfin/bfin.c (bdesc_2arg): Add mulhisill, mulhisilh,
412         mulhisihl and mulhisihh builtins.
413
414         From Jie Zhang  <jie.zhang@analog.com>
415         * config/bfin/bfin.md (composev2hi): Put operands into vector
416         with correct order.
417         
418 2008-10-22  Chao-ying Fu  <fu@mips.com>
419
420         * config/mips/mips.opt (msmartmips): Accept -mno-smartmips.
421
422 2008-10-22  Bernd Schmidt  <bernd.schmidt@analog.com>
423
424         From Mike Frysinger  <michael.frysinger@analog.com>
425         * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF512,
426         BFIN_CPU_BF514, BFIN_CPU_BF516, and BFIN_CPU_BF518.
427         * config/bfin/bfin.c (bfin_cpus[]): Add 0.0 for bf512, bf514, bf516,
428         and bf518.  Add 0.2 for bf522, bf523, bf524, bf526, and bf527.
429         Add 0.6 for bf533, bf532, and bf531.  Add 0.5 for bf538 and bf539.
430         Add 0.2 for bf542, bf544, bf547, bf548, and bf549.
431         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF512__
432         for BFIN_CPU_BF512, __ADSPBF514__ for BFIN_CPU_BF514, __ADSPBF516__
433         for BFIN_CPU_BF516, and __ADSPBF518__ for BFIN_CPU_BF518.  Define
434         __ADSPBF51x__ for all of them.
435         * config/bfin/elf.h (LIB_SPEC): Select proper linker scripts for
436         -mcpu bf512, bf514, bf516, and bf518.
437         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
438         bf512-none, bf514-none, bf516-none, and bf518-none.
439         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
440         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
441         * doc/invoke.texi (Blackfin Options): Document that
442         -mcpu now accepts bf512, bf514, bf516, and bf518.
443
444 2008-10-22  Jakub Jelinek  <jakub@redhat.com>
445
446         PR middle-end/37882
447         * fold-const.c (build_range_type): For 1 .. signed_max
448         range call build_nonstandard_inter_type if signed_type_for
449         returned a type with bigger precision.
450
451 2008-10-22  Richard Guenther  <rguenther@suse.de>
452
453         * tree.def (COMPLEX_TYPE): Constrain element type.
454         * tree.c (build_complex_type): Assert that.
455         * tree-ssa-structalias.c (could_have_pointers): Complex types
456         cannot have pointers.
457
458 2008-10-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
459
460         PR c/30949
461         * c-typeck.c (convert_for_assignment): Do not give declaration's
462         location for builtins. Spell out which type was expected and which
463         was given.
464
465 2008-10-22  Nick Clifton  <nickc@redhat.com>
466
467         * config/frv/frv.h (HARD_REGNO_RENAME_OK): Define.  Do not allow
468         the fdpic register to be a target when running in fdpic mode.
469
470 2008-10-22 Rafael Espindola  <espindola@google.com>
471
472         * ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the
473         newly created statements.
474
475 2008-10-22  Kaz Kojima  <kkojima@gcc.gnu.org>
476
477         PR target/37633
478         * config/sh/sh.c (sh_hard_regno_mode_ok): New function.
479         * config/sh/sh.h (HARD_REGNO_MODE_OK): Use it.
480         * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare.
481
482 2008-10-22  Jakub Jelinek  <jakub@redhat.com>
483
484         PR target/37880
485         * doc/invoke.texi: Fix spelling of -mlarge-data-threshold option.
486         Adjust -mcmodel=medium description for 2005-07-31 changes.
487
488 2008-10-22  Jan Hubicka  <jh@suse.cz>
489             Jakub Jelinek  <jakub@redhat.com>
490
491         PR middle-end/35853
492         * doc/invoke.texi: Remove references to obsoleted -d dumps.
493
494 2008-10-21  Richard Henderson  <rth@redhat.com>
495
496         PR 37815
497         * emit-rtl.c (get_spill_slot_decl): Export.
498         * emit-rtl.h (get_spill_slot_decl): Declare.
499         * var-tracking.c (vt_add_function_parameters): Relax assertion
500         on the contents of MEM_EXPR in a PARM_DECL to include a spill slot.
501
502 2008-10-21  Bob Wilson  <bob.wilson@acm.org>
503
504         * var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
505         REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
506         of from insn.
507
508 2008-10-21  Adam Nemet  <anemet@caviumnetworks.com>
509
510         PR middle-end/37669
511         * tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be
512         processed by get_maxval_strlen.
513
514 2008-10-21  David Edelsohn  <edelsohn@gnu.org>
515
516         PR target/35485
517         * tree.c (get_file_function_name): Copy first_global_object_name.
518         Centralize call to clean_symbol_name.
519
520 2008-10-21  Sandra Loosemore  <sandra@codesourcery.com>
521
522         * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h.
523         * config/svr4.h (SVR4_ASM_SPEC): New.
524         (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
525         * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
526
527         * doc/invoke.texi (Option Summary): Add -T to linker options.
528         (Link Options): Document -T.
529         
530 2008-10-21  Jakub Jelinek  <jakub@redhat.com>
531
532         * tree-inline.c (tree_inlinable_function_p): Remove tuples
533         debugging hack.
534
535         * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from
536         INTEGER_CSTs.
537
538         PR debug/37020
539         * c-decl.c (merge_decls): Don't call outlining_inline_function hook.
540
541 2008-10-20  Daniel Berlin  <dberlin@dberlin.org>
542
543         * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
544         part of expression.
545
546 2008-10-20  Tobias Schlüter  <tobi@gcc.gnu.org>
547
548         * doc/install.texi: Fix typos in previous patch.
549
550 2008-10-19  Tobias Schlüter  <tobi@gcc.gnu.org>
551
552         * doc/install.texi: Document in-tree building of gcc and mpfr.
553
554 2008-10-19  Richard Guenther  <rguenther@suse.de>
555
556         * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.
557
558 2008-10-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
559
560         PR c/30260
561         * c-decl.c (finish_enum): Convert non-integer enumerators to enum
562         type.
563         (build_enumerator): Convert enumerators that fit in integer to
564         integer type.
565
566 2008-10-18  Uros Bizjak  <ubizjak@gmail.com>
567
568         * config/i386/i386.md (unnamed peephole2): Do not force memory
569         operands of arith or logical instructions into registers for
570         non-TARGET_READ_MODIFY targets.
571
572         (ffs_cmove): Change operand 0 predicate to register_operand.
573         Change operand 1 predicate to nonimmediate_operand.
574         (ffsdi2): Ditto.
575         (*ffs_no_cmove): Change operand 0 predicate to register_operand.
576
577 2008-10-18  Richard Guenther  <rguenther@suse.de>
578
579         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard
580         VIEW_CONVERT_EXPR case against invalid gimple.
581
582 2008-10-17  Andreas Krebbel  <krebbel1@de.ibm.com>
583
584         * c-parser.c (c_parser_binary_expression): Silence the
585         uninitialized variable warning emitted for binary_loc.
586
587 2008-10-16  Daniel Berlin  <dberlin@dberlin.org>
588
589         * tree-ssa-pre.c (phi_translate_set): Add constants to phi
590         translation cache.
591
592 2008-10-16  Joseph Myers  <joseph@codesourcery.com>
593
594         PR c/33192
595         * c-typeck.c (build_unary_op): Use omit_one_operand for
596         IMAGPART_EXPR of real argument.
597
598 2008-10-16  Jakub Jelinek  <jakub@redhat.com>
599
600         PR tree-optimization/37664
601         * fold-const.c (fold_binary): When optimizing comparison with
602         highest or lowest type's value, don't consider TREE_OVERFLOW.
603
604 2008-10-16  David Edelsohn  <edelsohn@gnu.org>
605
606         PR target/35483
607         * Makefile.in (coverage.o): Depend on $(TM_P_H).
608         * coverage.c: Include tm_p.h.
609         * config/rs6000/x-aix (jc1): Override LDFLAGS.
610         * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip
611         dollar signs from PREFIX.
612         * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
613         instead of manual strip_name_encoding.
614
615 2008-10-16  Richard Guenther  <rguenther@suse.de>
616
617         PR middle-end/37418
618         * tree-ssa.c (useless_type_conversion_p_1): Do not treat
619         volatile qualified functions or methods as relevant.
620
621 2008-10-16  Jakub Jelinek  <jakub@redhat.com>
622
623         PR tree-optimization/37525
624         * tree.c (int_fits_type_p): Rewrite using double_int.  Zero extend
625         sizetype unsigned constants, both in the case of C and bounds.
626
627 2008-10-15  Jan Hubicka  <jh@suse.cz>
628
629         * ira-emit.c (change_regs): Return false when replacing reg by
630         itself.
631
632 2008-10-14  Vladimir Makarov  <vmakarov@redhat.com>
633
634         PR target/37633
635         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
636         HARD_REGNO_CALL_PART_CLOBBERED.
637
638 2008-10-15  Vladimir Makarov  <vmakarov@redhat.com>
639
640         PR middle-end/37535
641         * ira-lives.c (mark_early_clobbers): Remove.
642         (make_pseudo_conflict, check_and_make_def_use_conflicts,
643         check_and_make_def_conflicts,
644         make_early_clobber_and_input_conflicts,
645         mark_hard_reg_early_clobbers): New functions.
646         (process_bb_node_lives): Call
647         make_early_clobber_and_input_conflicts and
648         mark_hard_reg_early_clobbers.  Make hard register inputs live again.
649
650         * doc/rtl.texi (clobber): Change descriotion of RA behaviour for
651         early clobbers of pseudo-registers.
652         
653 2008-10-15  Vladimir Makarov  <vmakarov@redhat.com>
654
655         PR middle-end/37674
656         * ira-build.c (ira_flattening): Recalculate
657         ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS
658         from the scratch instead of the propagation.
659         
660 2008-10-15  Richard Sandiford  <rdsandiford@googlemail.com>
661
662         * doc/rtl.texi (const_double): Remove the "addr" operand.
663         Describe CONST_DOUBLE_* macros under const_double rather
664         than const_vector.
665         (const_fixed): Fix the operand description.
666         (const): Add an @findex directive.
667         (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description
668         after the constant rtl table.
669         (fix): Combine floating-point and fixed-point descriptions.
670         Fix hyphenation.
671         * sched-deps.c (sched_analyze_2): Remove reference to
672         CONST_DOUBLE_CHAIN.
673
674 2008-10-15  Richard Sandiford  <rdsandiford@googlemail.com>
675
676         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle
677         UNSPEC_GOTSYM_OFFs.
678         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true
679         for UNSPEC_GOTSYM_OFFs.
680         * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec.
681         (add_GOT_to_pic_reg): Use it.
682         * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF.
683
684 2008-10-15  Jan Sjodin  <jan.sjodin@amd.com>
685             Harsha Jagasia  <harsha.jagasia@amd.com>
686
687         PR tree-optimization/37485
688         * graphite.c (gmp_cst_to_tree): Moved.
689         (iv_stack_entry_is_constant): New.
690         (iv_stack_entry_is_iv): New.
691         (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
692         (loop_iv_stack_insert_constant): New.
693         (loop_iv_stack_pop): Use new datatpype.
694         (loop_iv_stack_get_iv): Same.
695         (loop_iv_stack_get_iv_from_name): Same.
696         (loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
697         (loop_iv_stack_patch_for_consts): New.
698         (loop_iv_stack_remove_constants): New.
699         (graphite_create_new_loop): Use loop_iv_stack_push_iv.
700         (translate_clast): Call loop_iv_stack_patch_for_consts and
701         loop_iv_stack_remove_constants.
702         (gloog): Use new datatype.  Redirect construction edge to end
703         block to avoid accidental deletion.
704         * graphite.h (enum iv_stack_entry_kind): New.  Tag for data in
705         iv stack entry.
706         (union iv_stack_entry_data): New.  Data in iv stack entry.
707         (struct iv_stack_entry): New.  Datatype for iv stack entries.
708
709 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
710
711         * tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
712         * graphite.c (free_scop): Same.
713         (build_scops): Same.
714         (free_scattering): New.
715         (build_cloog_prog): Call free_scattering.
716         (patch_phis_for_virtual_defs): Fix memleak.
717         (graphite_trans_bb_strip_mine): Same.
718         (limit_scops): Same.
719
720 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
721             Harsha Jagasia  <harsha.jagasia@amd.com>
722
723         PR tree-optimization/37828
724         * graphite.c (graphite_trans_loop_block): Do not loop block
725         single nested loops.
726
727 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
728
729         PR tree-optimization/37686
730         * tree-loop-linear.c (linear_transform_loops): Build a
731         loop nest vector.  Pass it to lambda_compute_access_matrices.
732         * tree-data-ref.h (struct access_matrix): Store the loop nest
733         relative to which it encodes the information.
734         (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST.
735         (am_vector_index_for_loop): Reimplemented: iterate over the
736         loop nest for finding the loop index in the access matrix.
737         (lambda_compute_access_matrices): Update declaration.
738         * lambda-code.c (build_access_matrix): Pass the loop nest and
739         record it.
740         (lambda_compute_access_matrices): Same.
741
742 2008-10-15  Andreas Krebbel  <krebbel1@de.ibm.com>
743
744         * config/s390/s390.h: (TARGET_DFP): This requires TARGET_HARD_FLOAT.
745         * config/s390/s390.md: Replace "TARGET_HARD_FLOAT &&
746         TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this
747         already implies hard float.  Also fix several insn condition
748         with TARGET_DFP which shall require TARGET_HARD_DFP instead.
749
750 2008-10-15  David Edelsohn  <edelsohn@gnu.org>
751
752         PR target/35483
753         Based on patches by Laurent Vivier.
754         * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore.
755         * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare.
756         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate
757         dollar sign to underscore.
758         (ASM_OUTPUT_EXTERNAL): Same.
759         (ASM_OUTPUT_LABELREF): New.
760         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New.
761
762         * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define.
763         * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define.
764         * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define.
765         * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define.
766
767 2008-10-15  Jakub Jelinek  <jakub@redhat.com>
768
769         PR tree-optimization/36881
770         * tree-switch-conversion.c (check_final_bb): For flag_pic, check
771         that each value doesn't need runtime relocations, for !flag_pic
772         check that each value is just a valid initializer constant.
773
774 2008-10-14  Richard Sandiford  <rdsandiford@googlemail.com>
775
776         * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS,
777         LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS,
778         COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS.
779         Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and
780         GR_AND_ACC_REGS.
781         (REG_CLASS_NAMES): Update accordingly.
782         (REG_CLASS_CONTENTS): Likewise.  Use the class name in the comments,
783         rather than an unpredictable descriptive string.
784         * config/mips/mips.c (mips_register_move_cost): Remove comment.
785         (mips_register_move_cost): Check for specific COP*_REGS classes,
786         instead of ALL_COP_AND_GR_REGS.
787         (mips_ira_cover_classes): New function.
788         (mips_secondary_reload_class): Remove MTLO and MTHI workarounds.
789         (TARGET_IRA_COVER_CLASSES): Define.
790
791 2008-10-14  Douglas Gregor  <doug.gregor@gmail.com>
792
793         PR c++/37553
794         * tree.c (build_type_attribute_qual_variant): Hash on the
795         unqualified type, and don't overwrite an existing
796         (type_hash_eq): Make the TYPE_NAME of the types significant, to
797         allow distinguishing between wchar_t and its underlying type. This
798         also means that we'll retain a little more typedef information.
799
800 2008-10-14  Andrey Belevantsev  <abel@ispras.ru>
801             Dmitry Melnik  <dm@ispras.ru>
802             Dmitry Zhurikhin  <zhur@ispras.ru>
803             Alexander Monakov  <amonakov@ispras.ru>
804             Maxim Kuvyrkov  <maxim@codesourcery.com>
805
806         * target.h (struct gcc_target): Update prototypes of needs_block_p
807         and gen_spec_check.
808         * haifa-sched.c (create_check_block_twin): Update calls to the above.
809         * sel-sched.c (create_speculation_check): Likewise.
810         * doc/tm.texi: Provide documentation for new target hooks.
811                 
812         * config/ia64/ia64.c: Include sel-sched.h.  Rewrite speculation hooks.
813         (ia64_gen_spec_insn): Removed.
814         (get_spec_check_gen_function, insn_can_be_in_speculative_p,
815         ia64_gen_spec_check): New static functions.
816         (ia64_alloc_sched_context, ia64_init_sched_context,
817         ia64_set_sched_context, ia64_clear_sched_context,
818         ia64_free_sched_context, ia64_get_insn_spec_ds,
819         ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions.
820         (ia64_needs_block_p): Change prototype.
821         (ia64_gen_check): Rename to ia64_gen_spec_check.
822         (ia64_adjust_cost): Rename to ia64_adjust_cost_2.  Add new parameter
823         into declaration, add special memory dependencies handling.
824         (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
825         TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
826         TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS,
827         TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P):
828         Define new target hooks.
829         (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
830         (ia64_optimization_options): Turn on selective scheduling with -O3,
831         disable -fauto-inc-dec. Set mflag_sched_control_spec to true by default
832         with selective scheduling.
833         (ia64_override_options): Initialize align_loops and align_functions
834         to 32 and 64, respectively.  Set global selective scheduling flags
835         according to target-dependent flags.
836         (rtx_needs_barrier): Support UNSPEC_LDS_A.
837         (group_barrier_needed): Use new mstop-bit-before-check flag.
838         Add heuristic.
839         (dfa_state_size): Make global.
840         (spec_check_no, max_uid): Remove.
841         (mem_ops_in_group, current_cycle): New variables.
842         (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload.
843         Initialize new variables.
844         (is_load_p, record_memory_reference): New functions.
845         (ia64_dfa_sched_reorder): Lower priority of loads when limit is
846         reached.
847         (ia64_variable_issue): Change use of current_sched_info to
848         sched_deps_info.  Update comment.  Note if a load or a store is issued.
849         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle
850         advance if maximal number of loads or stores was issued on current
851         cycle.
852         (scheduled_good_insn): New static helper function.
853         (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when
854         a group barrier is needed.  Fix vertical spacing.  Guard the code
855         doing state transition with last_scheduled_insn check.
856         Mark that a stop bit should be before current insn if there was a 
857         cycle advance.  Update current_cycle and mem_ops_in_group.
858         (ia64_h_i_d_extended): Change use of current_sched_info to
859         sched_deps_info. Reallocate stops_p by larger chunks.
860         (struct _ia64_sched_context): New structure.
861         (ia64_sched_context_t): New typedef.
862         (ia64_alloc_sched_context, ia64_init_sched_context,
863         ia64_set_sched_context, ia64_clear_sched_context,
864         ia64_free_sched_context): New static functions.
865         (gen_func_t): New typedef.
866         (get_spec_load_gen_function): New function.
867         (SPEC_GEN_EXTEND_OFFSET): Declare.      
868         (ia64_set_sched_flags): Check common_sched_info instead of *flags.
869         (get_mode_no_for_insn): Change the condition that prevents use of
870         special hardware registers so it can now handle pseudos.
871         (get_spec_unspec_code): New function.
872         (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds,
873         ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions.
874         (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks
875         during selective scheduling.
876         (ia64_speculate_insn): Use ds_get_speculation_types when
877         determining whether we need to change the pattern.
878         (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare.
879         (ia64_spec_check_src_p): Support new speculation/check codes.
880         (struct bundle_state): New field.
881         (issue_nops_and_insn): Initialize it.
882         (insert_bundle_state): Minimize mid-bundle stop bits.
883         (important_for_bundling_p): New function.
884         (get_next_important_insn): Use important_for_bundling_p.
885         (bundling): When shifting TImode from unimportant insns, ignore
886         also group barriers.  Assert that best state is found before
887         the backward bundling pass.  Print number of mid-bundle stop bits.
888         Minimize mid-bundle stop bits.  Check correct calculation of
889         mid-bundle stop bits.
890         (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting.
891         (final_emit_insn_group_barriers): Emit stop bits before insns starting
892         a new cycle.
893         (sel2_run): New variable.
894         (ia64_reorg): When flag_selective_scheduling2 is set, run the selective
895         scheduling pass instead of schedule_ebbs.
896         
897         * config/ia64/ia64.md (speculable1, speculable2): New attributes.
898         (UNSPEC_LDS_A): New UNSPEC.
899         (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
900         movti_internal, movsf_internal, movdf_internal,
901         movxf_internal): Make visible.  Add speculable* attributes.
902         (output_c_nc): New mode attribute.
903         (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a,
904         mov<mode>_nc, zero_extend<mode>di2_nc,
905         advanced_load_check_nc_<mode>): New insns.
906         (zero_extend*): Add speculable* attributes.
907
908         * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option.
909         (msched-stop-bits-after-every-cycle): Likewise.
910         (msched-max-memory-insns, msched-max-memory-insns-hard-limit):
911         Likewise.
912         (msched-spec-verbose): Remove.
913         (msched-prefer-non-data-spec-insns,
914         msched-prefer-non-control-spec-insns,
915         msched-count-spec-in-critical-path,
916         msel-sched-dont-check-control-spec): Use Target  Report Var
917         instead of Common Report Var.
918
919         * config/ia64/itanium2.md: Remove incorrect bypass.
920         
921         * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h.
922
923 2008-10-14  Jakub Jelinek  <jakub@redhat.com>
924
925         PR middle-end/37805
926         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
927         and -fhelp=separate.
928
929 2008-10-14  Ben Elliston  <bje@au.ibm.com>
930
931         * config/rs6000/rs6000.md (cell_micro): Fix formatting.
932
933 2008-10-13  Joseph Myers  <joseph@codesourcery.com>
934
935         * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on
936         non-integer modes.
937
938 2008-10-13  Matthias Klose  <doko@ubuntu.com>
939
940         * config/pa/linux-atomic.c: Work around missing header file
941         for hppa64-linux-gnu targets.
942
943 2008-10-13  Andrew Pinski  <andrew_pinski@playstation.sony.com>
944             Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com>
945             Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
946             Grace Cao  <grace_cao@playstation.sony.com>
947
948         * doc/invoke.texi (-mgen-cell-microcode): Document.
949         (-mwarn-cell-microcode): Document.
950         * cfglayout.c (locator_location): Export.
951         * rtl.h (locator_location): Define prototype.
952         * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand):
953         New predicate.
954         * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
955         * config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
956         (mwarn-cell-microcode): New option.
957         * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
958         (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
959         cell and not already set.
960         Turn off string instructions if not generating cell microcode.
961         (rs6000_final_prescan_insn): New function that warns about microcoded
962         instructions.
963         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
964         * config/rs6000/rs6000.md
965         Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
966         the instruction would have been microcoded on the Cell.  Set cell_micro
967         to always on unnamed patterns for the string instructions.
968         (cell_micro): Update definition, remove load/store conditional
969         microcoded.
970         (sign_extend:DI): Define new pattern for non microcoded version.
971         (sign_extend:SI): Likewise.
972         (compare (div:P)): Set cell_micro to not.
973         (andsi3): Define as an expand.
974         (andsi3_mc): New pattern.
975         (andsi3_nomc): New pattern.
976         (andsi3_internal0_nomc): New pattern.
977         (andsi3_internal2): Rename to ...
978         (andsi3_internal2_mc): this and enable iff generating microcode.
979         (andsi3_internal3): Rename to ...
980         (andsi3_internal3_mc): this and enable iff generating microcode.
981         (andsi3_internal4): Enable iif generating microcode.
982         (andsi3_internal5): Rename to ..
983         (andsi3_internal5_mc): this and enable iff generating microcode.
984         (andsi3_internal5_nomc): New pattern.
985         (extzvdi_internal1): Enable iff generating microcode.
986         (extzvdi_internal2): Likewise.
987         (rotlsi3_internal7): Set cell_micro to always if non immediate form.
988         (anddi3): Change to expand.
989         (anddi3_mc): Rename from anddi3.
990         (anddi3_no_mc): New pattern.
991         (anddi3_internal2): Rename to ..
992         (anddi3_internal2_mc): this and enable iff generating microcode.
993         (anddi3_internal2_nomc): New pattern.
994         (anddi3_internal3): Rename to ..
995         (anddi3_internal3_mc): this and enable iff generating microcode.
996         (anddi3_internal3_nomc): New pattern.
997         (movti_string): Set cell_micro to always if TARGET_STRING.
998         (stmsi8): Set cell_micro to always.
999         (stmsi7): Likewise.
1000         (stmsi6): Likewise.
1001         (stmsi5): Likewise.
1002         (stmsi4): Likewise.
1003         (stmsi3): Likewise.
1004         (stmsi8_power): Likewise.
1005         (stmsi7_power): Likewise.
1006         (stmsi6_power): Likewise.
1007         (stmsi5_power): Likewise.
1008         (stmsi4_power): Likewise.
1009         (stmsi3_power): Likewise.
1010         (movsi_update2): Enable iff generating microcode.
1011         (movhi_update3): Likewise.
1012         (lmw): Set cell_micro to always.
1013
1014 2008-10-13  Richard Sandiford  <rdsandiford@googlemail.com>
1015
1016         * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant.
1017         * config/s390/s390.c (machine_function): Remove
1018         decomposed_literal_pool_addresses_ok_p.
1019         (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of
1020         the difference of two labels.
1021         (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET.
1022         (s390_pool_offset): New function.
1023         (s390_find_constant, s390_find_execute, s390_dump_pool): Use it.
1024         (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p.
1025
1026 2008-10-13  Nathan Froyd  <froydnj@codesourcery.com>
1027
1028         * doc/install.texi (powerpc-*-*): Require binutils 2.15.
1029         (powerpc*-*-linux-gnu*): Describe.
1030         * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
1031         * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
1032         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
1033         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
1034         config/rs6000/e500crtres32gpr.asm,
1035         config/rs6000/e500crtres64gpr.asm,
1036         config/rs6000/e500crtres64gprctr.asm,
1037         config/rs6000/e500crtrest32gpr.asm,
1038         config/rs6000/e500crtrest64gpr.asm,
1039         config/rs6000/e500crtresx32gpr.asm,
1040         config/rs6000/e500crtresx64gpr.asm,
1041         config/rs6000/e500crtsav32gpr.asm,
1042         config/rs6000/e500crtsav64gpr.asm,
1043         config/rs6000/e500crtsav64gprctr.asm,
1044         config/rs6000/e500crtsavg32gpr.asm,
1045         config/rs6000/e500crtsavg64gpr.asm,
1046         config/rs6000/e500crtsavg64gprctr.asm: Use it.
1047         * config/rs6000/crtsavres.asm: Really remove.
1048
1049 2008-10-13  Kai Tietz  <kai.tietz@onevision.com>
1050
1051         Fix PR/25502
1052         * c-format.c (convert_format_name_to_system_name): Use
1053         TARGET_OVERRIDES_FORMAT_INIT.
1054         * config.gcc (extra_options): Add for mingw targets mingw.opt.
1055         * config/i386/mingw.opt: New.
1056         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New.
1057         * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New.
1058         (ms_printf_length_specs): Removed const specifier.
1059         * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New.
1060         * doc/invoke.texi (Wno-pedantic-ms-format): New.
1061
1062 2008-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1063
1064         * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
1065         * doc/install.texi: Bump recommended MPFR to 2.3.2.
1066
1067 2008-10-12  Kenneth Zadeck <zadeck@naturalbridge.com>
1068
1069         PR middle-end/37808
1070         * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
1071         sure that ref has valid bb.
1072         
1073 2008-10-12  Richard Henderson  <rth@redhat.com>
1074
1075         PR middle-end/37447
1076         * Makefile.in (reload1.o): Depend on EMIT_RTL_H.
1077         * alias.c (value_addr_p, stack_addr_p): Remove.
1078         (nonoverlapping_memrefs_p): Remove IRA special case.
1079         * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New.
1080         * emit-rtl.h (set_mem_attrs_for_spill): Declare.
1081         * reload1.c (alter_reg): Use it.
1082
1083 2008-10-12  Uros Bizjak  <ubizjak@gmail.com>
1084
1085         * config/i386/driver-i386.c (detect_caches_cpuid2): Use array
1086         of registers instead of eax, ebx, ecx and edx.  Use for loop
1087         and check register for non-zero value before the call
1088         to decode_caches_intel.
1089
1090 2008-10-11  Kenneth Zadeck <zadeck@naturalbridge.com>
1091
1092         PR rtl-optimization/37448
1093         * df.h: (df_ref_class): New enum.
1094         (DF_REF_TYPE_NAMES, df_ref_extract): Removed.
1095         (struct df_ref): Replaced with union df_ref_d.
1096         (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
1097         New members of df_ref_d union.
1098         (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
1099         DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
1100         DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
1101         DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
1102         DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
1103         DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d.
1104         (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
1105         (df_scan_bb_info, df_bb_regno_first_def_find,
1106         df_bb_regno_last_def_find, df_find_def, df_find_use,
1107         df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
1108         debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
1109         df_ref_create, df_ref_remove, df_compute_accessed_bytes,
1110         df_get_artificial_defs, df_get_artificial_uses, union_defs)
1111         Replaced struct df_ref * with df_ref.
1112         * df-scan.c (df_collection_rec, df_null_ref_rec,
1113         df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
1114         df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
1115         df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
1116         df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
1117         df_reorganize_refs_by_reg_by_reg,
1118         df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
1119         df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
1120         df_sort_and_compress_refs, df_install_ref, df_install_refs,
1121         df_ref_record, df_get_conditional_uses, df_get_call_refs,
1122         df_bb_refs_record, df_exit_block_uses_collect,
1123         df_record_exit_block_uses, df_reg_chain_mark,
1124         df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
1125         df_ref * with df_ref.
1126         (df_ref_record, df_uses_record, df_ref_create_structure): Added
1127         df_ref_class parameter.
1128         (df_scan_problem_data): Added new pools for different types of refs.
1129         (df_scan_free_internal, df_scan_alloc, df_free_ref,
1130         df_ref_create_structure): Processed new ref pools.
1131         (df_scan_start_dump): Added counts of refs and insns.
1132         (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
1133         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
1134         df_entry_block_defs_collect, df_exit_block_uses_collect): Added
1135         code to pass df_ref_class down to ref creation functions.
1136         (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
1137         df_reg_chain_mark): Use macros to hide references to df_refs.
1138         (df_ref_chain_change_bb): Removed.
1139         (df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
1140         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
1141         Enhanced to understand df_ref union structure.
1142         * fwprop.c (local_ref_killed_between_p, use_killed_between,
1143         all_uses_available_at, update_df, try_fwprop_subst,
1144         forward_propagate_subreg, forward_propagate_and_simplify,
1145         forward_propagate_into, fwprop, fwprop_addr): Replaced struct
1146         df_ref * with df_ref.
1147         (use_killed_between, all_uses_available_at): Use macros to hide
1148         references to df_refs.
1149         * regstat.c (regstat_bb_compute_ri,
1150         regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
1151         df_ref.
1152         * see.c (see_handle_relevant_defs, see_handle_relevant_uses,
1153         see_handle_relevant_refs, see_analyze_one_def,
1154         see_update_relevancy, see_propagate_extensions_to_uses): Replaced
1155         struct df_ref * with df_ref.
1156         * ra-conflict.c (record_one_conflict, clear_reg_in_live,
1157         global_conflicts): Replaced struct df_ref * with df_ref.
1158         * ddg.c (create_ddg_dep_from_intra_loop_link,
1159         add_cross_iteration_register_deps, build_inter_loop_deps):
1160         Replaced struct df_ref * with df_ref.
1161         (create_ddg_dep_from_intra_loop_link,
1162         add_cross_iteration_register_deps): Use macros to hide references
1163         to df_refs.
1164         * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct
1165         df_ref * with df_ref.
1166         * df-core.c (df_bb_regno_first_def_find,
1167         df_bb_regno_last_def_find, df_find_def, df_find_use,
1168         df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
1169         debug_df_ref): Replaced struct df_ref * with df_ref.
1170         (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs.
1171         * cse.c (cse_extended_basic_block): Replaced struct df_ref * with
1172         df_ref.
1173         * web.c (union_defs, entry_register, replace_ref, web_main):
1174         Replaced struct df_ref * with df_ref.
1175         (union_defs, replace_ref): Use macros to hide references to df_refs.
1176         * global.c (compute_regs_asm_clobbered, build_insn_chain):
1177         Replaced struct df_ref * with df_ref.
1178         * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref.
1179         * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets, ):
1180         Replaced struct df_ref * with df_ref.
1181         * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p,
1182         mark_ref_dead, process_bb_node_lives): Replaced struct df_ref *
1183         with df_ref.
1184         * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref.
1185         * df-byte-scan.c (df_compute_accessed_bytes_extract,
1186         df_compute_accessed_bytes_strict_low_part,
1187         df_compute_accessed_bytes_subreg, df_compute_accessed_bytes):
1188         Replaced struct df_ref * with df_ref.
1189         (df_compute_accessed_bytes): Use macros to hide references to df_refs.
1190         * init-regs.c (initialize_uninitialized_regs): Replaced struct
1191         df_ref * with df_ref.
1192         * loop-invariant.c (invariant_for_use, hash_invariant_expr_1,
1193         check_dependency, check_dependencies, record_uses): Replaced
1194         struct df_ref * with df_ref.
1195         (invariant_for_use, check_dependency): Use macros to hide
1196         references to df_refs.
1197         * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def,
1198         get_biv_step_1, get_biv_step, record_iv, iv_analyze_def,
1199         iv_analyze, biv_p): Replaced struct df_ref * with df_ref.
1200         (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide
1201         references to df_refs.
1202         * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref *
1203         with df_ref.
1204         * combine.c (create_log_links): Replaced struct df_ref * with df_ref.
1205         * df-problems.c (df_rd_bb_local_compute_process_def,
1206         df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create,
1207         df_chain_unlink_1, df_chain_unlink, df_chain_copy,
1208         df_chain_remove_problem, df_chain_create_bb_process_use,
1209         df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump,
1210         df_byte_lr_check_regs, df_byte_lr_bb_local_compute,
1211         df_byte_lr_simulate_defs, df_byte_lr_simulate_uses,
1212         df_byte_lr_simulate_artificial_refs_at_top,
1213         df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note,
1214         df_note_bb_compute, df_note_add_problem, df_simulate_defs,
1215         df_simulate_uses, df_simulate_artificial_refs_at_end,
1216         df_simulate_artificial_refs_at_top): Replaced struct df_ref * with
1217         df_ref.
1218         (df_chain_dump): Use macros to hide references to df_refs.
1219         * config/mips/mips.c (r10k_simplify_address): Replaced struct
1220         df_ref * with df_ref.
1221         * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes,
1222         mark_artificial_uses, mark_reg_dependencies,
1223         byte_dce_process_block): Replaced struct df_ref * with df_ref.
1224
1225 2008-10-11  Eric Botcazou  <ebotcazou@adacore.com>
1226
1227         * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in
1228         head comment.
1229         (array_ref_element_size): Likewise.
1230         (array_ref_low_bound): Likewise.
1231         (array_ref_up_bound): Likewise.
1232         * expr.c (contains_packed_reference): Likewise.
1233         (array_ref_element_size): Likewise.
1234         (array_ref_low_bound): Likewise.
1235         (array_ref_up_bound): Likewise.
1236         * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal
1237         with ARRAY_RANGE_REF.
1238         (idx_find_step): Likewise.
1239         (idx_record_use): Likewise.
1240         (strip_offset_1): Likewise.
1241         (idx_remove_ssa_names): Likewise.
1242
1243 2008-10-11  Uros Bizjak  <ubizjak@gmail.com>
1244             Andi Kleen  <ak@linux.intel.com>
1245
1246         * config/i386/cpuid.h (__cpuid_count): New defines.
1247         * config/i386/driver-i386.c (struct cache_desc): New structure.
1248         (describe_cache): Use struct cache_desc to pass cache descriptions.
1249         (detect_l2_cache): Ditto. Rename from decode_l2_cache.
1250         (detect_caches_amd): Use struct cache_desc to describe caches.
1251         (decode_caches_intel): Use struct cache_desc to pass cache
1252         descriptions.  Update descriptions to match latest (rev -032,
1253         December 2007) CPUID documentation.  Do not check valid bit here.
1254         Check for Xeon MP value 0x49 problems.
1255         (detect_caches_cpuid2): New function, split from detect_caches_intel.
1256         Check valid bit before calling decode_caches_intel.  Detect number
1257         of times to repeat CPUID instruction.
1258         (detect_caches_cpuid4): New function.
1259         (detect_caches_intel): Depending on max_level, call
1260         detect_caches_cpuid2 or detect_caches_cpuid4.  Call detect_l2_cache
1261         only when other methods fail to provide valid L2 cache description.
1262
1263 2008-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1264
1265         PR middle-end/37608
1266         * pa.md (call, call_value): Generate an rtx for register r4 and pass
1267         it to PIC call patterns.
1268         (call_symref_pic): Revise pattern to expose PIC register save.  Remove
1269         code generation and attributes from pattern.  Change peephole2 to split
1270         for noreturn case.  Revise split pattern for non noreturn case.
1271         (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
1272         call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
1273         * pa.c (attr_length_call): Simplify extraction of call rtx.  Add some
1274         asserts.
1275
1276 2008-10-11  David Edelsohn  <edelsohn@gnu.org>
1277
1278         * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
1279         (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
1280         and fp_type.
1281         (divdf3): Reformat long line.
1282
1283 2008-10-11  Michael J. Eager  <eager@eagercon.com>
1284
1285         * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
1286         -mfpu options.
1287         (rs6000_handle_option): Process -mfpu options.
1288         * config/rs6000/rs6000.h: (TARGET_XILINX_FPU): New.
1289         (enum fpu_type_t): New.
1290         * config/rs6000/rs6000.md (attr fp_type): New.  Include xfpu.md.
1291         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
1292         fp_type.
1293         (floatsisf2): Remove TARGET_SINGLE_FPU condition.
1294         (floatdidf2): Add TARGET_SINGLE_FPU condition.
1295         * config/rs6000/rs6000.opt (-mfpu): New.
1296         (-mxilinx-fpu): New.
1297         * config/rs6000/sysv4.h: (DRIVER_SELF_SPECS): New.
1298         * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
1299         * config/rs6000/xfpu.md: New. Define Xilinx pipeline.
1300         * gcc/config.gcc: powerpc-xilinx-eabi target: New.
1301         * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.
1302
1303 2008-10-11  Jakub Jelinek  <jakub@redhat.com>
1304
1305         PR target/35760
1306         * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
1307         LO_SUM on Darwin if mode has just one unit.
1308
1309 2008-10-10  H.J. Lu  <hongjiu.lu@intel.com>
1310
1311         PR debug/37002
1312         * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
1313         has been optimized out.
1314
1315 2008-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
1316
1317         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
1318         instead of PIC_DIRECT_ADDR_P.
1319         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
1320         (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
1321         (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
1322         (PIC_OFFSET_P): Rename to...
1323         (PCREL_SYMOFF_P): ...this.
1324         (PIC_DIRECT_ADDR_P): Delete.
1325         (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
1326         PIC_OFFSET_P.
1327         (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
1328         single argument.  Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
1329         UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
1330         * config/sh/sh.c (print_operand): Remove CONST handling.
1331         (unspec_caller_rtx_p): Rewrite to use split_const and check
1332         the operands of UNSPEC bases.
1333         (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
1334         with (unspec [A B] UNSPEC_SYMOFF).
1335         (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
1336         UNSPEC_PCREL_SYMOFF.
1337         (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
1338         * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
1339         (UNSPEC_EXTRACT_U16): Likewise.
1340         (UNSPEC_SYMOFF): Likewise.
1341         (UNSPEC_PCREL_SYMOFF): Likewise.
1342         (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
1343         of constants.
1344         (movsi_const_16bit): Likewise.
1345         (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
1346         (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
1347         with (unspec [A B] UNSPEC_PCREL_SYMOFF).
1348         (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
1349         with (unspec [A B] UNSPEC_SYMOFF).
1350         (symPLT_label2reg): Replace (minus A (minus B pc)) with
1351          (unspec [A B] PCREL_UNSPEC_SYMOFF).
1352         * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
1353         (Csu): Likewise UNSPEC_EXTRACT_U16.
1354         (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
1355         (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.
1356
1357 2008-10-10  Stepan Kasal  <skasal@redhat.com>
1358
1359         * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
1360         for loop strip mining and loop blocking.
1361
1362 2008-10-10  Alexandre Oliva  <aoliva@redhat.com>
1363
1364         * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
1365         vary types depending on debug info.
1366
1367 2008-10-10  Alexandre Oliva  <aoliva@redhat.com>
1368
1369         * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
1370         before ensuring it's already computed.
1371
1372 2008-10-09  Jakub Jelinek  <jakub@redhat.com>
1373
1374         * rtl.h (locator_eq): New decl.
1375         * cfglayout.c (locator_scope): New function.
1376         (insn_scope): Use it.
1377         (locator_eq): New function.
1378         (fixup_reorder_chain): Search for last insn in src bb
1379         that has locator set or first insn in dest bb.  Use
1380         locator_eq instead of == to compare locators.
1381         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
1382         * cfgcleanup.c (try_forward_edges): Use locator_eq instead of
1383         == to compare locators.
1384
1385         * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
1386         as used.
1387         * gimple-low.c (lower_function_body, lower_gimple_return,
1388         lower_builtin_setjmp): Set gimple_block on the newly created stmts.
1389         * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
1390         goto_block on edges if goto_locus is known.
1391
1392         PR middle-end/37774
1393         * tree.h (get_object_alignment): Declare.
1394         * emit-rtl.c (set_mem_attributes_minus_bitpos): Call
1395         get_object_alignment if needed.
1396         * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand handling
1397         to ...
1398         (get_object_alignment): ... here.  New function.  Try harder to
1399         determine alignment from get_inner_reference returned offset.
1400
1401 2008-10-08  Jakub Jelinek  <jakub@redhat.com>
1402
1403         * graphite.c (gloog): Don't call find_unreachable_blocks
1404         before delte_unreachable_blocks.
1405
1406         * cfgexpand.c (expand_gimple_cond): Convert also goto_block and
1407         goto_locus of true_edge into RTL locator.
1408
1409 2008-10-08  Uros Bizjak  <ubizjak@gmail.com>
1410
1411         * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
1412         (*jcc_btdi_mask_rex64): Ditto.
1413         (*jcc_btsi): Ditto.
1414         (*jcc_btsi_mask): Ditto.
1415         (*jcc_btsi_1): Ditto.
1416         (*jcc_btsi_mask_1): Ditto.
1417
1418 2008-10-08  Paul Brook  <paul@codesourcery.com>
1419
1420         * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
1421         compatible profiler (__gnu_mcount_nc).
1422         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
1423
1424 2008-10-08  H.J. Lu  <hongjiu.lu@intel.com>
1425
1426         * config/i386/i386.c (initial_ix86_tune_features): Add
1427         X86_TUNE_USE_VECTOR_FP_CONVERTS.
1428         * config/i386/i386.h (ix86_tune_indices): Likewise.
1429         (TARGET_USE_VECTOR_FP_CONVERTS): New.
1430
1431         * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
1432         instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
1433         for FP to FP splitters.
1434
1435 2008-10-08  H.J. Lu  <hongjiu.lu@intel.com>
1436
1437         * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
1438         splitter.
1439
1440 2008-10-08  Jakub Jelinek  <jakub@redhat.com>
1441
1442         PR target/36635
1443         PR target/37290
1444         PR rtl-optimization/37341
1445         * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
1446         to ORIG_BB, pass through ORIG_BB recursively.
1447         (cse_condition_code_reg): Adjust caller.
1448
1449 2008-10-08  Kai Tietz  <kai.tietz@onevision.com>
1450
1451         * sdbout.c (sdbout_one_type): Treat the value type
1452         CONST_DECL for enumerals.
1453
1454 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
1455
1456         * config/i386/i386.md: Remove trailing white spaces.
1457
1458 2008-10-07  Kenneth Zadeck <zadeck@naturalbridge.com>
1459
1460         PR rtl-optimization/37448
1461         * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field.
1462         (stuct alloc_pool_descriptor) [created, allocated, current, peak]:
1463         Make unsigned long.
1464         (struct output_info) [count]: Renamed total_created and made
1465         unsigned long.
1466         (struct output_info) [size]: Renamed total_allocated and made
1467         unsigned long.
1468         (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free):
1469         Properly keep track of desc->size.
1470         (print_statistics, dump_alloc_pool_statistics): Enhance the
1471         printing of statistics to print the number of elements and to use
1472         unsigned longs.
1473         
1474 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
1475
1476         PR middle-end/37576
1477         * opts.h (CL_SAVE): Move up to flags range.
1478         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
1479         CL_COMMON): Renumber.
1480         (CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
1481         * opts.c (common_handle_option): Revert last change.
1482
1483 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
1484
1485         * config/i386/i386-protos.h (ix86_schedule): New.
1486
1487         * config/i386/i386.c (ix86_schedule): New.
1488         (override_options): Add schedule to processor_alias_table.  Set
1489         ix86_schedule from the schedule field in processor_alias_table.
1490         (ix86_function_specific_save): Save ix86_schedule.
1491         (ix86_function_specific_restore): Restore ix86_schedule.
1492
1493         * config/i386/i386.md (cpu): Map to ix86_schedule instead of
1494         ix86_tune.  Add none and remove i386, i486, pentium4, nocona
1495         and generic32.
1496
1497         * config/i386/i386.opt: Add schedule.
1498
1499         * config/i386/ppro.md: Remove generic32.
1500
1501 2008-10-07  Simon Martin  <simartin@users.sourceforge.net>
1502
1503         PR c/35437
1504         * expr.c (count_type_elements): Handle ERROR_MARK.
1505
1506 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
1507
1508         PR debug/29609
1509         PR debug/36690
1510         PR debug/37616
1511         * basic-block.h (struct edge_def): Add goto_block field.
1512         * cfglayout.c (fixup_reorder_chain): Ensure that there is at least
1513         one insn with locus corresponding to edge's goto_locus if !optimize.
1514         * profile.c (branch_prob): Copy edge's goto_block.
1515         * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
1516         emitted jumps.
1517         (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
1518         locator in between the merged basic blocks if !optimize and needed.
1519         * cfgexpand.c (expand_gimple_cond): Convert goto_block and
1520         goto_locus into RTL locator.  For unconditional jump use that
1521         locator for the jump insn.
1522         (expand_gimple_cond): Convert goto_block and goto_locus into
1523         RTL locator for all remaining edges.  For unconditional jump
1524         use that locator for the jump insn.
1525         * cfgcleanup.c (try_forward_edges): Avoid the optimization if
1526         there is more than one edge or insn locator along the forwarding
1527         edges and !optimize.  If there is just one, set e->goto_locus.
1528         * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
1529         edge's goto_block.
1530         (move_block_to_fn): Adjust edge's goto_block.
1531
1532 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
1533
1534         PR middle-end/37731
1535         * expmed.c (expand_mult): Properly check DImode constant in
1536         CONST_DOUBLE.
1537
1538 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
1539
1540         PR debug/37738
1541         * dwarf2out.c (common_block_die_table): New variable.
1542         (common_block_die_table_hash, common_block_die_table_eq): New
1543         functions.
1544         (gen_variable_die): Look up a DW_TAG_common_block die for a particular
1545         COMMON block in the current scope rather than globally.  Optimize
1546         DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
1547         DW_OP_addr SYMBOL_REF+off.
1548
1549 2008-10-07  Eric Botcazou  <ebotcazou@adacore.com>
1550
1551         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
1552         Return true for non-addressable GIMPLE operands.
1553
1554 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
1555
1556         PR target/24765
1557         * config/i386/i386.c (initial_ix86_tune_features): Remove
1558         X86_TUNE_USE_BIT_TEST.
1559         * config/i386/i386.h (ix86_tune_indices): Likewise.
1560         (TARGET_USE_BIT_TEST): Removed.
1561
1562 2008-10-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1563
1564         * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.
1565
1566 2008-10-06  Adam Nemet  <anemet@caviumnetworks.com>
1567
1568         * config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
1569         (mul<mode>3_mul3): ... into this new template.
1570
1571 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
1572
1573         * gimplify.c (gimplify_arg): Add location argument.  Use it.
1574         (gimplify_call_expr): Pass location to gimplify_arg.
1575         (gimplify_modify_expr_to_memcpy): Same.
1576         (gimplify_modify_expr_to_memset): Same.
1577
1578 2008-10-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1579
1580         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1581         Update calls to build_unary_op and build_indirect_ref for location
1582         changes.
1583
1584 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
1585
1586         build_modify_expr.
1587         * c-decl.c (finish_decl): Pass input_location to build_unary_op.
1588         * c-typeck.c (array_to_pointer_conversion): Pass location to
1589         build_unary_op.
1590         (function_to_pointer_conversion): Use error_at and warning_at.
1591         (build_indirect_ref): Same.
1592         (build_array_ref): Pass location to build_binary_op.
1593         (parser_build_unary_op): Do not set location after calling
1594         build_unary_op.
1595         (build_unary_op): Add location argument.  Use it throughout.  Set
1596         EXPR_LOCATION before returning new tree.
1597         (build_modify_expr): Same.
1598         (build_binary_op): Use location throughout.  Set EXPR_LOCATION before
1599         returning node.
1600         * c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
1601         build_indirect_ref, build_modify_expr.
1602         (c_finish_omp_for): Same.  Use error_at instead of error.
1603         * c-common.c (c_common_truthvalue_conversion): Pass location to
1604         build_unary_op.
1605         (warn_for_div_by_zero): Add location argument.
1606         * c-common.h: Add argument to build_modify_expr, build_indirect_ref,
1607         build_unary_op, warn_for_div_by_zero.
1608         * c-parser.c (c_parser_typeof_specifier): Use
1609         protected_set_expr_location.
1610         (c_parser_statement_after_labels): Same.
1611         (c_parser_condition): Same.
1612         (c_parser_expr_no_commas): Pass correct location to build_modify_expr.
1613         (c_parser_conditional_expression): Use protected_set_expr_location.
1614         (c_parser_unary_expression): Pass location to build_indirect_ref.
1615         (c_parser_postfix_expression_after_primary): Pass location to
1616         build_indirect_ref, build_unary_op.
1617         (c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.
1618
1619 2008-10-06  Joshua Kinard  <kumba@gentoo.org>
1620
1621         * doc/invoke.texi: List r1x000 family under the -march MIPS option.
1622         * config/mips/mips.h (PROCESSOR_R10000): New processor_type.
1623         * config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
1624         r14000 and r16000.
1625         (mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
1626         (mips_issue_rate): Handle PROCESSOR_R10000.
1627         * config/mips/mips.md (cpu): Add r10000.
1628         Include r10000.md.
1629         * config/mips/10000.md: New file.
1630
1631 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
1632
1633         * config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare.
1634         * config/rs6000/rs6000.h (FIND_BASE_TERM): New macro.
1635         * config/rs6000/rs6000.c (rs6000_find_base_term): New function.
1636
1637 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
1638
1639         * config/darwin-protos.h (machopic_function_base_name): Delete.
1640         (machopic_function_base_sym): Likewise.
1641         (machopic_gen_offset): Declare.
1642         * config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro.
1643         (ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant.
1644         * config/darwin.c (machopic_function_base_name): Delete.
1645         (machopic_function_base_sym): Likewise.
1646         (gen_pic_offset): Rename to...
1647         (machopic_gen_offset): ...this and remove the pic_base argument.
1648         Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset
1649         is needed.  Create an UNSPEC_MACHOPIC_OFFSET if so, and set
1650         crtl->uses_pic_offset_table.
1651         (machopic_indirect_data_reference): Use new machopic_gen_offset
1652         interface.
1653         (machopic_legitimize_pic_address): Likewise.
1654         (machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.
1655
1656         * config/i386/darwin.h (GOT_SYMBOL_NAME): Use
1657         MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name.
1658         * config/i386/i386.c (output_set_got): Likewise.
1659         (darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET
1660         instead of a MINUS.
1661         (legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET.
1662         (legitimate_address_p): Likewise.
1663         (output_pic_addr_const): Likewise.
1664         (output_addr_const_extra): Likewise.
1665         (ix86_delegitimize_address): Expect darwin_local_data_pic to
1666         match an UNSPEC rather than a MINUS.
1667         * config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define.
1668         (builtin_setjmp_receiver): Use machopic_gen_offset.
1669         * config/i386/predicates.md (pic_symbolic_operand): Handle
1670         UNSPEC_MACHOPIC_OFFSET.
1671
1672         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
1673         Use machopic_gen_offset and machopic_operand_p.
1674         (rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET.
1675         (rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME.
1676         * config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define.
1677         (builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME.
1678         Set crtl->uses_pic_offset_table.
1679
1680 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
1681
1682         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
1683         Declare.
1684         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro.
1685         * config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant.
1686         * config/rs6000/rs6000.c (constant_pool_expr_1): Delete.
1687         (constant_pool_expr_p): Use split_const and check the base.
1688         (toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL
1689         instead of a MINUS.
1690         (legitimate_constant_pool_address_p): Check toc_relative_p
1691         instead of constant_pool_expr_p.
1692         (print_operand_address): Always use output_addr_const for
1693         constant pool addresses.
1694         (rs6000_output_addr_const_extra): New function.
1695         (create_TOC_reference): Create an UNSPEC_TOCREL instead of a MINUS.
1696
1697 2008-10-06  Vladimir Makarov  <vmakarov@redhat.com>
1698
1699         PR middle-end/37535
1700
1701         * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
1702         (mark_ref_live, mark_ref_dead): Use them.
1703         (def_conflicts_with_inputs_p): Remove.
1704         (mark_early_clobbers): New function.
1705         (process_bb_node_lives): Call preprocess_constraints and
1706         mark_early_clobbers.
1707
1708         * doc/rtx.texi (clobber): Change how RA deals with clobbers.
1709
1710 2008-10-06  Danny Smith  <dannysmith@users.sourceforge.net>
1711
1712         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Add thread cleanup
1713         lib with -mthread switch.
1714
1715 2008-10-05  Dodji Seketeli  <dodji@redhat.com>
1716
1717         PR c++/37410
1718         * dwarf2out.c (dwarf2out_imported_module_or_decl): Split this
1719         function in two, making it call a new and reusable
1720         dwarf2out_imported_module_or_decl() that takes the containing
1721         BLOCK of the declaration in argument.
1722         (dwarf2out_imported_module_or_decl_real): New function.
1723         (decls_for_scope, gen_decl_die, dwarf2out_decl): Take
1724         IMPORTED_DECL in account.
1725         * tree.def: Added IMPORTED_DECL node type.
1726         * tree.h: Added accessors for IMPORTED_DECL nodes.
1727         * tree.c (init_ttree): Initialise IMPORTED_DECL node type.
1728
1729 2008-10-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1730
1731         * doc/gimple.texi: Fix some typos, wrap some long lines,
1732         fix some broken wraps with continuations.
1733         * tree-ssa-reassoc.c: Fix comment typos.
1734
1735 2000-10-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1736
1737         PR target/37603
1738         * pa.c (legitimize_pic_address): Force function labels to memory in
1739         word mode.
1740
1741 2008-10-04  Anton Blanchard  <anton@samba.org>
1742
1743         * config/rs6000/rs6000.c (rs6000_emit_sync): Use gen_lwsync().
1744         (rs6000_split_atomic_op): Same.
1745         (rs6000_split_compare_and_swap): Same.
1746         (rs6000_split_compare_and_swapqhi): Same.
1747
1748 2008-10-04  Richard Guenther  <rguenther@suse.de>
1749
1750         * tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p
1751         instead of pointer equality.
1752         (vn_nary_op_eq): Likewise.
1753
1754 2008-10-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1755
1756         * config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT 
1757         condition.
1758         (fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS &&
1759         TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT".
1760
1761 2008-10-03  Danny Smith  <dannysmith@users.sourceforge.net>
1762
1763         * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
1764         Revert previous change.
1765
1766 2008-10-03  Tom Tromey  <tromey@redhat.com>
1767
1768         * stringpool.c (ggc_alloc_string): Terminate string.
1769
1770 2008-10-03  Jakub Jelinek  <jakub@redhat.com>
1771
1772         * gimplify.c (gimplify_function_tree): For -finstrument-functions
1773         use gimple_bind_{,set_}block instead of gimple_{,set_}block.
1774         * gimple.h (gimple_bind_set_block): Allow second argument to be NULL.
1775
1776         PR debug/37726
1777         * gimplify.c (declare_vars): Use gimple_bind_block instead of
1778         gimple_block.
1779
1780 2008-10-03  Pascal Obry  <obry@adacore.com>
1781
1782         * gcov.c (create_file_names): Properly handle UNIX and DOS
1783         directory separators.
1784         (make_gcov_file_name): Likewise + convert the ':' DOS drive
1785         separator to '~' to ensure clean filenames on Windows.
1786
1787 2008-10-02  Danny Smith  <dannysmith@users.sourceforge.net>
1788
1789         * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
1790         Add a null terminator to the stripped name.
1791
1792 2008-10-02  David Edelsohn  <edelsohn@gnu.org>
1793
1794         * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert
1795         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1796         (function_arg_advance): Condition on TARGET_DOUBLE_FLOAT,
1797         TARGET_SINGLE_FLOAT.  Revert SCALAR_FLOAT_MODE_P condition.
1798         (function_arg): Condition on TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1799         (rs6000_function_value): Revert TARGET_DOUBLE_FLOAT,
1800         TARGET_SINGLE_FLOAT.
1801
1802 2008-10-02  Daniel Jacobowitz  <dan@codesourcery.com>
1803
1804         * builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE.
1805
1806 2008-10-02  Richard Guenther  <rguenther@suse.de>
1807
1808         PR middle-end/37713
1809         * tree-ssa.c (useless_type_conversion_p_1): For COMPLEX_TYPE
1810         and VECTOR_TYPE recurse with useless_type_conversion_p which
1811         properly handles void pointer conversion.
1812
1813 2008-10-02  Danny Smith  <dannysmith@users.sourceforge.net>  
1814
1815         PR target/37528
1816         * config/i386/mingw32.h (LIBGCC_SPEC) : Replace with ..
1817         (REAL_LIBGCC_SPEC): New.  Always include -lgcc.
1818
1819 2008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1820
1821         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1822         Handle ALTIVEC_BUILTIN_VEC_SPLATS, ALTIVEC_BUILTIN_VEC_PROMOTE,
1823         ALTIVEC_BUILTIN_VEC_EXTRACT, and ALTIVEC_BUILTIN_VEC_INSERT specially,
1824         they translate to non builtins.
1825         * config/rs6000/rs6000.c (altivec_init_builtins): Add new variable
1826         opaque_ftype_opaque.  Define builtins __builtin_vec_splats,
1827         __builtin_vec_promote, __builtin_vec_extract, and
1828         __builtin_vec_insert.
1829         * config/rs6000/rs6000.h (enum rs6000_builtins): Add
1830         ALTIVEC_BUILTIN_VEC_EXTRACT, ALTIVEC_BUILTIN_VEC_PROMOTE,
1831         ALTIVEC_BUILTIN_VEC_INSERT, and ALTIVEC_BUILTIN_VEC_SPLATS.
1832         * config/rs6000/altivec.h (vec_extract): Define
1833         (vec_insert): Define.
1834         (vec_splats): Define.
1835         (vec_promote): Define.
1836
1837 2008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1838             Yukishige Shibata  <shibata@rd.scei.sony.co.jp>
1839             Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
1840
1841         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell
1842         Altivec intrinsics.
1843         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Delete
1844         prototype.  Add new parameter, blk.
1845         Use BLKmode for the MEM if blk is true.
1846         (altivec_expand_builtin): Handle ALTIVEC_BUILTIN_STVLX,
1847         ALTIVEC_BUILTIN_STVLXL, ALTIVEC_BUILTIN_STVRX, and
1848         ALTIVEC_BUILTIN_STVRXL.
1849         Update usage of altivec_expand_lv_builtin.
1850         Handle ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL,
1851         ALTIVEC_BUILTIN_LVRX, and ALTIVEC_BUILTIN_LVRXL.
1852         (altivec_init_builtins): If compiling for the Cell, also define the
1853         cell VMX builtins.
1854         * config/rs6000/rs6000.h (rs6000_builtins): Define
1855         ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, ALTIVEC_BUILTIN_LVRX,
1856         ALTIVEC_BUILTIN_LVRXL, ALTIVEC_BUILTIN_STVLX, ALTIVEC_BUILTIN_STVLXL,
1857         ALTIVEC_BUILTIN_STVRX, ALTIVEC_BUILTIN_STVRXL,
1858         ALTIVEC_BUILTIN_VEC_LVLX, ALTIVEC_BUILTIN_VEC_LVLXL,
1859         ALTIVEC_BUILTIN_VEC_LVRX, ALTIVEC_BUILTIN_VEC_LVRXL,
1860         ALTIVEC_BUILTIN_VEC_STVLX, ALTIVEC_BUILTIN_VEC_STVLXL,
1861         ALTIVEC_BUILTIN_VEC_STVRX, and ALTIVEC_BUILTIN_VEC_STVRXL.
1862         * config/rs6000/altivec.md (define_constants): Define UNSPEC_LVLX,
1863         UNSPEC_LVLXL, UNSPEC_LVRX, UNSPEC_LVRXL, UNSPEC_STVLX, UNSPEC_STVLXL,
1864         UNSPEC_STVRX, and UNSPEC_STVRXL.
1865         (altivec_lvlx): New pattern.
1866         (altivec_lvlxl): New pattern.
1867         (altivec_lvrx): New pattern.
1868         (altivec_lvrxl): New pattern.
1869         (altivec_stvlx): New pattern.
1870         (altivec_stvlxl): New pattern.
1871         (altivec_stvrx): New pattern.
1872         (altivec_stvrxl): New pattern.
1873         * config/rs6000/altivec.h (vec_lvlx): Define if PPU is defined.
1874         (vec_lvlxl): Likewise.
1875         (vec_lvrx): Define if PPU is defined.
1876         (vec_lvrxl): Likewise.
1877         (vec_stvlx): Define if PPU is defined.
1878         (vec_stvlxl): Likewise.
1879         (vec_stvrx): Define if PPU is defined.
1880         (vec_stvrxl): Likewise.
1881
1882 2008-10-01  Geert Bosch  <bosch@adacore.com>
1883
1884         * tree.c (contains_placeholder_p): Return 0 for a SAVE_EXPR.
1885
1886 2008-10-01  Richard Guenther  <rguenther@suse.de>
1887
1888         PR tree-optimization/37617
1889         * tree-ssa-pre.c (create_expression_by_pieces): During FRE
1890         do not add to the NEW_SETS.
1891
1892 2008-10-01  Richard Guenther  <rguenther@suse.de>
1893
1894         PR middle-end/37285
1895         * tree-vrp.c (execute_vrp): If we optimized away the default
1896         case make sure to promote the label that got in place of it
1897         to a default case label.
1898
1899 2008-10-01  Richard Henderson  <rth@redhat.com>
1900
1901         PR tree-opt/35737
1902         * tree-complex.c (set_component_ssa_name): Don't optimize
1903         is_gimple_min_invariant values with ssa_names in abnormal phis.
1904
1905 2008-09-30  Paolo Bonzini  <bonzini@gnu.org>
1906
1907         PR tree-optimization/37662
1908         * tree-ssa-ccp.c (fold_gimple_assign): Invert the operands of a
1909         commutative binary operation if they are in the wrong order and
1910         fold_build2 produces non-GIMPLE.
1911
1912 2008-09-30  Jakub Jelinek  <jakub@redhat.com>
1913
1914         PR tree-optimization/37662
1915         PR tree-optimization/37663
1916         * tree-vrp.c (simplify_truth_ops_using_ranges): Don't call
1917         get_value_range with non-SSA_NAME.  Don't assert operands have been
1918         folded, instead just bail out.
1919
1920 2008-09-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1921
1922         * config/rs6000/rs6000.md (fnmadds combiner): Revert typo.
1923
1924 2008-09-30  Richard Guenther  <rguenther@suse.de>
1925
1926         PR middle-end/37491
1927         * tree-vect-transform.c (vect_create_data_ref_ptr): Properly
1928         build restrict-qualified pointers.
1929         (vectorizable_store): Move alias check later.
1930         (vectorizable_load): Likewise.
1931
1932 2008-09-30  Paolo Bonzini  <bonzini@gnu.org>
1933
1934         * c-common.c (empty_if_body_warning): Remove.
1935         * c-common.h (empty_if_body_warning): Remove.
1936         * c-parser.c (c_parser_if_body, c_parser_else_body): Implement
1937         here the -Wempty-body warning for `if' and `else' statements.
1938         * c-typeck.c (c_finish_if_stmt): Do not call empty_body_warning.
1939
1940 2008-09-29  H.J. Lu  <hongjiu.lu@intel.com>
1941
1942         * config/i386/i386.opt: Add msse2avx.
1943
1944         * config/i386/linux.h (ASM_SPEC): New.  Support -msse2avx.
1945         * config/i386/linux64.h (ASM_SPEC): Likewise.
1946
1947         * doc/invoke.texi: Document -msse2avx.
1948
1949 2008-09-29  Eric Botcazou  <ebotcazou@adacore.com>
1950
1951         * dwarf2out.c (constant_size): Use HOST_WIDE_INT in parameter type.
1952
1953 2008-09-29  Joseph Myers  <joseph@codesourcery.com>
1954
1955         * ifcvt.c (noce_emit_store_flag): If using condition from original
1956         jump, reverse it if if_info->cond was reversed.
1957
1958 2008-09-29  Eric Botcazou  <ebotcazou@adacore.com>
1959
1960         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
1961         non-constant memory if it cannot be forced to constant memory.
1962         Overhaul surrounding code and factor out common condition.
1963
1964 2008-09-29  Jeff Law <law@redhat.com>
1965
1966         * reload1.c (alter_reg): Add missing curly braces.
1967
1968 2008-09-29  Michael J. Eager  <eager@eagercon.com>
1969
1970         * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
1971         are easy.
1972         * config/rs6000/rs6000.c (rs6000_override_options): Move
1973         rs6000_init_hard_regno_mode_ok after all options changed.
1974         Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
1975         (rs6000_handle_option): Process -msingle-float, -mdouble-float,
1976         -msimple-fpu flags.  Add warning messages if single FP not configured.
1977         (rs6000_file_start): Output gnu_attribute for single-float.
1978         (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
1979         (rs6000_legitimize_address): Likewise.
1980         (rs6000_legitimize_reload_address): Likewise.
1981         (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
1982         TARGET_SINGLE_FLOAT.
1983         (function_arg_advance): Likewise (partial conversion).
1984         (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
1985         (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
1986         TARGET_SINGLE_FLOAT.
1987         (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
1988         (rs6000_emit_prologue): Likewise.
1989         (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
1990         TARGET_SINGLE_FLOAT.
1991         (rs6000_libcall_value): Likewise.
1992         * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
1993         (TARGET_DOUBLE_FLOAT): New default to 1
1994         (TARGET_SIMPLE_FPU): New default to 0
1995         (TARGET_SINGLE_FPU): New default to 0
1996         (TARGET_SINGLE_FLOAT_MODE): New.
1997         (TARGET_DOUBLE_FLOAT_MODE): New.
1998         * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
1999         TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
2000         UNITS_PER_FP_WORD
2001         * config/rs6000/rs6000.md (define_mode_iterator): Condition on
2002         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
2003         (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
2004         copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
2005         nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
2006         muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
2007         movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
2008         floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
2009         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
2010         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
2011         rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
2012         floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
2013         movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
2014         extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
2015         abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
2016         cmptf_internal1, *cmptf_internal2): Condition on
2017         TARGET_DOUBLE_FLOAT.
2018         (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
2019         mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
2020         *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
2021         btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
2022         floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
2023         *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
2024         TARGET_SINGLE_FLOAT.
2025         (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
2026         * config/rs6000/rs6000.opt (-msingle-float): New.
2027         (-mdouble-float): New.
2028         (-msimple-fpu): New.
2029         * doc/invoke.texi (RS/6000 and PowerPC Options): Add
2030         -msingle-float, -mdouble-float, -msimple-fpu options.
2031         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
2032         _SOFT_DOUBLE for -msingle-float.
2033         * config.gcc: New config for target=powerpc-xilinx-eabi.
2034
2035 2008-09-29  Tobias Grosser  <grosser@fim.uni-passau.de>
2036
2037         * graphite.c (dot_all_scops_1): Remove unused checks. SCoPs always
2038         have exit and entry.
2039         (new_scop): Take entry and exit edge to define new SCoP.
2040         (sd_region_p): New structure used during SCoP detection.
2041         (move_scops): Delete.
2042         (move_sd_regions): New.
2043         (scopdet_info): Change the definition from edges back to basic_blocks.
2044         (scopdet_edge_info):  Work on basic_blocks and rename to
2045         scopdet_basic_block_info.
2046         (split_difficult_bb): At the moment removed. We should later
2047         add it at another place.
2048         (build_scops_1): Work on basic_blocks.
2049         (bb_in_sd_region): New.
2050         (find_single_entry_edge): New.
2051         (find_single_exit_edge): New.
2052         (create_single_entry_edge): New.
2053         (sd_region_without_exit): New.
2054         (create_single_exit_edge): New.
2055         (unmark_exit_edges): New.
2056         (mark_exit_edges): New.
2057         (create_sese_edges): New.
2058         (build_graphite_scops): New.
2059         (build_scops): Make SCoPs SESE.
2060         (limit_scops): Use the new functions.
2061
2062 2008-09-29  Hans-Peter Nilsson  <hp@axis.com>
2063
2064         * config/cris/cris.h (IRA_COVER_CLASSES): Define.
2065
2066 2008-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2067
2068         PR target/37640
2069         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force
2070         address to a register before taking the lower part.
2071
2072 2008-09-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2073
2074         * config/sh/sh.h (OVERRIDE_OPTIONS): Unset flag_dwarf2_cfi_asm
2075         for SHmedia.
2076
2077 2008-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2078             Kaushal Kantawala  <kaushal_kantawala@playstation.sony.com>
2079
2080         PR tree-opt/36891
2081         * tree-ssa-loop-im.c (rewrite_reciprocal): Set DECL_GIMPLE_REG_P on
2082         the newly created variable.
2083         Create a VECTOR_CST of all 1s for vector types.
2084
2085 2008-09-28  Eric Botcazou  <ebotcazou@adacore.com>
2086
2087         PR middle-end/36575
2088         * fold-const.c (div_and_round_double) <ROUND_DIV_EXPR>: Fix typo.
2089
2090 2008-09-28  Eric Botcazou  <ebotcazou@adacore.com>
2091
2092         * expmed.c (store_fixed_bit_field): Always use convert_to_mode in
2093         order to convert between modes.
2094         (extract_bit_field_1): Test TRULY_NOOP_TRUNCATION on the right mode.
2095
2096 2008-09-27  Kaz Kojima  <kkojima@gcc.gnu.org>
2097
2098         * config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR
2099         if needed.
2100
2101 2008-09-26  Vladimir Makarov  <vmakarov@redhat.com>
2102
2103         Revert:
2104         2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
2105         * ira-lives.c:...
2106         * doc/rtl.texi:...
2107
2108 2008-09-26  Adam Nemet  <anemet@caviumnetworks.com>
2109
2110         * config/mips/mips.h (ISA_HAS_DMUL3, ISA_HAS_BADDU, ISA_HAS_BBIT,
2111         ISA_HAS_CINS, ISA_HAS_EXTS, ISA_HAS_SEQ_SNE, ISA_HAS_POP): Change
2112         them to yield false with MIPS16.
2113
2114 2008-09-26  Jakub Jelinek  <jakub@redhat.com>
2115
2116         PR middle-end/37275
2117         * dwarf2out.c (tls_mem_loc_descriptor): New function.
2118         (mem_loc_descriptor): Use it for MEM.  For PLUS fail if second
2119         mem_loc_descriptor failed.  Accept UNSPEC.
2120         (loc_descriptor): Use tls_mem_loc_descriptor for MEM.  For PARALLEL
2121         fail if one of the loc_descriptor calls for pieces failed.
2122         (loc_descriptor_from_tree_1): Handle even DECL_EXTERNAL __thread vars,
2123         as long as they bind locally.  For COMPONENT_REF, ARRAY_REF etc. fail
2124         if loc_descriptor_from_tree_1 on offset failed.
2125
2126         PR middle-end/37576
2127         * opts.c (common_handle_option): Don't call print_specific_help with
2128         CL_SAVE as first argument.
2129
2130 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
2131             Steve Ellcey  <sje@cup.hp.com>
2132
2133         * configure: Regenerate for new libtool.
2134         * aclocal.m4: Ditto.
2135
2136 2008-09-26  Pat Haugen  <pthaugen@us.ibm.com>
2137
2138         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Use correct
2139         alias set on MEM when saving stack pointer.
2140         * config/rs6000/rs6000.md (allocate_stack): Likewise
2141
2142 2008-09-26  Dorit Nuzman  <dorit@il.ibm.com>
2143
2144         PR tree-optimization/37574
2145         * tree-vectorizer.c (vect_is_simple_use): Fix indentation.
2146         * tree-vect-transform.c (vect_get_constant_vectors): Use vectype
2147         instead of vector_type for constants. Take computation out of loop.
2148         (vect_get_vec_def_for_operand): Use only vectype for constant case,
2149         and use only vector_type for invariant case.
2150         (get_initial_def_for_reduction): Use vectype instead of vector_type.
2151
2152 2008-09-25  Jakub Jelinek  <jakub@redhat.com>
2153
2154         PR c/37645
2155         * c-common.c (handle_weakref_attribute): Ignore the attribute unless
2156         the decl is a VAR_DECL or FUNCTION_DECL.
2157
2158 2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
2159
2160         PR middle-end/37535
2161         * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
2162         (mark_ref_live, mark_ref_dead): Use them.
2163         (def_conflicts_with_inputs_p): Remove.
2164         (mark_early_clobbers): New function.
2165         (process_bb_node_lives): Call preprocess_constraints and
2166         mark_early_clobbers.
2167
2168         * doc/rtl.texi (clobber): Change how RA deals with clobbers.
2169
2170 2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
2171
2172         PR middle-end/37448
2173         * ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP.
2174         (ira_compress_allocno_live_ranges): New prototype.
2175
2176         * ira-color.c: Rename IRA_ALLOCNO_TEMP to ALLOCNO_TEMP.
2177         (coalesced_allocnos_living_at_program_points): New.
2178         (coalesced_allocnos_live_at_points_p,
2179         set_coalesced_allocnos_live_points): New functions.
2180         (coalesce_spill_slots): Rewrite.
2181         
2182         * ira-lives.c (remove_some_program_points_and_update_live_ranges,
2183         ira_compress_allocno_live_ranges): New functions.
2184
2185         * ira-build.c (ira_flattening): Call
2186         ira_compress_allocno_live_ranges.
2187         (ira_build): Ditto.
2188
2189 2008-09-25  H.J. Lu  <hongjiu.lu@intel.com>
2190
2191         * config/i386/i386.md: Check cmp/branch fuse for cmp peephole
2192         optimization.
2193
2194 2008-09-25  Richard Sandiford  <rdsandiford@googlemail.com>
2195
2196         * combine.c (make_compound_operation): Handle the 'E' format.
2197         (count_rtxs): Likewise.
2198         (update_table_tick): Likewise.
2199         (get_last_value_validate): Likewise.
2200
2201 2008-09-25  Eric Botcazou  <ebotcazou@adacore.com>
2202
2203         * dbxout.c (dbxout_parms): Fetch the inner REG inside a PARALLEL.
2204
2205 2008-09-25 Sergei Dyshel <sergeid@il.ibm.com>
2206
2207         * matrix-reorg.c (transform_allocation_sites): Initializers 
2208         added to avoid the warning.
2209
2210 2008-09-25  Martin Jambor  <mjambor@suse.cz>
2211
2212         * cgraph.c (free_nodes): New variable.
2213         (NEXT_FREE_NODE): New macro.
2214         (cgraph_create_node): Reuse nodes from the free list.  Do not
2215         update uid if doing so.
2216         (cgraph_remove_node): Add the node to the free list.
2217
2218 2008-09-25  Gerald Pfeifer  <gerald@pfeifer.com>
2219
2220         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
2221
2222 2008-09-24  Richard Henderson  <rth@redhat.com>
2223
2224         * dwarf2.h (DW_OP_GNU_encoded_addr): New.
2225         * unwind-dw2.c (execute_stack_op): Handle it.
2226
2227 2008-09-24  David Edelsohn  <edelsohn@gnu.org>
2228
2229         Revert:
2230         2008-09-24  Michael J. Eager  <eager@eagercon.com>
2231
2232 2008-09-24  Aldy Hernandez  <aldyh@redhat.com>
2233
2234         * c-common.c (fname_decl): New location argument.
2235         * c-common.h (fname_decl): Same.
2236         * c-parser.c (c_lex_one_token): Use {warning,error}_at instead of
2237         {warning,error}.
2238         (c_parser_typeof_specifier): Same.
2239         (c_parser_parms_list_declarator): Same.
2240         (c_parser_asm_string_literal): Same.
2241         (c_parser_compound_statement_nostart): Same.
2242         (c_parser_label): Same.
2243         (c_parser_do_statement): Same.
2244         (c_parser_asm_statement): Same.
2245         (c_parser_unary_expression): Same.
2246         (c_parser_sizeof_expression): Same.
2247         (c_parser_postfix_expression): Same.
2248         (c_parser_pragma): Same.
2249         (c_parser_omp_clause_collapse): Same.
2250         (c_parser_omp_clause_num_threads): Same.
2251         (c_parser_omp_clause_schedule): Same.
2252         (c_parser_omp_all_clauses): Same.
2253         (c_parser_omp_sections_scope): Same.
2254         (c_parser_omp_for_loop): Same.  Pass condition's location to
2255         c_objc_common_truthvalue_conversion.
2256         (c_parser_enum_specifier): Remove comment.
2257
2258 2008-09-24  Michael J. Eager  <eager@eagercon.com>
2259
2260         * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
2261         are easy.
2262         * config/rs6000/rs6000.c (rs6000_override_options): Move
2263         rs6000_init_hard_regno_mode_ok after all options changed.
2264         Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
2265         (rs6000_handle_option): Process -msingle-float, -mdouble-float,
2266         -msimple-fpu flags.  Add warning messages if single FP not configured.
2267         (rs6000_file_start): Output gnu_attribute for single-float.
2268         (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
2269         (rs6000_legitimize_address): Likewise.
2270         (rs6000_legitimize_reload_address): Likewise.
2271         (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
2272         TARGET_SINGLE_FLOAT.
2273         (function_arg_advance): Likewise.
2274         (function_arg): Likewise.
2275         (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
2276         (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
2277         TARGET_SINGLE_FLOAT.
2278         (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
2279         (rs6000_emit_prologue): Likewise.
2280         (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
2281         TARGET_SINGLE_FLOAT.
2282         (rs6000_libcall_value): Likewise.
2283         * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
2284         (TARGET_DOUBLE_FLOAT): New default to 1
2285         (TARGET_SIMPLE_FPU): New default to 0
2286         (TARGET_SINGLE_FPU): New default to 0
2287         (TARGET_SINGLE_FLOAT_MODE): New.
2288         (TARGET_DOUBLE_FLOAT_MODE): New.
2289         * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
2290         TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
2291         UNITS_PER_FP_WORD
2292         * config/rs6000/rs6000.md (define_mode_iterator): Condition on
2293         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
2294         (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
2295         copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
2296         nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
2297         muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
2298         movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
2299         floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
2300         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
2301         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
2302         rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
2303         floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
2304         movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
2305         extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
2306         abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
2307         cmptf_internal1, *cmptf_internal2): Condition on
2308         TARGET_DOUBLE_FLOAT.
2309         (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
2310         mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
2311         *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
2312         btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
2313         floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
2314         *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
2315         TARGET_SINGLE_FLOAT.
2316         (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
2317         * config/rs6000/rs6000.opt (-msingle-float): New.
2318         (-mdouble-float): New.
2319         (-msimple-fpu): New.
2320         * doc/invoke.texi (RS/6000 and PowerPC Options): Add
2321         -msingle-float, -mdouble-float, -msimple-fpu options.
2322         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
2323         _SOFT_DOUBLE for -msingle-float.
2324         * config.gcc: New config for target=powerpc-xilinx-eabi.
2325
2326 2008-09-23  Eric Botcazou  <ebotcazou@adacore.com>
2327
2328         * config/sparc/constraints.md: New file.
2329         * config/sparc/sparc.md: Include it.
2330         * config/sparc/sparc-protos.h (memory_ok_for_ldd): Declare.
2331         (sparc_extra_constraint_check): Delete.
2332         * config/sparc/sparc.c (register_ok_for_ldd): Minor tweaks.
2333         (memory_ok_for_ldd): New predicate.
2334         (sparc_extra_constraint_check): Delete.
2335         * config/sparc/sparc.h (REG_CLASS_FROM_LETTER): Likewise.
2336         (CONST_OK_FOR_LETTER_P): Likewise.
2337         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
2338         (EXTRA_CONSTRAINT): Likewise.
2339
2340 2008-08-23  Steve Ellcey  <sje@cup.hp.com>
2341
2342         * regrename.c (do_replace): Copy REG_POINTER value to new reg.
2343
2344 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
2345
2346         * alias.c (find_base_value): Use FIND_BASE_TERM.
2347         * doc/tm.texi (FIND_BASE_TERM): Update documentation.
2348
2349 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
2350
2351         * config/i386/i386.c: Include cselib.h.
2352         (ix86_pic_register_p): New function.
2353         (ix86_delegitimize_address): Use it to check for the PIC register.
2354
2355 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
2356
2357         * doc/tm.texi (FIND_BASE_TERM): Expand documentation.
2358         * config/i386/i386.c (ix86_find_base_term): Don't check for
2359         SYMBOL_REF and LABEL_REF.
2360
2361 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
2362
2363         * config/i386/i386.c (ix86_delegitimize_address): Wrap the
2364         constant PLUS in a CONST.
2365
2366 2008-09-23  Kai Tietz  <kai.tietz@onevision.com>
2367
2368         * config/i386/i386.c (ix86_function_ok_for_sibcall): Correct
2369         check for sibcall support for w64.
2370
2371 2008-09-23  Eric Botcazou  <ebotcazou@adacore.com>
2372
2373         * c-ppoutput.c (cb_used_define): Do nothing for a builtin node.
2374
2375 2008-09-23  Aldy Hernandez  <aldyh@redhat.com>
2376
2377         * c-tree.h: Add argument to c_objc_common_truthvalue_conversion,
2378         parser_build_binary_op.
2379         * c-decl.c (build_enumerator): Pass location to build_binary_op.
2380         * c-typeck.c (build_array_ref): Same.
2381         (parser_build_unary_op): New location argument.
2382         (pointer_diff): Pass location to build_binary_op,
2383         c_objc_common_truthvalue_conversion.
2384         (build_modify_expr): Same.
2385         (build_unary_op): New location argument.
2386         (build_binary_op): New location argument.
2387         (c_objc_common_truthvalue_conversion): Pass location to
2388         c_*common_truthvalue_conversion.
2389         * c-convert.c (convert): Same.
2390         * c-common.c (binary_op_error): New location argument.
2391         (pointer_int_sum): Pass location to build_binary_op.
2392         (c_common_truthvalue_conversion): New location argument.
2393         (warn_for_sign_compare): Same.
2394         * c-common.h: Add location argument to c_common_truthvalue_conversion,
2395         binary_op_error, build_binary_op, warn_for_sign_compare.
2396         * c-parser.c (c_parser_condition): Pass location to
2397         c_*common_truthvalue_conversion.
2398         (c_parser_conditional_expression): Save condition's location and pass
2399         it on down.
2400         (c_parser_binary_expression): Same, but for the binary operator's
2401         location.
2402         (c_parser_omp_for_loop): Pass location to
2403         c_objc_common_truthvalue_conversion.
2404
2405 2008-09-23  Martin Jambor  <mjambor@suse.cz>
2406
2407         * cgraph.c (cgraph_free_edge): Use sizeof(*e).
2408         (cgraph_node_remove_callees): New temporary f.  Hold the next item
2409         in f when looping.
2410         (cgraph_node_remove_callers): Likewise.
2411
2412         * ipa-prop.c (ipa_edge_removal_hook): Use ATTRIBUTE_UNUSED.
2413         (ipa_node_removal_hook): Likewise.
2414
2415         * doc/gimple.texi (gimple_copy_call_skip_args): Changed to
2416         gimple_call_copy_skip_args and moved to the gimple_call section.
2417         * gimple.c (gimple_copy_call_skip_args): Renamed to
2418         gimple_call_copy_skip_args.  Changed al users.
2419
2420 2008-09-22  Vladimir Makarov  <vmakarov@redhat.com>
2421
2422         * ira-color.c (start_allocno_priorities): Rename to
2423         setup_allocno_priorities.  Use costs and
2424         ALLOCNO_EXCESS_PRESSURE_POINTS_NUM instead of frequencies and
2425         range lengths.  Get rid off doubles.
2426         (ira_fast_allocations): Call start_allocno_priorities.
2427         
2428 2008-09-22  David Daney  <ddaney@avtrex.com>
2429
2430         PR target/37593
2431         * config/mips/mips.h (FUNCTION_PROFILER): Call _mcount via a
2432         register if TARGET_LONG_CALLS.
2433
2434 2008-09-22  Richard Guenther  <rguenther@suse.de>
2435
2436         PR tree-optimization/37145
2437         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Re-enable
2438         value-numbering union accesses with their offset and size only.
2439         (visit_reference_op_load): Fix simplification of inserted conversions.
2440         * tree-ssa-pre.c (find_or_generate_expression): Do not
2441         recursively generate expressions if running FRE.
2442
2443 2008-09-22  Adam Nemet  <anemet@caviumnetworks.com>
2444
2445         * config/mips/mips.h (ISA_HAS_BADDU): New macro.
2446         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el, *baddu_di<mode>):
2447         New patterns.
2448
2449 2008-09-22  Richard Guenther  <rguenther@suse.de>
2450
2451         PR tree-optimization/37145
2452         * tree-ssa-pre.c (fully_constant_expression): Simplify builtin calls.
2453         (phi_translate_1): Constant fold references.
2454
2455 2008-09-22  Ira Rosen  <irar@il.ibm.com>
2456
2457         PR tree-optimization/37482
2458         * tree-vectorizer.h (struct _slp_instance): Add new field.
2459         (SLP_INSTANCE_FIRST_LOAD_STMT): New.
2460         (get_earlier_stmt): New function.
2461         * tree-vect-analyze.c (vect_find_first_load_in_slp_instance): New
2462         function.
2463         (vect_analyze_slp_instance): Set SLP_INSTANCE_FIRST_LOAD_STMT.
2464         * tree-vect-transform.c (vect_finish_stmt_generation): Remove the
2465         asserts that GSI points to the scalar statement being vectorized.
2466         Set new statement location according to GSI.
2467         (vect_schedule_slp_instance): Use GSI of
2468         SLP_INSTANCE_FIRST_LOAD_STMT when vectorizing loads.
2469
2470 2008-09-21  Jan Hubicka  <jh@suse.cz>
2471
2472         * ipa-cp.c (ipcp_estimate_growth): Check recursive calls.
2473         (ipcp_insert_stage): Update dead_nodes bitmap.
2474
2475 2008-09-22  Danny Smith  <dannysmith@users.sourceforge.net>
2476
2477         PR target/37528 
2478         * config/i386/t-cygming (SHLIB_LC): Remove.
2479         (SHLIB_LINK): Don't add static objects to SHLIB_IMPLIB
2480         * config/i386/t-cygwin (SHLIB_LC): Specify all required libraries.
2481
2482 2008-09-22  Hans-Peter Nilsson  <hp@axis.com>
2483
2484         PR middle-end/37170
2485         PR middle-end/37280
2486         * final.c (mark_symbol_ref_as_used): New helper function.
2487         (output_operand): Instead of just looking inside MEMs for
2488         SYMBOL_REFs, use new helper function and for_each_rtx.
2489         * varasm.c (assemble_external): Move #ifndef ASM_OUTPUT_EXTERNAL
2490         to after weak-handling.  Don't mark decls with TREE_STATIC as weak.
2491         Make head comment more general.
2492         * config/darwin.c (machopic_output_indirection): Handle weak
2493         references here, like in assemble_external.
2494
2495 2008-09-21  Eric Botcazou  <ebotcazou@adacore.com>
2496
2497         * config/sparc/sparc-protos.h (gen_compare_operator): Declare.
2498         (sparc_emit_float_lib_cmp): Change return type.
2499         * config/sparc/sparc.c (gen_compare_reg): Add comment about TFmode.
2500         (gen_compare_operator): New function.
2501         (sparc_emit_float_lib_cmp): Return the new operator to be used in
2502         the comparison sequence.  Minor tweaks.
2503         * config/sparc/sparc.md (seq, sne, sgt, slt, sge, sle): Assert
2504         that the final operator and the result of sparc_emit_float_lib_cmp
2505         match for software TFmode; use emit_insn in lieu of emit_jump_insn.
2506         (beq, bne, bgt, blt, bge, ble, bunordered, bordered, bungt, bunlt,
2507         buneq, bunge, bunle, bltgt): Assert that the final operator and the
2508         result of sparc_emit_float_lib_cmp match for software TFmode.
2509         (movqicc, movhicc, movsicc, movdicc): Merge into...
2510         (mov<I:mode>cc): ...this.
2511         (movsfcc, movdfcc, movtfcc): Merge into...
2512         (mov<F:mode>cc): ...this.
2513         (movqi_cc_sp64, movhi_cc_sp64, movsi_cc_sp64, movdi_cc_sp64): Merge
2514         into...
2515         (mov<I:mode>_cc_v9): ...this.
2516         (movdi_cc_sp64_trunc): Delete.
2517         (movqi_cc_reg_sp64, movhi_cc_reg_sp64, movsi_cc_reg_sp64,
2518         movdi_cc_reg_sp64): Merge into...
2519         (mov<I:mode>_cc_reg_sp64): ...this.
2520         (movsf_cc_sp64): Rename into...
2521         (movsf_cc_v9): ...this.
2522         (movdf_cc_sp64): Rename into...
2523         (movdf_cc_v9): ...this.
2524         (movtf_cc_hq_sp64): Rename into...
2525         (movtf_cc_hq_v9): ...this.
2526         (movtf_cc_sp64): Rename into...
2527         (movtf_cc_v9): ...this.  Adjust for renaming of movdf_cc_sp64.
2528
2529 2008-09-21  Diego Novillo  <dnovillo@google.com>
2530
2531         * doc/gccint.texi: Include generic.texi and gimple.texi.
2532         Re-order index.
2533         * doc/tree-ssa.texi (GENERIC): Move to generic.texi.
2534         (GIMPLE): Move to gimple.texi.
2535         (Annotations): Remove references to to stmt_ann_t and
2536         ssa_name_ann_t.
2537         (SSA Operands): Rename from 'Statement Operands'.
2538         * doc/generic.texi: New.
2539         * doc/gimple.texi: New.
2540         * Makefile.in (TEXI_GCCINT_FILES): Add generic.texi and gimple.texi.
2541         * Makefile.in (TEXI_GCCINT_FILES):
2542         * gimple.c (gimple_copy_call_skip_args): Rename from
2543         giple_copy_call_skip_args.  Update all users.
2544         * doc/gimple.texi (gimple_copy_call_skip_args): Document.
2545
2546 2008-09-21  Ira Rosen  <irar@il.ibm.com>
2547
2548         PR tree-optimization/37539
2549         * tree-vect-transform.c (vect_transform_strided_load): Save vector
2550         statement in related statement field only for the first load of the
2551         group of loads with the same data reference.
2552
2553 2008-09-20  Adam Nemet  <anemet@caviumnetworks.com>
2554
2555         * config/mips/mips.h (TUNE_OCTEON): New macro.
2556         * config/mips/mips.c (mips_issue_rate): Return 2 for Octeon.
2557         (mips_multipass_dfa_lookahead): Return 2 for Octeon.
2558         * config/mips/octeon.md: New file.
2559         * config/mips/mips.md: Include octeon.md.  Restore
2560         semi-alphabetical order of include files.
2561
2562 2008-09-20  H.J. Lu  <hongjiu.lu@intel.com>
2563
2564         PR target/37571
2565         * config/i386/i386.md (*jcc_fused_1): Removed.
2566         (*jcc_fused_2): Likewise.
2567         (*jcc_fused_3): Likewise.
2568         (*jcc_fused_4): Likewise.
2569
2570 2008-09-20  Richard Sandiford  <rdsandiford@googlemail.com>
2571
2572         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Define.
2573         (IRA_COVER_CLASSES): Refer to TARGET_IRA_COVER_CLASSES.
2574         * target.h (gcc_target): Add ira_cover_classes.
2575         * ira.c: Remove IRA_COVER_CLASSES guards.
2576         (setup_cover_and_important_classes): Use targetm.ira_cover_classes
2577         instead of IRA_COVER_CLASSES.
2578         (setup_cover_and_important_classes): Remove IRA_COVER_CLASSES guard.
2579         (setup_class_translate): Likewise.
2580         (setup_reg_class_intersect_union): Likewise.
2581         (find_reg_class_closure): Replace IRA_COVER_CLASSES guard with a
2582         test of targetm.ira_cover_classes.
2583         * opts.c (decode_options): Use targetm.ira_cover_classes instead
2584         of IRA_COVER_CLASSES.
2585         * target-def.h (TARGET_IRA_COVER_CLASSES): Define.
2586         (TARGET_INITIALIZER): Include it.
2587         * targhooks.h (default_ira_cover_classes): Declare.
2588         * targhooks.c (default_ira_cover_classes): New function.
2589
2590 2008-09-19  Bob Wilson  <bob.wilson@acm.org>
2591         
2592         * config/xtensa/xtensa.md (reload<mode>_literal): Handle MEM operands.
2593         
2594 2008-09-19  Ian Lance Taylor  <iant@google.com>
2595
2596         * varasm.c (narrowing_initializer_constant_valid_p): Return
2597         NULL_TREE if ENDTYPE is not an integer.
2598
2599 2008-09-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2600
2601         PR tree-opt/30930
2602         * tree-ssa.c (execute_update_addresses_taken): Also update
2603         DECL_GIMPLE_REG_P for vector and complex types.
2604
2605 2008-09-19  Andrew MacLeod  <amacleod@redhat.com>
2606             Jan Hubicka  <jh@suse.cz>
2607
2608         PR middle-end/37567
2609         * tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually
2610         empty before freeing them.
2611         (find_replaceable_exprs): Move asserts to free_temp_expr_table.
2612
2613 2008-09-18  Bob Wilson  <bob.wilson@acm.org>
2614
2615         * configure.ac: Add HAVE_AS_TLS check for Xtensa.
2616         * config/xtensa/predicates.md (tls_symbol_operand): New.
2617         * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Define.
2618         (TARGET_CANNOT_FORCE_MEM): Define.
2619         (xtensa_tls_symbol_p): New.
2620         (xtensa_emit_move_sequence): Check for and legitimize TLS addresses.
2621         (xtensa_legitimate_address_p): Disallow constant pool TLS references.
2622         (xtensa_tls_module_base): New.
2623         (xtensa_call_tls_desc): New.
2624         (xtensa_legitimize_tls_address): New.
2625         (xtensa_legitimize_address): Handle TLS symbols.
2626         (xtensa_tls_referenced_p_1): New.
2627         (xtensa_tls_referenced_p): New.
2628         (xtensa_output_addr_const_extra): Handle UNSPEC_TPOFF and
2629         UNSPEC_DTPOFF.
2630         (XTENSA_BUILTIN_THREAD_POINTER): New.
2631         (XTENSA_BUILTIN_SET_THREAD_POINTER): New.
2632         (xtensa_init_builtins): Set NOTHROW and READONLY for umulsidi3
2633         builtin.  Add declarations for __builtin_thread_pointer and
2634         __builtin_set_thread_pointer.
2635         (xtensa_fold_builtin): Recognize new builtins.
2636         (xtensa_expand_builtin): Expand new builtins.
2637         * config/xtensa/xtensa.h (XCHAL_HAVE_THREADPTR): Define default value.
2638         (TARGET_THREADPTR): Define.
2639         (HAVE_AS_TLS): Define default value.
2640         (LEGITIMATE_CONSTANT_P): Disallow TLS references.
2641         * config/xtensa/xtensa.md (UNSPEC_TPOFF, UNSPEC_DTPOFF): New.
2642         (UNSPEC_TLS_FUNC, UNSPEC_TLS_ARG, UNSPEC_TLS_CALL, UNSPEC_TP): New.
2643         (UNSPECV_SET_TP): New.
2644         (sym_TPOFF, sym_DTPOFF): New.
2645         (load_tp, set_tp, tls_func, tls_arg, tls_call): New.
2646         * config/xtensa/xtensa-protos.h (xtensa_tls_referenced_p): Declare.
2647         * configure: Regenerated.
2648         
2649 2008-09-18  H.J. Lu  <hongjiu.lu@intel.com>
2650
2651         PR target/37394
2652         * config/ia64/ia64.c (ia64_optimization_options): Move
2653         checking and setting flag_schedule_insns_after_reload and
2654         ia64_flag_schedule_insns2 back to ...
2655         (ia64_override_options): Here.
2656
2657 2008-09-18  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2658
2659         PR rtl-opt/37451
2660         * loop-doloop.c (doloop_modify): New argument zero_extend_p and
2661         zero extend count after the correction to it is done.
2662         (doloop_optimize): Update call to doloop_modify, don't zero extend
2663         count before call.
2664
2665 2008-09-18  Martin Jambor  <mjambor@suse.cz>
2666
2667         * ipa-cp.c (ipcp_estimate_growth): Return 0 instead of false.
2668
2669         * ipa-prop.c: Correct comments.
2670         * ipa-prop.h: Likewise.
2671
2672 2008-09-18  Jan Hubicka  <jh@suse.cz>
2673
2674         PR middle-end/37448
2675         * ipa-reference.c (ipa_reference_local_vars_info_d,
2676         ipa_reference_global_vars_info_d,
2677         ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
2678         ipa_reference_vars_info_t): Move here from ipa-reference.h
2679         (node_duplication_hook_holder, node_removal_hook_holder): New.
2680         (get_reference_vars_info_from_cgraph): Rename to ...
2681         (get_reference_vars_info): ... this one, use cgraph uids.
2682         (get_local_reference_vars_info, get_global_reference_vars_info):
2683         Use cgraph instead of decl.
2684         (ipa_reference_get_read_local, ipa_reference_get_written_local):
2685         Remove.
2686         (ipa_reference_get_read_global, ipa_reference_get_not_read_global
2687         ipa_reference_get_written_global,
2688         ipa_reference_get_not_written_global): Use cgraph argument.
2689         (check_call): Simplify avail check.
2690         (scan_stmt_for_static_refs): Update.
2691         (propagate_bits): Update.
2692         (merge_callee_local_info): Remove.
2693         (init_function_info): Use cgraph nodes.
2694         (clean_function_local_data): Break out from ...
2695         (clean_function): ... here.
2696         (copy_local_bitmap, copy_global_bitmap): New functions.
2697         (duplicate_node_data, remove_node_data): New functions.
2698         (generate_summary): Register hooks; use visibility instead of
2699         master clones.
2700         (propafate): Use cgraph nodes; copy bitmap to each node in cycle.
2701         * ipa-reference.h (ipa_reference_local_vars_info_d,
2702         ipa_reference_global_vars_info_d,
2703         ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
2704         ipa_reference_vars_info_t): Move to ipa-reference.c
2705         (ipa_reference_get_read_local, ipa_reference_get_written_local):
2706         Remove.
2707         (ipa_reference_get_read_global, ipa_reference_get_written_global,
2708         ipa_reference_get_not_read_global,
2709         ipa_reference_get_not_written_global): Update prototype.
2710         * ipa-pure-const.c (funct_state_vec): Turn into VECtor.
2711         (init_state): Remove.
2712         (node_duplication_hook_holder, node_removal_hook_holder): New.
2713         (get_function_state, set_function_state): Use VECtor.
2714         (analyze_function): Check body availability.
2715         (add_new_function): Likewise.
2716         (duplicate_node_data, remove_node_data): New.
2717         (generate_summary): Register hooks; do not care about clones.
2718         (propafate): Do not care about clones; recursive functions are
2719         not looping.
2720         * ipa-utils.c (searchc, ipa_utils_reduced_inorder): Do not skip clones.
2721         * ipa-prop.c (edge_removal_hook_holder, node_removal_hook_holder,
2722         * edge_duplication_hook_holder, node_duplication_hook_holder): Make
2723         static.
2724         * tree-flow.h (function_ann_d): Remove reference_vars_info.
2725         * tree-ssa-opreands.c (add_call_clobber_ops, add_call_read_ops):
2726         Update call of ipa-reference accesors.
2727
2728 2008-09-18  Simon Baldwin  <simonb@google.com>
2729
2730         * c-opts.c (c_common_handle_option): Add handling for
2731         -Wbuiltin-macro-redefined command line option.
2732         * c.opt: Added builtin-macro-redefined option.
2733         * doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined
2734         documentation.
2735
2736 2008-09-18  Richard Guenther  <rguenther@suse.de>
2737
2738         PR tree-optimization/37258
2739         * tree-ssa-sccvn.c (vn_phi_compute_hash): Include the precision
2740         and signedness for integral types.
2741         (vn_phi_eq): Require compatible types.
2742
2743 2008-09-18  Jakub Jelinek  <jakub@redhat.com>
2744
2745         PR debug/34037
2746         * gimplify.c (gimplify_type_sizes): When not optimizing, ensure
2747         TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
2748         VAR_DECL.
2749         * cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
2750         !DECL_IGNORED_P vars in local_decls list for instantiate_decls,
2751         ggc_free other TREE_LIST nodes from that chain.
2752         * function.c (instantiate_decls): Instantiate also DECL_RTL
2753         of vars in cfun->local_decls, free that list afterwards.
2754
2755 2008-09-18  Eric Botcazou  <ebotcazou@adacore.com>
2756
2757         * config/sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): Move to...
2758         * config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): ...here.
2759
2760 2008-09-18  Andrew MacLeod  <amacleod@redhat.com>
2761
2762         * tree-outof-ssa.c (eliminate_useless_phis): Fix formatting.
2763         * tree-flow-.h (struct immediate_use_iterator_d): Fix comment.
2764
2765 2008-09-18  Andrew MacLeod  <amacleod@redhat.com>
2766
2767         PR tree-optimization/37102
2768         * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args
2769         from a node. Check to see if another PHI is dead.
2770         (eliminate_useless_phis): Rename from eliminate_virtual_phis and 
2771         remove real PHIs which have no uses.
2772         (rewrite_out_of_ssa): Call eliminate_useless_phis.
2773
2774 2008-09-18  Richard Guenther  <rguenther@suse.de>
2775
2776         PR middle-end/37284
2777         * tree-cfg.c (remove_useless_stmts_1): Remove
2778         GIMPLE_CHANGE_DYNAMIC_TYPE if not optimizing.
2779
2780 2008-09-18  Nick Clifton  <nickc@redhat.com>
2781
2782         * config/frv/frv.h (IRA_COVER_CLASSES): Define.
2783         (SECONDARY_INPUT_RELOAD_CLASS): Omit unused argument in call
2784         to frv_secondary_reload_class.
2785         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
2786         * config/frv/frv.c (TARGET_SECONDARY_RELOAD): Define.
2787         (frv_secondary_reload_class): Omit unused parameter.
2788         (frv_secondary_reload): New function.  Handle the case when
2789         secondary_reload_class() is called before the reload_(in|out)
2790         _optabs have been initialised.
2791         * config/frv/frv-protos.h (frv_secondary_reload_class): Omit
2792         unused parameter.
2793         * config/frv/frv.md: Define an exclusion set between fr550_m0
2794         and fr550_f0.
2795
2796 2008-09-18  Richard Guenther  <rguenther@suse.de>
2797
2798         PR tree-optimization/37456
2799         * tree-ssa-reassoc.c (build_and_add_sum): If the stmt we
2800         want to insert after ends a BB insert on the single fallthru
2801         outgoing edge.
2802
2803 2008-09-18  Andreas Krebbel  <krebbel1@de.ibm.com>
2804
2805         * doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
2806         Mention -march=z9-109, z9-ec and z10.
2807
2808 2008-09-18  Uros Bizjak  <ubizjak@gmail.com>
2809
2810         PR rtl-optimization/37544
2811         * regrename.c (maybe_mode_change): Exit early when copy_mode
2812         is narrower than orig_mode and narrower than new_mode.
2813
2814 2008-09-18  Alexander Monakov  <amonakov@ispras.ru>
2815
2816         PR middle-end/37499
2817         * sched-int.h (struct _haifa_insn_data): Remove unused field ref_count.
2818
2819         * sched-rgn.c (ref_counts): Remove.
2820         (insn_referenced): New static variable.
2821         (INSN_REF_COUNT): Remove.
2822         (sched_run_compute_dependencies): Use insn_referenced instead of
2823         INSN_REF_COUNT.
2824         (add_branch_dependences): Likewise.  Delete dead assignment.
2825
2826 2008-09-17  Adam Nemet  <anemet@caviumnetworks.com>
2827
2828         * haifa-sched.c (dep_cost_1): Recognize the producer even if the
2829         consumer is an asm.  Add comment why this is important.
2830         (choose_ready): Add comment to the "INSN_CODE (insn) >= 0 ||
2831         recog_memoized (insn) < 0" assert.  Put ENABLE_CHECKING around it.
2832
2833 2008-09-17  Joseph Myers  <joseph@codesourcery.com>
2834
2835         * expr.c (emit_group_store): Do not shift before moving via a
2836         stack slot.
2837
2838 2008-09-17  Eric Botcazou  <ebotcazou@adacore.com>
2839
2840         * varasm.c (initializer_constant_valid_p): Forbid view-conversions
2841         from aggregate to non-aggregate type if the bit pattern is not fully
2842         preserved afterwards.
2843
2844 2008-09-17  Richard Guenther  <rguenther@suse.de>
2845
2846         * tree-cfg.c (verify_types_in_gimple_assign): Rename to ...
2847         (verify_gimple_assign): ... this.  Split into ...
2848         (verify_gimple_assign_unary): ... this,
2849         (verify_gimple_assign_binary): ... that,
2850         (verify_gimple_assign_single): ... and this.
2851         (verify_types_in_gimple_stmt): Call verify_gimple_assign.
2852         Fix GIMPLE_CHANGE_DYNAMIC_TYPE handling.
2853         (verify_types_in_gimple_min_lval): Handle TARGET_MEM_REF.
2854         (verify_types_in_gimple_reference): Be forgiving with
2855         VIEW_CONVERT_EXPRs.
2856         (verify_gimple_phi): Deal with virtual operands.
2857
2858         * tree.def (PREDICT_EXPR): Change to tcc_expression.
2859
2860 2008-09-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2861
2862         * tree.c (get_callee_fndecl): Don't call the language hook.
2863         * langhooks.h (lang_hooks): Remove lang_get_callee_fndecl.
2864         * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): Kill.
2865         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_GET_CALLEE_FNDECL.
2866
2867 2008-09-17  Jakub Jelinek  <jakub@redhat.com>
2868
2869         * tree.c (protected_set_expr_location): Don't unnecessarily
2870         check for error_mark_node.
2871
2872 2008-09-17  Art Haas  <ahaas@impactweather.com>
2873
2874         * ipa-reference.c (analyze_function): Declare step only if
2875         ENABLE_CHECKING is defined.
2876
2877 2008-09-17  Jan Hubicka  <jh@suse.cz>
2878
2879         PR c++/18071
2880         * tree.h (DECL_INLINE): remove.
2881         (DECL_DECLARED_INLINE_P): Update docs.
2882         (DECL_NO_INLINE_WARNING_P): new.
2883         (tree_function_decl): Replace inline_flag by no_inline_warning_flag.
2884         * tree-inline.c (inlinable_function_p): Set DECL_NO_INLINE_WARNING_P.
2885
2886 2008-09-17  Jakub Jelinek  <jakub@redhat.com>
2887             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2888
2889         PR bootstrap/37441
2890         * dwarf2out.c (dwarf2out_do_cfi_asm) [MIPS_DEBUGGING_INFO]: Return
2891         false.
2892
2893 2008-09-17  Jan Hubicka  <jh@suse.cz>
2894
2895         * ipa-reference.c (ipa_obstack): Remove.
2896         (local_info_obstack, global_info_obstack): New.
2897         (add_static_var): We now handle variables only.
2898         (mark_address_taken, mark_load, mark_store): New functions based on ...
2899         (check_operand): ... remove.
2900         (get_asm_stmt_operands): Rename to ...
2901         (check_asm_memory_clobber): ... this. Look only for memory clobber.
2902         (scan_stmt_for_static_refs): Rewrite.
2903         (scan_op_for_static_refs): Rename to ...
2904         (scan_initializer_for_static_refs): do not look for VAR_DECL
2905         initializers; stop recursion on types and decls.
2906         (ipa_init): Use proper obstacks.
2907         (analyze_variable): Use scan_initializer_for_static_refs.
2908         (init_function_info): Use local obstack.
2909         (analyze_function): Simplify.
2910         (add_new_function): We don't need visited_nodes obstack.
2911         (generate_summary): Use proper obstacks; cleanup after propagation.
2912
2913 2008-09-17  Richard Guenther  <rguenther@suse.de>
2914
2915         PR middle-end/37385
2916         PR tree-optimization/37491
2917         * alias.c (get_alias_set): Use the canonical type.
2918         * tree-vect-transform.c (vectorizable_store): Use the type of
2919         the lhs for the vector type.  Adjust checking.
2920         (vectorizable_load): Adjust checking.
2921
2922 2008-09-16  Jakub Jelinek  <jakub@redhat.com>
2923             Adam Nemet  <anemet@caviumnetworks.com>
2924
2925         PR rtl-optimization/37483
2926         * ifcvt.c (noce_try_sign_mask): Use if_info->test_bb instead of
2927         if_info->insn_b's bb as argument to optimize_bb_for_speed_p.
2928         Rearrange code to better match the original comment.  Check
2929         t_unconditional first.  Improve comment.
2930
2931 2008-09-16  Jakub Jelinek  <jakub@redhat.com>
2932
2933         PR c/37529
2934         * gimplify.c (gimplify_expr) <case GOTO_EXPR>: If gimplification of
2935         GOTO_DESTINATION failed, don't create GIMPLE_GOTO.
2936
2937         PR c++/37530
2938         * gimplify.c (gimplify_expr) <case TRY_CATCH_EXPR>: Don't create
2939         GIMPLE_TRY if cleanup sequence is empty.
2940
2941 2008-09-16  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2942
2943         PR middle-end/37263
2944         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Prefer the
2945         eliminate IV if the cost are the same.
2946
2947 2008-09-16  Richard Guenther  <rguenther@suse.de>
2948
2949         PR middle-end/37380
2950         * tree-sra.c (sra_build_assignment): Do not call the gimplifier
2951         if not necessary.
2952
2953 2008-09-16  Richard Guenther  <rguenther@suse.de>
2954
2955         PR tree-optimization/37508
2956         * tree-vrp.c (simplify_truth_ops_using_ranges): Also allow -1.
2957
2958 2008-09-15  Kaz Kojima  <kkojima@gcc.gnu.org>
2959
2960         * config/sh/sh.md (movsf_ie): Fix length for TARGET_SH2A.
2961
2962 2008-09-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2963
2964         * config/rs6000/rs6000.md (floatsidf2): Rewrite PowerPC64 case to
2965         use gen_floatdidf2 directly.
2966         (floatunssidf2): Likewise.
2967         (floatsidf_ppc64_mfpgpr): Remove.
2968         (floatsidf_ppc64): Remove.
2969         (floatunssidf_ppc64): Remove.
2970
2971 2008-09-15  Jakub Jelinek  <jakub@redhat.com>
2972
2973         * ira-color.c (finish_cost_update): Free update_cost_queue_elems
2974         rather than update_cost_queue.
2975
2976         * tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_release
2977         in every call starting with the second one, instead of only when
2978         alias_bitmap_obstack.elements != NULL.
2979
2980         * tree-predcom.c (filter_suitable_components): Free all refs in
2981         act->refs vector before calling release_component.
2982         (add_ref_to_chain): Free ref if not adding it to chain->refs.
2983
2984         * tree-data-ref.c (free_subscripts): Free all subscript objects.
2985
2986         * tree-loop-linear.c (linear_transform_loops): Initialize
2987         lambda_obstack only after calling perfect_loop_nest_depth.
2988         Goto free_and_continue instead of just continue for later failures.
2989
2990         PR middle-end/37479
2991         * doc/invoke.texi: Document -fno-dwarf2-cfi-asm.
2992
2993         PR libmudflap/36397
2994         * tree-mudflap.c (mf_xform_derefs_1): Handle VIEW_CONVERT_EXPR.
2995
2996 2008-09-14  Andreas Schwab  <schwab@suse.de>
2997
2998         * tree-call-cdce.c (check_target_format): Accept Motorola formats.
2999
3000 2008-09-14  Jan Hubicka  <jh@suse.cz>
3001
3002         * invoke.texi (-fconserve-stack): Document.
3003         * opts.c (decode_options): Handle conserve_stack.
3004         * common.opt (fconvserve_stack): New.
3005
3006 2008-09-14  David Edelsohn  <edelsohn@gnu.org>
3007
3008         * config.host: Add x-aix to host_xmake_file.
3009         * config/rs6000/t-aix52: Do not override LDFLAGS.
3010         * config/rs6000/x-aix: New file.
3011
3012 2008-09-14  Andy Hutchinson  <hutchinsonandy@aim.com>
3013
3014         PR target/19636
3015         PR target/24894
3016         PR target/31644
3017         PR target/31786
3018         * config/avr/avr.c (legitimate_address_p): Fix problem where subreg
3019         is not recognized as a valid register usage. Allow REG_X to be used
3020         as a base pointer.
3021         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Remove code that
3022         forces a reload when using a base register.
3023
3024 2008-09-14  Danny Smith  <dannysmith@users.sourceforge.net>
3025
3026         * config/i386/cygming-crtend.c (register_frame_ctor): If
3027         DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame
3028         directly with atexit.
3029         (deregister_frame_ctor): Rename to ...
3030         (deregister_frame_dtor): Use to call __gcc_deregister_frame
3031         if !DEFAULT_USE_CXA_ATEXIT.
3032
3033 2008-09-13  Jan Hubicka  <jh@suse.cz>
3034
3035         * cgraph.c: Include value-prof.h
3036         * Makefile.in (cgraph.o): Add value-prof.h dependency.
3037
3038 2008-09-13  Jan Hubicka  <jh@suse.cz>
3039
3040         PR middle-end/32581
3041         * tree-profile.c (add_abnormal_goto_call_edges): New function.
3042         (tree_gen_interval_profiler, tree_gen_pow2_profiler,
3043         tree_gen_one_value_profiler, tree_gen_average_profiler,
3044         tree_gen_ic_func_profiler, tree_gen_ior_profiler): Use it.
3045
3046 2008-09-13  Jan Hubicka  <jh@suse.cz>
3047
3048         * i386.c (ix86_expand_movmem, ix86_expand_movstr): Avoid processing
3049         too many bytes on misalligned blocks.
3050
3051 2008-09-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3052
3053         * doc/cfg.texi: Fix some typos.
3054         * doc/extend.texi: Likewise.
3055         * doc/install.texi: Likewise.
3056         * doc/invoke.texi: Likewise.
3057         * doc/rtl.texi: Likewise.
3058         * doc/tree-ssa.texi: Likewise.
3059
3060 2008-09-13  Richard Guenther  <rguenther@suse.de>
3061
3062         PR middle-end/30141
3063         * tree-nested.c (finalize_nesting_tree_1): Generate valid
3064         gimple stores for memory rhs.
3065
3066 2008-09-13  H.J. Lu  <hongjiu.lu@intel.com>
3067
3068         PR rtl-optimization/37489
3069         * cse.c (fold_rtx): Don't return const_true_rtx for float
3070         compare if FLOAT_STORE_FLAG_VALUE is undefined.
3071
3072 2008-09-13  Jan Hubicka  <jh@suse.cz>
3073
3074         PR tree-optimization/37392
3075         * tree-inline.c (remap_gimple_stmt): Do not remap return value.
3076
3077 2008-09-13  Martin Jambor  <mjambor@suse.cz>
3078             Jan Hubicka  <jh@suse.cz>
3079
3080         * cgraph.c (free_edges): New variable.
3081         (NEXT_FREE_EDGE): New macro.
3082         (cgraph_free_edge): New function.
3083         (cgraph_remove_edge): Call cgraph_remove_edge_1.
3084         (cgraph_node_remove_callees): Likewise.
3085         (cgraph_node_remove_callers): Likewise.
3086         (cgraph_create_edge): Reuse edges from the free list.  Do not
3087         update uid if doing so.
3088         (cgraph_remove_*_hook): Add free call.
3089
3090 2008-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
3091
3092         * ira-color.c (conflict_allocno_vec): Delete.
3093         (update_cost_queue_elem): New structure.
3094         (update_cost_queue): New variable.
3095         (update_cost_queue_tail): Likewise.
3096         (update_cost_queue_elems): Likewise.
3097         (allocno_update_cost_check): Delete.
3098         (initiate_cost_update): Allocate update_cost_queue_elems
3099         instead of allocno_update_cost_check.
3100         (finish_cost_update): Update the free()s accordingly.
3101         (start_update_cost): New function.
3102         (queue_update_cost): Likewise.
3103         (get_next_update_cost): Likewise.
3104         (update_copy_costs_1): Inline into...
3105         (update_copy_costs): ...here.  Use a queue instead of recursive calls.
3106         Use cover_class instead of ALLOCNO_COVER_CLASS (another_allocno),
3107         once we've established they are equal.  Don't allocate update
3108         costs if there is nothing to add to them.
3109         (update_conflict_hard_regno_costs): Remove ALLOCNO and
3110         DIVISOR arguments.  Use a queue instead of recursive calls;
3111         process all the allocnos in the initial queue, rather than
3112         a single allocno.
3113         (assign_hard_reg): Use queue_update_cost instead of
3114         conflict_allocno_vec.  Queue coalesced allocnos instead
3115         of calling update_conflict_hard_regno_costs for each one.
3116         Just call update_conflict_hard_regno_costs once for the
3117         entire queue.
3118         (ira_color): Remove conflict_allocno_vec handling.
3119
3120 2008-09-12  Sebastian Pop  <sebastian.pop@amd.com>
3121
3122         PR tree-optimization/37484
3123         * graphite.c (scop_record_loop): Use snprintf instead of sprintf.
3124         (save_var_name): Same.
3125         (initialize_cloog_names): Same.
3126         (initialize_cloog_names): Same.
3127
3128 2008-09-12  Sebastian Pop  <sebastian.pop@amd.com>
3129
3130         * tree-scalar-evolution.c (set_instantiated_value): Set
3131         instantiated_below.
3132
3133 2008-09-12  Vladimir Makarov  <vmakarov@redhat.com>
3134
3135         PR rtl-opt/37377
3136
3137         * ira-build.c (common_loop_tree_node_dominator): Remove.
3138         (copy_live_ranges_to_removed_store_destinations): New function.
3139         (regno_top_level_allocno_map): Move to top level from ...
3140         (ira_flattening): ... here.  Use
3141         copy_live_ranges_to_removed_store_destinations.
3142
3143         * ira-emit.c (generate_edge_moves): Fix a comment.
3144
3145 2008-09-12  Anatoly Sokolov  <aesok@post.ru>
3146
3147         PR target/37466
3148         * config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for
3149         scratch register after 'set' pattern.
3150
3151 2008-09-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3152
3153         * emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment
3154         information passed to mark_reg_pointer.
3155         * explow.c (force_reg): Likewise.
3156
3157 2008-09-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3158
3159         * config/spu/spu.c (spu_override_options): Default to -mno-safe-hints
3160         when building for the celledp architecture.
3161
3162 2008-09-12  Richard Guenther  <rguenther@suse.de>
3163
3164         * tree-vrp.c (simplify_truth_ops_using_ranges): Fix types.
3165
3166 2008-09-12  Eric Botcazou  <ebotcazou@adacore.com>
3167
3168         PR rtl-optimization/37424
3169         * ira-color.c (coalesced_pseudo_reg_slot_compare): Untie by comparing
3170         the regnos instead of the addresses.
3171
3172 2008-09-11  Janis Johnson  <janis187@us.ibm.com>
3173
3174         * ginclude/float.h (DEC_EVAL_METHOD): Correct the macro name.
3175
3176 2008-09-11  Richard Guenther  <rguenther@suse.de>
3177
3178         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid
3179         entering the weaker equivalence recording.
3180
3181         * tree-ssa-phiprop.c (propagate_with_phi): Fix tuplification.
3182
3183 2008-09-11  Jeff Law <law@redhat.com>
3184
3185         * reload1.c (alter_reg): Undo the BYTE_BIG_ENDIAN correction performed
3186         by assign_stack_local on the IRA path for stack slot sharing
3187         as well as the non-IRA path.
3188
3189 2008-09-11  Uros Bizjak  <ubizjak@gmail.com>
3190
3191         * config/i386/i386.h: Fix whitespace issues.
3192
3193 2008-09-11  Martin Jambor  <mjambor@suse.cz>
3194
3195         * ipa-prop.h (struct ipa_param_flags): Removed.
3196         (struct ipa_param_descriptor): New structure.
3197         (struct ipa_node_params): ipcp_lattices, param_decls and
3198         param_flags moved to ipa_param_description.
3199         (ipa_get_ith_param): Renamed to ipa_get_param, changed to access
3200         descriptors.  Renamed all users.
3201         (ipa_is_ith_param_modified): Renamed to ipa_is_param_modified,
3202         changed to access descriptors.  Renamed all users.
3203         (ipa_is_ith_param_called): Renamed to ipa_is_param_called, changed
3204         to access descriptors. Renamed all users.
3205         * ipa-cp.c (ipcp_init_cloned_node): Call
3206         ipa_initialize_node_params instead of ipa_count_formal_params and
3207         ipa_create_param_decls_array.
3208         (ipcp_analyze_node): Likewise.
3209         (ipcp_get_ith_lattice): Renamed to ipcp_get_lattice, changed to access
3210         descriptors.  Renamed all users.
3211         (ipcp_initialize_node_lattices): Remove allocation.
3212         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
3213         ipa_initialize_node_params instead of ipa_count_formal_params and
3214         ipa_create_param_decls_array.
3215         * ipa-prop.c (ipa_create_param_decls_array): Renamed to
3216         ipa_populate_param_decls, made static, added parameter info,
3217         renamed mt to node, removed allocation, changed to use
3218         descriptors.
3219         (ipa_count_formal_params): Made static, added parameter info,
3220         renamed mt to node.
3221         (ipa_initialize_node_params): New function.
3222         (ipa_check_stmt_modifications): Changed to use descriptors.
3223         (ipa_detect_param_modifications): Removed allocation, changed to
3224         use descriptors.
3225         (ipa_note_param_call): Changed to use descriptors.
3226         (ipa_analyze_params_uses): Removed allocation.
3227         (ipa_free_node_params_substructures): Changed to use descriptors.
3228         (ipa_edge_duplication_hook): Use the unused attribute.
3229         (ipa_node_duplication_hook): Use the unused attribute, changed to
3230         use descriptors, changed to duplicate descriptors.
3231
3232         * ipa-inline.c (cgraph_mark_inline_edge): New parameter new_edges,
3233         changed all callers.  Call ipa_propagate_indirect_call_infos if doing
3234         indirect inlining.  Made static.
3235         (cgraph_decide_inlining): Freeing ipa-prop structures after inlining
3236         functions called only once.
3237         (cgraph_decide_recursive_inlining): Don't call
3238         ipa_propagate_indirect_call_infos, pass new_edges to
3239         cgraph_mark_inline_edge instead.
3240         (cgraph_decide_inlining_of_small_functions): Don't call
3241         ipa_propagate_indirect_call_infos, pass new_edges to
3242         cgraph_mark_inline_edge instead.
3243         (cgraph_decide_inlining): Don't call
3244         ipa_propagate_indirect_call_infos.
3245         * ipa-prop.c: Check that vectors are allocated.
3246
3247         * ipa-inline.c (cgraph_mark_inline_edge): Returns boolean, true
3248         iff a new cgraph edges have been created.
3249         (cgraph_decide_inlining): New variable redo_always_inline.
3250         Flattening and always_inlining loop until callgraph stabilizes.
3251         * ipa-prop.c (update_call_notes_after_inlining): Returns boolean,
3252         true iff new cgraph edges have been created.
3253         (propagate_info_to_inlined_callees): Likewise.
3254         (ipa_propagate_indirect_call_infos): Likewise.
3255
3256 2008-09-11  Richard Guenther  <rguenther@suse.de>
3257
3258         * tree-vectorizer.c (slpeel_add_loop_guard): Fix types.
3259         (set_prologue_iterations): Likewise.
3260         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
3261         Likewise.
3262         (vect_update_init_of_dr): Likewise.
3263         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Fix
3264         type verification.
3265         * fold-const.c (fold_unary): Do not generate calculations
3266         in sub-types.
3267
3268 2008-09-11  Paolo Bonzini  <bonzini@gnu.org>
3269
3270         * dojump.c (do_jump) [BIT_AND_EXPR]: Move below.  Fall through to
3271         TRUTH_AND_EXPR for boolean (1-bit precision) expressions.
3272         (do_jump) [BIT_IOR_EXPR]: Compile as TRUTH_OR_EXPR.
3273
3274         * tree-flow.h (simplify_stmt_using_ranges): Accept a GSI, return
3275         a bool.
3276         * tree-ssa-propagate.c (substitute_and_fold): Pass a GSI to
3277         VRP's simplify_stmt_using_ranges.  Do simplify_stmt_using_ranges
3278         before finalizing the changes.
3279         * tree-vrp.c (extract_range_from_binary_expr): Add limited support
3280         for BIT_IOR_EXPR.
3281         (simplify_truth_ops_using_ranges): New.
3282         (simplify_div_or_mod_using_ranges, simplify_abs_using_ranges,
3283         simplify_cond_using_ranges, simplify_switch_using_ranges): Return
3284         whether a simplification was made.
3285         (simplify_stmt_using_ranges): Ditto, and accept a GSI.  For GS_ASSIGN,
3286         use a switch statement and also call simplify_truth_ops_using_ranges.
3287
3288 2008-09-11  Jan Hubicka  <jh@suse.cz>
3289
3290         * ggc-common.c (loc_array): Make static.
3291         * dce.c (rest_of_handle_ud_dce): Free worklist.
3292
3293 2008-09-11  Jan Hubicka  <jh@suse.cz>
3294
3295         * cgraph.c (cgraph_release_function_body): Plug memory leak on
3296         ipa_transforms_to_apply and CFG; ggc_free gimple df and struct
3297         function so we are sure we do not dangle it forever.
3298         * function.c (outer_function_chain, find_function_data): Remove.
3299         (function_context_stack): New.
3300         (push_function_context, pop_function_context): Update.
3301         * function.h (struct function): Remove pointer outer.
3302         (outer_function_chain, find_function_data): Remove.
3303         * stmt.c (force_label_rtx): Remove dead call of find_function_data.
3304
3305 2008-09-11  Jan Hubicka  <jh@suse.cz>
3306
3307         PR middle-end/37448
3308         * cgraph.c (cgraph_create_edge): Use !cgraph_edge for sanity check.
3309
3310 2008-09-11  Jan Hubicka  <jh@suse.cz>
3311
3312         * tree-ssa-pre.c (phi_translate_1): Fix memory leak
3313
3314 2008-09-11  Jan Hubicka  <jh@suse.cz>
3315
3316         * tree-ssa.c (redirect_edge_var_map_clear): Fix formatting.
3317         (free_var_map_entry): New function.
3318         (redirect_edge_var_map_destroy): Use it.
3319
3320 2008-09-11  Jan Hubicka  <jh@suse.cz>
3321
3322         PR middle-end/37448
3323         * tree-inline.c (add_lexical_block): Replace with ...
3324         (prepend_lexical_block): ... prepend at begginig.
3325         (remap_blocks): Use it and reverse later.
3326         (expand_call_inline): Use prepend_lexical_block.
3327
3328 2008-09-11  Jan Hubicka  <jh@suse.cz>
3329
3330         * gimplify.c (pop_gimplify_context): Free bind_expr_stack.
3331
3332 2008-09-11  Jan Hubicka  <jh@suse.cz>
3333
3334         * function.c (free_after_compilation): Call insn_locators_free.
3335         * cfglayout.c (insn_locators_free): New function.
3336         * rtl.h (insn_locators_free): Declare.
3337
3338 2008-09-11  Jan Hubicka  <jh@suse.cz>
3339
3340         * ifcvt.c (check_cond_move_block): Make regs argument pointer to
3341         vector pointer.
3342         (cond_move_process_if_block): Update call.
3343
3344 2008-09-11  Jan Hubicka  <jh@suse.cz>
3345
3346         * toplev.c (dump_memory_report): Call dump_vec_loc_statistics.
3347         * vec.c: Include hashtab.h
3348         (vec_descriptor, ptr_hash_entry): New structures.
3349         (vec_desc_hash, vec_ptr_map): New static variables.
3350         (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr, vec_descriptor,
3351         register_overhead, free_overhead, vec_heap_free): New functions.
3352         (vec_gc_o_reserve_1): ggc_free when resizing to 0.
3353         (vec_heap_o_reserve_1): free when resizing to 0; add statistics.
3354         (cmp_statistic, add_statistics, dump_vec_loc_statistics):
3355         New functions.
3356
3357 2008-09-11  Ira Rosen  <irar@il.ibm.com>
3358
3359         PR tree-optimization/37474
3360         * tree-vect-analyze.c (vect_supported_load_permutation_p): Check the
3361         length of load permutation.
3362
3363 2008-09-11  Andreas Schwab  <schwab@suse.de>
3364
3365         * config/m68k/m68k.h (IRA_COVER_CLASSES): Define.
3366
3367 2008-09-11  Jakub Jelinek  <jakub@redhat.com>
3368
3369         PR target/37382
3370         * expmed.c (extract_low_bits): Avoid creating invalid subregs.
3371         * dse.c (find_shift_sequence): Use extract_low_bits instead of
3372         simplify_gen_subreg.
3373
3374 2008-09-11  Ira Rosen  <irar@il.ibm.com>
3375
3376         * tree-vect-transform.c (vectorizable_store): Use the rhs vector type
3377         for alias check.
3378
3379 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
3380
3381         PR middle-end/37338
3382         * gimplify.c (gimplify_body): Call default_rtl_profile.
3383
3384         PR target/36904
3385         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Return NULL
3386         instead of tok->val.node if not expanding to something else.  Handle
3387         intervening CPP_PADDING tokens.
3388         (altivec_categorize_keyword): Remove unneeded comparisons.
3389
3390 2008-09-10  Richard Guenther  <rguenther@suse.de>
3391
3392         * tree-ssa-pre.c (phi_translate_1): Fix memory leak.
3393
3394 2008-09-10  Richard Guenther  <rguenther@suse.de>
3395
3396         PR middle-end/37432
3397         * tree-inline.c (insert_init_stmt): Make sure to not
3398         insert invalid gimple stores.
3399
3400 2008-09-10  Sebastian Pop  <sebastian.pop@amd.com>
3401
3402         PR tree-optimization/37388
3403         * toplev.c (process_options): Fail and warn when graphite
3404         flags are used, but the compiler has not been configured
3405         with graphite libraries.
3406         * graphite.c (graphite_transform_loops): Remove printfs
3407         to dump_file for the case when graphite is not available.
3408
3409 2008-09-10  H.J. Lu  <hongjiu.lu@intel.com>
3410
3411         PR target/37434:
3412         * config/i386/i386.c (ix86_expand_vector_init_interleave): Force
3413         the even element into register.
3414         (ix86_expand_vector_init_general): Don't use
3415         ix86_expand_vector_init_interleave on V16QImode and V8HImode
3416         if we can't move from GPR to SSE register directly.
3417
3418 2008-09-10  Bernd Schmidt  <bernd.schmidt@analog.com>
3419
3420         * config/bfin/bfin.c (workaround_speculation): Correct algorithm to
3421         not lose track of the number of NOPs needed.  Number of NOPs needed
3422         for sync vs. loads workaround was switched; corrected.  Run second
3423         pass for all workarounds.  No NOPs needed after call insns.  Change
3424         second pass to use find_next_insn_start and find_load helpers in order
3425         to properly detect parallel insns.
3426         * config/bfin/bfin.md (cbranch_with_nops): Increase length.
3427
3428 2008-09-10  Jan Hubicka  <jh@suse.cz>
3429
3430         * value-prof.c (gimple_ic): Fix tuplification bug.
3431         * sched-deps.c (sched_insns_conditions_mutex_p): Silence unitialized
3432         var warning.
3433
3434 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
3435
3436         PR tree-optimization/37353
3437         * tree-call-cdce.c (cond_dead_built_in_calls): Remove.
3438         (shrink_wrap_conditional_dead_built_in_calls): Add calls argument, use
3439         calls instead of cond_dead_built_in_calls.
3440         (tree_call_cdce): Add cond_dead_built_in_calls automatic variable,
3441         initalize the vector only before adding first entry.  Use VEC_safe_push
3442         instead of VEC_quick_push.  Pass cond_dead_built_in_calls to
3443         shrink_wrap_conditional_dead_built_in_calls call.
3444
3445 2008-09-10  Ira Rosen  <irar@il.ibm.com>
3446
3447         PR tree-optimization/37385
3448         * tree-vect-transform.c (vect_create_data_ref_ptr): Add a new
3449         argument, and use it as a vector type if not NULL.
3450         (vectorizable_store): Call vect_create_data_ref_ptr with the type of
3451         vectorized rhs.
3452         (vect_setup_realignment): Call vect_create_data_ref_ptr with
3453         additional argument.
3454         (vectorizable_load): Likewise.
3455
3456 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
3457
3458         * config/i386/i386.md (SWI32): New mode iterator.
3459         (jcc_fused_1, jcc_fused_2, jcc_fused_3, jcc_fused_4): Use it instead
3460         of SWI.
3461
3462 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
3463
3464         PR rtl-optimization/37435
3465         * caller-save.c (insert_restore, insert_save): Check the mode by
3466         reg_save_code.
3467
3468 2008-09-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3469
3470         PR other/37265
3471         * dwarf2asm.c (dw2_force_const_mem): Use unstripped symbol name for
3472         splay tree lookup.
3473         (dw2_output_indirect_constant_1): Use unstripped name in symbol
3474         reference.
3475
3476 2008-09-09  Sandra Loosemore  <sandra@codesourcery.com>
3477
3478         * doc/invoke.texi (ARM Options): Correct errors in discussion
3479         of -mfloat-abi, -mhard-float, and -msoft-float.
3480
3481 2008-09-09  Jakub Jelinek  <jakub@redhat.com>
3482             Jan Hubicka  <jh@suse.cz>
3483
3484         PR middle-end/37356
3485         * tree-inline.c (copy_bb): Insert stmt into copy_basic_block before
3486         calling gimple_regimplify_operands on it.  Iterate over all newly
3487         added statements, not just the last one.
3488         (insert_init_stmt): Insert stmt into seq first, then call
3489         gimple_regimplify_operands on it.  Don't create new gimplification
3490         context, nor find referenced vars.
3491
3492 2008-09-09  Jakub Jelinek  <jakub@redhat.com>
3493
3494         PR other/37419
3495         * ipa-prop.h (ipa_propagate_indirect_call_infos): Change last argument
3496         to pointer to vector pointer.
3497         * ipa-prop.c (ipa_propagate_indirect_call_infos,
3498         propagate_info_to_inlined_callees): Likewise.
3499         (update_call_notes_after_inlining): Likewise.  Push new indirect edge
3500         to *new_edges instead of new_edges.  Reread IPA_EDGE_REF after
3501         ipa_check_create_edge_args.
3502         * ipa-inline.c (cgraph_decide_recursive_inlining): Change last
3503         argument to pointer to vector pointer.
3504         (cgraph_decide_inlining_of_small_function): Adjust
3505         cgraph_decide_recursive_inlining and ipa_propagate_indirect_call_infos
3506         calls.
3507
3508         PR target/37438
3509         * config/i386/i386.md (zero_extendqihi2_movzbl): Enable when
3510         optimizing for size, not speed.
3511
3512         PR rtl-optimization/37408
3513         * function.c (assign_parm_find_stack_rtl): Set correct MEM_SIZE
3514         if parm is promoted.
3515
3516 2008-09-09  Sebastian Pop  <sebastian.pop@amd.com>
3517
3518         PR tree-optimization/37375
3519         * tree-scalar-evolution.c (scev_info_str): Add field
3520         instantiated_below.
3521         (new_scev_info_str, eq_scev_info, find_var_scev_info,
3522         set_scalar_evolution, get_scalar_evolution, get_instantiated_value,
3523         set_instantiated_value): Pass instantiated_below.
3524         (analyze_scalar_evolution_1, analyze_scalar_evolution): Update calls
3525         to above functions.
3526         (instantiate_scev_1, instantiate_scev): Pass a basic block above which
3527         the definitions are not instantiated.
3528
3529         * tree-scalar-evolution.h (instantiate_scev): Update declaration.
3530         (block_before_loop): New.
3531         * tree-data-ref.c (dr_analyze_indices): Update uses of
3532         instantiate_scev.
3533         * graphite.c (block_before_scop): New.
3534         (loop_affine_expr, stmt_simple_for_scop_p, harmful_stmt_in_bb): Pass a
3535         basic block, not a loop for determining the parameters.
3536         (scopdet_edge_info, build_scops_1): Do not pass outermost loop in the
3537         scop.
3538         (idx_record_params, find_params_in_bb, find_scop_parameters,
3539         build_loop_iteration_domains, add_conditions_to_domain): Update calls
3540         to instantiate_scev.
3541
3542         * Makefile.in (cfgloopmanip.o): Add missing dependency on TREE_FLOW_H.
3543
3544 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
3545
3546         PR rtl-opt/37333
3547
3548         * ira-build.c (ira_create_allocno): Setup frequency to 0.
3549
3550         * ira-color.c (update_conflict_hard_regno_costs): Remove assert.
3551         Check zero freq and increase if necessary.
3552
3553 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
3554
3555         * ira-conflicts.c (process_regs_for_copy): Check that the hard
3556         regno is in the right range.  Add comments.
3557
3558 2008-09-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3559
3560         * Makefile.in (mips-tfile.o-warn): Don't error out on mips-tfile.c
3561         warnings.
3562         * mips-tfile.c (copy_object): Cast alloca result to int *.
3563         * mips-tdump.c (print_symbol): Cast xmalloc return values to
3564         proper types.
3565         Rename class to sclass.
3566         (read_tfile): Cast read_seek return values to proper types.
3567         Cast xcalloc return value to proper type.
3568
3569 2008-09-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3570
3571         * config/sol2.h (REGISTER_TARGET_PRAGMAS): Move ...
3572         * config/i386/sol2.h (REGISTER_SUBTARGET_PRAGMAS): ... here.
3573         * config/sparc/sol2.h (REGISTER_TARGET_PRAGMAS): ... and here.
3574
3575 2008-09-09  Jan Hubicka  <jh@suse.cz>
3576
3577         * profile.c (is_edge_inconsistent): Add debug output; ignore
3578         negative count on fake edges.
3579         (is_inconsistent): Add debug output.
3580
3581 2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
3582
3583         * haifa-sched.c (advance_one_cycle): Do not print '\n' before printing
3584         dump message.
3585         (choose_ready): When first insn is chosen from the ready list, also
3586         dump it.
3587
3588 2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
3589
3590         PR rtl-optimization/37360
3591         * haifa-sched.c (max_issue): Do not assert that we never issue more
3592         insns than issue_rate.  Add comment.
3593
3594 2008-09-09  Richard Guenther  <rguenther@suse.de>
3595
3596         * tree-cfg.c (verify_types_in_gimple_op): Remove.
3597         (verify_types_in_gimple_call): Rename to ...
3598         (verify_gimple_call): ... this.  Enhance.
3599         (verify_types_in_gimple_cond): Remove.
3600         (verify_gimple_comparison): New function ...
3601         (verify_types_in_gimple_assign): ... split out from here.
3602         (verify_types_in_gimple_return): Rename to ...
3603         (verify_gimple_return): ... this.  Enhance.
3604         (verify_types_in_gimple_switch): Rename to ...
3605         (verify_gimple_switch): ... this.  Enhance.
3606         (verify_gimple_goto): New function.
3607         (verify_types_in_gimple_phi): Rename to ...
3608         (verify_gimple_phi): ... this.  Enhance.
3609         (verify_types_in_gimple_stmt): Adjust calls to helper functions.
3610         Fold in single-statement cases from verify_types_in_gimple_seq_2.
3611         (verify_types_in_gimple_seq_2): Remove cases handled in
3612         verify_types_in_gimple_stmt.
3613
3614 2008-09-09  Bernd Schmidt  <bernd.schmidt@analog.com>
3615
3616         * config/bfin/bfin.c (n_regs_to_save): New static variable.
3617         (push_multiple_operation, pop_multiple_operation): Set it.
3618         (workaround_rts_anomaly): New function.
3619         (workaround_speculation): New function, broken out of bfin_reorg.
3620         (bfin_reorg): Call the new functions.
3621
3622 2008-09-09  Richard Guenther  <rguenther@suse.de>
3623
3624         PR middle-end/37354
3625         PR middle-end/30165
3626         * gimplify.c (gimplify_conversion): Change conversions of
3627         non-register type to VIEW_CONVERT_EXPRs.
3628         (gimplify_addr_expr): If we need to make the operand
3629         addressable make sure to use a properly initialized
3630         temporary for that so it gets a valid gimple store.
3631
3632 2008-09-09  Aldy Hernandez  <aldyh@redhat.com>
3633
3634         * function.h (struct function): Add function_start_locus.
3635         * cfgexpand.c (gimple_expand_cfg): Use it.
3636         * c-parser.c (c_parser_declaration_or_fndef): Set it.
3637
3638 2008-09-09  Richard Guenther  <rguenther@suse.de>
3639
3640         PR tree-optimization/37433
3641         * tree-ssa-ccp.c (ccp_fold): Properly guard folding of
3642         function calls.
3643
3644 2008-09-09  Richard Guenther  <rguenther@suse.de>
3645
3646         PR tree-optimization/37387
3647         * tree-ssa-ifcombine.c (ifcombine_iforif): Convert the name
3648         and bits to a common type.
3649
3650 2008-09-09  Nick Clifton  <nickc@redhat.com>
3651
3652         * config/v850/v850.md (return): Restore frame size restriction.
3653
3654 2008-09-09  Paolo Bonzini  <bonzini@gnu.org>
3655
3656         * c-common.c (c_expand_decl): Remove.
3657         * c-common.h (anon_aggr_type_p): Remove prototype.
3658         (DECL_ANON_UNION_ELEMS): Remove.
3659         * c-objc-common.h (LANG_HOOKS_EXPAND_DECL): Remove.
3660         * c-decl.c (anon_aggr_type_p): Remove.
3661         * langhooks-def.h (LANG_HOOKS_EXPAND_DECL): Remove.
3662         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_EXPAND_DECL.
3663         * langhooks.h (struct lang_hooks): Remove expand_decl.
3664         * langhooks.c (lhd_expand_decl): Remove.
3665         * stmt.c (expand_anon_union_decl): Remove.
3666         * tree.h (expand_anon_union_decl): Remove prototype.
3667
3668 2008-08-09  Andy Hutchinson  <hutchinsonandy@aim.com>
3669
3670         PR target/36609
3671         * config/avr/avr.c (avr_reorg): Create RTL for reversed compare with
3672         zero.
3673         * config/avr/avr.md  (QISI) : Define mode iterator.
3674         (negated_tst<mode>) : Redefine as split using mode macro.
3675         (reversed_tstqi): Define insn as reversed compare with zero.
3676         (reversed_tsthi): Ditto.
3677         (reversed_tstsi): Ditto.
3678
3679 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
3680
3681         PR middle-end/37393
3682         * tree-inline.c (copy_bb): When replacing a gimple_call_va_arg_pack_p
3683         call stmt by new_call, clear gimple_bb on stmt after gsi_replace.
3684
3685         PR middle-end/37414
3686         * predict.c (optimize_function_for_size_p): Don't segfault if
3687         FUN is NULL.
3688         * fold-const.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop,
3689         tree_swap_operands_p): Don't test cfun != NULL before calling
3690         optimize_function_for_s*_p.
3691
3692 2008-09-08  Eric Botcazou  <ebotcazou@adacore.com>
3693
3694         * ira-color.c (ira_reuse_stack_slot): Set slot_num on success at the
3695         end of the search.
3696
3697 2008-09-08  M R Swami Reddy <MR.Swami.Reddy@nsc.com>
3698
3699         * crx/crx.h (IRA_COVER_CLASSES): Define.
3700
3701 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
3702
3703         PR middle-end/37337
3704         * tree-ssa-dom.c (optimize_stmt): Call maybe_clean_or_replace_eh_stmt
3705         even when a stmt has been gimple_modified_p, but after fold_stmt is
3706         not any longer.  Remove unneeded may_have_exposed_new_symbols
3707         initializations.
3708
3709 2008-09-08  Richard Guenther  <rguenther@suse.de>
3710
3711         PR tree-optimization/37421
3712         * tree-ssa-sccvn.c (visit_copy): Make sure to fully
3713         valueize the RHS.
3714
3715 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
3716
3717         PR middle-end/37415
3718         * opts.c (common_handle_option): Handle OPT_ftree_store_ccp.
3719
3720 2008-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3721
3722         PR driver/37409
3723         * pa-hpux.h (LINK_SPEC): Strip -fwhole-program.
3724         * pa-hpux10.h (LINK_SPEC): Likewise.
3725         * pa-hpux11.h (LINK_SPEC): Likewise.
3726
3727 2008-09-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3728
3729         * pa32-regs.h (IRA_COVER_CLASSES): Define.
3730         * pa64-regs.h (IRA_COVER_CLASSES): Define.
3731
3732 2008-09-07  Helge Deller  <deller@gmx.de>
3733
3734         * pa/linux-atomic.c: New file.
3735         * pa/t-linux (LIB2FUNCS_STATIC_EXTRA): Define.
3736         * pa/t-linux64 (LIB2FUNCS_STATIC_EXTRA): Define.
3737
3738 2008-09-07  Richard Guenther  <rguenther@suse.de>
3739             Ira Rosen  <irar@il.ibm.com>
3740
3741         PR tree-optimization/36630
3742         * tree-vect-transform.c (vect_update_ivs_after_vectorizer):
3743         Call STRIP_NOPS before calling evolution_part_in_loop_num.
3744
3745 2008-09-07  Dorit Nuzman  <dorit@il.ibm.com>
3746             Ira Rosen  <irar@il.ibm.com>
3747
3748         PR tree-optimization/35642
3749         * config/rs6000/altivec.md (mulv8hi3): Implement.
3750
3751 2008-09-06  Jeff Law <law@redhat.com>
3752
3753         * h8300/h8300.h (IRA_COVER_CLASSES): Define.
3754
3755 2008-09-06  Jan Hubicka  <jh@suse.cz>
3756
3757         PR tree-optimization/14703
3758         * tree-ssa-live.c (remove_unused_scope_block_p): Remove ignored
3759         declarations.
3760         * passes.c (init_optimization_passes): Recompute inline parameters.
3761
3762 2008-09-06  Richard Sandiford  <rdsandiford@googlemail.com>
3763
3764         * config/mips/mips.c (mips_function_ok_for_sibcall): Check for
3765         DECL being null.
3766
3767 2008-09-06  Richard Sandiford  <rdsandiford@goolemail.com>
3768             Peter Fuerst  <post@pfrst.de>
3769
3770         * doc/invoke.texi: Document -mr10k-cache-barrier=.
3771         * doc/extend.texi: Document __builtin_mips_cache.
3772         * config/mips/mips-ftypes.def: Add a (VOID, SI, CVPOINTER) entry.
3773         * config/mips/mips.opt (mr10k-cache-barrier=): New option.
3774         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
3775         __GCC_HAVE_BUILTIN_MIPS_CACHE.
3776         (TARGET_CACHE_BUILTIN, ISA_HAS_CACHE): New macros.
3777         * config/mips/mips.c (mips_r10k_cache_barrier_setting): New enum.
3778         (set_push_mips_isas): New variable.
3779         (mips_r10k_cache_barrier): New variable.
3780         (cache): New availability predicate.
3781         (mips_builtins): Add an entry for __builtin_mips_cache.
3782         (mips_build_cvpointer_type): New function.
3783         (MIPS_ATYPE_CVPOINTER): New macro.
3784         (mips_prepare_builtin_arg): Only use the insn's mode if the rtx's
3785         mode is VOIDmode.
3786         (r10k_simplified_address_p, r10k_simplify_address)
3787         (r10k_uncached_address_p, r10k_safe_address_p)
3788         (r10k_needs_protection_p_1, r10k_needs_protection_p_store)
3789         (r10k_needs_protection_p_call, r10k_needs_protection_p)
3790         (r10k_insert_cache_barriers): New functions.
3791         (mips_reorg_process_insns): Delete cache barriers after a
3792         branch-likely instruction.
3793         (mips_reorg): Call r10k_insert_cache_barriers.
3794         (mips_handle_option): Handle OPT_mr10k_cache_barrier_.
3795         * config/mips/mips.md (UNSPEC_MIPS_CACHE): New constant.
3796         (UNSPEC_R10K_CACHE_BARRIER): Likewise.
3797         (mips_cache, r10k_cache_barrier): New define_insns.
3798
3799 2008-09-06  Richard Sandiford  <rdsandiford@googlemail.com>
3800
3801         * ira-int.h (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
3802         * ira-color.c (setup_allocno_left_conflicts_num): Use
3803         hard_reg_set_equal_p instead of a comparison with
3804         ira_zero_hard_reg_set.
3805         * ira.c (setup_reg_subclasses): Likewise.
3806         (setup_cover_and_important_classes): Likewise.
3807         (setup_class_translate): Likewise.
3808         (setup_reg_class_intersect_union): Likewise.
3809         (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
3810         (ira_init_once): Don't initialize them.
3811
3812 2008-09-05  Vladimir Makarov  <vmakarov@redhat.com>
3813
3814         * doc/tm.texi (IRA_COVER_CLASSES): Fix a typo.
3815
3816 2008-09-05  Vladimir Makarov  <vmakarov@redhat.com>
3817
3818         * ira-color.c (ira_fast_allocation): Permit global allocno allocation.
3819
3820 2008-09-05  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
3821
3822         Improved branch hints, safe hints, and scheduling.
3823
3824         * haifa-sched.c (sched_emit_insn) : Define.
3825         * sched-int.h (sched_emit_insn) : Add prototype.
3826         * doc/invoke.texi (-mdual-nops, -mhint-max-nops,
3827         -mhint-max-distance -msafe-hints) : Document.
3828         * config/spu/spu.c (spu_flag_var_tracking): New.
3829         (TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_INIT,
3830         TARGET_SCHED_REORDER, TARGET_SCHED_REORDER2,
3831         TARGET_ASM_FILE_START): Define.
3832         (TARGET_SCHED_ADJUST_PRIORITY): Remove.
3833         (STOP_HINT_P, HINTED_P, SCHED_ON_EVEN_P): Define.
3834         (spu_emit_branch_hint): Add blocks argument.
3835         (insert_branch_hints, insert_nops): Remove.
3836         (pad_bb, insert_hbrp_for_ilb_runout, insert_hbrp, in_spu_reorg,
3837         uses_ls_unit, spu_sched_init_global, spu_sched_init,
3838         spu_sched_reorder, asm_file_start): New functions.
3839         (clock_var, spu_sched_length, pipe0_clock,
3840         pipe1_clock, prev_clock_var, prev_priority,
3841         spu_ls_first, prev_ls_clock): New static variables.
3842         * config/spu/spu.h (TARGET_DEFAULT): Add MASK_SAFE_HINTS.
3843         * config/spu.md (iprefetch): Add operand, make it clobber MEM.
3844         (nopn_nv): Add a non-volatile version of nop.
3845         * config/spu/spu.opt (-mdual-nops, -mhint-max-nops,
3846         -mhint-max-distance, -msafe-hints): New options.
3847
3848 2008-09-05  Janis Johnson  <janis187@us.ibm.com>
3849             Samuel Tardieu  <sam@rfc1149.net>
3850
3851         * opts.c (decode_options): Combine nested if statements.
3852
3853         PR target/37283
3854         * opts.c (decode_options): Handle more relationships among
3855         unit-at-a-time, toplevel-reorder, and section-anchors.
3856
3857 2008-09-05  David Daney  <ddaney@avtrex.com>
3858
3859         * doc/install.texi (--enable-reduced-reflection): Document new option.
3860
3861 2008-09-05  Bob Wilson  <bob.wilson@acm.org>
3862
3863         * config/xtensa/predicates.md (nonimmed_operand, mem_operand): Use
3864         constantpool_mem_p.
3865         (constantpool_operand): New.
3866         (move_operand): Disallow sub-word modes for the constant pool.
3867         * config/xtensa/xtensa.c (TARGET_SECONDARY_RELOAD): Define.
3868         (xtensa_secondary_reload_class): Replace with....
3869         (xtensa_secondary_reload): this function.  Remove SIGN_EXTEND check.
3870         Set icode for sub-word reloads from the constant pool.
3871         * config/xtensa/xtensa.h (SECONDARY_INPUT_RELOAD_CLASS): Delete.
3872         (SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
3873         * config/xtensa/xtensa.md (reload<mode>_literal): New.
3874         * config/xtensa/xtensa-protos.h: Update prototypes.
3875
3876 2008-09-05  Joseph Myers  <joseph@codesourcery.com>
3877
3878         * config/mips/mips.h (enum reg_class): Add FRAME_REGS.
3879         (REG_CLASS_NAMES): Update.
3880         (REG_CLASS_CONTENTS): Update.
3881         * config/mips/mips.c (mips_regno_to_class): Use FRAME_REGS instead
3882         of ALL_REGS for regs 77 and 78.
3883         * function.c (instantiate_virtual_regs_in_insn): Assert that
3884         return value of simplify_gen_subreg is not NULL.
3885
3886 2008-09-05  Paolo Bonzini  <bonzini@gnu.org>
3887
3888         * emit-rtl.c (gen_rtvec): Rewrite not using gen_rtvec_v.
3889         (gen_rtvec_v): Fix coding standards.
3890
3891 2008-09-04  Jan Hubicka  <jh@suse.cz>
3892
3893         * i386.c (decide_alg): Be more conservative about optimizing for size.
3894
3895 2008-09-04  Ian Lance Taylor  <iant@google.com>
3896
3897         * varasm.c (narrowing_initializer_constant_valid_p): New
3898         static function.
3899         (initializer_constant_valid_p): Call it.
3900
3901 2008-09-04  Jeff Law  <law@redhat.com>
3902
3903         * fold-const.c (native_encode_real): Fix computation of WORDS.
3904         (native_interpret_real): Likewise.
3905
3906 2008-09-04  Janis Johnson  <janis187@us.ibm.com>
3907
3908         * config/rs6000/t-rs6000: Remove target gt-rs6000.h.
3909
3910 2008-09-04  Vladimir Makarov  <vmakarov@redhat.com>
3911
3912         * ira-conflicts.c (process_regs_for_copy): Check insn to check
3913         that the cost is already taken into account in ira-costs.c
3914
3915         * ira-int.h (ira_debug_copy, ira_debug_copies): New.
3916
3917         * ira-build.c (print_copy, print_copies, ira_debug_copy,
3918         ira_debug_copies): New.
3919         (ira_bulid): Call print_copies.
3920
3921         * doc/tm.texi (IRA_COVER_CLASSES): Fix the description.
3922
3923 2008-09-04  Samuel Tardieu  <sam@rfc1149.net>
3924
3925         PR target/32783
3926         * config/rs6000/rs6000.c (optimization_options): Remove check of
3927         flag_toplevel_order.
3928
3929 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
3930
3931         * config/mips/mips.h (ISA_HAS_SEQ_SNE): New macro.
3932         * config/mips/mips.c (mips_expand_scc): Also expand seq and sne if
3933         second operand is a reg_imm10_operand.
3934         * config/mips/mips.md (*seq_<GPR:mode><GPR2:mode>_seq,
3935         *sne_<GPR:mode><GPR2:mode>_sne): New patterns.
3936         (*seq_<GPR:mode><GPR2:mode>): Rename to
3937         *seq_zero_<GPR:mode><GPR2:mode>.  Don't match if
3938         ISA_HAS_SEQ_SNE.
3939         (*seq_<GPR:mode><GPR2:mode>_mips16): Rename to
3940         *seq_zero_<GPR:mode><GPR2:mode>_mip16.  Don't match if
3941         ISA_HAS_SEQ_SNE.
3942         (*sne_<GPR:mode><GPR2:mode>): Rename to
3943         *sne_zero_<GPR:mode><GPR2:mode>.  Don't match if
3944         ISA_HAS_SEQ_SNE.
3945
3946 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
3947
3948         * config/mips/mips.h (ISA_HAS_EXTS): New macro.
3949         * config/mips/mips.md (*ashr_trunc<mode>): Name the pattern
3950         combining an arithmetic right shift by more than 31 and a
3951         trunction.  Don't match for out-of-range shift amounts.  Set
3952         attribute mode to <MODE>.
3953         (*lshr32_trunc<mode>): Name the pattern combining a logical right
3954         shift by 32 and and a truncation.  Set attribute mode to <MODE>.
3955         (*<optab>_trunc<mode>_exts): New pattern for truncated right
3956         shifts by less than 32.
3957         (extv): Change predicate on first operand to accept registers.
3958         Change predicate of the other operands from immediate_operand to
3959         const_int_operand.  Expand exts when source is a register.
3960         (extzv): Change predicate of the constant operands from
3961         immediate_operand to const_int_operand.
3962         (extzv<mode>): Change predicate of the constant operands from
3963         immediate_operand to const_int_operand and no constraint. Also
3964         remove mode.
3965         (*extzv_trunc<mode>_exts): New pattern.
3966
3967 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
3968
3969         * config/mips/mips.h (ISA_HAS_CINS): New macro.
3970         * config/mips/mips-protos.h (mask_low_and_shift_p,
3971         mask_low_and_shift_len): Declare.
3972         * config/mips/mips.c (mask_low_and_shift_p,
3973         mask_low_and_shift_len): New functions.
3974         (mips_print_operand): Handle new operand prefix "m".
3975         * config/mips/mips.md (*cins<mode>): New pattern.
3976
3977 2008-09-04  Bernd Schmidt  <bernd.schmidt@analog.com>
3978
3979         * config/bfin/bfin.c (gen_one_bundle): Don't create new nops when
3980         optimizing for size.
3981
3982 2008-09-04  Richard Sandiford  <rdsandiford@googlemail.com>
3983
3984         * df-scan.c (df_get_entry_block_def_set): Add STACK_POINTER_REGNUM
3985         regardless of epilogue_completed.
3986
3987 2008-09-04  Vladimir Makarov  <vmakarov@redhat.com>
3988
3989         PR middle-end/37359
3990         * ira-lives.c (process_bb_node_lives): Check setjmp.
3991
3992 2008-09-04  Richard Sandiford  <rdsandiford@googlemail.com>
3993
3994         PR middle-end/37243
3995         * ira-build.c (form_loop_tree): Reverse BB walk.
3996         (create_bb_allocnos): Likewise.
3997         * ira-lives.c (make_regno_born_and_dead, regs_set): Delete.
3998         (mark_reg_store): Rename to...
3999         (mark_ref_live): ...this and take a df_ref argument instead of
4000         note_stores arguments.  Assert that we have a register.
4001         (mark_reg_clobber): Delete.
4002         (def_conflicts_with_inputs_p): New function.
4003         (mark_reg_conflicts): Delete.
4004         (mark_reg_death): Rename to...
4005         (mark_ref_dead): ...this and take a df_ref argument instead of
4006         a register.  Assert that we have a register.
4007         (process_bb_node_lives): Hoist frequency calculation out of
4008         instruction walk.  Convert from a forwards scan to a backwards scan.
4009         Use DF_REF_USES and DF_REF_DEFS instead of register notes and
4010         note_stores.  Remove EH_RETURN_DATA_REGNO and regs_set handling.
4011         (create_allocno_live_ranges): Don't create regs_set.
4012
4013 2008-09-04  Ian Lance Taylor  <iant@google.com>
4014
4015         * rtl.h (LABEL_REF_NONLOCAL_P): Don't check for REG_LABEL_OPERAND
4016         or REG_LABEL_TARGET.
4017         * calls.c (emit_library_call_value_1): Use MEM_P rather than
4018         comparing MODE with MEM.
4019         * gimple.c (gimple_build_predict): Cast END_PREDICTORS before
4020         comparing with GF_PREDICT_TAKEN.
4021         (gimple_get_lhs): Change code to enum gimple_code.
4022         (gimple_set_lhs): Likewise.
4023         * ifcvt.c (noce_process_if_block): Correct GET_MODE to GET_CODE.
4024         * omp-low.c (find_omp_clause): Change kind parameter to enum
4025         omp_clause_code.
4026         * tree-flow.h (find_omp_clause): Update declaration.
4027         * regrename.c (clear_dead_regs): Change kind parameter to enum
4028         reg_note.
4029         * reload1.c (eliminate_regs_1): Use REG_NOTE_KIND rather than
4030         GET_MODE.
4031         * see.c (see_get_extension_data): Change return type to enum
4032         entry_type.  Change UNKNOWN to NOT_RELEVANT, SIGN_EXTEND to
4033         SIGNED_EXTENDED_DEF, ZERO_EXTEND to ZERO_EXTENDED_DEF.
4034         (see_gen_normalized_extension): Change extension_code parameter to
4035         enum entry_type.
4036         (see_seek_pre_extension_expr): Change extension_code to enum
4037         entry_type.
4038         (see_merge_one_def_extension): Likewise.
4039         (see_handle_relevant_defs): Likewise.
4040         (see_handle_relevant_uses): Likewise.
4041         (see_analyze_one_def): Likewise.
4042         * tree-cfg.c (need_fake_edge_p): Compare gimple code with
4043         GIMPLE_ASM rather than ASM_EXPR.
4044         * tree-ssa-alias.c (is_escape_site): Compare gimple code with
4045         GIMPLE_RETURN rather than RETURN_EXPR.
4046         * tree-ssa-ccp.c (likely_value): Change code to enum gimple_code.
4047         (evaluate_stmt): Likewise.
4048         * tree-vect-analyze.c (vect_analyze_operations): Change relevance
4049         to enum vect_relevant.
4050         (vect_mark_stmts_to_be_vectorized): Change assertion to not
4051         compare gimple codes with tree codes.
4052
4053 2008-09-04  Paul Brook  <paul@codesourcery.com>
4054
4055         * config/arm/arm.c (arm_size_rtx_costs): Call cost function.
4056
4057 2008-09-04  Bernd Schmidt  <bernd.schmidt@analog.com>
4058
4059         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Restore a null
4060         pointer check lost in the recent no-unit-at-a-time patch.
4061
4062 2008-09-04  Jan Hubicka  <jh@suse.cz>
4063
4064         PR middle-end/37343
4065         * tree-switch-conversion.c (check_final_bb): Accept only IP
4066         invariants.
4067
4068 2008-09-04  Jan Hubicka  <jh@suse.cz>
4069
4070         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
4071         Break out from ...
4072         (vrp_evaluate_conditional_warnv_with_ops): ... this one.  Add
4073         using_ranges argument.
4074         (vrp_evaluate_conditional): Avoid bogus warning for type range.
4075         (vrp_visit_cond_stmt): Update call of
4076         vrp_evaluate_conditional_warnv_with_ops
4077
4078 2008-09-04  Jan Hubicka  <jh@suse.cz>
4079
4080         PR tree-optimization/37345
4081         PR tree-optimization/37358
4082         PR tree-optimization/37357
4083         * tree.c (build_function_type_skip_args): Build distinct type copy;
4084         set TYPE_CONTEXT.
4085         (build_function_decl_skip_args): Set type of new decl not orig decl;
4086         clear DECL_VINDEX for methods turned into functions.
4087
4088 2008-09-04  Nick Clifton  <nickc@redhat.com>
4089
4090         * configure.ac (HAVE_GAS_LCOMM_WITH_ALIGNMENT): New assembler check.
4091         * configure: Regenerate.
4092         * config.in: Regenerate.
4093         * config/i386/bsd.h (ASM_OUTPUT_ALIGNED_LOCAL): Use .lcomm with an
4094         alignment field, if it is supported.
4095
4096 2008-09-04  Kai Tietz  <kai.tietz@onevision.com>
4097
4098         * config/i386/t-mingw32 (SHLIB_LC): Change order of import
4099         libraries.
4100
4101 2008-09-03  David Edelsohn  <edelsohn@gnu.org>
4102
4103         * config/rs6000/rs6000.c (processor_target_table): Do not
4104         enable VMX for POWER6.
4105
4106 2008-09-03  Anton Blanchard  <anton@samba.org>
4107
4108         * config/rs6000/rs6000.c (rs6000_split_lock_test_and_set): Do not
4109         emit memory barrier before operation.
4110
4111 2008-09-03  John David Anglin  <dave.anglin@nrc.cnrc.gc.ca>
4112
4113         PR testsuite/37325
4114         * config/pa/pa64-hpux.h (ASM_OUTPUT_EXTERNAL_REAL): Call
4115         default_elf_asm_output_external.
4116
4117 2008-09-03  Jeff Law  <law@redhat.com>
4118
4119         * h8300.c (expand_a_shift): Avoid invalid RTL sharing.
4120
4121 2008-09-03  Richard Henderson  <rth@redhat.com>
4122
4123         * config/alpha/alpha.c (alpha_split_lock_test_and_set): Move
4124         memory barrier to below the test-and-set.
4125         (alpha_split_lock_test_and_set_12): Likewise.
4126
4127 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
4128
4129         PR rtl-opt/37243
4130
4131         * ira-int.h (ira_loop_tree_node): Rename mentioned_allocnos to
4132         all_allocnos.
4133
4134         * ira-color.c (print_loop_title): Use all_allocnos.
4135         (color_pass): Ditto.  Don't add border_allocnos.  Check that
4136         subloop allocno in the correspdoning bitmap all_allocnos.
4137
4138         * ira-emit.c (change_loop): Use all_allocnos.
4139
4140         * ira-build.c (create_loop_tree_nodes, finish_loop_tree_node): Ditto.
4141         (ira_create_allocno): Set up all_allocnos bit for the created allocno.
4142         (create_cap_allocno): Remove setting mentioned_allocnos.
4143         (create_insn_allocnos): Ditto.
4144         (remove_unnecessary_allocnos): Use all_allocnos.
4145         (check_allocno_creation): Check that allocnos are in the
4146         corresponding bitmap all_allocnos.
4147
4148 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
4149
4150         PR rtl-opt/37243
4151
4152         * ira-conflicts.c (REG_SUBREG_P, go_through_subreg): New.
4153         (process_regs_for_copy): Process subregs.  Refine check when cost
4154         is taken into account in ira-costs.c.
4155         (process_reg_shuffles): Use REG_SUBREG_P.
4156         (add_insn_allocno_copies): Ditto.  Ignore modes.
4157
4158         * ira-color.c (conflict_allocno_vec): New.
4159         (COST_HOP_DIVISOR): New macro.
4160         (update_copy_costs_1): Use it.
4161         (update_conflict_hard_regno_costs): New function.
4162         (assign_hard_reg): Use it.
4163         (ira_color): Allocate and free conflict_allocno_vec.
4164
4165 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
4166
4167         PR rtl-opt/37296
4168
4169         * ira-int.h (ira_sort_insn_chain): Remove.
4170
4171         * ira.c (basic_block_order_nums, chain_insn_order,
4172         chain_freq_compare, chain_bb_compare, ira_sort_insn_chain): Remove.
4173         (ira): Don't call ira_sort_insn_chain.
4174
4175         * reload1.c (reload): Don't call ira_sort_insn_chain.
4176
4177 2008-09-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4178
4179         PR middle-end/37293
4180         * cgraphunit.c (update_call_expr): Remove eh regions from statements
4181         which become non throw.
4182         (cgraph_function_versioning): Also clear DECL_WEAK.  Call
4183         update_call_expr after updating the flags on the decl.
4184
4185 2008-09-03  Jan Hubicka  <jh@suse.cz>
4186
4187         PR tree-optimization/37315
4188         * cgraph.c (cgraph_create_edge): Use gimple_has_body_p.
4189         * cgraphunit.c (verify_cgraph_node): drop gimple_body check.
4190         (cgraph_analyze_functions): Use node->analyzed
4191         (cgraph_mark_functions_to_output): Likewise.
4192         (cgraph_expand_function): All functions can be released after
4193         expanding.
4194         (cgraph_optimize): Use gimple_has_body_p.
4195         * ipa-inline.c (cgraph_clone_inlined_nodes): Use analyzed flag.
4196         (cgraph_decide_inlining_incrementally): Likewise.
4197         (inline_transform): Inline transform.
4198         * tree-inline.c (initialize_cfun): Do now shallow copy structure;
4199         copy fields needed.
4200         (inlinable_function_p): Drop gimple_body check.
4201         (expand_call_inline): Use gimple_has_body_p.
4202         * gimple.c (gimple_has_body_p): New.
4203         * gimple.h (gimple_has_body_p): Add prototype.
4204         * tree-cfg.c (execute_build_cfg): Remove gimple_body.
4205         (dump_function_to_file): Use gimple_has_body_p check.
4206
4207 2008-09-03  Jakub Jelinek  <jakub@redhat.com>
4208
4209         PR c++/37346
4210         * gimple.h (gimple_has_substatements): GIMPLE_OMP_CRITICAL has
4211         substatements.
4212         * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_CRITICAL.
4213
4214 2008-09-03  Bernd Schmidt  <bernd.schmidt@analog.com>
4215
4216         From Michael Frysinger  <michael.frysinger@analog.com>
4217         * config/bfin/bfin.c (bfin_cpus[]): Add 0.1 for bf522, bf523, bf524,
4218         bf525, bf526, bf527, bf542, bf544, bf547, bf548, and bf549.  Add 0.2
4219         for bf538.
4220
4221 2008-09-03  Hari Sandanagobalane  <hariharan@picochip.com>
4222
4223         Add picoChip port.
4224         * doc/extend.texi: Document picoChip builtin functions.
4225         * doc/invoke.texi: Document picoChip options.
4226         * doc/contrib.texi: Add picoChip contribution.
4227         * doc/md.texi: Document picoChip constraints.
4228         * config.gcc: Add picochip-*-*.
4229         * config/picochip/: Add new port.
4230
4231 2008-09-03  Richard Guenther  <rguenther@suse.de>
4232
4233         PR tree-optimization/37328
4234         * tree-sra.c (sra_build_assignment): Gimplify properly.
4235         (generate_copy_inout): Take the correct stmt as definition,
4236         remove bogus assert.
4237
4238 2008-09-03  Bernd Schmidt  <bernd.schmidt@analog.com>
4239
4240         * config/bfin/bfin.c (bfin_expand_prologue): Honour no_stack_limit
4241         attributes.
4242
4243         From Michael Frysinger  <michael.frysinger@analog.com>
4244         * config/bfin/bfin.c (bfin_handle_option): Remove BF561 warning.
4245
4246 2008-09-03 Danny Smith  <dannysmith@usrs.sourceforge.net>
4247
4248         * gthr-win32.h (CONST_CAST2): Really make sure CONST_CAST2 is defined.
4249         (__gthread_setspecific): Revert 2008-08-31 change to
4250         __GTHREAD_HIDE_W32API case.  Apply it to !__GTHREAD_HIDE_W32API case.
4251
4252 2008-09-02  Aldy Hernandez  <aldyh@redhat.com>
4253
4254         * diagnostic.c (error_at): New.
4255         * toplev.h (error_at): New prototype.
4256         * c-typeck.c (build_array_ref): Call error_at instead of error.
4257         Pass location to pedwarn.
4258
4259 2008-09-02  Adam Nemet  <anemet@caviumnetworks.com>
4260
4261         * sel-sched.c (sel_hard_regno_rename_ok): Mark arguments unused.
4262
4263 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
4264
4265         * dwarf2out.c (tree_add_const_value_attribute): Only handle
4266         VAR_DECL and CONST_DECL.
4267
4268 2008-09-02  H.J. Lu  <hongjiu.lu@intel.com>
4269             Jakub Jelinek  <jakub@redhat.com>
4270
4271         * config/i386/i386.c (X86_64_VARARGS_SIZE): Removed.
4272         (setup_incoming_varargs_64): Assume cum != NULL. Set/check
4273         ix86_varargs_gpr_size and ix86_varargs_fpr_size.  Use
4274         ix86_varargs_gpr_size instead of X86_64_REGPARM_MAX.
4275         Don't set ix86_save_varrargs_registers.
4276         (ix86_setup_incoming_varargs): Assume cum != NULL.
4277         (ix86_va_start): Check ix86_varargs_gpr_size and
4278         ix86_varargs_fpr_size instead of cfun->va_list_gpr_size and
4279         cfun->va_list_fpr_size, respectively.  Subtract 8*X86_64_REGPARM_MAX
4280         from frame pointer if ix86_varargs_gpr_size == 0.
4281         (ix86_compute_frame_layout): Updated.
4282         * config/i386/i386.h (ix86_save_varrargs_registers): Removed.
4283         (ix86_varargs_gpr_size): Define.
4284         (ix86_varargs_fpr_size): Likewise.
4285         (machine_function): Remove save_varrargs_registers.
4286         Add varargs_gpr_size and varargs_fpr_size.
4287
4288 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
4289
4290         * config/alpha/alpha.c (va_list_skip_additions,
4291         alpha_stdarg_optimize_hook, alpha_gimplify_va_arg_1): Tuplify.
4292         (alpha_gimplify_va_arg): Call unshare_expr on second use of
4293         offset_field.
4294
4295         PR tree-optimization/36766
4296         * tree-cfg.c (gimple_purge_all_dead_eh_edges): Do nothing
4297         for already removed basic blocks.
4298
4299         PR target/36332
4300         * real.c (real_maxval): Clear a lower bit to make real_maxval
4301         match get_max_float for IBM long double format.
4302
4303 2008-09-02  Andreas Schwab  <schwab@suse.de>
4304
4305         * configure.ac: Use m4_quote to quote the expansion of m4_do.
4306         * configure: Regenerate.
4307
4308 2008-09-02  Richard Sandiford  <rdsandiford@googlemail.com>
4309
4310         * simplify-rtx.c (simplify_binary_operation_1): Check for CONST,
4311         SYMBOL_REF and LABEL_REF when applying plus_constant, instead of
4312         checking for a non-VOID CONSTANT_P.
4313
4314 2008-09-02  Jan Hubicka  <jh@suse.cz>
4315
4316         * predict.c (pass_strip_predict_hints): Avoid bugs dump file.
4317         * expmed.c (expand_divmod): Fix test of smod_pow2_cheap and
4318         sdiv_pow2_cheap
4319
4320 2008-09-02  H.J. Lu  <hongjiu.lu@intel.com>
4321
4322         * expr.c (emit_group_store): Don't assert stack temp mode size.
4323
4324 2008-09-02  Sebastian Pop  <sebastian.pop@amd.com>
4325             Tobias Grosser  <grosser@fim.uni-passau.de>
4326             Jan Sjodin  <jan.sjodin@amd.com>
4327             Harsha Jagasia  <harsha.jagasia@amd.com>
4328             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
4329             Konrad Trifunovic  <konrad.trifunovic@inria.fr>
4330             Adrien Eliche  <aeliche@isty.uvsq.fr>
4331
4332         Merge from graphite branch.
4333         * graphite.c: New.
4334         * graphite.h: New.
4335         * tree-loop-linear.c (perfect_loop_nest_depth): Export.
4336         * doc/invoke.texi (-floop-block, -floop-interchange,
4337         -floop-strip-mine): Document new flags.
4338         * tree-into-ssa.c (gimple_vec): Moved...
4339         * tree-loop-distribution.c (rdg_component): Moved...
4340         * cfgloopmanip.c: Include tree-flow.h.
4341         (update_dominators_in_loop): New.
4342         (create_empty_if_region_on_edge): New.
4343         (create_empty_loop_on_edge): New.
4344         (loopify): Use update_dominators_in_loop.
4345         * tree-pass.h (pass_graphite_transforms): Declared.
4346         * configure: Regenerate.
4347         * tree-phinodes.c (make_phi_node): Export.
4348         (add_phi_node_to_bb): New, split from create_phi_node.
4349         * tree-chrec.c (for_each_scev_op): New.
4350         * tree-chrec.h (for_each_scev_op): Declared.
4351         * tree-ssa-loop-ivopts.c (get_phi_with_result): New.
4352         (remove_statement): Call get_phi_with_result.
4353         * config.in (HAVE_cloog): Undef.
4354         * gdbinit.in (pgg): New.
4355         * timevar.def (TV_GRAPHITE_TRANSFORMS): New.
4356         * tree-ssa-loop.c (graphite_transforms): New.
4357         (gate_graphite_transforms): New.
4358         (pass_graphite_transforms): New.
4359         * configure.ac (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC,
4360         HAVE_cloog): Defined.
4361         * tree-vectorizer.c (rename_variables_in_bb): Export.
4362         * tree-data-ref.c (dr_may_alias_p): Export.
4363         (stmt_simple_memref_p): New.
4364         (find_data_references_in_stmt): Export.
4365         (find_data_references_in_loop): Export.
4366         (create_rdg_edge_for_ddr): Initialize RDGE_RELATION.
4367         (create_rdg_edges_for_scalar): Initialize RDGE_RELATION.
4368         (create_rdg_vertices): Export.
4369         (build_empty_rdg): New.
4370         (build_rdg): Call build_empty_rdg.  Free dependence_relations.
4371         * tree-data-ref.h (rdg_component): ... here.
4372         (scop_p): New.
4373         (struct data_reference): Add a field scop.
4374         (DR_SCOP): New.
4375         (find_data_references_in_loop): Declared.
4376         (find_data_references_in_stmt): Declared.
4377         (create_rdg_vertices): Declared.
4378         (dr_may_alias_p): Declared.
4379         (stmt_simple_memref_p): Declared.
4380         (struct rdg_edge): Add a field ddr_p relation.
4381         (build_empty_rdg): Declared.
4382         * lambda.h (lambda_matrix): Declare a VEC of.
4383         (find_induction_var_from_exit_cond): Declared.
4384         (lambda_vector_compare): New.
4385         * common.opt (fgraphite, floop-strip-mine,
4386         floop-interchange, floop-block): New flags.
4387         * lambda-code.c (find_induction_var_from_exit_cond): Export.
4388         * cfgloop.c (is_loop_exit): New.
4389         * cfgloop.h (is_loop_exit): Declared.
4390         (create_empty_if_region_on_edge): Declared.
4391         (create_empty_loop_on_edge): Declared.
4392         * tree-flow.h (add_phi_node_to_bb): Declared.
4393         (make_phi_node): Declared.
4394         (rename_variables_in_bb): Declared.
4395         (perfect_loop_nest_depth): Declared.
4396         (graphite_transform_loops): Declared.
4397         * Makefile.in (cfgloopmanip.o): Depend on TREE_FLOW_H.
4398         (graphite.o-warn): Add -Wno-error.
4399         (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): Declared.
4400         (LIBS): Add GMPLIBS, CLOOGLIBS, PPLLIBS.
4401         (INCLUDES): Add PPLINC, CLOOGINC.
4402         (OBJS-common): Add graphite.o.
4403         (graphite.o): Add rule.
4404         * gimple.h (gimple_vec): ... here.
4405         * tree-cfg.c (print_loops): Start printing at ENTRY_BLOCK_PTR.
4406         * passes.c (init_optimization_passes): Schedule
4407         pass_graphite_transforms.
4408
4409 2008-09-02  Samuel Tardieu  <sam@rfc1149.net>
4410
4411         PR target/37283
4412         * opts.c (decode_options): Move processing of -fno-unit-at-a-time
4413         and -fno-toplevel-reorder after handle_options.
4414
4415 2008-09-02  Paul Brook  <paul@codesourcery.com>
4416
4417         * config/arm/arm.c (arm_tune_cortex_a9): Define.
4418         (arm_override_options): Set arm_tune_cortex_a9.
4419         (arm_rtx_costs_1): Make register shifts more expensive on Cortex-A9.
4420         (arm_issue_rate): Handle cortexa9.
4421         * config/arm/arm.h (arm_tune_cortex_a9): Declare.
4422         * config/arm/arm-cores.def: Add cortex-a9.
4423         * config/arm/arm-tune.md: Regenerate.
4424         * config/arm/arm.md: Include cortex-a9.md.
4425         (generic_sched, generic_vfp): Add cortexa9.
4426         * config/arm/cortex-a9.md: New file.
4427
4428 2008-09-02  Richard Guenther  <rguenther@suse.de>
4429
4430         PR tree-optimization/37327
4431         * tree-vrp.c (register_new_assert_for): Make sure to not have
4432         TREE_OVERFLOW set on the bound.
4433
4434 2008-09-02  Alexander Monakov  <amonakov@ispras.ru>
4435
4436         Fixed typo in date of the 2008-09-01 MOVE_RATIO commit.
4437
4438         * config/ia64/ia64.opt (msched-ar-data-spec): Default to 1.
4439         * config/ia64/ia64.c (ia64_set_sched_flags): Always initialize
4440         spec_info->mask.
4441
4442 2008-09-02  Victor Kaplansky  <victork@il.ibm.com>
4443
4444         * gcc/config/spu/spu.md (divdf3): Removed.
4445
4446 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
4447
4448         PR tree-optimization/37095
4449         * cgraph.c (cgraph_node): When creating new cgraph node after
4450         assembler_name_hash has been populated, record it in the hash
4451         table.
4452
4453 2008-09-01  Paul Brook  <paul@codesourcery.com>
4454
4455         * doc/invoke.texi: Document -mword-relocations.
4456         * config/arm/uclinux-elf.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
4457         * config/arm/symbian.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
4458         * config/arm/vxworks.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
4459         * config/arm/arm.c (arm_split_constant): Use arm_emit_movpair.
4460         (arm_rtx_costs_1, arm_size_rtx_costs): Handle HIGH and LO_SUM.
4461         (arm_emit_movpair): New function.
4462         (arm_print_operand <c>): Handle sybolic addresses.
4463         * config/arm/arm.h (TARGET_USE_MOVT): Define.
4464         (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
4465         * config/arm/arm-protos.h (arm_emit_movpair): Add prototype.
4466         * config/arm/arm.opt: Add -mword-relocations.
4467         * config/arm/arm.md (movsi): Use arm_emit_movpair.
4468         (arm_movt, arm_movw): New.
4469
4470 2008-09-01  Paul Brook  <paul@codesourcery.com>
4471
4472         * config/arm/arm.c (arm_override_options): Set arm_abi earlier.
4473         Allow Interworking on ARMv4 EABI based targets.
4474         * config/arm/bpabi.h (TARGET_FIX_V4BX_SPEC): Define.
4475         (SUBTARGET_EXTRA_ASM_SPEC, LINK_SPEC): Add TARGET_FIX_V4BX_SPEC.
4476
4477 2008-09-01  Paul Brook  <paul@codesourcery.com>
4478
4479         * config/arm/thumb2.md (thumb2_negscc): Match the correct operand for
4480         optimized LT0 test.  Remove optimization for GT.
4481
4482 2008-09-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4483
4484         * pa64-hpux.h (LIB_SPEC): Link against librt when building static
4485         openmp applications.
4486         * pa-hpux11.h (LIB_SPEC): Likewise.
4487
4488         * ira.c (setup_eliminable_regset): Only declare i if ELIMINABLE_REGS
4489         is defined.
4490
4491 2008-09-01  Jan Hubicka  <jh@suse.cz>
4492
4493         * predict.c (maybe_hot_count_p, maybe_hot_edge_p): When profile is
4494         present, use only counts; when guessed use only frequencies.
4495         (estimate_bb_frequencies): Use function_frequency.
4496         * profile.c (compute_branch_probabilities): Exit early when
4497         profile reading failed. Set profile_status.
4498         (branch_prob): Do not set profile_status.
4499
4500 2008-09-01  Aldy Hernandez  <aldyh@redhat.com>
4501
4502         * tree.c (protected_set_expr_location): New.
4503         * tree.h (protected_set_expr_location): New prototype.
4504         * c-tree.h (build_array_ref): Add argument.
4505         (parser_build_unary_op): Same.
4506         * c-typeck.c (build_indirect_ref): Handle new location argument.
4507         (build_array_ref): Same.
4508         (parser_build_unary_op): Same.
4509         * gimplify.c (gimplify_asm_expr): Set input_location before calling
4510         error.
4511         * c-omp.c (c_finish_omp_atomic): Pass location when calling
4512         build_indirect_ref.
4513         * c-common.c (finish_label_address_expr): Handle new location argument.
4514         * c-common.h (build_indirect_ref): Add argument.
4515         (finish_label_address_expr): Same.
4516         * c-parser.c (c_parser_unary_expression): Pass location to build
4517         functions.
4518         (c_parser_postfix_expression): Same.
4519
4520 2008-09-01  Paul Brook  <paul@codesourcery.com>
4521
4522         * config/arm/arm.md: Include cortex-r4f.md.
4523         (attr fpu): Update type list.
4524         (attr type): Add fcpys, ffariths, ffarithd, fadds, faddd, fconsts,
4525         fconstd, fcmps and fcmpd.
4526         (attr tune_cortexr4): Define.
4527         (attr generic_sched, attr generic_vfp): Use tune_cortexr4.
4528         * config/arm/vfp.md: Document fcpys, ffariths, ffarithd, fadds, faddd,
4529         fconsts, fconstd, fcmps and fcmpd.  Use them in insn patterns.
4530         * config/arm/arm.c (arm_issue_rate): Add cortexr4f.
4531         * config/arm/arm1020e.md (v10_ffarith, v10_farith): Use new insn types.
4532         * config/arm/cortex-a8-neon.md (cortex_a8_vfp_add_sub,
4533         cortex_a8_vfp_farith: Ditto.
4534         * config/arm/vfp11.md (vfp_ffarith, vfp_farith): Ditto.
4535         * config/arm/cortex-r4.md: Use tune_cortexr4.
4536         * config/arm/cortex-r4f.md: New file.
4537
4538 2008-09-01  Richard Guenther  <rguenther@suse.de>
4539
4540         PR tree-optimization/37305
4541         * tree-ssa-ccp.c (ccp_fold): Do not set TREE_OVERFLOW on
4542         the result of constant conversions.
4543         (fold_gimple_assign): Likewise.
4544
4545 2008-09-01  Andrey Belevantsev  <abel@ispras.ru>
4546
4547         * sel-sched-ir.c (cmp_v_in_regset_pool): Surround with
4548         #ifdef ENABLE_CHECKING.
4549
4550 2008-09-01  Andrey Belevantsev  <abel@ispras.ru>
4551
4552         * sel-sched-dump.c: Surround with #ifdef INSN_SCHEDULING.
4553         * sched-int.h (print_insn, print_pattern, print_value): Declare also
4554         when !INSN_SCHEDULING.
4555
4556 2008-09-01  Andreas Schwab  <schwab@suse.de>
4557
4558         * config/ia64/ia64.c (TARGET_ADDRESS_COST): Update.
4559
4560 2008-09-01  Paul Brook  <paul@codesourcery.com>
4561
4562         * config/arm/arm.c (arm_no_early_mul_dep): Handle multiply-subtract.
4563
4564 2008-09-01  Jan Hubicka  <jh@suse.cz>
4565
4566         * config/spu/spu.c (spu_expand_block_move) Update call of MOVE_RATIO.
4567
4568         * expr.c (MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P, SET_BY_PIECES_P):
4569         Pass speed operand.
4570         * expr.h (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Update.
4571         * gimplify.c (gimplify_init_constructor): Add speed operand.
4572         * tree-sra.c (decide_block_copy): Likewise.
4573         * tree-inline.c (estimate_move_cost): Likewise.
4574         * config/alpha/alpha.h (MOVE_RATIO): Update.
4575         * config/frv/frv.c (MOVE_RATIO): Update.
4576         * config/spu/spu.h (MOVE_RATIO): Update.
4577         * config/sparc/sparc.h (MOVE_RATIO): Update.
4578         * config/i386/i386.h (MOVE_RATIO, CLEAR_RATIO): Update.
4579         * config/m68hc11/m68hc11.h (MOVE_RATIO): Update.
4580         * config/cris/cris.h (MOVE_RATIO): Update.
4581         * config/mn10300/mn10300.h (MOVE_RATIO): Update.
4582         * config/arm/arm.h (MOVE_RATIO): Update.
4583         * config/pa/pa.md: Update uses of MOVE_RATIO
4584         * config/pa/pa.h (MOVE_RATIO): Update.
4585         * config/mips/mips.h (MOVE_RATIO, MOVE_BY_PIECES,
4586         CLEAR_RATIO, SET_RATIO): Update.
4587         * config/h8300/h8300.h (MOVE_RATIO): Update.
4588         * config/v850/v850.h (MOVE_RATIO): Update.
4589         * config/bfin/bfin.h (MOVE_RATIO): Update.
4590
4591 2008-08-31  Andrey Belevantsev  <abel@ispras.ru>
4592             Dmitry Melnik  <dm@ispras.ru>
4593             Dmitry Zhurikhin  <zhur@ispras.ru>
4594             Alexander Monakov  <amonakov@ispras.ru>
4595             Maxim Kuvyrkov  <maxim@codesourcery.com>
4596
4597         * sel-sched.h, sel-sched-dump.h, sel-sched-ir.h, sel-sched.c,
4598         sel-sched-dump.c, sel-sched-ir.c: New files.
4599         * Makefile.in (OBJS-common): Add selective scheduling object files.
4600         (sel-sched.o, sel-sched-dump.o, sel-sched-ir.o): New entries.
4601         (SEL_SCHED_IR_H, SEL_SCHED_DUMP_H): New entries.
4602         (sched-vis.o): Add dependency on $(INSN_ATTR_H).
4603         * cfghooks.h (get_cfg_hooks, set_cfg_hooks): New prototypes.
4604         * cfghooks.c (get_cfg_hooks, set_cfg_hooks): New functions.
4605         (make_forwarder_block): Update loop latch if we have redirected
4606         the loop latch edge.
4607         * cfgloop.c (get_loop_body_in_custom_order): New function.
4608         * cfgloop.h (LOOPS_HAVE_FALLTHRU_PREHEADERS): New enum field.
4609         (CP_FALLTHRU_PREHEADERS): Likewise.
4610         (get_loop_body_in_custom_order): Declare.
4611         * cfgloopmanip.c (has_preds_from_loop): New.
4612         (create_preheader): Honor CP_FALLTHRU_PREHEADERS.
4613         Assert that the preheader edge will be fall thru when it is set.
4614         * common.opt (fsel-sched-bookkeeping, fsel-sched-pipelining,
4615         fsel-sched-pipelining-outer-loops, fsel-sched-renaming,
4616         fsel-sched-substitution, fselective-scheduling): New flags.
4617         * cse.c (hash_rtx_cb): New.
4618         (hash_rtx): Use it.
4619         * dbgcnt.def (sel_sched_cnt, sel_sched_region_cnt,
4620         sel_sched_insn_cnt): New counters.
4621         * final.c (compute_alignments): Export.  Free dominance
4622         info after loop_optimizer_finalize.
4623         * genattr.c (main): Output maximal_insn_latency prototype.
4624         * genautomata.c (output_default_latencies): New.
4625         Factor its code from ...
4626         (output_internal_insn_latency_func): ... here.
4627         (output_internal_maximal_insn_latency_func): New.
4628         (output_maximal_insn_latency_func): New.
4629         * hard-reg-set.h (UHOST_BITS_PER_WIDE_INT): Define unconditionally.
4630         (struct hard_reg_set_iterator): New.
4631         (hard_reg_set_iter_init, hard_reg_set_iter_set,
4632         hard_reg_set_iter_next): New functions.
4633         (EXECUTE_IF_SET_IN_HARD_REG_SET): New macro.
4634         * lists.c (remove_free_INSN_LIST_node,
4635         remove_free_EXPR_LIST_node): New functions.
4636         * loop-init.c (loop_optimizer_init): When
4637         LOOPS_HAVE_FALLTHRU_PREHEADERS, set CP_FALLTHRU_PREHEADERS when
4638         calling create_preheaders.
4639         (loop_optimizer_finalize): Do not verify flow info after reload.
4640         * recog.c (validate_replace_rtx_1): New parameter simplify.
4641         Default it to true.  Update all uses.  Factor out simplifying
4642         code to ...
4643         (simplify_while_replacing): ... this new function.
4644         (validate_replace_rtx_part,
4645         validate_replace_rtx_part_nosimplify): New.
4646         * recog.h (validate_replace_rtx_part,
4647         validate_replace_rtx_part_nosimplify): Declare.
4648         * rtl.c (rtx_equal_p_cb): New.
4649         (rtx_equal_p): Use it.
4650         * rtl.h (rtx_equal_p_cb, hash_rtx_cb): Declare.
4651         (remove_free_INSN_LIST_NODE, remove_free_EXPR_LIST_node,
4652         debug_bb_n_slim, debug_bb_slim,    print_rtl_slim): Likewise.
4653         * vecprim.h: Add a vector type for unsigned int.
4654         * haifa-sched.c: Include vecprim.h and cfgloop.h.
4655         (issue_rate, sched_verbose_param, note_list, dfa_state_size,
4656         ready_try, cycle_issued_insns, spec_info): Make global.
4657         (readyp): Initialize.
4658         (dfa_lookahead): New global variable.
4659         (old_max_uid, old_last_basic_block): Remove.
4660         (h_i_d): Make it a vector.
4661         (INSN_TICK, INTER_TICK, QUEUE_INDEX, INSN_COST): Make them work
4662         through HID macro.
4663         (after_recovery, adding_bb_to_current_region_p):
4664         New variables to handle correct insertion of the recovery code.
4665         (struct ready_list): Move declaration to sched-int.h.
4666         (rgn_n_insns): Removed.
4667         (rtx_vec_t): Move to sched-int.h.
4668         (find_insn_reg_weight): Remove.
4669         (find_insn_reg_weight1): Rename to find_insn_reg_weight.
4670         (haifa_init_h_i_d, haifa_finish_h_i_d):
4671         New functions to initialize / finalize haifa instruction data.
4672         (extend_h_i_d, init_h_i_d): Rewrite.
4673         (unlink_other_notes): Move logic to add_to_note_list.  Handle
4674         selective scheduler.
4675         (ready_lastpos, ready_element, ready_sort, reemit_notes,
4676         find_fallthru_edge): Make global, remove static prototypes.
4677         (max_issue): Make global.  Add privileged_n and state parameters.  Use
4678         them.
4679         (extend_global, extend_all): Removed.
4680         (init_before_recovery): Add new param.  Fix the handling of the case
4681         when we insert a recovery code before the EXIT which has a predecessor
4682         with a fallthrough edge to it.
4683         (create_recovery_block): Make global.  Rename to
4684         sched_create_recovery_block.  Update.
4685         (change_pattern): Rename to sched_change_pattern.  Make global.
4686         (speculate_insn): Rename to sched_speculate_insn.  Make global.
4687         Split haifa-specific functionality into ...
4688         (haifa_change_pattern): New static function.
4689         (sched_extend_bb): New static function.
4690         (sched_init_bbs): New function.
4691         (current_sched_info): Change type to struct haifa_sched_info.
4692         (insn_cost): Adjust for selective scheduling.
4693         (dep_cost_1): New function.  Move logic from ...
4694         (dep_cost): ... here.
4695         (dep_cost): Use dep_cost_1.
4696         (contributes_to_priority_p): Use sched_deps_info instead of
4697         current_sched_info.
4698         (priority): Adjust to work with selective scheduling.  Process the
4699         corner case when all dependencies don't contribute to priority.
4700         (rank_for_schedule): Use ds_weak instead of dep_weak.
4701         (advance_state): New function.  Move logic from ...
4702         (advance_one_cycle): ... here.
4703         (add_to_note_list, concat_note_lists): New functions.
4704         (rm_other_notes): Make static.  Adjust for selective scheduling.
4705         (remove_notes, restore_other_notes): New functions.
4706         (move_insn): Add two arguments.  Update assert.  Don't call
4707         reemit_notes.
4708         (choose_ready): Remove lookahead variable, use dfa_lookahead.
4709         Remove more_issue, max_points.  Move the code to initialize
4710         max_lookahead_tries to max_issue.
4711         (schedule_block): Remove rgn_n_insns1 parameter.  Don't allocate
4712         ready.  Adjust use of move_insn.  Call restore_other_notes.
4713         (luid): Remove.
4714         (sched_init, sched_finish): Move Haifa-specific initialization/
4715         finalization to ...
4716         (haifa_sched_init, haifa_sched_finish): ... respectively.
4717         New functions.
4718         (setup_sched_dump): New function.
4719         (haifa_init_only_bb): New static function.
4720         (haifa_speculate_insn): New static function.
4721         (try_ready): Use haifa_* instead of speculate_insn and change_pattern.
4722         (extend_ready, extend_all): Remove.
4723         (sched_extend_ready_list, sched_finish_ready_list): New functions.
4724         (create_check_block_twin, add_to_speculative_block): Use
4725         haifa_insns_init instead of extend_global.  Update to use new
4726         initialization functions.  Change parameter.  Factor out code from
4727         create_check_block_twin to ...
4728         (sched_create_recovery_edges) ... this new function.
4729         (add_block): Remove.
4730         (sched_scan_info): New.
4731         (extend_bb): Use sched_scan_info.
4732         (init_bb, extend_insn, init_insn, init_insns_in_bb, sched_scan): New
4733         static functions for walking through scheduling region.
4734         (sched_luids): New vector variable to replace uid_to_luid.
4735         (luids_extend_insn): New function.
4736         (sched_max_luid): New variable.
4737         (luids_init_insn): New function.
4738         (sched_init_luids, sched_finish_luids): New functions.
4739         (insn_luid): New debug function.
4740         (sched_extend_target): New function.
4741         (haifa_init_insn): New static function.
4742         (sched_init_only_bb): New hook.
4743         (sched_split_block): New hook.
4744         (sched_split_block_1): New function.
4745         (sched_create_empty_bb): New hook.
4746         (sched_create_empty_bb_1): New function.
4747         (common_sched_info, ready): New global variables.
4748         (current_sched_info_var): Remove.
4749         (move_block_after_check): Use common_sched_info.
4750         (haifa_luid_for_non_insn): New static function.
4751         (init_before_recovery): Use haifa_init_only_bb instead of add_block.
4752         (increase_insn_priority): New.
4753         * modulo-sched.c: (issue_rate): Remove static declaration.
4754         (sms_sched_info): Change type to haifa_sched_info.
4755         (sms_sched_deps_info, sms_common_sched_info): New variables.
4756         (setup_sched_infos): New.
4757         (sms_schedule): Initialize them.  Call haifa_sched_init/finish.
4758         Do not call regstat_free_calls_crossed.
4759         (sms_print_insn): Use const_rtx.
4760         * params.def (PARAM_MAX_PIPELINE_REGION_BLOCKS,
4761         PARAM_MAX_PIPELINE_REGION_INSNS, PARAM_SELSCHED_MAX_LOOKAHEAD,
4762         PARAM_SELSCHED_MAX_SCHED_TIMES, PARAM_SELSCHED_INSNS_TO_RENAME,
4763         PARAM_SCHED_MEM_TRUE_DEP_COST): New.
4764         * sched-deps.c (sched_deps_info): New.  Update all relevant uses of
4765         current_sched_info to use it.
4766         (enum reg_pending_barrier_mode): Move to sched-int.h.
4767         (h_d_i_d): New variable. Initialize to NULL.
4768         ({true, output, anti, spec, forward}_dependency_cache): Initialize
4769         to NULL.
4770         (estimate_dep_weak): Remove static declaration.
4771         (sched_has_condition_p): New function.  Adjust users of
4772         sched_get_condition to use it instead.
4773         (conditions_mutex_p): Add arguments indicating which conditions are
4774         reversed.  Use them.
4775         (sched_get_condition_with_rev): Rename from sched_get_condition.  Add
4776         argument to indicate whether returned condition is reversed.  Do not
4777         generate new rtx when condition should be reversed; indicate it by
4778         setting new argument instead.
4779         (add_dependence_list_and_free): Add deps parameter.
4780         Update all users.  Do not free dependence list when
4781         deps context is readonly.
4782         (add_insn_mem_dependence, flush_pending_lists): Adjust for readonly
4783         contexts.
4784         (remove_from_dependence_list, remove_from_both_dependence_lists): New.
4785         (remove_from_deps): New. Use the above functions.
4786         (cur_insn, can_start_lhs_rhs_p): New static variables.
4787         (add_or_update_back_dep_1): Initialize present_dep_type.
4788         (haifa_start_insn, haifa_finish_insn, haifa_note_reg_set,
4789         haifa_note_reg_clobber, haifa_note_reg_use, haifa_note_mem_dep,
4790         haifa_note_dep): New functions implementing dependence hooks for
4791         the Haifa scheduler.
4792         (note_reg_use, note_reg_set, note_reg_clobber, note_mem_dep,
4793         note_dep): New functions.
4794         (ds_to_dt, extend_deps_reg_info, maybe_extend_reg_info_p): New
4795         functions.
4796         (init_deps): Initialize last_reg_pending_barrier and deps->readonly.
4797         (free_deps): Initialize deps->reg_last.
4798         (sched_analyze_reg, sched_analyze_1, sched_analyze_2,
4799         sched_analyze_insn): Update to use dependency hooks infrastructure
4800         and readonly contexts.
4801         (deps_analyze_insn): New function.  Move part of logic from ...
4802         (sched_analyze): ... here.  Also move some logic to ...
4803         (deps_start_bb): ... here.  New function.
4804         (add_forw_dep, delete_forw_dep): Guard use of INSN_DEP_COUNT with
4805         sel_sched_p.
4806         (sched_deps_init): New function.  Move code from ...
4807         (init_dependency_caches): ... here.  Remove.
4808         (init_deps_data_vector): New.
4809         (sched_deps_finish): New function.  Move code from ...
4810         (free_dependency_caches): ... here.  Remove.
4811         (init_deps_global, finish_deps_global): Adjust for use with
4812         selective scheduling.
4813         (get_dep_weak): Move logic to ...
4814         (get_dep_weak_1): New function.
4815         (ds_merge): Move logic to ...
4816         (ds_merge_1): New static function.
4817         (ds_full_merge, ds_max_merge, ds_get_speculation_types): New functions.
4818         (ds_get_max_dep_weak): New function.
4819         * sched-ebb.c (sched_n_insns): Rename to sched_rgn_n_insns.
4820         (n_insns): Rename to rgn_n_insns.
4821         (debug_ebb_dependencies): New function.
4822         (init_ready_list): Use it.
4823         (begin_schedule_ready): Use sched_init_only_bb.
4824         (ebb_print_insn): Indicate when an insn starts a new cycle.
4825         (contributes_to_priority, compute_jump_reg_dependencies,
4826         add_remove_insn, fix_recovery_cfg): Add ebb_ prefix to function names.
4827         (add_block1): Remove to ebb_add_block.
4828         (ebb_sched_deps_info, ebb_common_sched_info): New variables.
4829         (schedule_ebb): Initialize them.  Use remove_notes instead of
4830         rm_other_notes.  Use haifa_local_init/finish.
4831         (schedule_ebbs): Use haifa_sched_init/finish.
4832         * sched-int.h: Include vecprim.h, remove rtl.h.
4833         (struct ready_list): Delete declaration.
4834         (sched_verbose_param, enum sched_pass_id_t,
4835         bb_vec_t, insn_vec_t, rtx_vec_t): New.
4836         (struct sched_scan_info_def): New structure.
4837         (sched_scan_info, sched_scan, sched_init_bbs,
4838         sched_init_luids, sched_finish_luids, sched_extend_target,
4839         haifa_init_h_i_d, haifa_finish_h_i_d): Declare.
4840         (struct common_sched_info_def): New.
4841         (common_sched_info, haifa_common_sched_info,
4842         sched_emulate_haifa_p): Declare.
4843         (sel_sched_p): New.
4844         (sched_luids): Declare.
4845         (INSN_LUID, LUID_BY_UID, SET_INSN_LUID): Declare.
4846         (sched_max_luid, insn_luid): Declare.
4847         (note_list, remove_notes, restore_other_notes, bb_note): Declare.
4848         (sched_insns_init, sched_insns_finish, xrecalloc, reemit_notes,
4849         print_insn, print_pattern, print_value, haifa_classify_insn,
4850         sel_find_rgns, sel_mark_hard_insn, dfa_state_size, advance_state,
4851         setup_sched_dump, sched_init, sched_finish,
4852         sel_insn_is_speculation_check): Export.
4853         (struct ready_list): Move from haifa-sched.c.
4854         (ready_try, ready, max_issue): Export.
4855         (ebb_compute_jump_reg_dependencies, find_fallthru_edge,
4856         sched_init_only_bb, sched_split_block, sched_split_block_1,
4857         sched_create_empty_bb, sched_create_empty_bb_1,
4858         sched_create_recovery_block, sched_create_recovery_edges): Export.
4859         (enum reg_pending_barrier_mode): Export.
4860         (struct deps): New fields `last_reg_pending_barrier' and `readonly'.
4861         (deps_t): New.
4862         (struct sched_info): Rename to haifa_sched_info.  Use const_rtx for
4863         print_insn field.  Move add_block and fix_recovery_cfg to
4864         common_sched_info_def.  Move compute_jump_reg_dependencies,
4865         use_cselib  ...
4866         (struct sched_deps_info_def): ... this new structure.
4867         (sched_deps_info): Declare.
4868         (struct spec_info_def): Remove weakness_cutoff, add
4869         data_weakness_cutoff and control_weakness_cutoff.
4870         (spec_info): Declare.
4871         (struct _haifa_deps_insn_data): Split from haifa_insn_data.  Add
4872         dep_count field.
4873         (struct haifa_insn_data): Rename to struct _haifa_insn_data.
4874         (haifa_insn_data_def, haifa_insn_data_t): New typedefs.
4875         (current_sched_info): Change type to struct haifa_sched_info.
4876         (haifa_deps_insn_data_def, haifa_deps_insn_data_t): New typedefs.
4877         (h_d_i_d): New variable.
4878         (HDID): New accessor macro.
4879         (h_i_d): Change type to VEC (haifa_insn_data_def, heap) *.
4880         (HID): New accessor macro.  Rewrite h_i_d accessor macros through HID
4881         and HDID.
4882         (IS_SPECULATION_CHECK_P): Update for selective scheduler.
4883         (enum SCHED_FLAGS): Update for selective scheduler.
4884         (enum SPEC_SCHED_FLAGS): New flag SEL_SCHED_SPEC_DONT_CHECK_CONTROL.
4885         (init_dependency_caches, free_dependency_caches): Delete declarations.
4886         (deps_analyze_insn, remove_from_deps, get_dep_weak_1,
4887         estimate_dep_weak, ds_full_merge, ds_max_merge, ds_weak,
4888         ds_get_speculation_types, ds_get_max_dep_weak, sched_deps_init,
4889         sched_deps_finish, haifa_note_reg_set, haifa_note_reg_use,
4890         haifa_note_reg_clobber, maybe_extend_reg_info_p, deps_start_bb,
4891         ds_to_dt): Export.
4892         (rm_other_notes): Delete declaration.
4893         (schedule_block): Remove one argument.
4894         (cycle_issued_insns, issue_rate, dfa_lookahead, ready_sort,
4895         ready_element, ready_lastpos, sched_extend_ready_list,
4896         sched_finish_ready_list, sched_change_pattern, sched_speculate_insn,
4897         concat_note_lists): Export.
4898         (struct region): Move from sched-rgn.h.
4899         (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
4900         RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
4901         BLOCK_TO_BB, CONTAINING_RGN): Export.
4902         (ebb_head, BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB, INSN_BB): Likewise.
4903         (current_nr_blocks, current_blocks, target_bb): Likewise.
4904         (dep_cost_1, sched_is_disabled_for_current_region_p, sched_rgn_init,
4905         sched_rgn_finish, rgn_setup_region, sched_rgn_compute_dependencies,
4906         sched_rgn_local_init, extend_regions,
4907         rgn_make_new_region_out_of_new_block, compute_priorities,
4908         debug_rgn_dependencies, free_rgn_deps, contributes_to_priority,
4909         extend_rgns, deps_join rgn_setup_common_sched_info,
4910         rgn_setup_sched_infos, debug_regions, debug_region, dump_region_dot,
4911         dump_region_dot_file, haifa_sched_init, haifa_sched_finish): Export.
4912         (get_rgn_sched_max_insns_priority, sel_add_to_insn_priority,
4913         increase_insn_priority): Likewise.
4914         * sched-rgn.c: Include sel-sched.h.
4915         (ref_counts): New static variable.  Use it ...
4916         (INSN_REF_COUNT): ... here.  Rewrite and move closer to uses.
4917         (FED_BY_SPEC_LOAD, IS_LOAD_INSN): Rewrite to use HID accessor macro.
4918         (sched_is_disabled_for_current_region_p): Delete static declaration.
4919         (struct region): Move to sched-int.h.
4920         (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
4921         ebb_head): Define and initialize.
4922         (RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
4923         BLOCK_TO_BB, CONTAINING_RGN, debug_regions, extend_regions,
4924         BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB): Move to
4925         sched-int.h.
4926         (find_single_block_region): Add new argument to indicate that EBB
4927         regions should be constructed.
4928         (debug_live): Delete declaration.
4929         (current_nr_blocks, current_blocks, target_bb):
4930         Remove static qualifiers.
4931         (compute_dom_prob_ps, check_live, update_live, set_spec_fed): Delete
4932         declaration.
4933         (init_regions): Delete declaration.
4934         (debug_region, bb_in_region_p, dump_region_dot_file, dump_region_dot,
4935         rgn_estimate_number_of_insns): New.
4936         (too_large): Use estimate_number_of_insns.
4937         (haifa_find_rgns): New. Move the code from ...
4938         (find_rgns): ... here.  Call either sel_find_rgns or haifa_find_rgns.
4939         (free_trg_info): New.
4940         (compute_trg_info): Allocate candidate tables here instead of ...
4941         (init_ready_list): ... here.
4942         (rgn_print_insn): Use const_rtx.
4943         (contributes_to_priority, extend_regions): Delete static declaration.
4944         (add_remove_insn, fix_recovery_cfg): Add rgn_ to function names.
4945         (add_block1): Rename to rgn_add_block.
4946         (debug_rgn_dependencies): Delete static qualifier.
4947         (new_ready): Use sched_deps_info.  Simplify.
4948         (rgn_common_sched_info, rgn_const_sched_deps_info,
4949         rgn_const_sel_sched_deps_info, rgn_sched_deps_info, rgn_sched_info):
4950         New.
4951         (region_sched_info): Rename to rgn_const_sched_info.
4952         (deps_join): New, extracted from ...
4953         (propagate_deps): ... here.
4954         (compute_block_dependences, debug_dependencies): Update for selective
4955         scheduling.
4956         (free_rgn_deps, compute_priorities): New functions.
4957         (sched_rgn_init, sched_rgn_finish, rgn_setup_region,
4958         sched_rgn_compute_dependencies): New functions.
4959         (schedule_region): Use them.
4960         (sched_rgn_local_init, sched_rgn_local_free, sched_rgn_local_finish,
4961         rgn_setup_common_sched_info, rgn_setup_sched_infos):
4962         New functions.
4963         (schedule_insns): Call new functions that were split out.
4964         (rgn_make_new_region_out_of_new_block): New.
4965         (get_rgn_sched_max_insns_priority): New.
4966         (rest_of_handle_sched, rest_of_handle_sched2): Call selective
4967         scheduling when appropriate.
4968         * sched-vis.c: Include insn-attr.h.
4969         (print_value, print_pattern): Make global.
4970         (print_rtl_slim, debug_bb_slim, debug_bb_n_slim): New functions.
4971         * target-def.h (TARGET_SCHED_ADJUST_COST_2,
4972         TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
4973         TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
4974         TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_CHECKED_DS,
4975         TARGET_SCHED_GET_INSN_SPEC_DS, TARGET_SCHED_SKIP_RTX_P): New target
4976         hooks.  Initialize them to 0.
4977         (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
4978         * target.h (struct gcc_target): Add them.  Rename gen_check field to
4979         gen_spec_check.
4980         * flags.h (sel_sched_switch_set): Declare.
4981         * opts.c (sel_sched_switch_set): New variable.
4982         (decode_options): Unset flag_sel_sched_pipelining_outer_loops if
4983         pipelining is disabled from command line.
4984         (common_handle_option): Record whether selective scheduling is
4985         requested from command line.
4986         * doc/invoke.texi: Document new flags and parameters.
4987         * doc/tm.texi: Document new target hooks.
4988         * config/ia64/ia64.c (TARGET_SCHED_GEN_SPEC_CHECK): Define to
4989         ia64_gen_check.
4990         (dfa_state_size): Do not declare locally.
4991         * config/ia64/ia64.opt (msched-ar-data-spec): Default to 0.
4992         * config/rs6000/rs6000.c (rs6000_init_sched_context,
4993         rs6000_alloc_sched_context, rs6000_set_sched_context,
4994         rs6000_free_sched_context): New functions.
4995         (struct _rs6000_sched_context): New.
4996         (rs6000_sched_reorder2): Do not modify INSN_PRIORITY for selective
4997         scheduling.
4998         (rs6000_sched_finish): Do not run for selective scheduling.
4999
5000 2008-08-31  Jan Hubicka  <jh@suse.cz>
5001
5002         * frv.c (frv_rtx_costs): Update forward declaration.
5003         * spu.c (spu_rtx_costs): Likewise.
5004         * pdp11.c: Include df.h
5005         (pdp11_output_function_epilogue): Use df_set_regs_ever_live.
5006         * m68hc11.c (m68hc11_gen_highpart): Fix call of gen_rtx_SUBREG.
5007         (m68hc11_rtx_costs_1): Fix call of rtx_cost.
5008         * iq2000.c (iq2000_address_cost): Add speed argument.
5009         (iq2000_rtx_costs): Likewise.
5010         * mn10300.c (mn10300_address_cost_1): Remove speed argument;
5011         update call of mn10300_address_cost.
5012         * mcore.c: Include df.h
5013         (mcore_rtx_costs): Update prototype.
5014         * score3.c: Include df.h
5015         (score3_rtx_costs): Remove speed argument.
5016         * score7.c: Include df.h
5017         (score7_address_cost): Remove speed argument.
5018         * score-protos.h (score_address_cost): Update prototype.
5019         * score.c: Include df.h
5020         (score_rtx_costs): Update call of costs functions.
5021         * v850.c (v850_rtx_costs): Add bool argument.
5022
5023 2008-08-31  Hans-Peter Nilsson  <hp@axis.com>
5024
5025         * config/cris/cris.c (cris_rtx_costs): Correct call to rtx_costs.
5026
5027 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
5028
5029         * gthr-win32.h (__gthread_setspecific): Use CONST_CAST2.
5030         * config/i386/gthr-win32.c (__gthread_setspecific): Same.
5031
5032 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
5033
5034         * mkmap-flat.awk: Add option pe_dll.
5035         * config/i386/t-cygming (SHLIB_LINK): Support building libgcc_s.
5036         * config/i386/t-cygwin (SHLIB_LC): Add.
5037         * config/i386/t-mingw32 (SHLIB_LC): Add.
5038         * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): New.
5039         (SUBTARGET_EXTRA_SPECS): Use SHARED_LIBGCC_UNDEFS_SPEC.
5040         (LINK_SPEC): Support libgcc_s.
5041         (LIBGCC_SPEC): Support libgcc_s.
5042         (LIBGCC_SONAME): New.
5043
5044 2008-08-31  Jan Hubicka  <jh@suse.cz>
5045
5046         * predict.c (maybe_hot_bb_p, maybe_hot_edge_p): Previous commit
5047         mistakely had old version of patch.
5048
5049         * ipa-cp.c (ipcp_need_original_clone_p): Remove.
5050         (ipcp_estimate_growth): New.
5051         (ipcp_insert_stage): Use ipcp_estimate_growth.
5052         * profile.c (branch_prob): When reading failed, do not consider
5053         profile as read.
5054
5055 2008-08-31  Jan Hubicka  <jh@suse.cz>
5056
5057         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Check that
5058         loop is optimized for speed.
5059
5060 2008-08-31  Richard Guenther  <rguenther@suse.de>
5061
5062         PR middle-end/37289
5063         * fold-const.c (fold_binary): Retain conversions in folding
5064         ~A + 1 to -A.
5065
5066 2008-08-31  Jan Hubicka  <jh@suse.cz>
5067
5068         * postreload-gcse.c (eliminate_partially_redundant_loads):
5069         Use optimize_bb_for_size_p.
5070         * predict.c (maybe_hot_frequency_p): Make inline.
5071         (maybe_hot_count_p): Break out from ...
5072         (maybe_hot_bb_p): ... this one.
5073         (maybe_hot_edge_p): Simplify.
5074         * basic-block.h (probably_cold_bb_p): Remove.
5075
5076 2008-08-31  Jakub Jelinek  <jakub@redhat.com>
5077
5078         PR target/37168
5079         * config/rs6000/rs6000-protos.h (const_vector_elt_as_int): Add
5080         prototype.
5081         * config/rs6000/rs6000.c (const_vector_elt_as_int): No longer static.
5082         * config/rs6000/altivec.md (easy_vector_constant_add_self splitter):
5083         Also split V4SFmode.
5084         * config/rs6000/predicates.md (easy_vector_constant_add_self): Handle
5085         vector float modes.
5086
5087 2008-08-31  Jan Hubicka  <jh@suse.cz>
5088
5089         * predict.c (PROB_VERY_LIKELY): Make small enough so things
5090         become cold.
5091         * predict.def (PRED_NORETURN_CALL, PRED_COLD_CALL): Use it.
5092
5093 2008-08-31  Jakub Jelinek  <jakub@redhat.com>
5094
5095         PR debug/37287
5096         * dwarf2out.c (gen_namespace_die): For DECL_EXTERNAL modules don't
5097         add source coords.
5098
5099         * dwarf2out.c (native_encode_initializer): Subtract min_index for
5100         non-range array index.  Handle VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
5101
5102 2008-08-31  Jan Hubicka  <jh@suse.cz>
5103
5104         * sparc.h (BRANCH_COST): Fix macro definition.
5105         * avr.c (avr_operand_rtx_cost): Add speed argument.
5106         (avr_rtx_costs): Update calls of avr_operand_rtx_cost.
5107
5108 2008-08-31  Richard Guenther  <rguenther@suse.de>
5109
5110         * tree-cfg.c (verify_types_in_gimple_assign): Dump mismatched
5111         types instead of operands.  Re-instantiate verifying of
5112         binary expression operands.
5113
5114 2008-08-30  Jan Hubicka  <jh@suse.cz>
5115
5116         * fwprop.c (should_replace_address): Add speed attribute.
5117         (PR_OPTIMIZE_FOR_SPEED): New flag.
5118         (propagate_rtx_1): Use it.
5119         (propagate_rtx): Set it.
5120         (try_fwprop_subst): Update call of rtx_costs.
5121         (forward_propagate_and_simplify): LIkewise.
5122         * hooks.c (hook_int_rtx_bool_0): New
5123         (hook_bool_rtx_int_int_intp_false): Replace by ...
5124         (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
5125         * hooks.h (hook_int_rtx_bool_0): New
5126         (hook_bool_rtx_int_int_intp_false): Replace by ...
5127         (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
5128         * optabs.c (avoid_expensive_constant): UPdate call of rtx_cost.
5129         (prepare_cmp_insn): UPdate call of rtx_cost.
5130         * postreload.c (reload_cse_simplify_set): Update call of rtx_cost.
5131         (reload_cse_simplify_operands): Update call of rtx_cost.
5132         (reload_cse_move2add): call of rtx_cost.
5133         * target.h (struct gcc_target): Update rtx_costs and address_costs.
5134         * rtlanal.c (rtx_cost): Add speed argument.
5135         (address_cost): Add speed argument
5136         (default_address_cost): Likewise.
5137         (insn_rtx_cost): Likewise.
5138         * cfgloopanal.c (seq_cost): Add speed argument.
5139         (target_reg_cost, target_spill_cost): Turn to array.
5140         (init_set_costs): Update for speed.
5141         (estimate_reg_pressure_cost): Add speed argument.
5142         * auto-inc-dec.c (attempt_change): Update call of rtx_cost.
5143         * dojump.c (prefer_and_bit_test): UPdate call of rtx_cost.
5144         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field speed.
5145         (seq_cost): Add speed argument.
5146         (computation_cost): Add speed arugment.
5147         (add_cost, multiply_by_const, get_address_cost): add speed argument.
5148         (force_expr_to_var_cost): Update for profile info.
5149         (force_var_cost): Likewise.
5150         (split_address_cost): Likewise.
5151         (ptr_difference_cost): Likewise.
5152         (difference_cost): Likewise.
5153         (get_computation_cost_at): Likewise.
5154         (determine_iv_cost): Likewise.
5155         (ivopts_global_cost_for_size): Likewise.
5156         (rewrite_use_address): Likewise.
5157         (tree_ssa_iv_optimize_loop): Initialize speed field.
5158         * cse.c (optimize_this_for_speed_p): New static var.
5159         (notreg_cost): Update call of rtx_cost.
5160         (cse_extended_basic_block): set optimize_this_for_speed_p.
5161         * ifcvt.c (cheap_bb_rtx_cost_p): Update call of rtx_cost.
5162         (noce_try_cmove_arith): Likewise.
5163         (noce_try_sign_mask): LIkewise.
5164         * expr.c (compress_float_constant): Update rtx_cost calls.
5165         * tree-ssa-address.c (most_expensive_mult_to_index): Add speed
5166         argument.
5167         (addr_to_parts): Likewise.
5168         (create_mem_ref): Likewise.
5169         * dse.c (find_shift_sequence): Add speed argument.
5170         (replace_read): Update call.
5171         * calls.c (precompute_register_parameters): Update call of rtx_cost.
5172         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost,
5173         * neg_cost, shift_cost, shiftadd_cost,
5174         shiftsub_cost, mul_cost, sdiv_cost, udiv_cost ,mul_widen_cost,
5175         mul_highpart_cost): Increase dimension.
5176         (init_expmed): Initialize for both size and speed.
5177         (expand_shift): Use profile.
5178         (synth_mult): Use profile.
5179         (choose_mult_variant): Use profile.
5180         (expand_mult): Use profile.
5181         (expand_mult_highpart_optab): Use profile.
5182         (expand_mult_highpart): Use profile.
5183         (expand_smod_pow2): Use profile.
5184         (expand_divmod): Use profile.
5185         * simplify-rtx.c (simplify_binary_operation_1): Update call of
5186         rtx_cost.
5187         * loop-invariant.c (create_new_invariant): Use profile.
5188         (gain_for_invariant): Add speed parameter.
5189         (best_gain_for_invariant): Likewise.
5190         (find_invariants_to_move): Likewise.
5191         (move_single_loop_invariants): Set it.
5192         * target-def.h (TARGET_RTX_COSTS): Use hook.
5193         * rtl.h (rtx_cost, address_cost, insn_rtx_cost): Update prototpe.
5194         (optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
5195         * output.h (default_address_cost): Update prototype.
5196         * combine.c (optimize_this_for_speed_p): New static var.
5197         (combine_validate_cost): Update call of rtx_cost.
5198         (combine_instructions): Set optimize_this_for_speed_p.
5199         (expand_compound_operation): Update call of rtx_cost.
5200         (make_extraction):Update call of rtx_cost.
5201         (force_to_mode):Update call of rtx_cost.
5202         (distribute_and_simplify_rtx):Update call of rtx_cost.
5203         * cfgloop.h (target_reg_cost, target_spill_cost): Turn to array.
5204         (estimate_reg_pressure_cost): Update prototype.
5205         * tree-flow.h (multiply_by_cost, create_mem_ref): Update prototype.
5206         * basic-block.h (optimize_insn_for_size_p, optimize_insn_for_speed_p):
5207         Remove.
5208         * config/alpha/alpha.c (alpha_rtx_costs): Update.
5209         (alpha_rtx_costs): Update.
5210         * config/frv/frv.c (frv_rtx_costs): Update.
5211         * config/s390/s390.c (s390_rtx_costs): Update.
5212         * config/m32c/m32c.c (m32c_memory_move_cost): Update.
5213         (m32c_rtx_costs): Update.
5214         * config/spu/spu.c (TARGET_ADDRESS_COST): Upate.
5215         (spu_rtx_costs): Update.
5216         * config/sparc/sparc.c (sparc_rtx_costs): Update.
5217         * config/m32r/m32r.c (m32r_rtx_costs): Update.
5218         * config/i386/i386.c (:ix86_address_cost): Update.
5219         (ix86_rtx_costs): Update.
5220         * config/sh/sh.c (sh_rtx_costs, sh_address_cost): Update.
5221         * config/pdp11/pdp11.c (pdp11_rtx_costs): Update.
5222         * config/avr/avr.c (avr_rtx_costs, avr_address_cost): Update.
5223         * config/crx/crx.c (crx_address_cost): Update.
5224         * config/xtensa/xtensa.c (xtensa_rtx_costs): Update.
5225         * config/stormy16/stormy16.c
5226         (xstormy16_address_cost, xstormy16_rtx_costs): Update.
5227         * config/m68hc11/m68hc11.c
5228         (m68hc11_address_cost, m68hc11_rtx_costs): Update.
5229         * config/cris/cris.c (cris_rtx_costs, cris_address_cost): Update.
5230         * config/iq2000/iq2000.c (iq2000_rtx_costs, iq2000_address_cost):
5231         Update.
5232         * config/mn10300/mn10300.c (mn10300_address_cost, mn10300_rtx_costs):
5233         Update
5234         * config/ia64/ia64.c (ia64_rtx_costs): Update.
5235         * config/m68k/m68k.c (m68k_rtx_costs): Update.
5236         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update.
5237         * config/arc/arc.c (arc_rtx_costs, arc_address_cost): Update.
5238         * config/mcore/mcore.c (TARGET_ADDRESS_COST): Update.
5239         (mcore_rtx_costs): update.
5240         * config/score/score3.c (score3_rtx_costs): Update.
5241         * config/score/score7.c (score7_rtx_costs): Update.
5242         * config/score/score3.h (score3_rtx_costs):Update.
5243         * config/score/score7.h (score7_rtx_costs): Update.
5244         * config/score/score.c (score_rtx_costs): Update.
5245         * config/arm/arm.c (arm_address_cost): Update.
5246         (arm_rtx_costs_1): Update.
5247         (arm_rtx_costs_1): Update.
5248         (arm_size_rtx_costs): Update.
5249         (arm_size_rtx_costs): Update.
5250         (arm_size_rtx_costs): Update.
5251         (arm_xscale_rtx_costs): Update.
5252         (arm_thumb_address_cost): Update.
5253         * config/pa/pa.c (hppa_address_cost): Update.
5254         * config/mips/mips.c (mips_rtx_costs): Update.
5255         * config/vax/vax.c (vax_address_cost): Update.
5256         * config/h8300/h8300.c (h8300_shift_costs): Update.
5257         (h8300_rtx_costs): Update.
5258         * config/v850/v850.c (TARGET_ADDRESS_COST): Update.
5259         (v850_rtx_costs): Update.
5260         * config/mmix/mmix.c (mmix_rtx_costs, mmix_rtx_costs): Update.
5261         * config/bfin/bfin.c
5262         (bfin_address_cost): Update.
5263         (bfin_rtx_costs): Update.
5264         * stmt.c (lshift_cheap_p): Update.
5265
5266 2008-08-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5267
5268         PR middle-end/36444
5269         * expmed.c (extract_bit_field_1): Check the mode size to make
5270         sure the vector modes have the same size.
5271
5272 2008-08-29  Michael Meissner  <gnu@the-meissners.org>
5273
5274         * dojump.c (top level): Include basic-block.h to declare
5275         optimize_insn_for_speed_p
5276
5277         * Makefile.in (dodump.h): Add $(BASIC_BLOCK_H) dependency.
5278
5279         * opts.h (CL_SAVE): New option class for marking options that are
5280         target specific options usable in the target attribute.
5281         (CL_MIN_OPTION_CLASS): CL_SAVE is now the minimum option.
5282
5283         * opt-functions.awk (switch_flags): Add CL_SAVE flag so backends
5284         can easily find the target specific options that are safe to use
5285         in the attribute or pragma.
5286
5287         * attribs.c (decl_attributes): Change #pragma GCC option to
5288         #pragma GCC target, and attribute((option(...))) to
5289         attribute((target(...))).
5290
5291         * doc/extend.texi (target attribute): Change from option
5292         attribute.  Delete push/pop/reset.
5293         (#pragma GCC target): Change from #pragma GCC option.  Delete
5294         push/pop/reset.
5295         (#pragma GCC push_options): Document new pragma.
5296         (#pragma GCC pop_options): Document new pragma.
5297         (#pragma GCC reset_options): Document new pragma.
5298
5299         * targhooks.c (default_target_option_valid_attribute_p): Add
5300         warning about port not supporting target attributes.
5301         (default_target_option_pragma_parse): New function, warn about
5302         #pragma GCC target not being supported.
5303
5304         * targhooks.h (default_target_option_pragma_parse): Add
5305         declaration.
5306
5307         * tree.h (TI_CURRENT_TARGET_PRAGMA): Rename from
5308         TI_CURRENT_OPTION_PRAGMA.
5309         (current_target_pragma): Rename from current_option_pragma.
5310
5311         * target.h: (struct target_option): Delete booleans for changing
5312         the optimization level on hot/cold functions.  Change signature of
5313         pragma_parse hook to take a second tree.
5314
5315         * c-tree.h (c_builtin_function_ext_scope): Add declaration.
5316
5317         * c-decl.c (c_builtin_function_ext_scope): New function, guarantee
5318         that the declaration is done at global scope.
5319
5320         * langhooks.c (add_builtin_function_common): Move most of the code
5321         from add_builtin_function here, calling the hook passed in.
5322         (add_builtin_function): Call add_builtin_function_common with
5323         standard builtin hook.
5324         (add_builtin_function_ext_scope): New function to add builtins to
5325         global scope.
5326
5327         * langhooks.h (struct lang_hooks): Add builtin_function_ext_scope
5328         hook.
5329         (add_builtin_function_ext_scope): Add declaration.
5330
5331         * c-pragma.c (handle_pragma_target): Rename from
5332         handle_pragma_option, #pragma GCC option is now #pragma GCC
5333         target.  Move warning about port not supporting target options to
5334         default pragma parse hook.  Remove push/pop/reset from this
5335         pragma.
5336         (handle_pragma_optimize): Remove push/pop/reset from this pragma.
5337         (option_stack): Delete static variable.
5338         (optimize_stack): Ditto.
5339         (optons_stack): New stack of saved target and optimization
5340         options.
5341         (handle_pragma_push_options): New function to handle pushing both
5342         target and optimization options.
5343         (handle_pragma_pop_options): New function to handle popping both
5344         target and optimization options.
5345         (handle_pragma_reset_options): New function to handle resetting
5346         both target and optimization options to their initial state.
5347         (init_pragma): Rename handle_pragma_option to
5348         handle_pragma_target.  Add support for push_options, pop_options,
5349         and reset_options pragmas.
5350
5351         * target-def.h (TARGET_OPTION_PRAGMA_PARSE): Change default to
5352         default_target_option_pragma_parse.
5353         (TARGET_OPTION_VALID_ATTRIBUTE_P): Change default to
5354         default_target_option_valid_attribute_p.
5355         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
5356         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
5357         (TARGET_OPTION_HOOKS): Delete the fields for whether to change
5358         optimization level on hot/cold functions.
5359
5360         * tree-inline.c (tree_can_inline_p): Disable suppressing inlining
5361         if the caller and callee have different optimization levels.
5362
5363         * c-common.c (handle_target_attribute): Rename from
5364         handle_option_attribute, attribute((option(...))) is now
5365         attribute((target(...))).  Move warning if the port does not
5366         support target attributes to the default hook.
5367         (handle_hot_attribute): Delete code to change the optimization
5368         level of hot functions.
5369         (handle_cold_attribute): Ditto.
5370
5371         * config/i386/i386-c.c (ix86_pragma_target_parse): Take a second
5372         argument that is the binary tree options to use if there are no
5373         arguments.  Call ix86_valid_target_attribute_tree instead of
5374         ix86_valid_option_attribute_tree.
5375         (ix86_pragma_target_parse): Rename from ix86_pragma_option_parse.
5376         (ix86_register_pragmas): Use ix86_pragma_target_parse instead of
5377         ix86_pragma_option_parse.
5378
5379         * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
5380         Rename from ix86_valid_option_attribute_tree.
5381
5382         * config/i386/i386.c (ix86_add_new_builtins): New function to add
5383         new builtins when the ISA changes.
5384         (ix86_valid_target_attribute_tree): Rename from
5385         ix86_valid_option_attribute_tree.  Change callers.  If the
5386         function specified optimization options, use those as the starting
5387         point before setting up the target attributes.  If the
5388         optimization options were changed in the course of setting the
5389         target attributes, record the new optimization options.
5390         (ix86_valid_target_attribute_tree_inner_p): Rename from
5391         ix86_valid_option_attribute_tree_inner_p.  Change callers.  Call
5392         ix86_add_new_builtins if the ISA changed.
5393         (ix86_valid_target_attribute_p): Rename from
5394         ix86_valid_option_attribute_p.  Change callers.
5395         (enum ix86_builtins): Add IX86_BUILTIN_PCMOV to allow both
5396         __builtin_ia32_pcmov and __builtin_ia32_pcmov_v2di to be declared
5397         as delayed builtin functions.
5398         (struct builtin_isa): New structure to record builtin functions
5399         that should be delayed until the ISA for that function is used.
5400         (ix86_builtins_isa): Change from int to struct to track builtin
5401         functions we want to declare at some point.
5402         (def_builtin): If the front end can delay defining the builtin
5403         functions, don't create builtins for ISAs not part of the default
5404         options.
5405         (def_builtin_const): Ditto.
5406         (bdesc_multi_arg): Declare __builtin_ia32_pcmov and
5407         __builtin_ia32_pcmov_v2di to be different builtin functions.
5408         (ix86_expand_builtin): Changes due to ix86_builtins_isa now being
5409         a structure instead of an int.
5410         (TARGET_OPTION_VALID_ATTRIBUTE_P): Use
5411         ix86_valid_target_attribute_p, not ix86_valid_option_attribute_p.
5412         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
5413         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
5414
5415         * config/ia64/ia64.h
5416         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
5417         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
5418
5419         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): New
5420         hook, default to being the same as LANG_HOOKS_BUILTIN_FUNCTION.
5421         (LANG_HOOKS_INITIALIZER): Add
5422         LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE hook.
5423
5424 2008-08-30  Kaz Kojima  <kkojima@gcc.gnu.org>
5425
5426         PR target/37270
5427         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Generate
5428         the reload address with the index register for SFmode
5429         access with a displacement.
5430
5431 2008-08-30  Jan Hubicka  <jh@suse.cz>
5432
5433         * optabs.c (expand_abs_nojump): Update BRANCH_COST call.
5434         * fold-cost.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop): Likewise.
5435         * dojump.c (do_jump): Likewise.
5436         * ifcvt.c (MAX_CONDITIONAL_EXECUTE): Likewise.
5437         (note-if_info): Add BRANCH_COST.
5438         (noce_try_store_flag_constants, noce_try_addcc,
5439         noce_try_store_flag_mask, noce_try_cmove_arith, noce_try_cmove_arith,
5440         noce_try_cmove_arith, noce_find_if_block, find_if_case_1,
5441         find_if_case_2): Use computed branch cost.
5442         * expr.h (BRANCH_COST): Update default.
5443         * predict.c (predictable_edge_p): New function.
5444         * expmed.c (expand_smod_pow2, expand_sdiv_pow2, emit_store_flag):
5445         Update BRANCH_COST call.
5446         * basic-block.h (predictable_edge_p): Declare.
5447         * config/alpha/alpha.h (BRANCH_COST): Update.
5448         * config/frv/frv.h (BRANCH_COST): Update.
5449         * config/s390/s390.h (BRANCH_COST): Update.
5450         * config/spu/spu.h (BRANCH_COST): Update.
5451         * config/sparc/sparc.h (BRANCH_COST): Update.
5452         * config/m32r/m32r.h (BRANCH_COST): Update.
5453         * config/i386/i386.h (BRANCH_COST): Update.
5454         * config/i386/i386.c (ix86_expand_int_movcc): Update use of
5455         BRANCH_COST.
5456         * config/sh/sh.h (BRANCH_COST): Update.
5457         * config/pdp11/pdp11.h (BRANCH_COST): Update.
5458         * config/avr/avr.h (BRANCH_COST): Update.
5459         * config/crx/crx.h (BRANCH_COST): Update.
5460         * config/xtensa/xtensa.h (BRANCH_COST): Update.
5461         * config/stormy16/stormy16.h (BRANCH_COST): Update.
5462         * config/m68hc11/m68hc11.h (BRANCH_COST): Update.
5463         * config/iq2000/iq2000.h (BRANCH_COST): Update.
5464         * config/ia64/ia64.h (BRANCH_COST): Update.
5465         * config/rs6000/rs6000.h (BRANCH_COST): Update.
5466         * config/arc/arc.h (BRANCH_COST): Update.
5467         * config/score/score.h (BRANCH_COST): Update.
5468         * config/arm/arm.h (BRANCH_COST): Update.
5469         * config/pa/pa.h (BRANCH_COST): Update.
5470         * config/mips/mips.h (BRANCH_COST): Update.
5471         * config/vax/vax.h (BRANCH_COST): Update.
5472         * config/h8300/h8300.h (BRANCH_COST): Update.
5473         * params.def (PARAM_PREDICTABLE_BRANCH_OUTCOME): New.
5474         * doc/invoke.texi (predictable-branch-cost-outcome): Document.
5475         * doc/tm.texi (BRANCH_COST): Update.
5476
5477 2008-08-30  Samuel Tardieu  <sam@rfc1149.net>
5478
5479         PR target/37283
5480         * config/arm/arm.c (arm_optimization_options): Set
5481         flag_section_anchors to 2 instead of 1 to distinguish it from
5482         -fsection-anchors given explicitely on the command line.
5483
5484 2008-08-30  Richard Sandiford  <rdsandiford@googlemail.com>
5485
5486         * recog.c (split_insn): Consider attaching a REG_EQUAL note to the
5487         final insn of a split.
5488
5489 2008-08-30  Jan Hubicka  <jh@suse.cz>
5490
5491         * postreload-gcse.c (gate_handle_gcse2): Disable for functions
5492         optimized for speed.
5493         * final.c (compute_alignments): Use optimize_bb_for_size_p.
5494         * tree-call-cdce.c (gate_call_cdce): Use optimize_function_for_speed_p.
5495         * opts.c (flag_predictive_commoning_set, flag_unswitch_loops_set,
5496         flag_gcse_after_reload_set): New static vars.
5497         (common_handle_option): Enable those flags for profile-use.
5498         (decode_options): Remove optimize_size flags that are handled
5499         on higher granuality.
5500         * tree-vectorizer.c (vectorize_loops): Use
5501         optimize_loop_nest_for_speed_p.
5502         * tree-ssa-pre.c (do_pre): Use optimize_function_for_speed_p.
5503         * tree-predcom.c (tree_predictive_commoning): Use
5504         optimize_loop_for_speed_p.
5505         * varasm.c (assemble_start_function): Use
5506         optimize_function_for_speed_p.
5507         * bb-reorder.c (rest_of_handle_reorder_blocks): Likewise.
5508         * predict.c (optimize_loop_for_speed_p): Fix walk.
5509
5510 2008-08-30  Jan Hubicka  <jh@suse.cz>
5511
5512         * ipa-inline.c (cgraph_estimate_growth): Discover self recursive
5513         functions.
5514         (cgraph_decide_inlining_of_small_function): Use edge->count to detect
5515         profile presence locally.
5516
5517 2008-08-29  Joseph Myers  <joseph@codesourcery.com>
5518
5519         PR bootstrap/37086
5520         * tree-vrp.c (find_switch_asserts): Make idx volatile for GCC
5521         versions before 4.0.
5522
5523 2008-08-29  Jan Hubicka  <jh@suse.cz>
5524
5525         * tree-inline.c (insert_init_stmt): Insert sequence even when
5526         not in SSA form.
5527
5528 2008-08-29  Jeff Law  <law@redhat.com>
5529
5530         * mn10300.c (mn10300_secondary_reload_class): We need secondary
5531         reloads for AM33-2 if IN is a pseudo with an equivalent memory
5532         location and class is an FP register.
5533
5534 2008-08-29  Jan Hubicka  <jh@suse.cz>
5535
5536         * see.c (see_merge_one_def_extension): Silence used uninitialized
5537         warning.
5538         * matrix-reorg.c (check_allocation_function): Likewise.
5539         * config/i386/driver-i386.c (detect_caches_amd): Likewise.
5540
5541 2008-08-29  Jakub Jelinek  <jakub@redhat.com>
5542
5543         PR c/37261
5544         * fold-const.c (fold_binary): In (X | C1) & C2 canonicalization
5545         compute new & and | in type rather than TREE_TYPE (arg0).
5546
5547         * dwarf2out.c (fortran_common): Update comment.
5548         (gen_variable_die): Swap com_die and var_die variables in Fortran
5549         COMMON block handling code.
5550
5551         * dwarf2out.c (descr_info_loc): Handle VAR_DECL.
5552
5553         * dwarf2out.c (gen_const_die): New function.
5554         (size_of_die, value_format, output_die): Output larger
5555         dw_val_class_vec using DW_FORM_block2 or DW_FORM_block4.
5556         (native_encode_initializer): New function.
5557         (tree_add_const_value_attribute): Call it.
5558         (gen_decl_die, dwarf2out_decl): Handle CONST_DECLs if is_fortran ().
5559
5560         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): For
5561         DECL_BY_REFERENCE decls don't pass TREE_READONLY and
5562         TREE_THIS_VOLATILE to add_type_attribute.
5563
5564         * dwarf2out.c (add_subscript_info): Stop on Fortran TYPE_STRING_FLAG
5565         types.
5566         (gen_array_type_die): Emit DW_TAG_string_type for Fortran character
5567         types.
5568
5569         * dwarf2out.c (loc_by_reference): New function.
5570         (add_location_or_const_value_attribute): Use it.
5571
5572         PR fortran/23057
5573         * dwarf2out.c (gen_variable_die): Represent Fortran COMMON vars
5574         as DW_TAG_variable children of DW_TAG_common_block rather than
5575         DW_TAG_member children.  Put DW_AT_external to individual
5576         DW_TAG_variable DIEs, not to DW_TAG_common_block.
5577
5578         * dwarf2out.c (add_bound_info): If lookup_decl_die failed, try
5579         loc_descriptor_from_tree_1.
5580
5581         PR fortran/29635
5582         PR fortran/23057
5583         * debug.h (struct gcc_debug_hooks): Add NAME and CHILD
5584         arguments to imported_module_or_decl.
5585         (debug_nothing_tree_tree): Removed.
5586         (debug_nothing_tree_tree_tree_bool): New prototype.
5587         * debug.c (do_nothing_debug_hooks): Adjust.
5588         (debug_nothing_tree_tree): Removed.
5589         (debug_nothing_tree_tree_tree_bool): New function.
5590         * dwarf2out.c (is_symbol_die): Handle DW_TAG_module.
5591         (gen_variable_die): Put all common vars for the
5592         same COMMON block under one DW_TAG_common_block.
5593         (declare_in_namespace): Return new context_die, for Fortran
5594         return the module DIE instead of adding extra declarations into
5595         the namespace.
5596         (gen_type_die_with_usage): Adjust declare_in_namespace caller.
5597         (gen_namespace_die): If is_fortran (), generate DW_TAG_module
5598         instead of DW_TAG_namespace.  If DECL_EXTERNAL is set, add
5599         DW_AT_declaration.
5600         (dwarf2out_global_decl): Don't skip Fortran global vars.
5601         (gen_decl_die): Likewise.  Adjust declare_in_namespace callers.
5602         (dwarf2out_imported_module_or_decl): Add NAME and CHILD arguments.
5603         If NAME is non-NULL, add DW_AT_name.  If CHILD is non-NULL, put
5604         DW_TAG_imported_declaration as child of previous
5605         DW_TAG_imported_module.
5606         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Adjust.
5607         * sdbout.c (sdb_debug_hooks): Likewise.
5608         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
5609
5610 2008-08-29  Jan Hubicka  <jh@suse.cz>
5611
5612         * cgraph.c (cgraph_remove_node): Do not remove nested nodes.
5613
5614         * cgraph.h (cgraph_maybe_hot_edge_p): Declare.
5615         * ipa-cp.c (n_cloning_candidates): New static variable.
5616         (ipcp_print_profile_data, ipcp_function_scale_print): Forward declare.
5617         (ipcp_print_all_lattices): Improve debug output.
5618         (ipcp_cloning_candidate_p): New function.
5619         (ipcp_initialize_node_lattices): Use it.
5620         (ipcp_init_stage): Do only analyzis here; prettier debug output.
5621         (ipcp_propagate_stage): Prettier debug output.
5622         (ipcp_iterate_stage): Initialize latices here; prettier debug output.
5623         (ipcp_print_all_structures): Remove.
5624         (ipcp_need_redirect_p): Test !n_cloning_candidates.
5625         (ipcp_insert_stage): Prettier debug output; call
5626         cgraph_remove_unreachable_nodes before propagating.
5627         (pass_ipa_cp): Schedule function removal pass.
5628         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Better
5629         debug output.
5630         (cgraph_maybe_hot_edge_p): Move to ...
5631         * predict.c (cgraph_maybe_hot_edge_p) ... here.
5632         * opts.c (flag_ipa_cp_set, flag_ipa_cp_clone_set): New.
5633         (common_handle_option): Set them; enable ipa-cp when profiling.
5634         * ipa-prop.c (ipa_print_node_jump_functions): Prettier output.
5635         (ipa_print_all_jump_functions): Likewise.
5636         (ipa_print_all_tree_maps, ipa_print_node_param_flags): Remove.
5637         (ipa_print_node_params, ipa_print_all_params): New.
5638         * ipa-prop.h (ipa_print_all_tree_maps, ipa_print_node_param_flags,
5639         ipa_print_all_param_flags): Remove.
5640         (ipa_print_node_params, ipa_print_all_params): New.
5641
5642 2008-08-29  Bob Wilson  <bob.wilson@acm.org>
5643
5644         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Revert
5645         change from 2008-04-03.
5646         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Define.
5647
5648 2008-08-29  Vladimir Makarov  <vmakarov@redhat.com>
5649
5650         PR rtl-opt/37251
5651         * ira-color.c (push_allocnos_to_stack): Truncate
5652         removed_splay_allocno_vec.
5653
5654 2008-08-29  Vladimir Makarov  <vmakarov@redhat.com>
5655
5656         PR rtl-opt/37243
5657         * ira-color (ira_fast_allocation): Don't assign hard registers to
5658         global allocnos.
5659
5660 2008-08-29  Jan Hubicka  <jh@suse.cz>
5661
5662         PR middle-end/37278
5663         * predict.c (optimize_loop_nest_for_speed_p): Do not ICE
5664         for cold internal loops.
5665
5666 2008-08-29  Richard Guenther  <rguenther@suse.de>
5667
5668         * tree-ssa-structalias.c (create_variable_info_for): Do not
5669         create fields for heap vars or vars with a noalias state.
5670         For NO_ALIAS_ANYTHING variables add a self-constraint, not one
5671         from ESCAPED.
5672
5673 2008-08-29  Richard Guenther  <rguenther@suse.de>
5674
5675         * common.opt (ftree-store-ccp): Mark as preserved for
5676         backward compatibility.
5677         * doc/invoke.texi (-ftree-store-ccp): Remove documentation.
5678         * tree-pass.h (pass_store_ccp): Remove.
5679         * tree-ssa-propagate.h (struct prop_value_d): Remove mem_ref field.
5680         (first_vdef): Remove declaration.
5681         (get_value_loaded_by): Likewise.
5682         * tree-ssa-ccp.c (do_store_ccp): Remove.
5683         (get_default_value): Simplify as do_store_ccp is always false
5684         now.  Do not initialize mem_ref.
5685         (set_value_varying): Likewise.
5686         (canonicalize_float_value): Likewise.
5687         (set_lattice_value): Likewise.
5688         (likely_value): Likewise.
5689         (surely_varying_stmt_p): Likewise.
5690         (ccp_initialize): Likewise.
5691         (ccp_lattice_meet): Likewise.
5692         (ccp_visit_phi_node): Likewise.
5693         (ccp_fold): Likewise.
5694         (evaluate_stmt): Likewise.
5695         (visit_assignment): Likewise.
5696         (ccp_visit_stmt): Likewise.
5697         (execute_ssa_ccp): Fold into ...
5698         (do_ssa_ccp): ... this.
5699         (do_ssa_store_ccp): Remove.
5700         (gate_store_ccp): Likewise.
5701         (pass_store_ccp): Likewise.
5702         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not
5703         initialize mem_ref.
5704         * tree-ssa-propagate.c (first_vdef): Remove.
5705         (get_value_loaded_by): Likewise.
5706         (replace_vuses_in): Likewise.
5707         (substitute_and_fold): Do not call replace_vuses_in.
5708         * opts.c (decode_options): Do not set flag_tree_store_ccp.
5709
5710 2008-08-29  Richard Guenther  <rguenther@suse.de>
5711
5712         PR middle-end/37236
5713         * tree-ssa-structalias.c (intra_create_variable_infos): Mark
5714         PARAM_NOALIAS tags with is_heapvar.
5715         * tree-ssa-operands.c (access_can_touch_variable): Offset
5716         based tests do not apply for heapvars.  Fix offset test.
5717
5718 2008-08-29  Jan Hubicka  <jh@suse.cz>
5719
5720         * doc/invoke.texi (-fipa-cp): Enabled by default at -O2/-Os/-O3
5721         (-fipa-cp-clone): Enabled by default at -O3.
5722         * opts.c (decode_options): Enable ipa-cp at -O2, ipa-cp-clone at -O3;
5723         make ipa-cp-clone to imply ipa-cp; disable cloning at -Os.
5724
5725 2008-08-29  Jan Hubicka  <jh@suse.cz>
5726
5727         * tree.c (build_function_type_skip_args,
5728         build_function_decl_skip_args): New functions.
5729         * tree.h (build_function_type_skip_args,
5730         build_function_decl_skip_args): Declare.
5731         * gimple.c (giple_copy_call_skip_args): New function.
5732         (giple_copy_call_skip_args): Declare.
5733
5734         * cgraph.h (cgraph_function_versioning): Add skip_args arugmnet
5735         * ipa-cp.c (ipcp_node_not_modifiable_p): Rename to ...
5736         (ipcp_node_modifiable_p): ... this one; use
5737         tree_versionable_function_p.
5738         (ipcp_create_replace_map): Improve debug output.
5739         (ipcp_need_redirect_p): Return false when not clonning.
5740         (ipcp_update_callgraph): Skip args.
5741         (ipcp_insert_stage): UPdate call of !ipcp_node_modifiable_p;
5742         skip args.
5743         * cgraphunit.c (cgraph_function_versioning): Add skip_args argument.
5744         (save_inline_function_body): Update call of tree_function_versioning.
5745         * ipa-prop.c (ipa_edge_removal_hook): Do not ICE on unanalyzed nodes.
5746         * tree-inline.c (copy_arguments_for_versioning): Add skip_args
5747         argument.
5748         (tree_function_versioning): Likewise.
5749         * tree-inline.h (tree_function_versioning): Update prototype.
5750
5751 2008-08-29  Jan Hubicka  <jh@suse.cz>
5752
5753         * loop-unswitch.c (unswitch_single_loop): Use
5754         optimize_loop_for_speed_p.
5755         * tree-ssa-threadupdate.c (mark_threaded_blocks):
5756         Use optimize_function_for_size_p.
5757         * tracer.c (ignore_bb_p): Use optimize_bb_for_size_p.
5758         * postreload-gcse.c (eliminate_partially_redundant_load):
5759         Use optimize_bb_for_size_p.
5760         * value-prof.c (gimple_divmod_fixed_value_transform,
5761         gimple_mod_pow2_value_transform, gimple_mod_subtract_transform,
5762         gimple_stringops_transform): Use optimize_bb_for_size_p.
5763         * ipa-cp.c (ipcp_insert_stage): Use optimize_function_for_size_p.
5764         * final.c (compute_alignments): Use optimize_function_for_size_p.
5765         * builtins.c (fold_builtin_cabs): Use optimize_function_for_speed_p.
5766         (fold_builtin_strcpy, fold_builtin_fputs): Use
5767         optimize_function_for_size_p.
5768         * fold-const.c (tree_swap_operands_p): Use
5769         optimize_function_for_size_p.
5770         * recog.c (relax_delay_slots): Likewise.
5771         * tree-ssa-math-opts.c (replace_reciprocal):
5772         Use optimize_bb_for_speed_p.
5773         (execute_cse_reciprocals): Use optimize_bb_for_size_p.
5774         * ipa-inline.c (cgraph_decide_recursive_inlining): Use
5775         optimize_function_for_size_p.
5776         (cgraph_decide_inlining_of_small_function): Use
5777         optimize_function_for_size_p.
5778         * global.c (find_reg): Use optimize_function_for_size_p.
5779         * opts.c (decode_options): Do not clear flag_tree_ch,
5780         flag_inline_functions, flag_unswitch_loops, flag_unroll_loops,
5781         flag_unroll_all_loops and flag_prefetch_loop_arrays. Those can
5782         work it out from profile.
5783         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Use
5784         optimize_loop_for_speed_p.
5785         * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
5786         Constify argument.
5787         (optimize_loop_nest_for_size_p, optimize_loop_nest_for_speed_p): New.
5788         * tree-parloops.c (parallelize_loops): Use optimize_loop_for_size_p.
5789         * tree-eh.c (decide_copy_try_finally): Use
5790         optimize_function_for_size_p.
5791         * local-alloc.c (block_alloc): Pass BB pointer.
5792         (find_free_reg): Add BB pointer, use optimize_bb_for_size_p.
5793         * gcse.c (gcse_main): Use optimize_function_for_size_p.
5794         * loop-unroll.c (decide_unrolling_and_peeling):
5795         Use optimize_loop_for_size_p.
5796         (decide_peel_completely): Likewise.
5797         * tree-vect-analyze.c (vect_mark_for_runtime_alias_test): Use
5798         optimize_loop_for_size_p.
5799         (vect_enhance_data_refs_alignment): Likewise.
5800         * tree-ssa-coalesce.c (coalesce_cost): Add optimize_for_size argument.
5801         (coalesce_cost_bb, coalesce_cost_edge, create_outofssa_var_map):
5802         Update call.
5803         * cfgcleanup.c (outgoing_edges_match): Use optimize_bb_for_speed_p.
5804         (try_crossjump_bb): Use optimize_bb_for_size_p.
5805         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
5806         optimize_loop_for_speed_p.
5807         * bb-reorder.c (find_traces_1_round): Likewise.
5808         (copy_bb): Use optimize_bb_for_speed_p.
5809         (duplicate_computed_gotos): Likewise.
5810         * basic-block.h (optimize_loop_nest_for_size_p,
5811         optimize_loop_nest_for_speed_p): New.
5812         * stmt.c (expand_case): Use optimize_insn_for_size_p.
5813
5814 2008-08-29  Tristan Gingold  <gingold@adacore.com>
5815
5816         * gcov.c (main): Call expandargv.
5817
5818 2008-08-29  Jan Hubicka  <jh@suse.cz>
5819
5820         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Check that loop
5821         is not cold.
5822         * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
5823         Constify arguments.
5824         (optimize_loop_for_size_p, optimize_loop_for_speed_p): New functions.
5825         * basic-block.h (optimize_bb_for_size_p, optimize_bb_for_speed_p):
5826         Constify.
5827         (optimize_loop_for_size_p, optimize_loop_for_speed_p): Declare.
5828
5829 2008-08-29  Jan Hubicka  <jh@suse.cz>
5830
5831         * tree-pass.h (pass_strip_predict_hints): Declare.
5832         * predict.c (strip_builtin_expect): Rename to ...
5833         (strip_predict_hints): ... this one; strip also GIMPLE_PREDICT.
5834         (tree_bb_level_predictions): Do not remove GIMPLE_PREDICT.
5835         (tree_estimate_probability): Do not strip builtin_expect.
5836         (pass_strip_predict_hints): New pass.
5837         * tree-inline.c (expand_call_inline): When inlining cold function,
5838         predict it as unlikely.
5839         * passes.c (init_optimization_passes): Add pass_strip_predict_hints.
5840
5841 2008-08-29  Richard Guenther  <rguenther@suse.de>
5842
5843         PR tree-optimization/37207
5844         * tree-vrp.c (extract_range_from_binary_expr): Also try
5845         to constant fold if only one of the operands is a constant.
5846
5847 2008-08-29  Nick Clifton  <nickc@redhat.com>
5848
5849         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Treat LABEL_REFs in
5850         the same way as SYMBOL_REFs.
5851
5852 2008-08-28  Bob Wilson  <bob.wilson@acm.org>
5853
5854         * config/xtensa/xtensa.md (<u>mulsidi3): Use a temporary register.
5855
5856 2008-08-28  Adam Nemet  <anemet@caviumnetworks.com>
5857
5858         * config/mips/mips.h (ISA_HAS_BBIT): New macro.
5859         * config/mips/mips.md (branch_likely): Remove const.  Fix
5860         comment formatting.
5861         (define_delay for type "branch"): Change to only apply for branch
5862         with likely variant.
5863         (define_delay for type "branch" and "branch_likely" no).  New delay
5864         definition.
5865         (equality_op): New code iterator.
5866         (bbv, bbinv): New code attributes.
5867         (*branch_bit<bbv><mode>, *branch_bit<bbv><mode>_inverted): New
5868         patterns.
5869
5870 2008-08-28  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5871             Andrew Pinski  <pinskia@gcc.gnu.org>
5872
5873         PR 18050
5874         * c-common.c (verify_tree): Fix handling of ADDR_EXPR.
5875
5876 2008-08-28  Paolo Carlini  <paolo.carlini@oracle.com>
5877
5878         * gtrh-posix.h: Fix uses of _POSIX_TIMEOUTS per the normal Posix
5879         rule that a symbolic constant must be defined and >= 0 for the
5880         corresponding facility to be present at compile-time.
5881         * gthr-posix.c: Likewise.
5882
5883 2008-08-28  Adam Nemet  <anemet@caviumnetworks.com>
5884
5885         * config/mips/mips.h (ISA_HAS_DMUL3): New macro.
5886         * config/mips/mips.md (D): New mode attribute.
5887         (mulsi3, muldi3): Merge it into ...
5888         (mul<mode>3): ... new template.  Use _mul3 ending for 3-op patterns.
5889         (muldi3_mul3): New pattern.
5890         (mulsi3_mult3): Rename to mulsi3_mul3.
5891
5892 2008-08-28  Jan Hubicka  <jh@suse.cz>
5893
5894         * expmed.c (store_bit_field_1): Be prepared for movstrict expander
5895         to fail.
5896         * predict.c (always_optimize_for_size_p): Rename to ...
5897         (optimize_function_for_size): ... this one; make extern.
5898         (optimize_function_for_speed_p): New.
5899         (optimize_bb_for_size_p, optimize_bb_for_size_p,
5900         optimize_edge_for_size_p,optimize_edge_for_size_p,
5901         optimize_insn_for_size_p, optimize_insn_for_size_p): Update.
5902         * basic-block.h (optimize_function_for_size_p,
5903         optimize_function_for_speed_p): Declare.
5904         * i386.md (optimize_size checks): Replace them by appropriate
5905         predicate.
5906         (standard_80387_constant_p, ix86_compute_frame_layout,
5907         ix86_expand_epilogue, ix86_decompose_address,
5908         print_operand, emit_i387_cw_initialization,
5909         inline_memory_move_cost, ix86_pad_returns,
5910         ix86_reorg): Replace optimize_size checks.
5911
5912 2008-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5913
5914         * rtl.h (simplify_subreg_regno): Declare.
5915         * rtlanal.c (simplify_subreg_regno): New function, split out from...
5916         * simplify-rtx.c (simplify_subreg): ...here.
5917         * reload.c (find_reloads): Use simplify_subreg_regno instead of
5918         subreg_offset_representable_p.
5919
5920 2008-08-28  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5921
5922         PR c/30949
5923         * c-typeck.c (convert_for_assignment): Give a note describing what
5924         was passed and what was expected.
5925
5926 2008-08-28  Joey Ye  <joey.ye@intel.com>
5927
5928         * doc/extend.texi: Document AVX built-in functions.
5929         * doc/invoke.texi: Document -mavx.
5930
5931 2008-08-28  H.J. Lu  <hongjiu.lu@intel.com>
5932             Joey Ye  <joey.ye@intel.com>
5933             Xuepeng Guo  <xuepeng.guo@intel.com>
5934
5935         * config.gcc (extra_headers): Add gmmintrin.h for x86 and x86-64.
5936
5937         * config/i386/cpuid.h (bit_FMA): New.
5938         (bit_XSAVE): Likewise.
5939         (bit_OSXSAVE): Likewise.
5940         (bit_AVX): Likewise.
5941
5942         * config/i386/gas.h (ASM_OUTPUT_OPCODE): Undefine before
5943         define.  Use ASM_OUTPUT_AVX_PREFIX.
5944
5945         * config/i386/gmmintrin.h: New.
5946
5947         * config/i386/i386.c (x86_64_reg_class): Add X86_64_AVX_CLASS.
5948         (OPTION_MASK_ISA_AVX_SET): New.
5949         (OPTION_MASK_ISA_FMA_SET): Likewise.
5950         (OPTION_MASK_ISA_AVX_UNSET): Likewise.
5951         (OPTION_MASK_ISA_FMA_SET): Likewise.
5952         (OPTION_MASK_ISA_SSE4_2_UNSET): Updated.
5953         (ix86_handle_option): Handle OPT_mavx and OPT_mfma.
5954         (pta_flags): Add PTA_AVX and PTA_FMA.
5955         (override_options): Handle PTA_AVX and PTA_FMA.
5956         (init_cumulative_args): Handle warn_avx.
5957         (classify_argument): Return 0 for COImode and OImode.  Return
5958         1 and X86_64_AVX_CLASS for 256bit vector types.
5959         (examine_argument): Handle X86_64_AVX_CLASS.
5960         (construct_container): Likewise.
5961         (function_arg_advance_32): Pass OImode and 256bit vector types
5962         in AVX register.
5963         (function_arg_advance_64): Take a new argument to indicate if a
5964         parameter is named.  Handle 256bit vector types.  Return
5965         immediately for unnamed 256bit vector mode parameters.
5966         (function_arg_advance): Updated.
5967         (function_arg_32): Add comments for TImode.  Handle OImode
5968         and 256bit vector types.
5969         (function_arg_64): Take a new argument to indicate if a
5970         parameter is named.  Handle 256bit vector types.  Return NULL
5971         for unnamed 256bit vector mode parameters.
5972         (function_arg): Updated.
5973         (setup_incoming_varargs_64): Support
5974         AVX encoding for *sse_prologue_save_insn.
5975         (ix86_gimplify_va_arg): Handle 256bit vector mode parameters.
5976         (standard_sse_constant_p): Return -2 for all 1s if SSE2 isn't
5977         enabled.  For all 1s in 256bit vector modes, return 3 if AVX is
5978         enabled, otherwise return -3.
5979         (standard_sse_constant_opcode): Handle AVX and 256bit vector
5980         modes.
5981         (print_reg): Support AVX registers.  Handle 'x' and 't'.
5982         Handle 'd' to duplicate the operand.
5983         (print_operand): Likewise.  Also support AVX vector compare
5984         instructions.
5985         (output_387_binary_op): Support AVX.
5986         (output_fp_compare): Likewise.
5987         (ix86_expand_vector_move_misalign): Likewise.
5988         (ix86_attr_length_vex_default): New.
5989         (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
5990         IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
5991         IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
5992         IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
5993         IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_BLENDPD256,
5994         IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
5995         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DIVPD256,
5996         IX86_BUILTIN_DIVPS256, IX86_BUILTIN_DPPS256,
5997         IX86_BUILTIN_HADDPD256, IX86_BUILTIN_HADDPS256,
5998         IX86_BUILTIN_HSUBPD256, IX86_BUILTIN_HSUBPS256,
5999         IX86_BUILTIN_MAXPD256, IX86_BUILTIN_MAXPS256,
6000         IX86_BUILTIN_MINPD256, IX86_BUILTIN_MINPS256,
6001         IX86_BUILTIN_MULPD256, IX86_BUILTIN_MULPS256,
6002         IX86_BUILTIN_ORPD256, IX86_BUILTIN_ORPS256,
6003         IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
6004         IX86_BUILTIN_SUBPD256, IX86_BUILTIN_SUBPS256,
6005         IX86_BUILTIN_XORPD256, IX86_BUILTIN_XORPS256,
6006         IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
6007         IX86_BUILTIN_CMPPS, IX86_BUILTIN_CMPPD256,
6008         IX86_BUILTIN_CMPPS256, IX86_BUILTIN_CVTDQ2PD256,
6009         IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
6010         IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
6011         IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
6012         IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_EXTRACTF128PD256,
6013         IX86_BUILTIN_EXTRACTF128PS256, IX86_BUILTIN_EXTRACTF128SI256,
6014         IX86_BUILTIN_VZEROALL, IX86_BUILTIN_VZEROUPPER,
6015         IX86_BUILTIN_VZEROUPPER_REX64, IX86_BUILTIN_VPERMILVARPD,
6016         IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
6017         IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_VPERMILPD,
6018         IX86_BUILTIN_VPERMILPS, IX86_BUILTIN_VPERMILPD256,
6019         IX86_BUILTIN_VPERMILPS256, IX86_BUILTIN_VPERMIL2PD,
6020         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256,
6021         IX86_BUILTIN_VPERMIL2PS256, IX86_BUILTIN_VPERM2F128PD256,
6022         IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
6023         IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
6024         IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
6025         IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_VINSERTF128PD256,
6026         IX86_BUILTIN_VINSERTF128PS256, IX86_BUILTIN_VINSERTF128SI256,
6027         IX86_BUILTIN_LOADUPD256, IX86_BUILTIN_LOADUPS256,
6028         IX86_BUILTIN_STOREUPD256, IX86_BUILTIN_STOREUPS256,
6029         IX86_BUILTIN_LDDQU256, IX86_BUILTIN_LOADDQU256,
6030         IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_MASKLOADPD,
6031         IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKSTOREPD,
6032         IX86_BUILTIN_MASKSTOREPS, IX86_BUILTIN_MASKLOADPD256,
6033         IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKSTOREPD256,
6034         IX86_BUILTIN_MASKSTOREPS256, IX86_BUILTIN_MOVSHDUP256,
6035         IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
6036         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
6037         IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
6038         IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
6039         IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
6040         IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
6041         IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
6042         IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
6043         IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
6044         IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
6045         IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
6046         IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
6047         IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
6048         IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
6049         IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
6050         IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
6051         IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
6052         IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256
6053         and IX86_BUILTIN_MOVMSKPS256,
6054         (ix86_special_builtin_type): Add V32QI_FTYPE_PCCHAR,
6055         V8SF_FTYPE_PCV4SF, V8SF_FTYPE_PCFLOAT, V4DF_FTYPE_PCV2DF,
6056         V4DF_FTYPE_PCDOUBLE, V8SF_FTYPE_PCV8SF_V8SF,
6057         V4DF_FTYPE_PCV4DF_V4DF, V4SF_FTYPE_PCV4SF_V4SF,
6058         V2DF_FTYPE_PCV2DF_V2DF, VOID_FTYPE_PCHAR_V32QI,
6059         VOID_FTYPE_PFLOAT_V8SF, VOID_FTYPE_PDOUBLE_V4DF,
6060         VOID_FTYPE_PV8SF_V8SF_V8SF, VOID_FTYPE_PV4DF_V4DF_V4DF,
6061         VOID_FTYPE_PV4SF_V4SF_V4SF and VOID_FTYPE_PV2DF_V2DF_V2DF,
6062         (ix86_builtin_type): Add INT_FTYPE_V8SF_V8SF_PTEST,
6063         INT_FTYPE_V4DI_V4DI_PTEST, INT_FTYPE_V4DF_V4DF_PTEST,
6064         INT_FTYPE_V4SF_V4SF_PTEST, INT_FTYPE_V2DF_V2DF_PTEST,
6065         INT_FTYPE_V8SF, INT_FTYPE_V4DF, V8SI_FTYPE_V8SF, V8SI_FTYPE_V4SI,
6066         V8SF_FTYPE_V8SF, V8SF_FTYPE_V8SI, V8SF_FTYPE_V4SF,
6067         V4SI_FTYPE_V8SI, V4SI_FTYPE_V4DF, V4DF_FTYPE_V4DF,
6068         V4DF_FTYPE_V4SI, V4DF_FTYPE_V4SF, V4DF_FTYPE_V2DF,
6069         V4SF_FTYPE_V4DF, V4SF_FTYPE_V8SF, V2DF_FTYPE_V4DF,
6070         V8SF_FTYPE_V8SF_V8SF, V8SF_FTYPE_V8SF_V8SI,
6071         V4DF_FTYPE_V4DF_V4DF, V4DF_FTYPE_V4DF_V4DI,
6072         V4SF_FTYPE_V4SF_V4SI, V2DF_FTYPE_V2DF_V2DI,
6073         V8SF_FTYPE_V8SF_INT, V4SI_FTYPE_V8SI_INT, V4SF_FTYPE_V8SF_INT,
6074         V2DF_FTYPE_V4DF_INT, V4DF_FTYPE_V4DF_INT,
6075         V8SF_FTYPE_V8SF_V8SF_V8SF, V4DF_FTYPE_V4DF_V4DF_V4DF,
6076         V8SI_FTYPE_V8SI_V8SI_INT, V8SF_FTYPE_V8SF_V8SF_INT,
6077         V4DF_FTYPE_V4DF_V4DF_INT, V4DF_FTYPE_V4DF_V2DF_INT,
6078         V8SF_FTYPE_V8SF_V8SF_V8SI_INT, V4DF_FTYPE_V4DF_V4DF_V4DI_INT,
6079         V4SF_FTYPE_V4SF_V4SF_V4SI_INT and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
6080         (bdesc_special_args): Add IX86_BUILTIN_VZEROALL,
6081         IX86_BUILTIN_VZEROUPPER. IX86_BUILTIN_VZEROUPPER_REX64,
6082         IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
6083         IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
6084         IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_LOADUPD256,
6085         IX86_BUILTIN_LOADUPS256, IX86_BUILTIN_STOREUPD256,
6086         IX86_BUILTIN_STOREUPS256, IX86_BUILTIN_LOADDQU256,
6087         IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_LDDQU256,
6088         IX86_BUILTIN_MASKLOADPD, IX86_BUILTIN_MASKLOADPS,
6089         IX86_BUILTIN_MASKLOADPD256, IX86_BUILTIN_MASKLOADPS256,
6090         IX86_BUILTIN_MASKSTOREPD, IX86_BUILTIN_MASKSTOREPS,
6091         IX86_BUILTIN_MASKSTOREPD256 and IX86_BUILTIN_MASKSTOREPS256.
6092         (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
6093         IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
6094         IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
6095         IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
6096         IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_DIVPD256,
6097         IX86_BUILTIN_DIVPS256, IX86_BUILTIN_HADDPD256,
6098         IX86_BUILTIN_HSUBPS256, IX86_BUILTIN_HSUBPD256,
6099         IX86_BUILTIN_HADDPS256, IX86_BUILTIN_MAXPD256,
6100         IX86_BUILTIN_MAXPS256, IX86_BUILTIN_MINPD256,
6101         IX86_BUILTIN_MINPS256, IX86_BUILTIN_MULPD256,
6102         IX86_BUILTIN_MULPS256, IX86_BUILTIN_ORPD256,
6103         IX86_BUILTIN_ORPS256, IX86_BUILTIN_SUBPD256,
6104         IX86_BUILTIN_SUBPS256, IX86_BUILTIN_XORPD256,
6105         IX86_BUILTIN_XORPS256, IX86_BUILTIN_VPERMILVARPD,
6106         IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
6107         IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_BLENDPD256,
6108         IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
6109         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DPPS256,
6110         IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
6111         IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
6112         IX86_BUILTIN_CMPPS,
6113         IX86_BUILTIN_CMPPD256,IX86_BUILTIN_CMPPS256,
6114         IX86_BUILTIN_EXTRACTF128PD256, IX86_BUILTIN_EXTRACTF128PS256,
6115         IX86_BUILTIN_EXTRACTF128SI256, IX86_BUILTIN_CVTDQ2PD256,
6116         IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
6117         IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
6118         IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
6119         IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_VPERM2F128PD256,
6120         IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
6121         IX86_BUILTIN_VPERMILPD, IX86_BUILTIN_VPERMILPS,
6122         IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
6123         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMILPS,
6124         IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
6125         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
6126         IX86_BUILTIN_VPERMIL2PD256, IX86_BUILTIN_VPERMIL2PS256,
6127         IX86_BUILTIN_VINSERTF128PD256, IX86_BUILTIN_VINSERTF128PS256,
6128         IX86_BUILTIN_VINSERTF128SI256, IX86_BUILTIN_MOVSHDUP256,
6129         IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
6130         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
6131         IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
6132         IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
6133         IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
6134         IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
6135         IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
6136         IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
6137         IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
6138         IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
6139         IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
6140         IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
6141         IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
6142         IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
6143         IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
6144         IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
6145         IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
6146         IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256 and
6147         IX86_BUILTIN_MOVMSKPS256.
6148         (ix86_init_mmx_sse_builtins): Support AVX builtins.
6149         (ix86_expand_args_builtin): Likewise.
6150         (ix86_expand_special_args_builtin): Likewise.
6151         (ix86_hard_regno_mode_ok): Handle AVX modes.
6152         (ix86_expand_vector_init_duplicate): Likewise.
6153         (ix86_expand_vector_init_one_nonzero): Likewise.
6154         (ix86_expand_vector_init_one_var): Likewise.
6155         (ix86_expand_vector_init_concat): Likewise.
6156         (ix86_expand_vector_init_general): Likewise.
6157         (ix86_expand_vector_set): Likewise.
6158         (ix86_vector_mode_supported_p): Likewise.
6159         (x86_extended_reg_mentioned_p): Check INSN_P before using
6160         PATTERN.
6161
6162         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
6163         OPTION_MASK_ISA_AVX and OPTION_MASK_ISA_FMA.
6164
6165         * config/i386/i386.h (TARGET_AVX): New.
6166         (TARGET_FMA): Likewise.
6167         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AVX and TARGET_FMA.
6168         (BIGGEST_ALIGNMENT): Set to 256 for TARGET_AVX.
6169         (VALID_AVX256_REG_MODE): New.
6170         (AVX256_VEC_FLOAT_MODE_P): Likewise.
6171         (AVX_FLOAT_MODE_P): Likewise.
6172         (AVX128_VEC_FLOAT_MODE_P): Likewise.
6173         (AVX256_VEC_FLOAT_MODE_P): Likewise.
6174         (AVX_VEC_FLOAT_MODE_P): Likewise.
6175         (ASM_OUTPUT_AVX_PREFIX): Likewise.
6176         (ASM_OUTPUT_OPCODE): Likewise.
6177         (UNITS_PER_SIMD_WORD): Add a FIXME for 32byte vectorizer
6178         support.
6179         (SSE_REG_MODE_P): Allow 256bit vector modes.
6180         (ix86_args): Add a warn_avx field.
6181
6182         * config/i386/i386.md (UNSPEC_PCMP): New.
6183         (UNSPEC_VPERMIL): Likewise.
6184         (UNSPEC_VPERMIL2): Likewise.
6185         (UNSPEC_VPERMIL2F128): Likewise.
6186         (UNSPEC_MASKLOAD): Likewise.
6187         (UNSPEC_MASKSTORE): Likewise.
6188         (UNSPEC_CAST): Likewise.
6189         (UNSPEC_VTESTP): Likewise.
6190         (UNSPECV_VZEROALL): Likewise.
6191         (UNSPECV_VZEROUPPER): Likewise.
6192         (XMM0_REG): Likewise.
6193         (XMM1_REG): Likewise.
6194         (XMM2_REG): Likewise.
6195         (XMM3_REG): Likewise.
6196         (XMM4_REG): Likewise.
6197         (XMM5_REG): Likewise.
6198         (XMM6_REG): Likewise.
6199         (XMM8_REG): Likewise.
6200         (XMM9_REG): Likewise.
6201         (XMM10_REG): Likewise.
6202         (XMM11_REG): Likewise.
6203         (XMM12_REG): Likewise.
6204         (XMM13_REG): Likewise.
6205         (XMM14_REG): Likewise.
6206         (XMM15_REG): Likewise.
6207         (prefix): Likewise.
6208         (prefix_vex_imm8): Likewise.
6209         (prefix_vex_w): Likewise.
6210         (length_vex): Likewise.
6211         (maxmin): Likewise.
6212         (movoi): Likewise.
6213         (*avx_ashlti3): Likewise.
6214         (*avx_lshrti3): Likewise.
6215         (*avx_setcc<mode>): Likewise.
6216         (*fop_<mode>_comm_mixed_avx): Likewise.
6217         (*fop_<mode>_comm_avx): Likewise.
6218         (*fop_<mode>_1_mixed_avx): Likewise.
6219         (*fop_<mode>_1_avx): Likewise.
6220         (*avx_<code><mode>3): Likewise.
6221         (*avx_ieee_smin<mode>3): Likewise.
6222         (*avx_ieee_smax<mode>3): Likewise.
6223         (mode): Add OI, V8SF and V4DF.
6224         (length): Support VEX prefix.
6225         (*cmpfp_i_mixed): Set prefix attribute.
6226         (*cmpfp_i_sse): Likewise.
6227         (*cmpfp_iu_mixed): Likewise.
6228         (*cmpfp_iu_sse): Likewise.
6229         (*movsi_1): Support AVX.
6230         (*movdi_2): Likewise.
6231         (*movdi_1_rex64): Likewise.
6232         (*movti_internal): Likewise.
6233         (*movti_rex64): Likewise.
6234         (*movsf_1): Likewise.
6235         (*movdf_nointeger): Likewise.
6236         (*movdf_integer_rex64): Likewise.
6237         (*movtf_internal): Likewise.
6238         (zero_extendsidi2_32): Likewise.
6239         (zero_extendsidi2_rex64): Likewise.
6240         (*extendsfdf2_mixed): Likewise.
6241         (*extendsfdf2_sse): Likewise.
6242         (*truncdfsf_fast_mixed): Likewise.
6243         (*truncdfsf_fast_sse): Likewise.
6244         (*truncdfsf_mixed): Likewise.
6245         (fix_trunc<mode>di_sse): Likewise.
6246         (fix_trunc<mode>si_sse): Likewise.
6247         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
6248         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
6249         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
6250         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
6251         (*rcpsf2_sse): Likewise.
6252         (*rsqrtsf2_sse): Likewise.
6253         (*sqrt<mode>2_sse): Likewise.
6254         (sse4_1_round<mode>2): Likewise.
6255         (*sse_prologue_save_insn): Disallow REX prefix for AVX.
6256         Support AVX.  Set length attribute properly for AVX.
6257
6258         * config/i386/i386-modes.def (VECTOR_MODES (INT, 32)): New.
6259         (VECTOR_MODES (FLOAT, 32)): Likewise.
6260         (VECTOR_MODE (INT, DI, 8)): Likewise.
6261         (VECTOR_MODE (INT, HI, 32)): Likewise.
6262         (VECTOR_MODE (INT, QI, 64)): Likewise.
6263         (VECTOR_MODE (FLOAT, DF, 8)): Likewise.
6264         (VECTOR_MODE (FLOAT, SF, 16)): Likewise.
6265         (VECTOR_MODE (INT, DI, 4)): Removed.
6266         (VECTOR_MODE (INT, SI, 8)): Likewise.
6267         (VECTOR_MODE (INT, HI, 16)): Likewise.
6268         (VECTOR_MODE (INT, QI, 32)): Likewise.
6269         (VECTOR_MODE (FLOAT, SF, 8)): Likewise.
6270         (INT_MODE (OI, 32)): Likewise.
6271
6272         * config/i386/i386.opt (mavx): New.
6273         (mfma): Likewise.
6274
6275         * config/i386/i386-protos.h (ix86_attr_length_vex_default): New.
6276
6277         * config/i386/mmx.md (*mov<mode>_internal_rex64): Support AVX.
6278         (*mov<mode>_internal_avx): New.
6279         (*movv2sf_internal_rex64_avx): Likewise.
6280         (*movv2sf_internal_avx): Likewise.
6281
6282         * config/i386/predicates.md (const_4_to_5_operand): New.
6283         (const_6_to_7_operand): Likewise.
6284         (const_8_to_11_operand): Likewise.
6285         (const_12_to_15_operand): Likewise.
6286         (avx_comparison_float_operator): Likewise.
6287
6288         * config/i386/sse.md (AVX256MODEI): New.
6289         (AVX256MODE): Likewise.
6290         (AVXMODEQI): Likewise.
6291         (AVXMODE): Likewise.
6292         (AVX256MODEF2P): Likewise.
6293         (AVX256MODE2P): Likewise.
6294         (AVX256MODE4P): Likewise.
6295         (AVX256MODE8P): Likewise.
6296         (AVXMODEF2P): Likewise.
6297         (AVXMODEF4P): Likewise.
6298         (AVXMODEDCVTDQ2PS): Likewise.
6299         (AVXMODEDCVTPS2DQ): Likewise.
6300         (avxvecmode): Likewise.
6301         (avxvecpsmode): Likewise.
6302         (avxhalfvecmode): Likewise.
6303         (avxscalarmode): Likewise.
6304         (avxcvtvecmode): Likewise.
6305         (avxpermvecmode): Likewise.
6306         (avxmodesuffixf2c): Likewise.
6307         (avxmodesuffixp): Likewise.
6308         (avxmodesuffixs): Likewise.
6309         (avxmodesuffix): Likewise.
6310         (vpermilbits): Likewise.
6311         (pinsrbits): Likewise.
6312         (mov<mode>): Likewise.
6313         (*mov<mode>_internal): Likewise.
6314         (push<mode>1): Likewise.
6315         (movmisalign<mode>): Likewise.
6316         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6317         (avx_movdqu<avxmodesuffix>): Likewise.
6318         (avx_lddqu<avxmodesuffix>): Likewise.
6319         (<plusminus_insn><mode>3): Likewise.
6320         (*avx_<plusminus_insn><mode>3): Likewise.
6321         (*avx_vm<plusminus_insn><mode>3): Likewise.
6322         (mul<mode>3): Likewise.
6323         (*avx_mul<mode>3): Likewise.
6324         (*avx_vmmul<mode>3): Likewise.
6325         (divv8sf3): Likewise.
6326         (divv4df3): Likewise.
6327         (avx_div<mode>3): Likewise.
6328         (*avx_div<mode>3): Likewise.
6329         (*avx_vmdiv<mode>3): Likewise.
6330         (avx_rcpv8sf2): Likewise.
6331         (*avx_vmrcpv4sf2): Likewise.
6332         (sqrtv8sf2): Likewise.
6333         (avx_sqrtv8sf2): Likewise.
6334         (*avx_vmsqrt<mode>2): Likewise.
6335         (rsqrtv8sf2): Likewise.
6336         (avx_rsqrtv8sf2): Likewise.
6337         (*avx_vmrsqrtv4sf2): Likewise.
6338         (<code><mode>3): Likewise.
6339         (*avx_<code><mode>3_finite): Likewise.
6340         (*avx_<code><mode>3): Likewise.
6341         (*avx_vm<code><mode>3): Likewise.
6342         (*avx_ieee_smin<mode>3): Likewise.
6343         (*avx_ieee_smax<mode>3): Likewise.
6344         (avx_addsubv8sf3): Likewise.
6345         (avx_addsubv4df3): Likewise.
6346         (*avx_addsubv4sf3): Likewise.
6347         (*avx_addsubv2df3): Likewise.
6348         (avx_h<plusminus_insn>v4df3): Likewise.
6349         (avx_h<plusminus_insn>v8sf3): Likewise.
6350         (*avx_h<plusminus_insn>v4sf3): Likewise.
6351         (*avx_h<plusminus_insn>v2df3): Likewise.
6352         (avx_cmpp<avxmodesuffixf2c><mode>3): Likewise.
6353         (avx_cmps<ssemodesuffixf2c><mode>3): Likewise.
6354         (*avx_maskcmp<mode>3): Likewise.
6355         (avx_nand<mode>3): Likewise.
6356         (*avx_<code><mode>3): Likewise.
6357         (*avx_nand<mode>3): Likewise.
6358         (*avx_<code><mode>3): Likewise.
6359         (*avx_cvtsi2ss): Likewise.
6360         (*avx_cvtsi2ssq): Likewise.
6361         (*avx_cvtsi2sd): Likewise.
6362         (*avx_cvtsi2sdq): Likewise.
6363         (*avx_cvtsd2ss): Likewise.
6364         (avx_cvtss2sd): Likewise.
6365         (avx_cvtdq2ps<avxmodesuffix>): Likewise.
6366         (avx_cvtps2dq<avxmodesuffix>): Likewise.
6367         (avx_cvttps2dq<avxmodesuffix>): Likewise.
6368         (*avx_cvtsi2sd): Likewise.
6369         (*avx_cvtsi2sdq): Likewise.
6370         (avx_cvtdq2pd256): Likewise.
6371         (avx_cvtpd2dq256): Likewise.
6372         (avx_cvttpd2dq256): Likewise.
6373         (*avx_cvtsd2ss): Likewise.
6374         (*avx_cvtss2sd): Likewise.
6375         (avx_cvtpd2ps256): Likewise.
6376         (avx_cvtps2pd256): Likewise.
6377         (*avx_movhlps): Likewise.
6378         (*avx_movlhps): Likewise.
6379         (avx_unpckhps256): Likewise.
6380         (*avx_unpckhps): Likewise.
6381         (avx_unpcklps256): Likewise.
6382         (*avx_unpcklps): Likewise.
6383         (avx_movshdup256): Likewise.
6384         (avx_movsldup256): Likewise.
6385         (avx_shufps256): Likewise.
6386         (avx_shufps256_1): Likewise.
6387         (*avx_shufps_<mode>): Likewise.
6388         (*avx_loadhps): Likewise.
6389         (*avx_storelps): Likewise.
6390         (*avx_loadlps): Likewise.
6391         (*avx_movss): Likewise.
6392         (*vec_dupv4sf_avx): Likewise.
6393         (*vec_concatv2sf_avx): Likewise.
6394         (*vec_concatv4sf_avx): Likewise.
6395         (*vec_setv4sf_0_avx): Likewise.
6396         (*vec_setv4sf_avx): Likewise.
6397         (*avx_insertps): Likewise.
6398         (avx_vextractf128<mode>): Likewise.
6399         (vec_extract_lo_<mode>): Likewise.
6400         (vec_extract_hi_<mode>): Likewise.
6401         (vec_extract_lo_<mode>): Likewise.
6402         (vec_extract_hi_<mode>): Likewise.
6403         (vec_extract_lo_v16hi): Likewise.
6404         (vec_extract_hi_v16hi): Likewise.
6405         (vec_extract_lo_v32qi): Likewise.
6406         (vec_extract_hi_v32qi): Likewise.
6407         (avx_unpckhpd256): Likewise.
6408         (*avx_unpckhpd): Likewise.
6409         (avx_movddup256): Likewise.
6410         (*avx_movddup): Likewise.
6411         (avx_unpcklpd256): Likewise.
6412         (*avx_unpcklpd): Likewise.
6413         (avx_shufpd256): Likewise.
6414         (avx_shufpd256_1): Likewise.
6415         (*avx_punpckhqdq): Likewise.
6416         (*avx_punpcklqdq): Likewise.
6417         (*avx_shufpd_<mode>): Likewise.
6418         (*avx_storehpd): Likewise.
6419         (*avx_loadhpd): Likewise.
6420         (*avx_loadlpd): Likewise.
6421         (*avx_movsd): Likewise.
6422         (*vec_concatv2df_avx): Likewise.
6423         (*avx_<plusminus_insn><mode>3): Likewise.
6424         (*avx_<plusminus_insn><mode>3): Likewise.
6425         (*avx_mulv8hi3): Likewise.
6426         (*avxv8hi3_highpart): Likewise.
6427         (*avx_umulv8hi3_highpart): Likewise.
6428         (*avx_umulv2siv2di3): Likewise.
6429         (*avx_mulv2siv2di3): Likewise.
6430         (*avx_pmaddwd): Likewise.
6431         (*avx_mulv4si3): Likewise.
6432         (*avx_ashr<mode>3): Likewise.
6433         (*avx_lshr<mode>3): Likewise.
6434         (*avx_ashl<mode>3): Likewise.
6435         (*avx_<code><mode>3): Likewise.
6436         (*avx_eq<mode>3): Likewise.
6437         (*avx_gt<mode>3): Likewise.
6438         (*avx_nand<mode>3): Likewise.
6439         (*avx_nand<mode>3): Likewise.
6440         (*avx_<code><mode>3): Likewise.
6441         (*avx_<code><mode>3): Likewise.
6442         (*avx_packsswb): Likewise.
6443         (*avx_packssdw): Likewise.
6444         (*avx_packuswb): Likewise.
6445         (*avx_punpckhbw): Likewise.
6446         (*avx_punpcklbw): Likewise.
6447         (*avx_punpckhwd): Likewise.
6448         (*avx_punpcklwd): Likewise.
6449         (*avx_punpckhdq): Likewise.
6450         (*avx_punpckldq): Likewise.
6451         (*avx_pinsr<avxmodesuffixs>): Likewise.
6452         (*avx_pinsrq): Likewise.
6453         (*avx_loadld): Likewise.
6454         (*vec_extractv2di_1_rex64_avx): Likewise.
6455         (*vec_extractv2di_1_avx): Likewise.
6456         (*vec_dupv2di_avx): Likewise.
6457         (*vec_concatv2si_avx): Likewise.
6458         (*vec_concatv4si_1_avx): Likewise.
6459         (*vec_concatv2di_avx): Likewise.
6460         (*vec_concatv2di_rex64_avx): Likewise.
6461         (*avx_uavgv16qi3): Likewise.
6462         (*avx_uavgv8hi3): Likewise.
6463         (*avx_psadbw): Likewise.
6464         (avx_movmskp<avxmodesuffixf2c>256): Likewise.
6465         (*avx_phaddwv8hi3): Likewise.
6466         (*avx_phadddv4si3): Likewise.
6467         (*avx_phaddswv8hi3): Likewise.
6468         (*avx_phsubwv8hi3): Likewise.
6469         (*avx_phsubdv4si3): Likewise.
6470         (*avx_phsubswv8hi3): Likewise.
6471         (*avx_pmaddubsw128): Likewise.
6472         (*avx_pmulhrswv8hi3): Likewise.
6473         (*avx_pshufbv16qi3): Likewise.
6474         (*avx_psign<mode>3): Likewise.
6475         (*avx_palignrti): Likewise.
6476         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6477         (avx_blendvp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6478         (avx_dpp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6479         (*avx_mpsadbw): Likewise.
6480         (*avx_packusdw): Likewise.
6481         (*avx_pblendvb): Likewise.
6482         (*avx_pblendw): Likewise.
6483         (avx_vtestp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6484         (avx_ptest256): Likewise.
6485         (avx_roundp<avxmodesuffixf2c>256): Likewise.
6486         (*avx_rounds<ssemodesuffixf2c>): Likewise.
6487         (*avx_aesenc): Likewise.
6488         (*avx_aesenclast): Likewise.
6489         (*avx_aesdec): Likewise.
6490         (*avx_aesdeclast): Likewise.
6491         (avx_vzeroupper): Likewise.
6492         (avx_vzeroupper_rex64): Likewise.
6493         (avx_vpermil<mode>): Likewise.
6494         (avx_vpermilvar<mode>3): Likewise.
6495         (avx_vpermil2<mode>3): Likewise.
6496         (avx_vperm2f128<mode>3): Likewise.
6497         (avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6498         (avx_vbroadcastss256): Likewise.
6499         (avx_vbroadcastf128_p<avxmodesuffixf2c>256): Likewise.
6500         (avx_vinsertf128<mode>): Likewise.
6501         (vec_set_lo_<mode>): Likewise.
6502         (vec_set_hi_<mode>): Likewise.
6503         (vec_set_lo_<mode>): Likewise.
6504         (vec_set_hi_<mode>): Likewise.
6505         (vec_set_lo_v16hi): Likewise.
6506         (vec_set_hi_v16hi): Likewise.
6507         (vec_set_lo_v32qi): Likewise.
6508         (vec_set_hi_v32qi): Likewise.
6509         (avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6510         (avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6511         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
6512         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Likewise.
6513         (vec_init<mode>): Likewise.
6514         (*vec_concat<mode>_avx): Likewise.
6515         (blendbits): Support V8SF and V4DF.
6516         (sse2_movq128): Support AVX.
6517         (<sse>_movnt<mode>): Likewise.
6518         (sse2_movntv2di): Likewise.
6519         (sse_rcpv4sf2): Likewise.
6520         (sse_sqrtv4sf2): Likewise.
6521         (sse_rsqrtv4sf2): Likewise.
6522         (<sse>_comi): Likewise.
6523         (<sse>_ucomi): Likewise.
6524         (sse_cvtss2si): Likewise.
6525         (sse_cvtss2si_2): Likewise.
6526         (sse_cvtss2siq): Likewise.
6527         (sse_cvtss2siq_2): Likewise.
6528         (sse_cvttss2si): Likewise.
6529         (sse_cvttss2siq): Likewise.
6530         (sse2_cvtsd2si): Likewise.
6531         (sse2_cvtsd2si_2): Likewise.
6532         (sse2_cvtsd2siq): Likewise.
6533         (sse2_cvtsd2siq_2): Likewise.
6534         (sse2_cvttsd2si): Likewise.
6535         (sse2_cvttsd2siq): Likewise.
6536         (sse2_cvtdq2pd): Likewise.
6537         (*sse2_cvtpd2dq): Likewise.
6538         (*sse2_cvttpd2dq): Likewise.
6539         (*sse2_cvtpd2ps): Likewise.
6540         (sse2_cvtps2pd): Likewise.
6541         (sse3_movshdup): Likewise.
6542         (sse3_movsldup): Likewise.
6543         (sse_storehps): Likewise.
6544         (*sse4_1_extractps): Likewise.
6545         (sse2_storelpd): Likewise.
6546         (vec_dupv2df_sse3): Likewise.
6547         (*vec_concatv2df_sse3): Likewise.
6548         (*sse4_1_pextrb): Likewise.
6549         (*sse4_1_pextrb_memory): Likewise.
6550         (*sse2_pextrw): Likewise.
6551         (*sse4_1_pextrw_memory): Likewise.
6552         (*sse4_1_pextrd): Likewise.
6553         (*sse4_1_pextrq): Likewise.
6554         (sse2_pshufd_1): Likewise.
6555         (sse2_pshuflw_1): Likewise.
6556         (sse2_pshufhw_1): Likewise.
6557         (*sse2_storeq_rex64): Likewise.
6558         (*vec_dupv4si): Likewise.
6559         (<sse>_movmskp<ssemodesuffixf2c>): Likewise.
6560         (sse2_pmovmskb): Likewise.
6561         (*sse2_maskmovdqu): Likewise.
6562         (*sse2_maskmovdqu_rex64): Likewise.
6563         (sse_ldmxcsr): Likewise.
6564         (sse_stmxcsr): Likewise.
6565         (abs<mode>2): Likewise.
6566         (sse4_1_movntdqa): Likewise.
6567         (sse4_1_phminposuw): Likewise.
6568         (sse4_1_extendv8qiv8hi2): Likewise.
6569         (*sse4_1_extendv8qiv8hi2): Likewise.
6570         (sse4_1_extendv4qiv4si2): Likewise.
6571         (*sse4_1_extendv4qiv4si2): Likewise.
6572         (sse4_1_extendv2qiv2di2): Likewise.
6573         (*sse4_1_extendv2qiv2di2): Likewise.
6574         (sse4_1_extendv4hiv4si2): Likewise.
6575         (*sse4_1_extendv4hiv4si2): Likewise.
6576         (sse4_1_extendv2hiv2di2): Likewise.
6577         (*sse4_1_extendv2hiv2di2): Likewise.
6578         (sse4_1_extendv2siv2di2): Likewise.
6579         (*sse4_1_extendv2siv2di2): Likewise.
6580         (sse4_1_zero_extendv8qiv8hi2): Likewise.
6581         (*sse4_1_zero_extendv8qiv8hi2): Likewise.
6582         (sse4_1_zero_extendv4qiv4si2): Likewise.
6583         (*sse4_1_zero_extendv4qiv4si2): Likewise.
6584         (sse4_1_zero_extendv2qiv2di2): Likewise.
6585         (*sse4_1_zero_extendv2qiv2di2): Likewise.
6586         (sse4_1_zero_extendv4hiv4si2): Likewise.
6587         (*sse4_1_zero_extendv4hiv4si2): Likewise.
6588         (sse4_1_zero_extendv2hiv2di2): Likewise.
6589         (*sse4_1_zero_extendv2hiv2di2): Likewise.
6590         (sse4_1_zero_extendv2siv2di2): Likewise.
6591         (*sse4_1_zero_extendv2siv2di2): Likewise.
6592         (sse4_1_ptest): Likewise.
6593         (sse4_1_roundp<ssemodesuffixf2c>): Likewise.
6594         (sse4_2_pcmpestri): Likewise.
6595         (sse4_2_pcmpestrm): Likewise.
6596         (sse4_2_pcmpistri): Likewise.
6597         (sse4_2_pcmpistrm): Likewise.
6598         (aesimc): Likewise.
6599         (aeskeygenassist): Likewise.
6600
6601 2008-08-28  Uros Bizjak  <ubizjak@gmail.com>
6602
6603         * config/i386/predicates.md (vzeroall_operation): New.
6604
6605         * config/i386/sse.md (avx_vzeroall): New.
6606         (*avx_vzeroall): Likewise.
6607
6608 2008-08-28  Paul Brook  <paul@codesourcery.com>
6609             Mark Shinwell  <shinwell@codesourcery.com>
6610             Richard Earnshaw  <richard.earnshaw@arm.com>
6611
6612         * config/arm/arm.c (TARGET_MAX_ANCHOR_OFFSET): New.
6613         (TARGET_MIN_ANCHOR_OFFSET): New.
6614         (arm_override_options): Set correct anchor ranges for Thumb-1
6615         and Thumb-2 if required.
6616         (legitimize_pic_address): Handle case involving a TLS symbol
6617         reference with an addend.
6618         (arm_optimization_options): Enable section anchors at -O1 and
6619         above.
6620         * config/arm/arm.h (OPTIMIZATION_OPTIONS): New.
6621         * config/arm/arm-protos.h (arm_optimization_options): New.
6622
6623 2008-08-28  Nick Clifton  <nickc@redhat.com>
6624
6625         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Define.
6626         * config/stormy16/stormy16.md (zero_extendqihi2): Fix length
6627         attribute.
6628
6629         * config/v850/v850.h (IRA_COVER_CLASSES): Define.
6630         * config/v850/v850.md (return): Remove frame size restriction.
6631
6632         * config/mcore/mcore.h (IRA_COVER_CLASSES): Define.
6633
6634         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Define.
6635
6636         * config/fr30/fr30.h (IRA_COVER_CLASSES): Define.
6637
6638         * config/m32r/m32r.h (IRA_COVER_CLASSES): Define.
6639
6640 2008-08-28  Paul Brook  <paul@codesourcery.com>
6641
6642         * config/arm/vfp11.md: Update license notice.
6643         * config/arm/cortex-r4.md: Ditto.
6644
6645 2008-08-28  Richard Guenther  <rguenther@suse.de>
6646
6647         PR tree-optimization/37207
6648         * tree-ssa-ifcombine.c (recognize_single_bit_test): Fix
6649         tuplification bug.
6650
6651 2008-08-28  Dodji Seketeli  <dodji@redhat.com>
6652
6653         PR c++/36741
6654         * tree.c (int_fits_type_p): Don't forget unsigned integers
6655           of type sizetype which higher end word equals -1.
6656
6657 2008-08-28  Ira Rosen  <irar@il.ibm.com>
6658
6659         * target.h (struct vectorize): Add new target builtin.
6660         * tree-vectorizer.c (destroy_loop_vec_info): Call
6661         vect_free_slp_instance instead of vect_free_slp_node.
6662         * tree-vectorizer.h (enum slp_load_perm_type): New.
6663         (struct _slp_instance): Add new fields.
6664         (SLP_INSTANCE_LOAD_PERMUTATION): New.
6665         (SLP_INSTANCE_LOADS): New.
6666         (vect_free_slp_tree): Remove.
6667         (vect_free_slp_instance): Declare.
6668         (SLP_TREE_LOADS_PERM_TYPE, TARG_VEC_PERMUTE_COST): New.
6669         (vectorizable_load): Add argument.
6670         (vect_transform_slp_perm_load): New.
6671         * tree-vect-analyze.c (vect_analyze_operations): Add an argument to
6672         vectorizable_load.
6673         (vect_get_place_in_interleaving_chain): New function.
6674         (vect_free_slp_tree): Make static.
6675         (vect_free_slp_instance): New function.
6676         (vect_build_slp_tree): Add new arguments. Allow load permutations and
6677         collect the load location in the interleaving chain.
6678         (vect_supported_slp_permutation_p): New function.
6679         (vect_supported_load_permutation_p): Likewise.
6680         (vect_analyze_slp_instance): In case of loads permutation, call
6681         vect_supported_load_permutation_p to check that the permutation is
6682         supported.
6683         * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM): New.
6684         * tree-vect-transform.c (vect_transform_stmt): Add new argument.
6685         (vect_create_mask_and_perm): New function.
6686         (vect_get_mask_element, vect_transform_slp_perm_load): Likewise.
6687         (vectorizable_load): Add an argument. Don't keep the created vectors
6688         statements in the node if permutation is required. Call
6689         vect_transform_slp_perm_load to generate the permutation.
6690         (vect_transform_stmt): Add new argument. Call vectorizable_load with
6691         additional argument.
6692         (vect_schedule_slp_instance): In case of loads permutation, allocate
6693         vectorized statements structure for all the related SLP nodes. Call
6694         vect_transform_stmt with addditional argument.
6695         (vect_transform_loop): Call vect_transform_stmt with correct arguments.
6696         * config/spu/spu.c (spu_builtin_vec_perm): New.
6697         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
6698         * config/spu/spu.h (TARG_VEC_PERMUTE_COS): Define.
6699         * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): New.
6700         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
6701
6702 2008-08-28  Chris Fairles  <chris.fairles@gmail.com>
6703
6704         * gthr-posix.h (__gthread_create,  __gthread_join, __gthread_detach,
6705         __gthread_mutex_timed_lock, __gthread_recursive_mutex_timed_lock,
6706         __gthread_cond_signal, __gthread_cond_timedwait,
6707         __gthread_cond_timedwait_recursive): New functions.
6708         * gthr-posix.c (pthread_mutex_timedlock, pthread_cond_timedwait):
6709         Likewise.
6710         * gthr.h: Comment on defining __GTHREADS_CXX0X macro in conforming
6711         thread interfaces.
6712
6713 2008-08-28  Richard Guenther  <rguenther@suse.de>
6714
6715         PR middle-end/37005
6716         * fold-const.c (maybe_canonicalize_comparison_1): Require
6717         undefined overflow only for canonicalizing A +- CST cmp CST.
6718         Make sure to not generate new constants that are not inside
6719         their TYPE_MIN/MAX_VALUE range.
6720         (maybe_canonicalize_comparison): Remove undefined overflow
6721         checking from here.
6722         (fold_binary): Remove now duplicate folding.
6723
6724 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
6725
6726         * c-typeck.c (convert_for_assignment): Adjust WARN_FOR_ASSIGNMENT
6727         use not updated in the last change.
6728
6729 2008-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
6730
6731         * config/sh/sh.h (REG_CLASS_CONTENTS): Drop fr32 from FPUL_REGS.
6732         (IRA_COVER_CLASSES): Add FPUL_REGS.
6733
6734 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6735
6736         PR 37217
6737         * c-common.c (conversion_warning): Check for null operands.
6738
6739 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6740
6741         PR c/31673
6742         * c-decl.c (check_for_loop_decls): Improve error message. Give
6743         hint.
6744
6745 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6746
6747         PR c/37186
6748         * c-typeck.c (WARN_FOR_ASSIGNMENT): Add OPT parameter.
6749         (convert_for_assignment): Pass corrent OPT_W* parameter to
6750         WARN_FOR_ASSIGNMENT.
6751
6752 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
6753
6754         PR c++/35321
6755         * c-common.c (fold_offsetof_1): Handle TARGET_EXPR like CALL_EXPR.
6756
6757 2008-08-27  Paul Brook  <paul@codesourcery.com>
6758
6759         * config.gcc: Loosen checks for arm uclinux eabi targets.
6760
6761 2008-08-27  Paul Brook  <paul@codesourcery.com>
6762
6763         * config/arm/t-arm-coff (LIB1ASMFUNCS): Add missing undescrore on
6764         _clzsi2.
6765         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
6766
6767 2008-08-26  Douglas Gregor  <doug.gregor@gmail.com>
6768
6769         * c-common.c (do_switch_warnings): Look through the CONST_DECLs in
6770         the enumerators of an ENUMERAL_TYPE.
6771         * dbxout.c (dbxout_type): Ditto.
6772
6773 2008-08-26  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6774
6775         PR rtl-opt/37219
6776         * fwprop.c (fwprop): Check that the loop_father is the outer loop.
6777         (fwprop_addr): Check that the loop_father is not the outer loop.
6778
6779 2008-08-26  Paul Brook  <paul@codesourcery.com>
6780
6781         * config/arm/vfp.md: Document fmul{s,d} and fmac{s,d} types.
6782         Remove documentation entry for fmul type.
6783         Use fmuls to annotate single-precision multiplication patterns,
6784         fmuld to annotate double-precision multiplication patterns,
6785         fmacs to annotate single-precision multiply-accumulate patterns
6786         and fmacd to annotate double-precision multiply-accumulate patterns.
6787         * config/arm/vfp11.md: Update reservations accordingly.
6788         * config/arm/arm.md: Note that certain values of the "type"
6789         attribute are documented in vfp.md.
6790         * config/arm/arm1020e.md: Remove out of date duplicate comment.
6791         (v10_cvt): Use new fmul types.
6792
6793 2008-08-26  Paul Brook  <paul@codesourcery.com>
6794
6795         * config/arm/vfp.md: Move pipeline description for VFP11 to...
6796         * config/arm/vfp11.md: ...here.  New.
6797         * config/arm/arm.md: Include vfp11.md.
6798
6799 2008-08-26  Hans-Peter Nilsson  <hp@axis.com>
6800
6801         * opts.c (decode_options) [!IRA_COVER_CLASSES]: Add missing
6802         parameter to inform call.
6803
6804 2008-08-26  Jeff Law  <law@redhat.com>
6805
6806         * mn10300.md (movqi, movhi): Split i->d*a case into two cases to
6807         avoid the possibility of getting DATA_OR_ADDRESS_REGS as the
6808         preferred class when copying a constant into a partial word register.
6809
6810 2008-08-26  Ben Elliston  <bje@au.ibm.com>
6811
6812         * rtlanal.c: Fix uses of "it's" with "its" where appropriate.
6813         * cp/typeck.c: Likewise.
6814         * cp/tree.c: Likewise.
6815         * gimple-low.c: Likewise.
6816         * jump.c: Likewise.
6817
6818 2008-08-26  Vladimir Makarov  <vmakarov@redhat.com>
6819
6820         * ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
6821         ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.
6822
6823         * doc/passes.texi: Describe IRA.
6824
6825         * doc/tm.texi (IRA_COVER_CLASSES,
6826         IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.
6827
6828         * doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
6829         (-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
6830         -fira-propagate-cost, -fno-ira-share-save-slots,
6831         -fno-ira-share-spill-slots, -fira-verbose): Describe new options.
6832
6833         * flags.h (ira_algorithm): New enumeration.
6834         (flag_ira_algorithm, flag_ira_verbose): New external variable
6835         declarations.
6836
6837         * postreload.c (gate_handle_postreload): Don't do post reload
6838         optimizations unless the reload is completed.
6839
6840         * reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
6841         IRA.
6842
6843         * tree-pass.h (pass_ira): New external variable declaration.
6844
6845         * reload.h: Add 2008 to the Copyright.
6846
6847         * cfgloopanal.c: Include params.h.
6848         (estimate_reg_pressure_cost): Decrease cost for IRA optimization
6849         mode.
6850
6851         * params.h (IRA_MAX_LOOPS_NUM): New macro.
6852
6853         * toplev.c (ira.h): New include.
6854         (flag_ira_algorithm, flag_ira_verbose): New external variables.
6855         (backend_init_target): Call ira_init.
6856         (backend_init): Call ira_init_once.
6857         (finalize): Call finish_ira_once.
6858
6859         * toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
6860         flag_ira_share_save_slots, flag_ira_share_spill_slots): New
6861         external variables.
6862
6863         * regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
6864         may_move_out_cost): New external variable declarations.
6865         (move_table): New typedef.
6866
6867         * caller-save.c: Include headers output.h and ira.h.
6868         (no_caller_save_reg_set): New global variable.
6869         (save_slots_num, save_slots): New variables.
6870         (reg_save_code, reg_restore_code, add_stored_regs): Add
6871         prototypes.
6872         (init_caller_save): Set up no_caller_save_reg_set.
6873         (init_save_areas): Reset save_slots_num.
6874         (saved_hard_reg): New structure.
6875         (hard_reg_map, saved_regs_num, all_saved_regs): New variables.
6876         (initiate_saved_hard_regs, new_saved_hard_reg,
6877         finish_saved_hard_regs, saved_hard_reg_compare_func): New
6878         functions.
6879         (setup_save_areas): Add code for sharing stack slots.
6880         (all_blocks): New variable.
6881         (save_call_clobbered_regs): Process pseudo-register too.
6882         (mark_set_regs): Process pseudo-register too.
6883         (insert_one_insn): Put the insn after bb note in a empty basic
6884         block.  Add insn check.
6885
6886         * global.c (eliminable_regset): Make it external.
6887         (mark_elimination): Use DF_LR_IN for IRA.
6888         (pseudo_for_reload_consideration_p): New.
6889         (build_insn_chain): Make it external.  Don't ignore spilled
6890         pseudos for IRA.  Use pseudo_for_reload_consideration_p.
6891         (gate_handle_global_alloc): New function.
6892         (pass_global_alloc): Add the gate function.
6893
6894         * opts.c (decode_options): Set up flag_ira.  Print the warning for
6895         -fira.
6896         (common_handle_option): Process -fira-algorithm and -fira-verbose.
6897
6898         * timevar.def (TV_IRA, TV_RELOAD): New passes.
6899
6900         * regmove.c (regmove_optimize): Don't do replacement of output for
6901         IRA.
6902
6903         * hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
6904         New external variable declarations.
6905
6906         * local-alloc.c (update_equiv_regs): Make it external.  Return
6907         true if jump label rebuilding should be done.  Rescan new_insn for
6908         notes.
6909         (gate_handle_local_alloc): New function.
6910         (pass_local_alloc): Add the gate function.
6911
6912         * alias.c (value_addr_p, stack_addr_p): New functions.
6913         (nonoverlapping_memrefs_p): Use them for IRA.
6914
6915         * common.opt (fira, fira-algorithm, fira-coalesce,
6916         fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
6917         fira-verbose): New options.
6918
6919         * regclass.c (reg_class_subclasses, contains_reg_of_mode,
6920         move_cost, may_move_in_cost, may_move_out_cost): Make the
6921         variables external.
6922         (move_table): Remove typedef.
6923         (init_move_cost): Make it external.
6924         (allocate_reg_info, resize_reg_info, setup_reg_classes): New
6925         functions.
6926
6927         * rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
6928         setup_reg_classes): New function prototypes.
6929         (eliminable_regset): New external variable declaration.
6930         (build_insn_chain, update_equiv_regs): New function prototypes.
6931
6932         * Makefile.in (IRA_INT_H): New definition.
6933         (OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
6934         ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
6935         (reload1.o, toplev.o): Add dependence on ira.h.
6936         (cfgloopanal.o): Add PARAMS_H.
6937         (caller-save.o): Add dependence on output.h and ira.h.
6938         (ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
6939         ira-emit.o, ira-lives.o): New entries.
6940
6941         * passes.c (pass_ira): New pass.
6942
6943         * params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.
6944
6945         * reload1.c (ira.h): Include the header.
6946         (changed_allocation_pseudos): New bitmap.
6947         (init_reload): Initiate the bitmap.
6948         (compute_use_by_pseudos): Permits spilled registers in FROM.
6949         (temp_pseudo_reg_arr): New variable.
6950         (reload): Allocate and free temp_pseudo_reg_arr.  Sort pseudos for
6951         IRA.  Call alter_reg with the additional parameter.  Don't clear
6952         spilled_pseudos for IRA.  Restore original insn chain for IRA.
6953         Clear changed_allocation_pseudos at the end of reload.
6954         (calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
6955         (hard_regno_to_pseudo_regno): New variable.
6956         (count_pseudo): Check spilled pseudos.  Set up
6957         hard_regno_to_pseudo_regno.
6958         (count_spilled_pseudo): Check spilled pseudos. Update
6959         hard_regno_to_pseudo_regno.
6960         (find_reg): Use better_spill_reload_regno_p.  Check
6961         hard_regno_to_pseudo_regno.
6962         (alter_reg): Set up spilled_pseudos.  Add a new parameter.  Add
6963         code for IRA.
6964         (eliminate_regs_1): Use additional parameter for alter_reg.
6965         (finish_spills): Set up pseudo_previous_regs only for spilled
6966         pseudos.  Call reassign_pseudos once for all spilled pseudos, pass
6967         more arguments.  Don't clear live_throughout and dead_or_set for
6968         spilled pseudos.  Use additional parameter for alter_reg.  Call
6969         mark_allocation_change.  Set up changed_allocation_pseudos.
6970         Remove sanity check.
6971         (emit_input_reload_insns, delete_output_reload): Use additional
6972         parameter for alter_reg.  Call mark_allocation_change.
6973         (substitute, gen_reload_chain_without_interm_reg_p): New
6974         functions.
6975         (reloads_conflict): Use gen_reload_chain_without_interm_reg_p.
6976
6977         * testsuite/gcc.dg/20080410-1.c: New file.
6978
6979         * config/s390/s390.h (IRA_COVER_CLASSES,
6980         IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.
6981
6982         * config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.
6983
6984         * config/i386/i386.h (IRA_COVER_CLASSES): Ditto.
6985
6986         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
6987
6988         * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
6989
6990         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
6991
6992         * config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.
6993
6994         2008-08-24  Jeff Law  <law@redhat.com>
6995         * ira.c (setup_reg_class_intersect_union): Prefer smallest class
6996         when ignoring unavailable registers.
6997
6998         2008-08-24  Jeff Law  <law@redhat.com>
6999         * ira-color.c (coalesced_pseudo_reg_slot_compare): Check
7000         FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
7001         * ira.c (setup_eliminable_regset): Check stack_realign_needed.
7002         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.
7003
7004         2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com>
7005         * ira-build.c (allocno_range_compare_func): Stabilize sort.
7006
7007         2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com>
7008         * config/avr/avr.h (IRA_COVER_CLASSES): New macro.
7009         * reload1.c (find_reg): Process registers in register allocation order.
7010
7011         2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
7012         * toplev.c (backend_init_target): Move ira_init call from
7013         here...
7014         (lang_dependent_init_target): ...to here.
7015
7016         2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
7017         * ira.c (setup_class_subset_and_memory_move_costs): Don't
7018         calculate memory move costs for NO_REGS.
7019
7020         2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org>
7021         * ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
7022         STACK_REGS is defined.
7023
7024         2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
7025         * config/spu/spu.h (IRA_COVER_CLASSES): New macro.
7026
7027         2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com>
7028         * config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.
7029
7030         2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org>
7031         * config/sh/sh.h (IRA_COVER_CLASSES): Define.
7032         * config/sh/sh.md (movsicc_true+3): Check if emit returns a
7033         barrier.
7034
7035 2008-08-26  Victor Kaplansky  <victork@il.ibm.com>
7036             Dorit Nuzman  <dorit@il.ibm.com>
7037
7038         * gcc/config/spu/spu.md (vec_extract_evenv4si,
7039         vec_extract_evenv4sf, vec_extract_evenv8hi,
7040         vec_extract_evenv16qi, vec_extract_oddv4si,
7041         vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
7042         vec_interleave_highv4sf, vec_interleave_lowv4sf,
7043         vec_interleave_highv4si, vec_interleave_lowv4si,
7044         vec_interleave_highv8hi, vec_interleave_lowv8hi,
7045         vec_interleave_highv16qi, vec_interleave_lowv16qi,
7046         vec_pack_trunc_v8hi, vec_pack_trunc_v4si): Implement.S
7047
7048 2008-08-25  Janis Johnson  <janis187@us.ibm.com>
7049
7050         PR target/36756
7051         * config/rs6000/rs6000.c (optimization_options): Don't default to
7052         section anchors without toplevel reorder.
7053
7054 2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7055
7056         * config/spu/spu_mfcio.h (mfc_begin_critical_section): New function.
7057         (mfc_end_critical_section): Likewise.
7058
7059 2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7060
7061         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Propagate
7062         all type qualifiers from element type to vector type.
7063
7064 2008-08-25  David Daney  <ddaney@avtrex.com>
7065
7066         * config/mips/mips.md (immediate_insn): Move up in file, fix
7067         comment typo, reformat.
7068         (fetchop_bit, atomic_hiqi_op memory_barrier,
7069         sync_compare_and_swap<mode>, compare_and_swap_12, sync_add<mode>,
7070         sync_<optab><mode>, sync_<optab>_12, sync_old_<optab><mode>,
7071         sync_old_<optab>_12, sync_new_<optab><mode>, sync_new_<optab>_12,
7072         sync_nand<mode>, sync_nand_12, sync_old_nand<mode>,
7073         sync_old_nand_12, sync_new_nand<mode>, sync_new_nand_12,
7074         sync_sub<mode>, sync_old_add<mode>, sync_old_sub<mode>,
7075         sync_new_add<mode>, sync_new_sub<mode>, sync_<optab><mode>,
7076         sync_old_<optab><mode>, sync_new_<optab><mode>, sync_nand<mode>,
7077         sync_old_nand<mode>, sync_new_nand<mode>,
7078         sync_lock_test_and_set<mode>, sync_lock_test_and_set<mode>,
7079         test_and_set_12): Moved to sync.md.
7080         (sync.md): Include.
7081         * config/mips/sync.md: New file.
7082
7083 2008-08-25  Richard Henderson  <rth@redhat.com>
7084
7085         * dwarf2out.c (def_cfa_1): Don't scale by DWARF_CIE_DATA_ALIGNMENT.
7086         (regsave): Likewise.
7087         (lookup_cfa_1): Don't rescale by DWARF_CIE_DATA_ALIGNMENT.
7088         (output_cfi_directive): Likewise.
7089         (div_data_align): New.
7090         (output_cfi): Use it.
7091
7092 2008-08-24  Adam Nemet  <anemet@caviumnetworks.com>
7093
7094         * config.gcc (mips64*-*-linux*): Handle mips64octeon*-*-linux*.
7095         * config/mips/mips.h (enum processor_type): Add PROCESSOR_OCTEON.
7096         (TARGET_OCTEON): New macro.
7097         (TARGET_CPU_CPP_BUILTINS): Define __OCTEON__ for Octeon.
7098         (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC): Handle -march=octeon.
7099         (ISA_HAS_POP): New macro.
7100         * config/mips/driver-native.c (host_detect_local_cpu): Handle
7101         Octeon.
7102         * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
7103         Handle Octeon.
7104         * config/mips/mips.md (cpu): Add octeon.
7105         (type): Add pop attribute value.
7106         (popcount<mode>2): New pattern.
7107         * doc/invoke.texi (-march=@var{arch}): Add octeon.
7108
7109 2008-08-24  Jan Hubicka  <jh@suse.cz>
7110
7111         * doc/invoke.texi (-fipa-cp-clone): New option.
7112         (-fipa-cp): Update docs.
7113         (--param ipcp-unit-growth):New.
7114         * ipa-cp.c: Include fibheap.h, params.h
7115         (ipcp_initialize_node_lattices): When not cloning, all externally
7116         visible functions are bottom.
7117         (ipcp_need_redirect_p): Accept clones.
7118         (ipcp_insert_stage): Use cost driven heuristics.
7119         (max_count, dead_nodes): New static vars.
7120         (ipcp_need_original_clone_p, ipcp_estimate_cloning_cost,
7121         ipcp_const_param_count): New functions.
7122         * common.opt (ipa-cp-clone): New command line option.
7123         * params.def (ipcp-unit-growth): New.
7124
7125 2008-08-24  Jan Hubicka  <jh@suse.cz>
7126
7127         * tree-inline.c (tree_function_versioning): Look harder
7128         for referenced vars.
7129
7130 2008-08-24  Razya Ladelsky  <razya@il.ibm.com>
7131
7132         PR tree-optimization/37185
7133         * matrix-reorg.c (transform_access_sites): Update changed stmt.
7134
7135 2008-08-23  Jan Hubicka  <jh@suse.cz>
7136
7137         * ipa-cp.c (ipcp_analyze_node): New function.
7138         (ipcp_update_cloned_node): Use it.
7139         (ipcp_init_stage): Likewise.
7140         * ipa-inline.c (function_insertion_hook_holder): New static var.
7141         (analyze_function): Break out from ....
7142         (inline_generate_summary): Here; register insertion hook.
7143         (cgraph_decide_inlining): Remove hook.
7144         (add_new_function): New function.
7145
7146 2008-08-23  Jan Hubicka  <jh@suse.cz>
7147
7148         * opts.c (decode_options): Revert accidental change enabling ipa-cp.
7149
7150 2008-08-23  Jan Hubicka  <jh@suse.cz>
7151
7152         * ipa-cp.c (constant_val_insert): Remove.
7153         (ipcp_propagate_one_const): Remove.
7154         (ipcp_create_replace_map): Always insert replacements to the map.
7155         (ipcp_insert_stage): Do not try to insert statements by hand.
7156         * tree-inline.c (insert_init_stmt): Break out from ...
7157         (setup_one_parameter): ... here; allow NULL BB pointer.
7158         (tree_function_versioning): Use setup_one_parameter to process
7159         replacement map.
7160
7161 2008-08-23  Jan Hubicka  <jh@suse.cz>
7162
7163         * tree.c (decl_address_ip_invariant_p): New function.
7164         * tree.h (decl_address_ip_invariant_p): Declare.
7165         * gimple.c (strip_invariant_refs): Break out from ...
7166         (is_gimple_invariant_address): ... here
7167         (is_gimple_ip_invariant_address): New function.
7168         (is_gimple_ip_invariant): New function.
7169         * gimple.h (is_gimple_ip_invariant_address, is_gimple_ip_invariant):
7170         Declare.
7171
7172         * ipa-cp.c (ipcp_lat_is_const): Remove handling of IPA_CONST_VALUE_REF.
7173         (ipcp_lat_is_insertable): All constants are insertable.
7174         (ipcp_lattice_from_jfunc, ipcp_print_all_lattices): Remove handling of
7175         IPA_CONST_VALUE_REF.
7176         (ipcp_initialize_node_lattices): Propagate all types of operands.
7177         (build_const_val): Do not handle IPA_CONST_VALUE_REF.
7178         (ipcp_create_replace_map): Reformat.
7179         (ipcp_need_redirect_p): Simplify.
7180         (ipcp_insert_stage): Check that argument is used before clonning.
7181         * ipa-prop.c (ipa_print_node_jump_functions): Do not handle
7182         IPA_CONST_REF.
7183         (compute_scalar_jump_functions): Simplify using is_gimple_ip_invariat.
7184         (determine_cst_member_ptr): Keep wrapping ADDR_EXPR of members.
7185         (update_call_notes_after_inlining): Expect ADDR_EXPR in operand.
7186         * ipa-prop.h (jump_func_type): Remove IPA_CONST_REF.
7187         (jump_func_type): Remove IPA_CONST_VALUE_REF.
7188         * tree-inline.c (tree_function_versioning): Add variables referenced
7189         by replacing trees.
7190
7191 2008-08-23  Jan Hubicka  <jh@suse.cz>
7192
7193         PR target/37094
7194         * i386.c (standard_80387_constant_p): Use optimize_size.
7195
7196 2008-08-23  Ira Rosen  <irar@il.ibm.com>
7197
7198         PR tree-optimization/37161
7199         * tree-vectorizer.h (vect_get_smallest_scalar_type): Declare.
7200         * tree-vect-analyze.c (vect_get_smallest_scalar_type): New function.
7201         (vect_determine_vectorization_factor): Move the scalar type
7202         retrieval to vect_get_smallest_scalar_type.
7203         (vect_build_slp_tree): Call vect_get_smallest_scalar_type to get
7204         scalar type. Remove redundant computation.
7205         * tree-vect-transform.c (vect_get_constant_vectors): Add argument.
7206         (vect_get_slp_defs): Take the type of RHS into account if
7207         necessary by calling vect_get_smallest_scalar_type. Call
7208         vect_get_constant_vectors with additional argument.
7209
7210 2008-08-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7211
7212         PR 35648
7213         * doc/invoke.texi (Wwrite-strings): Clarify description.
7214
7215 2008-08-23  Ira Rosen  <irar@il.ibm.com>
7216
7217         PR tree-optimization/37174
7218         * tree-vect-analyze.c (vect_get_and_check_slp_defs): Check that the
7219         def stmt is a part of the loop before accessing its stmt_vec_info.
7220
7221 2008-08-22  Anatoly Sokolov  <aesok@post.ru>
7222
7223         PR target/11259
7224         * config/avr/avr.md (UNSPEC_SWAP): New constants.
7225         (*swap): New insn pattern.
7226         (*ashlqi3): Rename from ashlqi3 insn pattern.
7227         (ashlqi3): New expanders.
7228         (*lshrqi3): Rename from lshrqi3 insn pattern.
7229         (lshrqi3): New expanders.
7230         (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, lshrqi3_const4,
7231         lshrqi3_const5, lshrqi3_const6): New splitters.
7232         (andi, ashlqi3_l_const4, ashlqi3_l_const5, ashlqi3_l_const6,
7233         lshrqi3_l_const4, lshrqi3_l_const5, lshrqi3_l_const6): Define
7234         peephole2 patterns.
7235
7236 2008-08-22  Richard Guenther  <rguenther@suse.de>
7237
7238         PR tree-optimization/37078
7239         * tree-vrp.c (extract_range_from_unary_expr): Avoid generating
7240         [+INF, +INF] ranges.
7241
7242 2008-08-22  Richard Guenther  <rguenther@suse.de>
7243
7244         PR tree-optimization/37143
7245         * tree-vect-transform.c (vect_create_cond_for_align_checks): Build
7246         a conversion statement instead of a copy.
7247
7248 2008-08-22  Uros Bizjak  <ubizjak@gmail.com>
7249
7250         PR target/37184
7251         * config/i386/i386.c (ix86_match_ccmode): Handle CCAmode,
7252         CCCmode, CCOmode and CCSmode destination modes.
7253
7254         PR target/37191
7255         * config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers
7256         from different units in a single alternative.
7257         (*vec_extractv2sf_1): Ditto.
7258         (*vec_extractv2si_0): Ditto.
7259         (*vec_extractv2si_1): Ditto.
7260         * config/i386/sse.md (sse2_storehpd): Ditto.
7261         (sse2_storelpd): Ditto.
7262         (sse2_loadhpd): Ditto.
7263         (sse2_loadlpd): Ditto.
7264
7265         PR target/37197
7266         * config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints.
7267         (popcountsi2): Ditto.
7268         (clzdi2_abm): Ditto.
7269         (popcountdi2): Ditto.
7270         (clzhi2_abm): Ditto.
7271         (popcounthi2): Ditto.
7272
7273 2008-08-22  Richard Guenther  <rguenther@suse.de>
7274
7275         PR middle-end/36548
7276         PR middle-end/37125
7277         * fold-const.c (extract_muldiv_1): Optimize (X * C1) % C2 only
7278         if the multiplication does not overflow.
7279
7280 2008-08-21  Nathan Sidwell  <nathan@codesourcery.com>
7281
7282         * c-ppoutput.c (init_pp_output): Initialize src_line to 1.
7283
7284 2008-08-21  Richard Henderson  <rth@redhat.com>
7285
7286         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Remove
7287         spurrious comma from test.
7288         * configure: Rebuild.
7289
7290 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7291
7292         PR 30457
7293         * builtins.c (fold_builtin_next_arg): Add warning about undefined
7294         behaviour.
7295
7296 2008-08-21  Aldy Hernandez  <aldyh@redhat.com>
7297
7298         * c-tree.h (grokfield): New argument.
7299         * c-decl.c (grokfield): Handle new location argument.
7300         * c-parser.c (c_parser_struct_declaration): Pass location to grokfield.
7301
7302 2008-08-21  Richard Guenther  <rguenther@suse.de>
7303
7304         * tree-ssa-ccp.c (ccp_fold): Fold VIEW_CONVERT_EXPRs of constants.
7305
7306 2008-08-21  Jan Hubicka  <jh@suse.cz>
7307
7308         * cgraph.c (first_cgraph_function_insertion_hook): New variable.
7309         (cgraph_add_function_insertion_hook,
7310         cgraph_remove_function_insertion_hook,
7311         cgraph_call_function_insertion_hooks): New functions.
7312         * cgraph.h (cgraph_add_function_insertion_hook,
7313         cgraph_remove_function_insertion_hook,
7314         cgraph_call_function_insertion_hooks): Declare.
7315         * ipa-reference.c (function_insertion_hook_holder): New variable.
7316         (check_operand, look_for_address_of): When checking late, do not care
7317         about module bitmaps.
7318         (add_new_function): New function.
7319         (generate_summary): Register hooks; zero module bitmaps.
7320         (propagate): Unregister hooks.
7321         * ipa-pure-const.c (function_insertion_hook_holder): New variable.
7322         (add_new_function): New function.
7323         (generate_summary): Register hook.
7324         (propagate): Remove hook.
7325
7326         * ipa-cp.c (ipcp_need_redirect_p): Fix to not be constant 0.
7327
7328         * tree-pass.h (pass_ipa_cp): Make ipa_opt_pass.
7329         * ipa-cp.c (ipcp_update_cloned_node): New function.
7330         (build_const_val): Handle functions correctly; bring type logic
7331         into sync with tree-inline.c
7332         (ipcp_init_stage):  Take care of computing stuff needed by
7333         indirect inlining; update clones.
7334         (ipcp_generate_summary): Break out of ipcp_driver.
7335         (ipcp_driver): Do only execution and transformation.
7336         (pass_ipa_cp): Make IPA_PASS.
7337         * tree-ssa-ccp.c (fold_stmt_r): Check type before trying to fold
7338         offset to address.
7339         * ipa-inline.c (inline_indirect_intraprocedural_analysis): When doing
7340         ipcp, some info is already available.
7341         * ipa-prop.c (ipa_count_arguments): Grow edge lists as needed.
7342         * tree-inline.c (remap_ssa_name): Unshare expression.
7343
7344 2008-08-21  Richard Guenther  <rguenther@suse.de>
7345
7346         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
7347         a PHI ask VN if it is already available.
7348         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
7349         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
7350
7351 2008-08-21  Richard Guenther  <rguenther@suse.de>
7352
7353         PR middle-end/36817
7354         * tree-chrec.c (chrec_apply): Always call chrec_fold_plus which
7355         makes sure to produce a result of the correct type.
7356
7357 2008-08-21  Jan Hubicka  <jh@suse.cz>
7358         Backport from LTO branch:
7359
7360         2008-05-05  Kenneth Zadeck <zadeck@naturalbridge.com>
7361                     Jan Hubicka  <jh@suse.cz>
7362
7363         * ipa-pure-const.c
7364         (init_state, finish_state, set_function_state, generate_summary):
7365         New functions.
7366         (scan_stmt): Renamed from scan_function.  Changed to keep state in
7367         local static vars rather than cgraph aux field.
7368         (propagate): Renamed from static_execute. Changed to keep state in
7369         local static vars rather than cgraph aux field.
7370         (pass_ipa_pure_const): Changed from SIMPLE_IPA_PASS to IPA_PASS.
7371         * tree-pass.h (pass_ipa_pure_const): Turn into IPA_PASS.
7372
7373         2008-07-15  Kenneth Zadeck <zadeck@naturalbridge.com>
7374
7375         * tree-pass.h (pass_ipa_reference): Make into ipa_opt_pass.
7376         * ipa-reference.c (init_function_info, generate_summary,
7377         propagate): New functions.
7378         (analyze_function):  Call init_function_info.
7379         (static_execute): Stripped into generate_summary and propagate.
7380         (pass_ipa_reference): Made into ipa_opt_pass.
7381
7382 2008-08-21  Richard Guenther  <rguenther@suse.de>
7383
7384         PR tree-optimization/37181
7385         * tree-vrp.c (extract_range_from_binary_expr): Check for NULL
7386         folding result.
7387         (extract_range_from_unary_expr): Likewise.
7388
7389 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7390
7391         * diagnostic.c (pedwarn_at): Rename as pedwarn.
7392         (pedwarn): Delete.
7393         * toplev.h (pedwarn_at): Likewise.
7394         * builtins.c: Update all calls to pedwarn.
7395         * c-lex.c: Likewise.
7396         * toplev.c: Likewise.
7397         * c-tree.h: Likewise.
7398         * c-decl.c: Likewise.
7399         * c-errors.c: Likewise.
7400         * c-typeck.c: Likewise.
7401         * c-common.c: Likewise.
7402         * c-parser.c: Likewise.
7403
7404 2008-08-20  Joseph Myers  <joseph@codesourcery.com>
7405
7406         PR target/31070
7407         * config/sparc/sparc.c (function_arg_slotno): Handle structure
7408         with MODE_VECTOR_INT mode.
7409
7410 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7411
7412         PR middle-end/179
7413         * tree-ssa.c (warn_uninit): Do not warn for variables that can be
7414         initialized outside the current module.
7415         (warn_uninitialized_var): Ignore left-hand side when walking the
7416         trees. Ignore address expressions. Examine VUSE operands in gimple
7417         statements with a variable declaration on the right-hand side.
7418
7419 2008-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
7420
7421         PR bootstrap/37155
7422         * rtlanal.c (subreg_offset_representable_p): Revert last change.
7423
7424 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7425
7426         PR 35701
7427         * c-common.c (conversion_warning): Do not warn if applying bit-and
7428         operator to unsigned constant that fits in the target type.
7429
7430 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7431
7432         PR c++/35602
7433         * c-common.c (conversion_warning): Do not warn for artificial
7434         expressions.
7435
7436 2008-08-20  Richard Guenther  <rguenther@suse.de>
7437
7438         * tree-vrp.c (op_with_constant_singleton_value_range): New function.
7439         (extract_range_from_binary_expr): Fall back to constant propagation.
7440         (extract_range_from_unary_expr): Likewise.
7441
7442 2008-08-20  Richard Guenther  <rguenther@suse.de>
7443
7444         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Do not mess
7445         with TREE_THIS_VOLATILE on shared nodes.
7446         (fold_stmt_r): Likewise.
7447
7448 2008-08-20  Jakub Jelinek  <jakub@redhat.com>
7449
7450         PR c/37171
7451         * c-parser.c (c_parser_attributes): For keywords use canonical
7452         spelling for attr_name.
7453
7454 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7455
7456         * value-prof.c (check_counter): Revert wrong call to error.
7457
7458 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7459
7460         * profile.c: Update calls to inform.
7461         * value-prof.c: Update calls to inform.
7462
7463 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7464
7465         * diagnostic.c (inform): Add an explicit location_t parameter.
7466         * toplev.h (inform): Update declaration.
7467         * builtins.c: Update all calls to inform.
7468         * c-common.c: Likewise.
7469         * c-decl.c: Likewise.
7470         * c-opts.c: Likewise.
7471         * c-pch.c: Likewise.
7472         * c-pragma.c: Likewise.
7473         * c-typeck.c: Likewise.
7474         * coverage.c: Likewise.
7475         * opts.c: Likewise.
7476         * toplev.c: Likewise.
7477         * tree-cfg.c: Likewise.
7478         * tree-ssa.c: Likewise.
7479
7480 2008-08-20  H.J. Lu  <hongjiu.lu@intel.com>
7481
7482         PR target/37169
7483         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): In
7484         V2DI mode, for SSE4.1, use movq instead of vector set if the
7485         second element is zero and inter-unit moves are OK.
7486
7487 2008-08-20  Richard Guenther  <rguenther@suse.de>
7488
7489         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): More
7490         properly handle conversion/copy chains after tuplification.
7491
7492 2008-08-20  Richard Guenther  <rguenther@suse.de>
7493
7494         * passes.c (init_optimization_passes): Move the second
7495         forwprop pass before alias computation.  Remove the second
7496         DCE pass.  Remove the first dominator and phi copy/const
7497         prop passes.
7498
7499 2008-08-20  Nick Clifton  <nickc@redhat.com>
7500
7501         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Always test for assembler
7502         support of this feature.  Do not assume that a sufficiently new
7503         assembler will support the feature regardless of the target type.
7504         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
7505         * configure: Regenerate.
7506
7507 2008-08-20  Richard Guenther  <rguenther@suse.de>
7508
7509         * tree-vrp.c (found_in_subgraph): Remove.
7510         (live): New global static.
7511         (live_on_edge): New function.
7512         (blocks_visited): Remove.
7513         (register_edge_assert_for_2): Use live_on_edge.
7514         (find_conditional_asserts): Remove code dealing with
7515         found_in_subgraph.  Do not walk the CFG.
7516         (find_switch_asserts): Likewise.
7517         (find_assert_locations_1): Renamed from find_assert_locations.
7518         Move finding assert locations for conditional and switch
7519         statements first.  Update live bitmap.  Do not walk the CFG.
7520         (find_assert_locations): New function.
7521         (insert_range_assertions): Remove entry of CFG walk.
7522         Adjust call to find_assert_locations.
7523         * tree-ssa-pre.c (do_regular_insertion): Ignore critical edges
7524         that only can appear because of fake exit edges but assert we
7525         never try to insert on those.
7526         (fini_pre): Do not remove fake exit edges here...
7527         (execute_pre): ...but here, before committing edge inserts.
7528
7529 2008-08-19  Richard Guenther  <rguenther@suse.de>
7530
7531         * passes.c (init_optimization_passes): Exchange store-ccp
7532         with a ccp pass.
7533
7534 2008-08-19  Rafael Espíndola  <espindola@google.com>
7535
7536         * varasm.c (weak_decls): Move earlier in the file.
7537         (assemble_external): Add weak decls to the weak_decls list.
7538         (declare_weak): Don't add decls to the weak_decls list.
7539
7540 2008-08-19  H.J. Lu  <hongjiu.lu@intel.com>
7541
7542         PR target/37157
7543         * config/i386/sse.md (sse2_punpckhqdq, sse2_punpcklqdq): Moved
7544         before (sse2_shufpd_<mode>).
7545
7546 2008-08-19  Jakub Jelinek  <jakub@redhat.com>
7547
7548         PR debug/37156
7549         * pretty-print.c (pp_base_format): Deal with recursive BLOCK trees.
7550         * tree.c (block_nonartificial_location): Likewise.
7551
7552 2008-08-19  Richard Guenther  <rguenther@suse.de>
7553
7554         PR tree-optimization/35972
7555         PR tree-optimization/23094
7556         * tree-ssa-sccvn.h (vn_reference_lookup_pieces): Add maywalk
7557         parameter.
7558         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
7559         handle MISALIGNED_INDIRECT_REF.
7560         (get_ref_from_reference_ops): New helper.
7561         (vn_reference_lookup_pieces): Walk the use-def chain using the
7562         alias-oracle if requested.
7563         * tree-ssa-pre.c (phi_translate_1): Do reference lookup with
7564         walking the use-def chain.
7565         (compute_avail): But not here.
7566         (create_component_ref_by_pieces_1): Properly handle
7567         MISALIGNED_INDIRECT_REF.
7568         (do_regular_insertion): Handle fully redundant
7569         expressions after PHI-translation also for SSA_NAME values, not
7570         only constants.  Correctly use edoubleprime for that.
7571
7572 2008-08-19  Ira Rosen  <irar@il.ibm.com>
7573
7574         * tree-vectorizer.c (supportable_widening_operation): Support
7575         multi-step conversion, return the number of steps in such conversion
7576         and the required intermediate types.
7577         (supportable_narrowing_operation): Likewise.
7578         * tree-vectorizer.h (vect_pow2): New function.
7579         (supportable_widening_operation): Change argument types.
7580         (supportable_narrowing_operation): Likewise.
7581         (vectorizable_type_promotion): Add an argument.
7582         (vectorizable_type_demotion): Likewise.
7583         * tree-vect-analyze.c (vect_analyze_operations): Call
7584         vectorizable_type_promotion and vectorizable_type_demotion with
7585         additional argument.
7586         (vect_get_and_check_slp_defs): Detect patterns.
7587         (vect_build_slp_tree): Add an argument, don't fail in case of multiple
7588         types.
7589         (vect_analyze_slp_instance): Don't fail in case of multiple types.
7590         Call vect_build_slp_tree with correct arguments. Calculate unrolling
7591         factor according to the smallest type in the loop.
7592         (vect_detect_hybrid_slp_stmts): Include statements from patterns.
7593         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call
7594         supportable_widening_operation with correct arguments.
7595         * tree-vect-transform.c (vect_get_slp_defs): Allocate output vector
7596         operands lists according to the number of vector statements in left
7597         or right node, if exists.
7598         (vect_gen_widened_results_half): Remove unused argument.
7599         (vectorizable_conversion): Call supportable_widening_operation,
7600         supportable_narrowing_operation, and vect_gen_widened_results_half
7601         with correct arguments.
7602         (vectorizable_assignment): Change documentation, support multiple
7603         types in SLP.
7604         (vectorizable_operation): Likewise.
7605         (vect_get_loop_based_defs): New function.
7606         (vect_create_vectorized_demotion_stmts): Likewise.
7607         (vectorizable_type_demotion): Support loop-aware SLP and general
7608         multi-step conversion. Call vect_get_loop_based_defs and
7609         vect_create_vectorized_demotion_stmts for transformation.
7610         (vect_create_vectorized_promotion_stmts): New function.
7611         (vectorizable_type_promotion): Support loop-aware SLP and general
7612         multi-step conversion. Call vect_create_vectorized_promotion_stmts
7613         for transformation.
7614         (vectorizable_store): Change documentation, support multiple
7615         types in SLP.
7616         (vectorizable_load): Likewise.
7617         (vect_transform_stmt): Pass SLP_NODE to
7618         vectorizable_type_promotion and vectorizable_type_demotion.
7619         (vect_schedule_slp_instance): Move here the calculation of number
7620         of vectorized statements for each node from...
7621         (vect_schedule_slp): ... here.
7622         (vect_transform_loop): Call vect_schedule_slp without the last
7623         argument.
7624
7625 2008-08-19  Dorit Nuzman  <dorit@il.ibm.com>
7626
7627         PR bootstrap/37152
7628         * tree-vect-transform.c (vect_create_epilog_for_reduction): Change =
7629         to == in assert statement.
7630         (vectorizable_reduction): Fix typo.
7631
7632 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
7633
7634         PR bootstrap/37153
7635         * value-prof.c (check_counter): Dereference pointer to overall
7636         count when printing it.
7637
7638 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
7639
7640         * profile.h: Really add it.
7641
7642 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
7643
7644         * mcf.c: Really add it.
7645
7646 2008-08-18  Paul Yuan  <yingbo.com@gmail.com>
7647             Vinodha Ramasamy  <vinodha@google.com>
7648
7649         * cgraph.c (cgraph_edge): Handle inconsistent counts when setting
7650         count_scale.
7651         * value-prof.c (check_counter): Fix the counter if
7652         flag_profile_correction is true.
7653         (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
7654         tree_mod_subtract_transform):
7655         Follow check_counter parameter change.
7656         * common.opt (fprofile-correction): New option.
7657         * mcf.c: New file.
7658         * profile.h: Likewise.
7659         * profile.c (edge_info, EDGE_INFO): Moved to new file profile.h.
7660         (sum_edge_counts, is_edge_inconsistent, correct_negative_edge_counts,
7661         is_inconsistent, set_bb_counts, read_profile_edge_counts): New
7662         functions.
7663         (compute_branch_probabilities): Refactored. Invokes mcf_smooth_cfg if
7664         flag_profile_correction is set.
7665
7666 2008-08-18  Richard Sandiford  <rdsandiford@googlemail.com>
7667
7668         * rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
7669
7670 2008-08-18  Tomas Bily  <tbily@suse.cz>
7671
7672         * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P.
7673         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Use
7674         CONVERT_EXPR_P.
7675         * tree-data-ref.c (split_constant_offset_1): Likewise.
7676         * tree-inline.c (estimate_operator_cost): Use CASE_CONVERT.
7677         * tree-sra.c (sra_walk_expr): Likewise.
7678         * matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise.
7679         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
7680         * gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P.
7681         * tree-ssa-structalias.c (find_func_aliases, find_func_aliases):
7682         Likewise.
7683         * gimple.c (gimple_assign_unary_nop_p): Likewise.
7684         * tree-vect-transform.c (vectorizable_type_demotion)
7685         (vectorizable_type_promotion): Likewise.
7686         * tree-inline.c (expand_call_inline):
7687         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
7688         (forward_propagate_addr_expr_1, forward_propagate_comparison)
7689         (tree_ssa_forward_propagate_single_use_vars): Likewise.
7690         * expr.c (expand_expr_real_1): Likewise.
7691         * tree-ssa-dom.c (hashable_expr_equal_p, iterative_hash_hashable_expr)
7692         (gimple_assign_unary_useless_conversion_p): Likewise.
7693         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
7694         * tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise.
7695         * fold-const.c (fold_unary): Likewise.
7696         * tree.h (CONVERT_EXPR_P): Likewise.
7697         * tree.c (simple_cst_equal, iterative_hash_expr): Likewise.
7698         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
7699         * tree-vrp.c:
7700         (register_edge_assert_for_2, extract_range_from_unary_expr)
7701         (register_edge_assert_for_1): Likewise.
7702
7703 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7704
7705         * real.h (dconst_e, dconst_third, dconst_sqrt2, dconst_e_ptr,
7706         dconst_third_ptr, dconst_sqrt2_ptr): Declare.
7707         (enum real_value_const): Delete.
7708         (get_real_const): Delete.
7709         * real.c (get_real_const): Delete.
7710         (dconst_e_ptr): Define.
7711         (dconst_third_ptr): Define.
7712         (dconst_sqrt2_ptr): Define.
7713         * builtins.c: Update all callers.
7714
7715 2008-08-18  Richard Guenther  <rguenther@suse.de>
7716
7717         * tree-ssa-reassoc.c (reassociate_bb): Properly reset the
7718         statement iterator after statement removal.
7719
7720 2008-08-18  Andreas Tobler  <a.tobler@schweiz.org>
7721
7722         * config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.
7723         (detect_processor_freebsd): Likewise.
7724         (host_detect_local_cpu): Call newly added functions for FreeBSD.
7725
7726 2008-08-18  Richard Guenther  <rguenther@suse.de>
7727
7728         * tree-cfg.c (verify_types_in_gimple_assign): Verify copies
7729         and loads have the correct types.
7730
7731 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7732
7733         PR cpp/7263
7734         * c-opts.c (cpp_opts): Remove static.
7735         * c-parser.c (cpp_opts): Declare it extern.
7736         (disable_extension_diagnostics): Handle cpp options.
7737         (enable_extension_diagnostics): Likewise.
7738
7739 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7740
7741         * diagnostics.c (permerror_at): Rename as permerror.
7742         (permerror): Delete.
7743         * toplev.h: Likewise.
7744
7745 2008-08-18  Richard Guenther  <rguenther@suse.de>
7746
7747         * passes.c (init_optimization_passes): Remove cleanup_cfg1,
7748         sdse1 and addressables2 passes.  Replace dce1 with cddce1.
7749         Move call_cdce before build_alias.  Move copyrename2,
7750         cunrolli and ccp2 beafore build_alias.  Re-add addressable2
7751         right after final inlining.
7752         * tree-cfg.c (build_gimple_cfg): Do not dump function here.
7753         (pass_build_cfg): But instead via TODO_dump_func.
7754
7755 2008-08-18  Richard Guenther  <rguenther@suse.de>
7756
7757         * tree-sra.c (generate_element_init_1): Deal with NULL constructor
7758         element index.
7759         (scalarize_init): If we failed to generate some initializers
7760         do not generate zeros for not instantiated members.  Instead
7761         rely on the copy out.
7762         * tree-ssa-operands.c (get_addr_dereference_operands): Warn
7763         about missing flow-sensitive alias info only if we have
7764         aliases computed.
7765
7766 2008-08-17  Nick Clifton  <nickc@redhat.com>
7767
7768         * doc/extend.texi (Function Attributes): Fix typo in description
7769         if hot function attribute.
7770
7771 2008-08-17  Daniel Jacobowitz  <dan@codesourcery.com>
7772             Richard Sandiford  <rdsandiford@googlemail.com>
7773
7774         * doc/install.texi (--with-mips-plt): Document.
7775         * doc/invoke.texi (-mplt, -mno-plt): Document.
7776         * config.gcc (mips*-*-*): Add mips-plt to supported_defaults
7777         and handle ${with_mips_plt}.
7778         * config/mips/mips.opt (mplt): New option.
7779         * config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
7780         (TARGET_ABICALLS_PIC2): Likewise.
7781         (TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
7782         (OPTION_DEFAULT_SPECS): Add a mips-plt entry.
7783         (ASM_SPEC): Use !mabi=* instead of !mabi*.
7784         (MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
7785         to decide whether to output ".option picX" directives.
7786         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
7787         Pass -call_nonpic rather than -KPIC for -mplt.
7788         (BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
7789         on the command line.  Also remove it when -mabi=64 is used without
7790         -msym32.
7791         * config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
7792         * config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
7793         TARGET_ABICALLS_PIC0.
7794         (mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
7795         TARGET_ABICALLS.
7796         (mips16_build_function_stub): Only output ".option pic" directives
7797         and PIC stubs if TARGET_ABICALLS_PIC2.  Call through $25 instead of $1.
7798         (mips16_build_call_stub): Fix comment and remove redundant
7799         ".set at"/"set .noat" directives.
7800         (mips_function_rodata_section): Use the default behaviour for
7801         TARGET_ABSOLUTE_ABICALLS.
7802         (mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
7803         (mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
7804         (mips_restore_gp): Do nothing if the current function doesn't use
7805         a global pointer.
7806         (mips_expand_prologue): Only save $gp if the current function uses it.
7807         Use a normal move for TARGET_ABICALLS_PIC0.
7808         (mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.
7809
7810 2008-08-17  Richard Sandiford  <rdsandiford@googlemail.com>
7811
7812         * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest
7813         of function when handling GLOBAL_POINTER_REGNUM.
7814
7815 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
7816
7817         PR ada/20548
7818         * common.opt (-fstack-check): Do not declare the variable here.
7819         (-fstack-check=): New option variant.
7820         * doc/invoke.texi (Code Gen Options): Document it.
7821         * expr.h (STACK_OLD_CHECK_PROTECT): New macro.
7822         (STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used.
7823         (STACK_CHECK_STATIC_BUILTIN): New macro.
7824         * doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN.
7825         * opts.c: Include expr.h.
7826         (common_handle_option) <OPT_fold_stack_check_>: New case.
7827         <OPT_fstack_check>: Likewise.
7828         * calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT
7829         consistently in the test for variable-sized types.  Adjust for
7830         new behaviour of flag_stack_check.
7831         * explow.c: Include except.h.
7832         (allocate_dynamic_stack_space): Do not take into account
7833         STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking.
7834         * function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test
7835         for variable-sized parameters.  Treat all parameters whose size is
7836         greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic
7837         stack checking is enabled.
7838         * gimplify.c (gimplify_decl_expr): Treat non-static objects whose
7839         size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized
7840         if generic stack checking is enabled.
7841         (expand_function_end): Adjust for new behaviour of flag_stack_check.
7842         * reload1.c (reload): Likewise.
7843         * stmt.c (expand_decl): Assert that all automatic variables have
7844         fixed size at this point and remove dead code.
7845         * flags.h (stack_check_type): New enumeration type.
7846         (flag_stack_check): Declare.
7847         * toplev.c (flag_stack_check): New global variable.
7848         * Makefile.in (opts.o): Add dependency on EXPR_H.
7849         (explow.o): Add dependency on except.h.
7850
7851 2008-08-16  Andy Hutchinson  <hutchinsonandy@aim.com>
7852
7853         * config/avr/avr.c (avr_override_options): Reduce value of
7854         PARAM_INLINE_CALL_COST.
7855
7856 2008-08-15  Eric Botcazou  <ebotcazou@adacore.com>
7857
7858         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: When converting
7859         to BLKmode, try to fetch an inner memory reference.  Use 'mode' in
7860         lieu of TYPE_MODE (type) throughout.
7861
7862 2008-08-15  Joseph Myers  <joseph@codesourcery.com>
7863
7864         * config/arm/arm.c (add_minipool_backward_ref): Check for
7865         8-byte-aligned entries in second case of forcing insertion after a
7866         particular entry.  Change third case to avoid inserting
7867         non-8-byte-aligned entries before 8-byte-aligned ones.
7868
7869 2008-08-15  Richard Guenther  <rguenther@suse.de>
7870
7871         * tree-ssa-ccp.c (maybe_fold_offset_to_reference): Do not
7872         strip components for unknown size accesses.
7873
7874 2008-08-15  Wolfgang Gellerich  <gellerich@de.ibm.com>
7875
7876         * config/s390/2097.md New file.
7877         * config/s390/s390.md ("z10prop" attribute): Define none,
7878         z10_super, z10_super_E1, z10_super_A1, z10_super_c,
7879         z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
7880         z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
7881         possible values and apply them to insns as appropriate.
7882         ("type" attribute): Removed itof and added ftrunctf,ftruncdf,
7883         ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
7884         fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
7885         fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible values.
7886         ("bfp" mode attribute): Removed.  Every occurence replaced
7887         with <mode>.
7888         * config/s390/s390.c (struct "z10_cost"): Updated entries.
7889         * config/s390/2084.md (insn_reservation "x_itof"): Updated
7890         type attribute.
7891
7892 2008-08-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7893
7894         PR c/28152
7895         * c-parser.c (c_lex_one_token): Do not store the canonical spelling
7896         for keywords.
7897
7898 2008-08-14  Dorit Nuzman  <dorit@il.ibm.com>
7899
7900         * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an
7901         additional argument. Support reduction when duplication is needed due
7902         to data-types of different sizes in the loop.
7903         (get_initial_def_for_induction): Fix printout.
7904         (vect_get_vec_def_for_stmt_copy): Support case where the
7905         vec_stmt_for_operand is a phi node.
7906         (vectorizable_reduction): Support reduction when duplication is needed
7907         due to data-types of different sizes in the loop.
7908         (vectorizable_call): Remove restriction to not vectorize in case we
7909         have data-types of different sizes in the loop.
7910         (vectorizable_conversion): Likewise.
7911         (vectorizable_operation): Likewise.
7912         (vectorizable_type_demotion): Likewise.
7913         (vectorizable_type_promotion): Likewise.
7914         (vectorizable_induction): Add restriction to not vectorize in case
7915         we have data-types of different sizes in the loop.
7916
7917 2008-08-14  Christophe Saout  <christophe@saout.de>
7918             Uros Bizjak  <ubizjak@gmail.com>
7919
7920         PR target/37101
7921         * config/i386/sse.md (vec_concatv2di): Remove movlps alternative.
7922         (*vec_concatv2di_rex64_sse4_1): Ditto.
7923         (*vec_concatv2di_rex64_sse): Ditto.
7924
7925 2008-08-14  Jakub Jelinek  <jakub@redhat.com>
7926
7927         PR middle-end/37103
7928         * fold-const.c (fold_widened_comparison): Do not allow
7929         sign changes that change the result even if shorter type
7930         is wider than arg1_unw's type.
7931
7932 2008-08-13  Kazu Hirata  <kazu@codesourcery.com>
7933
7934         * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c:
7935         Skip if the multilib testing specifies -march that does not
7936         agree with the one specified in the testcase.
7937
7938 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
7939
7940         * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or
7941         zero extend SImode values being converted to TFmode before passing
7942         to libcalls.
7943
7944 2008-08-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7945
7946         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
7947         __PPU__ when targeting the Cell/B.E. PPU processor.
7948
7949 2008-08-13  Eric Botcazou  <ebotcazou@adacore.com>
7950
7951         * gimple.h (gimple_call_set_chain): Accept SSA variables.
7952         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>:
7953         Rematerialize the static chain, if any.
7954         * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the
7955         static chain.
7956
7957 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
7958
7959         * dwarf2out.c (dwarf_stack_op_name): Remove prototype.
7960         (new_loc_descr): Likewise.
7961         (add_loc_descr): Likewise.
7962         (size_of_loc_descr): Likewise.
7963         (size_of_locs): Likewise.
7964         (output_loc_operands): Likewise.
7965         (output_loc_sequence): Likewise.
7966         (new_reg_loc_descr): New.
7967         (build_cfa_loc): Use it.
7968         (build_cfa_aligned_loc): Likewise.
7969         (one_reg_loc_descriptor): Likewise.
7970         (based_loc_descr): Likewise.
7971
7972 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7973
7974         PR 30551
7975         * doc/invoke.texi (Wmain): Update.
7976         * c-decl.c (start_decl): warn_main is only 0 or 1.
7977         (start_function): Likewise. Fix formatting.
7978         (finish_function): Delete redundant warning.
7979         * c.opt (Wmain): Add Var(warn_main) and Init(-1).
7980         * c-opts (c_common_handle_option): -Wall only has effect if
7981         warn_main is uninitialized. OPT_Wmain is automatically
7982         handled. -pedantic also enables Wmain.
7983         (c_common_post_options): Handle all logic for Wmain here.
7984         * c-common.c (warn_main): Delete.
7985         (check_main_parameter_types): Make pedwarns conditional on OPT_Wmain.
7986         * c-common.h (warn_main): Delete.
7987
7988 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
7989
7990         PR middle-end/36701
7991         * expr.c (emit_group_store): Allocate stack temp with the
7992         largest alignment when copying from register to stack.
7993
7994 2008-08-13  Richard Guenther  <rguenther@suse.de>
7995
7996         * tree.h (maybe_fold_offset_to_address): Declare.
7997         * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit.
7998         (ccp_fold): Handle pointer conversions the same as fold_stmt.
7999         Likewise for POINTER_PLUS_EXPR.
8000         (maybe_fold_offset_to_reference): Enable disabled code.
8001         (maybe_fold_offset_to_address): New function.
8002         (fold_stmt_r): Use it.
8003         (fold_gimple_assign): Likewise.
8004         * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address.
8005         (gimplify_expr): Likewise.
8006
8007 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8008
8009         * toplev.h (pedwarn_at): Fix declaration.
8010
8011 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
8012
8013         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
8014         LINK_SPEC): Use %R in -Y P argument.
8015
8016 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8017
8018         PR c/15236
8019         * diagnostic.c (pedwarn_at): New.
8020         * toplev.h (pedwarn_at): Declare.
8021         * c-tree.h (build_enumerator): Update declaration.
8022         * c-decl.c (finish_enum): Update comment.
8023         (build_enumerator): Take a location parameter. Give a pedwarn but do
8024         not perform any conversion.
8025         * c-parser.c (c_parser_enum_specifier): Set correct location for
8026         enumerator.
8027
8028 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8029
8030         PR 35635
8031         * c-common.c (conversion_warning): Use a switch. Ignore boolean
8032         expressions except for conversions to signed:1 bitfields. Handle
8033         COND_EXPR with constant operands.
8034
8035 2008-08-13  Richard Guenther  <rguenther@suse.de>
8036
8037         PR tree-optimization/15255
8038         * tree-ssa-reassoc.c (linearize_expr_tree): Declare.
8039         (struct oecount_s): New struct and VEC types.
8040         (cvec): New global.
8041         (oecount_hash): New function.
8042         (oecount_eq): Likewise.
8043         (oecount_cmp): Likewise.
8044         (zero_one_operation): New function.
8045         (build_and_add_sum): Likewise.
8046         (undistribute_ops_list): Perform un-distribution of multiplication
8047         and division on the chain of summands.
8048         (should_break_up_subtract): Also break up subtracts for factors.
8049         (reassociate_bb): Delete dead visited statements.
8050         Call undistribute_ops_list.  Re-sort and optimize if it did something.
8051         * passes.c (init_optimization_passes): Move DSE before
8052         reassociation.
8053         * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle
8054         PHI nodes.
8055
8056 2008-08-12  Janis Johnson  <janis187@us.ibm.com>
8057
8058         * doc/invoke.texi (-fipa-pta): Say the option is experimental.
8059
8060         * doc/invoke.texi: Revert unintended checkin.
8061
8062 2008-08-12  Nathan Froyd  <froydnj@codesourcery.com>
8063
8064         PR libgomp/26165
8065         * gcc.c (include_spec_function): Tweak call to find_a_file.
8066
8067 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
8068
8069         PR middle-end/37014
8070         * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
8071         and TRUTH_ORIF_EXPR.
8072         * dojump.c (do_jump): Likewise.
8073
8074         PR tree-optimization/37084
8075         * tree-inline.c (copy_bb): Call gimple_regimplify_operands
8076         if id->regimplify, don't assume stmt is a cast assignment.
8077
8078 2008-08-12  Anatoly Sokolov  <aesok@post.ru>
8079
8080         * final.c (final_scan_insn): Use app_enable/app_disable functions.
8081
8082 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8083
8084         PR bootstrap/37097
8085         * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced
8086         by last change.
8087
8088 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8089
8090         * defaults.h (TARGET_FLOAT_FORMAT): Remove.
8091         (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove.
8092
8093         * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove.
8094         * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove.
8095         * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove.
8096         * config/score/score.h (TARGET_FLOAT_FORMAT): Remove.
8097         * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove.
8098
8099         * doc/tm.texi (Storage Layout): Remove documentation for
8100         TARGET_FLOAT_FORMAT.
8101
8102         * simplify-rtx.c (simplify_binary_operation_1): Replace
8103         TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks.
8104
8105 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8106
8107         * real.h (struct real_format): New member has_sign_dependent_rounding.
8108         * real.c (ieee_single_format, mips_single_format, motorola_single_format,
8109         spu_single_format, ieee_double_format, mips_double_format,
8110         motorola_double_format, ieee_extended_motorola_format,
8111         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
8112         ieee_extended_intel_96_round_53_format, ibm_extended_format,
8113         mips_extended_format, ieee_quad_format, mips_quad_format,
8114         vax_f_format, vax_d_format, vax_g_format): Initialize it.
8115         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
8116
8117         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
8118         MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
8119         * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
8120         MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
8121         (ROUND_TOWARDS_ZERO): Likewise.
8122
8123         * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion.
8124         (FLOAT_MODE_FORMAT): New macro.
8125         (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ...
8126         (MODE_COMPOSITE_P): ... this new macro.
8127         (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
8128         MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros.
8129         * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode.
8130
8131         * flags.h: Include "real.h".
8132
8133         * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of
8134         REAL_MODE_FORMAT_COMPOSITE_P.
8135         * simplify-rtx.c (simplify_const_binary_operation): Likewise.
8136
8137         * doc/tm.texi (Storage Layout): Remove documentation of
8138         MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
8139         MODE_HAS_SIGN_DEPENDENT_ROUNDING.  Update documentation of
8140         ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify
8141         they only apply to libgcc2.a.
8142
8143 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8144
8145         * config/spu/float_disf.c: New file.
8146         * config/spu/float_unsdisf.c: New file.
8147         * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them.
8148         (LIB2FUNCS_EXCLUDE): Define.
8149
8150 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8151             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
8152
8153         * real.h (struct real_format): New member round_towards_zero.
8154         * real.c (round_for_format): Respect fmt->round_towards_zero.
8155         (ieee_single_format, mips_single_format, motorola_single_format,
8156         spu_single_format, ieee_double_format, mips_double_format,
8157         motorola_double_format, ieee_extended_motorola_format,
8158         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
8159         ieee_extended_intel_96_round_53_format, ibm_extended_format,
8160         mips_extended_format, ieee_quad_format, mips_quad_format,
8161         vax_f_format, vax_d_format, vax_g_format): Initialize it.
8162         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
8163
8164         * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of
8165         real_format to choose rounding mode when calling MPFR functions.
8166         (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise.
8167         (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise.
8168
8169         * real.h (real_to_decimal_for_mode): Add prototype.
8170         * real.c (real_to_decimal_for_mode): Renames old real_to_decimal.
8171         Respect target rounding mode when generating decimal representation.
8172         (real_to_decimal): New stub for backwards compatibility.
8173         * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use
8174         real_to_decimal_for_mode instead of real_to_decimal.
8175
8176         * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New.
8177
8178 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8179             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
8180
8181         * real.c (spu_single_format): New variable.
8182         * real.h (spu_single_format): Declare.
8183
8184         * config/spu/spu.c (spu_override_options): Install SFmode format.
8185         (spu_split_immediate): Use integer mode to operate on pieces of
8186         floating-point values in all cases.
8187
8188         * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New.
8189         ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND.
8190         ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE.
8191
8192 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8193
8194         * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA.
8195
8196 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8197
8198         * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define.
8199
8200 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
8201
8202         PR c++/36688
8203         * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY
8204         on the VAR_DECL instead of TYPE_READONLY on its type.
8205
8206 2008-08-12  Ira Rosen  <irar@il.ibm.com>
8207
8208         * tree-vectorizer.c: Depend on langhooks.h.
8209         (supportable_widening_operation): Add two arguments. Support double
8210         type conversions.
8211         (supportable_narrowing_operation): Likewise.
8212         * tree-vectorizer.h (supportable_widening_operation): Add two
8213         arguments.
8214         (supportable_narrowing_operation): Likewise.
8215         * tree-vect-patterns.c (vect_recog_widen_mult_pattern) : Call
8216         supportable_widening_operation with correct arguments.
8217         * tree-vect-transform.c (vectorizable_conversion): Likewise.
8218         (vectorizable_type_demotion): Support double type conversions.
8219         (vectorizable_type_promotion): Likewise.
8220         * Makefile.in (tree-vectorizer.o): Depend on langhooks.h.
8221
8222 2008-08-11  Michael Matz  <matz@suse.de>
8223
8224         * i386/i386.c (override_options): Move initialisation from
8225         flag_schedule_insns_after_reload to here from ...
8226         (optimization_options): ... here.
8227
8228 2008-08-11  Jakub Jelinek  <jakub@redhat.com>
8229
8230         PR rtl-optimization/36998
8231         * dwarf2out.c (compute_barrier_args_size_1,
8232         compute_barrier_args_size): Temporarily remove assertions.
8233
8234 2008-08-10  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8235
8236         PR middle-end/20644
8237         * tree-ssa.c (struct walk_data): Add new flag
8238         warn_possibly_uninitialized.
8239         (warn_uninitialized_var): Use it.
8240         (warn_uninitialized_vars): New.
8241         (execute_early_warn_uninitialized): Call it.
8242         (execute_late_warn_uninitialized): Likewise.
8243
8244 2008-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8245
8246         PR middle-end/36238
8247         * reload1.c (gen_reload): Guard calls to get_secondary_mem
8248         for memory subregs.
8249
8250 2008-08-09  Jan Hubicka  <jh@suse.cz>
8251
8252         PR target/37055
8253         * optabs.c (maybe_emit_unop_insn): Remove produced code if
8254         expansion failed.
8255         (expand_fix): Be prepared for expansion to fail.
8256         (expand_sfix_optab): Remove instructions if expansion failed.
8257
8258 2008-08-09  Anatoly Sokolov  <aesok@post.ru>
8259
8260         * config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to
8261         avr31 architecture.
8262         * config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.).
8263         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
8264
8265 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
8266
8267         * config.gcc (mips*-*-linux*, mips64*-*-linux*): Add
8268         mips/t-libgcc-mips16 to tmake_file.
8269         * config/mips/mips-protos.h (mips_call_type): New enum.
8270         (mips_pic_base_register, mips_got_load): Declare.
8271         (mips_restore_gp): Take an rtx argument.
8272         (mips_use_pic_fn_addr_reg_p): Declare.
8273         (mips_expand_call): Replace the sibcall_p argument with
8274         a mips_call_type argument.  Add a lazy_p parameter.
8275         (mips_split_call): Declare.
8276         * config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro.
8277         (MIPS16_PIC_TEMP): Likewise.
8278         (reg_class): Delete M16_NA_REGS.
8279         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
8280         (SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros.
8281         (mips_split_hi_p): Declare.
8282         * config/mips/mips.c (mips_split_hi_p): New array.
8283         (mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS.
8284         (mips_got_symbol_type_p): New function.
8285         (mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P.
8286         (mips16_stub_function_p): New function.
8287         (mips16_local_function_p): Likewise.
8288         (mips_use_pic_fn_addr_reg_p): Likewise.
8289         (mips_cannot_force_const_mem): Return false for HIGHs.
8290         Extend CONST_INT and symbolic handling to MIPS16, using
8291         mips_symbol_insns to check that the base symbol type is a
8292         legitimate constant.  Reject GOT-based constants if
8293         TARGET_MIPS16_PCREL_LOADS.
8294         (mips_const_insns): Check targetm.cannot_force_const_mem when
8295         decomposing a symbolic base and a large offset.
8296         (mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters.
8297         When calling a function that needs $25 from MIPS16 code,
8298         move the target address into $25 separately and add a USE
8299         to the call insn.
8300         (mips16_gp_pseudo_reg): Insert the initializer immediately
8301         before the first real insn.
8302         (mips_pic_base_register, mips_got_load): New functions.
8303         (mips_split_symbol): Generalize the name of the LO_SUM_OUT
8304         parameter to LOW_OUT.  Say that it can be any valid SET_SRC
8305         when splitting a load-address operation.  Split SYMBOL_GOT_DISP
8306         constants and highs of SYMBOL_GOT_PAGE_OFST constants.
8307         (mips_call_tls_get_addr): Update the call to mips_expand_call,
8308         also passing NULL_RTX rather than const0_rtx as the aux argument.
8309         (mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p
8310         instead of TARGET_EXPLICIT_RELOCS.
8311         (mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P.
8312         (mips_load_call_address): Replace the sibcall_p argument with
8313         a mips_call_type argument.  Use mips_got_load.
8314         (mips16_local_alias): New structure.
8315         (mips16_local_aliases): New variable.
8316         (mips16_local_aliases_hash): New function.
8317         (mips16_local_aliases_eq): Likewise.
8318         (mips16_local_alias): Likewise.
8319         (mips16_stub_function): Likewise.
8320         (mips16_build_function_stub): Create a local alias for the target
8321         function.  Handle TARGET_ABICALLS.  For PIC abicalls, emit a
8322         .cpload directive and an R_MIPS_NONE relocation for the target
8323         function, then load the alias rather than the function itself.
8324         Wrap the non-PIC abicalls version in ".option pic0/.option pic2".
8325         (mips16_copy_fpr_return_value): Use mips16_stub_function and
8326         mips_expand_call.  Set SYMBOL_REF_BIND_NOW on the symbol.
8327         (mips16_build_call_stub): Replace the FN parameter with an
8328         FN_PTR parameter.  Force the address into a register if it
8329         isn't a call_insn_operand; don't rely on the caller to do this.
8330         If a call to a locally-defined and locally-binding MIPS16
8331         function must be made indirectly, redirect the call to the
8332         function's local alias.  Use mips16_stub_function_p,
8333         mips16_stub_function, mips_expand_call and use_reg.
8334         Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols.
8335         Use explicit %hi and %lo accesses where possible.
8336         Use MIPS_CALL to generate the correct code form of a
8337         jal instruction.  Add clobbers of $18 instead of uses.
8338         Update the call to mips_emit_call_insn.
8339         (mips_expand_call): Replace the SIBCALL_P argument with a
8340         mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value.
8341         Take a LAZY_P parameter.  Call mips16_build_call_stub first,
8342         allowing it to modify the call address.  Update the calls to
8343         mips_load_call_address and mips_emit_call_insn.
8344         (mips_split_call): New function.
8345         (mips_init_relocs): Clear mips_split_hi_p.  Only use %gp_rel if
8346         !TARGET_MIPS16.  Split SYMBOL_GOT_DISP, and the high parts of
8347         SYMBOL_GOT_PAGE_OFST, for MIPS16 code.
8348         (mips_global_pointer): Check mips16_cfun_returns_in_fpr_p.
8349         (mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM
8350         if TARGET_MIPS16.
8351         (mips_cprestore_slot): New function.
8352         (mips_restore_gp): Take a TEMP parameter.  Handle TARGET_MIPS16
8353         and use mips_cprestore_slot.
8354         (mips_output_function_prologue): Handle TARGET_MIPS16 for
8355         LOADGP_OLDABI.
8356         (mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16,
8357         then use a copygp_mips16 instruction to set up $28.
8358         (mips_expand_prologue): Initialize the cprestore slot for MIPS16 too.
8359         (mips16_lay_out_constants): Call split_all_insns_noflow.
8360         (mips_reorg_process_insns): Explicitly set all_noreorder_p to
8361         false if TARGET_MIPS16.
8362         (mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16.
8363         (mips_output_mi_thunk): Use mips_got_symbol_type_p.  Use the
8364         mips_dangerous_for_la25_p approach for MIPS16 PIC calls too.
8365         (mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for
8366         MIPS16 code.  Allow MIPS16 o32 PIC.
8367         (mips_override_options): Allow MIPS16 o32 PIC.
8368         * config/mips/mips.md: Lower CONST_GP_P moves into register moves
8369         after reload if TARGET_USE_GOT.
8370         (UNSPEC_COPYGP): New constant.
8371         (length): Use a default length of 8 for MIPS16 GOT loads.
8372         (*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT.
8373         (*got_page<mode>): Check mips_split_hi_p.
8374         (*got_disp<mode>, *got_page<mode>): Use mips_got_load.
8375         (unspec_got<mode>, unspec_call<mode>): New expanders.
8376         (load_got<mode>, load_call<mode>): Remove the length attributes.
8377         Use a got attribute instead of a type attribute.
8378         (copygp_mips16): New insn.
8379         (restore_gp): Add a scratch clobber and pass it to mips_restore_gp.
8380         (load_call<mode>): Use a "d" constraint instead of an "r" constraint.
8381         (sibcall, sibcall_value, call, call_value): Update the calls
8382         to mips_expand_call.
8383         (call_internal, call_value_internal): Use mips_split_call.
8384         (call_value_multiple_internal): Likewise.
8385         (call_split): Move after call_internal (the insn it is split from).
8386         (call_internal_direct, call_value_internal_direct): Turn into
8387         define_insn_and_splits.  Split if TARGET_SPLIT_CALLS.
8388         (call_direct_split, call_value_direct_split): New patterns.
8389         * config/mips/constraints.md (c): Handle TARGET_MIPS16 first
8390         and use M16_REGS instead of M16_NA_REGS.
8391         * config/mips/predicates.md (const_call_insn_operand): Replace
8392         the TARGET_ABSOLUTE_ABICALLS-based check with a more general
8393         mips_use_pic_fn_addr_reg_p check.
8394         (move_operand): Reject HIGHs if mips_split_hi_p.
8395         * config/mips/mips16.S: Assembly as empty if the ABI is not suitable.
8396         (__mips16_floatunsisf): Inline __mips16_floatsisf.
8397         (CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25.
8398         * config/mips/libgcc-mips16.ver: New file.
8399         * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add
8400         $(srcdir)/config/mips/libgcc-mips16.ver.
8401
8402 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
8403
8404         * config/mips/mips.c (mips_unspec_address_offset): Move earlier
8405         in file.
8406         (mips_unspec_address, mips_unspec_offset_high): Likewise.
8407         (mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise.
8408         (mips16_cfun_returns_in_fpr_p): Likewise.
8409
8410 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
8411
8412         * config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary.
8413         * config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2
8414         rather than 4 to PC.
8415
8416 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
8417
8418         * config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
8419         (FUNCTION_PROFILER): Save the static chain pointer into $2
8420         beforehand and restore it aftewards.
8421         (TRAMPOLINE_TEMPLATE): Adjust accordingly.  Load the target
8422         address directly into $25 and call the function through $25;
8423         do not clobber $3.  Pad the DImode version to cover the space
8424         left by the deleted $25 <- $3 move.
8425         (TRAMPOLINE_SIZE): Adjust the size of the SImode version after
8426         the removal of the $25 <- $3 move.
8427         (INITIALIZE_TRAMPOLINE): Update offsets accordingly.
8428         * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
8429
8430 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
8431             Daniel Jacobowitz  <dan@codesourcery.com>
8432
8433         * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete.
8434         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete.
8435         (ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete.
8436         * config/mips/mips.c (mips_start_function_definition): New function.
8437         (mips_end_function_definition): Likewise.
8438         (mips_output_function_prologue): Use mips_start_function_definition.
8439         (mips_output_function_epilogue): Use mips_end_function_definition.
8440         (build_mips16_function_stub): Use mips_start_function_definition
8441         and mips_end_function_definition.
8442         (build_mips16_call_stub): Likewise.
8443
8444 2008-08-09  Richard Guenther  <rguenther@suse.de>
8445
8446         * gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
8447         * gimple.h (gimple_call_fn): Adjust comment.
8448         (gimple_call_set_fndecl): New function.
8449         (gimple_call_fndecl): Adjust for GIMPLE_CALL no
8450         longer having bare FUNCTION_DECL operand.
8451         (gimple_call_return_type): Likewise.
8452         * tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL.
8453
8454         * value-prof.c (gimple_divmod_fixed_value): Do not emit labels.
8455         (gimple_mod_pow2): Likewise.
8456         (gimple_mod_subtract): Likewise.
8457         (gimple_ic): Likewise.
8458         (gimple_stringop_fixed_value): Likewise.
8459         (gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no
8460         longer having bare FUNCTION_DECL operand.
8461         * ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl.
8462         * omp-low.c (optimize_omp_library_calls): Likewise.
8463         * cgraphunit.c (update_call_expr): Likewise.
8464         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
8465         (execute_convert_to_rsqrt): Likewise.
8466         * cfgexpand.c (gimple_to_tree): Simplify.
8467         (release_stmt_tree): Fix for GIMPLE_CALL no longer having
8468         bare FUNCTION_DECL operand.
8469         * tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type.
8470         (convert_gimple_call): Use gimple_call_fndecl.
8471         * c-common.c (c_warn_unused_result): Likewise.
8472
8473 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8474
8475         PR c/17880
8476         * c-typeck.c (digest_init): Call verify_sequence_points from here.
8477         (c_finish_return): Likewise.
8478         (c_start_case): Likewise.
8479         * c-common.c (warn_for_collisions_1): Use explicit location in warning.
8480         * c-parser.c (c_parser_condition): New. Call
8481         verify_sequence_points.
8482         (c_parser_paren_condition): Call c_parser_condition.
8483         (c_parser_for_statement): Call c_parser_condition.
8484
8485 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8486
8487         PR 36901
8488         * diagnostic.def (DK_PEDWARN, DK_PERMERROR): New.
8489         * diagnostic.c (pedantic_warning_kind, permissive_error_kind):
8490         Moved from diagnostic.h
8491         (diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and
8492         DK_PERMERROR.
8493         (emit_diagnostic): New.
8494         (warning0, pedwarn0): Delete.
8495         (warning, warning_at, pedwarn, permerror): Return bool.
8496         * diagnostic.h (pedantic_warning_kind, permissive_error_kind):
8497         Moved to diagnostic.c.
8498         (struct diagnostic_context): Use correct type for
8499         classify_diagnostic.
8500         (diagnostic_report_diagnostic): Update declaration.
8501         (emit_diagnostic): Declare.
8502         * errors.c (warning): Return bool.
8503         * errors.h (warning): Update declaration.
8504         * toplev.h (warning0, pedwarn0): Delete.
8505         (warning, warning_at, pedwarn, permerror): Return bool.
8506         * c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN.
8507         * c-decl.c (locate_old_decl): Delete 'diag' argument. Always use
8508         inform. Update all calls.
8509         (diagnose_mismatched_decls): Check return value of warning/pedwarn
8510         before giving informative note.
8511         (implicit_decl_warning): Likewise.
8512         * c-typeck.c (build_function_call): Likewise.
8513         * tree-sssa.c (warn_uninit): Likewise.
8514         * builtins.c (gimplify_va_arg_expr): Likewise.
8515
8516 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8517
8518         PR 7651
8519         * doc/invoke.texi (-Wextra): Move warning from here...
8520         (-Wuninitialized): ... to here.
8521
8522 2008-08-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8523
8524         PR 28875
8525         * flags.h (set_Wunused): Delete
8526         * toplev.c (process_options): Handle Wunused flags here.
8527         * opts.c (maybe_warn_unused_parameter): Delete.
8528         (common_handle_option): Replace set_Wunused by warn_unused.
8529         (set_Wextra): Do not handle Wunused-parameter here.
8530         (set_Wunused): Delete.
8531         * c-opts.c (c_common_handle_option): Replace set_Wunused by
8532         warn_unused.
8533         * common.opt (Wunused): Add Var and Init.
8534         (Wunused-function): Likewise.
8535         (Wunused-label): Likewise.
8536         (Wunused-parameter): Likewise.
8537         (Wunused-value): Likewise.
8538         (Wunused-variable): Likewise.
8539
8540 2008-08-08  Peter Bergner  <bergner@vnet.ibm.com>
8541
8542         * doc/invoke.texi: Add cpu_type power7.
8543         * config.in (HAVE_AS_VSX): New.
8544         * config.gcc: Add cpu_type power7.
8545         * configure.ac (HAVE_AS_VSX): Check for assembler support of the
8546         VSX instructions.
8547         * configure: Regenerate.
8548         * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to
8549         power5.
8550         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define.
8551         (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7.
8552         (EXTRA_SPECS): Add asm_cpu_power7 spec string.
8553
8554 2008-08-08  Dorit Nuzman  <dorit@il.ibm.com>
8555
8556         * tree-vect-transform.c (vectorizable_conversion): Pass the integral
8557         type to vectorize.builtin_conversion.
8558         (vectorizable_conversion): Likewise.
8559         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes
8560         integral type as input.
8561         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
8562         FIX_TRUNC_EXPR.
8563         (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS
8564         and ALTIVEC_BUILTIN_VCTSXS.
8565         (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix
8566         formatting.
8567
8568 2008-08-08  Richard Guenther  <rguenther@suse.de>
8569
8570         * tree-ssa-ccp.c (likely_value): Calls are not all varying.
8571         (surely_varying_stmt_p): Calls are varying only if they are
8572         non-builtin and not indirect or have no result.
8573         (ccp_fold): Re-instantiate code before the tuples merge.
8574
8575 2008-08-08  Richard Guenther  <rguenther@suse.de>
8576
8577         PR tree-optimization/37056
8578         * gimple.h (gimple_assign_rhs_class): New helper function.
8579         * tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle
8580         unary operations properly.
8581
8582 2008-08-07  Jan Hubicka  <jh@suse.cz>
8583
8584         * i386.h (ix86_size_cost): Declare.
8585         (ix86_cur_cost): New function macro.
8586         * i386.md (peepholes expanding size and splitters): Predicate by
8587         optimize_insn_for_speed_p.
8588         (peepholes reduce size and splitters): Predicate by
8589         optimize_insn_for_size_p.
8590         * i386.c (ix86_size_cost): Rename from ...
8591         (size_cost): This one.
8592         (override_options): Update.
8593         (decide_alg): Likewise.
8594         (ix86_expand_clear): Use RTL profile.
8595         (ix86_pad_returns): Use RTL profile.
8596
8597 2008-08-07  Jan Hubicka  <jh@suse.cz>
8598
8599         * recog.c (split_all_insns): Set RTL profile
8600         (peephole2_optimize): Likewise.
8601         * function.c (thread_prologue_and_epilogue_insns): Likewise.
8602         * combine.c (combine_instructions): Likewise.
8603
8604 2008-08-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8605
8606         * c-common.c (c_common_reswords): Also warn about keyword "bool".
8607
8608 2008-08-07  Bob Wilson  <bob.wilson@acm.org>
8609
8610         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming
8611         value in a6 after the set_frame_ptr insn.
8612
8613 2008-08-07  Richard Henderson  <rth@redhat.com>
8614
8615         PR debug/37033
8616         * gcc.c (cpp_options): Pass along -g*.
8617
8618 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
8619
8620         * config/arm/arm.c (output_move_neon): Update comment describing
8621         big-endian vector layout.
8622         (arm_assemble_integer): Do not handle big-endian NEON vectors
8623         specially.
8624         * config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>,
8625         neon_vget_lane<mode>_sext_internal,
8626         neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust
8627         element indices for big-endian.
8628
8629 2008-08-07  Richard Henderson  <rth@redhat.com>
8630
8631         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New.
8632         * configure, config.in: Rebuild.
8633         * debug.h (dwarf2out_do_cfi_asm): Declare.
8634         * c-cppbuiltin.c (c_cpp_builtins): Use it.
8635         * dwarf2out.c (dwarf2out_do_cfi_asm): New.
8636         (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info,
8637         dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it.
8638
8639 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
8640
8641         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
8642         movv2si_internal): Combine into mov<mode>_internal.
8643         (movv2si_internal_2): Remove.
8644
8645 2008-08-07  Jan Hubicka  <jh@suse.cz>
8646
8647         PR target/37048
8648         * i386.md (single stringop patterns): Enable unconditionally.
8649
8650 2008-08-07  H.J. Lu  <hongjiu.lu@intel.com>
8651
8652         PR target/36992
8653         * config/i386/emmintrin.h (_mm_move_epi64): Use __builtin_ia32_movq128.
8654
8655         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128.
8656         (bdesc_args): Add IX86_BUILTIN_MOVQ128.
8657
8658         * config/i386/sse.md (sse2_movq128): New.
8659
8660         * doc/extend.texi: Document __builtin_ia32_movq128.
8661
8662 2008-08-07  Richard Guenther  <rguenther@suse.de>
8663
8664         PR middle-end/37042
8665         * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all
8666         pointers can access anything.
8667
8668 2008-08-06  Jan Hubicka  <jh@suse.cz>
8669
8670         * optabs.c (emit_unop_insn): Break out to ...
8671         (maybe_emit_unop_insn): ... this one.
8672         (expand_sfix_optab): Use maybe variant.
8673         * optabs.h (maybe_emit_unop_insn): Declare.
8674
8675         * i386.md (mov0 patterns): Enable by default.
8676         (FP conversion expanders): Disable expansion of code expanding
8677         sequences when instruction should be optimized for size.
8678         (single strinop patterns): Enable when optimizing for size.
8679         (string expanders): Disable expanding of code expanding sequences
8680         when optimizning instruction for size.
8681         * i386.c (ix86_expand_vector_move_misalign): Do code size optimization
8682         per BB basis.
8683         (ix86_fp_comparison_sahf_cost): Likewise.
8684         (ix86_expand_branch): Likewise.
8685         (ix86_expand_ashl_const): Likewise.
8686         (ix86_split_ashl): Likewise.
8687         (ix86_expand_strlen): Likewise.
8688         (ix86_emit_fp_unordered_jump): Likewie.
8689
8690 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8691
8692         * c-common.c: Fix typo.
8693         (c_common_reswords): Activate more C++ keyword warnings.
8694
8695         * matrix-reorg.c (compute_offset): Avoid C++ keywords.
8696
8697 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8698
8699         PR 26785
8700         * diagnostic.c (permerror_at): New.
8701         * toplev.h (permerror_at): Declare.
8702
8703 2008-08-06  Victor Kaplansky  <victork@il.ibm.com>
8704             Ira Rosen  <irar@il.ibm.com>
8705
8706         * tree-vect-transform.c (vect_model_simple_cost): Return
8707         immediately if stmt is pure SLP.
8708         (vect_model_store_cost): Ditto.
8709         (vect_model_load_cost): Ditto.
8710         (vectorizable_store): Remove PURE_SLP check before call
8711         to vect_model_store_cost.
8712         (vect_model_store_cost): When checking whether stmt describe
8713         strided access, add a check that it is not slp_node.
8714
8715 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8716
8717         PR 8715
8718         * c-common.c (warn_for_sign_compare): New. Handle separately the
8719         case that 'constant' is zero.
8720         * c-typeck.c (build_binary_op): Move code to c-common.c
8721
8722 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8723
8724         * config/alpha/alpha.c (alpha_preferred_reload_class,
8725         alpha_secondary_reload, alpha_emit_set_const_1, function_value,
8726         alpha_output_mi_thunk_osf): Avoid C++ keywords.
8727         * config/arm/arm.c (output_move_vfp, output_move_neon): Likewise.
8728         * config/arm/arm.md: Likewise.
8729         * config/avr/avr-protos.h (preferred_reload_class,
8730         test_hard_reg_class, avr_simplify_comparison_p,
8731         out_shift_with_cnt, class_max_nregs): Likewise.
8732         * config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p,
8733         output_movqi, output_movhi, output_movsisf, out_shift_with_cnt,
8734         preferred_reload_class, test_hard_reg_class): Likewise.
8735         * config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok,
8736         bfin_memory_move_cost, bfin_secondary_reload,
8737         bfin_output_mi_thunk): Likewise.
8738         * config/crx/crx.c (crx_secondary_reload_class,
8739         crx_memory_move_cost): Likewise.
8740         * config/frv/frv-protos.h (frv_secondary_reload_class,
8741         frv_class_likely_spilled_p, frv_class_max_nregs): Likewise.
8742         * config/frv/frv.c (frv_override_options, frv_alloc_temp_reg,
8743         frv_secondary_reload_class, frv_class_likely_spilled_p,
8744         frv_class_max_nregs): Likewise.
8745         * config/h8300/h8300.c (h8300_classify_operand,
8746         h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count):
8747         Likewise.
8748         * config/i386/winnt.c (i386_pe_declare_function_type): Likewise.
8749         * config/ia64/ia64.c (ia64_preferred_reload_class,
8750         ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise.
8751         * config/iq2000/iq2000.c (gen_int_relational): Likewise.
8752         * config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare):
8753         Likewise.
8754         * config/m68hc11/m68hc11.c (preferred_reload_class,
8755         m68hc11_memory_move_cost): Likewise.
8756         * config/mcore/mcore.c (mcore_secondary_reload_class,
8757         mcore_reload_class): Likewise.
8758         * config/mips/mips.c (mips_hard_regno_mode_ok_p,
8759         mips_class_max_nregs, mips_cannot_change_mode_class,
8760         mips_preferred_reload_class, mips_secondary_reload_class,
8761         mips_output_mi_thunk): Likewise.
8762         * config/mmix/mmix.c (mmix_preferred_reload_class,
8763         mmix_preferred_output_reload_class, mmix_secondary_reload_class):
8764         Likewise.
8765         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
8766         Likewise.
8767         * config/pa/pa.c (pa_secondary_reload, pa_combine_instructions,
8768         pa_can_combine_p, pa_cannot_change_mode_class): Likewise.
8769         * config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
8770         * config/rs6000/rs6000.c (paired_expand_vector_init,
8771         rs6000_secondary_reload_class, rs6000_output_mi_thunk,
8772         compare_section_name, rs6000_memory_move_cost): Likewise.
8773         * config/s390/s390.c (s390_emit_compare_and_swap,
8774         s390_preferred_reload_class, s390_secondary_reload,
8775         legitimize_pic_address, legitimize_tls_address,
8776         legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic,
8777         s390_class_max_nregs): Likewise.
8778         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
8779         * config/s390/s390.md: Likewise.
8780         * config/score/score-protos.h (score_secondary_reload_class,
8781         score_preferred_reload_class): Likewise.
8782         * config/score/score.c (score_preferred_reload_class,
8783         score_secondary_reload_class): Likewise.
8784         * config/score/score3.c (score3_output_mi_thunk,
8785         score3_preferred_reload_class, score3_secondary_reload_class,
8786         score3_hard_regno_mode_ok): Likewise.
8787         * config/score/score3.h (score3_preferred_reload_class,
8788         score3_secondary_reload_class): Likewise.
8789         * config/score/score7.c (score7_output_mi_thunk,
8790         score7_preferred_reload_class, score7_secondary_reload_class,
8791         score7_hard_regno_mode_ok): Likewise.
8792         * config/score/score7.h (score7_preferred_reload_class,
8793         score7_secondary_reload_class): Likewise.
8794         * config/sh/sh.c (prepare_move_operands, output_far_jump,
8795         output_branchy_insn, add_constant, gen_block_redirect,
8796         sh_insn_length_adjustment, sh_cannot_change_mode_class,
8797         sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload): Likewise.
8798         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
8799         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
8800         xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
8801         xstormy16_preferred_reload_class): Likewise.
8802         * config/xtensa/xtensa.c (xtensa_expand_compare_and_swap,
8803         xtensa_expand_atomic, override_options,
8804         xtensa_preferred_reload_class, xtensa_secondary_reload_class):
8805         Likewise.
8806         * reorg.c (try_merge_delay_insns): Likewise.
8807         * tree.c (merge_dllimport_decl_attributes): Likewise.
8808
8809         * config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA.
8810
8811 2008-08-06  Michael Matz  <matz@suse.de>
8812
8813         * Makefile.in (write_entries_to_file): Quote words.
8814         * gengtype.c: (read_input_line): Skip over leading white-space.
8815
8816 2008-08-06  Marc Gauthier  <marc@tensilica.com>
8817
8818         * config.gcc: Match more processor names for Xtensa.
8819         * configure.ac: Likewise.
8820         * doc/install.texi (Specific): Likewise.
8821         * configure: Regenerate.
8822
8823 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8824
8825         * builtins.c (expand_builtin_profile_func): Avoid C++ keywords.
8826         * calls.c (avoid_likely_spilled_reg): Likewise.
8827         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
8828         * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise.
8829         * config/i386/i386.c (ix86_expand_special_args_builtin,
8830         ix86_secondary_reload): Likewise.
8831         * except.c (struct eh_region, gen_eh_region_catch,
8832         remove_unreachable_regions, duplicate_eh_regions,
8833         assign_filter_values, build_post_landing_pads,
8834         sjlj_find_directly_reachable_regions, remove_eh_handler,
8835         reachable_next_level, foreach_reachable_handler,
8836         can_throw_internal_1, can_throw_external_1,
8837         collect_one_action_chain): Likewise.
8838         * expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise.
8839         * fold-const.c (twoval_comparison_p, eval_subst): Likewise.
8840         * function.c (update_temp_slot_address, instantiate_new_reg,
8841         instantiate_virtual_regs_in_rtx,
8842         instantiate_virtual_regs_in_insn): Likewise.
8843         * gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise.
8844         * gimplify.c (gimplify_call_expr, gimplify_init_constructor,
8845         gimplify_cleanup_point_expr): Likewise.
8846         * ipa-cp.c (ipcp_lattice_changed): Likewise.
8847         * passes.c (next_pass_1): Likewise.
8848         * print-tree.c (print_node_brief, print_node): Likewise.
8849         * profile.c (branch_prob): Likewise.
8850         * tree-dump.c (dump_register): Likewise.
8851         * tree-eh.c (replace_goto_queue_cond_clause, lower_catch):
8852         Likewise.
8853         * tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks,
8854         copy_statement_list, remap_gimple_op_r, copy_tree_body_r,
8855         copy_edges_for_bb, copy_cfg_body, copy_tree_r,
8856         copy_arguments_for_versioning, copy_static_chain): Likewise.
8857         * tree-into-ssa.c (names_replaced_by, add_to_repl_tbl,
8858         add_new_name_mapping, register_new_name_mapping): Likewise.
8859         * tree-mudflap.c (mf_xform_derefs): Likewise.
8860         * tree-predcom.c (struct chain, dump_chain, replace_ref_with,
8861         get_init_expr, combine_chains): Likewise.
8862         * tree-pretty-print.c (dump_generic_node): Likewise.
8863         * tree-ssa-structalias.c (create_variable_info_for): Likewise.
8864         * tree-vrp.c (simplify_cond_using_ranges): Likewise.
8865         * tree.c (substitute_in_expr, iterative_hash_expr): Likewise.
8866         * value-prof.c (gimple_duplicate_stmt_histograms): Likewise.
8867
8868 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
8869
8870         PR middle-end/37010
8871         * calls.c (expand_call): Use the biggest preferred stack
8872         boundary.
8873
8874 2008-08-06  Michael Matz  <matz@suse.de>
8875
8876         PR target/36613
8877         * reload.c (push_reload): Merge in,out,in_reg,out_reg members
8878         for reused reload, instead of overwriting them.
8879
8880 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
8881
8882         PR middle-end/37009
8883         * cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary
8884         for incoming stack boundary.
8885
8886         * function.c (assign_parm_find_entry_rtl): Update
8887         parm_stack_boundary.
8888
8889         * function.h (rtl_data): Add parm_stack_boundary.
8890
8891         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Check
8892         parm_stack_boundary for incoming stack boundary.
8893
8894 2008-08-06  Joseph Myers  <joseph@codesourcery.com>
8895
8896         * jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset
8897         for unrepresentable subregs or treat them as equal to other regs
8898         or subregs with the same register number.
8899
8900 2008-08-06  Aldy Hernandez  <aldyh@redhat.com>
8901
8902         PR middle-end/35432
8903         * gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types
8904         if want_value.
8905
8906 2008-08-06  Jan Hubicka  <jh@suse.cz>
8907
8908         * predict.c (maybe_hot_frequency_p): When profile is absent, all
8909         frequencies might be hot.
8910
8911 2008-08-06  Andreas Krebbel  <krebbel1@de.ibm.com>
8912
8913         * reload.c (find_reloads): Force constants into literal pool
8914         also if they are wrapped in a SUBREG.
8915
8916 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
8917
8918         PR target/35659
8919         * haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ...
8920         * sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here.
8921         Don't allow predicated instructions for data speculation.
8922         * sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move
8923         declaration.
8924
8925 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
8926
8927         * haifa-sched.c (extend_global): Split to extend_global_data and
8928         extend_region_data.  Update all uses.
8929         (extend_all): Rename to extend_block_data.
8930
8931 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
8932
8933         * sched-rgn.c (new_ready): Check if instruction can be
8934         speculatively scheduled before attempting speculation.
8935         (debug_rgn_dependencies): Remove wrongful assert.
8936
8937 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
8938
8939         * config/xtensa/t-xtensa: Remove dependency for gt-xtensa.h.
8940
8941 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
8942
8943         * config/xtensa/xtensa.c (xtensa_va_start): Unshare valist.
8944         (xtensa_gimplify_va_arg_expr): Unshare valist, orig_ndx, ndx, array,
8945         va_size, and type_size.
8946
8947 2008-08-04  Jason Merrill  <jason@redhat.com>
8948
8949         PR c++/37016
8950         * tree-ssa.c (useless_type_conversion_p_1): Call langhook
8951         if TYPE_STRUCTURAL_EQUALITY_P is true for both types.
8952
8953 2008-08-05  Richard Henderson  <rth@redhat.com>
8954
8955         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Check .cfi_personality.
8956         * configure: Rebuild.
8957
8958 2008-08-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8959
8960         PR tree-opt/37024
8961         * tree-tailcall.c (process_assignment): Use gimple_assign_cast_p
8962         instead of IS_CONVERT_EXPR_CODE_P for seeing if the assignment
8963         is a conversion.
8964
8965 2008-08-05  Richard Henderson  <rth@redhat.com>
8966
8967         * Makefile.in (c-cppbuiltin.o): Depend on debug.h.
8968         * c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM.
8969         * doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it.
8970         * common.opt (fdwarf2-cfi-asm): New.
8971         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): New.
8972         * config.in, configure: Rebuild.
8973         * dwarf2asm.c (dw2_asm_output_data_raw): New.
8974         (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw):
8975         New.
8976         (dw2_force_const_mem): Externalize.
8977         * dwarf2asm.h: Update.
8978         * dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't
8979         generate a real label.
8980         (output_cfi_directive): New.
8981         (add_fde_cfi): If flag_dwarf2_cfi_asm, use it.
8982         (output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm.
8983         (dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality,
8984         and .cfi_lsda.
8985         (dwarf2out_end_epilogue): Emit .cfi_endproc.
8986         (output_loc_operands_raw, output_loc_sequence_raw): New.
8987         (output_cfa_loc_raw): New.
8988
8989 2008-08-05  Paul Brook  <paul@codesourcery.com>
8990
8991         * doc/invoke.texi: Document new ARM -mfpu= and -mcpu= options.
8992         * config/arm/arm.c (all_fpus): Add vfpv3 and vfpv3-d16.
8993         (fp_model_for_fpu): Add entry for FPUTYPE_VFP3D16.
8994         (arm_file_start): Add FPUTYPE_VFP3D16.  Rename vfp3 to vfpv3.
8995         * config/arm/arm.h (TARGET_VFPD32): Define.
8996         (TARGET_VFP3): Use TARGET_VFPD32.
8997         (fputype): Add FPUTYPE_VFP3D16.
8998         (LAST_VFP_REGNUM): Use TARGET_VFPD32.
8999         * config/arm/constraints.md ("w"): Use TARGET_VFPD32.
9000         * config/arm/arm-cores.def: Add cortex-r4f.
9001         * config/arm/arm-tune.md: Regenerate.
9002
9003 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9004
9005         * config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus.
9006         Reword some comments throughout the file.
9007
9008         (MFC_MIN_DMA_LIST_ELEMENTS): New define.
9009         (MFC_MAX_DMA_LIST_ELEMENTS): Likewise.
9010         (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of
9011         MFC_MIN_DMA_LIST_ELEMENTS.
9012         (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of
9013         MFC_MAX_DMA_LIST_ELEMENTS.
9014
9015         (MFC_START_ENABLE): Remove PPU-only define.
9016         (MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise.
9017         (MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise.
9018
9019         (MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants.
9020         (MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise.
9021         (MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise.
9022         (MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise.
9023         (MFC_GETB_CMD, MFC_GETF_CMD): Likewise.
9024         (MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise.
9025         (MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise.
9026
9027         (MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines.
9028         (MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise.
9029         (mfc_sdcrt, mfc_sdcrtst): Likewise.
9030         (mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise.
9031
9032         (spu_read_machine_status): Fix typo.
9033
9034 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9035
9036         * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized
9037         SUBREG of multi-word hard register.
9038         * config/spu/spu.c (valid_subreg): Likewise.
9039         (adjust_operand): Handle SUBREGs of multi-word hard registers.
9040
9041 2008-08-04  Richard Guenther  <rguenther@suse.de>
9042
9043         * tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add
9044         the candidate with the stripped base if that base is different
9045         from the original base even for offset zero.
9046
9047 2008-08-04  Richard Guenther  <rguenther@suse.de>
9048
9049         PR middle-end/36691
9050         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly
9051         check for no_overflow.
9052
9053 2008-08-04  Richard Guenther  <rguenther@suse.de>
9054
9055         * tree-vect-transform.c (vectorizable_call): Fix tuplification.
9056
9057 2008-08-04  Paul Brook  <paul@codesourcery.com>
9058
9059         * cofig/arm/arm.c (thumb_core_reg_alloc_order): New.
9060         (arm_order_regs_for_local_alloc): New function.
9061         * config/arm/arm-protos.h (arm_order_regs_for_local_alloc): Add
9062         prototype.
9063         * config/arm/arm.h (ORDER_REGS_FOR_LOCAL_ALLOC): Define.
9064
9065 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
9066
9067         PR target/37012
9068         * config/i386/i386.c (ix86_expand_prologue): Use UNITS_PER_WORD
9069         instead of STACK_BOUNDARY / BITS_PER_UNIT to align stack.
9070         (ix86_expand_epilogue): Likewise.
9071
9072 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
9073
9074         * config/i386/i386.c (ix86_compute_frame_layout): Fix a typo
9075         in comments.
9076
9077 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
9078
9079         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x
9080         to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES.
9081         (*movv2sf_internal_rex64): Ditto.
9082
9083 2008-08-03  Jan Hubicka  <jh@suse.cz>
9084
9085         * optabs.c (expand_binop, expand_builtin_pow, expand_builtin_powi,
9086         expand_builtin_strcat): Upse optimize_insn_for_speed predicate.
9087         * expmed.c (expand_smod_pow2): Likewise.
9088
9089 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
9090
9091         PR target/36992
9092         * config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
9093         alternative 0 of operand 1.
9094         (*vec_concatv2di_rex64_sse): Ditto.
9095         (*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
9096         of operand 1.
9097         (*sse2_storeq_rex64): Penalize allocation of "r" registers.
9098         * config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation
9099         of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
9100         (*movv2sf_internal_rex64): Ditto.
9101
9102 2008-08-02  Richard Guenther  <rguenther@suse.de>
9103
9104         PR target/35252
9105         * config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators.
9106         (ssedoublesizemode): New mode attribute.
9107         (sse_shufps): Call gen_sse_shufps_v4sf.
9108         (sse_shufps_1): Macroize.
9109         (sse2_shufpd): Call gen_Sse_shufpd_v2df.
9110         (sse2_shufpd_1): Macroize.
9111         (vec_extract_odd, vec_extract_even): New expanders.
9112         (vec_interleave_highv4sf, vec_interleave_lowv4sf,
9113         vec_interleave_highv2df, vec_interleave_lowv2df): Likewise.
9114         * i386.c (ix86_expand_vector_init_one_nonzero): Call
9115         gen_sse_shufps_v4sf instead of gen_sse_shufps_1.
9116         (ix86_expand_vector_set): Likewise.
9117         (ix86_expand_reduc_v4sf): Likewise.
9118
9119 2008-08-01  Doug Kwan  <dougkwan@google.com>
9120
9121         * matrix-reorg.c: Re-enable all code.
9122         (struct malloc_call_data): Change CALL_STMT to gimple type.
9123         (collect_data_for_malloc_call): Tuplify.
9124         (struct access_site_info): Change STMT to gimple type.
9125         (struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT,
9126         and MALLOC_FOR_LEVEL to gimple and gimple pointer type.
9127         (struct free_info): Change STMT to gimple type.
9128         (struct matrix_access_phi_node):  Change PHI to gimple type.
9129         (get_inner_of_cast_expr): Remove.
9130         (may_flatten_matrices_1): Tuplify.
9131         (may_flatten_matrices): Ditto.
9132         (mark_min_matrix_escape_level): Ditto.
9133         (ssa_accessed_in_tree): Refactor statement RHS related code into ...
9134         (ssa_accessed_in_call_rhs): New
9135         (ssa_accessed_in_assign_rhs): New
9136         (record_access_alloc_site_info): Tuplify.
9137         (add_allocation_site): Ditto.
9138         (analyze_matrix_allocation_site): Ditto.
9139         (analyze_transpose): Ditto.
9140         (get_index_from_offset): Ditto.
9141         (update_type_size): Ditto.
9142         (analyze_accesses_for_call_expr): Tuplify and renamed into ...
9143         (analyze_accesses_for_call_stmt): New. Also handle LHS of a call.
9144         (analyze_accesses_for_phi_node): Tuplify.
9145         (analyze_accesses_for_modify_stmt): Tuplify and renamed into ...
9146         (analyze_accesses_for_assign_stmt): Remove code for handling call LHS.
9147         (analyze_matrix_accesses): Tuplify.
9148         (check_var_data): New call-back type for check_var_notmodified_p.
9149         (check_var_notmodified_p): Tuplify and use call-back struct to
9150         return statement found.
9151         (can_calculate_expr_before_stmt): Factor out statement related code
9152         into ...
9153         (can_calculate_stmt_before_stmt): New.
9154         (check_allocation_function): Tuplify.
9155         (find_sites_in_func): Ditto.
9156         (record_all_accesses_in_func): Ditto.
9157         (transform_access_sites): Ditto.
9158         (transform_allocation_sites): Ditto.
9159         (matrix_reorg): Re-enable.
9160         (gate_matrix_reorg): Re-enable.
9161
9162 2008-08-01  Jakub Jelinek  <jakub@redhat.com>
9163
9164         * dwarf2out.c (compute_barrier_args_size): Set barrier_args_size
9165         for labels for which it hasn't been set yet.  If it has been set,
9166         stop walking insns and continue with next worklist item.
9167         (dwarf2out_stack_adjust): Don't call compute_barrier_args_size
9168         if the only BARRIER is at the very end of a function.
9169
9170 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
9171
9172         * cfgexpand.c (expand_stack_alignment): Assert that
9173         stack_realign_drap and drap_rtx must match.
9174
9175         * function.c (instantiate_new_reg): If DRAP is used to realign
9176         stack, replace virtual_incoming_args_rtx with internal arg
9177         pointer.
9178
9179 2008-08-01  Richard Guenther  <rguenther@suse.de>
9180
9181         * tree-ssa-pre.c (fini_pre): Take in_fre parameter.  Free
9182         loop information only if we initialized it.
9183         (execute_pre): Call fini_pre with in_fre.
9184         * tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump
9185         if we do not unroll because we hit max-completely-peeled-insns.
9186         Use our estimation for consistency, do allow shrinking.
9187
9188 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
9189
9190         * config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY
9191         with MIN_STACK_BOUNDARY.
9192         (ix86_update_stack_boundary): Likewise.
9193         (ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of
9194         STACK_BOUNDARY.
9195
9196         * config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ...
9197         (MIN_STACK_BOUNDARY): This.
9198
9199 2008-08-01  Richard Guenther  <rguenther@suse.de>
9200
9201         PR middle-end/36997
9202         * gimplify.c (gimplify_call_expr): Set error_mark_node on GS_ERROR.
9203
9204 2008-08-01  Richard Guenther  <rguenther@suse.de>
9205
9206         PR tree-optimization/36988
9207         * tree-ssa-ccp.c (ccp_fold): Conversions of constants only
9208         do not matter if that doesn't change volatile qualification.
9209
9210 2008-08-01  Paolo Bonzini  <bonzini@gnu.org>
9211
9212         * configure.ac: Do not generate libada-mk.  Do not subst
9213         host_cc_for_libada.
9214         * libada-mk.in: Remove.
9215         * Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars.
9216         * configure: Regenerate.
9217
9218 2008-08-01  Basile Starynkevitch  <basile@starynkevitch.net>
9219
9220         * tree-pass.h: Added comment about not dumping passes with name
9221         starting with star in struct opt_pass.
9222         * passes.c (register_dump_files_1): Don't do dump for a pass with
9223         name starting with star.
9224         * doc/passes.texi (Pass manager): Mention pass names and special
9225         meaning of star prefix to avoid dump.
9226
9227 2008-07-31  Adam Nemet  <anemet@caviumnetworks.com>
9228
9229         * config.gcc (mipsisa64r2*-*-linux*): New configuration.  Set ISA
9230         to MIPS64r2.
9231         * config/mips/mips.h (GENERATE_MIPS16E): Update comment.
9232         (ISA_MIPS64R2): New macro.
9233         (TARGET_CPU_CPP_BUILTINS, MULTILIB_ISA_DEFAULT): Handle it.
9234         (ISA_HAS_64BIT_REGS, ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE,
9235         ISA_HAS_8CC, ISA_HAS_FP4, ISA_HAS_PAIRED_SINGLE,
9236         ISA_HAS_MADD_MSUB, ISA_HAS_NMADD4_NMSUB4, ISA_HAS_CLZ_CLO,
9237         ISA_HAS_ROR, ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX, ISA_HAS_SEB_SEH,
9238         ISA_HAS_EXT_INS, ISA_HAS_MXHC1, ISA_HAS_HILO_INTERLOCKS,
9239         ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Return true for ISA_MIPS64R2.
9240         (MIPS_ISA_LEVEL_SPEC, ASM_SPEC, LINK_SPEC): Handle -mips64r2.
9241         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF):
9242         Move up to keep list alphabetically sorted.
9243         (TUNE_20KC, TUNE_24K, TUNE_74K, TUNE_LOONGSON_2EF): Likewise.
9244         * config/mips/mips.c (mips_cpu_info_table): Add default MIPS64r2
9245         processor.
9246         * doc/invoke.texi (MIPS Options): Add -mips64r2.
9247         (-march=@var{arch}): Add mips64r2.
9248
9249 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
9250
9251         * config/i386/darwin.h (MAIN_STACK_BOUNDARY): Define to 128.
9252
9253 2008-07-31  Steve Ellcey  <sje@cup.hp.com>
9254
9255         * expr.c (expand_assignment): Check for complete type.
9256
9257 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
9258
9259         PR debug/36977
9260         * cfgexpand.c (expand_stack_alignment): Set stack_realign_tried.
9261
9262         * dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried
9263         for stack alignment.
9264
9265         * function.h (rtl_data): Add stack_realign_tried.  Update comments.
9266
9267 2008-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
9268
9269         * config/sh/sh.c (sh_canonical_va_list_type): Remove.
9270         (TARGET_CANONICAL_VA_LIST_TYPE): Remove.
9271
9272 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
9273
9274         PR rtl-optimization/36419
9275         * dwarf2out.c (barrier_args_size): New variable.
9276         (compute_barrier_args_size, compute_barrier_args_size_1): New
9277         functions.
9278         (dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size
9279         if not called yet in the current function, use barrier_args_size
9280         array to find the new args_size value.
9281         (dwarf2out_frame_debug): Free and clear barrier_args_size.
9282
9283 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
9284
9285         PR debug/36980
9286         * dwarf2out.c (dwarf2out_frame_debug_expr): Move rule 17 before
9287         rule 19.
9288
9289 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
9290
9291         PR debug/36976
9292         * dwarf2out.c (dwarf2out_args_size_adjust): New.
9293         (dwarf2out_stack_adjust): Use it.
9294         (dwarf2out_frame_debug_expr): Likewise.
9295
9296 2008-07-31  Richard Guenther  <rguenther@suse.de>
9297
9298         PR tree-optimization/36978
9299         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Do not fold
9300         the generated condition.
9301
9302 2008-07-31  Richard Guenther  <rguenther@suse.de>
9303
9304         * passes.c (init_optimization_passes): Always call
9305         pass_early_warn_uninitialized.
9306         * opts.c (decode_options): Do not warn about -Wuninitialized at -O0.
9307         * doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0.
9308         * doc/passes.texi (Warn for uninitialized variables): Adjust.
9309
9310 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
9311
9312         PR c/36970
9313         * builtins.c (maybe_emit_free_warning): New function.
9314         (expand_builtin): Process BUILT_IN_FREE even at -O0.  Call
9315         maybe_emit_free_warning for BUILT_IN_FREE.
9316
9317         PR debug/36278
9318         * dwarf2out.c (get_context_die): New function.
9319         (force_decl_die, force_type_die): Use it.
9320         (dwarf2out_imported_module_or_decl): Likewise.  If base_type_die
9321         returns NULL, force generation of DW_TAG_typedef and put that into
9322         DW_AT_import.
9323
9324         PR preprocessor/36649
9325         * c-pch.c (c_common_read_pch): Save and restore
9326         line_table->trace_includes across PCH restore.
9327
9328 2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>
9329
9330         PR ada/36554
9331         * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.
9332
9333 2008-07-30  Rafael Ávila de Espíndola  <espindola@google.com>
9334
9335         PR 36974
9336         * final.c (call_from_call_insn): Handle COND_EXEC.
9337
9338 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
9339
9340         * builtins.c (std_gimplify_va_arg_expr): Replace
9341         PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT.
9342         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
9343
9344 2008-07-30  Joey Ye  <joey.ye@intel.com>
9345             H.J. Lu  <hongjiu.lu@intel.com>
9346
9347         * builtins.c (expand_builtin_setjmp_receiver): Replace
9348         virtual_incoming_args_rtx with crtl->args.internal_arg_pointer.
9349         (expand_builtin_apply_args_1): Likewise.
9350         (expand_builtin_longjmp): Need DRAP for stack alignment.
9351         (expand_builtin_apply): Likewise.
9352
9353         * caller-save.c (setup_save_areas): Call assign_stack_local_1
9354         instead of assign_stack_local to allow alignment reduction.
9355
9356         * calls.c (emit_call_1): Need DRAP for stack alignment if
9357         return pops.
9358         (expand_call): Replace virtual_incoming_args_rtx with
9359         crtl->args.internal_arg_pointer.
9360         * stmt.c (expand_nl_goto_receiver): Likewise.
9361
9362         * cfgexpand.c (get_decl_align_unit): Estimate stack variable
9363         alignment and store to stack_alignment_estimated and
9364         max_used_stack_slot_alignment.
9365         (expand_one_var): Likewise.
9366         (expand_stack_alignment): New function.
9367         (tree_expand_cfg): Initialize max_used_stack_slot_alignment
9368         and stack_alignment_estimated fields in rtl_data.  Call
9369         expand_stack_alignment at end.
9370
9371         * defaults.h (INCOMING_STACK_BOUNDARY): New.
9372         (MAX_STACK_ALIGNMENT): Likewise.
9373         (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise.
9374         (SUPPORTS_STACK_ALIGNMENT): Likewise.
9375
9376         * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for
9377         stack alignment when generating virtual registers.
9378
9379         * function.c (assign_stack_local): Renamed to ...
9380         (assign_stack_local_1): This.  Add a parameter to indicate
9381         if it is OK to reduce alignment.
9382         (assign_stack_local): Use it.
9383         (instantiate_new_reg): Instantiate virtual incoming args rtx
9384         to vDRAP if stack realignment and DRAP is needed.
9385         (assign_parms): Collect parameter/return type alignment and
9386         contribute to stack_alignment_estimated.
9387         (locate_and_pad_parm): Likewise.
9388         (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx
9389         with crtl->args.internal_arg_pointer.
9390
9391         * function.h (rtl_data): Add new field drap_reg,
9392         max_used_stack_slot_alignment, stack_alignment_estimated,
9393         stack_realign_needed, need_drap, stack_realign_processed and
9394         stack_realign_finalized.
9395         (stack_realign_fp): New macro.
9396         (stack_realign_drap): Likewise.
9397
9398         * global.c (compute_regsets): Frame pointer is needed when
9399         stack is realigned.  Can eliminate frame pointer when stack is
9400         realigned and dynamic realigned argument pointer isn't used.
9401
9402         * reload1.c (update_eliminables):  Frame pointer is needed
9403         when stack is realigned.
9404         (init_elim_table): Can eliminate frame pointer when stack is
9405         realigned and dynamic realigned argument pointer isn't used.
9406
9407         * rtl.h (assign_stack_local_1): Declare new funtion.
9408
9409         * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New.
9410         (TARGET_GET_DRAP_RTX): Likewise.
9411         (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and
9412         TARGET_GET_DRAP_RTX.
9413
9414         * target.h (gcc_target): Add update_stack_boundary and get_drap_rtx.
9415
9416         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
9417         STACK_BOUNDARY with MAX_STACK_ALIGNMENT.
9418
9419 2008-07-30  Xuepeng Guo  <xuepeng.guo@intel.com>
9420             H.J. Lu  <hongjiu.lu@intel.com>
9421
9422         * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg,
9423         vdrap_reg, stack_realign and drap_reg_saved.
9424         (add_cfi): Don't allow redefining CFA when DRAP is used.
9425         (reg_save): Handle stack alignment.
9426         (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack
9427         alignment.  Don't generate DWARF information for (set fp sp)
9428         when DRAP is used.
9429         (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg
9430         to INVALID_REGNUM.
9431         (int_loc_descriptor): Move prototype forward.  Also define if
9432         DWARF2_UNWIND_INFO is true.
9433         (output_cfa_loc): Handle DW_CFA_expression.
9434         (build_cfa_aligned_loc): New.
9435         (based_loc_descr): Update assert for stack realign.  For local
9436         variables, use sp+offset when stack is aligned without drap and
9437         fp+offset when stack is aligned with drap.  For arguments, use
9438         cfa+offset when drap is used to align stack.
9439
9440 2008-07-30  Joey Ye  <joey.ye@intel.com>
9441             H.J. Lu  <hongjiu.lu@intel.com>
9442
9443         * config/i386/i386.c (ix86_force_align_arg_pointer_string):
9444         Break long line.
9445         (ix86_gen_andsp): New.
9446         (ix86_user_incoming_stack_boundary): Likewise.
9447         (ix86_default_incoming_stack_boundary): Likewise.
9448         (ix86_incoming_stack_boundary): Likewise.
9449         (ix86_can_eliminate): Likewise.
9450         (find_drap_reg): Likewise.
9451         (ix86_update_stack_boundary): Likewise.
9452         (ix86_get_drap_rtx): Likewise.
9453         (ix86_finalize_stack_realign_flags): Likewise.
9454         (TARGET_UPDATE_STACK_BOUNDARY): Likewise.
9455         (TARGET_GET_DRAP_RTX): Likewise.
9456         (override_options): Overide option value for new options.
9457         (ix86_function_ok_for_sibcall): Remove check for
9458         force_align_arg_pointer.
9459         (ix86_handle_cconv_attribute): Likewise.
9460         (ix86_function_regparm): Likewise.
9461         (setup_incoming_varargs_64): Don't set stack_alignment_needed here.
9462         (ix86_va_start): Replace virtual_incoming_args_rtx with
9463         crtl->args.internal_arg_pointer.
9464         (ix86_select_alt_pic_regnum): Check DRAP register.
9465         (ix86_save_reg): Replace force_align_arg_pointer with drap_reg.
9466         (ix86_compute_frame_layout): Compute frame layout wrt stack
9467         realignment.
9468         (ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx.
9469         (ix86_expand_prologue): Decide if stack realignment is needed
9470         and generate prologue code accordingly.
9471         (ix86_expand_epilogue): Generate epilogue code wrt stack
9472         realignment is really needed or not.
9473
9474         * config/i386/i386.h (MAIN_STACK_BOUNDARY): New.
9475         (ABI_STACK_BOUNDARY): Likewise.
9476         (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise.
9477         (STACK_REALIGN_DEFAULT): Likewise.
9478         (INCOMING_STACK_BOUNDARY): Likewise.
9479         (MAX_STACK_ALIGNMENT): Likewise.
9480         (ix86_incoming_stack_boundary): Likewise.
9481         (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed.
9482         (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG.
9483         (CAN_ELIMINATE): Defined with ix86_can_eliminate.
9484         (machine_function): Remove force_align_arg_pointer.
9485
9486         * config/i386/i386.md (BX_REG): New.
9487         (R13_REG): Likewise.
9488
9489         * config/i386/i386.opt (mforce_drap): New.
9490         (mincoming-stack-boundary): Likewise.
9491         (mstackrealign): Add Init(-1).
9492
9493         * config/i386/i386-protos.h (ix86_can_eliminate): New
9494
9495 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
9496
9497         * doc/extend.texi: Update force_align_arg_pointer.
9498
9499         * doc/invoke.texi: Document -mincoming-stack-boundary.  Update
9500         -mstackrealign.
9501
9502         * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro.
9503         (INCOMING_STACK_BOUNDARY): Likewise.
9504         (TARGET_UPDATE_STACK_BOUNDARY): New target hook.
9505         (TARGET_GET_DRAP_RTX): Likewise.
9506
9507 2008-07-30  Andreas Schwab  <schwab@suse.de>
9508
9509         PR rtl-optimization/36929
9510         * dse.c (replace_inc_dec): Use emit_insn_before instead of
9511         add_insn_before and fix argument order.
9512         (replace_inc_dec_mem): Handle NULL rtx.
9513
9514 2008-07-30  Andrew Jenner  <andrew@codesourcery.com>
9515
9516         * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
9517         function.
9518         (arm_compute_initial_elimination_offset): Use it.
9519         (arm_compute_save_reg_mask): Include static chain save slot when
9520         calculating alignment.
9521         (arm_get_frame_offsets): Ditto.
9522         (thumb1_compute_save_reg_mask): Ensure we have a low register saved
9523         that we can use to decrement the stack when the stack decrement
9524         could be too big for an immediate value in a single insn.
9525         (thumb1_expand_prologue): Avoid using r12 for stack decrement.
9526
9527 2008-07-30  Richard Guenther  <rguenther@suse.de>
9528
9529         PR tree-optimization/36967
9530         * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p.
9531         Release defs of statements we remove.
9532
9533 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
9534
9535         * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
9536         instead of NULL_RTVEC.
9537
9538 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
9539
9540         PR target/35866
9541
9542         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
9543         vector modes.
9544
9545 2008-07-30  Rafael Ávila de Espíndola  <espindola@google.com>
9546
9547         * final.c (call_from_call_insn): New.
9548         (final_scan_insn): Call assemble_external on FUNCTION_DECLs.
9549
9550 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
9551
9552         * configure.ac: Substitute ADA_CFLAGS.
9553         * configure: Regenerate.
9554         * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files.
9555         * Makefile.in: Remove mention of X_* variables.
9556         * config/pa/x-ada-hpux10: Remove.
9557         * config/pa/x-ada: Remove.
9558
9559         * doc/fragments.texi: Update.
9560
9561 2008-07-30  Olivier Hainque  <hainque@adacore.com>
9562
9563         * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
9564         * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
9565         __dso_handle explicitly here.
9566
9567 2008-07-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9568
9569         PR 34389
9570         * c-typeck.c (build_binary_op): Encapsulate code into...
9571         * c-common.c (shorten_binary_op): ...this new function.
9572         (conversion_warning): Use the new function. Handle non-negative
9573         constant in bitwise-and.
9574         * c-common.h (shorten_binary_op): Declare.
9575
9576 2008-07-30  Olivier Hainque  <hainque@adacore.com>
9577
9578         * scan.c (make_sstring_space): Add explicit conversions of
9579         allocator's return value.
9580         * fix-header.c (recognized_function): Likewise.
9581
9582 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9583
9584         * doc/cpp.texi: Update to GFDL 1.2.
9585         * doc/gcc.texi: Do not list GPL as Invariant Section.
9586         * doc/gccint.texi: Likewise.  Update copyright years.
9587         * doc/install.texi: Update copyright years.
9588
9589 2008-07-30  Alan Modra  <amodra@bigpond.net.au>
9590
9591         PR target/36955
9592         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
9593         a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.
9594
9595 2008-07-29  Jan Hubicka  <jh@suse.cz>
9596
9597         * c-decl.c (merge_decls): Do not handle DECL_INLINE.
9598         (grokdeclarator): Likewise.
9599         * langhooks.c (lhd_warn_unused_global_decl): Use
9600         DECL_DECLARED_INLINE_P.
9601         * print-tree.c (print_node): Remove DECL_INLINE check.
9602
9603 2008-07-29  Richard Guenther  <rguenther@suse.de>
9604
9605         PR tree-optimization/36945
9606         * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
9607         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
9608         Record invariant addresses un-decomposed.
9609         (copy_reference_ops_from_call): Record reference call
9610         arguments properly.  Simplify.
9611         * tree-ssa-pre.c (create_component_ref_by_pieces_1): New
9612         helper split out from ...
9613         (create_component_ref_by_pieces): ... here.  Simplify.
9614         Prepare for recursive invocation for call arguments.
9615         (create_expression_by_pieces): Adjust call to
9616         create_component_ref_by_pieces.
9617         (compute_avail): Process operand 2 of reference ops.
9618
9619 2008-07-29  Richard Guenther  <rguenther@suse.de>
9620
9621         * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for OBJ_TYPE_REF.
9622
9623 2008-07-29  Jakub Jelinek  <jakub@redhat.com>
9624
9625         * c-format.c (check_format_types): Revert unwanted checkin.
9626
9627 2008-07-29  Jan Hubicka  <jh@suse.cz>
9628
9629         * flags.h (flag_really_no_inline): Remove.
9630         * cgraph.c (cgraph_function_possibly_inlined_p): Simplify.
9631         * toplev.c (flag_really_no_inline): Remove.
9632         * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline.
9633         * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline.
9634         (cgraph_decide_inlining_incrementally): Likewise.
9635         (compute_inline_parameters): Likewise.
9636         * opts.c (decode_options): Simplify.
9637         * c-opts.c (c_common_post_options): Do not set flag_no_inline.
9638         * common.opt (finline): Initialize to 1.
9639         * tree-inline.c (inlinable_function_p): Check flag_no_inline.
9640
9641 2008-07-29  Jan Hubicka  <jh@suse.cz>
9642
9643         * predict.c (always_optimize_for_size_p): New function.
9644         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
9645         optimize_edge_for_size_p, optimize_edge_for_speed_p,
9646         optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
9647         functions.
9648         (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
9649         * function.c (prepare_function_start): Set default profile.
9650         * function.h (rtl_data): Add maybe_hot_insn_p.
9651         * cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
9652         (construct_exit_block): Likewise.
9653         (tree_expand_cfg): Likewise.
9654         * basic-block.h
9655         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
9656         optimize_edge_for_size_p, optimize_edge_for_speed_p,
9657         optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
9658         (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
9659         Declare.
9660
9661 2008-07-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9662
9663         PR 34985
9664         * c-decl.c (merge_decls): Merge USED flags.
9665
9666 2008-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
9667
9668         * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
9669         valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit,
9670         next_stack, lab_false and lab_over trees.
9671
9672 2008-07-28  Richard Guenther  <rguenther@suse.de>
9673
9674         PR tree-optimization/36957
9675         * tree-flow.h (tree_ssa_useless_type_conversion): Remove.
9676         (useless_type_conversion_p): Remove.
9677         (types_compatible_p): Remove.
9678         * gimple.h (tree_ssa_useless_type_conversion): Declare.
9679         (useless_type_conversion_p): Declare.
9680         (types_compatible_p): Declare.
9681         (gimple_expr_type): Return the base type only if it is
9682         trivially convertible to the subtype.
9683
9684 2008-07-28  Andreas Tobler  <a.tobler@schweiz.org>
9685
9686         * configure.ac: Use the m4_do macro to concatenate the warnings into
9687         one string in ACX_PROG_CC_WARNING_OPTS,
9688         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and
9689         ACX_PROG_CC_WARNINGS_ARE_ERRORS.
9690         * configure: Regenerate.
9691
9692 2008-07-28  Richard Guenther  <rguenther@suse.de>
9693
9694         * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code.
9695         (insert_fake_stores): Remove.
9696         (realify_fake_stores): Likewise.
9697         (execute_pre): Remove dead code.
9698         * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary case.
9699         (find_func_aliases): Deal with it here instead.
9700         Re-enable gcc_unreachable call.
9701
9702 2008-07-28  Richard Guenther  <rguenther@suse.de>
9703
9704         Merge from gimple-tuples-branch.
9705
9706         * ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
9707         * gimple.def: New file.
9708         * gsstruct.def: Likewise.
9709         * gimple-iterator.c: Likewise.
9710         * gimple-pretty-print.c: Likewise.
9711         * tree-gimple.c: Removed.  Merged into ...
9712         * gimple.c: ... here.  New file.
9713         * tree-gimple.h: Removed.  Merged into ...
9714         * gimple.h: ... here.  New file.
9715
9716         * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
9717         * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
9718         --enable-checking=gimple flag.
9719         * config.in: Likewise.
9720         * configure: Regenerated.
9721
9722         * tree-ssa-operands.h: Tuplified.
9723         * tree-vrp.c: Likewise.
9724         * tree-loop-linear.c: Likewise.
9725         * tree-into-ssa.c: Likewise.
9726         * tree-ssa-loop-im.c: Likewise.
9727         * tree-dump.c: Likewise.
9728         * tree-complex.c: Likewise.
9729         * cgraphbuild.c: Likewise.
9730         * tree-ssa-threadupdate.c: Likewise.
9731         * tree-ssa-loop-niter.c: Likewise.
9732         * tree-pretty-print.c: Likewise.
9733         * tracer.c: Likewise.
9734         * gengtype.c: Likewise.
9735         * tree-loop-distribution.c: Likewise.
9736         * tree-ssa-loop-unswitch.c: Likewise.
9737         * cgraph.c: Likewise.
9738         * cgraph.h: Likewise.
9739         * tree-ssa-loop-manip.c: Likewise.
9740         * value-prof.c: Likewise.
9741         * tree-ssa-loop-ch.c: Likewise.
9742         * tree-tailcall.c: Likewise.
9743         * value-prof.h: Likewise.
9744         * tree.c: Likewise.
9745         * tree.h: Likewise.
9746         * tree-pass.h: Likewise.
9747         * ipa-cp.c: Likewise.
9748         * tree-scalar-evolution.c: Likewise.
9749         * tree-scalar-evolution.h: Likewise.
9750         * target.h: Likewise.
9751         * lambda-mat.c: Likewise.
9752         * tree-phinodes.c: Likewise.
9753         * diagnostic.h: Likewise.
9754         * builtins.c: Likewise.
9755         * tree-ssa-alias-warnings.c: Likewise.
9756         * cfghooks.c: Likewise.
9757         * fold-const.c: Likewise.
9758         * cfghooks.h: Likewise.
9759         * omp-low.c: Likewise.
9760         * tree-ssa-dse.c: Likewise.
9761         * ipa-reference.c: Likewise.
9762         * tree-ssa-uncprop.c: Likewise.
9763         * toplev.c: Likewise.
9764         * tree-gimple.c: Likewise.
9765         * tree-gimple.h: Likewise.
9766         * tree-chrec.c: Likewise.
9767         * tree-chrec.h: Likewise.
9768         * tree-ssa-sccvn.c: Likewise.
9769         * tree-ssa-sccvn.h: Likewise.
9770         * cgraphunit.c: Likewise.
9771         * tree-ssa-copyrename.c: Likewise.
9772         * tree-ssa-ccp.c: Likewise.
9773         * tree-ssa-loop-ivopts.c: Likewise.
9774         * tree-nomudflap.c: Likewise.
9775         * tree-call-cdce.c: Likewise.
9776         * ipa-pure-const.c: Likewise.
9777         * c-format.c: Likewise.
9778         * tree-stdarg.c: Likewise.
9779         * tree-ssa-math-opts.c: Likewise.
9780         * tree-ssa-dom.c: Likewise.
9781         * tree-nrv.c: Likewise.
9782         * tree-ssa-propagate.c: Likewise.
9783         * ipa-utils.c: Likewise.
9784         * tree-ssa-propagate.h: Likewise.
9785         * tree-ssa-alias.c: Likewise.
9786         * gimple-low.c: Likewise.
9787         * tree-ssa-sink.c: Likewise.
9788         * ipa-inline.c: Likewise.
9789         * c-semantics.c: Likewise.
9790         * dwarf2out.c: Likewise.
9791         * expr.c: Likewise.
9792         * tree-ssa-loop-ivcanon.c: Likewise.
9793         * predict.c: Likewise.
9794         * tree-ssa-loop.c: Likewise.
9795         * tree-parloops.c: Likewise.
9796         * tree-ssa-address.c: Likewise.
9797         * tree-ssa-ifcombine.c: Likewise.
9798         * matrix-reorg.c: Likewise.
9799         * c-decl.c: Likewise.
9800         * tree-eh.c: Likewise.
9801         * c-pretty-print.c: Likewise.
9802         * lambda-trans.c: Likewise.
9803         * function.c: Likewise.
9804         * langhooks.c: Likewise.
9805         * ebitmap.h: Likewise.
9806         * tree-vectorizer.c: Likewise.
9807         * function.h: Likewise.
9808         * langhooks.h: Likewise.
9809         * tree-vectorizer.h: Likewise.
9810         * ipa-type-escape.c: Likewise.
9811         * ipa-type-escape.h: Likewise.
9812         * domwalk.c: Likewise.
9813         * tree-if-conv.c: Likewise.
9814         * profile.c: Likewise.
9815         * domwalk.h: Likewise.
9816         * tree-data-ref.c: Likewise.
9817         * tree-data-ref.h: Likewise.
9818         * tree-flow-inline.h: Likewise.
9819         * tree-affine.c: Likewise.
9820         * tree-vect-analyze.c: Likewise.
9821         * c-typeck.c: Likewise.
9822         * gimplify.c: Likewise.
9823         * coretypes.h: Likewise.
9824         * tree-ssa-phiopt.c: Likewise.
9825         * calls.c: Likewise.
9826         * tree-ssa-coalesce.c: Likewise.
9827         * tree.def: Likewise.
9828         * tree-dfa.c: Likewise.
9829         * except.c: Likewise.
9830         * except.h: Likewise.
9831         * cfgexpand.c: Likewise.
9832         * tree-cfgcleanup.c: Likewise.
9833         * tree-ssa-pre.c: Likewise.
9834         * tree-ssa-live.c: Likewise.
9835         * tree-sra.c: Likewise.
9836         * tree-ssa-live.h: Likewise.
9837         * tree-predcom.c: Likewise.
9838         * lambda.h: Likewise.
9839         * tree-mudflap.c: Likewise.
9840         * ipa-prop.c: Likewise.
9841         * print-tree.c: Likewise.
9842         * tree-ssa-copy.c: Likewise.
9843         * ipa-prop.h: Likewise.
9844         * tree-ssa-forwprop.c: Likewise.
9845         * ggc-page.c: Likewise.
9846         * c-omp.c: Likewise.
9847         * tree-ssa-dce.c: Likewise.
9848         * tree-vect-patterns.c: Likewise.
9849         * tree-ssa-ter.c: Likewise.
9850         * tree-nested.c: Likewise.
9851         * tree-ssa.c: Likewise.
9852         * lambda-code.c: Likewise.
9853         * tree-ssa-loop-prefetch.c: Likewise.
9854         * tree-inline.c: Likewise.
9855         * tree-inline.h: Likewise.
9856         * tree-iterator.c: Likewise.
9857         * tree-optimize.c: Likewise.
9858         * tree-ssa-phiprop.c: Likewise.
9859         * tree-vect-transform.c: Likewise.
9860         * tree-object-size.c: Likewise.
9861         * tree-outof-ssa.c: Likewise.
9862         * cfgloop.c: Likewise.
9863         * system.h: Likewise.
9864         * tree-profile.c: Likewise.
9865         * cfgloop.h: Likewise.
9866         * c-gimplify.c: Likewise.
9867         * c-common.c: Likewise.
9868         * tree-vect-generic.c: Likewise.
9869         * tree-flow.h: Likewise.
9870         * c-common.h: Likewise.
9871         * basic-block.h: Likewise.
9872         * tree-ssa-structalias.c: Likewise.
9873         * tree-switch-conversion.c: Likewise.
9874         * tree-ssa-structalias.h: Likewise.
9875         * tree-cfg.c: Likewise.
9876         * passes.c: Likewise.
9877         * ipa-struct-reorg.c: Likewise.
9878         * ipa-struct-reorg.h: Likewise.
9879         * tree-ssa-reassoc.c: Likewise.
9880         * cfgrtl.c: Likewise.
9881         * varpool.c: Likewise.
9882         * stmt.c: Likewise.
9883         * tree-ssanames.c: Likewise.
9884         * tree-ssa-threadedge.c: Likewise.
9885         * langhooks-def.h: Likewise.
9886         * tree-ssa-operands.c: Likewise.
9887         * config/alpha/alpha.c: Likewise.
9888         * config/frv/frv.c: Likewise.
9889         * config/s390/s390.c: Likewise.
9890         * config/m32c/m32c.c: Likewise.
9891         * config/m32c/m32c-protos.h: Likewise.
9892         * config/spu/spu.c: Likewise.
9893         * config/sparc/sparc.c: Likewise.
9894         * config/i386/i386.c: Likewise.
9895         * config/sh/sh.c: Likewise.
9896         * config/xtensa/xtensa.c: Likewise.
9897         * config/stormy16/stormy16.c: Likewise.
9898         * config/ia64/ia64.c: Likewise.
9899         * config/rs6000/rs6000.c: Likewise.
9900         * config/pa/pa.c: Likewise.
9901         * config/mips/mips.c: Likewise.
9902
9903 2008-07-28  Simon Baldwin  <simonb@google.com>
9904
9905         * c-pragma.c (handle_pragma_message): New function.
9906         (init_pragma): Register handle_pragma_message.
9907         * doc/extend.texi (Diagnostic Pragmas): Added #pragma message
9908         documentation.
9909
9910 2008-07-27  Victor Kaplansky  <victork@il.ibm.com>
9911
9912         PR tree-optimization/35252
9913         * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
9914         REALPART_EXPR to be considered as same load operation.
9915
9916 2008-07-27  Eric Botcazou  <ebotcazou@adacore.com>
9917
9918         PR tree-optimization/36830
9919         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
9920         (expressions_equal_p): Return false if only one operand is null.
9921
9922 2008-07-26  Gerald Pfeifer  <gerald@pfeifer.com>
9923
9924         * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
9925         version requirements.
9926
9927 2008-07-26  Olivier Hainque  <hainque@adacore.com>
9928
9929         * collect2.c (symkind): New enum.  Symbol kinds we care about.
9930         (is_ctor_dtor): Return symkind instead of int.  Adjust prototype,
9931         code and head comment accordingly.
9932         (scan_prog_file): Use symkind names instead of bare integers.
9933
9934 2008-07-25  Jan Hubicka  <jh@suse.cz>
9935
9936         * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on
9937         DECL_INLINE.
9938         * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
9939         (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
9940         * dojump.c (clear_pending_stack_adjust): Likewise.
9941         * print-tree.c (print_node): Ignore DECL_INLINE.
9942         * tree-inline.c (inlinable_function_p): Likewise.
9943
9944 2008-07-25  Michael Meissner  <gnu@the-meissners.org>
9945
9946         * doc/extend.texi (hot attribute): Document that the hot attribute
9947         turns on -O3 for some ports.
9948         (cold attribute): Document that the cold attribute turns on -Os
9949         for some ports
9950
9951         * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
9952         reflect function specific option support.
9953
9954         * target.h (struct target_option_hooks): Add fields to say whether
9955         the cold attribute implies -Os and the hot attribute implies -O3.
9956
9957         * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
9958         By default, do not turn on -Os for cold functions.
9959         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
9960         not turn on -O3 for hot functions.
9961
9962         * c-common.c (handle_hot_attribute): Use target hook to determine
9963         if hot functions should enable -O3.
9964         (handle_cold_attribute): Use target hook to determine if cold
9965         functions should enable -Os.
9966
9967         * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
9968         (override_options): Move disable scheduling to
9969         optimization_options.
9970         (optimization_options): Disable scheduling here, not
9971         override_options.
9972         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
9973         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
9974
9975         * config/ia64/ia64.c (ia64_override_options): Move setting
9976         scheduling flags to ia64_optimization_options.
9977         (ia64_optimization_options): Disable scheduling options here, and
9978         not in ia64_override_options.
9979         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
9980         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
9981
9982 2008-07-25  H.J. Lu  <hongjiu.lu@intel.com>
9983
9984         PR target/36936
9985         * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
9986
9987 2008-07-25  Martin Jambor  <mjambor@suse.cz>
9988
9989         PR tree-optimization/36926
9990         * ipa-prop.c (ipa_analyze_call_uses): Call
9991         ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
9992
9993 2008-07-25  Joseph Myers  <joseph@codesourcery.com>
9994
9995         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
9996         movv2si_internal): Add mem = reg alternative.
9997
9998 2008-07-25  Andreas Tobler  <a.tobler@schweiz.org>
9999
10000         PR bootstrap/36918
10001         * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
10002         DEFAULT_PCC_STRUCT_RETURN to 127.
10003
10004 2008-07-24  Jan Hubicka  <jh@suse.cz>
10005
10006         * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
10007         (build_cgraph_edges): Likewise.
10008         * cgraph.c (cgraph_node): Do not update assembler hash.
10009         (cgraph_remove_node): Drop non-unit-at-a-time code.
10010         * tree-pass.h (pass_O0_always_inline): Remove.
10011         * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
10012         * toplev.c (process_options): Flag unit-at-a-time does not imply
10013         no section anchors.
10014         * cgraphunit.c: Update comments.
10015         (decide_is_function_needed): Drop non-unit-at-a-time mode.
10016         (cgraph_assemble_pending_functions): Remove.
10017         (cgraph_reset_node): Drop non-unit-at-a-time code.
10018         (cgraph_finalize_function): Likewise.
10019         (cgraph_analyze_function): Likewise.
10020         (cgraph_finalize_compilation_unit): Likewise.
10021         (cgraph_expand_function): Likewise.
10022         (cgraph_optimize): Likesise.
10023         (save_inline_function_body): Likewise.
10024         * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
10025         * tree-ssa-alias.c (maybe_be_aliased): Likewise.
10026         * ipa-inline.c: Update comments.
10027         (enum inlining_mode): remove INLINE_SPEED.
10028         (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
10029         (cgraph_mark_inline_edge): Likewise.
10030         (try_inline): Likewise.
10031         (cgraph_decide_inlining_incrementally): Likewise.
10032         (cgraph_gate_inlining): Remove.
10033         (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
10034         (cgraph_gate_early_inlining): Likewise.
10035         (gate_inline_passes): Remove.
10036         (pass_inline_parameters, pass_ipa_inline): Remove gates.
10037         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
10038         pass_O0_always_inline): Remove.
10039         * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
10040         * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
10041         * opts.c (no_unit_at_a_time_default): Remove.
10042         (decode_options): Remove flag_unit_at_a_time reset and warning.
10043         * opts.h (no_unit_at_a_time_default): Remove.
10044         * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
10045         early in GNU dialect.
10046         (merge_decls): Update comment; drop unit-at-a-time check.
10047         (finish_decl): Likewise.
10048         (grok_declaration): Remove flag_inline_trees code.
10049         (finish_functions): Return on function returning non-void on all
10050         statics.
10051         * ipa-tye-escape.c (gate_type_escape_vars): Remove.
10052         * cfgexpand.c (expand_one_static_var): Remove.
10053         (expand_one_var): Remove expand_one_static_var call.
10054         (expand_used_vars_for_block): Remove flag_unit_a_time check.
10055         * c-opts.c (c_common_post_options): Remove flag_inline_trees code
10056         and flag_unit_at_a-time compatibility checks.
10057         * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
10058         * tree-inline.c (flag_inline_trees): Remove.
10059         (inlinable_function_p): Don't check it.
10060         (expand_call_inline): Remove non-unit-at-a-time code.
10061         * tree-inline.h (flag_inline_trees): Remove.
10062         * tree-optimize.c (execute_early_local_optimizations): Remove
10063         unit-at-a-time checks.
10064         (tree_rest_of_compilation): Likewise.
10065         * combine.c (setup_incoming_promotions): Likewise.
10066         * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
10067         * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
10068         * passes.c (pass_inline_parameters): Update comments; remove
10069         O0_alwaysinline pass.
10070         (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
10071         (execute_one_pass): Likewise.
10072         * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
10073         (ix86_function_sseregparm): Likewise.
10074         * arm.c (arm_function_in_section_p): Likewise.
10075         * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
10076         * varpool.c: Update comments.
10077         (decide_is_variable_needed): Remove unit-at-a-time checks.
10078         (varpool_finalize_decl): Likewise.
10079
10080 2008-07-24  Kaz Kojima  <kkojima@gcc.gnu.org>
10081
10082         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
10083         to 2 instead of -1.
10084         (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal to 2.
10085
10086 2008-07-24  Kai Tietz  <kai.tietz@onevision.com>
10087
10088         * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
10089         imp symbol extension.
10090
10091         2008-07-23  Ian Lance Taylor  <iant@google.com>
10092
10093         * tree-vrp.c (infer_value_range): Ignore asm statements when
10094         looking for memory accesses for -fdelete-null-pointer-checks.
10095
10096 2008-07-24  Ben Elliston  <bje@au.ibm.com>
10097
10098         * config/spu/spu-c.c (__vector_keyword): New variable.
10099         (vector_keyword): Likewise.
10100         (spu_categorize_keyword): New function.
10101         (spu_macro_to_expand): Likewise.
10102         (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
10103         compiling an ISO C dialect.
10104
10105 2008-07-24  Ben Elliston  <bje@au.ibm.com>
10106
10107         * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
10108         conventional usage.
10109
10110 2008-07-23  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
10111
10112         * configure: Regenerate.
10113         * configure.ac: Require texinfo 4.7.
10114         * doc/install.texi: Document texinfo 4.7 requirement.
10115
10116 2008-07-23  Martin Jambor  <mjambor@suse.cz>
10117
10118         * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
10119         rather than for DECL_SAVED_TREE.
10120         * ipa-prop.c: Include diagnostic.h.
10121         (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
10122         thoroughly.
10123         (ipa_detect_param_modifications): Function rewritten from scratch.
10124         (ipa_compute_jump_functions): Changed accesses to modification flags.
10125         (ipa_free_node_params_substructures): Update flags destruction.
10126         (ipa_node_duplication_hook): Update flags duplication.
10127         (ipa_print_all_params_modified): Updated flag access.
10128         * ipa-prop.h (struct ipa_param_flags): New structure.
10129         (struct ipa_node_params): New field modification_analysis_done,
10130         modified_flags changed into param_flags.
10131         (ipa_is_ith_param_modified): Changed to use new flags.
10132         * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
10133
10134         * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
10135         ipa-cp.c and split into two functions.
10136         (ipa_print_node_jump_functions): New function.
10137         (compute_scalar_jump_functions): New function.
10138         (type_like_member_ptr_p): New function.
10139         (compute_pass_through_member_ptrs): New function.
10140         (fill_member_ptr_cst_jump_function): New function.
10141         (determine_cst_member_ptr): New function.
10142         (compute_cst_member_ptr_arguments): New function.
10143         (ipa_compute_jump_functions): Complete rewrite.
10144         * ipa-prop.h (enum jump_func_type): Make explicit that we depend
10145         on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
10146         (struct ipa_member_ptr_cst): New structure.
10147         (union jump_func_value): New field member_cst.
10148         * ipa-cp.c (ipcp_lat_is_insertable): New function.
10149         (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
10150         jump function types.
10151         (ipcp_print_all_lattices): Slight fprintf rearrangement.
10152         (ipcp_print_all_structures): Call ipa_print_all_jump_functions
10153         instead of ipcp_print_all_jump_functions.
10154         (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
10155         only for replacable scalars.
10156
10157         * doc/invoke.texi (Optimize options): Add description of
10158         -findirect-inlining.
10159         * common.opt (flag_indirect_inlining): New flag.
10160         * opts.c (decode_options): Set flag_indirect_inlining when
10161         optimize >= 3.
10162
10163         * ipa-inline.c: Include ipa-prop.h.
10164         (inline_indirect_intraprocedural_analysis): New function.
10165         (inline_generate_summary): Allocate parameter and argument info
10166         structures, call inline_indirect_intraprocedural_analysis on each
10167         node when doing indirect inlining and deallocate indirect inlining
10168         data structures in the end.
10169         * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
10170         (free_all_ipa_structures_after_iinln): New function.
10171         (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be
10172         done.
10173         * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
10174
10175         * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
10176         (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
10177         of computing the frequency separately.
10178         (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
10179         of computing the frequency separately.
10180         * ipa-cp.c (ipcp_print_all_structures): Replace a call to
10181         ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
10182         * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
10183         (ipa_get_stmt_member_ptr_load_param): New function.
10184         (ipa_is_ssa_with_stmt_def): New function.
10185         (ipa_note_param_call): New function.
10186         (ipa_analyze_call_uses): New function.
10187         (ipa_analyze_stmt_uses): New function.
10188         (ipa_analyze_params_uses): New function.
10189         (ipa_free_node_params_substructures): Also free the param_calls linked
10190         list.
10191         (ipa_node_duplication_hook): Also duplicate the param_calls
10192         linked list.
10193         (ipa_print_node_param_flags): New function.
10194         (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
10195         (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
10196         * ipa-prop.h (struct ipa_param_flags): New field called.
10197         (struct ipa_param_call_note): New structure.
10198         (struct ipa_node_params): New fields param_calls and
10199         uses_analysis_done.
10200         (ipa_is_ith_param_called): New function.
10201         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
10202         ipa_analyze_params_uses and dump parameter flags.
10203
10204         * ipa-inline.c (cgraph_decide_recursive_inlining): Call
10205         ipa_propagate_indirect_call_infos if performing indirect inlining,
10206         pass a new parameter new_edges to it.
10207         (add_new_edges_to_heap): New fucntion.
10208         (cgraph_decide_inlining_of_small_functions): New vector
10209         new_indirect_edges for newly found indirect edges , call
10210         ipa_propagate_indirect_call_infos after inlining.
10211         (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
10212         inlining if performing indirect inlining.  Call
10213         free_all_ipa_structures_after_iinln when doing so too.
10214         (inline_generate_summary): Do not call
10215         free_all_ipa_structures_after_iinln here.
10216         * ipa-prop.c (update_jump_functions_after_inlining): New function.
10217         (print_edge_addition_message): New function.
10218         (update_call_notes_after_inlining): New function.
10219         (propagate_info_to_inlined_callees): New function.
10220         (ipa_propagate_indirect_call_infos): New function.
10221         * ipa-prop.h: Include cgraph.h
10222         (struct ipa_param_call_note): Fields reordered, new field processed.
10223         * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
10224         flag indirect_call.
10225         * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
10226         rediscovered call statements.
10227         * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
10228         (dump_cgraph_node): Dump also the indirect_call flag.
10229         (cgraph_clone_edge): Copy also the indirect_call flag.
10230         * tree-inline.c (copy_bb): Do not check for fndecls from call
10231         expressions, check for edge availability when moving clones.
10232         (get_indirect_callee_fndecl): New function.
10233         (expand_call_inline): If callee declaration is not apprent from
10234         the statement, try calling get_indirect_callee_fndecl.  Do not
10235         issue warnings or call sorry when not inlinings an indirect edge.
10236         * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
10237
10238         * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
10239         bit more frandly to matching.
10240         * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
10241         * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
10242         * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
10243
10244 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
10245
10246         PR 36907
10247         * opth-gen.awk: Suppress function specific features when building
10248         target libraries.
10249         * optc-gen.awk: Ditto.
10250
10251 2008-07-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10252
10253         PR 35058
10254         * diagnostic.c (pedwarn): Add opt parameter.
10255         (pedwarn0): New.
10256         * c-tree.h (pedwarn_init): Add opt parameter.
10257         (pedwarn_c90): Likewise.
10258         (pedwarn_c99): Likewise.
10259         * c-errors.c (pedwarn_c99): Likewise.
10260         (pedwarn_c90): Likewise.
10261         * toplev.h (pedwarn): Update declaration.
10262         (pedwarn0): Declare.
10263         * c-lex.c: All calls to pedwarn changed.
10264         * builtins.c: All calls to pedwarn changed.
10265         * toplev.c: All calls to pedwarn changed.
10266         * c-decl.c: All calls to pedwarn changed.
10267         * c-typeck.c: All calls to pedwarn changed.
10268         * c-common.c: All calls to pedwarn changed.
10269         * c-parser.c: All calls to pedwarn changed.
10270
10271 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
10272             Karthik Kumar  <karthikkumar@gmail.com>
10273
10274         * attribs.c (file scope): Include c-common.h.
10275         (decl_attributes): Add support for #pragma GCC optimize and
10276         #pragma GCC option.
10277
10278         * targhooks.c (default_can_inline_p): New function that is the
10279         default for the TARGET_CAN_INLINE_P target hook.
10280
10281         * targhooks.h (default_can_inline_p): Add declaration.
10282
10283         * tree.c (cl_optimization_node): New static tree for building
10284         OPTIMIZATION_NODE tree.
10285         (cl_target_option_node): New static tree for building
10286         TARGET_OPTION_NODE tree.
10287         (cl_option_hash_table): New hash table for hashing
10288         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
10289         (cl_option_hash_hash): New function to provide the hash value for
10290         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
10291         (cl_option_hash_eq): New function to provide an equality test for
10292         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
10293         (tree_code_size): Add support for OPTIMIZATION_NODE and
10294         TARGET_OPTION_NODE trees.
10295         (tree_code_structure): Add support for OPTIMIZATION_NODE and
10296         TARGET_OPTION_NODE trees.
10297         (build_optimization_node): Build a tree that has all of the
10298         current optimization options.
10299         (build_target_option_node): Build a tree that has the target
10300         options that might be changed on a per function basis.
10301
10302         * tree.h (file scope): Include options.h.
10303         (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
10304         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
10305         (TREE_OPTIMIZATION): Ditto.
10306         (TREE_TARGET_SPECIFIC): Ditto.
10307         (struct tree_function_decl): Add fields for remembering the
10308         current optimization options and target specific options.
10309         (struct tree_optimization_option): New tree variant that remembers
10310         the optimization options.
10311         (struct tree_target_option): New tree variant that remembers the
10312         target specific flags that might change for compiling a particular
10313         function.
10314         (union tree_node): Include tree_optimization_option and
10315         tree_target_option fields.
10316         (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
10317         TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
10318         TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
10319         TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
10320         TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
10321         optimization and target options.
10322         (optimization_default_node): New macro to refer to global_trees
10323         field.
10324         (optimization_current_node): Ditto.
10325         (optimization_cold_node): Ditto.
10326         (optimization_hot_node): Ditto.
10327         (target_option_default_node): Ditto.
10328         (target_option_current_node): Ditto.
10329         (current_option_pragma): Ditto.
10330         (current_optimize_pragma): Ditto.
10331
10332         * target.h (struct gcc_target): Add valid_option_attribute_p,
10333         target_option_save, target_option_restore, target_option_print,
10334         target_option_pragma_parse, and can_inline_p hooks.
10335
10336         * toplev.h (parse_optimize_options): Add declaration.
10337         (fast_math_flags_struct_set_p): Ditto.
10338
10339         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
10340         adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
10341         optimize is used.
10342
10343         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
10344         tree_can_inline_p hook to see if one function can inline another.
10345         (cgraph_decide_inlining): Ditto.
10346         (cgraph_decide_inlining_incrementally): Ditto.
10347
10348         * opts.c (decode_options): Add support for running multiple times
10349         to allow functions with different target or optimization options
10350         than was specified on the command line.
10351         (fast_math_flags_struct_set_p): New function that is similar to
10352         fast_math_flags_set_p, except it uses the values in the
10353         cl_optimization structure instead of global variables.
10354
10355         * optc-gen.awk: Add support for TargetSave to allow a back end to
10356         declare new fields that need to be saved when using function
10357         specific options.  Include flags.h and target.h in the options.c
10358         source.  Add support for Save to indicate which options can be set
10359         for individual functions.  Generate cl_optimize_save,
10360         cl_optimize_restore, cl_optimize_print, cl_target_option_save,
10361         cl_target_option_restore, cl_target_option_print functions to
10362         allow functions to use different optimization or target options.
10363
10364         * opt-functions.awk (var_type_struct): Return the type used for
10365         storing the field in a structure.
10366
10367         * opth-gen.awk: Add support for TargetSave to allow a back end to
10368         declare new fields that need to be saved when using function
10369         specific options.  Add support for Save to indicate which options
10370         can be set for individual functions.  Only generate one extern for
10371         Mask fields.  Generate cl_optimization and cl_target_option
10372         structures to remember optimization and target options.
10373
10374         * treestruct.def (TS_OPTIMIZATION): Add support for garbage
10375         collecting new tree nodes.
10376         (TS_TARGET_OPTION): Ditto.
10377
10378         * c-decl.c (merge_decls): Merge function specific target and
10379         optimization options.
10380
10381         * function.c (invoke_set_current_function_hook): If the function
10382         uses different optimization options, change the global variables
10383         to reflect this.
10384
10385         * coretypes.h (struct cl_optimization): Add forward reference.
10386         (struct cl_target_option): Ditto.
10387
10388         * c-pragma.c (option_stack): New static vector to remember the
10389         current #pragma GCC option stack.
10390         (handle_pragma_option): New function to support #pragma GCC option
10391         to change target options.
10392         (optimize_stack): New static vector to remember the current
10393         #pragma GCC optimize stack.
10394         (handle_pragma_optimize): New function to support #pragma GCC
10395         optimize to change optimization options.
10396         (init_pragma): Add support for #pragma GCC optimize and #pragma
10397         GCC option.
10398
10399         * tree.def (OPTIMIZATION_NODE): New tree code for remembering
10400         optimization options.
10401         (TARGET_OPTION_NODE): New tree code for remembering certain target
10402         options.
10403
10404         * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
10405         TARGET_OPTION_NODE trees.
10406
10407         * common.opt (-O): Add Optimization flag.
10408         (-Os): Ditto.
10409         (-fmath-errno): Ditto.
10410         (-falign-functions): Add UInteger flag to make sure flag gets full
10411         int in cl_optimization structure.
10412         (-falign-jumps): Ditto.
10413         (-falign-labels): Ditto.
10414         (-falign-loops): Ditto.
10415         (-fsched-stalled-insns): Ditto.
10416         (-fsched-stalled-insns-dep): Ditto.
10417
10418         * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
10419         definition.
10420         (TARGET_OPTION_SAVE): Ditto.
10421         (TARGET_OPTION_RESTORE): Ditto.
10422         (TARGET_OPTION_PRINT): Ditto.
10423         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
10424         (TARGET_CAN_INLINE_P): Ditto.
10425         (TARGET_INITIALIZER): Add new hooks.
10426
10427         * tree-inline.c (tree_can_inline_p): New function to determine
10428         whether one function can inline another.  Check if the functions
10429         use compatible optimization options, and also call the backend
10430         can_inline_p hook.
10431
10432         * tree-inline.h (tree_can_inline_p): Add declaration.
10433
10434         * c-common.c (c_common_attribute): Add support for option and
10435         optimize attributes.
10436         (handle_option_attribute): Add support for the option attribute to
10437         allow the user to specify different target options for compiling a
10438         specific function.
10439         (handle_optimize_attribute): Add support for the optimize
10440         attribute to allow the user to specify different optimization
10441         options for compiling a specific function.
10442         (handle_hot_attribute): Turn on -O3 optimization for this one
10443         function if it isn't the default optimization level.
10444         (handle_cold_attribute): Turn on -Os optimization for this one
10445         function if it insn't the default optimization.
10446         (const_char_p): New const char * typedef.
10447         (optimize_args): New static vector to remember the optimization
10448         arguments.
10449         (parse_optimize_options): New function to set up the optimization
10450         arguments from either the optimize attribute or #pragma GCC optimize.
10451
10452         * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
10453         (builtin_define_std): Ditto.
10454
10455         * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
10456         Add t-i386 Makefile fragment to add i386-c.o and i386.o dependencies.
10457         (x86_64-*-*): Ditto.
10458
10459         * Makefile.in (TREE_H): Add options.h.
10460         (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
10461
10462         * doc/extend.texi (option attribute): Document new attribute.
10463         (optimize attribute): Ditto.
10464         (hot attribute): Document hot attribute sets -O3.
10465         (cold attribute): Document cold attribute sets -Os.
10466         (#pragma GCC option): Document new pragma.
10467         (#pragma GCC optimize): Ditto.
10468
10469         * doc/options.texi (TargetSave): Document TargetSave syntax.
10470         (UInteger): Document UInteger must be used for certain flags.
10471         (Save): Document Save option to create target specific options
10472         that can be saved/restored on a function specific context.
10473
10474         * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new macro.
10475         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
10476
10477         * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new hook.
10478         (TARGET_OPTION_SAVE): Ditto.
10479         (TARGET_OPTION_RESTORE): Ditto.
10480         (TARGET_OPTION_PRINT): Ditto.
10481         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
10482         (TARGET_CAN_INLINE_P): Ditto.
10483
10484         * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
10485         -mfpmath=sse,387.
10486         (-mfpmath=both): Ditto.
10487
10488 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
10489             Karthik Kumar  <karthikkumar@gmail.com>
10490
10491         * config/i386/i386.h (TARGET_ABM): Move switch into ix86_isa_flags.
10492         (TARGET_POPCNT): Ditto.
10493         (TARGET_SAHF): Ditto.
10494         (TARGET_AES): Ditto.
10495         (TARGET_PCLMUL): Ditto.
10496         (TARGET_CMPXCHG16B): Ditto.
10497         (TARGET_RECIP): Move switch into target_flags.
10498         (TARGET_FUSED_MADD): Ditto.
10499         (ix86_arch_features): Make an unsigned char type.
10500         (ix86_tune_features): Ditto.
10501         (OVERRIDE_OPTIONS): Add bool argument to override_options call.
10502         (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
10503         (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
10504
10505         * config/i386/i386.opt (arch): New TargetSave field to define
10506         fields that need to be saved for function specific option support.
10507         (tune): Ditto.
10508         (fpmath): Ditto.
10509         (branch_cost): Ditto.
10510         (ix86_isa_flags_explicit): Ditto.
10511         (tune_defaulted): Ditto.
10512         (arch_specified): Ditto.
10513         (-m128-long-double): Add Save flag to save option for target
10514         specific option support.
10515         (-m80387): Ditto.
10516         (-maccumulate-outgoing-args): Ditto.
10517         (-malign-double): Ditto.
10518         (-malign-stringops): Ditto.
10519         (-mfancy-math-387): Ditto.
10520         (-mhard-float): Ditto.
10521         (-mieee-fp): Ditto.
10522         (-minline-all-stringops): Ditto.
10523         (-minline-stringops-dynamically): Ditto.
10524         (-mms-bitfields): Ditto.
10525         (-mno-align-stringops): Ditto.
10526         (-mno-fancy-math-387): Ditto.
10527         (-mno-push-args): Ditto.
10528         (-mno-red-zone): Ditto.
10529         (-mpush-args): Ditto.
10530         (-mred-zone): Ditto.
10531         (-mrtd): Ditto.
10532         (-msseregparm): Ditto.
10533         (-mstack-arg-probe): Ditto.
10534         (-m32): Ditto.
10535         (-m64): Ditto.
10536         (-mmmx): Ditto.
10537         (-m3dnow): Ditto.
10538         (-m3dnowa): Ditto.
10539         (-msse): Ditto.
10540         (-msse2): Ditto.
10541         (-msse3): Ditto.
10542         (-msse4.1): Ditto.
10543         (-msse4.2): Ditto.
10544         (-msse4): Ditto.
10545         (-mno-sse4): Ditto.
10546         (-msse4a): Ditto.
10547         (-msse5): Ditto.
10548         (-mrecip): Move flag into target_flags.
10549         (-mcld): Ditto.
10550         (-mno-fused-madd): Ditto.
10551         (-mfused-madd): Ditto.
10552         (-mabm): Move flag into ix86_isa_flags.
10553         (-mcx16): Ditto.
10554         (-mpopcnt): Ditto.
10555         (-msahf): Ditto.
10556         (-maes): Ditto.
10557         (-mpclmul): Ditto.
10558
10559         * config/i386/i386-c.c: New file for #pragma support.
10560         (ix86_target_macros_internal): New function to #define or #undef
10561         target macros based when the user uses the #pragma GCC option to
10562         change target options.
10563         (ix86_pragma_option_parse): New function to add #pragma GCC option
10564         support.
10565         (ix86_target_macros): Move defining the target macros here from
10566         TARGET_CPU_CPP_BUILTINS in i386.h.
10567         (ix86_register_pragmas): Register the #pragma GCC option hook.  If
10568         defined, initialize any subtarget #pragmas.
10569
10570         * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
10571         REGISTER_TARGET_PRAGMAS.
10572
10573         * config/i386/t-i386: New file for x86 dependencies.
10574         (i386.o): Make dependencies mirror the include files used.
10575         (i386-c.o): New file, add dependencies.
10576
10577         * config/i386/i386-protos.h (override_options): Add bool argument.
10578         (ix86_valid_option_attribute_tree): Add declaration.
10579         (ix86_target_macros): Ditto.
10580         (ix86_register_macros): Ditto.
10581
10582         * config/i386/i386.c (ix86_tune_features): Move initialization of
10583         the target masks to initial_ix86_tune_features to allow functions
10584         to have different target options.  Make type unsigned char,
10585         instead of unsigned int.
10586         (initial_ix86_tune_features): New static vector to hold processor
10587         masks for the tune variables.
10588         (ix86_arch_features): Move initialization of the target masks to
10589         initial_ix86_arch_features to allow functions to have different
10590         target options.  Make type unsigned char, instead of unsigned int.
10591         (initial_ix86_arch_features): New static vector to hold processor
10592         masks for the arch variables.
10593         (enum ix86_function_specific_strings): New enum to describe the
10594         string options used for attribute((option(...))).
10595         (ix86_target_string): New function to return a string that
10596         describes the target options.
10597         (ix86_debug_options): New function to print the current options in
10598         the debugger.
10599         (ix86_function_specific_save): New function hook to save the
10600         function specific global variables in the cl_target_option structure.
10601         (ix86_function_specific_restore): New function hook to restore the
10602         function specific variables from the cl_target_option structure to
10603         the global variables.
10604         (ix86_function_specific_print): New function hook to print the
10605         target specific options in the cl_target_option structure.
10606         (ix86_valid_option_attribute_p): New function hook to validate
10607         attribute((option(...))) arguments.
10608         (ix86_valid_option_attribute_tree): New function that is common
10609         code between attribute((option(...))) and #pragma GCC option
10610         support that parses the options and returns a tree holding the options.
10611         (ix86_valid_option_attribute_inner_p): New helper function for
10612         ix86_valid_option_attribute_tree.
10613         (ix86_can_inline_p): New function hook to decide if one function
10614         can inline another on a target specific basis.
10615         (ix86_set_current_function); New function hook to switch target
10616         options if the user used attribute((option(...))) or #pragma GCC
10617         option.
10618         (ix86_tune_defaulted): Move to static file scope from
10619         override_options.
10620         (ix86_arch_specified): Ditto.
10621         (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
10622         ix86_isa_flags.
10623         (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
10624         (OPTION_MASK_ISA_ABM_SET): Ditto.
10625         (OPTION_MASK_ISA_POPCNT_SET): Ditto.
10626         (OPTION_MASK_ISA_CX16_SET): Ditto.
10627         (OPTION_MASK_ISA_SAHF_SET): Ditto.
10628         (OPTION_MASK_ISA_AES_UNSET): Ditto.
10629         (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
10630         (OPTION_MASK_ISA_ABM_UNSET): Ditto.
10631         (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
10632         (OPTION_MASK_ISA_CX16_UNSET): Ditto.
10633         (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
10634         (struct ptt): Move to static file scope from override_options.
10635         (processor_target_table): Ditto.
10636         (cpu_names): Ditto.
10637         (ix86_handle_option): Add support for options that are now isa options.
10638         (override_options): Add support for declaring functions that
10639         support different target options than were specified on the
10640         command line.  Move struct ptt, processor_target_table, cpu_names,
10641         ix86_tune_defaulted, ix86_arch_specified to static file scope.
10642         Add bool argument.  Fix up error messages so the appropriate error
10643         is given for either command line or attribute.
10644         (ix86_previous_fndecl): New static to remember previous function
10645         declaration to see if we need to change target options.
10646         (ix86_builtins_isa): New array to record the ISA of each builtin
10647         function.
10648         (def_builtin): Always create the builtin function, even if the
10649         current ISA doesn't support it.
10650         (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
10651         tests for those builtins.
10652         (ix86_init_builtins): Remove TARGET_MMX test for calling
10653         ix86_init_mmx_sse_builtins.
10654         (ix86_expand_builtin): If the current ISA doesn't support a given
10655         builtin, signal an error.
10656         (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
10657         (TARGET_SET_CURRENT_FUNCTION): Ditto.
10658         (TARGET_OPTION_SAVE): Ditto.
10659         (TARGET_OPTION_RESTORE): Ditto.
10660         (TARGET_OPTION_PRINT): Ditto.
10661         (TARGET_CAN_INLINE_P): Ditto.
10662
10663 2008-07-22  Rafael Ávila de Espíndola  <espindola@google.com>
10664
10665         * c-typeck.c (build_external_ref): Don't call assemble_external.
10666         * final.c (output_operand): Call assemble_external.
10667
10668 2008-07-21  DJ Delorie  <dj@redhat.com>
10669
10670         * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
10671         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
10672
10673 2008-07-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10674
10675         * config/spu/spu.md ("div<mode>3"): Convert into expander, move
10676         original insn and splitter contents into ...
10677         ("*div<mode>3_fast"): ... this new pattern.  Enable only if
10678         flag_unsafe_math_optimizations.  Add dummy scratch register.
10679         ("*div<mode>3_adjusted"): New insn and splitter.  Enable only if
10680         !flag_unsafe_math_optimizations.  Returns number with next
10681         highest magnitude if this is still less or equal to the true
10682         quotient in magnitude.
10683
10684 2008-07-21  Rafael Ávila de Espíndola  <espindola@google.com>
10685
10686         * Makefile.in: Replace toplev.h with TOPLEV_H.
10687         * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
10688         * c-lex.c (fe_file_change): Don't set in_system_header.
10689         * c-parser.c (c_token): Remove in_system_header.
10690         (c_lex_one_token): Don't set in_system_header.
10691         (c_parser_set_source_position_from_token): Don't set in_system_header.
10692         * diagnostic.c (diagnostic_report_diagnostic): Use location from
10693         diagnostic_info.
10694         (warning_at): New.
10695         * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
10696         * flags.h (in_system_header): Remove.
10697         * function.c (saved_in_system_header): Remove.
10698         (push_cfun): Don't set in_system_header.
10699         (pop_cfun): Don't set in_system_header.
10700         (push_struct_function): Don't set in_system_header.
10701         * input.h (expanded_location): Add sysp.
10702         (in_system_header_at): New.
10703         (in_system_header): New.
10704         * toplev.c (in_system_header): Remove.
10705         * toplev.h: Include input.h
10706         (warning_at): New.
10707         * tree-cfg.c (execute_warn_function_return): Call warning_at.
10708         * tree-ssa.c (warn_uninit): Call warning_at.
10709         (warn_uninitialized_var): Update calls to warn_uninit.
10710         (warn_uninitialized_phi): Update calls to warn_uninit.
10711         * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
10712         (expand_location): Initialize xloc.sysp.
10713         * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
10714         (tree_decl_with_vis): Remove in_system_header_flag.
10715
10716 2008-07-21  Andreas Krebbel  <krebbel1@de.ibm.com>
10717
10718         PR target/36822
10719         * recog.c (asm_operand_ok): Change the order of the extra
10720         memory constraint checks.
10721
10722 2008-07-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10723
10724         PR tree-opt/36879
10725         * tree-switch-conversion.c (build_one_array): Call
10726         varpool_mark_needed_node and varpool_finalize_decl
10727         instead of assemble_variable.
10728
10729 2008-07-19  Jan Hubicka  <jh@suse.cz>
10730
10731         * cgraph.c (cgraph_add_new_function): Do early local passes.
10732         * tree-nrv.c (gate_pass_return_slot): New gate.
10733         (pass_nrv): Add the gate.
10734         * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
10735         functions.
10736         (coalesce_ssa_name): Coalesce SSA names.
10737         * tree-ssa-live.c (remove_unused_locals): Be more conservative when
10738         not optimizing so unused user vars remains visible.
10739         * common.opt (flag_tree_ter): Always enable by default.
10740         * tree-ssa-ter.c: Include flags.h
10741         (is_replaceable_p): Check that locations match; when aliasing
10742         is missing be conservative about loads.
10743         * tree-optimize.c (gate_init_datastructures): Remove.
10744         (pass_init_datastructures): New.
10745         * passes.c: Reorder passes so we always go into SSA.
10746
10747 2008-07-19  Jan Hubicka  <jh@suse.cz>
10748
10749         * doc/extend.texi (flatten attribute): Remove note about
10750         unit-at-a-time.
10751         * doc/invoke.texi (--combine): Likewise.
10752         (-finline-functions-called-once): Update levels when enabled.
10753         (-funit-at-a-time): Document new behaviour.
10754         (-ftoplevel-reorder): Document that it is enabled -O0 and imply
10755         -fno-section-anchors when disabled explicitly.
10756         (inline params): They are not ignored now.
10757         (precompiled headers): Remove unit-at-a-time as being incompatible.
10758         * opts.c (decode_options): Handle unit-at-a-time as alias;
10759         imply -fno-section-anchors when toplevel reorder is disabled
10760         explicitly.
10761         * common.opt (ftoplevel-reorder): Set default value to 2.
10762         (funit-at-a-time): Set default value to 1.
10763         * config/rs6000/rs6000.c (optimization_options): Set section anchors
10764         to 2.
10765
10766 2008-07-19  Jan Hubicka  <jh@suse.cz>
10767
10768         * builtins.c (expand_builtin_int_roundingfn,
10769         expand_builtin_int_roundingfn_2): Do not take subtarget argument;
10770         it is not useful.
10771
10772 2008-07-19  Richard Guenther  <rguenther@suse.de>
10773
10774         PR bootstrap/36864
10775         * tree-ssa-sccvn.h (get_constant_value_id): Declare.
10776         * tree-ssa-sccvn.c (get_constant_value_id): New function.
10777         * tree-ssa-pre.c (get_expr_value_id): For newly created
10778         constant value-ids make sure to add the expression to its
10779         expression-set.
10780
10781 2008-07-19  Jakub Jelinek  <jakub@redhat.com>
10782
10783         PR middle-end/36877
10784         * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
10785         return value of the builtin is ignored.
10786
10787 2008-07-19  Olivier Hainque  <hainque@adacore.com>
10788
10789         * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
10790         bits, a C conformant malloc implementation has to provide.
10791         * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
10792
10793 2008-07-19  Joseph Myers  <joseph@codesourcery.com>
10794
10795         PR target/36780
10796         PR target/36827
10797         * reload.c (find_reloads_subreg_address): Only reload address if
10798         reloaded == 0, not for reloaded != 1.
10799
10800         Revert:
10801         2008-07-16  Joseph Myers  <joseph@codesourcery.com>
10802         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
10803         (m32c_legitimate_address_p): Handle "++rii" addresses created by
10804         m32c_legitimize_reload_address.
10805
10806         2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
10807         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
10808         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
10809
10810 2008-07-19  Olivier Hainque  <hainque@adacore.com>
10811
10812         * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
10813         argument, saying whether nested array are to be collapsed
10814         into a single array type DIE with multiple subscripts.
10815         (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
10816         issues, centralize the nested array types collapsing control and
10817         disable the transformation for Ada.
10818
10819 2008-07-18  Uros Bizjak  <ubizjak@gmail.com>
10820
10821         PR target/36786
10822         * config/i386/i386.md (x86_64_shift_adj_1): Rename from
10823         x86_64_shift_adj.
10824         (x86_64_shift_adj_2): New expander.
10825         (x86_64_shift_adj_3): Ditto.
10826         * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
10827         to split TImode operands.
10828         (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
10829         (ix86_split_lshr): Ditto.
10830
10831 2008-07-18  Kris Van Hees  <kris.van.hees@oracle.com>
10832
10833         * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
10834         and __CHAR32_TYPE__.
10835         * c-typeck.c (digest_init): Support char16_t and char32_t.
10836         (set_nonincremental_init_from_string): Idem.
10837
10838 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
10839
10840         PR middle-end/36859
10841         * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
10842         PREFERRED_STACK_BOUNDARY.
10843         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
10844
10845 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
10846
10847         PR middle-end/36858
10848         * function.c (locate_and_pad_parm): Cap boundary earlier.
10849
10850 2008-07-17  Julian Brown  <julian@codesourcery.com>
10851
10852         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
10853         no-op for targets which don't use DLLs.
10854
10855 2008-07-17  Martin Jambor  <mjambor@suse.cz>
10856
10857         * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
10858         that nodes are relevant by examining the node->analyzed flag.
10859         (ipcp_init_stage): Check which nodes are relevant, assert that the
10860         relevant ones are also required.
10861         (ipcp_propagate_stage): Check on the side arrays are properly
10862         allocated.
10863         (ipcp_print_all_jump_functions): Make sure not to touch any node
10864         that is not analyzed or an edge that does not have a corresponding
10865         entry in the on-the-side vectors.
10866         (ipcp_function_scale_print): Likewise.
10867         (ipcp_update_callgraph): Check that the node is relevant.
10868         (ipcp_insert_stage): Check that the node is relevant.  Check there is
10869         an info for every node and edge.
10870         * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
10871         (ipa_print_all_tree_maps): Likewise and a new variable info.
10872         (ipa_print_all_params_modified): Likewise.
10873         * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
10874
10875 2008-07-17  Roman Zippel <zippel@linux-m68k.org>
10876
10877         PR target/25343
10878         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
10879
10880 2008-07-17  Paolo Bonzini  <bonzini@gnu.org>
10881
10882         PR rtl-optimization/36753
10883         * fwprop.c (use_killed_between): Don't shortcut
10884         single-definition global registers.
10885
10886 2008-07-16  Jan Hubicka  <jh@suse.cz>
10887
10888         * cgraph.h (varpool_empty_needed_queue): Declare.
10889         * cgraphunit.c (output_in_order): Mark all variables as needed;
10890         empty the queue.
10891         * varpool.c (varpool_assemble_node): Update debug queue.
10892         (varpool_assemble_pending_decls): Don't do it here.
10893         (varpool_empty_needed_queue):  New function.
10894
10895 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10896
10897         * recog.c (peephole2_optimize): Fix formatting.
10898
10899 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10900
10901         * c-pch.c (get_ident): Avoid C++ keywords.
10902         * combine-stack-adj.c (single_set_for_csa): Likewise.
10903         * final.c (asm_insn_count, final_scan_insn, alter_subreg,
10904         output_asm_insn): Likewise.
10905         * reload.c (push_secondary_reload, find_reusable_reload,
10906         push_reload, combine_reloads, find_reloads,
10907         debug_reload_to_stream): Likewise.
10908         * reload.h (struct reload): Likewise.
10909         * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
10910         allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
10911         emit_output_reload_insns): Likewise.
10912         * targhooks.c (default_secondary_reload): Likewise.
10913         * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
10914
10915 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10916
10917         * recog.c (validate_change_1, validate_change,
10918         validate_unshare_change, validate_replace_rtx_1, struct
10919         funny_match, constrain_operands, peephole2_optimize): Avoid C++
10920         keywords.
10921         * reload.c (push_secondary_reload, secondary_reload_class,
10922         scratch_reload_class, find_valid_class, find_reusable_reload,
10923         push_reload, find_dummy_reload, find_reloads_address_1,
10924         find_reloads_address_part, find_equiv_reg): Likewise.
10925         * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
10926         choose_reload_regs): Likewise.
10927         * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
10928         Likewise.
10929         * rtlhooks.c (gen_lowpart_if_possible): Likewise.
10930         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
10931         * sched-rgn.c (concat_INSN_LIST): Likewise.
10932         * stor-layout.c (mode_for_size, mode_for_size_tree,
10933         smallest_mode_for_size): Likewise.
10934
10935 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10936
10937         * cfg.c (dump_reg_info): Avoid C++ keywords.
10938         * dwarf2asm.c (dw2_force_const_mem,
10939         dw2_asm_output_encoded_addr_rtx): Likewise.
10940         * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
10941         * expmed.c (expand_shift): Likewise.
10942         * global.c (find_reg): Likewise.
10943         * graph.c (draw_edge): Likewise.
10944         * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
10945         * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
10946         widen_clz, widen_bswap, expand_parity, expand_unop,
10947         emit_cmp_and_jump_insn_1): Likewise.
10948         * postreload.c (reload_cse_simplify_operands): Likewise.
10949         * ra.h (add_neighbor): Likewise.
10950         * reg-stack.c (remove_regno_note, change_stack): Likewise.
10951         * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
10952         record_reg_classes, copy_cost, record_address_regs,
10953         invalid_mode_change_p): Likewise.
10954         * regrename.c (regrename_optimize, scan_rtx_reg,
10955         dump_def_use_chain, find_oldest_value_reg,
10956         replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
10957
10958 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
10959
10960         * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
10961         MASK_POWERPC64 for power4 in previous commit.
10962
10963 2008-07-16  Olivier Hainque  <hainque@adacore.com>
10964
10965         * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
10966         instead of bare conversion to cast const-ness away.
10967
10968 2008-07-16  Anatoly Sokolov  <aesok@post.ru>
10969
10970         * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
10971         XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
10972         * config/xtensa/xtensa.c (xtensa_function_value): New function.
10973         (TARGET_FUNCTION_VALUE): Define.
10974
10975 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
10976
10977         * config/rs6000/rs6000.c (processor_target_table): Add
10978         MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
10979
10980 2008-07-16  Joseph Myers  <joseph@codesourcery.com>
10981
10982         PR target/36827
10983         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
10984         (m32c_legitimate_address_p): Handle "++rii" addresses created by
10985         m32c_legitimize_reload_address.
10986
10987 2007-07-16  Rafael Ávila de Espíndola  <espindola@google.com>
10988
10989         * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
10990         DECL_IN_SYSTEM_HEADER in sync.
10991
10992 2008-07-15  Daniel Berlin  <dberlin@dberlin.org>
10993
10994         * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
10995         * tree-ssa-pre.c (pre_expr_eq): Ditto
10996         (get_constant_for_value_id): Take a type as an argument.
10997         (fully_constant_expression): Pass in type.
10998         (find_or_generate_expression): Short circuit constant case.
10999         (create_expression_by_pieces): Remove special casing of
11000         pointer_plus.
11001         (do_regular_insertion): Short circuit constant case.
11002         (do_partial_partial_insertion): Ditto.
11003
11004 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
11005
11006         PR target/36782
11007         * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
11008
11009 2008-07-15  Bob Wilson  <bob.wilson@acm.org>
11010
11011         * config/xtensa/libgcc-xtensa.ver: New file.
11012         * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
11013
11014 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11015
11016         * df-problems.c (df_set_note): Avoid C++ keywords.
11017         * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
11018         * dse.c (record_store, remove_useless_values): Likewise.
11019         * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
11020         gen_reg_rtx_offset, operand_subword, change_address_1,
11021         change_address, adjust_address_1, offset_address,
11022         widen_memory_access, emit_copy_of_insn_after): Likewise.
11023         * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
11024         * fwprop.c (should_replace_address, propagate_rtx_1,
11025         propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
11026         Likewise.
11027         * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
11028         gcse_emit_move_after, update_ld_motion_stores): Likewise.
11029         * lcm.c (compute_insert_delete, pre_edge_lcm,
11030         compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
11031         * lower-subreg.c (resolve_reg_notes): Likewise.
11032         * mode-switching.c (optimize_mode_switching): Likewise.
11033
11034 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11035
11036         * bt-load.c (add_btr_def, migrate_btr_def,
11037         branch_target_load_optimize): Avoid C++ keywords.
11038         * caller-save.c (insert_restore, insert_save, insert_one_insn):
11039         Likewise.
11040         * combine.c (subst, simplify_set, make_extraction,
11041         make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
11042         * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
11043         fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
11044
11045 2008-07-15  Richard Guenther  <rguenther@suse.de>
11046
11047         PR middle-end/36369
11048         * c-common.c (strict_aliasing_warning): Do not warn for
11049         TYPE_REF_CAN_ALIAS_ALL pointers.
11050         (c_common_get_alias_set): may_alias types are not special.
11051         * tree.c (build_pointer_type_for_mode): Look up the may_alias
11052         attribute and set can_ref_all accordingly.
11053         (build_reference_type_for_mode): Likewise.
11054         * doc/extend.texi (may_alias): Clarify.
11055
11056 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
11057
11058         PR target/36780
11059         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
11060         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
11061
11062 2008-07-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11063
11064         PR target/31568
11065         * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
11066         gcc_assert, instead call output_operand_lossage.
11067
11068 2008-07-15  Kai Tietz  <kai.tietz@onevision.com>
11069
11070         * builtins.c (std_canonical_va_list): Treat structure based
11071         va_list types.
11072
11073 2008-07-15  Ben Elliston  <bje@au.ibm.com>
11074
11075         * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
11076
11077 2007-07-14  Rafael Ávila de Espíndola  <espindola@google.com>
11078
11079         * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
11080         is set.
11081
11082 2008-07-14  Jan Hubicka  <jh@suse.cz>
11083
11084         * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
11085         * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
11086         fix predicates and constraints.
11087         * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
11088         * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
11089
11090 2008-07-14  Doug Kwan  <dougkwan@google.com>
11091
11092         * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
11093         additional option file arm/eabi.opt.
11094         * config/arm/eabi.h (File): New configuration file for EABI targets.
11095         * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
11096         SUBSUBTARGET_EXTRA_SPECS.
11097         (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
11098         * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
11099         from STARTFILE_SPEC so that it can be referenced in an override.
11100         (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
11101         (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
11102         can be referenced in an override.
11103         (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
11104         * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
11105         so that it can be referenced in an override.
11106         (LINK_SPEC): Use BPABI_LINK_SPEC.
11107         * config/arm/eabi.opt (File): New.
11108
11109 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11110
11111         * Makefile.in (TARGET_DEF_H): Add targhooks.h.
11112         (FIXED_VALUE_H): New variable.
11113         (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
11114         input.h, fixed-value.h.
11115         (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
11116         (BASIC_BLOCK_H): Use $(BITMAP_H).
11117         (FUNCTION_H): Add varray.h.
11118         (IPA_REFERENCE_H): Use $(BITMAP_H).
11119         (CGRAPH_H): Add $(BASIC_BLOCK_H).
11120         (DF_H): Use $(BITMAP_H).
11121         (GGC_H): Add statistics.h.
11122         (INSN_ADDR_H): New.
11123         (INSN_ATTR_H): Use it.
11124         (SYSTEM_H): Add safe-ctype.h, filenames.h.
11125         (INPUT_H): New.
11126         (SYMTAB_H): Add $(OBSTACK_H).
11127         (CPP_INTERNAL_H): New.
11128         (TREE_DUMP_H): Add tree-pass.h.
11129         (TREE_FLOW_H): Use $(BITMAP_H)
11130         (PRETTY_PRINT_H): Use $(INPUT_H).
11131         (EBITMAP_H): Rename from typo-ed EBIMAP_H.
11132         (GSTAB_H): New.
11133         (BITMAP_H): New.
11134         (many object files): Fix lots of header dependencies throughout.
11135
11136 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11137
11138         * Makefile.in (write_entries_to_file, write_entries_to_file_split):
11139         New macros.
11140         (s-gtyp-input): Use them to write tmp-gi.list.
11141         (echo_to_gi.list): Remove.
11142
11143 2008-07-14  Richard Guenther  <rguenther@suse.de>
11144
11145         * tree-ssa-sccvn.c (pre_info): Remove.
11146         (switch_to_PRE_table): Likewise.
11147         (free_scc_vn): Do not clear SSA_NAME_VALUE.  Do not free pre_info.
11148         (set_hashtable_value_ids): Do not create value-ids for the
11149         optimistic tables.
11150         (run_scc_vn): Remove double test.  Remove bogus special-case
11151         in value-number printing.
11152         * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
11153         * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
11154         SSA_NAME_VALUE.
11155         * tree-flow-inline.h (get_value_handle): Remove.
11156         * tree-flow.h (get_value_handle): Remove.
11157
11158 2008-07-14  Martin Jambor  <mjambor@suse.cz>
11159
11160         * tree-switch-conversion.c (gen_inbound_check): Make sure the type
11161         in which we generate arithmetics is not a subrange.
11162
11163 2008-07-14  Martin Jambor  <mjambor@suse.cz>
11164
11165         * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
11166
11167 2008-07-14  Richard Guenther  <rguenther@suse.de>
11168
11169         * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
11170
11171 2008-07-14  Andreas Krebbel  <krebbel1@de.ibm.com>
11172
11173         PR target/36745
11174         * config/s390/s390.c: (s390_secondary_reload): Add a secondary
11175         reload for symbol refs moved to r0 with -fPIC.
11176         (legitimize_pic_address): Use the target register as temporary
11177         reg if possible.
11178         (emit_symbolic_move): Adjust comment.
11179         * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
11180         New expanders.
11181
11182 2008-07-14  Ben Elliston  <bje@au.ibm.com>
11183
11184         * c-common.h (C_CPP_HASHNODE): New macro.
11185         * coretypes.h (struct cpp_token): Forward declare.
11186         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
11187         the context-sensitive keyword method.
11188         * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
11189         __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
11190         expand_bool_pixel): New.
11191         (altivec_categorize_keyword): New function.
11192         (init_vector_keywords): New function.
11193         (rs6000_macro_to_expand): Likewise.
11194         (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
11195         compiling an ISO C dialect.
11196
11197 2008-07-13  Daniel Berlin  <dberlin@dberlin.org>
11198
11199         * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
11200         (create_expression_by_pieces): Fix typo.
11201         (do_regular_insertion): Use debug counter here too.
11202
11203 2008-07-14  Hans-Peter Nilsson  <hp@axis.com>
11204
11205         PR target/35492.
11206         * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
11207         CONST_OK_FOR_LETTER_P.  All port-local users changed.
11208         (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
11209         implement Kp matching power-of-two.
11210         (CONSTRAINT_LEN): Define to match.
11211         * config/cris/cris.md: Replace all use of constraint K with Kc.
11212         ("*btst*): Use Kp for operand 0 of last alternative.
11213
11214 2008-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11215
11216         PR testsuite/36440
11217         * tree-call-cdce.c (check_target_format): Accept MIPS single, double
11218         and quad formats.
11219
11220 2008-07-13  Jan Hubicka  <jh@suse.cz>
11221
11222         * tree.c (decl_assembler_name_equal): Expect assembler name of decl
11223         to be mangled too.
11224
11225 2008-07-13  Richard Guenther  <rguenther@suse.de>
11226
11227         PR middle-end/36811
11228         * langhooks.c (lhd_print_error_function): Deal with recursive
11229         BLOCK trees.
11230
11231 2008-07-12  Jan Hubicka  <jh@suse.cz>
11232
11233         * cgraph.c (assembler_name_hash): New static var.
11234         (hash_node_by_assembler_name, eq_assembler_name): New.
11235         (cgraph_node_for_asm): Use hashtable.
11236         (cgraph_remove_node): Maintain hashtable.
11237         (change_decl_assembler_name): Sanity check that names are not changing
11238         after aliasing was processed.
11239         * cgraph.h (varpoon_node): Add next GGC marker.
11240         * tree.c (decl_assembler_name_equal): Constify.
11241         (decl_assembler_name_hash): New.
11242         * tree.h (decl_assembler_name_equal): Constify.
11243         (decl_assembler_name_hash): Update.
11244
11245 2008-07-12  David Daney  <ddaney@avtrex.com>
11246
11247         * config/mips/driver-native.c (host_detect_local_cpu): Handle
11248         sb1 and r5000 cpus.
11249
11250 2008-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
11251
11252         * doc/md.texi: Document the MIPS "v" constraint.
11253         * config/mips/mips.h (reg_class): Revert last change.
11254         (REG_CLASS_NAMES): Likewise.
11255         (REG_CLASS_CONTENTS): Likewise.
11256         * config/mips/mips.c (mips_regno_to_class): Likewise.
11257         * config/mips/constraints.md (v): Likewise, but add documentation.
11258         Add a comment to say that this constraint should not be used in
11259         gcc code.
11260
11261 2008-07-11  DJ Delorie  <dj@redhat.com>
11262
11263         * config/h8300/h8300.md (length): Fix branch offset limit.
11264
11265 2008-07-11  Anatoly Sokolov  <aesok@post.ru>
11266
11267         * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
11268         * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
11269         (avr_hard_regno_scratch_ok): New function.
11270         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
11271         * config/avr/avr.md (all peepholes that request a scratch register):
11272         Remove avr_peep2_scratch_safe use.
11273
11274 2008-07-11  Tom Tromey  <tromey@redhat.com>
11275             Ian Lance Taylor  <iant@google.com>
11276
11277         * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
11278         (struct c_common_resword): Define.
11279         (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
11280         (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
11281         (c_common_reswords, num_c_common_reswords): Declare.
11282         * c-common.c (c_common_reswords): New global const array.
11283         (num_c_common_reswords): New const int.
11284         * c-parser.c (struct resword, reswords): Don't define.
11285         (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
11286         (c_parse_init): Clarify mask code.  Use c_common_reswords rather
11287         than reswords.  If warning about C++ keywords, give them a special
11288         RID code.
11289         (c_lex_one_token): Warn about C++ keywords.  Call
11290         objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
11291         (c_parser_external_declaration): Look for RID_xxx rather than
11292         RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
11293         (c_parser_statement_after_labels): Likewise.
11294         (c_parser_objc_class_instance_variables): Likewise.
11295         (c_parser_objc_class_declaration): Likewise.
11296         (c_parser_objc_try_catch_statement): Likewise.
11297         * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
11298         (declspecs_add_type): Likewise.
11299
11300 2008-07-11  Angelo Graziosi  <angelo.graziosi@alice.it>
11301
11302         * ggc-page.c (alloc_page):
11303         Substituting xmalloc, xcalloc with
11304         XNEWVEC and XCNEWVAR macros which add the
11305         needed casts.
11306
11307 2008-07-11  Richard Guenther  <rguenther@suse.de>
11308
11309         PR tree-optimization/36765
11310         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
11311         aliases from HEAP vars to SMTs.
11312
11313 2008-07-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11314
11315         * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
11316         * configure.ac (loose_warn): Move -Wc++-compat from here...
11317         (strict_warn): ...to here.
11318         * configure: Regenerate.
11319
11320 2008-07-10  Joseph Myers  <joseph@codesourcery.com>
11321
11322         * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
11323         i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
11324         m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
11325         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
11326         excluding more specific h8300-*-* and sh-*-* targets.
11327
11328 2008-07-10  Daniel Berlin  <dberlin@dberlin.org>
11329
11330         * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
11331         (eliminate): Ditto.
11332         (execute_pre): Call loop_optimizer_finalize in early exit.
11333
11334 2008-07-10  Jakub Jelinek  <jakub@redhat.com>
11335
11336         PR middle-end/36790
11337         * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
11338         uids in the bitmap, not just VAR_DECL uids.
11339
11340         PR rtl-optimization/36419
11341         * combine-stack-adj.c (adjust_frame_related_expr): New function.
11342         (combine_stack_adjustments_for_block): Call it if needed.  Delete
11343         correct insn.
11344         * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
11345         DW_CFA_GNU_args_size if CSA pass merged some adjustments into
11346         prologue sp adjustment.
11347
11348 2008-07-10  Peter Maydell  <pmaydell@chiark.greenend.org.uk>
11349
11350         PR other/28322
11351         * opts.c (print_ignored_options): Report postponed diagnostics for
11352         unknown -Wno-* options as warnings, not errors.
11353         (postpone_unknown_option_error): Renamed to...
11354         (postpone_unknown_option_warning): ... this.
11355
11356 2008-07-09  Doug Kwan  <dougkwan@google.com>
11357
11358         Revert:
11359         2008-07-08  Doug Kwan  <dougkwan@google.com>
11360
11361         * config/arm/arm.opt (mandroid): New option.
11362         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
11363         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
11364         (CC1_SPEC): Same.
11365         (CC1PLUS_SPEC): Same.
11366         (LIB_SPEC): Same.
11367         (STARTFILE_SPEC): Same.
11368         (ENDFILE_SPEC): Same.
11369         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
11370         used.
11371
11372 2008-07-09  Richard Sandiford  <rdsandiford@googlemail.com>
11373
11374         PR target/35802
11375         * config/mips/mips.h (reg_class): Remove V1_REG.
11376         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
11377         * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
11378         instead of V1_REGS.
11379         (mips_get_tp): New function.
11380         (mips_legitimize_tls_address): Use it.
11381         * config/mips/constraints.md (v): Delete.
11382         * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
11383         (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
11384         After reload, split into a move and ...
11385         (*tls_get_tp_<mode>_split): ...this new instruction.
11386
11387 2008-07-09  David Daney  <ddaney@avtrex.com>
11388
11389         * config/mips/driver-native.c: Include coretypes.h and tm.h.
11390
11391 2008-07-09  Jakub Jelinek  <jakub@redhat.com>
11392
11393         * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
11394         (push_gimplify_context): Don't allocate temp_htab nor c itself here.
11395         Add c argument.
11396         (pop_gimplify_context): Check c->temp_htab instead of optimize whether
11397         htab_delete should be called.  Don't free c.
11398         (lookup_tmp_var): Create temp_htab lazily.
11399         (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
11400         gimplify_body, force_gimple_operand): Adjust push_gimplify_context
11401         callers.
11402         * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
11403         lower_omp_ordered, lower_omp_critical, lower_omp_for,
11404         create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
11405         * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
11406         * tree-sra.c (generate_element_init): Likewise.
11407         * tree-mudflap.c (execute_mudflap_function_ops,
11408         execute_mudflap_function_decls): Likewise.
11409         * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
11410         * tree-gimple.h (struct gimplify_ctx): New type.
11411         (push_gimplify_context): Adjust prototype.
11412
11413 2008-07-09  Daniel Berlin  <dberlin@dberlin.org>
11414
11415         * tree-ssa-pre.c (phi_translate_1): Update placement of
11416         add_to_value calls.
11417
11418 2008-07-09  Anatoly Sokolov  <aesok@post.ru>
11419
11420         * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
11421         * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
11422         (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
11423         * targhooks.c (default_hard_regno_scratch_ok): New function.
11424         * targhooks.h (default_hard_regno_scratch_ok): Declare function.
11425         * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
11426         * recog.c:  Include "target.h".
11427         (peep2_find_free_register): Add check for global regs. Add target
11428         specific check.
11429         * Makefile.in (recog.o): Depend on target.h.
11430
11431 2008-07-09  Kaz Kojima  <kkojima@gcc.gnu.org>
11432
11433         * config/sh/sh.c (sh_canonical_va_list_type): New.
11434         (TARGET_CANONICAL_VA_LIST_TYPE): Define.
11435
11436 2008-07-09  Raksit Ashok <raksit@google.com>
11437
11438         * doc/invoke.texi (Option Summary): Mention new option
11439         -Wdisallowed-function-list=...
11440         (Warning Options): Document -Wdisallowed-function-list=...
11441         * common.opt (Wdisallowed-function-list=): New flag.
11442         * flags.h (warn_disallowed_functions): External definition of new
11443         boolean warning flag.
11444         (warn_if_disallowed_function_p): Declare new function.
11445         * opts.c (warning_disallowed_functions): New static variable.
11446         (warn_disallowed_functions): New boolean warning flag.
11447         (warn_if_disallowed_function_p): New function.
11448         (add_comma_separated_to_vector): Rename
11449         add_instrument_functions_exclude_list to this.
11450         (common_handle_option): Handle new option. Rename calls to
11451         add_instrument_functions_exclude_list into calls to
11452         add_comma_separated_to_vector.
11453         * c-parser.c (c_parser_postfix_expression_after_primary): New warning
11454         based on flag warn_disallowed_functions.
11455
11456 2008-07-09  Christian Bruel  <christian.bruel@st.com>
11457
11458         * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
11459          instead of get_attr_length.
11460
11461 2008-07-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11462
11463         * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
11464         keywords.
11465         * genemit.c (gen_insn): Likewise.
11466         * gengtype.c (note_def_vec): Likewise.
11467         * gengtype.h (note_def_vec): Likewise.
11468         * genoutput.c (struct data, output_insn_data, process_template,
11469         gen_expand, gen_split, note_constraint): Likewise.
11470         * genrecog.c (new_decision, add_to_sequence, factor_tests,
11471         make_insn_sequence): Likewise.
11472         * gensupport.c (record_insn_name): Likewise.
11473
11474 2008-07-08  Doug Kwan  <dougkwan@google.com>
11475
11476         * config/arm/arm.opt (mandroid): New option.
11477         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
11478         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
11479         (CC1_SPEC): Same.
11480         (CC1PLUS_SPEC): Same.
11481         (LIB_SPEC): Same.
11482         (STARTFILE_SPEC): Same.
11483         (ENDFILE_SPEC): Same.
11484         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
11485         used.
11486
11487 2008-07-08  Raksit Ashok  <raksit@google.com>
11488
11489         * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
11490         (set_storage_via_setmem): Fix expected_align parameter.
11491         * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
11492         missing from the list.
11493         * doc/md.texi (movmem): Explicitly state that expected alignment is
11494         to be expressed in bytes.
11495         (setmem): Explicitly state that expected alignment is to be expressed
11496         in bytes.
11497
11498 2008-07-08  Joseph Myers  <joseph@codesourcery.com>
11499
11500         * reload.c (find_reloads_subreg_address): Do not require validity
11501         of address in original mode before reloading address.
11502
11503 2008-07-07  Tianwei Sheng  <tianweis@google.com>
11504
11505         * df-core.c (df_remove_problem): Adjust the access to avoid out of
11506         bounds array access.
11507
11508 2008-07-08  Jakub Jelinek  <jakub@redhat.com>
11509
11510         * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
11511
11512 2008-07-05  Daniel Berlin  <dberlin@dberlin.org>
11513
11514         Fix PR tree-optimization/23455
11515         Fix PR tree-optimization/35286
11516         Fix PR tree-optimization/35287
11517         * Makefile.in (OBJS-common): Remove tree-vn.o.
11518         (tree-vn.o): Remove.
11519         * dbgcnt.def: Add treepre_insert debug counter.
11520         * gcc/tree-flow.h (add_to_value): Updated for other changes.
11521         (debug_value_expressions): Ditto.
11522         (print_value_expressions): Ditto.
11523         * tree-pretty-print.c (dump_generic_node): Updated for
11524         VALUE_HANDLE removal.
11525         * tree-ssa-dom.c (record_equality): Ditto.
11526         (cprop_operand): Ditto.
11527         (lookup_avail_expr): Ditto.
11528         * tree-ssa-threadedge.c
11529         (record_temporary_equivalences_from_stmts_at_dest): Ditto.
11530         (simplify_control_stmt_condition): Ditto.
11531         * tree.c (tree_code_size): Ditto.
11532         (tree_node_structure): Ditto.
11533         (iterative_hash_expr): Ditto.
11534         * tree.def: Ditto.
11535         * tree.h (VALUE_HANDLE_ID): Ditto.
11536         (VALUE_HANDLE_EXPR_SET): Ditto.
11537         (struct tree_value_handle): Ditto.
11538         (union tree_node): Ditto.
11539         * treestruct.def: Ditto.
11540         * tree-vn.c: Removed.
11541         * tree-ssa-pre.c: Rewritten entirely.
11542         * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
11543         (constant_value_ids): Ditto.
11544         (vn_nary_op_t): Moved to header.
11545         (vn_phi_t): Ditto.
11546         (vn_reference_op_t): Ditto
11547         (vn_reference_t): Ditto.
11548         (next_value_id): New variable.
11549         (VN_INFO): Add an assert.
11550         (vn_constant_eq): New function.
11551         (vn_constant_hash): Ditto.
11552         (get_or_alloc_constant_value_id): Ditto.
11553         (value_id_constant_p): Ditto.
11554         (vn_reference_compute_hash): De-staticify.
11555         (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
11556         Disable some code with a FIXME.  Remove VALUE_HANDLE use.
11557         (valueize_refs): Update opcode if it changes from ssa name to constant.
11558         (vn_reference_lookup_1): Add new argument.
11559         (vn_reference_lookup):  Ditto.
11560         (vn_reference_lookup_pieces): New function.
11561         (vn_reference_insert): Add return type. Modify to deal with value ids.
11562         (vn_reference_insert_pieces):  New function.
11563         (vn_nary_op_compute_hash): De-staticify.
11564         (vn_nary_op_eq): Ditto.
11565         (vn_nary_op_lookup_pieces): New function.
11566         (vn_nary_op_lookup): Add new argument.
11567         (vn_nary_op_insert_pieces): New function.
11568         (vn_nary_op_insert): Add return type. Modify to deal with value ids.
11569         (vn_phi_insert): Ditto.
11570         (visit_unary_op): Update for callee changes.
11571         (visit_binary_op): Ditto.
11572         (visit_reference_op_load): Ditto.
11573         (visit_reference_op_store): Ditto.
11574         (init_scc_vn): Init next_value_id, constant_to_value_id and
11575         constant_value_ids.
11576         (free_scc_vn): Free them.
11577         (set_hashtable_value_ids): New function.
11578         (run_scc_vn): Use it.
11579         (get_max_value_id): New function.
11580         (get_next_value_id): Ditto.
11581         (expressions_equal_p): Moved from tree-vn.c
11582         (sort_vuses): Ditto.
11583         (sort_vuses_heap): Ditto.
11584         * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
11585         above).
11586         * tree.c (iterative_hash_hashval_t): Made non-static
11587         * tree.h (iterative_hash_hashval_t): Declare it.
11588
11589 2008-07-08  Martin Jambor  <mjambor@suse.cz>
11590
11591         * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
11592         instead of ipa_create_node_params.
11593         (ipcp_driver): Allocate infos with ipa_check_create_node_params and
11594         ipa_check_create_edge_args, free them with
11595         free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
11596
11597         * ipa-prop.c: Include flags.h and tree-inline.h.
11598         (ipa_node_params_vector): New variable.
11599         (ipa_edge_args_vector): New variable.
11600         (edge_removal_hook_holder): New variable.
11601         (node_removal_hook_holder): New variable.
11602         (edge_duplication_hook_holder): New variable.
11603         (node_duplication_hook_holder): New variable.
11604         (ipa_detect_param_modifications): Check for presence of modified flags.
11605         (ipa_compute_jump_functions): Check for presence of jump functions.
11606         (ipa_free_edge_args_substructures): New function.
11607         (ipa_create_node_params): Removed.
11608         (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
11609         (ipa_free_node_params_substructures): New function.
11610         (ipa_free_all_node_params): Changed to deallocate the on-the-side
11611         vector.
11612         (ipa_edge_removal_hook): New function.
11613         (ipa_node_removal_hook): New function.
11614         (duplicate_array): New function.
11615         (ipa_edge_duplication_hook): New function.
11616         (ipa_node_duplication_hook): New function.
11617         (ipa_register_cgraph_hooks): New function.
11618         (ipa_unregister_cgraph_hooks): New function.
11619         (free_all_ipa_structures_after_ipa_cp): New function.
11620
11621         * ipa-prop.h: Include vec.h.
11622         (ipa_node_params_t): New typedef with vector types for it.
11623         (ipa_edge_args_t):  New typedef with vector types for it.
11624         (IPA_NODE_REF): Changed to access an on-the-side vector.
11625         (IPA_EDGE_REF): Changed to access an on-the-side vector.
11626         (ipa_check_create_node_params): New function.
11627         (ipa_check_create_edge_args): New function.
11628
11629         * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h.  Converted
11630         all users.
11631
11632 2008-07-07  Tom Tromey  <tromey@redhat.com>
11633
11634         * configure, config.in: Rebuilt.
11635         * configure.ac: Don't check for scandir or alphasort.
11636
11637 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
11638
11639         * config/arm/arm.c (arm_init_neon_builtins): Register built-in
11640         types immediately after creating them.
11641
11642 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
11643
11644         * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
11645
11646 2008-07-07  Fernando Pereira <fernando@cs.ucla.edu>
11647
11648         * tree-ssa-structalias.c (compute_points_to_sets): Add call to
11649         dump_constraint_graph.
11650         (dump_constraint_edge): New function.
11651         (dump_constraint_graph): New function.
11652         (debug_constraint_graph): New function.
11653         (dump_constraint): Removed useless comparison.
11654         * tree-ssa-structalias.h (dump_constraint_edge): Declare.
11655         (dump_constraint_graph): Declare.
11656         (debug_constraint_graph): Declare.
11657         * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
11658
11659 2008-07-07  Kai Tietz  <kai.tietz@onevision.com>
11660
11661         * config/i386/i386.c (is_va_list_char_pointer): New.
11662         (ix86_va_start): Replace compare with ms_va_list_type_node
11663         by is_va_list_char_pointer.
11664         (ix86_gimplify_va_arg): Likewise.
11665
11666 2008-07-07  Martin Jambor  <mjambor@suse.cz>
11667
11668         * cgraph.c (cgraph_edge_max_uid): New variable.
11669         (struct cgraph_edge_hook_list): New type.
11670         (struct cgraph_node_hook_list): New type.
11671         (struct cgraph_2edge_hook_list): New type.
11672         (struct cgraph_2node_hook_list): New type.
11673         (first_cgraph_edge_removal_hook): New variable.
11674         (first_cgraph_node_removal_hook): New variable.
11675         (first_cgraph_edge_duplicated_hook): New variable.
11676         (first_cgraph_node_duplicated_hook): New variable.
11677         (cgraph_add_edge_removal_hook): New function.
11678         (cgraph_remove_edge_removal_hook): New function.
11679         (cgraph_call_edge_removal_hooks):  New function.
11680         (cgraph_add_node_removal_hook):  New function.
11681         (cgraph_remove_node_removal_hook):  New function.
11682         (cgraph_call_node_removal_hooks):  New function.
11683         (cgraph_add_edge_duplication_hook):  New function.
11684         (cgraph_remove_edge_duplication_hook):  New function.
11685         (cgraph_call_edge_duplication_hooks):  New function.
11686         (cgraph_add_node_duplication_hook):  New function.
11687         (cgraph_remove_node_duplication_hook):  New function.
11688         (cgraph_call_node_duplication_hooks):  New function.
11689         (cgraph_create_edge): Assign to edge uid.
11690         (cgraph_remove_edge): Call edge removal hooks.
11691         (cgraph_node_remove_callees): Call edge removal hooks.
11692         (cgraph_node_remove_callers): Call edge removal hooks.
11693         (cgraph_remove_node): Call node removal hooks.
11694         (cgraph_clone_edge): Call edge duplication hooks.
11695         (cgraph_clone_node): Call node duplication hooks.
11696
11697         * cgraph.h (cgraph_edge): New field uid.
11698         (cgraph_edge_hook): New type.
11699         (cgraph_node_hook): New type.
11700         (cgraph_2edge_hook): New type.
11701         (cgraph_2node_hook): New type.
11702
11703 2008-07-07  Andreas Tobler  <a.tobler@schweiz.org>
11704
11705         * config.in: Regenerate.
11706
11707 2008-07-07  Vladimir Prus  <vladimir@codesourcery.com>
11708
11709         * gcc.c (print_sysroot): New.
11710         (option_map, display_help, process_command): Handle the
11711         -print-sysroot option.
11712         (main): Print the sysroot if requested.
11713         * doc/invoke.texi (Debugging Options): Document -print-sysroot.
11714
11715 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11716
11717         PR target/34780
11718         * unwind-pe.h (size_of_encoded_value): add attribute unused.
11719
11720 2008-07-07  Daniel Jacobowitz  <dan@codesourcery.com>
11721
11722         * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
11723         (assign_parm_setup_block_p): Also check mode of entry_parm.
11724
11725 2008-07-07  Richard Guenther  <rguenther@suse.de>
11726
11727         * tree-ssa-structalias.h (set_used_smts): Remove.
11728         * tree-ssa-structalias.c (used_smts): Likewise.
11729         (set_used_smts): Likewise.
11730         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
11731         call to set_used_smts.
11732
11733 2008-07-07  Richard Guenther  <rguenther@suse.de>
11734
11735         * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
11736         (new_var_info): Set it to false.
11737         (solution_set_add): Correctly handle pointers outside a var and
11738         inside a field.
11739         (type_safe): Treat variables with is_full_var properly.
11740         (do_sd_constraint): Likewise.
11741         (do_ds_constraint): Likewise.
11742         (process_constraint): Remove zeroing offset for !use_field_sensitive.
11743         (get_constraint_for_ptr_offset): New function.
11744         (get_constraint_for_component_ref): For addresses at least include
11745         the last field of the variable.  Handle is_full_vars properly.
11746         (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
11747         (handle_ptr_arith): Remove.
11748         (find_func_aliases): Simplify assignment handling.
11749         (create_function_info_for): For parameter and result varinfos set
11750         is_full_var flag.
11751         (create_variable_info_for): Set is_full_var flag whenever we
11752         just created a single varinfo for a decl.
11753         (init_alias_vars): Initialize use_field_sensitive from
11754         max-fields-for-field-sensitive parameter.
11755
11756 2008-07-07  Richard Guenther  <rguenther@suse.de>
11757
11758         PR tree-optimization/36713
11759         * tree-flow-inline.h (is_call_used): New function.
11760         * tree-nrv.c (dest_safe_for_nrv_p): Use it.
11761         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
11762         * tree-outof-ssa.c (create_temp): Set call-used flag if required.
11763
11764 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
11765
11766         * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
11767
11768 2008-07-07  Mark Shinwell  <shinwell@codesourcery.com>
11769
11770         * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
11771
11772 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
11773             Nathan Sidwell  <nathan@codesourcery.com>
11774
11775         * config.gcc (m68k-*-linux*): Add with_arch.  Add sysroot-suffix.h
11776         to tm_file.  Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
11777         tmake_file.
11778         * config/m68k/t-linux: New.
11779         * doc/install.texi: Document m68k-*-linux is now multilibbed by
11780         default.
11781
11782 2008-07-07  Nathan Sidwell  <nathan@codesourcery.com>
11783
11784         * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
11785         * config/m68k/m68k-devices.def: Remove multilibs that only differ
11786         by MAC/EMAC.
11787
11788 2008-07-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11789
11790         * gcc.c (execute): Fix -Wc++-compat warning.
11791
11792 2008-07-06  H.J. Lu  <hongjiu.lu@intel.com>
11793
11794         PR target/36720
11795         * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
11796         constant for little endian.
11797
11798 2008-07-06  Richard Sandiford  <rdsandiford@googlemail.com>
11799
11800         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
11801         mips_base_mips16 instead of TARGET_MIPS16.
11802         (mips_base_mips16): Declare.
11803         * config/mips/mips.c (mips_base_mips16): Make global.
11804         (was_mips16_p): Remove GTY marker.
11805         (was_mips16_pch_p): New variable.
11806         (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
11807         (mips_override_options): Force to non-MIPS16 mode initially.
11808         Do not complain about MIPS16 PIC incompatibilities here.
11809         Only allow -mgpopt if -mexplicit-relocs is in force for
11810         non-MIPS16 code.
11811
11812 2008-07-06  Andreas Tobler  <a.tobler@schweiz.org>
11813
11814         * configure.ac: Check for caddr_t, define to char * if not defined.
11815         * configure: Regenerate.
11816         * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
11817         (mmap_gt_pch_use_address): Likewise.
11818         * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
11819
11820 2008-07-06  Richard Guenther  <rguenther@suse.de>
11821
11822         * tree-ssa-structalias.c (struct variable_info): Remove has_union.
11823         (new_var_info): Deal with it.
11824         (solution_set_add): Likewise.
11825         (bitpos_of_field): Make signed, fix.
11826         (struct fieldoff): Remove type and decl fields.  Make size field
11827         unsigned HOST_WIDE_INT.  Add has_unknown_size and may_have_pointers
11828         flags.
11829         (fieldoff_compare): Deal with it.
11830         (push_fields_onto_fieldstack): Remove has_union argument, glob
11831         adjacent non-pointer fields together.
11832         (create_function_info_for): Do not set has_union.
11833         (create_variable_info_for): Simplify.
11834
11835 2008-07-06  Kai Tietz  <kai.tietz@onevision.com>
11836
11837         * config.gcc (extra_headers): Add cross-stdarg.h for target
11838         x86_64-*-* and i?86-*-*.
11839         * config/i386/cross-stdarg.h: New.
11840         * builtins.c (std_fn_abi_va_list): New.
11841         (std_canonical_va_list_type): New.
11842         (stabilize_va_list): Replace va_list_type_node use by
11843         mtarget.canonical_va_list_type.
11844         (gimplify_va_arg_expr): Likewise.
11845         (expand_builtin_va_copy): Replace va_list_type_node use by
11846         mtarget.fn_abi_va_list.
11847         * tree-sra.c (is_va_list_type): New helper.
11848         (decl_can_be_decomposed_p): Replace
11849         va_list_type_node use by is_va_list_type.
11850         * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
11851         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
11852         * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
11853         * config/i386/i386-protos.h (ix86_get_valist_type): New.
11854         (ix86_enum_va_list): New.
11855         * config/i386/i386.c (sysv_va_list_type_node): New.
11856         (ms_va_list_type_node): New.
11857         (ix86_function_type_abi): Remove sorry.
11858         (ix86_build_builtin_va_list_abi): New.
11859         (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
11860         for 64-bit targets.
11861         (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
11862         (ix86_init_builtins_va_builtins_abi): New.
11863         (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
11864         for 64-bit targets.
11865         (ix86_handle_abi_attribute): New.
11866         (attribute_spec): Add sysv_abi and ms_abi.
11867         (ix86_fn_abi_va_list): New.
11868         (ix86_canonical_va_list_type): New.
11869         (ix86_enum_va_list): New.
11870         (TARGET_FN_ABI_VA_LIST): New.
11871         (TARGET_CANONICAL_VA_LIST_TYPE): New.
11872         * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
11873         * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
11874         (TARGET_CANONICAL_VA_LIST_TYPE): New.
11875         (TARGET_ENUM_VA_LIST): New.
11876         * expr.h (std_fn_abi_va_list): New.
11877         (std_canonical_va_list_type): New.
11878         * target-def.h (TARGET_FN_ABI_VA_LIST): New.
11879         (TARGET_CANONICAL_VA_LIST_TYPE): New.
11880         (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
11881         TARGET_CANONICAL_VA_LIST_TYPE.
11882         * target.h (struct gcc_target): Add fn_abi_va_list hook
11883         and canonical_va_list_type hook.
11884
11885 2008-07-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11886
11887         * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
11888         integral and pointer types.
11889
11890 2008-07-04  Roger Sayle  <roger@eyesopen.com>
11891
11892         * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
11893         the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
11894
11895 2008-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
11896
11897         PR target/36684
11898         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
11899
11900 2008-07-04  Jakub Jelinek  <jakub@redhat.com>
11901
11902         * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
11903         build_gimple_modify_stmt.
11904         (build_arrays, gen_inbound_check): Likewise.  Force RHS to be
11905         gimple operand.  Use fold_build* instead of build*.
11906
11907 2008-07-04  Richard Guenther  <rguenther@suse.de>
11908
11909         * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
11910         (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
11911         properly to compute the reachability set if we do field-sensitive PTA.
11912         * invoke.texi (max-fields-for-field-sensitive): Document default.
11913         * opts.c (decode_options): Set max-fields-for-field-sensitive to
11914         100 for optimize >= 2.
11915
11916 2008-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11917
11918         * ggc-zone.c (lookup_page_table_if_allocated,
11919         set_page_table_entry, zone_find_object_size, alloc_small_page,
11920         alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
11921         new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
11922         -Wc++-compat and/or -Wcast-qual warnings.
11923
11924 2008-07-04  Alan Modra  <amodra@bigpond.net.au>
11925
11926         PR target/36634
11927         * config/rs6000/rs6000.md (call, call_value): Don't arrange for
11928         pic_offset_table_rtx to be marked as used here.
11929         (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
11930         TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
11931         (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
11932         (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
11933         !TARGET_SECURE_PLT.
11934
11935 2008-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11936
11937         * alloc-pool.c (hash_descriptor, eq_descriptor,
11938         alloc_pool_descriptor): Fix -Wc++-compat warnings.
11939         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
11940         Likewise.
11941         * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
11942         loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
11943         final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
11944         * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
11945         Likewise.
11946
11947 2008-07-03  Eric Botcazou  <ebotcazou@adacore.com>
11948
11949         * tree-flow.h (loop_only_exit_p): Declare.
11950         * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
11951         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
11952         the number of iterations if it is constant.  Otherwise, if this is the
11953         only possible exit of the loop, use the conservative estimate on the
11954         number of iterations of the entire loop if available.
11955
11956 2008-07-03  Richard Sandiford  <rdsandiford@googlemail.com>
11957
11958         * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
11959         * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
11960         Add synchronization functions.
11961         * config/sync.c: New file.
11962         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
11963         (LIBGCC_SYNC_CFLAGS): Likewise.
11964
11965 2008-07-03  Uros Bizjak  <ubizjak@gmail.com>
11966
11967         PR target/36710
11968         * config/i386/i386.md (mode): Add TF to "mode" attribute.
11969         (*pushtf_sse): New insn pattern.
11970         (pushtf splitters): New splitters.
11971
11972 2008-07-03  Michael Meissner  <gnu@the-meissners.org>
11973
11974         PR middle-end/35736
11975         * predict.c (build_predict_expr): Use void_type_node for the tree
11976         type, instead of NULL_TREE.
11977
11978 2008-07-03  H.J. Lu  <hongjiu.lu@intel.com>
11979
11980         * config/i386/i386.c (contains_aligned_value_p): Return true
11981         for TCmode.
11982         (ix86_data_alignment): Align TCmode to 128bits.
11983         (ix86_local_alignment): Likewise.
11984
11985 2008-07-03  Andrew Haley  <aph@redhat.com>
11986
11987         PR bootstrap/33304
11988         * vec.h (VEC_TA): New.
11989         (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
11990         DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
11991         * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
11992         (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
11993         (C_COMMON_FIXED_TYPES): Remove first arg.
11994         (C_COMMON_FIXED_MODE_TYPES): Likewise.
11995         * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
11996         MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
11997         not to use empty macro arguments.
11998
11999 2008-07-02  Joseph Myers  <joseph@codesourcery.com>
12000
12001         * config/alpha/vms_tramp.asm, config/arm/crti.asm,
12002         config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
12003         config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
12004         config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
12005         config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
12006         config/i386/sol2-gc1.asm, config/ia64/crti.asm,
12007         config/ia64/crtn.asm, config/m68hc11/larith.asm,
12008         config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
12009         config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
12010         config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
12011         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
12012         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
12013         config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
12014         config/rs6000/e500crtres64gpr.asm,
12015         config/rs6000/e500crtres64gprctr.asm,
12016         config/rs6000/e500crtrest32gpr.asm,
12017         config/rs6000/e500crtrest64gpr.asm,
12018         config/rs6000/e500crtresx32gpr.asm,
12019         config/rs6000/e500crtresx64gpr.asm,
12020         config/rs6000/e500crtsav32gpr.asm,
12021         config/rs6000/e500crtsav64gpr.asm,
12022         config/rs6000/e500crtsav64gprctr.asm,
12023         config/rs6000/e500crtsavg32gpr.asm,
12024         config/rs6000/e500crtsavg64gpr.asm,
12025         config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
12026         config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
12027         config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
12028         config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
12029         config/sparc/sol2-cn.asm: Remove .file directives.
12030
12031 2008-07-02  Richard Sandiford  <rdsandiford@googlemail.com>
12032
12033         * resource.c (mark_referenced_resources): Look inside
12034         UNSPEC_VOLATILEs and ASM_INPUTs.
12035
12036 2008-07-02  Ian Lance Taylor  <iant@google.com>
12037
12038         * rtlanal.c (add_reg_note): New function.
12039         * rtl.h (add_reg_note): Declare.
12040         * auto-inc-dec.c (attempt_change): Use add_reg_note.
12041         * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
12042         * builtins.c (expand_builtin_longjmp): Likewise.
12043         (expand_builtin_nonlocal_goto): Likewise.
12044         * calls.c (emit_call_1, expand_call): Likewise.
12045         * cfgexpand.c (add_reg_br_prob_note): Likewise.
12046         * cfglayout.c (fixup_reorder_chain): Likewise.
12047         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
12048         (commit_one_edge_insertion): Likewise.
12049         * combine.c (move_deaths, distribute_notes): Likewise.
12050         * df-problems.c (df_set_note): Likewise.
12051         * emit-rtl.c (link_cc0_insns, try_split): Likewise.
12052         (set_unique_reg_note): Likewise.
12053         (emit_copy_of_insn_after): Likewise.
12054         * expr.c (expand_expr_real): Likewise.
12055         * gcse.c (add_label_notes): Likewise.
12056         * haifa-sched.c (create_check_block_twin): Likewise.
12057         * jump.c (mark_jump_label_1): Likewise.
12058         * loop-doloop.c (add_test, doloop_modify): Likewise.
12059         * loop-unswitch.c (compare_and_jump_seq): Likewise.
12060         * lower-subreg.c (move_eh_region_note): Likewise.
12061         * optabs.c (emit_libcall_block): Likewise.
12062         * predict.c (predict_insn): Likewise.
12063         (combine_predictions_for_insn): Likewise.
12064         * recog.c (peephole2_optimize): Likewise.
12065         * regmove.c (try_auto_increment): Likewise.
12066         * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
12067         * reload.c (find_reloads): Likewise.
12068         * reload1.c (fixup_eh_region_note): Likewise.
12069         (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
12070         * reorg.c (delete_prior_computation): Likewise.
12071         (delete_computation, dbr_schedule): Likewise.
12072         * config/pa/pa.c (legitimize_pic_address): Likewise.
12073         * config/sh/sh.c (sh_reorg): Likewise.
12074
12075 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
12076
12077         PR target/36669
12078         * config/libgcc-glibc.ver: Add %exclude.
12079         * config/m32r/libgcc-glibc.ver: Likwise.
12080         * config/s390/libgcc-glibc.ver: Likwise.
12081         * config/sh/libgcc-glibc.ver: Likwise.
12082         * config/sparc/libgcc-sparc-glibc.ver: Likwise.
12083
12084         * config/i386/libgcc-glibc.ver: New.
12085
12086         * config/i386/libgcc-x86_64-glibc.ver: Removed.
12087
12088 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
12089
12090         * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
12091         from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
12092         i[34567]86-*-linux*, x86_64-*-linux*.  Add
12093         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
12094         i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
12095         x86_64-*-linux*.  Add i386/t-linux to tmake_file for
12096         i[34567]86-*-linux*, x86_64-*-linux*.
12097
12098         * libgcc-std.ver: Add empty GCC_4.4.0.
12099
12100         * mkmap-symver.awk: Support multiple versions per symbol.
12101
12102         * config/i386/i386.c (ix86_init_builtins): Always define
12103         __builtin_fabsq and __builtin_copysignq with fallbacks.
12104         (ix86_expand_builtin): Emit normal call for __builtin_fabsq
12105         and __builtin_copysignq if SSE2 isn't available.
12106
12107         * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
12108         (LIBGCC2_TF_CEXT): Likwise.
12109         (TF_SIZE): Likwise.
12110
12111         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
12112
12113         * config/i386/sfp-machine.h: Moved to libgcc.
12114
12115         * config/i386/sfp-machine.h: New.
12116         * config/i386/t-linux: Likwise.
12117
12118         * config/i386/t-darwin: Remove softfp_wrap_start and
12119         softfp_wrap_end.
12120         * config/i386/t-darwin64: Likewise.
12121
12122         * config/i386/t-fprules-softfp64: Renamed to ...
12123         * config/i386/t-fprules-softfp: This.
12124
12125         * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
12126         and softfp_wrap_end.
12127
12128 2008-07-02  Jason Merrill  <jason@redhat.com>
12129
12130         * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
12131
12132         * tree.c (ctor_to_list): New fn.
12133         * tree.h: Declare it.
12134         (CONSTRUCTOR_ELT): New macro.
12135         (CONSTRUCTOR_NELTS): New macro.
12136
12137 2008-07-02  Richard Guenther  <rguenther@suse.de>
12138
12139         * tree-ssa-structalias.c (struct variable_info): Reorder
12140         to fill padding on 64bit hosts.  Make collapsed_to an int.
12141         (get_varinfo_fc): Deal with that.
12142         (new_var_info): Likewise.
12143         (collapse_rest_of_var): Likewise.
12144
12145 2008-07-02  Joshua Sumali  <jsumali@redhat.com>
12146
12147         * doc/install.texi (--enable-java-home): Document.
12148         (--enable-aot-compile-rpm): Likewise.
12149         (--with-arch-directory): Likewise.
12150         (--with-os-directory): Likewise.
12151         (--with-origin-name): Likewise.
12152         (--with-arch-suffix): Likewise.
12153         (--with-jvm-root-dir): Likewise.
12154         (--with-jvm-jar-dir): Likewise.
12155         (--with-python-dir): Likewise.
12156
12157 2008-07-02  Richard Guenther  <rguenther@suse.de>
12158
12159         * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
12160         from decls explicitly.  Merge operand checking from tuples.
12161
12162 2008-07-02  Martin Jambor  <mjambor@suse.cz>
12163
12164         * tree-switch-conversion.c: Included timevar.h which I forgot before.
12165
12166 2008-07-02  Martin Jambor  <mjambor@suse.cz>
12167
12168         * tree-switch-conversion.c: Included timevar.h
12169         (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
12170
12171         * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
12172
12173 2008-07-02  Martin Jambor  <mjambor@suse.cz>
12174
12175         * tree-switch-conversion.c: Corrected various comments and
12176         whitespace issues
12177         (build_constructors): Fixed minor formatting mistakes.
12178
12179         * invoke.texi (Optimize Options): Corrected the
12180         switch-conversion-max-branch-ratio parameter.
12181
12182 2008-07-02  Mark Shinwell  <shinwell@codesourcery.com>
12183
12184         * final.c (asm_insn_count): Return zero for an empty asm body.
12185
12186 2008-07-02  Richard Guenther  <rguenther@suse.de>
12187
12188         * bitmap.h (bitmap_set_bit): Return bool.
12189         (bitmap_clear_bit): Likewise.
12190         * bitmap.c (bitmap_set_bit): Return if the bit changed.  Only
12191         write to the bitmap if it would.
12192         (bitmap_clear_bit): Likewise.
12193         * tree-ssa-structalias.c (add_implicit_graph_edge): Use
12194         bitmap_set_bit return value.
12195         (add_pred_graph_edge): Likewise.
12196         (add_graph_edge): Likewise.
12197         (do_sd_constraint): Likewise.
12198         (do_ds_constraint): Likewise.
12199
12200 2008-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12201
12202         * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
12203         Fix -Wc++-compat and/or -Wcast-qual warnings.
12204         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
12205         gen_regparm_prefix): Likewise.
12206         * vmsdbgout.c (write_modbeg, lookup_filename,
12207         vmsdbgout_source_line, vmsdbgout_init): Likewise.
12208
12209 2008-07-02  Danny Smith  <dannysmith@users.sourceforge.net>
12210
12211         * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
12212         defaults.h definition apply.
12213
12214 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
12215
12216         * function.c (assign_parm_remove_parallels): New.
12217         (assign_parm_setup_block_p): Do not return true for non-BLKmode
12218         PARALLELs.
12219         (assign_parm_setup_block): Do not handle them.
12220         (assign_parm_setup_reg, assign_parm_setup_stack): Call
12221         assign_parm_remove_parallels.
12222
12223 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
12224
12225         * c-typeck.c (convert_for_assignment): Use
12226         vector_targets_convertible_p.
12227         * c-common.c (vector_targets_convertible_p): New.
12228         * c-common.h (vector_targets_convertible_p): New prototype.
12229         * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
12230         opaque_p_V2SI_type_node.
12231
12232 2008-07-01  Steve Ellcey  <sje@cup.hp.com>
12233
12234         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
12235         RFmode constants.
12236
12237 2008-07-01  Uros Bizjak  <ubizjak@gmail.com>
12238
12239         * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
12240         TFmode constants via two element DImode vector for hosts with
12241         HOST_BITS_PER_WIDE_INT < 64.
12242         (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
12243         also for HOST_BITS_PER_WIDE_INT < 64.
12244
12245 2008-07-01  Richard Guenther  <rguenther@suse.de>
12246
12247         PR tree-optimization/36666
12248         * tree-ssa-structalias.c (get_constraint_for_1): Declare.
12249         (get_constraint_exp_from_ssa_var): Split into ...
12250         (get_constraint_exp_for_temp): ... this ...
12251         (get_constraint_for_ssa_var): ... and that.
12252         Return constraint expressions for all touched sub-fields
12253         if the results address is not taken.
12254         (process_constraint): Remove assertion that aggregate
12255         assignments do not happen at this place.
12256         (get_constraint_for_component_ref): Add address_p argument.
12257         Return constraint expressions for all touched sub-fields
12258         if the results address is not taken.
12259         (do_deref): Use get_constraint_exp_for_temp.
12260         (get_constraint_for_1): Rename from ...
12261         (get_constraint_for): ... this.  Add the old function as wrapper.
12262         (do_structure_copy): Use get_constraint_for_1.
12263
12264 2008-07-01  Martin Jambor  <mjambor@suse.cz>
12265
12266         * Makefile.in (tree-switch-conversion.o): Add.
12267         (OBJS-common): Add tree-swtch-conversion.o.
12268         * passes.c (init_optimization_passes): Add pass_convert_switch.
12269         * tree-pass.h: (pass_convert_switch): Add.
12270         * tree-switch-conversion.c: New file.
12271         * gcc.dg/tree-ssa/cswtch.c: New testcase.
12272         * common.opt (ftree-cswtch): New option.
12273         * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
12274         * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
12275         * opts.c (decode_options): Set flag_tree_switch_conversion when
12276         optimization level is >= 2.
12277         * doc/invoke.texi (Optimize Options): Added description of
12278         -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
12279
12280 2008-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12281
12282         * config/darwin-driver.c (darwin_default_min_version): Fix
12283         -Wc++-compat warnings.
12284
12285 2008-06-30  Uros Bizjak  <ubizjak@gmail.com>
12286
12287         * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
12288         of operand 0.
12289
12290 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
12291
12292         * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
12293
12294 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
12295
12296         PR rtl-optimization/34744
12297         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
12298         (df_scan_free_internal): Free data structures not
12299         allocated in storage pools.
12300         (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
12301         (df_refs_add_to_chains): Use df_scan_free_ref_vec and
12302         df_scan_free_mws_vec.
12303         * dse.c (dse_step6): Free offset_map_p and offset_map_n
12304         unconditionally.
12305
12306 2008-06-30  H.J. Lu  <hongjiu.lu@intel.com>
12307
12308         * config/i386/i386.c (contains_aligned_value_p): Return true
12309         for __float128.
12310         (ix86_function_arg_boundary): Return its natural boundary
12311         for __float128.
12312         (return_in_memory_32): Don't check TDmode.
12313         (ix86_split_to_parts): Support splitting into 4 parts and
12314         support TFmode for 32bit target.
12315         (ix86_split_long_move): Support splitting into 4 parts.
12316         (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
12317         for SSE2.
12318         (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
12319         (ix86_init_builtins): Here.
12320         (ix86_scalar_mode_supported_p): Always return true for TFmode.
12321         (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
12322         'q' and 'w', respectively.
12323
12324         * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
12325         TARGET_64BIT.
12326         (movtf_internal): Likewise.
12327         (<code>tf2): Likewise.
12328         (*absnegtf2_sse): Likewise.
12329         (copysign<mode>3): Likewise.
12330         (copysign<mode>3_const): Likewise.
12331         (copysign<mode>3_var): Likewise.
12332         (define_split UNSPEC_COPYSIGN): Likewise.
12333         * config/i386/sse.md (*nandtf3): Likewise.
12334         (<code>tf3): Likewise.
12335         (*<code>tf3): Likewise.
12336
12337 2008-06-30  Joey Ye  <joey.ye@intel.com>
12338             H.J. Lu  <hongjiu.lu@intel.com>
12339
12340         * global.c (compute_regsets): Set frame_pointer_needed here.
12341         * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
12342
12343 2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
12344
12345         * doc/install.texi (specific): Expand Windows build notes.
12346
12347 2008-06-30  Ira Rosen  <irar@il.ibm.com>
12348
12349         PR tree-optimization/36648
12350         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
12351         number of prolog iterations by step. Fix the comment.
12352
12353 2008-06-30  Richard Guenther  <rguenther@suse.de>
12354
12355         PR middle-end/36671
12356         * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
12357         handle calls from ECF_MALLOC functions.
12358         (handle_pure_call): ECF_MALLOC functions do not return
12359         call-used memory.
12360         (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
12361
12362 2008-06-29  Andreas Schwab  <schwab@suse.de>
12363
12364         * config/m68k/m68k.c (print_operand): Always print a float
12365         constant in hex.
12366         * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
12367         (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
12368         Remove macros.
12369
12370         * config/rs6000/x-linux64: Remove never used file.
12371
12372 2008-06-29  Richard Guenther  <rguenther@suse.de>
12373
12374         * tree-ssa-structalias.h (compute_points_to_sets): Adjust
12375         prototype.
12376         (struct alias_info): Move ...
12377         * tree-ssa-alias.c: ... here.
12378         (update_alias_info): Declare.
12379         (compute_may_aliases): Call it.
12380         (update_alias_info): New function.
12381         * tree-ssa-structalias.c (update_alias_info): Move ...
12382         * tree-ssa-alias.c (update_alias_info_1): ... here.
12383         * tree-ssa-structalias.c (process_constraint_1): Remove
12384         unused from_call argument.  Rename to ...
12385         (process_constraint): ... this.  Delete old wrapper.
12386         (make_constraint_to): Adjust callers.
12387         (handle_const_call): Likewise.
12388         (handle_pure_call): Likewise.
12389         (init_base_vars): Likewise.
12390         (handle_lhs_call): Likewise.  Remove unnecessary constraint.
12391         (find_func_aliases): We don't need structure copies for
12392         complex types.
12393         (make_constraint_from_anything): Remove.
12394         (create_variable_info_for): For globals make constraints
12395         from escaped, not from anything.
12396         (compute_points_to_sets): Do not call update_alias_info.
12397         (ipa_pta_execute): Use make_constraint_from.
12398
12399 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12400
12401         * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
12402         (bitmap.o-warn, dominance.o-warn): New.
12403         * configure.ac (cxx_compat_warn): Delete.
12404         (loose_warn): Add -Wcast-qual and -Wc++-compat.
12405         * system.h: Remove #pragma diagnostic for -Wcast-qual and
12406         -Wc++-compat.
12407         * configure: Regenerate.
12408
12409         * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
12410         warnings.
12411
12412 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12413
12414         * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
12415         * df-scan.c (df_notes_rescan): Likewise.
12416         * ggc-page.c (set_page_table_entry): Likewise.
12417         * intl.c (gcc_gettext_width): Likewise.
12418         * varasm.c (get_unnamed_section, get_noswitch_section,
12419         get_section): Likewise.
12420
12421 2008-06-28  Andrew Jenner  <andrew@codesourcery.com>
12422
12423         * regrename.c (build_def_use): Don't copy RTX.
12424
12425 2008-06-28  Sandra Loosemore  <sandra@codesourcery.com>
12426
12427         * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
12428         (Type Attributes): Fix nesting of @table and @subsection.  Adjust
12429         punctuation.  Use @ref instead of @xref.
12430         (Function Names): Remove stray @display/@end display.
12431         (C++ Attributes): Use @ref instead of @xref.
12432         (Deprecated Features): Fix punctuation around @xref.
12433         (Backwards Compatibility): Likewise.
12434         * doc/rtl.texi (Incdec): Remove stray @table/@end table.
12435
12436 2008-06-28  Joseph Myers  <joseph@codesourcery.com>
12437
12438         * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
12439         constants for E500 double.
12440
12441 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12442
12443         * doc/rtl.texi (const_vector): Document const_fixed as legitimate
12444         element type of const_vector.
12445
12446 2008-06-28  Uros Bizjak  <ubizjak@gmail.com>
12447
12448         * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
12449         Remove FLAGS_REG clobber from expander pattern.
12450         (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
12451         (anddi3, andsi3, andhi3, andqi3): Ditto.
12452         (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
12453         (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
12454         (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
12455         (ashlsi3, ashlhi3, ashlqi3): Ditto.
12456         (ashrsi3, ashrhi3, ashrqi3): Ditto.
12457         (lshrsi3, lshrhi3, lshrqi3): Ditto.
12458         (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
12459         (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
12460
12461 2008-06-28  Richard Guenther  <rguenther@suse.de>
12462
12463         * tree-ssa-structalias.c (callused_id, var_callused,
12464         callused_tree): Add.
12465         (handle_pure_call): New function.
12466         (find_func_aliases): Call it.
12467         (find_what_p_points_to): Handle the call-used set.
12468         (clobber_what_escaped): Likewise.
12469         (compute_call_used_vars): New function.
12470         (init_base_vars): Init the call-used variable.
12471         (do_sd_constraint): Do not propagate the solution from CALLUSED
12472         but use CALLUSED as a placeholder.
12473         (solve_graph): Likewise.
12474         * tree-flow-inline.h (gimple_call_used_vars): New function.
12475         * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
12476         (compute_call_used_vars): Declare.
12477         * tree-ssa-alias.c (set_initial_properties): Call
12478         compute_call_used_vars.
12479         (reset_alias_info): Clear call-used variables.
12480         (add_call_clobber_ops): Assert we are not called for const/pure
12481         functions.  Remove handling of them.
12482         (add_call_read_ops): Handle pure functions by adding the
12483         call-used set of variables as VUSEs.
12484         * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
12485         (delete_tree_ssa): Free it.
12486         * tree-dfa.c (remove_referenced_var): Clear the var from the
12487         call-used bitmap.
12488
12489 2008-06-28  Kai Tietz  <kai.tietz@onevision.com>
12490
12491         * tree.c (build_varargs_function_type_list): New.
12492         (build_function_type_list_1): New.
12493         (build_function_type_list): Use build_function_type_list_1.
12494         * tree.h (build_varargs_function_type_list): New.
12495
12496 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12497
12498         PR target/34856
12499         * config/spu/spu.c (spu_builtin_splats): Do not generate
12500         invalid CONST_VECTOR expressions.
12501         (spu_expand_vector_init): Likewise.
12502
12503 2008-06-28  Richard Sandiford  <rdsandiford@googlemail.com>
12504
12505         * optabs.c (libfunc_decls): New variable.
12506         (libfunc_decl_hash, libfunc_decl_eq): New functions.
12507         (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
12508         for the same function twice.
12509
12510 2008-06-27  Uros Bizjak  <ubizjak@gmail.com>
12511
12512         * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
12513         ix86_expand_binary_operator directly.
12514         (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
12515         for operand 2.
12516         (*ashrti3_1): Ditto.
12517         (*lshrti3_1): Ditto.
12518         (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
12519         (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
12520         using only one splitter.  Conditionaly execute splitter before or
12521         after peephole2 pass.
12522         (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
12523         (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
12524         Use only one alternative in asm template.
12525         (x86_64_shld): Compress operand 2 constraints. Use only one alternative
12526         in asm template.
12527         (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
12528         "J" operand constraint for operand 2.
12529         (*ashldi3_cconly_rex64): Ditto.
12530         (*ashrdi3_cmp_rex64): Ditto.
12531         (*ashrdi3_cconly_rex64): Ditto.
12532         (*lshrdi3_cmp_rex64): Ditto.
12533         (*lshrdi3_cconly_rex64): Ditto.
12534         * config/i386/predicates.md (const_1_to_63_operand): New predicate.
12535         * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
12536         (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
12537         gen_x86_shrd_1.
12538
12539 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
12540
12541         * gimplify.c (omp_is_private): Don't return true if decl is not
12542         already private on #pragma omp for or #pragma omp parallel for.
12543
12544         PR debug/36617
12545         * tree-cfg.c (struct move_stmt_d): Replace block field with
12546         orig_block and new_block fields.
12547         (move_stmt_r): Only set TREE_BLOCK to p->new_block if
12548         if it used to be NULL, p->orig_block or if p->orig_block is NULL.
12549         (move_block_to_fn): Replace vars_map and new_label_map arguments
12550         with struct move_stmt_d pointer.
12551         (replace_block_vars_by_duplicates): New function.
12552         (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
12553         move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
12554         all subblocks of ORIG_BLOCK to the new function.  Call
12555         replace_block_vars_by_duplicates.
12556         * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
12557         * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
12558         BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
12559         Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
12560         (expand_omp): Temporarily set input_location to the location of
12561         region's controlling stmt.
12562         (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
12563         BIND_EXPR, push ctx->block_vars and gimplification vars into
12564         the BIND_EXPR and its block's BLOCK_VARS instead of directly
12565         into dest function.
12566         (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
12567         there are any BLOCK_VARS.
12568         (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
12569         OMP_PARALLEL or OMP_TASK stmt.
12570         (lower_omp): Save and restore input_location around the lower_omp_1
12571         call.
12572
12573 2008-06-27  Richard Guenther  <rguenther@suse.de>
12574
12575         PR tree-optimization/36400
12576         PR tree-optimization/36373
12577         PR tree-optimization/36344
12578         * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
12579         var_nonlocal, nonlocal_tree, nonlocal_id): New globals
12580         (update_alias_info): Remove call clobbering code.
12581         (make_constraint_to): New helper function.
12582         (make_escape_constraint): Likewise.
12583         (handle_rhs_call): Use it on all pointer containing arguments.
12584         Also mark the static chain escaped.
12585         (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
12586         instead of ANYTHING.
12587         (make_constraint_from): New helper split out from ...
12588         (make_constraint_from_anything): ... here.
12589         (find_func_aliases): Add constraints for escape sites.
12590         (intra_create_variable_infos): Make constraints from NONLOCAL
12591         for parameters.
12592         (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
12593         as ANYTHING.
12594         (clobber_what_p_points_to): Remove.
12595         (clobber_what_escaped): New function.
12596         (init_base_vars): Init NONLOCAL and ESCAPED.
12597         (do_sd_constraint): Do not propagate the solution from ESCAPED
12598         but use ESCAPED as a placeholder.
12599         (solve_graph): Likewise.
12600         * tree-flow.h (clobber_what_p_points_to): Remove.
12601         (clobber_what_escaped): Declare.
12602         * tree-ssa-alias.c (set_initial_properties): Call it.
12603         Remove code clobbering escaped pointers.
12604
12605 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
12606
12607         * function.c (allocate_struct_function): Only allocate a unique
12608         funcdef_no if the decl is nonzero.
12609
12610 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
12611
12612         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
12613         * config/mips/mips.c (mips_split_const_insns): New function.
12614         * config/mips/mips.md (move_type): New attribute.
12615         (mode): Move attribute definition earlier in file.  Add "TI" and "TF".
12616         (dword_mode): New attribute.
12617         (type): Avoid long line.  Map "move_type"s to "type"s,
12618         choosing "multi" for doubleword moves if appropriate.
12619         Swap MTC/MFC comments to match their declaration order.
12620         (extended_mips16): Default to "yes" if "move_type" is "sll0",
12621         "type" is "branch" or "jal" is "direct".
12622         (length): Handle "extended_mips16" first.  Make the default
12623         "0" for "ghost" instructions.  Set the length from "move_type".
12624         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
12625         of "type", with "sll0" for the register alternative.  Remove the
12626         "extended_mips16" attribute.
12627         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
12628         of "type", with "shift_shift" for the register alternative.
12629         Remove the "length" attribute.
12630         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
12631         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
12632         of "type", with "andi" for the register alternative.
12633         (*zero_extendqihi2): Likewise.
12634         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
12635         of "andi" instead of a "type" of "arith".
12636         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
12637         instead of "type".
12638         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
12639         (mov_<store>r, *mov<mode>_ra): Likewise.
12640         (extendsidi2): Use "move_type" instead of "type", with "move"
12641         for the register alternative.
12642         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
12643         of "type", with "signext" for the register alternative.
12644         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
12645         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
12646         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
12647         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
12648         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
12649         (unnamed branch insn): Likewise.
12650         (*movdi_gp32_fp64): Fold into...
12651         (*movdi_32bit): ...here.
12652         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
12653         (*movdf_hardfloat): ...this new pattern.
12654         (*movdf_softfloat): Remove redundant FPR alternatives.
12655         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
12656         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
12657         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
12658         the "move" attribute.
12659         (*movdi_32bit): Use "move_type" instead of "type" and remove the
12660         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
12661         and "store" for COP loads and stores.
12662         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
12663         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
12664         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
12665         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
12666         (*movtf_mips16, *movv2sf): Likewise.
12667         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
12668         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
12669         (mfhc1<mode>): Use "move_type" instead of "move".
12670         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
12671         (loadgp_blockage): Remove the "length" attribute.
12672         (blockage, set_got_version, update_got_version): Likewise.
12673         (call_internal): Remove the "extended_mips16" attribute.
12674         (call_value_internal, call_value_multiple_internal): Likewise.
12675         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
12676         instead of "move".
12677         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
12678         the "length" attribute.
12679
12680 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12681
12682         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
12683         -Wcast-qual warnings.
12684         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
12685         handle_pragma_pop_macro): Likewise.
12686         * collect2.c (resolve_lib_name): Likewise.
12687         * config/arc/arc.c (arc_init): Likewise.
12688         * config/arm/arm.c (neon_builtin_compare,
12689         locate_neon_builtin_icode): Likewise.
12690         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
12691         * config/bfin/bfin.c (bfin_init_machine_status,
12692         bfin_optimize_loop): Likewise.
12693         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
12694         * config/cris/cris.c (cris_init_expanders): Likewise.
12695         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
12696         * config/darwin.c (machopic_indirection_eq,
12697         machopic_indirection_name, machopic_output_indirection): Likewise.
12698         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
12699         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
12700         frv_optimize_membar): Likewise.
12701         * config/i386/cygwin.h (mingw_scan,
12702         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
12703         * config/i386/cygwin1.c (mingw_scan): Likewise.
12704         * config/i386/i386.c (machopic_output_stub): Likewise.
12705         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
12706         i386_pe_unique_section): Likewise.
12707         * config/ia64/ia64.c (ia64_init_machine_status,
12708         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
12709         Likewise.
12710         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
12711         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
12712         * config/m68k/m68k.c (m68k_handle_option,
12713         m68k_sched_md_init_global): Likewise.
12714         * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
12715         mcore_unique_section): Likewise.
12716         * config/mips/mips.c (mips_block_move_straight,
12717         mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
12718         Likewise.
12719         * config/mmix/mmix.c (mmix_init_machine_status,
12720         mmix_encode_section_info): Likewise.
12721         * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
12722         * config/rs6000/rs6000.c (rs6000_init_machine_status,
12723         print_operand_address, output_toc, redefine_groups,
12724         rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
12725         * config/s390/s390.c (s390_init_machine_status): Likewise.
12726         * config/score/score.c (score_block_move_straight,
12727         score_block_move_loop_body): Likewise.
12728         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
12729         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
12730         * emit-rtl.c (find_auto_inc): Likewise.
12731         * gcc.c (translate_options, process_command): Likewise.
12732         * reorg.c (dbr_schedule): Likewise.
12733         * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
12734         * xcoffout.c (xcoffout_declare_function): Likewise.
12735
12736 2008-06-27  Daniel Berlin  <dberlin@dberlin.org>
12737
12738         * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
12739         ipa-pta working again.
12740
12741 2008-06-27  David Edelsohn  <edelsohn@gnu.org>
12742
12743         * config/rs6000/t-aix52: Append large data option to LDFLAGS for
12744         genautomata.
12745
12746 2008-06-27  Edmar Wienskoski  <edmar@freescale.com>
12747
12748         * config.gcc (powerpc*-*-*): Add new core e500mc.
12749         * config/rs6000/e500mc.md: New file.
12750         * config/rs6000/rs6000.c (processor_costs): Add new costs for
12751         e500mc.
12752         (rs6000_override_options): Add e500mc case to
12753         processor_target_table. Altivec and Spe options not allowed
12754         with e500mc. Add isel instruction to e500mc by
12755         default. Initialize rs6000_cost for e500mc.
12756         (rs6000_issue_rate): Set issue rate for e500mc.
12757         * config/rs6000/rs6000.h (processor_type): Add
12758         PROCESSOR_PPCE500MC.
12759         (ASM_CPU_SPEC): Add e500mc.
12760         Set TARGET_ISEL to rs6000_isel.
12761         * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
12762         (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
12763         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
12764         Include e500mc.md.
12765         * doc/invoke.texi: Add e500mc to list of cpus.
12766
12767 2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12768
12769         PR c/34867
12770         * c-lex.c (lex_charconst): Initialize unsignedp.
12771
12772 2008-06-27  Olivier Hainque  <hainque@adacore.com>
12773
12774         * gimplify.c (gimplify_modify_expr_to_memset): Assert our
12775         documented assumptions.
12776
12777 2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>
12778
12779         * dwarf2out.c: Remove trailing white spaces.  Break long line
12780         in comments.
12781
12782 2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>
12783
12784         * libfuncs.h (LTI_synchronize): New libfunc_index.
12785         (synchronize_libfunc): Declare.
12786         * builtins.c (expand_builtin_synchronize): Consider using
12787         synchronize_libfunc before falling back on an asm blockage.
12788         * config/mips/mips.c: Include libfuncs.h
12789         (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
12790
12791 2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>
12792
12793         * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
12794         parameter.  Copy stack_reg to r11 where appropriate.
12795         (no_global_regs_above): Add gpr parameter.
12796         (rs6000_stack_info): Only add padding for SPE save area if we
12797         are saving SPE GPRs and CR.
12798         (saveres_routine_syms): New variable.
12799         (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
12800         Define.
12801         (rs6000_savres_routine_sym): New function.
12802         (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
12803         split out of...
12804         (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
12805         rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
12806         Tweak FPR out-of-line saving.
12807         (rs6000_make_savres_rtx): New function.
12808         (rs6000_use_multiple_p): New function.
12809         (rs6000_savres_strategy): New function.
12810         (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
12811         out-of-line if appropriate.
12812         * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
12813         if we are optimizing for size.
12814         (GP_SAVE_INLINE): Define.
12815         (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
12816         * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
12817         * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
12818         * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
12819         (*save_fpregs_<mode>): Add use of r11.
12820         (*restore_gpregs_<mode>): New insn.
12821         (*return_and_restore_gpregs_<mode>): New insn.
12822         (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
12823         use r11.
12824         * config/rs6000/spe.md (*save_gpregs_spe): New insn.
12825         (*restore_gpregs_spe): New insn.
12826         (*return_and_restore_gpregs_spe): New insn.
12827         * config/rs6000/predicates.md (save_world_operation): Fix check.
12828
12829 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
12830
12831         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
12832         this point, so assert that.
12833
12834 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
12835
12836         * cfganal.c: Include vec.h and vecprim.h.
12837         (compute_idf): Import from...
12838         * tree-into-ssa (compute_idf): ...here.
12839         * basic-block.h (compute_idf): Export.
12840
12841 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
12842
12843         * c-decl.c (merge_decls): Use !current_function_decl to check for
12844         extern declaration of C99 inline function being at file scope.
12845
12846 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
12847
12848         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
12849
12850 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12851
12852         * alias.c (record_alias_subset, init_alias_analysis): Fix
12853         -Wc++-compat and/or -Wcast-qual warnings.
12854         * attribs.c (lookup_attribute_spec): Likewise.
12855         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
12856         copy_bb, connect_traces,
12857         find_rarely_executed_basic_blocks_and_cr): Likewise.
12858         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
12859         note_btr_set, migrate_btr_defs): Likewise.
12860         * builtins.c (result_vector, expand_builtin_memcpy,
12861         expand_builtin_mempcpy_args, expand_builtin_strncpy,
12862         builtin_memset_read_str, expand_builtin_printf,
12863         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
12864         Likewise.
12865         * caller-save.c (mark_set_regs): Likewise.
12866         * calls.c (expand_call, emit_library_call_value_1): Likewise.
12867         * cgraph.c (cgraph_edge): Likewise.
12868         * combine.c (likely_spilled_retval_1): Likewise.
12869         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
12870         htab_counts_entry_del, get_coverage_counts): Likewise.
12871         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
12872         new_cselib_val): Likewise.
12873         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
12874         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
12875         Likewise.
12876         * df-core.c (df_compact_blocks): Likewise.
12877         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
12878         * df-scan.c (df_grow_reg_info, df_ref_create,
12879         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
12880         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
12881         df_record_entry_block_defs, df_record_exit_block_uses,
12882         df_bb_verify): Likewise.
12883         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
12884         DF_REF_EXTRACT_MODE_CONST): New.
12885         * dominance.c (get_immediate_dominator, get_dominated_by,
12886         nearest_common_dominator, root_of_dom_tree,
12887         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
12888         -Wc++-compat and/or -Wcast-qual warnings.
12889         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
12890         record_store, replace_read, check_mem_read_rtx, scan_insn,
12891         dse_step1, dse_record_singleton_alias_set): Likewise.
12892         * dwarf2asm.c (dw2_force_const_mem): Likewise.
12893
12894 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12895
12896         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
12897         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
12898         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
12899         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
12900         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
12901         add_ranges_num, add_ranges_by_labels, file_info_cmp,
12902         file_name_acquire, output_file_names, add_const_value_attribute,
12903         premark_used_types_helper, file_table_eq, file_table_hash,
12904         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
12905         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
12906         -Wcast-qual warnings.
12907         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
12908         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
12909         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
12910         gen_reg_rtx, start_sequence, init_emit): Likewise.
12911         * et-forest.c (et_new_occ, et_new_tree): Likewise.
12912         * except.c (init_eh_for_function, gen_eh_region,
12913         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
12914         arh_to_landing_pad, arh_to_label, add_action_record,
12915         add_call_site, switch_to_exception_section): Likewise.
12916         * expmed.c (synth_mult): Likewise.
12917         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
12918         store_expr): Likewise.
12919         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
12920         Likewise.
12921         * function.c (assign_stack_temp_for_type,
12922         allocate_struct_function, match_asm_constraints_1): Likewise.
12923         * gcov-io.c (gcov_allocate): Likewise.
12924         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
12925         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
12926         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
12927         record_one_set, insert_expr_in_table, insert_set_in_table,
12928         dump_hash_table, compute_hash_table_work, alloc_hash_table,
12929         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
12930         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
12931         -Wcast-qual warnings.
12932
12933 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12934
12935         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
12936         -Wcast-qual warnings.
12937         * gcc.c (process_command): Likewise.
12938         * genattrtab.c (oballoc): Use XOBNEW.
12939         (oballocvec): Define.
12940         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
12941         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
12942         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
12943         -Wc++-compat and/or -Wcast-qual warnings.
12944         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
12945         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
12946         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
12947         gen_presence_absence_set, gen_automaton, gen_regexp_el,
12948         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
12949         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
12950         add_excls, process_presence_absence_names,
12951         process_presence_absence_patterns, add_presence_absence,
12952         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
12953         get_free_state, add_arc, get_free_automata_list_el,
12954         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
12955         transform_3, cache_presence, create_ainsns, create_automata,
12956         create_state_ainsn_table, dfa_insn_code_enlarge,
12957         output_trans_func, output_min_issue_delay_func,
12958         output_dead_lock_func, output_reset_func,
12959         output_get_cpu_unit_code_func, output_dfa_start_func,
12960         expand_automata): Likewise.
12961         * genextract.c (gen_insn): Likewise.
12962         * gengtype-lex.l: Likewise.
12963         * gengtype.c (read_input_list, adjust_field_type,
12964         process_gc_options): Likewise.
12965         * genoutput.c (note_constraint): Likewise.
12966         * genpreds.c (mangle, add_constraint): Likewise.
12967         * genrecog.c (process_define_predicate, new_decision,
12968         add_to_sequence): Likewise.
12969         * gensupport.c (record_insn_name): Likewise.
12970
12971 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12972
12973         * config/i386/driver-i386.c (detect_caches_amd,
12974         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
12975         and/or -Wcast-qual warnings.
12976         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
12977         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
12978         gt_pch_save): Likewise.
12979         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
12980         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
12981         * global.c (compute_regsets): Likewise.
12982         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
12983         finish_graph_dump_file): Likewise.
12984         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
12985         unlink_bb_notes): Likewise.
12986         * integrate.c (get_hard_reg_initial_val): Likewise.
12987         * ipa-prop.c (ipa_push_func_to_list): Likewise.
12988         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
12989         * local-alloc.c (update_equiv_regs): Likewise.
12990         * loop-invariant.c (check_invariant_table_size,
12991         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
12992         Likewise.
12993         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
12994         altered_reg_used, mark_altered): Likewise.
12995         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
12996         insert_var_expansion_initialization,
12997         combine_var_copies_in_loop_exit, apply_opt_in_copies,
12998         release_var_copies): Likewise.
12999         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
13000         analyze_matrix_decl, add_allocation_site, analyze_transpose,
13001         analyze_accesses_for_phi_node, check_var_notmodified_p,
13002         check_allocation_function, find_sites_in_func,
13003         record_all_accesses_in_func, transform_access_sites,
13004         transform_allocation_sites): Likewise.
13005         * omp-low.c (new_omp_region, create_omp_child_function_name,
13006         check_omp_nesting_restrictions, check_combined_parallel,
13007         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
13008         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
13009         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
13010         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
13011         Likewise.
13012         * opts-common.c (prune_options): Likewise.
13013         * opts.c (add_input_filename, print_filtered_help,
13014         get_option_state): Likewise.
13015         * params.c (add_params): Likewise.
13016         * passes.c (set_pass_for_id, next_pass_1,
13017         do_per_function_toporder, pass_fini_dump_file): Likewise.
13018         * postreload.c (reload_cse_simplify_operands): Likewise.
13019         * predict.c (tree_predicted_by_p, tree_predict_edge,
13020         clear_bb_predictions, combine_predictions_for_bb): Likewise.
13021
13022 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13023
13024         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
13025         warnings.
13026         * recog.c (check_asm_operands, validate_change_1): Likewise.
13027         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
13028         subst_asm_stack_regs): Likewise.
13029         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
13030         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
13031         * regmove.c (reg_is_remote_constant_p): Likewise.
13032         * regrename.c (regrename_optimize, scan_rtx_reg,
13033         kill_clobbered_value, kill_set_value, kill_autoinc_value):
13034         Likewise.
13035         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
13036         regstat_compute_calls_crossed): Likewise.
13037         * reload1.c (init_reload, new_insn_chain,
13038         has_nonexceptional_receiver, reload, copy_reloads,
13039         calculate_needs_all_insns, init_elim_table): Likewise.
13040         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
13041         * rtl.c (shallow_copy_rtx_stat): Likewise.
13042         * rtlanal.c (parms_set): Likewise.
13043         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
13044         sbitmap_resize, sbitmap_vector_alloc): Likewise.
13045         * sched-ebb.c (earliest_block_with_similiar_load,
13046         add_deps_for_risky_insns): Likewise.
13047         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
13048         schedule_region): Likewise.
13049         * see.c (eq_descriptor_pre_extension,
13050         hash_descriptor_pre_extension, hash_del_pre_extension,
13051         eq_descriptor_properties, hash_descriptor_properties,
13052         hash_del_properties, see_seek_pre_extension_expr,
13053         see_initialize_data_structures, see_print_register_properties,
13054         see_print_pre_extension_expr, see_delete_merged_def_extension,
13055         see_delete_unmerged_def_extension, see_emit_use_extension,
13056         see_pre_delete_extension, see_map_extension, see_commit_changes,
13057         see_analyze_merged_def_local_prop,
13058         see_analyze_merged_def_local_prop,
13059         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
13060         see_set_prop_merged_def, see_set_prop_unmerged_def,
13061         see_set_prop_unmerged_use, see_print_one_extension,
13062         see_merge_one_use_extension, see_merge_one_def_extension,
13063         see_store_reference_and_extension, see_update_uses_relevancy,
13064         see_update_defs_relevancy): Likewise.
13065         * statistics.c (hash_statistics_hash, hash_statistics_eq,
13066         hash_statistics_free, curr_statistics_hash): Likewise.
13067         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
13068         expand_asm_operands, expand_return, case_bit_test_cmp,
13069         expand_case): Likewise.
13070         * stor-layout.c (start_record_layout): Likewise.
13071         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
13072         gt_pch_save_stringpool): Likewise.
13073         * tree-data-ref.c (hash_stmt_vertex_info,
13074         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
13075         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
13076
13077 2008-06-25  Uros Bizjak  <ubizjak@gmail.com>
13078
13079         PR target/36627
13080         * config/i386/i386.md : Change constraints of HImode and QImode
13081         immediate operands from "i" to "n".  Change SImode "ni" constraint to
13082         "i" and SImode "rmi" constraint to "g".  Remove all constraints
13083         from const0_operand and const1_operand predicated operands.
13084         (i): Change QImode and HImode attribute from "i" to "n".
13085         (*subqi_2): Change HImode operands to QImode.
13086         (*subqi_3): Ditto.
13087
13088 2008-06-25  Olivier Hainque  <hainque@adacore.com>
13089
13090         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
13091         sed substitutions.
13092
13093 2008-06-25  Richard Guenther  <rguenther@suse.de>
13094
13095         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
13096         not overflow the result type.
13097
13098 2008-06-25  Richard Guenther  <rguenther@suse.de>
13099
13100         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
13101         (vn_lookup): Likewise.
13102
13103 2008-06-25  Richard Guenther  <rguenther@suse.de>
13104
13105         PR tree-optimization/35518
13106         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
13107         * tree-sra.c (instantiate_element): Use fold_build3 to build
13108         BIT_FIELD_REFs.
13109         (try_instantiate_multiple_fields): Likewise.
13110
13111 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13112
13113         * config/rs6000/rs6000.md: Change all string instruction's clobber to
13114         be early clobbers.
13115
13116 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13117
13118         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
13119         use_backchain_to_restore_sp to true
13120         if the offset of the link register save area would go over the 32k - 1
13121         offset limit of the load
13122         instructions.
13123
13124 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
13125
13126         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
13127         anchor for the type-punning blurb.  Cross-reference "Structures
13128         unions enumerations and bit-fields implementation".  Provide a
13129         cast-through-pointer example.  Make final sentence self-contained.
13130         * doc/implement-c.texi (Structures unions enumerations and
13131         bit-fields implementation): Cross-reference the type-punning blurb
13132         in the -fstrict-aliasing documentation.
13133
13134 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13135
13136         PR middle-end/36594
13137         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
13138         the memory instead of the memory itself for the save area.
13139
13140 2008-06-24  Olivier Hainque  <hainque@adacore.com>
13141             Nicolas Roche  <roche@adacore.com>
13142
13143         * gengtype.c (srcdir_len): size_t instead of int.
13144         (get_file_realbasename): New function.  For F a filename, the real
13145         basename of F, with all the path components stripped.
13146         (get_file_srcdir_relative_path): New function.  For F a filename, the
13147         relative path to F from $(srcdir).
13148         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
13149         get_file_realbasename.  Adjust the head comment.
13150         (get_prefix_langdir_index): New function. For F a filename, return the
13151         lang_dir_names[] relative index of the language directory that is
13152         a prefix in F.
13153         (get_file_langdir): For F a filename, return the name of the language
13154         directory where F is located.
13155         (get_file_gtfilename): New function. The gt- output file name for an
13156         input filename F.
13157         (get_output_file_with_visibility): Replace in-line computations with
13158         uses of get_file_gtfilename and get_prefix_langdir_index.
13159         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
13160
13161 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
13162
13163         PR tree-optimization/36504
13164         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
13165         references without base address.
13166
13167 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
13168
13169         PR middle-end/36584
13170         * calls.c (expand_call): Increase alignment for recursive functions.
13171
13172 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
13173
13174         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
13175         (TARGET_FUNCTION_VALUE): New define.
13176         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
13177         * config/avr/avr.h (FUNCTION_VALUE): Remove.
13178
13179 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
13180
13181         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
13182         (fmod<mode>3): Ditto.
13183         (remainderxf3): Ditto.
13184         (remainder<mode>3): Ditto.
13185
13186 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
13187
13188         PR target/36533
13189         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
13190         REG is a hard register.
13191
13192         PR tree-optimization/36508
13193         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
13194         499, don't check it at all in release compilers.
13195
13196 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
13197
13198         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
13199         together with SSE_TARGET_MATH to disable insn pattern.
13200         (*fop_<MODEF:mode>_2_i387): Ditto.
13201         (*fop_<MODEF:mode>_3_i387): Ditto.
13202
13203 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
13204
13205         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
13206
13207 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
13208
13209         PR middle-end/34906
13210         * gimplify.c (gimplify_asm_expr): Check the return code of
13211         parse_output_constraint call, set function return and is_inout
13212         value if it failed.
13213
13214 2008-06-22  Ian Lance Taylor  <iant@google.com>
13215
13216         * c-lex.c (narrowest_unsigned_type): Change itk to int.
13217         (narrowest_signed_type): Likewise.
13218         * c-typeck.c (c_common_type): Change local variable mclass to enum
13219         mode_class, twice.
13220         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
13221         tcc_comparison, not the tree code itself.
13222         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
13223         (c_expand_expr): Cast modifier to enum expand_modifier.
13224         * c-common.h (C_RID_CODE): Add casts.
13225         (C_SET_RID_CODE): Define.
13226         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
13227         (c_lex_one_token): Add cast to avoid warning.
13228         (c_parser_objc_type_name): Rename local typename to type_name.
13229         (check_no_duplicate_clause): Change code parameter to enum
13230         omp_clause_code.
13231         (c_parser_omp_var_list_parens): Change kind parameter to enum
13232         omp_clause_code.
13233         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
13234         c_parser_omp_list_var_parens.
13235         (c_parser_omp_threadprivate): Likewise.
13236         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
13237         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
13238         * c-format.c (NO_FMT): Define.
13239         (printf_length_specs): Use NO_FMT.
13240         (asm_fprintf_length_specs): Likewise.
13241         (gcc_diag_length_specs): Likewise.
13242         (scanf_length_specs): Likewise.
13243         (strfmon_length_specs): Likewise.
13244         (gcc_gfc_length_specs): Likewise.
13245         (printf_flag_specs): Change 0 to STD_C89.
13246         (asm_fprintf_flag_specs): Likewise.
13247         (gcc_diag_flag_specs): Likewise.
13248         (gcc_cxxdiag_flag_specs): Likewise.
13249         (scanf_flag_specs): Likewise.
13250         (strftime_flag_specs): Likewise.
13251         (strfmon_flag_specs): Likewise.
13252         (print_char_table): Likewise.
13253         (asm_fprintf_char_table): Likewise.
13254         (gcc_diag_char_table): Likewise.
13255         (gcc_tdiag_char_table): Likewise.
13256         (gcc_cdiag_char_table): Likewise.
13257         (gcc_cxxdiag_char_table): Likewise.
13258         (gcc_gfc_char_table): Likewise.
13259         (scan_char_table): Likewise.
13260         (time_char_table): Likewis.
13261         (monetary_char_table): Likewise.
13262         * c-format.h (BADLEN): Likewise.
13263
13264 2008-06-21  Ian Lance Taylor  <iant@google.com>
13265
13266         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
13267         Define END_OF_BASE_TREE_CODES around inclusion.
13268         * tree.c (tree_code_type): New global array.
13269         (tree_code_length, tree_code_name): Likewise.
13270         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
13271         $(lang_tree_files).
13272         (all-tree.def, s-alltree): New targets.
13273         (gencheck.h, s-gencheck): Remove.
13274         (tree.o): Depend upon all-tree.def.
13275         (build/gencheck.o): Remove gencheck.h dependency.
13276         (mostlyclean): Don't remove gencheck.h.
13277         * c-common.h (enum c_tree_code): Remove.
13278         * c-lang.c (tree_code_type): Remove.
13279         (tree_code_length, tree_code_name): Remove.
13280         * gencheck.c (tree_codes): Include all-tree.def, rather than
13281         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
13282         after it is used.
13283         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
13284         than tree.def.
13285         * cp/cp-tree.h (enum cplus_tree_code): Remove.
13286         (operator_name_info): Size to MAX_TREE_CODES.
13287         (assignment_operator_name_info): Likewise.
13288         * cp/cp-lang.c (tree_code_type): Remove.
13289         (tree_code_length, tree_code_name): Remove.
13290         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
13291         (assignment_operator_name_info): Likewise.
13292         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
13293         MAX_TREE_CODES.
13294         * cp/mangle.c (write_expression): Likewise.
13295         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
13296         * fortran/f95-lang.c (tree_code_type): Remove.
13297         (tree_code_length, tree_code_name): Remove.
13298         * java/java-tree.h (enum java_tree_code): Remove.
13299         * java/lang.c (tree_code_type): Remove.
13300         (tree_code_length, tree_code_name): Remove.
13301         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
13302         * objc/objc-act.h (enum objc_tree_code): Remove.
13303         * objc/objc-lang.c (tree_code_type): Remove.
13304         (tree_code_length, tree_code_name): Remove.
13305         * objcp/objcp-lang.c (tree_code_type): Remove.
13306         (tree_code_length, tree_code_name): Remove.
13307         * ada/ada-tree.h (enum gnat_tree_code): Remove.
13308         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
13309         * ada/misc.c (tree_code_type): Remove.
13310         (tree_code_length, tree_code_name): Remove.
13311
13312 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
13313
13314         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
13315         the grand_bitmap_obstack.
13316
13317 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13318
13319         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
13320         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
13321         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
13322         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
13323         move_stmt_r, new_label_mapper): Likewise.
13324         * tree-complex.c (cvc_lookup): Likewise.
13325         * tree-dfa.c (create_function_ann): Likewise.
13326         * tree-dump.c (dump_register): Likewise.
13327         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
13328         find_phi_replacement_condition): Likewise.
13329         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
13330         tree_function_versioning): Likewise.
13331         * tree-into-ssa.c (cmp_dfsnum): Likewise.
13332         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
13333         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
13334         get_nonlocal_debug_decl, convert_nonlocal_reference,
13335         convert_nonlocal_omp_clauses, get_local_debug_decl,
13336         convert_local_reference, convert_local_omp_clauses,
13337         convert_nl_goto_reference, convert_nl_goto_receiver,
13338         convert_tramp_reference, convert_call_expr): Likewise.
13339         * tree-outof-ssa.c (contains_tree_r): Likewise.
13340         * tree-parloops.c (reduction_phi, initialize_reductions,
13341         eliminate_local_variables_1, add_field_for_reduction,
13342         add_field_for_name, create_phi_for_local_result,
13343         create_call_for_reduction_1, create_loads_for_reductions,
13344         create_stores_for_reduction, create_loads_and_stores_for_name):
13345         Likewise.
13346         * tree-phinodes.c (allocate_phi_node): Likewise.
13347         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
13348         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
13349         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
13350         * tree-ssa-coalesce.c (compare_pairs): Likewise.
13351         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
13352         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
13353         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
13354         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
13355         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
13356         vn_nary_op_insert): Likewise.
13357         * tree-ssa.c (redirect_edge_var_map_add,
13358         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
13359         * tree-vectorizer.c (vectorize_loops): Likewise.
13360         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
13361         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
13362         tree_cons_stat, build1_stat, build_variant_type_copy,
13363         decl_init_priority_lookup, decl_fini_priority_lookup,
13364         decl_priority_info, decl_restrict_base_lookup,
13365         decl_restrict_base_insert, decl_debug_expr_lookup,
13366         decl_debug_expr_insert, decl_value_expr_lookup,
13367         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
13368         type_hash_add, get_file_function_name, tree_check_failed,
13369         tree_not_check_failed, tree_range_check_failed,
13370         omp_clause_range_check_failed, build_omp_clause,
13371         build_vl_exp_stat): Likewise.
13372         * value-prof.c (gimple_histogram_value,
13373         gimple_duplicate_stmt_histograms): Likewise.
13374         * var-tracking.c (attrs_list_insert, attrs_list_copy,
13375         unshare_variable, variable_union_info_cmp_pos, variable_union,
13376         dataflow_set_different_1, dataflow_set_different_2,
13377         vt_find_locations, variable_was_changed, set_variable_part,
13378         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
13379         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
13380         section_entry_hash, object_block_entry_eq,
13381         object_block_entry_hash, create_block_symbol,
13382         initialize_cold_section_name, default_function_rodata_section,
13383         strip_reg_name, set_user_assembler_name, const_desc_eq,
13384         build_constant_desc, output_constant_def, lookup_constant_def,
13385         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
13386         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
13387         default_internal_label): Likewise.
13388         * varray.c (varray_init, varray_grow): Likewise.
13389         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
13390
13391 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
13392
13393         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
13394         operators for "test" insn.  Macroize insn using SWI mode macro.
13395         (*jcc_fused_2): Ditto.
13396         (*jcc_fused_3): Macroize insn using SWI mode macro.
13397         (*jcc_fused_4): Ditto.
13398
13399 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
13400
13401         * tree-ssa-pre.c: Fix typo in comment.
13402         (init_antic, fini_antic): Add explicit funtions for
13403         initializing and deinitializing ANTIC and AVAIL sets.
13404         (create_expression_by_pieces): Fix typo in comment.
13405         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
13406         (execute_pre): Eventually dump details about ANTIC_IN.
13407
13408 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13409
13410         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
13411         * gcc.c (translate_options, init_spec, store_arg, read_specs,
13412         add_to_obstack, file_at_path, find_a_file, execute,
13413         add_preprocessor_option, add_assembler_option, add_linker_option,
13414         process_command, insert_wrapper, do_option_spec, do_self_spec,
13415         spec_path, do_spec_1, is_directory, main, used_arg,
13416         getenv_spec_function): Likewise.
13417         * tlink.c (symbol_hash_lookup, file_hash_lookup,
13418         demangled_hash_lookup, symbol_push, file_push, frob_extension):
13419         Likewise.
13420
13421 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
13422
13423         * doc/rtl.texi: Updated subreg section.
13424
13425 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
13426
13427         PR c++/36523
13428         * cgraphunit.c (cgraph_process_new_functions): Don't clear
13429         node->needed and node->reachable.
13430         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
13431         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
13432         (expand_task_call): Don't call expand_task_copyfn.
13433         (expand_task_copyfn): Renamed to...
13434         (finalize_task_copyfn): ... this.
13435
13436 2008-06-19  Jan Hubicka  <jh@suse.cz>
13437
13438         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
13439         clobbering framepointer.
13440
13441 2008-06-19  Jan Hubicka  <jh@suse.cz>
13442
13443         * tree-optimize.c (execute_early_local_optimizations): Set
13444         cgraph_state only at first invocation.
13445
13446 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13447
13448         * system.h (-Wc++-compat): Activate as a warning, no an error.
13449
13450 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
13451
13452         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
13453         instead of "#" in insn asm template.
13454         (*jcc_fused_2): Ditto.
13455
13456 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
13457
13458         * config/i386/i386.h (ix86_tune_indices)
13459         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
13460         (TARGET_FUSE_CMP_AND_BRANCH): New define.
13461         * config/i386/i386.md (*jcc_fused_1): New insn pattern
13462         (*jcc_fused_2): Ditto.
13463         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
13464         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
13465         (print operand): Handle 'E' and 'e' code.
13466
13467 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
13468
13469         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
13470         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
13471         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
13472
13473 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
13474
13475         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
13476         node->decl.
13477         (cgraph_expand_function): Use local copy of decl.
13478         (cgraph_expand_all_functions): Remove redundant initialization of
13479         order_pos.
13480         (cgraph_optimize): Reword internal_error message.
13481
13482 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
13483
13484         * arm-protos.h (arm_return_in_memory): Remove public
13485         arm_return_in_memory() prototype.
13486         * arm.c (arm_return_in_memory): Add static prototype, add target
13487         hook macro, change definition and comments.
13488         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
13489
13490 2008-06-19  Ben Elliston  <bje@au.ibm.com>
13491
13492         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
13493         real.c: Remove references to IEEE 754R.
13494         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
13495         * doc/libgcc.texi (Decimal float library routines): Likewise.
13496
13497 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13498
13499         * targhooks.h (struct gcc_target): New member unwind_word_mode.
13500         (default_unwind_word_mode): Add prototype.
13501         * targhooks.c (default_unwind_word_mode): New function.
13502         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
13503         instead of word_mode.
13504         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
13505         (TARGET_INITIALIZER): Use it.
13506
13507         * c-common.c (handle_mode_attribute): Support "unwind_word"
13508         mode attribute.
13509         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
13510
13511         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
13512         word_mode to access SjLj_Function_Context member "data".
13513         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
13514         conversion from targetm.eh_return_filter_mode () to
13515         targetm.unwind_word_mode () if they differ.
13516
13517         * builtin-types.def (BT_UNWINDWORD): New primitive type.
13518         (BT_FN_UNWINDWORD_PTR): New function type.
13519         (BT_FN_WORD_PTR): Remove.
13520         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
13521         * except.c (expand_builtin_extend_pointer): Convert pointer to
13522         targetm.unwind_word_mode () instead of word_mode.
13523
13524         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
13525         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
13526         (spu_unwind_word_mode): New function.
13527         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
13528         (TARGET_UNWIND_WORD_MODE): Define.
13529         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
13530
13531 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13532
13533         * config/spu/spu.c (reg_align): Remove.
13534         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
13535         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
13536         (spu_split_store): Likewise.
13537
13538 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
13539
13540         * gcc/tree-vn.c: Fix typo in comment.
13541
13542 2008-06-18  Jan Hubicka  <jh@suse.cz>
13543
13544         * cgraphunit.c (cgraph_optimize): Output debug info when doing
13545         toplevel reorder too.
13546
13547 2008-06-18  Jan Hubicka  <jh@suse.cz>
13548
13549         * c-opts.c (c_common_post_options): PCH is not compatible with
13550         no-unit-at-a-time.
13551         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
13552         -fno-toplevel-reorder by default now.
13553
13554 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13555
13556         PR documentation/30739
13557         * doc/install.texi (Prerequisites): Document dependency on awk.
13558
13559 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
13560             Ian Lance Taylor  <iant@google.com>
13561
13562         PR rtl-optimization/35604
13563         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
13564         only want to change jump destinations, not eventual label comparisons.
13565
13566 2008-06-16  Jan Hubicka  <jh@suse.cz>
13567
13568         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
13569         syntax errors.
13570         (cgraph_analyze_function): Likewise.
13571
13572 2008-06-16  Jan Hubicka  <jh@suse.cz>
13573
13574         * cgraph.h (cgraph_mark_if_needed): New function.
13575         * cgraphunit.c (cgraph_mark_if_needed): New function.
13576         * c-decl.c (duplicate_decl): Use it.
13577
13578 2008-06-16  Jan Hubicka  <jh@suse.cz>
13579
13580         * cgraph.c (cgraph_add_new_function): When in expansion state, do
13581         lowering.
13582
13583 2008-06-16  Jan Hubicka  <jh@suse.cz>
13584
13585         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
13586
13587 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
13588             Kazu Hirata  <kazu@codesourcery.com>
13589             Maxim Kuvyrkov  <maxim@codesourcery.com
13590
13591         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
13592         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
13593         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
13594         EXTRA_SPEC_FUNCTIONS.
13595         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
13596         (DRIVER_SELF_SPECS): Adjust.
13597         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
13598         * config/mips/st.h, config/mips/t-st: New.
13599         * config/mips/driver-native.c, config/mips/x-native: New.
13600         * doc/invoke.texi (MIPS): Document 'native' value for -march and
13601         -mtune options.
13602
13603 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
13604
13605         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
13606         from it.
13607         (ISA_HAS_FP_CONDMOVE): New macro.
13608         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
13609         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
13610         (ISA_HAS_NMADD3_NMSUB3): New macro.
13611         * config/mips/mips.c (mips_rtx_costs): Update.
13612         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
13613         compiling for ST Loongson 2E/2F.
13614         (madd<mode>): Rename to madd4<mode>.  Update.
13615         (madd3<mode>): New pattern.
13616         (msub<mode>): Rename to msub4<mode>.  Update.
13617         (msub3<mode>): New pattern.
13618         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
13619         (nmadd3<mode>): New pattern.
13620         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
13621         (nmadd3<mode>_fastmath): New pattern.
13622         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
13623         (nmsub3<mode>): New pattern.
13624         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
13625         (nmsub3<mode>_fastmath): New pattern.
13626         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
13627
13628 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
13629
13630         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
13631         (DF_REF_INSN_INFO): New.
13632         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
13633         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
13634         with a NULL DF_REF_INSN_INFO.
13635         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
13636         DF_INSN_SET.
13637         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
13638         DF_INSN_INFO_EQ_USES): New.
13639         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
13640         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
13641         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
13642         * df-core.c: Update comment for above changes.
13643         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
13644         DF_INSN_UID_* macros.
13645         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
13646         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
13647         insn rtx.  Update all callers.
13648         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
13649         df_ref_create_structure, df_insn_refs_collect): Likewise.
13650         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
13651         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
13652         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
13653         macros to access the insn refs.
13654         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
13655         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
13656         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
13657         for accessing the refs.
13658         (try_fwprop_subst): Likewise.
13659         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
13660         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
13661         for accessing the refs.
13662         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
13663         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
13664         to look at the insn refs.
13665         (record_uses): Likewise.
13666         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
13667         function anymore.
13668         (mark_artificial_uses): Don't mark_insn for artificial refs.
13669         (mark_reg_rependencies): Likewise.
13670
13671         * doc/rtl.texi: Remove documentation of ADDRESSOF.
13672
13673 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13674
13675         * configure: Regenerate.
13676
13677 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
13678
13679         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
13680         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
13681         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
13682
13683 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
13684
13685         * config/avr/avr.c (avr_mcu_t): Add attiny167.
13686         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
13687         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
13688
13689 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
13690
13691         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
13692         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
13693         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
13694
13695 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
13696
13697         * tree-ssa-sccvn.c: Fix format of comments.
13698
13699 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
13700
13701         * cgraph.c: Remove unneeded forward declarations of eq_node()
13702         and hash_node().
13703
13704 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
13705
13706         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
13707         REG_RETVAL notes.
13708         (see_update_relevancy): Likewise.
13709         * fwprop.c (try_fwprop_subst): Likewise.
13710         * rtlanal.c (noop_move_p): Likewise.
13711         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
13712         notes to non-existing libcall blocks.
13713         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
13714         Remove orig_set.
13715         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
13716         (dead_libcall_p): Remove.
13717         (delete_trivially_dead_insns): Don't use it.
13718         * web.c (union_defs): Remove comment about keeping nops.
13719         * gcse.c (hash_scan_insn): Don't take libcall pointers.
13720         (compute_hash_table_work): Don't track libcall notes.
13721         (do_local_cprop): Don't take libcall pointers.  Don't update
13722         libcall notes.
13723         (adjust_libcall_notes): Deleted.
13724         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
13725         ever have existed in the first place).
13726         (replace_store_insn): Don't try to remove libcall notes.
13727         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
13728         (resolve_reg_notes): Don't call them.
13729         (resolve_simple_move): Likewise.
13730         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
13731         Don't remove REG_RETVAL notes.
13732         * emit-rtl.c (try_split): Don't update libcall notes.
13733         (emit_copy_of_insn_after): Dito.
13734         * cselib.c (cselib_current_insn_in_libcall): Remove.
13735         (cselib_process_insn): Don't set/clear it.
13736         (new_elt_loc_list): Don't record it.
13737         (cselib_init): Don't initialize it.
13738         * cselib.c (struct elt_loc_list): Remove in_libcall field.
13739         * loop-invariant.c (find_invariant_insn): Don't look for libcall
13740         notes.
13741         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
13742         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
13743         (init_deps): Don't initialize it.
13744         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
13745         * combine.c (delete_noop_moves): Don't update libcall notes.
13746         (can_combine_p): Remove now pointless #if 0 block.
13747         (try_combine): Remove another obsolete #if 0 block.
13748         (distribute_notes): Don't distribute libcall notes.
13749         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
13750         * dce.c (libcall_dead_p): Remove.
13751         (delete_unmarked_insns): Don't handle libcall blocks.
13752         (preserve_libcall_for_dce): Remove.
13753         (prescan_insns_for_dce): Don't special-case libcall block insns.
13754         * reload1 (reload): Don't handle libcall notes.
13755         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
13756         documentation.
13757
13758 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
13759
13760         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
13761         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
13762         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
13763
13764 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
13765
13766         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
13767         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
13768         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
13769
13770 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13771
13772         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
13773
13774 2008-06-16  Ira Rosen  <irar@il.ibm.com>
13775
13776         PR tree-optimization/36493
13777         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
13778         the arguments list. Use VECTYPE to create vector pointer.
13779         (vectorizable_store): Fail if accesses through a pointer to vectype
13780         do not alias the original memory reference operands.
13781         Call vect_create_data_ref_ptr without the removed argument.
13782         (vectorizable_load): Likewise.
13783         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
13784         removed argument.
13785
13786 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
13787
13788         PR target/36336
13789         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
13790         reg_equiv_constant.
13791
13792 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
13793
13794         * config/mips/loongson2ef.md: New file.
13795         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
13796         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
13797         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
13798         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
13799         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
13800         and loongson_2f.
13801         (loongson2ef.md): New include.
13802         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
13803         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
13804         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
13805         (loongson_gt_<mode>, loongson_extract_halfword)
13806         (loongson_insert_halfword_0, loongson_insert_halfword_2)
13807         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
13808         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
13809         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
13810         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
13811         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
13812         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
13813         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
13814         (vec_interleave_low<mode>): Define type attribute.
13815         * config/mips/mips.c (mips_ls2): New static variable.
13816         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
13817         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
13818         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
13819         Implement target scheduling hooks.
13820         (mips_multipass_dfa_lookahead): Update to handle tuning for
13821         Loongson 2E/2F.
13822         (mips_sched_init): Initialize data for Loongson scheduling.
13823         (mips_ls2_variable_issue): New static function.
13824         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
13825         Add sanity check.
13826         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
13827         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
13828         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
13829         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
13830         Handle ST Loongson 2E/2F cores.
13831         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
13832
13833 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13834
13835         * omp-low.c (extract_omp_for_data): Fix comment typo.
13836         * c.opt: Fix typo.
13837
13838 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13839
13840         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
13841         FIXME note about gcc/config.guess.
13842         * doc/options.texi (Option file format): Remove non-ASCII bytes.
13843         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
13844         * doc/cppopts.texi: Likewise.
13845         * doc/extend.texi: Likewise.
13846         * doc/gcc.texi: Likewise.
13847         * doc/gccint.texi: Likewise.
13848         * doc/gcov.texi: Likewise.
13849         * doc/gty.texi: Likewise.
13850         * doc/hostconfig.texi: Likewise.
13851         * doc/install.texi: Likewise.
13852         * doc/invoke.texi: Likewise.
13853         * doc/loop.texi: Likewise.
13854         * doc/makefile.texi: Likewise.
13855         * doc/md.texi: Likewise.
13856         * doc/passes.texi: Likewise.
13857         * doc/tm.texi: Likewise.
13858         * doc/tree-ssa.texi: Likewise.
13859         * doc/trouble.texi: Likewise.
13860
13861 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
13862             Nathan Sidwell  <nathan@codesourcery.com>
13863             Maxim Kuvyrkov  <maxim@codesourcery.com>
13864             Richard Sandiford  <rdsandiford@googlemail.com>
13865
13866         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
13867         * config/mips/mips-protos.h (mips_expand_vector_init): New.
13868         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
13869         builtins.
13870         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
13871         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
13872         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
13873         V8QImode cases.
13874         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
13875         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
13876         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
13877         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
13878         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
13879         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
13880         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
13881         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
13882         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
13883         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
13884         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
13885         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
13886         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
13887         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
13888         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
13889         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
13890         (mips_builtins): Add Loongson builtins.
13891         (mips_loongson_2ef_bdesc): New.
13892         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
13893         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
13894         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
13895         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
13896         New.
13897         (mips_expand_vector_init): New.
13898         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
13899         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
13900         if appropriate.
13901         * config/mips/mips.md: Add unspec numbers for Loongson
13902         builtins.  Include loongson.md.
13903         (MOVE64): Include Loongson vector modes.
13904         (SPLITF): Include Loongson vector modes.
13905         (HALFMODE): Handle Loongson vector modes.
13906         * config/mips/loongson.md: New.
13907         * config/mips/loongson.h: New.
13908         * config.gcc: Add loongson.h header for mips*-*-* targets.
13909         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
13910
13911 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
13912
13913         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
13914         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
13915         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
13916         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
13917         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
13918         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
13919         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
13920         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
13921         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
13922         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
13923         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
13924         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
13925         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
13926         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
13927         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
13928         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
13929         Remove use_fixproto=yes.
13930         (ia64*-*-hpux*): Remove comment about using fixproto.
13931         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
13932
13933 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13934
13935         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
13936         library rebuilds.
13937         * configure: Regenerate.
13938
13939 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
13940
13941         PR middle-end/36520
13942         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
13943         before evaluating it.
13944
13945 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
13946
13947         PR c/36507
13948         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
13949         nested inline functions.
13950         (start_decl, start_function): Don't invert DECL_EXTERNAL
13951         for nested inline functions.
13952
13953 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
13954
13955         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
13956         splits that must be made for correctness.
13957
13958 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
13959
13960         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
13961         (AVAIL_NON_MIPS16): Likewise.
13962         (mips_builtin_description): Replace target_flags with a predicate.
13963         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
13964         (dspr2_32): New availability predicates.
13965         (MIPS_BUILTIN): New macro.
13966         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
13967         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
13968         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
13969         Replace the TARGET_FLAGS parameters with AVAIL parameters.
13970         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
13971         (mips_dsp_32only_bdesc): Merge into...
13972         (mips_builtins): ...this new array.
13973         (mips_bdesc_map, mips_bdesc_arrays): Delete.
13974         (mips_init_builtins): Update after above changes.
13975         (mips_expand_builtin_1): Merge into...
13976         (mips_expand_builtin): ...here and update after above changes.
13977
13978 2008-06-12  Paul Brook  <paul@codesourcery.com>
13979
13980         * longlong.h (__arm__): Define count_leading_zeros.
13981         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
13982         (clzsi2, clzdi2): New functions.
13983         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
13984         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
13985         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
13986         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
13987         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
13988         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
13989         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
13990         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
13991         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
13992         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
13993
13994 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
13995
13996         * config/m68k/m68k.c (m68k_tune_flags): New.
13997         (override_options): Compute m68k_tune_flags.
13998         (MULL_COST, MULW_COST): Update for various variants of CFV2.
13999         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
14000
14001 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
14002
14003         PR middle-end/36506
14004         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
14005
14006 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
14007
14008         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
14009         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
14010
14011 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
14012
14013         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
14014         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
14015
14016 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
14017
14018         PR middle-end/36506
14019         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
14020         reductions.
14021
14022 2008-06-12  Richard Guenther  <rguenther@suse.de>
14023
14024         PR tree-optimization/36345
14025         * tree-flow.h (struct ptr_info_def): Align escape_mask,
14026         add memory_tag_needed flag.
14027         (may_alias_p): Declare.
14028         * tree-ssa-alias.c (may_alias_p): Export.
14029         (set_initial_properties): Use memory_tag_needed flag.
14030         (update_reference_counts): Likewise.
14031         (reset_alias_info): Reset memory_tag_needed flag.
14032         (create_name_tags): Check memory_tag_needed flag.
14033         (dump_points_to_info_for): Dump it.
14034         * tree-ssa-structalias.c (struct variable_info): Remove
14035         directly_dereferenced flag.
14036         (new_var_info): Do not initialize it.
14037         (process_constraint_1): Do not set it.
14038         (update_alias_info): Set is_dereferenced flag.
14039         (set_uids_in_ptset): Use may_alias_p.
14040         (set_used_smts): Check memory_tag_needed flag.
14041         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
14042         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
14043         memory_tag_needed flag.
14044         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
14045         from broken design.
14046
14047 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
14048
14049         * config/i386/i386.c (ix86_compute_frame_layout): Disable
14050         red zone for w64 abi.
14051         (ix86_expand_prologue): Likewise.
14052         (ix86_force_to_memory): Likewise.
14053         (ix86_free_from_memory): Likewise.
14054
14055 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
14056
14057         PR target/36425
14058         * config/rs6000/rs6000.c (rs6000_override_options): Set
14059         rs6000_isel conditionally to the absence of comand line override.
14060         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
14061         Remove duplicate rs6000_isel setting.
14062         * config/rs6000/eabispe.h: Ditto.
14063
14064 2008-06-11  Richard Guenther  <rguenther@suse.de>
14065
14066         * alias.c (get_alias_set): Use the element alias-set for arrays.
14067         (record_component_aliases): For arrays and vectors do nothing.
14068         * c-common.c (strict_aliasing_warning): Handle the cases
14069         of alias set zero explicitly.
14070         * Makefile.in (dfp.o-warn): Add -Wno-error.
14071
14072 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
14073
14074         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
14075         tune_32 tune_64.
14076         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
14077         tune_32 tune_64 to supported_defaults.  Allow values not
14078         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
14079         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
14080         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
14081         with_cpu_64 to generic for 64-bit-supporting configurations, not
14082         with_cpu.  Remove FIXMEs.
14083         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
14084         --with-arch-64, --with-tune-32, --with-tune-64): Document.
14085         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
14086         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
14087         arch_32 and arch_64.
14088
14089 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
14090             Olivier Hainque  <hainque@adacore.com>
14091
14092         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
14093         Use DECL_SIZE_UNIT to retrieve the size of the field.
14094
14095 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
14096
14097         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
14098         with function calls after declarations.  Lay out
14099         neon_float_type_node before further use.
14100
14101 2008-06-11  Richard Guenther  <rguenther@suse.de>
14102
14103         * tree-flow.h (may_point_to_global_var): Declare.
14104         * tree-ssa-alias.c (may_point_to_global_var): New function.
14105         * tree-ssa-sink.c (is_hidden_global_store): Use it.
14106
14107 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
14108
14109         * configure.ac: Teach that fido supports .debug_line.
14110         * configure: Regenerate.
14111
14112 2008-06-10  Tom Tromey  <tromey@redhat.com>
14113
14114         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
14115         debug hook.
14116
14117 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
14118
14119         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
14120         (encode_decimal64, decode_decimal64, encode_decimal128,
14121         decode_decimal128): Reverse order of 32-bit parts of value if host
14122         and target endianness differ.
14123
14124 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
14125
14126         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
14127         Avoid division by 0.
14128         (tree_mod_pow2_value_transform): Likewise.
14129         (tree_ic_transform): Likewise.
14130         (tree_stringops_transform): Likewise.
14131         (tree_mod_subtract_transform): Likewise.
14132         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
14133         (copy_edges_for_bb): Likewise.
14134         (initialize_cfun): Likewise.
14135
14136 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
14137
14138         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
14139         nonmemory_operand. Add "N" operand constraint.
14140         (*btsi): Ditto.
14141         (*jcc_btdi_mask_rex64): New instruction and split pattern.
14142         (*jcc_btsi_mask): Ditto.
14143         (*jcc_btsi_mask_1): Ditto.
14144
14145 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
14146
14147         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
14148         TYPE_CANONICAL for copied element type.
14149
14150 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
14151
14152         PR target/36473
14153         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
14154         Add m_CORE2 and m_GENERIC.
14155         * config/i386/predicates.md (bt_comparison_operator): New predicate.
14156         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
14157         (*btsi): Ditto.
14158         (*jcc_btdi_rex64): New instruction and split pattern.
14159         (*jcc_btsi): Ditto.
14160         (*jcc_btsi_1): Ditto.
14161         (*btsq): Fix Intel asm dialect operand order.
14162         (*btrq): Ditto.
14163         (*btcq): Ditto.
14164
14165 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
14166
14167         PR middle-end/36447
14168         * simplify-rtx.c (simplify_subreg): Add check for shift count
14169         greater than size.
14170
14171 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
14172
14173         * doc/md.texi: Synchronize with later constraints.md change.
14174         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
14175         with a C implementation.
14176         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
14177         MFLO handling.
14178         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
14179         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
14180         when moving to and from MD_REGNUM.
14181         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
14182         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
14183         Handle byte and halfword moves.
14184         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
14185         separately.
14186         * config/mips/constraints.md (h): Turn into NO_REGS.
14187         (l, x): Update documentation.
14188         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
14189         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
14190         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
14191         (HILO): New mode iterator.
14192         (MOVE128): Add TI.
14193         (any_div): New code iterator.
14194         (u): Extend code attribute to div and udiv.
14195         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
14196         d_operand in the splitters.  Remove redundant CONST_INT checks.
14197         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
14198         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
14199         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
14200         accordingly, using normal moves instead of unspecs to move LO into
14201         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
14202         (<u>mulsidi3): Handle expansion in C code.
14203         (<u>mulsidi3_32bit_internal): Rename to...
14204         (<u>mulsidi3_32bit): ...this.
14205         (<u>mulsidi3_32bit_r4000): Fix insn separator.
14206         (*<u>mulsidi3_64bit): Rename to...
14207         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
14208         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
14209         to set LO and HI to the multiplication result.  Use a normal move
14210         for MFLO and an unspec for MFHI.
14211         (*<u>mulsidi3_64bit_parts): Replace with...
14212         (<u>mulsidi3_64bit_hilo): ...this new instruction.
14213         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
14214         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
14215         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
14216         instead of HI.  Split the instruction into a separate multiplication
14217         and MFHI if !TARGET_FIX_R4000.
14218         (<su>muldi3_highpart): Likewise.
14219         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
14220         and the "=h" clobber.
14221         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
14222         (<u>mulditi3): New expander.
14223         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
14224         (madsi): Remove "=h" clobber.
14225         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
14226         Force the modulus result to be a GPR and split the instruction into
14227         a division followed by an MFHI after reload.
14228         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
14229         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
14230         the MIPS16 HIGH define_split.
14231         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
14232         of acc<->gpr moves to "multi".
14233         (*movdi_64bit): Replace the single "x" alternative with
14234         alternatives for moving into and out of "a".
14235         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
14236         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
14237         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
14238         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
14239         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
14240         (movti): New expander.
14241         (*movti, *movti_mips16): New insns.
14242         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
14243         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
14244         (mthi<GPR:mode>_<HILO:mode>): Likewise.
14245         * config/mips/predicates.md (fpr_operand): Delete.
14246         (d_operand): New predicate.
14247
14248 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
14249
14250         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
14251         failure on some Bourne shells.
14252         (x86_64-*-*): Ditto.
14253
14254 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
14255
14256         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
14257
14258 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
14259
14260         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
14261         (sparc-sun-solaris2*): Likewise.
14262
14263 2008-06-09  Arnaud Charlet  <charlet@adacore.com
14264
14265         * doc/install.texi: Update requirements to build the Ada compiler.
14266
14267 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
14268
14269         * df-scan.c (struct df_scan_problem_data): Remove the
14270         mw_link_pool alloc pool.
14271         (df_scan_free_internal): Don't free it.
14272         (df_scan_alloc): Don't allocate it.
14273         * df.h (struct df_link): Update comment.
14274
14275 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
14276
14277         * except.h: Correct checks for when SJLJ exceptions must be used.
14278
14279 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14280
14281         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
14282         default.
14283
14284 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
14285
14286         PR tree-optimization/36218
14287         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
14288         configure for the build system.
14289         (BUILD_LDFLAGS): Define.
14290         * configure: Regenerate.
14291         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
14292
14293 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
14294
14295         PR target/36424
14296         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
14297         * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
14298         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
14299
14300 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
14301
14302         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
14303
14304 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
14305
14306         * config.gcc (Obsolete configurations): Remove list of
14307         configurations.
14308         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
14309         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
14310         targets matched by those patterns.
14311         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
14312         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
14313         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
14314         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
14315         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
14316         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
14317         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
14318         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
14319         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
14320         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
14321         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
14322         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
14323         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
14324         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
14325         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
14326         Make code for Solaris 7 and greater unconditional for Solaris.
14327         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
14328         Remove --with-* handling.
14329         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
14330         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
14331         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
14332         LINK_OS_WINDISS_SPEC): Remove.
14333         * config/rs6000/sysv4.opt (mwindiss): Remove.
14334         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
14335         * configure: Regenerate.
14336         * doc/cpp.texi: Don't mention BeOS.
14337         * doc/extend.texi (interrupt): Don't mention MS1.
14338         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
14339         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
14340         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
14341         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
14342         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
14343         Remove.
14344         * doc/invoke.texi (MT Options): Remove.
14345         (-mwindiss): Remove.
14346         (CRIS Options): Remove cris-axis-aout references.
14347         (HPPA Options): Don't mention hppa1.1-*-pro.
14348         * doc/md.texi: (MorphoTech family): Remove.
14349         * libgcc2.c: Don't handle UWIN.
14350         * config/alpha/t-unicosmk: Remove.
14351         * config/alpha/unicosmk.h: Remove.
14352         * config/arm/kaos-arm.h: Remove.
14353         * config/arm/kaos-strongarm.h: Remove.
14354         * config/arm/strongarm-coff.h: Remove.
14355         * config/arm/strongarm-elf.h: Remove.
14356         * config/arm/strongarm-pe.h: Remove.
14357         * config/arm/t-strongarm-pe: Remove.
14358         * config/arm/t-xscale-coff: Remove.
14359         * config/arm/t-xscale-elf: Remove.
14360         * config/arm/xscale-coff.h: Remove.
14361         * config/arm/xscale-elf.h: Remove.
14362         * config/chorus.h: Remove.
14363         * config/cris/aout.h: Remove.
14364         * config/cris/aout.opt: Remove.
14365         * config/cris/t-aout: Remove.
14366         * config/i386/beos-elf.h: Remove.
14367         * config/i386/kaos-i386.h: Remove.
14368         * config/i386/ptx4-i.h: Remove.
14369         * config/i386/sco5.h: Remove.
14370         * config/i386/sco5.opt: Remove.
14371         * config/i386/sysv4-cpp.h: Remove.
14372         * config/i386/sysv5.h: Remove.
14373         * config/i386/t-beos: Remove.
14374         * config/i386/t-sco5: Remove.
14375         * config/i386/t-uwin: Remove.
14376         * config/i386/uwin.asm: Remove.
14377         * config/i386/uwin.h: Remove.
14378         * config/kaos.h: Remove.
14379         * config/mips/windiss.h: Remove.
14380         * config/mt: Remove directory.
14381         * config/pa/pa-osf.h: Remove.
14382         * config/pa/pa-pro-end.h: Remove.
14383         * config/pa/t-pro: Remove.
14384         * config/ptx4.h: Remove.
14385         * config/rs6000/beos.h: Remove.
14386         * config/rs6000/kaos-ppc.h: Remove.
14387         * config/rs6000/t-beos: Remove.
14388         * config/rs6000/windiss.h: Remove.
14389         * config/sh/kaos-sh.h: Remove.
14390         * config/sol2-6.h: Remove.
14391         * config/sparc/sol26-sld.h: Remove.
14392         * config/sparc/sysv4-only.h: Remove.
14393         * config/vax/bsd.h: Remove.
14394         * config/vax/t-memfuncs: Remove.
14395         * config/vax/ultrix.h: Remove.
14396         * config/vax/vaxv.h: Remove.
14397         * config/windiss.h: Remove.
14398
14399 2008-06-06  Uros Bizjak <ubizjak@gmail.com>
14400
14401         PR rtl-optimization/36438
14402         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
14403         for vector shifts with constant scalar shift operands.
14404
14405 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
14406
14407         * doc/invoke.texi: Document -march=xlr.
14408         * config/mips/xlr.md: New file.
14409         * config/mips/mips.md: Include it.
14410         (cpu): Add "xlr".
14411         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
14412         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
14413         (mips_rtx_cost_data): Likewise.
14414
14415 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
14416
14417         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
14418         PRE_INC and PRE_DEC cases.
14419
14420 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
14421
14422         PR rtl-optimization/36419
14423         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
14424         the emitting jump insn.
14425
14426         PR target/36362
14427         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
14428         is not bool, boolify the whole *expr_p and convert to the desired type.
14429
14430 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
14431
14432         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
14433         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
14434         Add omp_private_outer_ref hook, add another argument to
14435         omp_clause_default_ctor hook.
14436         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
14437         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
14438         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
14439         hook_tree_tree_tree_tree_null.
14440         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
14441         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
14442         * hooks.c (hook_tree_tree_tree_tree_null): New function.
14443         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
14444         * tree.def (OMP_TASK): New tree code.
14445         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
14446         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
14447         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
14448         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
14449         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
14450         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
14451         OMP_CLAUSE_COLLAPSE_EXPR): Define.
14452         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
14453         (OMP_DIRECTIVE_P): Add OMP_TASK.
14454         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
14455         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
14456         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
14457         and OMP_CLAUSE_UNTIED entries.
14458         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
14459         num_ops to 2.
14460         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
14461         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
14462         * tree-pretty-print.c (dump_omp_clause): Handle
14463         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
14464         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
14465         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
14466         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
14467         warning about unsigned iterators.  Change decl/init/cond/incr
14468         arguments to TREE_VECs, check arguments for all collapsed loops.
14469         (c_finish_omp_taskwait): New function.
14470         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
14471         ws_clauses.
14472         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
14473         default_function_array_conversion on init.  Add par_clauses argument.
14474         If decl is present in parallel's lastprivate clause, change it to
14475         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
14476         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
14477         collapse count in clauses.
14478         (c_parser_omp_for, c_parser_omp_parallel): Adjust
14479         c_parser_omp_for_loop callers.
14480         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
14481         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
14482         (c_parser_omp_clause_name): Handle collapse and untied clauses.
14483         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
14484         functions.
14485         (c_parser_omp_clause_schedule): Handle schedule(auto).
14486         Include correct location in the error message.
14487         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
14488         and PRAGMA_OMP_CLAUSE_UNTIED.
14489         (OMP_TASK_CLAUSE_MASK): Define.
14490         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
14491         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
14492         * tree-nested.c (convert_nonlocal_omp_clauses,
14493         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
14494         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
14495         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
14496         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
14497         OMP_CLAUSE_DECL.
14498         (conver_nonlocal_reference, convert_local_reference,
14499         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
14500         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
14501         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
14502         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
14503         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
14504         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
14505         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
14506         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
14507         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
14508         OMP_CLAUSE_UNTIED.
14509         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
14510         * c-common.h (c_finish_omp_taskwait): New prototype.
14511         * gimple-low.c (lower_stmt): Handle OMP_TASK.
14512         * tree-parloops.c (create_parallel_loop): Create 1 entry
14513         vectors for OMP_FOR_{INIT,COND,INCR}.
14514         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
14515         (make_edges): Handle OMP_TASK.
14516         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
14517         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
14518         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
14519         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
14520         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
14521         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
14522         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
14523         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
14524         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
14525         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
14526         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
14527         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
14528         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
14529         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
14530         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
14531         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
14532         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
14533         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
14534         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
14535         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
14536         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
14537         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
14538         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
14539         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
14540         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
14541         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
14542         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
14543         original iterator is present in lastprivate clause or if
14544         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
14545         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
14546         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
14547         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
14548         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
14549         if it is set, lookup var in outer contexts too.  Handle
14550         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
14551         to be implicitly determined firstprivate for task regions.
14552         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
14553         if it is set, lookup var in outer contexts too.  Set
14554         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
14555         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
14556         OMP_CLAUSE_UNTIED.  Take region_type as last argument
14557         instead of in_parallel and in_combined_parallel.
14558         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
14559         Adjust callers.
14560         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
14561         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
14562         (new_omp_context): Set default_kind to
14563         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
14564         (omp_region_type): New enum.
14565         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
14566         fields, add region_type.
14567         (new_omp_context): Take region_type as argument instead of is_parallel
14568         and is_combined_parallel.
14569         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
14570         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
14571         ctx->is_combined_parallel checks.
14572         (gimplify_omp_task): New function.
14573         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
14574         OMP_CLAUSE_UNTIED.
14575         * omp-low.c (extract_omp_for_data): Use schedule(static)
14576         for schedule(auto).  Handle pointer and unsigned iterators.
14577         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
14578         Add loops argument.  Extract data for collapsed OMP_FOR loops.
14579         (expand_parallel_call): Assert sched_kind isn't auto,
14580         map runtime schedule to index 3.
14581         (struct omp_for_data_loop): New type.
14582         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
14583         Add loop, loops, collapse and iter_type fields.
14584         (workshare_safe_to_combine_p): Disallow combined for if
14585         iter_type is unsigned long long.  Don't combine collapse > 1 loops
14586         unless all bounds and steps are constant.  Adjust extract_omp_for_data
14587         caller.
14588         (expand_omp_for_generic): Handle pointer, unsigned and long long
14589         iterators.  Handle collapsed OMP_FOR loops.  Adjust
14590         for struct omp_for_data changes.  If libgomp function doesn't return
14591         boolean_type_node, add comparison of the return value with 0.
14592         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
14593         pointer, unsigned and long long iterators.  Adjust for struct
14594         omp_for_data changes.
14595         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
14596         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
14597         unsigned long long.  Allocate loops array, pass it to
14598         extract_omp_for_data.  For collapse > 1 loops use always
14599         expand_omp_for_generic.
14600         (omp_context): Add sfield_map and srecord_type fields.
14601         (is_task_ctx, lookup_sfield): New functions.
14602         (use_pointer_for_field): Use is_task_ctx helper.  Change first
14603         argument's type from const_tree to tree.  Clarify comment.
14604         In OMP_TASK disallow copy-in/out sharing.
14605         (build_sender_ref): Call lookup_sfield instead of lookup_field.
14606         (install_var_field): Add mask argument.  Populate both record_type
14607         and srecord_type if needed.
14608         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
14609         in srecord_type.
14610         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
14611         and DECL_FIELD_OFFSET.
14612         (scan_sharing_clauses): Adjust install_var_field callers.  For
14613         firstprivate clauses on explicit tasks allocate the var by value in
14614         record_type unconditionally, rather than by reference.
14615         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
14616         Use is_taskreg_ctx instead of is_parallel_ctx.
14617         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
14618         (create_omp_child_function_name): Add task_copy argument, use
14619         *_omp_cpyfn* names if it is true.
14620         (create_omp_child_function): Add task_copy argument, if true create
14621         *_omp_cpyfn* helper function.
14622         (scan_omp_parallel): Adjust create_omp_child_function callers.
14623         Rename parallel_nesting_level to taskreg_nesting_level.
14624         (scan_omp_task): New function.
14625         (lower_rec_input_clauses): Don't run constructors for firstprivate
14626         explicit task vars which are initialized by *_omp_cpyfn*.
14627         Pass outer var ref to omp_clause_default_ctor hook if
14628         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
14629         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
14630         OMP_CLAUSE_REDUCTION_INIT.
14631         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
14632         avoid duplicate setting of fields.  Handle
14633         OMP_CLAUSE_PRIVATE_OUTER_REF.
14634         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
14635         copy-out if TREE_READONLY, only copy-in.
14636         (expand_task_copyfn): New function.
14637         (expand_task_call): New function.
14638         (struct omp_taskcopy_context): New type.
14639         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
14640         New functions.
14641         (lower_omp_parallel): Rename to...
14642         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
14643         Call create_task_copyfn if srecord_type is needed.  Adjust
14644         sender_decl type.
14645         (task_shared_vars): New variable.
14646         (check_omp_nesting_restrictions): Warn if work-sharing,
14647         barrier, master or ordered region is closely nested inside OMP_TASK.
14648         Add warnings for barrier if closely nested inside of work-sharing,
14649         ordered, or master region.
14650         (scan_omp_1): Call check_omp_nesting_restrictions even for
14651         GOMP_barrier calls.  Rename parallel_nesting_level to
14652         taskreg_nesting_level.  Handle OMP_TASK.
14653         (lower_lastprivate_clauses): Even if some lastprivate is found on a
14654         work-sharing construct, continue looking for them on parent parallel
14655         construct.
14656         (lower_omp_for_lastprivate): Add lastprivate clauses
14657         to the beginning of dlist rather than end.  Adjust for struct
14658         omp_for_data changes.
14659         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
14660         not after it.  Handle collapsed OMP_FOR loops, adjust for
14661         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
14662         (get_ws_args_for): Adjust extract_omp_for_data caller.
14663         (scan_omp_for): Handle collapsed OMP_FOR
14664         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
14665         (lower_omp_single_simple): If libgomp function doesn't return
14666         boolean_type_node, add comparison of the return value with 0.
14667         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
14668         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
14669         (parallel_nesting_level): Rename to...
14670         (taskreg_nesting_level): ... this.
14671         (is_taskreg_ctx): New function.
14672         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
14673         of is_parallel_ctx.
14674         (execute_lower_omp): Rename parallel_nesting_level to
14675         taskreg_nesting_level.
14676         (expand_omp_parallel): Rename to...
14677         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
14678         Call omp_task_call for OMP_TASK regions.
14679         (expand_omp): Adjust caller, handle OMP_TASK.
14680         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
14681
14682         * bitmap.c (bitmap_default_obstack_depth): New variable.
14683         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
14684         if argument is NULL and bitmap_default_obstack is already initialized.
14685         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
14686         at the end.
14687         * matrix-reorg.c (matrix_reorg): Likewise.
14688
14689 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
14690
14691         * config/i386/i386.md (*indirect_jump): Macroize using P
14692         mode iterator.  Remove !TARGET_64BIT from insn constraints.
14693         (*tablejump_1): Ditto.
14694         (*indirect_jump_rex64): Remove insn pattern.
14695         (*tablejump_1_rex64): Ditto.
14696         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
14697         and eh_return_si insn patterns.
14698
14699 2008-06-06  Richard Guenther  <rguenther@suse.de>
14700
14701         * tree-ssa-structalias.c (merge_smts_into): Remove.
14702         (find_what_p_points_to): Do not bother to compute the
14703         points-to set for pt_anything pointers.
14704         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
14705         for pt_anything pointers is ok.
14706
14707 2008-06-06  Jan Hubicka  <jh@suse.cz>
14708
14709         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
14710
14711 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14712
14713         * cgraph.c: Fix typos in comments.
14714         (cgraph_availability_names): Fix string typo.
14715         * fold-const.c: Fix typos in comments.
14716         (fold_binary): Fix typo in warning.
14717         * genautomata.c: Fix typos in comments.
14718         (check_presence_pattern_sets): Fix typo in local variable.
14719         (output_description): Fix typo in output.
14720         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
14721         * hwint.h: Likewise.
14722         * matrix-reorg.c (check_allocation_function): Likewise.
14723         * omega.c (smooth_weird_equations): Likewise.
14724         * auto-inc-dec.c: Fix typos in comments.
14725         * bb-reorder.c: Likewise.
14726         * builtins.c: Likewise.
14727         * c-common.c: Likewise.
14728         * c-cppbuiltin.c: Likewise.
14729         * c-parser.c: Likewise.
14730         * c-pretty-print.c: Likewise.
14731         * cfgcleanup.c: Likewise.
14732         * cfgexpand.c: Likewise.
14733         * cfghooks.c: Likewise.
14734         * cfglayout.c: Likewise.
14735         * cfgloopmanip.c: Likewise.
14736         * cgraphunit.c: Likewise.
14737         * coverage.c: Likewise.
14738         * dbxout.c: Likewise.
14739         * df-byte-scan.c: Likewise.
14740         * df-core.c: Likewise.
14741         * df-problems.c: Likewise.
14742         * df-scan.c: Likewise.
14743         * dfp.c: Likewise.
14744         * dominance.c: Likewise.
14745         * domwalk.c: Likewise.
14746         * dse.c: Likewise.
14747         * dwarf2out.c: Likewise.
14748         * emit-rtl.c: Likewise.
14749         * et-forest.c: Likewise.
14750         * function.c: Likewise.
14751         * function.h: Likewise.
14752         * gcc.c: Likewise.
14753         * gcov-io.c: Likewise.
14754         * gcov.c: Likewise.
14755         * gcse.c: Likewise.
14756         * genattrtab.c: Likewise.
14757         * ggc-page.c: Likewise.
14758         * gimplify.c: Likewise.
14759         * gthr-lynx.h: Likewise.
14760         * haifa-sched.c: Likewise.
14761         * ipa-cp.c: Likewise.
14762         * ipa-inline.c: Likewise.
14763         * ipa-prop.h: Likewise.
14764         * ipa-pure-const.c: Likewise.
14765         * ipa-struct-reorg.c: Likewise.
14766         * ipa-struct-reorg.h: Likewise.
14767         * ipa-type-escape.c: Likewise.
14768         * ipa.c: Likewise.
14769         * loop-doloop.c: Likewise.
14770         * mips-tfile.c: Likewise.
14771         * mkmap-flat.awk: Likewise.
14772         * mkmap-symver.awk: Likewise.
14773         * modulo-sched.c: Likewise.
14774         * omp-low.c: Likewise.
14775         * optabs.c: Likewise.
14776         * optabs.h: Likewise.
14777         * opts.c: Likewise.
14778         * passes.c: Likewise.
14779         * postreload-gcse.c: Likewise.
14780         * postreload.c: Likewise.
14781         * predict.c: Likewise.
14782         * pretty-print.h: Likewise.
14783         * profile.c: Likewise.
14784         * protoize.c: Likewise.
14785         * ra-conflict.c: Likewise.
14786         * real.c: Likewise.
14787         * recog.c: Likewise.
14788         * regclass.c: Likewise.
14789         * regs.h: Likewise.
14790         * reload.c: Likewise.
14791         * rtl-error.c: Likewise.
14792         * rtlanal.c: Likewise.
14793         * scan.h: Likewise.
14794         * sched-rgn.c: Likewise.
14795         * see.c: Likewise.
14796         * stmt.c: Likewise.
14797         * target.h: Likewise.
14798         * tree-dfa.c: Likewise.
14799         * tree-eh.c: Likewise.
14800         * tree-flow-inline.h: Likewise.
14801         * tree-inline.c: Likewise.
14802         * tree-into-ssa.c: Likewise.
14803         * tree-loop-distribution.c: Likewise.
14804         * tree-nested.c: Likewise.
14805         * tree-parloops.c: Likewise.
14806         * tree-pass.h: Likewise.
14807         * tree-pretty-print.c: Likewise.
14808         * tree-profile.c: Likewise.
14809         * tree-scalar-evolution.c: Likewise.
14810         * tree-sra.c: Likewise.
14811         * tree-ssa-alias-warnings.c: Likewise.
14812         * tree-ssa-ccp.c: Likewise.
14813         * tree-ssa-coalesce.c: Likewise.
14814         * tree-ssa-dom.c: Likewise.
14815         * tree-ssa-dse.c: Likewise.
14816         * tree-ssa-forwprop.c: Likewise.
14817         * tree-ssa-live.c: Likewise.
14818         * tree-ssa-live.h: Likewise.
14819         * tree-ssa-loop-im.c: Likewise.
14820         * tree-ssa-loop-ivopts.c: Likewise.
14821         * tree-ssa-loop-niter.c: Likewise.
14822         * tree-ssa-loop-prefetch.c: Likewise.
14823         * tree-ssa-phiopt.c: Likewise.
14824         * tree-ssa-phiprop.c: Likewise.
14825         * tree-ssa-sccvn.c: Likewise.
14826         * tree-ssa-ter.c: Likewise.
14827         * tree-ssa-threadupdate.c: Likewise.
14828         * tree-ssa.c: Likewise.
14829         * tree-vect-analyze.c: Likewise.
14830         * tree-vect-transform.c: Likewise.
14831         * tree-vectorizer.c: Likewise.
14832         * tree-vn.c: Likewise.
14833         * tree-vrp.c: Likewise.
14834         * tree.c: Likewise.
14835         * tree.def: Likewise.
14836         * tree.h: Likewise.
14837         * unwind-dw2-fde.c: Likewise.
14838         * unwind.inc: Likewise.
14839         * value-prof.c: Likewise.
14840         * vmsdbgout.c: Likewise.
14841
14842 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
14843
14844         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
14845         always place FP constants in the TOC for TARGET_POWERPC64.
14846         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
14847
14848 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
14849
14850         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
14851         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
14852         enable for TARGET_E500_DOUBLE.
14853         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
14854         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
14855         floating-point modes like integer modes for E500 double.
14856         (rs6000_legitimate_offset_address_p): Likewise.
14857         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
14858         addressing for DDmode for E500 double.
14859         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
14860         modes as using 64-bits of registers for E500 double.
14861         (spe_build_register_parallel): Do not handle DDmode or TDmode.
14862         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
14863         specially for E500 double.
14864         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
14865         TDmode for E500 double.
14866         (rs6000_gimplify_va_arg): Only handle SDmode in registers
14867         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
14868         (rs6000_split_multireg_move): Do not handle TDmode specially for
14869         E500 double.
14870         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
14871         using 64-bit registers for E500 double.
14872         (emit_frame_save): Do not handle DDmode specially for E500 double.
14873         (gen_frame_mem_offset): Likewise.
14874         (rs6000_function_value): Do not call spe_build_register_parallel
14875         for DDmode or TDmode.
14876         (rs6000_libcall_value): Likewise.
14877         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
14878         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
14879         for E500 double.
14880
14881 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
14882
14883         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
14884         in comments.
14885
14886 2008-06-04  Junjie Gu <jgu@tensilica.com>
14887
14888         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
14889         comparison for frame pointers.
14890
14891 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
14892
14893         PR target/27386
14894         * config/avr/avr.h (PUSH_ROUNDING): Remove.
14895
14896 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
14897
14898         PR target/30243
14899         * builtins.c (expand_builtin_signbit): Don't take lowpart when
14900         register is already smaller or equal to required mode.
14901
14902 2008-06-04  Xinliang David Li  <davidxl@google.com>
14903
14904         * tree-call-cdce.c: New file.
14905         (cond_dead_built_in_calls): New static variable.
14906         (input_domain): New struct.
14907         (check_pow): New function.
14908         (check_builtin_call): Ditto.
14909         (check_target_format): Ditto.
14910         (is_call_dce_candidate): Ditto.
14911         (gen_one_condition): Ditto.
14912         (gen_conditions_for_domain): Ditto.
14913         (get_domain): Ditto.
14914         (gen_conditions_for_pow_cst_base): Ditto.
14915         (gen_conditions_for_pow_int_base): Ditto.
14916         (gen_conditions_for_pow): Ditto.
14917         (get_no_error_domain): Ditto.
14918         (gen_shrink_wrap_conditions): Ditto.
14919         (shrink_wrap_one_built_in_call): Ditto.
14920         (shink_wrap_conditional_dead_built_in_calls): Ditto.
14921         (tree_call_cdce): Ditto.
14922         (gate_call_cdce): Ditto.
14923         (pass_call_cdce): New gimple pass.
14924         * passes.c: (init_optimization_passes): New pass.
14925         * tree-pass.h: New pass declaration.
14926         * opts.c (decode_options): New flag setting.
14927         * common.opt: Add -ftree-builtin-call-dce flag.
14928         * Makefile.in: Add new source file.
14929         * tempvar.def: New tv_id.
14930         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
14931
14932 2008-06-04  Richard Guenther  <rguenther@suse.de>
14933
14934         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
14935         (is_call_clobbered): Always check var_ann->call_clobbered.
14936         (mark_call_clobbered): Always set var_ann->call_clobbered.
14937         (clear_call_clobbered): Always clear var_ann->call_clobbered.
14938         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
14939         (reset_alias_info): Clear call clobbering info on MTAGs and
14940         globals as well.
14941         (set_pt_anything): Set pt_global_mem.
14942         (create_tag_raw): Adjust comment.
14943         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
14944
14945 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
14946             Maxim Kuvyrkov  <maxim@codesourcery.com>
14947
14948         * config/m68k/m68k.opt (mxgot): New option.
14949         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
14950         (m68k_output_addr_const_extra): New.
14951         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
14952         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
14953         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
14954         * doc/invoke.texi (M680x0 Options): Document -mxgot.
14955
14956 2008-06-04  Richard Guenther  <rguenther@suse.de>
14957
14958         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
14959         negative or non-representable offsets.
14960
14961 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
14962
14963         * config/i386/i386.c (ix86_gen_leave): New.
14964         (ix86_gen_pop1): Likewise.
14965         (ix86_gen_add3): Likewise.
14966         (ix86_gen_sub3): Likewise.
14967         (ix86_gen_sub3_carry): Likewise.
14968         (ix86_gen_one_cmpl2): Likewise.
14969         (ix86_gen_monitor): Likewise.
14970         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
14971         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
14972         ix86_gen_one_cmpl2 and ix86_gen_monitor.
14973         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
14974         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
14975         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
14976         (ix86_expand_epilogue): Updated.
14977         (print_operand): Handle integer register operand for 'z'.
14978         (ix86_expand_strlensi_unroll_1): Likewise.
14979         (ix86_expand_strlen): Likewise.
14980         (ix86_expand_builtin): Likewise.
14981         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
14982         mov{q}/mov{l} and add{q}/add{l}.
14983
14984 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
14985
14986         * config/i386/i386.md (P): New mode iterator.
14987         (SFmode push_operand splitter): Macroize DImode and SImode pushes
14988         using P mode iterator.
14989         (DFmode push_operand splitter): Ditto.
14990         (XFmode push_operand splitter): Ditto.
14991         (DFmode float_extend SFmode push_operand splitter): Ditto.
14992         (XFmode float_extend SFmode push_operand splitter): Do not generate
14993         SImode pushes for 64bit target.  Macroize Dimode and SImode
14994         pushes using P mode iterator.
14995         (XFmode float_extend DFmode push_operand splitter): Ditto.
14996
14997 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
14998
14999         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
15000         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
15001         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
15002         return type to int.
15003         (ix86_call_abi_override): Remove check for call_used_regs.
15004
15005 2008-06-03  Richard Guenther  <rguenther@suse.de>
15006
15007         * tree-ssa-structalias.c (find_func_aliases): Add constraints
15008         for the lhs of calls if the return type contains pointers.
15009
15010 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
15011
15012         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
15013         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
15014         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
15015         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
15016         of cfun and DEFAULT_ABI to deceide abi mode.
15017         (DEFAULT_ABI): New.
15018         (REG_PARM_STACK_SPACE): Removed.
15019         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
15020         (STACK_BOUNDARY): Use default target to deceide stack boundary.
15021         * config/i386/i386-protos.h (ix86_cfun_abi): New.
15022         (ix86_function_abi): Likewise.
15023         (ix86_function_type_abi): Likewise.
15024         (ix86_call_abi_override): Likewise.
15025         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
15026         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
15027         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
15028         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
15029         specific defines.
15030         (X86_64_REGPARM_MAX): New.
15031         (X86_64_SSE_REGPARM_MAX): New.
15032         (X64_REGPARM_MAX): New.
15033         (X64_SSE_REGPARM_MAX): New.
15034         (X86_32_REGPARM_MAX): New.
15035         (X86_32_SSE_REGPARM_MAX): New.
15036         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
15037         (ix86_function_regparm): Handle user calling abi.
15038         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
15039         by DEFAULT_ABI versus SYSV_ABI check.
15040         (ix86_reg_parm_stack_space): New.
15041         (ix86_function_type_abi): New.
15042         (ix86_call_abi_override): New.
15043         (ix86_function_abi): New.
15044         (ix86_cfun_abi): New.
15045         (init_cumulative_args): Call abi specific initialization.
15046         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
15047         (function_arg_64): Extend SSE_REGPARM_MAX check.
15048         (function_arg (): Remove TARGET_64BIT_MS_ABI.
15049         (ix86_pass_by_reference): Likewise.
15050         (ix86_function_value_regno_p): Likewise.
15051         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
15052         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
15053         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
15054         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
15055         (setup_incoming_varargs_64): Adjust regparm for call abi.
15056         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
15057         (ix86_va_start): Likewise.
15058         (ix86_gimplify_va_arg): Likewise.
15059         (ix86_expand_prologue): Likewise.
15060         (output_pic_addr_const): Likewise.
15061         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
15062         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
15063         (x86_output_mi_thunk): Likewise.
15064         (x86_function_profiler): Likewise.
15065         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
15066         (SYSV_ABI, MS_ABI): New constants.
15067         (DEFAULT_ABI): New.
15068         (init_regs): Add prototype of function in regclass.c file.
15069         (OVERRIDE_ABI_FORMAT): New.
15070         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
15071         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
15072         (OUTGOING_REG_PARM_STACK_SPACE): New.
15073         (ix86_reg_parm_stack_space): New prototype.
15074         (CUMULATIVE_ARGS): Add call_abi member.
15075         (machine_function): Add call_abi member.
15076         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
15077         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
15078
15079 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com>
15080
15081         PR target/34879
15082         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
15083         (avr_builtin_setjmp_frame_value): New function.
15084         * config/avr/avr.md (nonlocal_goto_receiver): Define.
15085         (nonlocal_goto): Define.
15086
15087 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
15088
15089         * config/mips/mips.c (mips_emit_loadgp): Return early if
15090         there is nothing do to, otherwise emit a blockage if
15091         !TARGET_EXPLICIT_RELOCS || crtl->profile.
15092         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
15093
15094 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15095
15096         * configure.ac: Drop unneeded backslash ending up in config.in.
15097         * acinclude.m4: Likewise.
15098         * config.in: Regenerate.
15099
15100 2008-05-26  Jan Hubicka  <jh@suse.cz>
15101
15102         * predict.c (maybe_hot_frequency_p): Break out of...
15103         (maybe_hot_bb_p): ... here.
15104         (maybe_hot_edge_p): New.
15105         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
15106         * basic-block.h (maybe_hot_edge_p): Declare.
15107
15108 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
15109
15110         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
15111         (*cmpfp_<mode>_cc): Ditto.
15112         (*fp_jcc_8<mode>_387): Ditto.
15113         (*fop_<MODEF:mode>_2_i387): Ditto.
15114         (*fop_<MODEF:mode>_3_i387): Ditto.
15115         (*fop_xf_2_i387): Ditto.
15116         (*fop_xf_3_i387): Ditto.
15117
15118 2008-06-02  Tomas Bily  <tbily@suse.cz>
15119
15120         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
15121
15122 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
15123
15124         * config/mips/mips.c (mips_valid_offset_p): New function.
15125         (mips_valid_lo_sum_p): Likewise.
15126         (mips_classify_address): Use them.
15127         (mips_force_address): New function.
15128         (mips_legitimize_address): Use it.
15129         * config/mips/mips.md (MOVE128): New mode iterator.
15130         (movtf): Require TARGET_64BIT.  Remove empty strings.
15131         (*movtf_internal): Rename to...
15132         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
15133         of "R" and use {,fp}{load,store} attributes instead of "multi".
15134         Use a separate define_split.
15135         (*movtf_mips16): New pattern.
15136
15137 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
15138
15139         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
15140         * config/mips/mips.c (mips_expand_before_return): New function.
15141         (mips_expand_epilogue): Call it.
15142         * config/mips/mips.md (return): Turn into a define_expand.
15143         (*return): New insn.
15144
15145 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
15146
15147         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
15148         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
15149         functions.  Do not emit uses and clobbers of CONCATs; individually
15150         use and clobber their operands.
15151         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
15152         gen_clobber, emit_use and gen_use.
15153         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
15154         (expand_builtin_return): Likewise.
15155         * cfgbuild.c (count_basic_blocks): Likewise.
15156         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
15157         * explow.c (emit_stack_restore): Likewise.
15158         * expmed.c (extract_bit_field_1): Likewise.
15159         * expr.c (convert_move, emit_move_complex_parts): Likewise.
15160         (emit_move_multi_word, store_constructor): Likewise.
15161         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
15162         (thread_prologue_and_epilogue_insns): Likewise.
15163         * lower-subreg.c (resolve_simple_move): Likewise.
15164         * optabs.c (widen_operand, expand_binop): Likewise.
15165         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
15166         * reload.c (find_reloads): Likewise.
15167         * reload1.c (eliminate_regs_in_insn): Likewise.
15168         * stmt.c (expand_nl_goto_receiver): Likewise.
15169         * config/alpha/alpha.md (builtin_longjmp): Likewise.
15170         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
15171         * config/arm/arm.c (arm_load_pic_register): Likewise.
15172         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
15173         * config/arm/arm.md (untyped_return): Likewise.
15174         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
15175         * config/avr/avr.c (expand_prologue): Likewise.
15176         * config/bfin/bfin.c (do_unlink): Likewise.
15177         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
15178         * config/cris/cris.c (cris_expand_prologue): Likewise.
15179         * config/darwin.c (machopic_indirect_data_reference): Likewise.
15180         (machopic_legitimize_pic_address): Likewise.
15181         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
15182         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
15183         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
15184         (ix86_expand_convert_uns_didf_sse): Likewise.
15185         (ix86_expand_vector_init_general): Likewise.
15186         * config/ia64/ia64.md (eh_epilogue): Likewise.
15187         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
15188         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
15189         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
15190         (config/iq2000/iq2000.c): Likewise.
15191         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
15192         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
15193         (builtin_longjmp): Likewise.
15194         * config/mn10300/mn10300.md (call, call_value): Likewise.
15195         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
15196         * config/pdp11/pdp11.md (abshi2): Likewise.
15197         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
15198         * config/s390/s390.c (s390_emit_prologue): Likewise.
15199         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
15200         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
15201         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
15202         * config/sh/sh.c (prepare_move_operands): Likewise.
15203         (output_stack_adjust, sh_expand_epilogue): Likewise.
15204         (sh_set_return_address, sh_expand_t_scc): Likewise.
15205         * config/sparc/sparc.c (load_pic_register): Likewise.
15206         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
15207         * config/spu/spu.c (spu_expand_epilogue): Likewise.
15208         * config/v850/v850.c (expand_epilogue): Likewise.
15209
15210 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
15211
15212         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
15213         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
15214         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
15215         * config/avr/avr.c (expand_prologue, expand_epilogue): Use
15216         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
15217         stack pointer register.
15218         (output_movhi): Remove code for interrupt specific writing to the
15219         stack pointer register.
15220
15221 2008-05-31  Richard Guenther  <rguenther@suse.de>
15222
15223         PR tree-optimization/34244
15224         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
15225         (tree_expr_nonzero_warnv_p): Likewise.
15226         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
15227         ssa_name_nonnegative_p.
15228         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
15229         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
15230         not tree_expr_nonzero_warnv_p.
15231
15232         PR tree-optimization/36262
15233         Revert
15234         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
15235
15236         PR tree-optimization/34244
15237         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
15238         (record_numbers_of_iterations): New function.
15239         (execute_vrp): Cache the numbers of iterations of loops.
15240         * tree-scalar-evolution.c (scev_reset_except_niters):
15241         New function.
15242         (scev_reset): Use scev_reset_except_niters.
15243         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
15244
15245 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
15246
15247         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
15248         __WORKAROUND_RETS when appropriate.
15249
15250 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
15251
15252         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
15253         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
15254         mode iterator.
15255         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
15256         *fop_df_comm_sse insn patterns using MODEF mode iterator.
15257         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
15258         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
15259         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
15260         *fop_df_1_mixed insn patterns using MODEF mode iterator.
15261         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
15262         *fop_df_1_sse insn patterns using MODEF mode iterator.
15263         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
15264         *fop_df_1_i387 insn patterns using MODEF mode iterator.
15265         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
15266         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
15267         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
15268         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
15269         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
15270         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
15271         (*fop_xf_4_i387): Use <MODE> for mode attribute.
15272         (*fop_xf_5_i387): Ditto.
15273         (*fop_xf_6_i387): Ditto.
15274
15275 2008-05-30  Richard Guenther  <rguenther@suse.de>
15276
15277         * builtins.c (build_string_literal): Avoid generating
15278         a non-gimple_val result.
15279
15280 2008-05-30  DJ Delorie  <dj@redhat.com>
15281
15282         * exec-tool.in: Use an environment variable (private) instead of a
15283         file (shared) as a semaphore, so as to not break parallel builds.
15284
15285 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
15286
15287         * optabs.c (maybe_encapsulate_block): Remove.
15288         (emit_libcall_block): Adjust accordingly.
15289         * optabs.h (maybe_encapsulate_block): Remove prototype.
15290
15291         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
15292         Don't use maybe_encapsulate_block.
15293
15294 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
15295
15296         * config/rs6000/rs6000.c (rs6000_legitimize_address,
15297         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
15298         rtx is a SYMBOL_REF before calling get_pool_constant.
15299
15300 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
15301
15302         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
15303
15304 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
15305
15306         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
15307         rather than OS names to choose INO_T_EQ definition.
15308         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
15309         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
15310
15311 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
15312
15313         PR target/36348
15314         * config/darwin-f.c: New.
15315         * config/t-darwin: Added rule to build darwin-f.o.
15316         * config.gcc: Defined new variable, fortran_target_objs.
15317         (*-*-darwin*): Set fortran_target_objs.
15318         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
15319         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
15320         * configure: Regenerated.
15321
15322 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
15323
15324         PR target/35771
15325         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
15326         canonical type if needed.
15327
15328 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
15329
15330         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
15331
15332 2008-05-29  Richard Guenther  <rguenther@suse.de>
15333
15334         PR tree-optimization/36343
15335         PR tree-optimization/36346
15336         PR tree-optimization/36347
15337         * tree-flow.h (clobber_what_p_points_to): Declare.
15338         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
15339         pointed-to variable is dereferenced is irrelevant to whether
15340         the pointer can access the pointed-to variable.
15341         (clobber_what_p_points_to): New function.
15342         * tree-ssa-alias.c (set_initial_properties): Use it.
15343         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
15344         call clobber check for NMTs.
15345
15346 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
15347
15348         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
15349         for printing gcov_type.
15350
15351 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
15352
15353         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
15354         and the eh region information.
15355         * value-prof.c (gimple_move_stmt_histograms): New function.
15356         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
15357
15358 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
15359
15360         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
15361
15362 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
15363
15364         * value-prof.c (tree_ic_transform): Print counts.
15365         * tree-profile.c (tree_gen_ic_func_profiler):
15366         Clear __gcov_indreict_call_callee variable to avoid misattribution
15367         of the profile.
15368
15369 2008-05-28  Rafael Espíndola  <espindola@google.com>
15370
15371         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
15372         invalid sharing.
15373
15374 2008-05-28  Richard Guenther  <rguenther@suse.de>
15375
15376         PR tree-optimization/36339
15377         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
15378         and clobbering code out of the loop.
15379
15380 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
15381
15382         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
15383         letters defined.
15384
15385         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
15386         s390_contiguous_bitmask_p, s390_symref_operand_p,
15387         s390_check_symref_alignment, s390_reload_larl_operand,
15388         s390_reload_symref_address): New functions.
15389         (s390_branch_condition_mnemonic): Support compare and branch
15390         instructions.
15391         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
15392         and 'W' constraints.
15393         (s390_secondary_reload): Add secondary reloads for unaligned
15394         symbol refs or symbol refs to floating point or QI/TI mode
15395         integer values.
15396         (legitimate_address_p): Accept symbol references as addresses.
15397         (s390_expand_insv): Use rotate and insert selected bits
15398         instruction for insv when building for z10.
15399         (print_operand_address): Handle symbol ref addresses.
15400         (print_operand): Output modifier 'c' added for signed byte values.
15401         (s390_encode_section_info): Mark symbol refs with
15402         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
15403
15404         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
15405         (length attribute): RRF, RRR have 4 byte length.
15406         (FPALL, INTALL): New mode iterators added.
15407         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
15408         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
15409         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
15410         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
15411         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
15412         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
15413         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
15414         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
15415         instructions.
15416         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
15417         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
15418         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
15419         reload<INTALL:mode><P:mode>_toreg_z10,
15420         reload<FPALL:mode><P:mode>_tomem_z10,
15421         reload<FPALL:mode><P:mode>_toreg_z10,
15422         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
15423         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
15424         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
15425         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
15426         definition.
15427         (movmem, clrmem, cmpmem): New splitters added.
15428
15429         * config/s390/predicates.md (larl_operand): Use
15430         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
15431         SYMBOL_REF_ALIGN1_P.
15432         (s390_signed_integer_comparison,
15433         s390_unsigned_integer_comparison): New predicates.
15434
15435         * config/s390/s390-protos.h (s390_check_symref_alignment,
15436         s390_contiguous_bitmask_p, s390_reload_larl_operand,
15437         s390_reload_symref_address,
15438         s390_compare_and_branch_condition_mask): Prototypes added.
15439
15440         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
15441         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
15442         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
15443
15444 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
15445
15446         * config/s390/s390.c (z10_cost): New cost function for z10.
15447         (s390_handle_arch_option, override_options): Support -march=z10 switch.
15448         (s390_issue_rate): Adjust issue rate for z10.
15449         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
15450         (processor_flags): Add PF_Z10.
15451         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
15452         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
15453         * gcc/config.gcc: Add z10.
15454
15455 2008-05-28  Richard Guenther  <rguenther@suse.de>
15456
15457         PR tree-optimization/36291
15458         * tree-flow. h (struct gimple_df): Remove var_anns member.
15459         * tree-flow-inline.h (gimple_var_anns): Remove.
15460         (var_ann): Simplify.
15461         * tree-dfa.c (create_var_ann): Simplify.
15462         (remove_referenced_var): Clear alias info from var_anns of globals.
15463         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
15464         (delete_tree_ssa): Clear alias info from var_anns of globals.
15465         Do not free var_anns.
15466         (var_ann_eq): Remove.
15467         (var_ann_hash): Likewise.
15468
15469 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
15470
15471         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
15472         and loongson2f entries.
15473         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
15474         * config/mips/mips.h (processor_type): Add Loongson-2E
15475         and Loongson-2F entries.
15476         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
15477         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
15478         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
15479         * doc/invoke.texi (MIPS Options): Document loongson2e
15480         and loongson2f processor names.
15481
15482 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
15483
15484         PR target/35767
15485         PR target/35771
15486         * config/i386/i386.c (ix86_function_arg_boundary): Use
15487         alignment of canonical type.
15488         (ix86_expand_vector_move): Check unaligned memory access for
15489         all SSE modes.
15490
15491 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
15492
15493         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
15494         Moved to the front of file.
15495
15496 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
15497             H.J. Lu  <hongjiu.lu@intel.com>
15498
15499         * dwarf2out.c (current_fde): New.
15500         (add_cfi): Use it.
15501         (lookup_cfa:): Likewise.
15502         (dwarf2out_end_epilogue): Likewise.
15503         (dwarf2out_note_section_used): Likewise.
15504
15505 2008-05-27  Michael Matz  <matz@suse.de>
15506
15507         PR c++/27975
15508         * c.opt (Wenum-compare): New warning option.
15509         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
15510
15511 2008-05-27  Michael Matz  <matz@suse.de>
15512
15513         PR middle-end/36326
15514         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
15515         non-BLKmode types.
15516         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
15517         into memory as tail calls.
15518
15519 2008-05-27  Richard Guenther  <rguenther@suse.de>
15520
15521         PR tree-optimization/36339
15522         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
15523         pointers cause all addressable variables to be call clobbered.
15524
15525 2008-05-27  Richard Guenther  <rguenther@suse.de>
15526
15527         PR tree-optimization/36245
15528         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
15529
15530 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
15531
15532         * config/s390/s390.md: Replace all occurences of the 'm'
15533         constraint with 'RT'.
15534
15535 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
15536
15537         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
15538         definitions added.
15539         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
15540         "*movdi_64".
15541         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
15542         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
15543         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
15544
15545 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
15546
15547         * reload.c: (find_reloads): Skip alternatives according to the
15548         "enabled" attribute. Constify the constraint variable.
15549         * recog.c (get_attr_enabled): Add default implementation.
15550         (extract_insn): Set the alternative_enabled_p array
15551         in the recog_data struct.
15552         (preprocess_constraints, constrain_operands): Skip
15553         alternatives according to the "enabled" attribute
15554         * recog.h (struct recog_data): New field alternative_enabled_p.
15555         (skip_alternative): New inline function.
15556         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
15557         (record_reg_classes): Skip alternative according to the
15558         "enabled" attribute.
15559
15560         * doc/md.texi: Add documention for the "enabled" attribute.
15561
15562 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
15563
15564         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
15565         * postreload.c (reload_cse_simplify_operands): Replace 'm'
15566         constraint with TARGET_MEM_CONSTRAINT.
15567         * recog.c (asm_operand_ok, preprocess_constraints,
15568         constrain_operands): Likewise.
15569         * regclass.c (record_reg_classes): Likewise.
15570         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
15571         * reload1.c (maybe_fix_stack_asms): Likewise.
15572         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
15573         * recog.h: Adjust comment.
15574         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
15575         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
15576         * doc/md.texi: Add a note to description of 'm' constraint.
15577         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
15578
15579 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
15580
15581         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
15582         that the bitfield is of integral type before testing its precision.
15583
15584 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
15585             Sa Liu  <saliu@de.ibm.com>
15586
15587         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
15588         __modti3, __udivti3, __umodti3 and __udivmodti4.
15589         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
15590         that implement TImode mul and div functions.
15591         * config/spu/multi3.c: New. Implement __multi3.
15592         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
15593         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
15594         functions on SPU.
15595
15596 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
15597
15598         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
15599         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
15600         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
15601         tls_sysv_suffix): New mode and mode attribute iterators.
15602         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
15603         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
15604         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
15605         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
15606         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
15607         iterators.
15608
15609 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
15610
15611         PR tree-optimization/36329
15612         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
15613         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
15614         * cgraphbuild.c (initialize_inline_failed): Use the latter
15615         macro in lieu of the former.
15616         * ipa-inline.c (cgraph_mark_inline): Likewise.
15617         (cgraph_decide_inlining_of_small_function): Likewise.
15618         (cgraph_decide_inlining): Likewise.
15619         (cgraph_decide_inlining_incrementally): Likewise.
15620
15621 2008-05-26  Tristan Gingold  <gingold@adacore.com>
15622             Anatoly Sokolov  <aesok@post.ru>
15623
15624         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
15625         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
15626         * config/avr/avr.c (expand_prologue): Tune "call_prologue"
15627         optimization for 'avr6' architecture.
15628
15629 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
15630
15631         PR target/34932
15632         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
15633
15634 2008-05-26  Richard Guenther  <rguenther@suse.de>
15635
15636         * tree-ssa-sccvn.c (expr_has_constants): Declare.
15637         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
15638
15639 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
15640
15641         PR middle-end/36253
15642         * caller-save.c (insert_restore): Verify alignment of spill space.
15643         (insert_save): Likewise.
15644         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
15645         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
15646         (STACK_SLOT_ALIGNMENT): Likewise.
15647         * function.c (LOCAL_ALIGNMENT): Removed.
15648         (get_stack_local_alignment): New.
15649         (assign_stack_local): Use it.  Set alignment on stack slot.
15650         (assign_stack_temp_for_type): Use get_stack_local_alignment.
15651         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
15652         (STACK_SLOT_ALIGNMENT): New.
15653         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
15654         stack slot in XFmode.
15655
15656         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
15657
15658 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
15659
15660         PR/36321
15661         * config/i386/i386.md (allocate_stack_worker_64): Make sure
15662         argument operand in rax isn't removed.
15663
15664 2008-05-26  Richard Guenther  <rguenther@suse.de>
15665
15666         PR middle-end/36300
15667         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
15668         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
15669
15670 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
15671
15672         PR bootstrap/36331
15673         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
15674
15675 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
15676
15677         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
15678         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
15679
15680 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
15681
15682         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
15683         build a trampoline if we don't want one.
15684         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
15685         return zero for nested functions if we don't want a trampoline.
15686
15687 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
15688
15689         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
15690
15691 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
15692
15693         PR fortran/18428
15694         * c.opt: Removed undocumented option '-lang-fortran'.
15695         * c-common.h: Removed global variable 'lang_fortran'.
15696         * c-opts.c (c_common_handle_option): Removed code to handle
15697         option '-lang-fortran'. Updated includes.
15698         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
15699         definition of '__GFORTRAN__'.
15700         (define__GNUC__): Reimplemented to use BASEVER and
15701         cpp_define_formatted.
15702         (builtin_define_with_value_n): Removed.
15703         * c-incpath.h: Renamed to ...
15704         * incpath.h: ... this.
15705         * c-incpath.c: Renamed to ...
15706         * incpath.c: ... this. Updated includes.
15707         * fix-header.c: Updated includes.
15708         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
15709         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
15710         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
15711
15712 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
15713
15714         * tree.h: Update the table of flags used on tree nodes.
15715         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
15716         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
15717         (FORCED_LABEL): Add access check.
15718         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
15719         (ASM_INPUT_P): Likewise.
15720         (ASM_VOLATILE_P): Likewise.
15721         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
15722         (OMP_SECTION_LAST): Access private_flag directly.
15723         (OMP_RETURN_NOWAIT): Likewise.
15724         (OMP_PARALLEL_COMBINED): Likewise.
15725         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
15726         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
15727         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
15728         deprecated_flag directly.
15729
15730 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
15731
15732         * final.c (frame_pointer_needed): Removed.
15733         * flags.h (frame_pointer_needed): Likewise.
15734
15735         * function.h (rtl_data): Add frame_pointer_needed.
15736         (frame_pointer_needed): New.
15737
15738 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
15739
15740         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
15741
15742 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
15743
15744         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
15745         SRC is a REG.
15746
15747 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
15748
15749         * c-common.c (strip_array_types): Move function to..
15750         * tree.c: ..here.
15751         (get_inner_array_type): Delete.
15752         * c-common.h (strip_array_types): Move declaration to..
15753         * tree.h: ..here.
15754         (get_inner_array_type): Delete.
15755         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
15756         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
15757         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
15758         * config/pa/pa.c (emit_move_sequence): Likewise.
15759
15760 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
15761
15762         * config/i386/i386.md (*sse_prologue_save_insn): Set length
15763         attribute to 34.
15764
15765 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
15766
15767         * function.c: Include target hook for nonlocal_goto frame value.
15768
15769 2008-05-24  Richard Guenther  <rguenther@suse.de>
15770
15771         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
15772         variable can be only accessed through a pointer or a union.
15773
15774 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15775
15776         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
15777         * doc/extend.texi: Likewise.
15778
15779 2008-05-23  DJ Delorie  <dj@redhat.com>
15780
15781         * config/m32c/jump.md (untyped_call): Add.
15782
15783         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
15784         for A24 to PSImode.
15785         (m32c_address_cost): Detail costs for indirect offsets.
15786
15787 2008-05-23  Rafael Espíndola  <espindola@google.com>
15788
15789         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
15790         if a node is a SUBREG.
15791         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
15792         is a SUBREG.
15793
15794 2008-05-23  Paul Brook  <paul@codesourcery.com>
15795             Carlos O'Donell  <carlos@codesourcery.com>
15796
15797         * doc/extend.texi: Clarify use of __attribute__((naked)).
15798         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
15799         * target.h (gcc_target): Add allocate_stack_slots_for_args.
15800         * function.c (use_register_for_decl): Use
15801         targetm.calls.allocate_stack_slots_for_args.
15802         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
15803         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
15804         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
15805
15806 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
15807
15808         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
15809
15810 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
15811
15812         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
15813         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
15814         is only rounded once.
15815
15816 2008-05-23  Richard Guenther  <rguenther@suse.de>
15817
15818         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
15819
15820 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
15821             Jakub Jelinek  <jakub@redhat.com>
15822
15823         PR target/36079
15824         * configure.ac: Handle --enable-cld.
15825         * configure: Regenerated.
15826         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
15827         * config/i386/i386.h (struct machine_function): Add needs_cld field.
15828         (ix86_current_function_needs_cld): New define.
15829         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
15830         (cld): New isns pattern.
15831         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
15832         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
15833         * config/i386/i386.opt (mcld): New option.
15834         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
15835         TARGET_CLD and ix86_current_function_needs_cld.
15836         (override_options): Use -mcld by default for 32-bit code if
15837         USE_IX86_CLD.
15838
15839         * doc/install.texi (Options specification): Document --enable-cld.
15840         * doc/invoke.texi (Machine Dependent Options)
15841         [i386 and x86-64 Options]: Add -mcld option.
15842         (Intel 386 and AMD x86-64 Options): Document -mcld option.
15843
15844 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
15845         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
15846         (return_in_memory_64): Likewise.
15847         (return_in_memory_ms_64): Likewise.
15848
15849 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15850
15851         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
15852         * builtins.c (fold_builtin_fpclassify): New.
15853         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
15854         * builtins.def (BUILT_IN_FPCLASSIFY): New.
15855         * c-common.c (handle_type_generic_attribute): Adjust to accept
15856         fixed arguments before an elipsis.
15857         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
15858         * doc/extend.texi: Document __builtin_fpclassify.
15859
15860 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
15861
15862         * omp-low.c (gate_expand_omp_ssa): Remove.
15863         (pass_expand_omp_ssa): Remove.
15864         (gate_expand_omp): Do not check for flag_openmp_ssa.
15865         * common.opt (-fopenmp-ssa): Remove.
15866         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
15867
15868 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
15869
15870         * config/sh/sh.opt (mfixed-range): New option.
15871         * config/sh/sh-protos.h (sh_fix_range): Declare.
15872         * config/sh/sh.c (sh_fix_range): New function.
15873         * config/sh/sh.h (sh_fixed_range_str): Declare.
15874         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
15875         is not empty.
15876         * doc/invoke.texi (SH Options): Document -mfixed-range.
15877
15878 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
15879
15880         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
15881         it before the redeclaration.
15882
15883 2008-05-22  Anatoly Sokolov <aesok@post.ru>
15884
15885         * config/avr/avr.c (get_sequence_length): Add new function.
15886         (expand_prologue, expand_epilogue): Remove duplicate code.
15887
15888 2008-05-22  Rafael Espíndola  <espindola@google.com>
15889
15890         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
15891         sharing.
15892
15893 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
15894
15895         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
15896         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
15897
15898         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
15899         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
15900         (vect_update_misalignment_for_peel): Likewise.
15901         (vector_alignment_reachable_p): Likewise.
15902         * tree-vect-transform.c (vectorizable_load): Likewise.
15903         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
15904         (get_vectype_for_scalar_type): Pass mode of scalar_type
15905         to UNITS_PER_SIMD_WORD.
15906
15907         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
15908         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
15909         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
15910         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
15911         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
15912
15913 2008-05-22  Ira Rosen  <irar@il.ibm.com>
15914
15915         PR tree-optimization/36293
15916         * tree-vect-transform.c (vect_transform_strided_load): Don't check
15917         if the first load must be skipped because of a gap.
15918
15919 2008-05-22  Richard Guenther  <rguenther@suse.de>
15920
15921         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
15922         more cases of offset disambiguation that is possible if
15923         strict-aliasing rules apply.
15924         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
15925         for basic offset and type-based disambiguation.
15926
15927 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
15928
15929         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
15930         ix86_expand_vector_set on V16QImode for SSE4.1.
15931
15932 2008-05-21  Tom Tromey  <tromey@redhat.com>
15933
15934         * c.opt (Wimport): Mark as undocumented.
15935         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
15936         -Wno-import.
15937         (Warning Options): Likewise.
15938         * doc/cppopts.texi: Don't mention -Wimport.
15939
15940 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
15941
15942         PR tree-optimization/36287
15943         PR tree-optimization/36286
15944         * lambda-code.c (build_access_matrix): Do not use the loop->num
15945         for computing the number of induction variables: use the loop depth
15946         instead.
15947
15948 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
15949
15950         PR/36280
15951         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
15952         option -f(no-)leading-underscore.
15953
15954 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
15955
15956         * config/i386/i386.c (ix86_expand_vector_init_general): Use
15957         GET_MODE_NUNITS (mode).
15958
15959 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
15960
15961         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
15962         (-mmulhw): Add 464 to description.
15963         (-mdlmzb): Likewise.
15964         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
15965         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
15966         464fp entries.
15967         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
15968         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
15969         * config/rs6000/rs6000.md: Update comments for 464.
15970
15971 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
15972
15973         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
15974
15975 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
15976
15977         * config/i386/sse.md (vec_extractv4sf): Removed.
15978         (vec_extractv2df): Likewise.
15979         (vec_extractv2di): Likewise.
15980         (vec_extractv4si): Likewise.
15981         (vec_extractv8hi): Likewise.
15982         (vec_extractv16qi): Likewise.
15983         (vec_extract<mode>): New.
15984
15985 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
15986
15987         * config/i386/sse.md (vec_setv4sf): Removed.
15988         (vec_setv2df): Likewise.
15989         (vec_setv2di): Likewise.
15990         (vec_setv4si): Likewise.
15991         (vec_setv8hi): Likewise.
15992         (vec_setv16qi): Likewise.
15993         (vec_set<mode>): New.
15994
15995 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
15996
15997         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
15998         goto for vec_concat and vec_interleave.
15999
16000 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
16001
16002         * config/i386/sse.md (vec_initv4sf): Removed.
16003         (vec_initv2df): Likewise.
16004         (vec_initv2di): Likewise.
16005         (vec_initv4si): Likewise.
16006         (vec_initv8hi): Likewise.
16007         (vec_initv16qi): Likewise.
16008         (vec_init<mode>): New.
16009
16010 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
16011
16012         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
16013
16014 2008-05-21  Tom Tromey  <tromey@redhat.com>
16015
16016         * ggc-zone.c (lookup_page_table_if_allocated): New function.
16017         (zone_find_object_offset): Likewise.
16018         (gt_ggc_m_S): Likewise.
16019         (highest_bit): Likewise.
16020         * ggc-page.c (gt_ggc_m_S): New function.
16021         * stringpool.c (string_stack): Remove.
16022         (init_stringpool): Update.
16023         (ggc_alloc_string): Use ggc_alloc.
16024         (maybe_delete_ident): New function.
16025         (ggc_purge_stringpool): Likewise.
16026         (gt_ggc_m_S): Remove.
16027         * ggc-common.c (ggc_protect_identifiers): New global.
16028         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
16029         ggc_protect_identifiers.
16030         * ggc.h (ggc_protect_identifiers): Declare.
16031         (gt_ggc_m_S): Update.
16032         (ggc_purge_stringpool): Declare.
16033         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
16034         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
16035         special case.
16036         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
16037
16038 2008-05-21  David S. Miller  <davem@davemloft.net>
16039
16040         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
16041         tmake_file.
16042
16043 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
16044
16045         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
16046         once finished.
16047
16048 2008-05-20  David Daney  <ddaney@avtrex.com>
16049
16050         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
16051         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
16052         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
16053         UNSPEC_UPDATE_GOT_VERSION): Renumber.
16054         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
16055         (atomic_hiqi_op): New define_code_iterator.
16056         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
16057         mips_expand_compare_and_swap_12.
16058         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
16059         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
16060         (sync_<optab><mode>, sync_old_<optab><mode>,
16061         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
16062         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
16063         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
16064         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
16065         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
16066         (test_and_set_12): New insn.
16067         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
16068         sync_new_<optab><mode>, sync_old_nand<mode>,
16069         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
16070         clobber to operand 0 for SI and DI mode insns.
16071         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
16072         mips_gen_fn_4): New typedefs.
16073         (mips_gen_fn_ptrs): Define new union type.
16074         (mips_expand_compare_and_swap_12): Remove declaration.
16075         (mips_expand_atomic_qihi): Declare function.
16076         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
16077         (mips_expand_atomic_qihi): ... this.  Use new generator function
16078         parameter.
16079         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
16080         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
16081         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
16082         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
16083         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
16084         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
16085         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
16086         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
16087         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
16088         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
16089         New macros.
16090
16091 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
16092
16093         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
16094         the missing break.
16095
16096 2008-05-20  Anatoly Sokolov <aesok@post.ru>
16097
16098         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
16099         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
16100         (avr_attribute_table): Add 'OS_main' function attribute.
16101         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
16102         functions with 'OS_main' attribute.
16103
16104 2008-05-20  Richard Guenther  <rguenther@suse.de>
16105
16106         PR tree-optimization/35204
16107         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
16108         helper, split out from ...
16109         (DFS): ... here.  Make the DFS walk non-recursive.
16110
16111 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
16112             Jan Sjodin  <jan.sjodin@amd.com>
16113
16114         PR tree-optimization/36181
16115         * tree-parloops.c (loop_has_vector_phi_nodes): New.
16116         (parallelize_loops): Don't parallelize when the loop has vector
16117         phi nodes.
16118
16119 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
16120             Sebastian Pop  <sebastian.pop@amd.com>
16121
16122         * tree-loop-linear.c (gather_interchange_stats): Look in the access
16123         matrix, and never look at the tree representation of the memory
16124         accesses.
16125         (linear_transform_loops): Computes parameters and access matrices.
16126         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
16127         when fails.
16128         (access_matrix_get_index_for_parameter): New.
16129         * tree-data-ref.h (struct access_matrix): New.
16130         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
16131         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
16132         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
16133         am_vector_index_for_loop): New.
16134         (struct data_reference): Add field access_matrix.
16135         (DR_ACCESS_MATRIX): New.
16136         (compute_data_dependences_for_loop): Update declaration.
16137         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
16138         * lambda.h (lambda_vector_vec_p): Declared.
16139         * lambda-code.c: Depend on pointer-set.h.
16140         (lambda_collect_parameters_from_af, lambda_collect_parameters,
16141         av_for_af_base, av_for_af, build_access_matrix,
16142         lambda_compute_access_matrices): New.
16143         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
16144
16145 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
16146
16147         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
16148         $SOURCEDIR/include.
16149
16150 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
16151             Sebastian Pop  <sebastian.pop@amd.com>
16152
16153         PR tree-optimization/36206
16154         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
16155         FOLD_CONVERSIONS.
16156         (instantiate_scev_1): Rename flags to fold_conversions.
16157         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
16158         outeside instantiation_loop.
16159         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
16160         (evolution_function_is_affine_or_constant_p): Removed.
16161         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
16162         instantiate_scev.
16163         (analyze_siv_subscript): Pass in the loop nest number.
16164         Call evolution_function_is_affine_in_loop instead of
16165         evolution_function_is_affine_p.
16166         (analyze_overlapping_iterations): Pass in the loop nest number.
16167
16168 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
16169             Sebastian Pop  <sebastian.pop@amd.com>
16170
16171         PR tree-optimization/36206
16172         * tree-chrec.h (chrec_fold_op): New.
16173         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
16174         and other trees.
16175
16176 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
16177
16178         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
16179         (DIRS_EQ): New.
16180         (remove_duplicates): Do not set inode on non-inode systems.
16181         Use DIRS_EQ.
16182
16183 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
16184
16185         * config.gcc (tm_file): Update comments about relative pathnames.
16186
16187 2008-05-20  Richard Guenther  <rguenther@suse.de>
16188
16189         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
16190         * tree-ssa-sccvn.c (process_scc): Likewise.
16191         * tree-ssa-sink.c (execute_sink_code): Likewise.
16192         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
16193         * tree-vrp.c (process_assert_insertions): Likewise.
16194         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
16195         (perform_tree_ssa_dce): Likewise.
16196         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
16197         (dump_dominator_optimization_stats): Likewise.
16198         * tree-vectorizer.c (vectorize_loops): Likewise.
16199
16200 2008-05-20  Richard Guenther  <rguenther@suse.de>
16201
16202         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
16203
16204 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
16205
16206         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
16207         (ix86_i386elf_return_in_memory): Likewise.
16208         (ix86_i386interix_return_in_memory): Likewise.
16209         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
16210         (SUBTARGET_RETURN_IN_MEMORY): New.
16211         * config/i386/i386elf.h: Likewise.
16212         * config/i386/ptx4-i.h: Likewise.
16213         * config/i386/sol2-10.h: Likewise.
16214         * config/i386/sysv4.h: Likewise.
16215         * config/i386/vx-common.h: Likewise.
16216         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
16217         * config/i386/i386.c (ix86_return_in_memory): Made static and
16218         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
16219         (ix86_i386elf_return_in_memory): Removed.
16220         (ix86_i386interix_return_in_memory): Removed.
16221         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
16222         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
16223
16224 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
16225
16226         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
16227
16228 2008-05-19  Xinliang David Li  <davidxl@google.com>
16229
16230         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
16231         * opts.c: Ditto.
16232         * common.opt: Ditto.
16233         * doc/invoke.texi: Ditto.
16234
16235 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
16236
16237         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
16238         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
16239
16240 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
16241
16242         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
16243         sizes of operand array from 8/4 to 4/2.
16244         (ix86_expand_vector_init_general): Change size of operand array
16245         from 32 to 16.  Remove op0, op1 and half_mode.
16246
16247 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
16248
16249         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
16250         (ix86_expand_vector_init_interleave): Likewise.
16251         (ix86_expand_vector_init_general): Use them.  Assert
16252         word_mode == SImode when n_words == 4.
16253
16254 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
16255
16256         * config/i386/i386.c (ix86_secondary_reload): New static function.
16257         (TARGET_SECONDARY_RELOAD): New define.
16258         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
16259         * config/i386/i386.md (reload_outqi): Remove.
16260
16261 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16262
16263         PR middle-end/35509
16264         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
16265         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
16266         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
16267         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
16268         (fold_builtin_1): Likewise.
16269         * builtins.def (BUILT_IN_ISINF_SIGN): New.
16270         c-common.c (check_builtin_function_arguments): Handle
16271         BUILT_IN_ISINF_SIGN.
16272         * doc/extend.texi: Document __builtin_isinf_sign.
16273         * fold-const.c (operand_equal_p): Handle COND_EXPR.
16274
16275 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
16276
16277         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
16278         EH cleanup at the end of the pass, search for those that have been
16279         turned into forwarder blocks and do the cleanup on their successor.
16280
16281 2008-05-18  Richard Guenther  <rguenther@suse.de>
16282
16283         * tree-cfg.c (verify_gimple_expr): Allow conversions from
16284         pointers to sizetype and vice versa.
16285
16286 2008-05-18 Xinliang David Li   <davidxl@google.com>
16287
16288         * gcc/tree-ssa-dce.c: Coding style fix.
16289         (check_pow): Documentation comment.
16290         (check_log): Documenation comment. Coding style fix.
16291         (is_unnecessary_except_errno_call): Ditto.
16292         (gen_conditions_for_pow): Ditto.
16293         (gen_conditions_for_log): Ditto.
16294         (gen_shrink_wrap_conditions): Ditto.
16295         (shrink_wrap_one_built_in_calls): Ditto.
16296         * gcc/doc/invoke.texi: Better documentation string.
16297         * ChangeLog: Fix wrong change log entries from
16298         May 17 checkin on function call DCE.
16299
16300 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
16301
16302         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
16303
16304 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
16305
16306         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
16307         * df-problems.c (simulation routines): Fixed block comment to
16308         properly say how to add forwards scanning functions.
16309
16310 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
16311
16312         * tree-inline.c (setup_one_parameter): Remove dead code.
16313
16314 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
16315
16316         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
16317         a BIT_AND_EXPR only for an INTEGER_TYPE.
16318
16319 2008-05-17 Xinliang David Li   <davidxl@google.com>
16320
16321         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
16322         (check_pow, check_log, is_unnecessary_except_errno_call): New
16323         functions to check for eliminating math functions that are pure
16324         except for setting errno.
16325         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
16326         general condition expressions for shrink-wrapping pow/log calls.
16327         (gen_shrink_wrap_conditions): Ditto.
16328         (shrink_wrap_one_built_in_call): Ditto.
16329         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
16330         (mark_operand_necessary): If debugging, output if OP is necessary.
16331         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
16332         unnecessary.
16333         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
16334         opt level >= 2.
16335         * gcc/common.opt: New user flag -ftree-builtin-dce.
16336         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
16337
16338 2008-05-16  David S. Miller  <davem@davemloft.net>
16339
16340         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
16341         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
16342
16343 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
16344
16345         PR target/36246
16346         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
16347
16348 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
16349
16350         * ifcvt.c (dead_or_predicable): Rename
16351         df_simulate_one_insn_backwards to df_simulate_one_insn.
16352         * recog.c (peephole2_optimize): Ditto.
16353         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
16354         Ditto.
16355         * df.h: Rename df_simulate_one_insn_backwards to
16356         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
16357         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
16358         scanning of defs and uses.
16359         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
16360         (df_simulate_one_insn_forwards): Removed.
16361
16362 2008-05-16  Doug Kwan  <dougkwan@google.com>
16363
16364         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
16365         QNaN & SNaN.
16366         (real_from_string): Handle NaNs and Inf as approriate.
16367
16368 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
16369
16370         * doc/gty.texi (Source Files Containing Type Information): Note
16371         that headers should appear first in the gtfiles list.
16372
16373 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
16374
16375         * tree.def (COND_EXEC): Properly documented this code.
16376
16377 2008-05-16  Diego Novillo  <dnovillo@google.com>
16378
16379         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
16380         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
16381         the new field.
16382
16383 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
16384
16385         * tree-ssa-dse (max_stmt_uid): Removed.
16386         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
16387         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
16388         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
16389         * function.h (cfun.last_stmt_uid): New field.
16390         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
16391         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
16392         New functions.
16393         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
16394         (create_stmt_ann): Initialize the ann->uid field.
16395         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
16396         with new calls.
16397         * tree-flow.h (renumber_gimple_stmt_uids): New function.
16398
16399 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
16400
16401         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
16402         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
16403         (init_empty_tree_cfg): Call it.
16404
16405 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
16406
16407         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
16408         Update all users.
16409
16410 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
16411
16412         * doc/invoke.text (-fdump-tree-*-verbose): New option.
16413         * tree-dump.c (dump_options): New verbose option.
16414         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
16415         Add verbose dump.
16416         * tree-pass.h (TDF_VERBOSE): New dump flag.
16417         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
16418         (tree-flow.h): Added include.
16419         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
16420
16421 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
16422
16423         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
16424
16425         From Jie Zhang  <jie.zhang@analog.com>
16426         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
16427         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
16428         mcpu=bf561-none and mcpu=bf561-0.2.
16429         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
16430         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
16431         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
16432         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
16433         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
16434         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
16435         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
16436         option.
16437         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
16438         (cputype_selected): Remove.
16439         (bfin_handle_option): Don't use cputype_selected.
16440         (override_options): When no mcpu option, enable all workarounds.
16441         Don't use bfin_workarounds.
16442         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
16443         processor type.
16444         (DEFAULT_CPU_TYPE): Don't define.
16445
16446 2008-05-16  Richard Guenther  <rguenther@suse.de>
16447
16448         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
16449         on deletion of the last stmt.
16450
16451 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
16452
16453         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
16454         V8HImode for SSE2 and V16QImode for SSE4.1.
16455
16456 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
16457
16458         * cgraph.h (compute_inline_parameters): Made public.
16459         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
16460         variable_generate_summary, function_write_summary,
16461         variable_write_summary, variable_read_summary.  Added generate_summary,
16462         write_summary, read_summary.
16463         * cgraphunit.c (cgraph_process_new_functions): Changed call from
16464         pass_ipa_inline.function_generate_summary, to
16465         compute_inline_parameters.
16466         * ipa-inline.c (compute_inline_parameters): Made public and added
16467         node parameter.
16468         (compute_inline_parameters_for_current): New function.
16469         (pass_inline_param): Now calls compute_inline_parameters_for_current.
16470         (inline_generate_summary): Removed parameter and made to loop over
16471         all cgraph nodes.
16472         (pass_ipa_inline): Updated for new IPA_PASS structure.
16473         * passes.c (execute_ipa_summary_passes): Now is called once per
16474         pass rather than once per node*pass.
16475
16476 2008-05-15  Anatoly Sokolov <aesok@post.ru>
16477
16478         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
16479         avr_have_mul_p, avr_asm_only_p): Remove variables.
16480         (avr_override_options): Remove initialization of removed variables.
16481         (avr_file_start):  Convert removed variables to fields of
16482         'struct base_arch_s *avr_current_arch'.
16483         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
16484         (AVR_HAVE_MUL): (Ditto.).
16485         (AVR_HAVE_MOVW): (Ditto.).
16486         (AVR_HAVE_LPMX): (Ditto.).
16487         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
16488         avr_asm_only_p): Remove declaration.
16489
16490 2008-05-15  Diego Novillo  <dnovillo@google.com>
16491
16492         * config/arm/arm.c (arm_return_in_memory): Fix return type.
16493         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
16494
16495 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
16496
16497         PR middle-end/36194
16498         * combine.c (check_conversion): Rename back to check_promoted_subreg.
16499         Don't call record_truncated_value from here.
16500         (record_truncated_value): Turn it into a for_each_rtx callback.
16501         (record_truncated_values): New function.
16502         (combine_instructions): Call note_uses with record_truncated_values.
16503         Change name of check_conversion to check_promoted_subreg.
16504
16505 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
16506
16507         * doc/sourcebuild.texi: Document support for torture tests.
16508
16509 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
16510
16511         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
16512         to alternative 4 of operand 2.
16513
16514 2008-05-15  Richard Guenther  <rguenther@suse.de>
16515
16516         * tree-pass.h (current_pass): Declare.
16517         (get_pass_for_id): Likewise.
16518         * passes.c (passes_by_id, passes_by_id_size): New globals.
16519         (set_pass_for_id): New function.
16520         (get_pass_for_id): Likewise.
16521         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
16522         (execute_function_todo): Flush per function statistics.
16523         * toplev.c (compile_file): Init statistics.
16524         (general_init): Do early statistics initialization.
16525         (finalize): Finish statistics.
16526         * statistics.h (statistics_early_init): Declare.
16527         (statistics_init): Likewise.
16528         (statistics_fini): Likewise.
16529         (statistics_fini_pass): Likewise.
16530         (statistics_counter_event): Likewise.
16531         (statistics_histogram_event): Likewise.
16532         * statistics.c: New file.
16533         * Makefile.in (OBJS-common): Add statistics.o.
16534         (statistics.o): Add dependencies.
16535         * doc/invoke.texi (-fdump-statistics): Document.
16536
16537         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
16538         (insert): Likewise.
16539         (execute_pre): Use statistics_counter_event.
16540         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
16541         (substitute_and_fold): Increment it.  Use statistics_counter_event.
16542
16543 2008-05-15  Diego Novillo  <dnovillo@google.com>
16544
16545         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
16546
16547         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
16548         * tree-ssa-alias.c (new_type_alias): Remove references to
16549         sub-variables from comment.
16550         * tree-ssa-operands.c (swap_tree_operands): Likewise.
16551
16552 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
16553
16554         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
16555         attribute to 1 only for insertps alternative.
16556
16557 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
16558
16559         * config/bfin/bfin.md (loadbytes): New pattern.
16560         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
16561         (bfin_init_builtins): Initialize it.
16562         (bdesc_1arg): Add it.
16563
16564 2008-05-15  Sa Liu  <saliu@de.ibm.com>
16565
16566         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
16567         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
16568         * testsuite/lib/target-supports.exp: Add
16569         check_effective_target_fortran_integer_16.
16570
16571 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
16572
16573         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
16574         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
16575         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
16576         (TARGET_RETURN_IN_MEMORY): Define.
16577
16578 2008-05-15  Richard Guenther  <rguenther@suse.de>
16579
16580         PR middle-end/36244
16581         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
16582         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
16583         represent unmodifiable vars.
16584
16585 2008-05-15  Richard Guenther  <rguenther@suse.de>
16586
16587         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
16588         INDIRECT_REF and TARGET_MEM_REF.
16589         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
16590         TARGET_MEM_REF.
16591
16592 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
16593             H.J. Lu  <hongjiu.lu@intel.com>
16594
16595         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
16596         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
16597         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
16598         insn alternatives.  Add missing alternatives.
16599         (*vec_concatv2di_rex64_sse4_1): Likewise.
16600         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
16601         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
16602         Require TARGET_SSE.
16603
16604 2008-05-15  Richard Guenther  <rguenther@suse.de>
16605
16606         PR tree-optimization/36009
16607         PR tree-optimization/36204
16608         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
16609         (determine_invariantness_stmt): Record the loop a store is
16610         always executed in.
16611         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
16612         dependency.
16613
16614 2008-05-15  Richard Guenther  <rguenther@suse.de>
16615
16616         PR tree-optimization/34330
16617         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
16618         through the pointer will alias the SMT.
16619
16620 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
16621
16622         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
16623
16624 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
16625
16626         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
16627
16628 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
16629             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
16630
16631         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
16632         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
16633         (vashl_optab): New optab for vector/vector shifts.
16634         (vashr_optab): Ditto.
16635         (vlshr_optab): Ditto.
16636         (vrotl_optab): Ditto.
16637         (vrotr_optab): Ditto.
16638         (optab_subtype): New enum for optab_for_tree_code call.
16639         (optab_for_tree_code): Add enum optab_subtype argument.
16640
16641         * optabs.c (optab_for_tree_code): Take an additional argument to
16642         distinguish between a vector shift by a scalar and vector shift by
16643         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
16644         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
16645         vector shift by a vector.
16646         (expand_widen_pattern_expr): Pass additional argument to
16647         optab_for_tree_code.
16648
16649         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
16650         vrotl_optab, vrotr_optab.
16651
16652         * expr.c (expand_expr_real_1): Update calls to
16653         optab_for_tree_code to distinguish between vector shifted by a
16654         scalar and vector shifted by a vector.
16655         * tree-vectorizer.c (supportable_widening_operation): Ditto.
16656         (supportable_narrowing_operation): Ditto.
16657         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
16658         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
16659         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
16660         (vect_create_epilog_for_reduction): Ditto.
16661         (vectorizable_reduction): Ditto.
16662         (vectorizable_operation): Ditto.
16663         (vect_strided_store_supported): Ditto.
16664         (vect_strided_load_supported): Ditto.
16665         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
16666         * expmed.c (expand_shift): Ditto.
16667
16668         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
16669         scalar type.
16670         (ashr@var{m}3): Ditto.
16671         (vashl@var{m}3): Document new vector/vector shift standard name.
16672         (vashr@var{m}3): Ditto.
16673         (vlshr@var{m}3): Ditto.
16674         (vrotl@var{m}3): Ditto.
16675         (vrotr@var{m}3): Ditto.
16676
16677         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
16678         (PPERM_INVERT): Ditto.
16679         (PPERM_REVERSE): Ditto.
16680         (PPERM_REV_INV): Ditto.
16681         (PPERM_ZERO): Ditto.
16682         (PPERM_ONES): Ditto.
16683         (PPERM_SIGN): Ditto.
16684         (PPERM_INV_SIGN): Ditto.
16685         (PPERM_SRC1): Ditto.
16686         (PPERM_SRC2): Ditto.
16687
16688         * config/i386/sse.md (mulv2di3): Add SSE5 support.
16689         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
16690         allows a memory operand to be the value being added, and split it
16691         to improve vectorization.
16692         (sse5_pmacsdqh_mem): Ditto.
16693         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
16694         (sse5_mulv2div2di3_high): Ditto.
16695         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
16696         (vec_pack_trunc_v4si): Ditto.
16697         (vec_pack_trunc_v2di): Ditto.
16698         (sse5_pcmov_<mode>): Remove code that tried to use use
16699         andps/andnps instead of pcmov.
16700         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
16701         pmacsdqh instructions.
16702         (vec_widen_smult_lo_v4si): Ditto.
16703
16704         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
16705         (PPERM_INVERT): Ditto.
16706         (PPERM_REVERSE): Ditto.
16707         (PPERM_REV_INV): Ditto.
16708         (PPERM_ZERO): Ditto.
16709         (PPERM_ONES): Ditto.
16710         (PPERM_SIGN): Ditto.
16711         (PPERM_INV_SIGN): Ditto.
16712         (PPERM_SRC1): Ditto.
16713         (PPERM_SRC2): Ditto.
16714         (ix86_expand_sse_movcc): Move the SSE5 test after the if
16715         true/false tests.
16716         (ix86_expand_int_vcond): If SSE5 generate all possible integer
16717         comparisons.
16718         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
16719         says ignore whether the last reference is a memory operand.
16720
16721 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
16722             Paolo Bonzini <bonzini at gnu dot org>
16723
16724         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
16725         shift patterns.
16726
16727         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
16728         (vlshr<mode>3): Rename from vlshr<mode>3.
16729         (vashr<mode>3): Rename from vashr<mode>3.
16730         (mulv4sf3): Change the names of vector shift patterns.
16731         (mulv4si3): Ditto.
16732         (negv4sf2): Ditt.
16733
16734         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
16735         shift insns.
16736
16737         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
16738         (SI_SHLHI): Ditto.
16739         (SI_SHL): Ditto.
16740         (SI_SHLI): Ditto.
16741         (SI_ROTH): Ditto.
16742         (SI_ROTHI): Ditto.
16743         (SI_ROT): Ditto.
16744         (SI_ROTI): Ditto.
16745         (SPU_RL_0): Ditto.
16746         (SPU_RL_1): Ditto.
16747         (SPU_RL_2): Ditto.
16748         (SPU_RL_3): Ditto.
16749         (SPU_RL_4): Ditto.
16750         (SPU_RL_5): Ditto.
16751         (SPU_RL_6): Ditto.
16752         (SPU_RL_7): Ditto.
16753         (SPU_SL_0): Ditto.
16754         (SPU_SL_1): Ditto.
16755         (SPU_SL_2): Ditto.
16756         (SPU_SL_3): Ditto.
16757         (SPU_SL_4): Ditto.
16758         (SPU_SL_5): Ditto.
16759         (SPU_SL_6): Ditto.
16760         (SPU_SL_7): Ditto.
16761
16762         * config/spu/spu.md (v): New iterator macro to add v for vector types.
16763         (floatunssidf2_internal): Change vector/vector shift names.
16764         (floatunsdidf2_internal): Ditto.
16765         (mulv8hi3): Ditto.
16766         (ashrdi3): Ditto.
16767         (ashrti3): Ditto.
16768         (cgt_df): Ditto.
16769         (cgt_v2df): Ditto.
16770         (dftsv): Ditto.
16771         (vashl<mode>3): Rename from ashl<mode>3.
16772         (vashr<mode>3): Rename from ashr<mode>3.
16773         (vlshr<mode>3): Rename from lshr<mode>3.
16774         (vrotl<mode>3): Rename from rotl<mode>3.
16775
16776 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
16777
16778         PR target/36224
16779         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
16780         multiply gives the wrong value when doing widening multiplies.
16781         (vec_widen_smult_lo_v4si): Ditto.
16782
16783 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
16784
16785         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
16786         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
16787         emit_library_call_value.
16788         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
16789         * tree.h (ECF_LIBCALL_BLOCK): Removed.
16790         * calls.c (initialize_argument_information, precompute_arguments,
16791         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
16792         (precompute_arguments): Removed flags parameter.
16793         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
16794
16795 2008-05-14  Richard Guenther  <rguenther@suse.de>
16796
16797         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
16798         Make sure to register the store if the use is a PHI_NODE.
16799
16800 2008-05-14  Olivier Hainque  <hainque@adacore.com>
16801
16802         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
16803         memory if the component is to be referenced in BLKmode according
16804         to get_inner_reference.
16805
16806 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
16807
16808         * calls.c (emit_library_call_value_1): Restore code clearing
16809         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
16810
16811 2008-05-14  Olivier Hainque  <hainque@adacore.com>
16812             Nicolas Roche  <roche@adacore.com>
16813
16814         * configure.ac: Add support for a "gcc_subdir" variable in
16815         config-lang.in, to denote a subdirectory where the language/GCC
16816         integration files are to be found.
16817         * configure: Regenerate.
16818
16819 2008-05-14  Ira Rosen  <irar@il.ibm.com>
16820
16821         PR tree-optimization/36098
16822         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
16823         value for the first load in the group in case of a gap.
16824         (vect_build_slp_tree): Check that there are no gaps in loads.
16825
16826 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
16827
16828         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
16829         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
16830         expand_copysign_bit, ): Change call to emit_no_conflict_block to
16831         emit_insn and remove unneeded code to construct extra args.
16832         (emit_no_conflict_block): Removed.
16833         * optabls.h: (emit_no_conflict_block): Removed.
16834         * cse.c (cse_extended_basic_block): Remove search for
16835         REG_NO_CONFLICT note.
16836         * global.c: Removed incorrect comment added in revision 117.
16837         * expr.c (convert_move): Change call to emit_no_conflict_block to
16838         emit_insn.
16839         * recog.c: Change comments so that they do not mention
16840         REG_NO_CONFLICT.
16841         * local_alloc.c (combine_regs): Removed last parameter.
16842         (no_conflict_p): Removed.
16843         (block_alloc): Removed note, no_conflict_combined_regno and set
16844         local vars. Removed all code to process REG_NO_CONFLICT blocks.
16845         (combine_regs): Removed already_dead and code to look for
16846         REG_NO_CONFLICT notes.
16847         * lower_subreg (remove_retval_note): Removed code to look for
16848         REG_NO_CONFLICT block.
16849         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
16850         (resolve_clobber): Remove code to process libcalls that have
16851         REG_NO_CONFLICT notes.
16852         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
16853         case.
16854         * combine.c (can_combine_p, distribute_notes):  Removed
16855         REG_NO_CONFLICT case.
16856         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
16857         to emit_insns.
16858         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
16859         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
16860         Ditto.
16861         * reg-notes.def (NO_CONFLICT): Removed.
16862
16863 2008-05-14  David S. Miller  <davem@davemloft.net>
16864
16865         * config/sparc/sparc.c (sparc_profile_hook): If
16866         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
16867         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
16868         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
16869
16870 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
16871
16872         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
16873
16874 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
16875
16876         PR target/36222
16877         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
16878         and op1 expansion before vector concat to have less live pseudos.
16879
16880 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
16881
16882         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
16883         ix86_expand_vector_set if supported.
16884
16885 2008-05-13  Diego Novillo  <dnovillo@google.com>
16886             Kenneth Zadeck  <zadeck@naturalbridge.com>
16887
16888         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
16889
16890         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
16891         phinodes_print_statistics, init_ssanames, fini_ssanames,
16892         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
16893         release_ssa_name, release_defs, replace_ssa_name_symbol,
16894         ssanames_print_statistics): Move ...
16895         * tree-flow.h: ... here.
16896         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
16897         Use FN instead of cfun.
16898         (make_ssa_name_fn): Rename from make_ssa_name.
16899         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
16900         * tree-flow-inline.h (make_ssa_name): Move from
16901         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
16902         * omp-low.c (expand_omp_parallel):
16903         * tree-flow-inline.h (redirect_edge_var_map_result):
16904         * tree-ssa.c (init_tree_ssa): Add argument FN.
16905         Use it instead of cfun.  Update all users.
16906
16907 2008-05-13  Tom Tromey  <tromey@redhat.com>
16908
16909         PR preprocessor/22168:
16910         * doc/cpp.texi (Top): Update menu.
16911         (Alternatives to Wrapper #ifndef): New node.
16912         (Other Directives): Document deprecation.
16913         (Obsolete Features): Remove menu.
16914         (Assertions): Merge node into Obsolete Features.
16915         (Obsolete once-only headers): Move earlier; rename to Alternatives
16916         to Wrapper #ifndef.
16917         * doc/cppopts.texi: Update.
16918         * c.opt (Wdeprecated): Enable for C and ObjC.
16919         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
16920         (C++ Dialect Options): Move -Wno-deprecated from here to...
16921         (Warning Options): ... here.
16922
16923 2008-05-13  Richard Guenther  <rguenther@suse.de>
16924
16925         PR middle-end/36227
16926         * fold-const.c (fold_sign_changed_comparison): Do not allow
16927         changes in pointer-ness.
16928
16929 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
16930
16931         PR target/24713
16932         * config/sh/sh.c (sh_expand_prologue): Don't clear
16933         RTX_FRAME_RELATED_P for push insns.
16934
16935 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
16936
16937         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
16938
16939 2008-05-12  Anatoly Sokolov <aesok@post.ru>
16940
16941         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
16942         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
16943         Use 'machine->is_leaf' instead of 'leaf_func_p'.
16944
16945 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
16946
16947         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
16948         (*vec_concatv4sf_sse): This.
16949         (*sse2_concatv2si): Renamed to ...
16950         (*vec_concatv2si_sse2): This.
16951         (*sse1_concatv2si): Renamed to ...
16952         (*vec_concatv2si_sse): This.
16953         (*vec_concatv2di_rex): Renamed to ...
16954         (*vec_concatv2di_rex64): This.
16955         (*vec_concatv2si_sse4_1): New.
16956         (*vec_concatv2di_rex64_sse4_1): Likewise.
16957
16958 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
16959
16960         PR rtl-optimization/36111
16961         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
16962         that was created for swappable operands.
16963
16964 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
16965
16966         PR ada/36001
16967         * Makefile.in: Substitute GNATMAKE and GNATBIND.
16968         * configure.ac: Add call to ACX_PROG_GNAT.
16969
16970 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
16971
16972         * optc-gen.awk: Fix comment typo.
16973
16974 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
16975
16976         * pretty-print.c (pp_integer_with_precision): Use
16977         HOST_LONG_LONG_FORMAT.
16978
16979 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
16980
16981         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
16982
16983 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
16984
16985         * config/i386/i386.c (bdesc_ptest): Removed.
16986         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
16987         (bdesc_args): Add __builtin_ia32_ptestz128,
16988         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
16989         (ix86_init_mmx_sse_builtins): Updated.
16990         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
16991         (ix86_expand_builtin): Updated.
16992
16993 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
16994
16995         * tree-cfg.c (valid_fixed_convert_types_p): New function.
16996         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
16997
16998 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
16999
17000         * value-prof.c (interesting_stringop_to_profile): Do not
17001         return early for BUILT_IN_MEMPCPY.
17002
17003 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
17004
17005         * calls.c (expand_call): Don't use callgraph to increase
17006         preferred_stack_boundary.
17007
17008         * cgraph.h (cgraph_rtl_info): Use unsigned on
17009         preferred_incoming_stack_boundary.
17010
17011         * final.c (rest_of_clean_state): Use unsigned on
17012         preferred_stack_boundary.
17013
17014 2008-05-09  Tom Tromey  <tromey@redhat.com>
17015
17016         PR preprocessor/22231:
17017         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
17018         proceeding.
17019
17020 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
17021
17022         PR tree-optimization/36129
17023         * tree-ssa-ccp.c: Include value-prof.h.
17024         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
17025         built-in function was folded to a constant.
17026         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
17027
17028 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
17029             Sebastian Pop  <sebastian.pop@amd.com>
17030
17031         * tree-scalar-evolution.c: Document instantiate_scev.
17032         (instantiate_parameters_1): Renamed instantiate_scev_1.
17033         Don't use the same loop for instantiation_loop and evolution_loop.
17034         (instantiate_scev): New.
17035         (instantiate_parameters): Moved...
17036         (resolve_mixers): Update call to instantiate_scev_1 to pass the
17037         same loop twice.  Maintains the semantics for this function.
17038         * tree-scalar-evolution.h (instantiate_scev): Declare.
17039         (instantiate_parameters): ...here.  Now static inline.
17040         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
17041         instead of resolve_mixers.
17042
17043 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
17044
17045         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
17046
17047 2008-05-09  Tomas Bily  <tbily@suse.cz>
17048
17049         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
17050         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
17051         * tree-ssa-structalias.c (get_constraint_for): Likewise.
17052         * c-common.c (c_common_truthvalue_conversion): Likewise.
17053         * tree-object-size.c (compute_object_offset): Likewise.
17054         * tree-inline.c (estimate_num_insns_1): Likewise.
17055         * varasm.c (const_hash_1, compare_constant, copy_constant)
17056         (compute_reloc_for_constant, output_addressed_constants)
17057         (initializer_constant_valid_p): Likewise.
17058         * c-omp.c (check_omp_for_incr_expr): Likewise.
17059         * gimplify.c (gimplify_expr): Likewise.
17060         * c-typeck.c (c_finish_return): Likewise.
17061         * tree-vectorizer.c (supportable_widening_operation)
17062         (supportable_narrowing_operation): Likewise.
17063         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
17064         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
17065         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
17066         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
17067         (descr_info_loc): Likewise.
17068         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
17069         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
17070         (fold_unary): Likewise.
17071         * builtins.c (get_pointer_alignment): Likewise.
17072         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
17073         (instantiate_parameters_1): Likewise.
17074         * tree.c (expr_align, stabilize_reference): Likewise.
17075         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
17076         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
17077         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
17078         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
17079         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
17080         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
17081         Likewise.
17082         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
17083         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
17084         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
17085         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
17086         (forward_propagate_comparison)
17087         (tree_ssa_forward_propagate_single_use_vars): Likewise.
17088         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
17089         * emit-rtl.c (component_ref_for_mem_expr)
17090         (set_mem_attributes_minus_bitpos): Likewise.
17091         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
17092         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
17093         Likewise.
17094         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
17095         (build_function_call, pointer_diff, build_compound_expr)
17096         (c_finish_return): Likewise.
17097         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
17098         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
17099         Likewise.
17100         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
17101         * expr.c (is_aligning_offset): Likewise.
17102         * tree-ssa-alias.c (is_escape_site): Likewise.
17103         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
17104         (check_all_va_list_escapes): Likewise.
17105         * tree-ssa-loop-ivopts.c (determine_base_object)
17106         (determine_common_wider_type): Likewise.
17107         * dojump.c (do_jump): Likewise.
17108         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
17109         * tree-gimple.c (is_gimple_cast): Likewise.
17110         * fold-const.c (decode_field_reference, )
17111         (fold_sign_changed_comparison, fold_unary, fold_comparison)
17112         (fold_binary): Likewise.
17113         * tree-ssa-alias-warnings.c (find_alias_site_helper)
17114         (already_warned_in_frontend_p): Likewise.
17115         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
17116         * tree.c (really_constant_p, get_unwidened): Likewise.
17117         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
17118         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
17119         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
17120         Likewise.
17121         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
17122         CONVERT_EXPR_P.
17123         (CONVERT_EXPR_P): Define.
17124         (CASE_CONVERT): Define.
17125
17126 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
17127
17128         PR middle-end/36117
17129         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
17130         (delete_unmarked_insns): When deleting a call, call
17131         delete_unreachable_blocks.
17132         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
17133         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
17134
17135 2008-05-08  Richard Guenther  <rguenther@suse.de>
17136
17137         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
17138         (-ftree-salias): Likewise.
17139         (salias-max-implicit-fields): Remove param documentation.
17140         (salias-max-array-elements): Likewise.
17141         * tree-pass.h (pass_create_structure_vars): Remove.
17142         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
17143         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
17144         * tree-ssa-alias.c (create_structure_vars): Remove.
17145         (gate_structure_vars): Likewise.
17146         (pass_create_structure_vars): Likewise.
17147         (gate_build_alias): Likewise.
17148         (pass_build_alias): Adjust to run always and dump the function.
17149         * common.opt (ftree-salias): Hide.
17150         * passes.c (init_optimization_passes): Remove
17151         pass_create_structure_vars, adjust comment.
17152         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
17153         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
17154         * opts.c (decode_options): Do not set flag_tree_salias.
17155         (common_handle_option): Add OPT_ftree_salias to the backward
17156         compatibility section.
17157
17158 2008-05-08  Richard Guenther  <rguenther@suse.de>
17159
17160         * tree-flow-inline.h (var_can_have_subvars): Move ...
17161         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
17162         * tree-flow.h (var_can_have_subvars): Remove.
17163         (push_fields_onto_fieldstack): Remove.
17164         (sort_fieldstack): Likewise.
17165         (struct fieldoff): Move ...
17166         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
17167         alias_set and base_for_components fields.
17168         (sort_fieldstack): Make static.
17169         (push_fields_onto_fieldstack): Likewise.  Remove code that
17170         handles anything but RECORD_TYPEs.  Remove alias_set and
17171         base_for_components handling.
17172         (create_variable_info_for): Adjust.
17173
17174 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
17175
17176         * common.opt (Wframe-larger-than=): Shorten the help message
17177         to one line.
17178         * doc/invoke.texi (Wframe-larger-than=): Add more description.
17179
17180 2008-05-08  Rafael Espíndola  <espindola@google.com>
17181
17182         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
17183         trap.
17184         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
17185         trap and that both operands are gimple values.
17186         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
17187         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
17188         is a fp operation.
17189
17190 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
17191
17192         * read-rtl.c (join_c_conditions): Return the first string if the
17193         two strings are equal.
17194
17195 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
17196
17197         * gensupport.h (pred_data): Add a "num_codes" field.
17198         (add_predicate_code): Declare.
17199         * gensupport.c (add_predicate_code): New function.
17200         (std_pred_table): Add an "allows_const_p" field.
17201         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
17202         Remove the (incomplete) list of such codes from the codes field.
17203         (init_predicate_table): Use add_predicate_code.  Add all
17204         RTX_CONST_OBJs if allows_const_p is true.
17205         * genrecog.c (process_define_predicate): Use add_predicate_code.
17206
17207 2008-05-08  David Daney  <ddaney@avtrex.com>
17208             Richard Sandiford  <rsandifo@nildram.co.uk>
17209
17210         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
17211         special case of constant zero operands.
17212         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
17213         old and new values.  Special case constant zero values.
17214         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
17215         fails.
17216         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
17217         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
17218
17219 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
17220
17221         PR target/36090
17222         * simplify-rtx.c (simplify_plus_minus): Create CONST of
17223         similar RTX_CONST_OBJ before CONST_INT.
17224
17225 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
17226
17227         * stmt.c (expand_stack_restore): Change sa mode if needed.
17228
17229 2008-05-08  Richard Guenther  <rguenther@suse.de>
17230
17231         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
17232         return type to bool.
17233         (ix86_sol10_return_in_memory): Likewise.
17234         (ix86_i386elf_return_in_memory): Likewise.
17235         (ix86_i386interix_return_in_memory): Likewise.
17236         * config/i386/i386.c (ix86_return_in_memory): Likewise.
17237         (ix86_sol10_return_in_memory): Likewise.
17238         (ix86_i386elf_return_in_memory): Likewise.
17239         (ix86_i386interix_return_in_memory): Likewise.
17240
17241 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
17242
17243         PR bootstrap/36180
17244         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
17245         fndecl argument.
17246         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
17247         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
17248         declared in front.
17249
17250 2008-05-08  Richard Guenther  <rguenther@suse.de>
17251
17252         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
17253         * tree-data-ref.h (struct dr_alias): Remove subvars field.
17254         (DR_SUBVARS): Remove.
17255         * tree-dfa.c (dump_subvars_for): Remove.
17256         (debug_subvars_for): Likewise.
17257         (dump_variable): Do not dump subvars.
17258         (remove_referenced_var): Do not remove subvars.
17259         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
17260         (lookup_subvars_for_var): Remove.
17261         (get_subvars_for_var): Likewise.
17262         (get_subvars_at): Likewise.
17263         (get_first_overlapping_subvar): Likewise.
17264         (overlap_subvar): Likewise.
17265         * tree-flow.h (subvar_t): Remove.
17266         (struct var_ann_d): Remove subvars field.
17267         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
17268         argument.  Remove special handling of SFTs.
17269         (compute_tag_properties): Likewise.
17270         (set_initial_properties): Likewise.
17271         (compute_call_clobbered): Likewise.
17272         (count_mem_refs): Likewise.
17273         (compute_memory_partitions): Likewise.
17274         (compute_flow_insensitive_aliasing): Likewise.
17275         (setup_pointers_and_addressables): Likewise.
17276         (new_type_alias): Likewise.
17277         (struct used_part): Remove.
17278         (used_portions): Likewise.
17279         (struct used_part_map): Likewise.
17280         (used_part_map_eq): Likewise.
17281         (used_part_map_hash): Likewise.
17282         (free_used_part_map): Likewise.
17283         (up_lookup): Likewise.
17284         (up_insert): Likewise.
17285         (get_or_create_used_part_for): Likewise.
17286         (create_sft): Likewise.
17287         (create_overlap_variables_for): Likewise.
17288         (find_used_portions): Likewise.
17289         (create_structure_vars): Likewise.
17290         * tree.def (STRUCT_FIELD_TAG): Remove.
17291         * tree.h (MTAG_P): Adjust.
17292         (struct tree_memory_tag): Remove base_for_components and
17293         unpartitionable flags.
17294         (struct tree_struct_field_tag): Remove.
17295         (SFT_PARENT_VAR): Likewise.
17296         (SFT_OFFSET): Likewise.
17297         (SFT_SIZE): Likewise.
17298         (SFT_NONADDRESSABLE_P): Likewise.
17299         (SFT_ALIAS_SET): Likewise.
17300         (SFT_UNPARTITIONABLE_P): Likewise.
17301         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
17302         (union tree_node): Remove sft field.
17303         * alias.c (get_alias_set): Remove special handling of SFTs.
17304         * print-tree.c (print_node): Remove handling of SFTs.
17305         * tree-dump.c (dequeue_and_dump): Likewise.
17306         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
17307         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
17308         * tree-predcom.c (set_alias_info): Do not set subvars.
17309         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
17310         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
17311         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
17312         (add_vars_for_offset): Remove.
17313         (add_virtual_operand): Remove special handling of SFTs.
17314         (add_call_clobber_ops): Likewise.
17315         (add_call_read_ops): Likewise.
17316         (get_asm_expr_operands): Likewise.
17317         (get_modify_stmt_operands): Likewise.
17318         (get_expr_operands): Likewise.
17319         (add_to_addressable_set): Likewise.
17320         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
17321         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
17322         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
17323         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
17324         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
17325         (tree_node_structure): Likewise.
17326         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
17327         handling of SFTs.
17328         (find_what_p_points_to): Likewise.
17329
17330 2008-05-08  Sa Liu  <saliu@de.ibm.com>
17331
17332         * config/spu/spu.md: Fixed subti3 pattern.
17333
17334 2008-05-08  Richard Guenther  <rguenther@suse.de>
17335
17336         PR middle-end/36154
17337         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
17338         sure to create a representative for trailing arrays for PTA.
17339
17340 2008-05-08  Richard Guenther  <rguenther@suse.de>
17341
17342         PR middle-end/36172
17343         * fold-const.c (operand_equal_p): Two objects which types
17344         differ in pointerness are not equal.
17345
17346 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
17347
17348         * calls.c (compute_argument_block_size): Add argument tree fndecl.
17349         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
17350         (emit_library_call_value_1): Add new variable fndecl initialized by
17351         NULL_TREE. It should be the decl type of orgfun, but this information
17352         seems not to be available here, so it uses the default calling abi.
17353         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
17354         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
17355         by TARGET_RETURN_IN_MEMORY.
17356         * config/i386/i386-interix.h: Likewise.
17357         * config/i386/i386.h: Likewise.
17358         * config/i386/i386elf.h: Likewise.
17359         * config/i386/ptx4-i.h: Likewise.
17360         * config/i386/sol2-10.h: Likewise.
17361         * config/i386/sysv4.h: Likewise.
17362         * config/i386/vx-common.h: Likewise.
17363         * config/cris/cris.h: Removed #if 0 clause.
17364         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
17365         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
17366         argument.
17367         (ix86_sol10_return_in_memory): Likewise.
17368         (ix86_i386elf_return_in_memory): New.
17369         (ix86_i386interix_return_in_memory): New.
17370         * config/mt/mt-protos.h (mt_return_in_memory): New.
17371         * config/mt/mt.c: Likewise.
17372         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
17373         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
17374         * config/bfin/bfin.h: Likewise.
17375         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
17376         argument.
17377         * config/bfin/bfin.c: Likewise.
17378         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
17379         * config/alpha/unicosmk.h: Likewise.
17380         * config/i386/cygming.h: Likewise.
17381         * config/iq2000/iq2000.h: Likewise.
17382         * config/mips/mips.h: Likewise.
17383         * config/mn10300/mn10300.h: Likewise.
17384         * config/rs6000/rs6000.h: Likewise.
17385         * config/score/score.h: Likewise.
17386         * config/spu/spu.h: Likewise.
17387         * config/v850/v850.h: Likewise.
17388         * defaults.h: Likewise.
17389         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
17390         * expr.c (emit_block_move): Adjust use of
17391         OUTGOING_REG_PARM_STACK_SPACE.
17392         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
17393         OUTGOING_REG_PARM_STACK_SPACE.
17394         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
17395
17396 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
17397
17398         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
17399         on OMP_RETURN for OMP_FOR.
17400
17401         PR debug/35896
17402         * dwarf2out.c (dw_expand_expr, common_check): Removed.
17403         (fortran_common): New function.
17404         (gen_variable_die): Call fortran_common instead of common_check,
17405         adjust for it returning tree instead of rtx.  Formatting.
17406
17407 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
17408
17409         PR rtl/7335
17410         PR rtl/33826
17411         * see.c (see_copy_insn): Copy new pure const attributes for new call.
17412         * c-decl.c (merge_decls): Ditto.
17413         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
17414         to RTL_CONST_OR_PURE_CALL_P.
17415         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
17416         Initialized DECL_LOOPING_CONST_PURE.
17417         (process_call_operands): Set tree_side_effects properly.
17418         * tree.h (TREE_READONLY_DECL_P): Removed.
17419         (DECL_IS_PURE): Renamed to DECL_PURE_P.
17420         (DECL_LOOPING_OR_CONST_P): New macro.
17421         (struct tree_function_decl): Added looping_const_or_pure_p.
17422         (ECF_*) Renumbered.
17423         (ECF_LOOPING_OR_CONST_P): New macro.
17424         * rtlanal.c (pure_const_p): Removed.
17425         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
17426         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
17427         to RTL_CONST_CALL_P.
17428         * ipa-pure-const.c (pure_const_state_e): Added looping field.
17429         (check_decl, check_tree, check_call, scan_function): Initialize
17430         looping.
17431         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
17432         (static_execute): Set looping true for recursive functions.
17433         Undo setting state to IPA_NEITHER for recursive functions.
17434         * cse.c (cse_insn):
17435         * ifcvt.c (noce_can_store_speculate_p): Changed
17436         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
17437         RTL_CONST_OR_PURE_CALL_P.
17438         * dse.c (scan_insn): Ditto.
17439         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
17440         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
17441         RTL_CONST_OR_PURE_CALL_P.
17442         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
17443         pure_call_p to RTL_CONST_CALL_P.
17444         * gimplify.c (gimplify_call_expr): Clear side effects for
17445         non-looping pure and constant calls.
17446         * calls.c (emit_call_1): Set rtl flags from ecf flags.
17447         (flags_from_decl_or_type): Set ecf flags from decl flags.
17448         (initialize_argument_information): Turn off
17449         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
17450         Change const to pure if callee_copies is true rather than just
17451         turning off const.
17452         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
17453         way of marking pure calls.
17454         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
17455         Remove hack that was supposed to fix pr7335 and remove old
17456         way of marking pure calls.
17457         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
17458         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
17459         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
17460         RTL_CONST_OR_PURE_CALL_P.
17461         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
17462         * loop-invariant.c (find_exits, find_invariant_bb): Changed
17463         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
17464         * sched-deps.c (schedule_analyze): Ditto.
17465         * rtl.h (struct rtx_def): Use call field, unchanging field, and
17466         return_val field of calls to represent pure and const function info.
17467         (CONST_OR_PURE_CALL_P): Deleted macro.
17468         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
17469         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
17470         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
17471         TREE_READONLY.
17472         * tree-optimize.c (execute_fixup_cfg): Added test for
17473         ECF_LOOPING_CONST_OR_PURE.
17474         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
17475         DECL_PURE_P.
17476         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
17477         effects for looping pure or const calls.
17478         (verify_gimple_expr): Added verification code.
17479         * config/alpha/alpha.c (alpha_legitimize_address,
17480         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
17481         RTL_CONST_CALL_P.
17482         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
17483         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
17484         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
17485         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
17486         RTL_CONST_OR_PURE_CALL_P.
17487         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
17488         and const calls to be deleted.
17489
17490 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
17491
17492         PR target/35714
17493         * config/i386/mmx.md (mmx_subv2sf3): New expander.
17494         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
17495         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
17496         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
17497         to handle nonimmediate operands.
17498         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
17499         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
17500         to handle nonimmediate operands.
17501         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
17502         (mmx_pmulhrwv4hi3): New expander.  Use
17503         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17504         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
17505         (sse2_umulv1siv1di3): New expander.  Use
17506         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17507         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
17508         (mmx_eq<mode>3): New expander.  Use
17509         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17510         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
17511         (mmx_uavgv8qi3): New expander.  Use
17512         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17513         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
17514         (mmx_uavgv4hi3): New expander.  Use
17515         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17516
17517         * config/i386/sse.md
17518         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
17519         to handle nonimmediate operands.
17520         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
17521         to handle nonimmediate operands.
17522         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
17523         to handle nonimmediate operands.
17524         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
17525         to handle nonimmediate operands.
17526         (sse2_unpckhpd_exp): New expander.  Use
17527         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17528         (sse2_unpcklpd_exp): New expander.  Use
17529         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17530         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
17531         to handle nonimmediate operands.
17532         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
17533         to handle nonimmediate operands.
17534         (*sse2_<plusminus_insn><mode>3): Rename from
17535         sse2_<plusminus_insn><mode>3 insn pattern.
17536         (sse2_<plusminus_insn><mode>3): New expander.  Use
17537         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17538         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
17539         (sse2_umulv2siv2di3): New expander.  Use
17540         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17541         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
17542         (sse4_1_mulv2siv2di3): New expander.  Use
17543         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17544         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
17545         (sse2_pmaddwd): New expander.  Use
17546         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17547         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
17548         (sse2_eq<mode>3): New expander.  Use
17549         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17550         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
17551         (sse4_1_eqv2di3): New expander.  Use
17552         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17553         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
17554         (sse2_uavgv16qi3): New expander.  Use
17555         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17556         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
17557         (sse2_uavgv16qi3): New expander.  Use
17558         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17559         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
17560         (sse2_uavgv8hi3): New expander.  Use
17561         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17562         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
17563         (ssse3_pmulhrswv8hi3): New expander.  Use
17564         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17565         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
17566         (ssse3_pmulhrswv4hi3): New expander.  Use
17567         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17568
17569         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
17570         (<sse>_vmmul<mode>3): Ditto.
17571         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
17572         (divv2df3): Ditto.
17573         (ssse3_pmaddubsw128): Use register_operand for operand 1.
17574         (ssse3_pmaddubsw): Ditto.
17575
17576         * config/i386/i386.c (struct_builtin_description)
17577         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
17578         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
17579         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
17580         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
17581         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
17582         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
17583         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
17584         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
17585         (ix86_fixup_binary_operands): Assert that src1
17586         and src2 must have the same mode when swapped.
17587         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
17588         and ix86_binary_operator_ok.  Do not force operands in registers
17589         when optimizing.
17590
17591 2008-05-07  Jan Hubicka  <jh@suse.cz>
17592
17593         * cgraph.c (dump_cgraph_node): Update.
17594         * cgraph.h (cgraph_local_info): Break out inline summary.
17595         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
17596         hook.
17597         * ipa-inline (inline_summary): New accestor function.
17598         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
17599         cgraph_decide_inlining, compute_inline_parameters): Update.
17600         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
17601
17602 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
17603
17604         Cleanup ColdFire scheduling support and add V4 pipeline model.
17605
17606         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
17607         (define_attr cpu): Add cfv4 value.
17608         (define_attr type, define_attr type1): Merge into a single 'type'
17609         attribute.  Update all uses.
17610         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
17611         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
17612         Update all uses.
17613         (define_attr opx_mem, define_attr opy_mem): Remove.
17614         (define_attr op_mem): Clean up, update comment.
17615         (define_attr size): Use specific values instead of general int.
17616         (define_attr guess, define_attr split): Remove.  Update all uses.
17617         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
17618         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
17619         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
17620         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
17621         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
17622         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
17623         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
17624         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
17625         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
17626         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
17627         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
17628         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
17629         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
17630         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
17631         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
17632         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
17633         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
17634         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
17635         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
17636         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
17637         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
17638         Update or set attributes.
17639         (stack_tie): New fake instruction.
17640
17641         * config/m68k/m68k.h (TUNE_CFV4): New macro.
17642         (m68k_sched_attr_size): Update declaration.
17643         (m68k_sched_attr_type2): Remove.
17644         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
17645         Declare new bypass predicates.
17646
17647         * config/m68k/m68k.c (m68k_sched_issue_rate,
17648         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
17649         implementations.
17650         (TARGET_SCHED_ISSUE_RATE,
17651         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
17652         (override_options): Handle scheduling for ColdFire V4 core.
17653         (m68k_expand_prologue): Emit stack_tie.
17654         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
17655         'OP_TYPE_FPN'.  Update all uses.
17656         (sched_guess_p): Remove.
17657         (sched_address_type): Handle symbolic addresses.
17658         (sched_get_operand): New static function.
17659         (sched_operand_type): Merge into sched_attr_op_type.
17660         (sched_attr_op_type): Handle FP registers, handle quick constants,
17661         update.
17662         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
17663         (m68k_sched_attr_size): Update.  Move logic to ...
17664         (sched_get_attr_size_int): New static function.
17665         (sched_get_opxy_mem_type): New static function.
17666         (m68k_sched_attr_op_mem): Update.
17667         (m68k_sched_attr_type2): Remove.
17668         (sched_cfv4_bypass_data): New static variable.
17669         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
17670         (m68k_sched_issue_rate): Implement scheduler hook.
17671         (struct _sched_ib: enabled_p): New field.
17672         (m68k_sched_variable_issue): Update.  Handle V4.
17673         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
17674         sched_dump_class_func_t, sched_dump_split_class,
17675         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
17676         sched_dump_dfa_class, m68k_sched_dump): Remove.
17677         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
17678         hook.
17679         (m68k_sched_init_global): Remove statisctics dumping, introduce
17680         sanity check that all instructions have pipeline reservations.  Handle
17681         ColdFire V4 core.
17682         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
17683         Handle ColdFire V4 core.
17684         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
17685         New static functions.
17686         (m68k_sched_address_bypass_p): New bypass predicate.
17687         (sched_get_indexed_address_scale): New static function.
17688         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
17689
17690         * cf.md: Update comments.
17691         (define_attr type2): Remove.  Use 'type' attribute instead.
17692         Update all uses.
17693         (cf_ib): Rename to cfv123_ib.  Update all uses.
17694         (cf_oep): Rename to cfv123_oep.  Update all uses.
17695         (cf_chr): Rename to cfv123_chr.  Update all uses.
17696         (cf_mem): Rename to cfv123_mem.  Update all uses.
17697         (cf_mac): Move to more appropriate place.
17698         (cfv123_guess): New automaton and cpu_unit.
17699         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
17700         Update uses of 'size' attribute.  Handle before reload scheduling.
17701         (cfv123_guess): New dummy reservation for unhandled instructions.
17702         (cfv4_*): Pipeline description of ColdFire V4 core.
17703         (ignore): New reservation to handle 'ignore' type.
17704
17705 2008-05-07  Ian Lance Taylor  <iant@google.com>
17706
17707         PR middle-end/36013
17708         * gimplify.c (find_single_pointer_decl_1): Don't look through
17709         indirections.
17710         (find_single_pointer_decl): Adjust comments.
17711
17712 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
17713
17714         PR middle-end/36137
17715         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
17716         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
17717
17718         PR middle-end/36106
17719         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
17720         integral type rather than floating point, then VIEW_CONVERT_EXPR
17721         to the floating point type.
17722
17723 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
17724
17725         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
17726         TFmode op0 to register.
17727
17728 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
17729
17730         * c-decl.c (grokdeclarator): Comment typo.
17731
17732 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
17733
17734         * tree-flow.h: Remove prototype for computed_goto_p.
17735         * tree-cfg.c (computed_goto_p): Make static.
17736
17737 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
17738
17739         PR target/35657
17740         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
17741         (contains_aligned_value_p): This.  Handle _Decimal128.
17742         (ix86_function_arg_boundary): Only align _Decimal128 to its
17743         natural boundary and handle it properly.
17744
17745 2008-05-06  Martin Jambor  <mjambor@suse.cz>
17746
17747         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
17748         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
17749         (ipcp_method_set_orig_node): Removed.
17750         (ipcp_cval_get_cvalue_type): Removed.
17751         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
17752         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
17753         (ipcp_cval_set_cvalue_type): Removed.
17754         (ipcp_cval_get_cvalue): Removed.
17755         (ipcp_cval_set_cvalue): Removed.
17756         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
17757         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
17758         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
17759         (ipcp_cval_meet): Renamed to ipa_lattice_meet
17760         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
17761         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
17762         (ipcp_get_ith_lattice): Changed parameters.
17763         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
17764         (ipcp_lattice_from_jfunc): Changed parameters.
17765         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
17766         (ipcp_method_cval_print): Added temporary variable info.
17767         (ipcp_redirect): Removed already unused local variable caller.
17768         (ipcp_redirect): New temporary variable orig_callee_info
17769         (ipcp_redirect): Removed newly unused local variable callee.
17770         (ipcp_redirect): Removed (a bit confusing) local variable type.
17771         (ipcp_insert_stage): Added local variable info.
17772         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
17773         renamed too
17774         (ipcp_formal_create): Removed.
17775         (ipcp_method_cval_set): Removed.
17776         (ipcp_propagate_stage): Renamed lattice variables.
17777         (ipcp_method_cval_set_cvalue_type): Removed.
17778         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
17779         (ipcp_print_all_lattices): Changed printed strings to refer to
17780         lattices rather than cvals.
17781         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
17782         (ipcp_propagate_const): Changed formal parameters.
17783         (build_const_val): Changed formal parameters.
17784         (ipcp_insert_stage): Removed useless variable cvalue
17785         (build_const_val): Changed formal parameters.
17786         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
17787         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
17788         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
17789         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
17790         (ipcp_print_func_profile_counts): Changed string from "method" to
17791         "function"
17792         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
17793         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
17794         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
17795         (ipcp_structures_print): Renamed to ipcp_print_all_structures
17796         (ipcp_profile_print): Renamed to ipcp_print_profile_data
17797         (ipcp_lat_is_const): Changed parameters and made inline.
17798         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
17799         (ipcp_redirect): Renamed to ipcp_need_redirect_p
17800         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
17801         the predicate condition directly
17802         (ipcp_propagate_stage): Added local variable args. Removed local
17803         variable callee.  (Both are mere code simplifications.)
17804         (ipcp_method_dont_insert_const): Renamed to
17805         ipcp_node_not_modifiable_p.
17806         (ipcp_node_not_modifiable_p): Made inline.
17807         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
17808         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
17809         (ipcp_print_all_lattices): Removed variable cvalue
17810         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
17811         Updated comments.
17812
17813 2008-05-06  Olivier Hainque  <hainque@adacore.com>
17814
17815         * tree-sra.c (try_instantiate_multiple_fields): Early return
17816         if field has POINTER_TYPE.
17817
17818 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
17819
17820         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
17821         by using 'q' specifier for instruction.
17822         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
17823
17824 2008-05-06  Anatoly Sokolov <aesok@post.ru>
17825
17826         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
17827         Change mode of zero_extract from QImode to HImode.
17828         (sign bit tests peepholes): (Ditto.).
17829
17830 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
17831
17832         * config/i386/mmx.md: Remove double backslashes from asm templates.
17833         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
17834         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
17835         to handle nonimmediate operands.
17836         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
17837         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
17838         to handle nonimmediate operands.
17839         (*mmx_<code>v2sf3_finite): New insn pattern.
17840         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
17841         (mmx_<code>v2sf3): New expander.  Use
17842         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17843         (mmx_<plusminus_insn><mode>3): New expander.  Use
17844         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17845         (*mmx_<plusminus_insn><mode>3): New insn pattern.
17846         (mmx_add<mode>3): Removed.
17847         (mmx_ssadd<mode>3): Ditto.
17848         (mmx_usadd<mode>3): Ditto.
17849         (mmx_sub<mode>3): Ditto.
17850         (mmx_sssub<mode>3): Ditto.
17851         (mmx_ussub<mode>3): Ditto.
17852         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
17853         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
17854         to handle nonimmediate operands.
17855         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
17856         insn pattern.
17857         (mmx_smulv4hi3_highpart): New expander.  Use
17858         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17859         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
17860         insn pattern.
17861         (mmx_umulv4hi3_highpart): New expander.  Use
17862         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17863         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
17864         (mmx_<code>v4hi3): New expander.  Use
17865         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17866         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
17867         (mmx_<code>v8qi3): New expander.  Use
17868         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17869         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
17870         (mmx_<code><mode>3): New expander.  Use
17871         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17872
17873 2008-05-05  Jan Hubicka  <jh@suse.cz>
17874
17875         PR tree-optimization/36118
17876         * passes.c (pass_init_dump_file): Fix dump header.
17877
17878 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
17879
17880         PR middle-end/36141
17881         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
17882         VCE for function decls.
17883
17884 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
17885
17886         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
17887
17888 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
17889
17890         * config/i386/i386.md (sat_plusminus): New.
17891         (plusminus_insn): Likewise.
17892         (plusminus_mnemonic): Likewise.
17893         (addsub): Removed.
17894         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
17895         (*<addsub><mode>3_cc_overflow): Renamed to ...
17896         (*<plusminus_insn><mode>3_cc_overflow): This.
17897         (*<addsub>si3_zext_cc_overflow): Renamed to ...
17898         (*<plusminus_insn>si3_zext_cc_overflow): This.
17899
17900         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
17901         (<plusminus_insn><mode>3): This.
17902         (*<addsub><mode>3): Renamed to ...
17903         (*<plusminus_insn><mode>3): This.
17904         (<sse>_vm<addsub><mode>3): Renamed to ...
17905         (<sse>_vm<plusminus_insn><mode>3): This.
17906         (sse3_h<addsub>v4sf3): Renamed to ...
17907         (sse3_h<plusminus_insn>v4sf3): This.
17908         (sse3_h<addsub>v2df3): Renamed to ...
17909         (sse3_h<plusminus_insn>v2df3): This.
17910         (<plusminus_insn><mode>3): New.
17911         (*<plusminus_insn><mode>3): Likewise.
17912         (sse2_<plusminus_insn><mode>3): Likewise.
17913         (add<mode>): Removed.
17914         (*add<mode>3): Likewise.
17915         (sse2_ssadd<mode>3): Likewise.
17916         (sse2_usadd<mode>3): Likewise.
17917         (sub<mode>3): Likewise.
17918         (*sub<mode>3): Likewise.
17919         (sse2_sssub<mode>3): Likewise.
17920         (sse2_ussub<mode>3): Likewise.
17921
17922 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
17923
17924         * gthr-single.h: Add in required interface elements as per gthr.h.
17925         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
17926         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
17927         Generalize UNUSED macro.
17928         (__gthread_once): Add.
17929         (__gthread_key_create): Add.
17930         (__gthread_key_delete): Add.
17931         (__gthread_getspecific): Add.
17932         (__gthread_setspecific): Add.
17933
17934 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
17935
17936         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
17937         the same size types for the indirect reference on the rhs, then
17938         create a VCE.
17939
17940 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
17941
17942         * config/i386/i386.md
17943         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
17944         one insn template instead of template series.
17945         (*xordi_1_rex64): Ditto.
17946         (*xordi_2_rex64): Ditto.
17947
17948 2008-05-05  Ira Rosen  <irar@il.ibm.com>
17949
17950         PR tree-optimization/36119
17951         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
17952         in case of SLP.
17953
17954 2008-06-04  Jan Hubicka  <jh@suse.cz>
17955
17956         tree-optimization/36100
17957         * tree-pass.h (pass_O0_always_inline): Declare.
17958         * ipa-inline.c (inline_transform): Remove dead code.
17959         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
17960         pass_O0_always_inline): New.
17961         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
17962
17963 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
17964
17965         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
17966         mnemonic in this_param move for TARGET_64BIT.
17967
17968 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
17969
17970         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
17971         (*strmovsi_rex_1): Ditto.
17972         (*strsetsi_1): Ditto.
17973         (*strsetsi_rex_1): Ditto.
17974
17975         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
17976         adddicc expanders using SWI mode iterator.
17977
17978 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
17979
17980         PR target/36121
17981         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
17982         argument handling.
17983
17984 2008-05-04  David S. Miller  <davem@davemloft.net>
17985
17986         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
17987         (sparc*-*-linux*): Use linux.h in tm_file.
17988         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
17989         compiler defaulting to 32-bit.
17990         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
17991         no longer needed.
17992         * config/sparc/linux.h: Remove definitions now obtained
17993         properly from linux.h
17994         * config/sparc/linux64.h: Likewise.
17995         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
17996         don't want this setting for 32-bit builds in a biarch compiler.
17997         * doc/install.texi: Add sparc-linux to list of targets
17998         supporting --enable-targets=all.
17999
18000 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
18001
18002         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
18003
18004 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
18005
18006         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
18007         after V4SI_FTYPE_V8HI.
18008         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
18009         case V4SI_FTYPE_V2DF.
18010
18011 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
18012
18013         * doc/invoke.texi (max-flow-memory-locations): Removed.
18014         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
18015
18016 2008-05-03  Richard Guenther  <rguenther@suse.de>
18017
18018         PR middle-end/34973
18019         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
18020
18021 2008-05-02  David S. Miller  <davem@davemloft.net>
18022
18023         * config.gcc (need_64bit_hwint): Document libcpp dependency.
18024
18025 2008-05-02  Simon Baldwin <simonb@google.com>
18026
18027         PR bootstrap/36108
18028         * c-common.h (warn_array_subscript_range): Removed.
18029         * c-common.c (warn_array_subscript_range): Ditto.
18030         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
18031         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
18032
18033 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
18034
18035         * config/i386/i386.c (ix86_special_builtin_type): New.
18036         (bdesc_special_args): Likewise.
18037         (ix86_expand_special_args_builtin): Likewise.
18038         (ix86_init_mmx_sse_builtins): Updated.
18039         (ix86_expand_builtin): Updated.
18040         (ix86_expand_store_builtin): Removed.
18041         (ix86_expand_unop_builtin): Likewise.
18042
18043         * config/i386/mm3dnow.h (__v2sf): Moved to ...
18044         * config/i386/mmintrin.h (__v2sf): Here.
18045
18046         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
18047         const __v2sf.
18048         (_mm_loadl_pi): Likewise.
18049         (_mm_storeh_pi): Replace __v2si with __v2sf.
18050         (_mm_storel_pi): Likewise.
18051
18052         * doc/extend.texi: Correct __builtin_ia32_loadhps,
18053         __builtin_ia32_loadlps, __builtin_ia32_storehps,
18054         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
18055         __builtin_ia32_loadlpd.
18056
18057 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
18058
18059         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
18060         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
18061         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
18062         (ix86_init_mmx_sse_builtins): Updated.
18063         (ix86_expand_args_builtin): Likewise.
18064         (ix86_expand_builtin): Likewise.
18065         (ix86_expand_unop1_builtin): Renamed to ...
18066         (ix86_expand_unop_vec_merge_builtin): This.
18067
18068 2008-05-01  Jan Hubicka  <jh@suse.cz>
18069
18070         PR bootstrap/36100
18071         * ipa-inline.c (inline_generate_summary): Make static.
18072         (inline_transform): Do not call inlining at -O0; make static.
18073         * passes.c (execute_todo): Add sanity check.
18074         (execute_one_ipa_transform_pass): Execute proper flags.
18075
18076 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
18077
18078         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
18079         (DECL_NONADDRESSABLE_P): Likewise.
18080         * alias.c (record_component_aliases): Fix comment.
18081
18082 2008-05-01  Simon Baldwin <simonb@google.com>
18083
18084         * c-common.h (warn_array_subscript_range): New function.
18085         * c-common.c (warn_array_subscript_range): Ditto.
18086         * tree-vrp.c (check_array_ref): Corrected code to agree with
18087         comment, ignoring only arrays of size 0 or size 1.
18088         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
18089
18090 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
18091
18092         * config/i386/i386.c (ix86_builtin_type): Replace
18093         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
18094         (bdesc_args): Updated.
18095         (ix86_init_mmx_sse_builtins): Likewise.
18096         (ix86_expand_args_builtin): Likewise.
18097
18098         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
18099         with __v1di.
18100
18101         * doc/extend.texi: Correct __builtin_ia32_palignr.
18102
18103 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
18104
18105         PR target/36095
18106         * config/i386/i386.c (bdesc_crc32): Removed.
18107         (ix86_expand_crc32): Likewise.
18108         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
18109         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
18110         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
18111         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
18112         UINT_FTYPE_UINT_UCHAR.
18113         (bdesc_args): Updated. Add crc32 builtins.
18114         (ix86_init_mmx_sse_builtins): Updated.
18115         (ix86_expand_args_builtin): Updated to support subreg.
18116
18117         * doc/extend.texi: Correct __builtin_ia32_crc32di.
18118
18119 2008-05-01  Jan Hubicka  <jh@suse.cz>
18120
18121         * tree-pass.h (opt_pass): Add IPA_PASS.
18122         (varpool_node, cgraph_node): Forward declare.
18123         (ipa_opt_pass): Define.
18124         (pass_ipa_inline): Turn into ipa_opt_pass.
18125         (pass_apply_inline): Remove.
18126         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
18127         (apply_inline): Turn into ....
18128         (inline_transform): ... this one.
18129         (inline_generate_summary): New function.
18130         (pass_apply_inline): Remove.
18131         * function.h (ipa_opt_pass): Forward declare structure; typedef;
18132         vector.
18133         (struct function): Add ipa_transforms_to_apply.
18134         * passes.c (register_one_dump_file): Work on IPA_PASS.
18135         (init_optimization_passes): Remove pass_inline_parameters and
18136         pass_apply_inline.
18137         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
18138         (execute_one_pass) ... here; apply transforms when possible.
18139         (add_ipa_transform_pass, execute_ipa_summary_asses,
18140         execute_one_ipa_transform_pass): New.
18141         (execute_ipa_pass_list): Update for IPA_PASS type.
18142
18143 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
18144
18145         * config/i386/i386.c (ix86_builtin_type): Add
18146         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
18147         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
18148         (bdesc_args): Add SSE4a builtins.
18149         (ix86_init_mmx_sse_builtins): Updated.
18150         (ix86_expand_args_builtin): Likewise.
18151         (ix86_expand_builtin): Likewise.
18152
18153 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
18154
18155         * config/i386/i386.c (ix86_builtin_type): Add
18156         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
18157         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
18158         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
18159         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
18160         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
18161         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
18162         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
18163         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
18164         and DI_FTYPE_DI_DI_INT.
18165         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
18166         (ix86_init_mmx_sse_builtins): Updated.
18167         (ix86_expand_args_builtin): Likewise.
18168         (ix86_expand_builtin): Likewise.
18169         (ix86_expand_binop_imm_builtin): Removed.
18170
18171         * doc/extend.texi: Correct __builtin_ia32_palignr128.
18172
18173 2008-04-30  Richard Guenther  <rguenther@suse.de>
18174
18175         PR tree-optimization/32921
18176         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
18177
18178 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
18179
18180         * config/arm/arm.c (arm_unwind_emit): Use
18181         crtl->all_throwers_are_sibcalls instead of
18182         cfun->all_throwers_are_sibcalls.
18183         (arm_output_fn_unwind): Likewise.
18184         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
18185         instead of cfun->uses_pic_offset_table.
18186         (frv_expand_prologue): Likewise.
18187         (frv_frame_pointer_required): Likewise.
18188         (frv_expand_fdpic_call): Likewise.
18189         (frv_emit_movsi): Likewise.
18190         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
18191         cfun->returns_pcc_struct instead of
18192         current_function_returns_pcc_struct.
18193         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
18194         instead of cfun->calls_eh_return.
18195         (m32c_pushm_popm): Likewise.
18196         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
18197         "extern" declaration.
18198
18199 2008-04-30  Richard Guenther  <rguenther@suse.de>
18200
18201         PR tree-optimization/21636
18202         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
18203         constant address.
18204         (evaluate_stmt): Print the likely value.
18205         (ccp_visit_stmt): Avoid excessive vertical spacing.
18206
18207 2008-04-30  Rafael Espíndola  <espindola@google.com>
18208
18209         * builtins.c (fold_call_expr): Return realret.
18210         * tree-ssa-threadedge.c
18211         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
18212         __builtin_object_size.
18213
18214 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
18215
18216         * gcc.c (wrapper_string): New variable.
18217         (insert_wrapper): New function.
18218         (execute): New option -wrapper.
18219         * doc/invoke.texi (Overall Options): New driver option -wrapper.
18220
18221 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
18222
18223         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
18224         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
18225         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
18226         from...
18227         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
18228         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
18229         config/rs6000/e500crtres64gprctr.asm,
18230         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
18231         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
18232         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
18233         config/rs6000/e500crtsav64gprctr.asm,
18234         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
18235         config/rs6000/e500crtsavg64gprctr.asm: New files.
18236         * config/rs6000/t-ppccomm: Add build rules for new files.
18237         (LIB2FUNCS_STATIC_EXTRA): Add new files.
18238         * config/rs6000/t-netbsd: Add build rules for new files.
18239         (LIB2FUNCS_STATIC_EXTRA): New variable.
18240         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
18241         (CRTSAVRES_DEFAULT_SPEC): Likewise.
18242         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
18243
18244 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
18245
18246         * config/i386/i386.c (ix86_builtin_type): Add
18247         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
18248         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
18249         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
18250         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
18251         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
18252         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
18253         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
18254         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
18255         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
18256         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
18257         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
18258         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
18259         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
18260         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
18261         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
18262         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
18263         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
18264         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
18265         V1DI_FTYPE_V2SI_V2SI.
18266         (bdesc_2arg): Moved to ...
18267         (bdesc_args): Here.
18268         (ix86_init_mmx_sse_builtins): Updated.
18269         (ix86_expand_args_builtin): Updated.  Take a pointer
18270         to const struct builtin_description.  Handle comparison
18271         builtin functions.
18272         (ix86_expand_sse_compare): Take a new argument for swapping operands.
18273         (ix86_expand_builtin): Updated.
18274
18275         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
18276         (ssse3_pmaddubsw128): This.
18277         (ssse3_pmaddubswv4hi3): Renamed to ...
18278         (ssse3_pmaddubsw): This.
18279
18280         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
18281         (__builtin_ia32_packssdw128): Likewise.
18282         (__builtin_ia32_packuswb128): Likewise.
18283         (__builtin_ia32_pmaddubsw): Likewise.
18284         (__builtin_ia32_pmaddubsw128): Likewise.
18285
18286 2008-04-30  Richard Guenther  <rguenther@suse.de>
18287
18288         PR tree-optimization/14847
18289         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
18290         (recognize_bits_test): Use it.
18291         (recognize_single_bit_test): Likewise.
18292
18293 2008-04-30  Martin Jambor  <mjambor@suse.cz>
18294
18295         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
18296         instead of setting number of formal parameters to zero.
18297         (ipcp_init_stage): Do not set the number of actual parameters to zero
18298         either.
18299         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
18300         which are called with variable number of arguments.
18301         (ipcp_insert_stage): Explicitely skipping all nodes which are
18302         called with variable number of arguments.
18303         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
18304         number of parameters.
18305
18306         * ipa-prop.h (struct ipa_node_params): Added flag
18307         called_with_var_arguments
18308         (ipa_set_param_count): Added.  Changed sole setter to use it.
18309         (ipa_get_param_count): Added.  All readers of param_count
18310         converted to use it instead.
18311         (ipa_set_called_with_variable_arg): Added.
18312         (ipa_is_called_with_var_arguments): Added.
18313         (ipa_get_ith_param): Added.  All readers of param_decls converted
18314         to use it instead.
18315         (ipa_set_cs_argument_count): Added, sole writer to argument_count
18316         changed to use it.
18317         (ipa_get_cs_argument_count): Added, all readers of argument_count
18318         changed to cal it.
18319         (ipa_get_ith_jump_func): Added. Accessors of jump values changed
18320         to use it.
18321
18322         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
18323         (struct ipcp_lattice): Renamed cval_type to type
18324         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
18325
18326         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
18327         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
18328         (ipcp_insert_stage): Changed the type of variable cvalue to tree
18329         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
18330         (build_const_val): Changed the type of parameter cvalue to tree
18331         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
18332         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
18333
18334         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
18335         constant
18336
18337         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
18338         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
18339         (ipa_add_method): Renamed to ipa_push_func_to_list
18340         (ipa_remove_method): Renamed to ipa_pop_func_from_list
18341         (ipa_callsite_param_count): Removed.
18342         (ipa_callsite_param_count_set): Removed.
18343         (ipa_callsite_param): Removed.
18344         (ipa_callsite_callee): Removed.
18345         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
18346         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
18347         (ipa_method_formal_count): Removed.
18348         (ipa_method_formal_count_set): Removed.
18349         (ipa_method_get_tree): Removed.
18350         (ipa_method_tree_map_create): Removed.
18351         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
18352         (ipa_create_param_decls_array): Creates the array itself
18353         (ipa_create_param_decls_array): Temporary variable info instead of
18354         a few dereferences.
18355         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
18356         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
18357         (get_type): Removed.
18358         (ipa_jf_get_info_type): Removed.
18359         (ipa_node_create): Renamed to ipa_create_node_params
18360         (ipa_free): Renamed to ipa_free_all_node_params
18361         (ipa_nodes_create): Renamed to ipa_create_all_node_params
18362         (ipa_edges_create): Renamed to ipa_create_all_edge_args
18363         (ipa_edges_free): Renamed to ipa_free_all_edge_args
18364         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
18365         (ipa_free_all_node_params): Deallocation to jump_functions moved to
18366         ipa_free_all_edge_args
18367         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
18368         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
18369         (ipa_create_methodlist_node): Removed.
18370         (ipa_methodlist_method): Removed.
18371         (ipa_methodlist_method_set): Removed.
18372         (ipa_methodlist_next_method): Removed.
18373         (ipa_methodlist_next_method_set): Removed.
18374         (ipa_method_is_modified): Removed.
18375         (ipa_method_modify_create): Removed.
18376         (ipa_method_modify_init): Temporary variable info instead of a few
18377         dereferences.
18378         (ipa_detect_param_modifications): Temporary variable info instead of
18379         a few dereferences.
18380         (ipa_compute_jump_functions): Temporary variable info instead of
18381         a few dereferences.
18382         (ipa_method_modify_set): Removed.
18383         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
18384         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
18385         than craph_node as the first parameter.
18386         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
18387         (ipa_method_modify_init): Removed.
18388         (ipa_compute_jump_functions): Added a temp variable instead of
18389         repeatadly dereferencing the cgraph_edge.aux pointer
18390         (ipa_callsite_param_set_type): Removed.
18391         (ipa_compute_jump_functions): i renamed to index and moved to
18392         an inner block
18393         (ipa_callsite_param_set_info_type_formal): Removed.
18394         (ipa_callsite_param_set_info_type): Removed.
18395         (ipa_callsite_param_map_create): Removed.
18396         (ipa_callsite_tree): Removed.
18397         (ipa_callsite_caller): Removed.
18398         (ipa_pop_func_from_list): return_method removed to return_func
18399
18400         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
18401         prefixed all values with IPA_. Changed all users.
18402         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
18403         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
18404         and FORMAL_IPATYPE IPA_PASS_THROUGH.
18405         (union parameter_info): Renamed to jump_func_value.
18406         (union jump_func_value): Renamed value to constant
18407         (struct ipa_jump_func): Renamed info_type to value
18408         (struct ipa_node): Renamed to ipa_node_params
18409         (struct ipa_node_params): Renamed ipa_arg_num to param_count
18410         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
18411         (struct ipa_node_params): Renamed ipa_mod to modified_flags
18412         (struct ipa_edge): Renamed to ipa_edge_args
18413         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
18414         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
18415         (struct ipa_methodlist): Renamed to ipa_func_list
18416         (struct ipa_func_list): method_p renamed to node, next_method
18417         renamed to next
18418         (ipa_methodlist_p): Removed, switched all users to struct pointer
18419         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
18420
18421 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
18422
18423         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
18424         (rs6000_emit_epilogue): Use backchain to restore only when we
18425         have a large frame.  Make use of frame pointer to restore if we
18426         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
18427
18428 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
18429
18430         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
18431         Add mode to zero_extract.
18432         (sign bit tests peepholes): (Ditto.).
18433
18434 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
18435
18436         * config/i386/i386.c (ix86_builtins): Replace Prescott New
18437         Instructions in comments with SSE3.
18438         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
18439         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
18440         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
18441         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
18442         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
18443         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
18444         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
18445         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
18446         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
18447         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
18448         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
18449         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
18450         (bdesc_sse_args): Renamed to ...
18451         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
18452         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
18453         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
18454         IX86_BUILTIN_FABSQ.
18455         (bdesc_1arg): Moved to ...
18456         (bdesc_args): Here.
18457         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
18458         Instructions in comments with SSE3.
18459         (ix86_expand_sse_operands_builtin): Renamed to ...
18460         (ix86_expand_args_builtin): This.  Updated.
18461         (ix86_expand_unop1_builtin): Update comments.
18462         (ix86_expand_builtin): Updated.
18463
18464 2008-04-29  Richard Guenther  <rguenther@suse.de>
18465
18466         PR tree-optimization/36078
18467         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
18468         Update virtual SSA form after cleaning up the CFG.
18469
18470 2008-04-29  Richard Guenther  <rguenther@suse.de>
18471
18472         PR middle-end/15255
18473         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
18474
18475 2008-04-29  Richard Guenther  <rguenther@suse.de>
18476
18477         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
18478         (compute_may_aliases): Do not call finalize_ref_all_pointers.
18479         (compute_flow_insensitive_aliasing): Do not treat
18480         PTR_IS_REF_ALL pointers special.
18481         (get_smt_for): Likewise.
18482         (may_alias_p): Re-structure.
18483         (is_escape_site): A ref-all pointer conversion is not an escape site.
18484         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
18485         PTR_IS_REF_ALL pointers special.
18486         * tree-ssa-structalias.h (struct alias_info): Remove
18487         ref_all_symbol_mem_tag field.
18488         (PTR_IS_REF_ALL): Remove.
18489
18490 2008-04-29  Richard Guenther  <rguenther@suse.de>
18491
18492         PR middle-end/36077
18493         * fold-const.c (extract_muldiv_1): In combining division constants
18494         make sure to never overflow.
18495
18496 2008-04-29  Nick Clifton  <nickc@redhat.com>
18497
18498         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
18499
18500 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18501
18502         PR bootstrap/35169
18503         * optc-gen.awk: Work around HP-UX/IA awk bug.
18504
18505 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
18506
18507         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
18508         2008-04-25 commit.
18509
18510 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
18511
18512         PR target/36073
18513         * config/i386/i386.md
18514         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
18515         Change operand 1 predicate to nonimmediate_operand.
18516
18517 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
18518
18519         PR debug/36060
18520         * dwarf2out.c (struct die_struct): Mark as chain_circular through
18521         die_sub field.
18522         * gengtype.c (walk_type, write_func_for_structure): Handle
18523         chain_circular.
18524         * doc/gty.texi: Document chain_circular.
18525
18526 2008-04-28  Richard Guenther  <rguenther@suse.de>
18527
18528         PR tree-optimization/36066
18529         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
18530         SCEV and loop.
18531
18532 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
18533
18534         PR target/36064
18535         * config/i386/i386.md
18536         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
18537         Use match_scratch instead of match_operand for operands 3 and 4.
18538
18539 2008-04-27  Richard Guenther  <rguenther@suse.de>
18540
18541         PR tree-optimization/18754
18542         PR tree-optimization/34223
18543         * tree-pass.h (pass_complete_unrolli): Declare.
18544         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
18545         loop size before and after unconditionally of UL_NO_GROWTH in effect.
18546         Rewrite loop into loop closed SSA form if it is not already.
18547         (tree_unroll_loops_completely): Re-structure to iterate over
18548         innermost loops with intermediate CFG cleanups.
18549         Unroll outermost loops only if requested or the code does not grow
18550         doing so.
18551         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
18552         loops are available.
18553         (tree_vectorize): Instead do so here.
18554         (tree_complete_unroll): Also unroll outermost loops.
18555         (tree_complete_unroll_inner): New function.
18556         (gate_tree_complete_unroll_inner): Likewise.
18557         (pass_complete_unrolli): New pass.
18558         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
18559         uses outside of the loop.
18560         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
18561         form if it is available.
18562         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
18563         * passes.c (init_optimization_passes): Schedule complete inner
18564         loop unrolling pass before the first CCP pass after final inlining.
18565
18566 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
18567
18568         * targhooks.h (default_emutls_var_fields,
18569         default_emutls_var_init): Declare.
18570         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
18571         * target.h (struct gcc_target): Add struct emutls member.
18572         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
18573         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
18574         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
18575         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
18576         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
18577         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
18578         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
18579         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
18580         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
18581         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
18582         emit debug information.
18583         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
18584         * varasm.c: Include targhooks.h.
18585         (emutls_object_section, emutls_tmpl_section): New.
18586         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
18587         (EMUTLS_SEPARATOR): New.
18588         (prefix_name): New.
18589         (get_emutls_object_name): New.
18590         (default_emutls_var_fields): New, broken out of ...
18591         (get_emutls_object_type): ... here.  Adjust to use target hooks.
18592         (get_emutls_init_templ_addr): Adjust to use target hooks.
18593         (emutls_decl): Adjust to use target hooks.
18594         (emutls_finish): Likewise.
18595         (default_emutls_var_init): New, broken out of ...
18596         (assemble_variable): ... here.  Adjust to use target hooks.
18597         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
18598         SECCAT_EMUTLS_TMPL.
18599         * c-common.c (handle_section_attribute): Prevent overriding
18600         sections for emulated tls with special sections.
18601         * config/i386/i386.c (x86_64_elf_select_section): Add
18602         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
18603         (x86_64_elf_unique_section): Likewise.
18604         * config/vxworks.c: Include tree.h.
18605         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
18606         (vxworks_override_options): Set TLS scheme.
18607         * doc/tm.texi (Emulated TLS): New node.
18608
18609 2008-04-26  Simon Baldwin <simonb@google.com>
18610
18611         PR c/35652
18612         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
18613         with propagated string constants.
18614
18615 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
18616
18617         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
18618         constraint for operand 2 when operand 0 is memory operand.
18619         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
18620         operand 0 is memory operand.
18621         (fix_trunc<mode>_i387_with_temp): Ditto.
18622         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
18623         operand 2 when operand 1 is memory operand.
18624         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
18625         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
18626         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
18627         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
18628         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
18629         operands 2,3 and 4 when operand 1 is memory operand.
18630         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
18631         is memory operand.
18632         (fistdi2_floor_with_temp): Ditto.
18633         (fist<mode>2_floor_with_temp): Ditto.
18634         (fistdi2_ceil_with_temp): Ditto.
18635         (fist<mode>2_ceil_with_temp): Ditto.
18636         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
18637
18638 2008-04-26  David Daney  <ddaney@avtrex.com>
18639
18640         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
18641         unspec_volitile.
18642         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
18643         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
18644         UNSPEC_UPDATE_GOT_VERSION): Renumber.
18645         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
18646         (compare_and_swap_12): New insn.
18647         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
18648         * config/mips/mips.c (mips_force_binary): New function.
18649         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
18650         (mips_expand_compare_and_swap_12): New function.
18651         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
18652
18653 2008-04-25  Jan Hubicka  <jh@suse.cz>
18654
18655         PR testsuite/35843
18656         * cfgexpand.c (pass_expand): Turn into RTL pass.
18657         * passes.c (execute_one_pass): Do pass typechecking after execution.
18658         * tree-pass.h (pass_expand): Turn into RTL pass.
18659
18660         * function.h (struct rtl_data): Move here fields
18661         accesses_prior_frames, calls_eh_return, saves_all_registers,
18662         has_nonlocal_goto, has_asm_statement, is_thunk,
18663         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
18664         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
18665         arg_pointer_save_area_init from struct function; turn into bool.
18666         (struct function): Move
18667         calls_eh_return, saves_all_registers, has_nonlocal_goto,
18668         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
18669         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
18670         tail_call_emit, arg_pointer_save_area_init
18671         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
18672         (current_function_returns_struct, current_function_returns_pcc_struct,
18673         current_function_calls_setjmp, current_function_calls_alloca,
18674         current_function_accesses_prior_frames,
18675         current_function_calls_eh_return, current_function_is_thunk,
18676         current_function_stdarg, current_function_profile,
18677         current_function_limit_stack, current_function_uses_pic_offset_table,
18678         current_function_uses_const_pool, current_function_has_nonlocal_label,
18679         current_function_saves_all_registers,
18680         current_function_has_nonlocal_goto,
18681         current_function_has_asm_statement): Remove accesor macros.
18682         * ra-conflict.c (global_conflicts): Update.
18683         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
18684         (suitable_for_tail_call_opt_p): Update.
18685         * builtins.c (expand_builtin_return_addr): Update.
18686         (expand_builtin_setjmp_setup): Update.
18687         (expand_builtin_nonlocal_goto): Update.
18688         * final.c (final_start_function): Update.
18689         (profile_function): Update.
18690         (leaf_function_p): Update.
18691         (only_leaf_regs_used): Update.
18692         * df-scan.c (df_get_exit_block_use_set): Update.
18693         * dojump.c (clear_pending_stack_adjust): Update.
18694         * tree-stdarg.c (gate_optimize_stdarg): Update.
18695         * gimple-low.c (lower_function_body): Update.
18696         * global.c (compute_regsets): Update.
18697         (global_alloc): Update.
18698         * dwarf2out.c (dwarf2out_begin_prologue): Update.
18699         * expr.c (expand_assignment): Update.
18700         * dse.c (dse_step0): Update.
18701         (dse_step1): Update.
18702         * c-decl.c (store_parm_decls): Update.
18703         * local-alloc.c (combine_regs): Update.
18704         (find_free_reg): Update.
18705         * function.c (assign_parms_augmented_arg_list): Update.
18706         (assign_parm_find_data_types): Update.
18707         (assign_parms): Update.
18708         (allocate_struct_function): Update.
18709         (expand_function_start): Update.
18710         (expand_function_end): Update.
18711         (get_arg_pointer_save_area): Update.
18712         (thread_prologue_and_epilogue_insns): Update.
18713         (rest_of_match_asm_constraints): Update.
18714         * stor-layout.c (variable_size): Update.
18715         * gcse.c (gcse_main): Update.
18716         (bypass_jumps): Update.
18717         * gimplify.c (gimplify_function_tree): Update.
18718         * calls.c (emit_call_1): Update.
18719         (expand_call): Update.
18720         * bt-load.c (compute_defs_uses_and_gen): Update.
18721         * except.c (sjlj_assign_call_site_values): Update.
18722         (sjlj_emit_function_enter): Update.
18723         (can_throw_external): Update.
18724         (set_nothrow_function_flags): Update.
18725         (expand_builtin_unwind_init): Update.
18726         (expand_eh_return): Update.
18727         (convert_to_eh_region_ranges): Update.
18728         (output_function_exception_table): Update.
18729         * emit-rtl.c (gen_tmp_stack_mem): Update.
18730         * cfgexpand.c (expand_used_vars): Update.
18731         (tree_expand_cfg): Update.
18732         * cfgcleanup.c (rest_of_handle_jump): Update.
18733         * explow.c (allocate_dynamic_stack_space): Update.
18734         * varasm.c (assemble_start_function): Update.
18735         (force_const_mem): Update.
18736         (mark_constant_pool): Update.
18737         * tree-optimize.c (tree_rest_of_compilation): Update.
18738         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
18739         * tree-cfg.c (notice_special_calls): Update.
18740         (is_ctrl_altering_stmt): Update.
18741         (tree_can_make_abnormal_goto): Update.
18742         (tree_purge_dead_abnormal_call_edges): Update.
18743         * config/alpha/predicates.md: Update.
18744         * config/alpha/alpha.c (alpha_sa_mask): Update.
18745         (alpha_sa_size): Update.
18746         (alpha_does_function_need_gp): Update.
18747         (alpha_expand_prologue): Update.
18748         (alpha_start_function): Update.
18749         (alpha_output_function_end_prologue): Update.
18750         (alpha_expand_epilogue): Update.
18751         * config/frv/frv.c (frv_stack_info): Update.
18752         (frv_expand_epilogue): Update.
18753         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
18754         (s390_register_info): Update.
18755         (s390_frame_info): Update.
18756         (s390_init_frame_layout): Update.
18757         (s390_can_eliminate): Update.
18758         (save_gprs): Update.
18759         * config/spu/spu.c (spu_split_immediate): Update.
18760         (need_to_save_reg): Update.
18761         (spu_expand_prologue): Update.
18762         (spu_expand_epilogue): Update.
18763         * config/sparc/sparc.md: Update.
18764         * config/sparc/sparc.c (eligible_for_return_delay): Update.
18765         (sparc_tls_got): Update.
18766         (legitimize_pic_address): Update.
18767         (sparc_emit_call_insn): Update.
18768         (sparc_expand_prologue): Update.
18769         (output_return): Update.
18770         (print_operand): Update.
18771         (sparc_function_ok_for_sibcall): Update.
18772         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
18773         * config/m32r/m32r.md: Update.
18774         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
18775         (m32r_compute_frame_size): Update.
18776         (m32r_expand_prologue): Update.
18777         (m32r_expand_epilogue): Update.
18778         (m32r_legitimize_pic_address): Update.
18779         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
18780         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
18781         * config/i386/i386.c (ix86_frame_pointer_required): Update.
18782         (gen_push): Update.
18783         (ix86_save_reg): Update.
18784         (ix86_compute_frame_layout): Update.
18785         (ix86_expand_prologue): Update.
18786         (ix86_expand_epilogue): Update.
18787         * config/sh/sh.c (output_stack_adjust): Update.
18788         (calc_live_regs): Update.
18789         (sh5_schedule_saves): Update.
18790         (sh_expand_prologue): Update.
18791         (sh_expand_epilogue): Update.
18792         (sh_setup_incoming_varargs): Update.
18793         (sh_allocate_initial_value): Update.
18794         (sh_get_pr_initial_val): Update.
18795         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
18796         * config/sh/sh.md (label:): Update.
18797         * config/avr/avr.c (out_movhi_mr_r): Update.
18798         * config/crx/crx.h (enum): Update.
18799         * config/xtensa/xtensa.h (along): Update.
18800         * config/stormy16/stormy16.c Update.
18801         (xstormy16_compute_stack_layout): Update.
18802         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
18803         (fr30_expand_prologue): Update.
18804         * config/cris/cris.c (cris_conditional_register_usage): Update.
18805         (cris_reg_saved_in_regsave_area): Update.
18806         (cris_initial_frame_pointer_offset): Update.
18807         (cris_simple_epilogue): Update.
18808         (cris_expand_prologue): Update.
18809         (cris_expand_epilogue): Update.
18810         (cris_expand_pic_call_address): Update.
18811         (cris_asm_output_symbol_ref): Update.
18812         (cris_asm_output_label_ref): Update.
18813         * config/cris/cris.md Update.
18814         * config/iq2000/iq2000.c (compute_frame_size): Update.
18815         (iq2000_expand_epilogue): Update.
18816         * config/mt/mt.h (save_direction): Update.
18817         * config/mn10300/mn10300.c (mn10300_function_value): Update.
18818         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
18819         (ia64_secondary_reload_class): Update.
18820         * config/m68k/m68k.c (m68k_save_reg): Update.
18821         (m68k_expand_prologue): Update.
18822         (m68k_expand_epilogue): Update.
18823         (legitimize_pic_address): Update.
18824         * config/rs6000/rs6000.c (rs6000_got_register): Update.
18825         (first_reg_to_save): Update.
18826         (first_altivec_reg_to_save): Update.
18827         (compute_vrsave_mask): Update.
18828         (compute_save_world_info): Update.
18829         (rs6000_stack_info): Update.
18830         (spe_func_has_64bit_regs_p): Update.
18831         (rs6000_ra_ever_killed): Update.
18832         (rs6000_emit_eh_reg_restore): Update.
18833         (rs6000_emit_allocate_stack): Update.
18834         (rs6000_emit_prologue): Update.
18835         (rs6000_emit_epilogue): Update.
18836         (rs6000_output_function_epilogue): Update.
18837         (output_profile_hook): Update.
18838         (rs6000_elf_declare_function_name): Update.
18839         * config/rs6000/rs6000.h (rs6000_args): Update.
18840         * config/rs6000/rs6000.md: Update.
18841         * config/mcore/mcore.c (mcore_expand_prolog): Update.
18842         * config/arc/arc.c (arc_output_function_epilogue): Update.
18843         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
18844         * config/darwin.c (machopic_function_base_name): Update.
18845         * config/score/score3.c (score3_compute_frame_size): Update.
18846         (rpush): Update.
18847         (rpop): Update.
18848         (score3_epilogue): Update.
18849         * config/score/score7.c (score7_compute_frame_size): Update.
18850         (score7_prologue): Update.
18851         (score7_epilogue): Update.
18852         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
18853         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
18854         * config/arm/arm.c (use_return_insn): Update.
18855         (require_pic_register): Update.
18856         (arm_load_pic_register): Update.
18857         (arm_compute_save_reg0_reg12_mask): Update.
18858         (arm_compute_save_reg_mask): Update.
18859         (thumb1_compute_save_reg_mask): Update.
18860         (output_return_instruction): Update.
18861         (arm_output_function_prologue): Update.
18862         (arm_output_epilogue): Update.
18863         (arm_get_frame_offsets): Update.
18864         (arm_expand_prologue): Update.
18865         (thumb_pushpop): Update.
18866         (thumb_exit): Update.
18867         (thumb1_expand_prologue): Update.
18868         (thumb1_expand_epilogue): Update.
18869         (arm_unwind_emit): Update.
18870         (arm_output_fn_unwind): Update.
18871         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
18872         * config/arm/arm.md: Update.
18873         * config/pa/pa.md: Update.
18874         * config/pa/pa.c (legitimize_pic_address): Update.
18875         (compute_frame_size): Update.
18876         (hppa_expand_prologue): Update.
18877         (hppa_expand_epilogue): Update.
18878         (borx_reg_operand): Update.
18879         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
18880         (HARD_REGNO_RENAME_OK): Update.
18881         * config/mips/mips.c (mips_global_pointer): Update.
18882         (mips_save_reg_p): Update.
18883         (mips_compute_frame_info): Update.
18884         (mips_frame_pointer_required): Update.
18885         (mips_expand_prologue): Update.
18886         (mips_expand_epilogue): Update.
18887         (mips_can_use_return_insn): Update.
18888         (mips_reorg_process_insns): Update.
18889         * config/v850/v850.c (compute_register_save_size): Update.
18890         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
18891         * config/mmix/mmix.c (along): Update.
18892         (mmix_expand_epilogue): Update.
18893         * config/bfin/bfin.c (legitimize_pic_address): Update.
18894         (must_save_p): Update.
18895         (stack_frame_needed_p): Update.
18896         (add_to_reg): Update.
18897         (bfin_expand_prologue): Update.
18898         * stmt.c (expand_asm_operands): Update.
18899         * reload1.c (reload): Update.
18900         (init_elim_table): Update.
18901
18902 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
18903
18904         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
18905
18906 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
18907
18908         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
18909         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
18910         (mov<mode>): Removed.
18911         (*movv4sf_internal): Likewise.
18912         (*movv2df_internal): Likewise.
18913
18914 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
18915
18916         * config.gcc (crx-*-elf): Remove deprecation.
18917
18918 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
18919
18920         * config/i386/cygming-crtend.c (register_frame_ctor): Register
18921         __gcc_deregister_frame with atexit.
18922         (deregister_frame_dtor): Remove.
18923
18924 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
18925             Nathan Sidwell  <nathan@codesourcery.com>
18926
18927         * config/rs6000/rs6000.opt (mspe): Remove Var property.
18928         (misel): Likewise.
18929         * config/rs6000/rs6000.h (rs6000_spe): Declare.
18930         (rs6000_isel): Likewise.
18931         * config/rs6000/rs6000.c (rs6000_spe): New variable.
18932         (rs6000_isel): New variable.
18933         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
18934
18935 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
18936
18937         PR c++/35758
18938         * c-common.c (handle_vector_size_attribute): Call
18939         lang_hooks.types.reconstruct_complex_type instead of
18940         reconstruct_complex_type.
18941         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
18942         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
18943         * langhooks.h (struct lang_hooks_for_types): Add
18944         reconstruct_complex_type hook.
18945         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
18946         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
18947
18948 2008-04-24  Richard Guenther  <rguenther@suse.de>
18949
18950         * c-common.h (check_builtin_function_arguments): Declare.
18951         * c-common.c (validate_nargs): New function.
18952         (check_builtin_function_arguments): Likewise.
18953         * c-typeck.c (build_function_call): Call
18954         check_builtin_function_arguments.
18955         * builtins.c (fold_builtin_classify): Remove error reporting code.
18956         (fold_builtin_unordered_cmp): Likewise.
18957         (fold_builtin_1): Likewise.
18958         (fold_builtin_n): Likewise.
18959
18960 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
18961
18962         PR tree-optimization/36008
18963         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
18964         the original op1, rather than delta by step.
18965
18966 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
18967             Sebastian Pop  <sebastian.pop@amd.com>
18968
18969         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
18970         eliminate_local_variables_stmt, eliminate_local_variables,
18971         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
18972         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
18973         of code delimited by two edges in the CFG.
18974         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
18975         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
18976         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate
18977         the case of parallelisation of reductions.
18978         (expr_invariant_in_region_p): New.
18979
18980         * tree-flow.h (gather_blocks_in_sese_region): Declared.
18981         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
18982
18983 2008-04-24  Ira Rosen  <irar@il.ibm.com>
18984             Richard Guenther  <rguenther@suse.de>
18985
18986         PR tree-optimization/36034
18987         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
18988         incapable of dealing with loads with gaps.
18989
18990 2008-04-24  Rafael Espíndola  <espindola@google.com>
18991
18992         * tree-flow.h (vrp_evaluate_conditional): Change signature.
18993         * tree-ssa-propagate.c (fold_predicate_in): Update call to
18994         vrp_evaluate_conditional.
18995         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
18996         (vrp_evaluate_conditional): Split the cond argument.
18997         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
18998         (simplify_stmt_for_jump_threading): Update call to
18999         vrp_evaluate_conditional.
19000
19001 2008-04-24  Ira Rosen  <irar@il.ibm.com>
19002
19003         PR tree-optimization/35982
19004         * tree-vect-analyze.c (vect_check_interleaving): Check that the
19005         interleaved data-refs are of the same type.
19006
19007 2008-04-24  Danny Smith  <dannysmith@users.net>
19008
19009         * c-format.c (check_format_info_main): Use strncmp rather than a
19010         magic prefix to handle multichar length specs.
19011         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
19012         Don't prefix "I64" and "I32" with '\0'.
19013
19014 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
19015
19016         PR target/36015
19017         * config/i386/i386.c (init_cumulative_args): Don't pass anything
19018         in registers for -m32 only if stdarg_p (fntype).
19019
19020 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
19021
19022         PR rtl-optimization/36006
19023         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
19024         temp to op0 in order to avoid invalid rtx sharing.
19025
19026 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
19027
19028         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
19029         check TREE_INVARIANT.
19030         * tree-gimple.c (is_gimple_address): New.
19031         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
19032         * tree-gimple.h (is_gimple_address): New.
19033         * tree.h (decl_address_invariant_p): New.
19034         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
19035         (build_string): Likewise.
19036         (decl_address_invariant_p): New, from is_gimple_invariant_address.
19037         (tree_invariant_p_1): Likewise.
19038         (save_expr): Use it.
19039         (tree_invariant_p): New.
19040         (skip_simple_arithmetic): Use it.
19041         (stabilize_reference_1): Use it.
19042         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
19043         simplify.
19044         (build1_stat): Drop code to compute TREE_INVARIANT.
19045         (build2_stat): Drop code to compute TREE_INVARIANT.
19046         (build3_stat): Drop code to compute TREE_INVARIANT.
19047         (build4_stat): Drop code to compute TREE_INVARIANT.
19048         (build5_stat): Drop code to compute TREE_INVARIANT.
19049         (build7_stat): Drop code to compute TREE_INVARIANT.
19050         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
19051         * tree.h (struct tree_base): Remove invariant_flag.
19052         (TREE_INVARIANT): Remove.
19053         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
19054         (fold_builtin_expect): Check TREE_CONSTANT.
19055         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
19056         * c-tree.h (c_expr_to_decl): Drop third parameter.
19057         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
19058         (build_c_cast): Don't set TREE_INVARIANT.
19059         (pop_init_level): Don't set TREE_INVARIANT.
19060         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
19061         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
19062         TREE_CONSTANT.
19063         (gimplify_init_constructor): Don't set TREE_INVARIANT.
19064         (gimplify_addr_expr): Adjust comment.
19065         * tree-mudflap.c (mf_build_string):
19066         * print-tree.c (print_node): Don't print TREE_INVARIANT.
19067         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
19068         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
19069         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
19070         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
19071         * langhooks.h (struct lang_hooks): Drop third parameter from
19072         expr_to_decl.
19073
19074 2008-04-23  Richard Guenther  <rguenther@suse.de>
19075
19076         PR tree-optimization/27799
19077         PR tree-optimization/32921
19078         PR tree-optimization/32624
19079         * tree-ssa-structalias.c (merge_smts_into): Only merge the
19080         SMTs aliases and the tag itself into the solution.
19081         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
19082         merge the points-to solution back into the SMT aliases.
19083         (may_alias_p): Use alias_set_subset_of instead of
19084         aliases_conflict_p.  A pointer which points to
19085         memory with alias set zero may access any variable.
19086
19087 2008-04-23  Richard Guenther  <rguenther@suse.de>
19088
19089         * alias.c (alias_set_subset_of): Correctly handle asking
19090         if zero is a subset of an alias set with zero child.
19091         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
19092         (compute_flow_insensitive_aliasing): Correctly walk all
19093         pointers.  Do not unnecessarily union sets.
19094
19095 2008-04-23  Richard Guenther  <rguenther@suse.de>
19096
19097         PR middle-end/36021
19098         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
19099
19100 2008-04-22  Tomas Bily  <tbily@suse.cz>
19101
19102         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
19103         unreachable case.
19104         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
19105         NON_LVALUE_EXPR.
19106         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
19107         * tree-ssa-structalias.c (get_constraint_for): Likewise.
19108         * tree-inline.c (estimate_num_insns_1): Likewise.
19109         * varasm.c (const_hash_1, compare_constant, copy_constant)
19110         (compute_reloc_for_constant, output_addressed_constants): Likewise.
19111         * emit-rtl.c (component_ref_for_mem_expr)
19112         (set_mem_attributes_minus_bitpos): Likewise.
19113         * expr.c (highest_pow2_factor, expand_expr_real_1, )
19114         (is_aligning_offset): Likewise.
19115         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
19116         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
19117         * dojump.c (do_jump): Likewise.
19118         * builtins.c (get_pointer_alignment, get_memory_rtx)
19119         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
19120         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
19121
19122 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
19123
19124         PR rtl-optimization/36017
19125         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
19126         expanding the library call.
19127
19128 2008-04-22  Ian Lance Taylor  <iant@google.com>
19129
19130         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
19131         than size_in_bytes.
19132
19133 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
19134
19135         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
19136         of LR/CTR moves for Power6.
19137
19138 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
19139
19140         PR middle-end/36003
19141         * passes.c (init_optimization_passes): Remove
19142         pass_fast_rtl_byte_dce.
19143
19144 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
19145
19146         PR target/29096
19147         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
19148         builtin functions to generate faster code.
19149         (_mm_cvtpu16_ps): Ditto.
19150         (_mm_cvtpi32x2_ps): Ditto.
19151
19152 2008-04-22  Nick Clifton  <nickc@redhat.com>
19153
19154         * common.opt (ftree-loop-distribution): Add Optimization
19155         attribute.
19156
19157         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
19158         (frv_expand_builtin_va_start): Likewise.
19159
19160         * config/arm/arm.c (thumb_find_work_register): Fix location of
19161         argument register count.
19162
19163 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
19164
19165         Support scheduling for ColdFire V1 and V3 microarchitecture.
19166         Improve scheduling of multiplication instructions.
19167
19168         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
19169         (mac): New instruction attribute.
19170         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
19171         (m68k_sched_mac): New variable.
19172         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
19173         Handle cfv1 and cfv3.
19174         (max_insn_size): New static variable.
19175         (struct _sched_ib): New type.
19176         (sched_ib): New static variable.
19177         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
19178         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
19179         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
19180         Update.
19181         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
19182         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
19183         new variables.  Update.
19184         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
19185         Add modeling of cfv3 instruction buffer.  Update.
19186         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
19187         * config/m68k/m68k.h (TUNE_CFV3): New macro.
19188         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
19189         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
19190         a particular reservation applies to.
19191         (type2): Reorganize attribute values.  Rename alu to alu_reg,
19192         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
19193         to mul_l and mul_w.
19194         (cf_ib_*): Simplify description of instruction buffer.
19195         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
19196         (cf_mem): Split into cf_mem1 and cf_mem2.
19197         (cf_v2_move_??): Rename to cfv12_alu_??.
19198         (cf_v2_move_l_??): Rename to cfv12_omove_??.
19199         (cf_v2_mul_??): Remove reservations.
19200         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
19201         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
19202         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
19203         appropriate place.
19204         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
19205         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
19206         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
19207         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
19208         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
19209         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
19210         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
19211         expansions of the above reservations for instructions of sizes
19212         1, 2 and 3 words.
19213
19214 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
19215
19216         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
19217
19218 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
19219
19220         * coverage.c: Include tree-pass.h.
19221         (coverage_counter_alloc): Print da_file_name to the dump file.
19222
19223 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
19224
19225         * sbitmap.c (sbitmap_range_empty_p): New function.
19226         * sbitmap.h (sbitmap_range_empty_p): New function.
19227         * bitmap.h: Now includes obstack.h.
19228
19229 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
19230             Kenneth Zadeck  <zadeck@naturalbridge.com>
19231
19232         * dbgcnt.def (ra_byte_scan): Added.
19233         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
19234         when the last hit happens for a counter.
19235         * timevar.def (TV_DF_BYTE_LR): New variable.
19236         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
19237         * passes.c (pass_fast_rtl_byte_dce): New pass.
19238         * fwprop.c (update_df): Added mode to call df_ref_create.
19239         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
19240         DF_REF_EXTRACT_OFFSET.
19241         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
19242         DF_BYTE_LR_OUT, df_byte_lr): New macro.
19243         (df_mm): New enum.
19244         (df_ref_extract): Added mode field.
19245         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
19246         DF_REF_EXTRACT_OFFSET.
19247         (DF_REF_EXTRACT_MODE): New macro.
19248         (df_byte_lr_bb_info): New structure.
19249         (df_print_byte_regset, df_compute_accessed_bytes,
19250         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
19251         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
19252         df_byte_lr_simulate_uses,
19253         df_byte_lr_simulate_artificial_refs_at_top,
19254         df_byte_lr_simulate_artificial_refs_at_end,
19255         df_compute_accessed_bytes): New function.
19256         (df_ref_create): Add parameter.
19257         (df_byte_lr_get_bb_info): New inline function.
19258         * df-scan.c (df_ref_record, df_uses_record,
19259         df_ref_create_structure): Added mode parameter.
19260         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
19261         df_defs_record, df_uses_record, df_get_conditional_uses,
19262         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
19263         df_entry_block_defs_collect, df_exit_block_uses_collect):
19264         Added mode parameter to calls to df_ref_record, df_uses_record,
19265         df_ref_create_structure.
19266         (df_ref_equal_p, df_ref_compare): Added test for modes.
19267         (df_ref_create_structure): Added code to set mode.  Renamed
19268         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
19269         DF_REF_EXTRACT_OFFSET.
19270         * df-core.c (df_print_byte_regset): New function.
19271         * df-byte-scan.c: New file.
19272         * df-problems.c (df_rd_transfer_function): Removed unnecessary
19273         calls to BITMAP_FREE.
19274         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
19275         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
19276         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
19277         df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
19278         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
19279         df_byte_lr_local_compute, df_byte_lr_init,
19280         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
19281         df_byte_lr_transfer_function, df_byte_lr_free,
19282         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
19283         df_byte_lr_add_problem, df_byte_lr_simulate_defs,
19284         df_byte_lr_simulate_uses,
19285         df_byte_lr_simulate_artificial_refs_at_top,
19286         df_byte_lr_simulate_artificial_refs_at_end): New function.
19287         * dce.c (byte_dce_process_block): New function.
19288         (dce_process_block): au is now passed in rather than computed
19289         locally.  Changed loops that look at artificial defs to not look
19290         for conditional or partial ones, because there never are any.
19291         (fast_dce): Now is able to drive byte_dce_process_block or
19292         dce_process_block depending on the kind of dce being done.
19293         (rest_of_handle_fast_dce): Add parameter to fast_dce.
19294         (rest_of_handle_fast_byte_dce): New function.
19295         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
19296         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
19297
19298 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
19299
19300         PR fortran/35019
19301         * gcc.h: Added fortran options that take arguments to
19302         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
19303         macros.
19304
19305 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
19306
19307         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
19308         scalarization if on the LHS and not a full access.
19309
19310 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19311
19312         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
19313
19314 2008-04-18  Rafael Espíndola  <espindola@google.com>
19315
19316         * tree-vrp.c (find_case_label_index): Fix the binary search.
19317         (find_case_label_range): New.
19318         (vrp_visit_switch_stmt): Use find_case_label_range.
19319         (simplify_switch_using_ranges): Use find_case_label_range.
19320
19321 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
19322
19323         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
19324         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
19325
19326 2008-04-18  Tom Tromey  <tromey@redhat.com>
19327
19328         PR libcpp/15500:
19329         * doc/cpp.texi (Implementation-defined behavior): Mention
19330         -finput-charset.
19331
19332 2008-04-18  Ian Lance Taylor  <iant@google.com>
19333
19334         * fold-const.c (pointer_may_wrap_p): New static function.
19335         (fold_comparison): Add another test for pointer overflow.  Use
19336         pointer_may_wrap_p to disable some false positives.
19337
19338 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
19339
19340         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
19341         (fname_as_string): Match updated cpp_interpret_string prototype.
19342         (fix_string_type): Support char16_t* and char32_t*.
19343         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
19344         derivative) nodes.  Register as builtin if C++0x.
19345         (c_parse_error): Support CPP_CHAR{16,32}.
19346         * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
19347         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
19348         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
19349         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
19350         CTI_CHAR32_ARRAY_TYPE>: New elements.
19351         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
19352         char32_type_node, signed_char32_type_node, char16_array_type_node,
19353         char32_array_type_node): New defines.
19354         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
19355         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
19356         (lex_string): Support CPP_STRING{16,32}, match updated
19357         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
19358         (lex_charconst): Support CPP_CHAR{16,32}.
19359         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
19360         and CPP_STRING{16,32}.
19361
19362 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
19363
19364         PR bootstrap/35457
19365         * aclocal.m4: Regenerate.
19366         * configure: Regenerate.
19367
19368 2008-04-18  Jan Hubicka  <jh@suse.cz>
19369
19370         * except.c (dw2_size_of_call_site_table,
19371         sjlj_size_of_call_site_table): Use vector API for call_site_record.
19372
19373         * cgraphbuild.c (build_cgraph_edges): Update.
19374         * tree-pass.h: Update comment.
19375         * final.c (leaf_function_p): Update.
19376         (leaf_renumber_regs): Update.
19377         (rest_of_clean_state): Update.
19378         * omp-low.c (expand_omp_parallel): Update.
19379         * ipa-reference.c (analyze_function): Update.
19380         * reorg.c (find_end_label): Update.
19381         (optimize_skip): Update.
19382         (fill_simple_delay_slots): Update.
19383         (fill_simple_delay_slots): Update.
19384         (make_return_insns): Update.
19385         (dbr_schedule): Update.
19386         * gimple-low.c (record_vars_into): Update.
19387         * cfgbuild.c (make_edges): Update.
19388         * function.c (assign_stack_local): Update.
19389         (assign_parm_adjust_stack_rtl): Update.
19390         (locate_and_pad_parm): Update.
19391         (allocate_struct_function): Do not initialize stack_alignment_needed
19392         and preferred_stack_boundary here.
19393         (stack_protect_prologue): Update.
19394         (stack_protect_epilogue): Update.
19395         (expand_function_start): Initialize stack_alignment_needed,
19396         preferred_stack_boundary and max_jumptable_ents.
19397         (expand_function_end): Update.
19398         (free_after_compilation): Do not NULLify epilogue_delay_list.
19399         * function.h (struct rtl_data): Add stack_protect_guard,
19400         stack_alignment_needed,
19401         preferred_stack_boundary, epilogue_delay_list.
19402         (struct function): Remove value_histograms, stack_alignment_needed,
19403         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
19404         last_label_uid,
19405         unexpanded_var_list, stack_protect_guard.
19406         (current_function_epilogue_delay_list): Remove.
19407         * ipa-type-escape.c (analyze_function): Update.
19408         * gimplify.c (pop_gimplify_context): Update comment.
19409         * calls.c (expand_call): Update.
19410         (emit_library_call_value_1): Update.
19411         * except.c (set_nothrow_function_flags): Update.
19412         * cfgexpand.c (get_decl_align_unit): Update.
19413         (create_stack_guard): Update.
19414         (estimated_stack_frame_size): Update.
19415         (expand_used_vars): Update.
19416         (tree_expand_cfg): Free histogram earliers, init expansion variables.
19417         * explow.c (allocate_dynamic_stack_space): Update.
19418         * tree-ssa-live.c (remove_unused_locals): Update.
19419         * varasm.c (mark_constant_pool): Update.
19420         * tree-inline.c (remap_decls): Update.
19421         (initialize_cfun): Update.
19422         (declare_return_variable): Update.
19423         (inline_forbidden_p): Update.
19424         (expand_call_inline): Update.
19425         (declare_inline_vars): Update.
19426         (tree_function_versioning): Update.
19427         * tree-flow.h (value_histograms): New.
19428         (VALUE_HISTOGRAMS): New macro.
19429         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
19430         last_label_uid.
19431         * tree-cfg.c (set_bb_for_stmt): Update.
19432         (replace_by_duplicate_decl): Update.
19433         (move_block_to_fn): Update.
19434         (new_label_mapper): Update.
19435         (dump_function_to_file): Update.
19436         * ipa-struct-reorg.c (build_data_structure): Update.
19437         * cfgrtl.c (print_rtl_with_bb): Update.
19438         * reload1.c (reload): Update.
19439         (reload): Update.
19440         * config/i386/i386.c (setup_incoming_varargs_64,
19441         ix86_compute_frame_layout): Update.
19442         * config/arc/arc.c (arc_output_function_epilogue): Update.
19443
19444 2008-04-18  Marius Strobl <marius@FreeBSD.org>
19445
19446         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
19447         for FreeBSD as well.
19448         * gthr-posix95.h: Likewise.
19449
19450 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
19451
19452         PR rtl-optimization/35838
19453         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
19454         out the byte offset of the first subreg.
19455
19456 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
19457
19458         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
19459         to split_ti instead of three separate calls with single member arrays.
19460         (subti3 splitter): Ditto.
19461         (adddi3 splitter): Ditto with split_di.
19462         (subdi3 splitter): Ditto.
19463         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
19464         two separate calls with single member arrays.  Swap match_dup
19465         operands 1 and 2 to better fit into the array.
19466         (negdi2 splitter): Ditto with split_di.
19467         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
19468         two separate calls with single member arrays.  Swap match_dup operands
19469         6 and 7 to better fit into the array.
19470
19471 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
19472
19473         * config/i386/i386.c (sse_builtin_type): New.
19474         (bdesc_sse_args): Likewise.
19475         (bdesc_sse_3arg): Removed.
19476         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
19477         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
19478         IX86_BUILTIN_ROUNDPS.
19479         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
19480         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
19481         IX86_BUILTIN_ROUNDPS.
19482         (ix86_expand_sse_4_operands_builtin): Removed.
19483         (ix86_expand_sse_operands_builtin): New.
19484         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
19485         and CODE_FOR_sse4_1_roundps.
19486         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
19487         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
19488
19489 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
19490
19491         PR target/35907
19492         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
19493         regs before frame pop when needed.  If use_backchain_to_restore_sp
19494         then load backchain into a temp reg to restore vr and vrsave.  Add
19495         code to restore vr after frame pop if possible.
19496
19497 2008-04-17  Richard Guenther  <rguenther@suse.de>
19498
19499         * tree-vn.c (expressions_equal_p): Do not check type
19500         equality or compatibility before calling operand_equal_p.
19501         * fold-const.c (operand_equal_p): Check equivalence of
19502         integer constants before bailing out due to signedness or
19503         precision differences.
19504         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
19505         spurious differences in type qualification.  Ignore types
19506         for COMPONENT_REFs at all.
19507
19508 2008-04-17  Christian Bruel  <christian.bruel@st.com>
19509
19510         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
19511         msw_skip comparison.
19512
19513 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
19514
19515         PR c/35739
19516         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
19517         reg type.
19518
19519         PR tree-optimization/35899
19520         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
19521         rather than TREE_OPERAND.
19522
19523 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
19524
19525         PR target/35944
19526         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
19527         temporary registers.  Change operand predicate to general_operand.
19528         (remainderxf3): Ditto.
19529
19530 2008-04-16  Richard Guenther  <rguenther@suse.de>
19531
19532         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
19533         * tree-affine.c (aff_combination_expand): Look through some
19534         conversions.
19535
19536 2008-04-15  Doug Kwan  <dougkwan@google.com>
19537
19538         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
19539         for hex printing.
19540         * tree-pretty-print.c (dump_generic_node): Ditto.
19541         * final.c (output_addr_const): Ditto.
19542         * dwarf2out.c (output_cfi): Ditto.
19543         * c-pretty-print.c (pp_c_integer_constant): Ditto.
19544         * print-rtl.c (print_rtx): Ditto.
19545         * print-tree.c (print_node_brief, print_node): Ditto.
19546         * c-common.c (match_case_to_enum_1): Ditto.
19547         * sched-vis.c (print_value): Ditto.
19548         * config/i386/i386.c (print_operand): Cast to long unsigned int
19549         for hex printing.
19550
19551 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
19552         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
19553         MS Windows VirtualProtect function.
19554
19555 2008-04-15  Jan Hubicka  <jh@suse.cz>
19556
19557         * gengtype.c (write_root): Param_is argument is OK.
19558         * expr.c (expand_expr_real_1): Update call of get_exception_*.
19559         * function.h: Include varray.h
19560         (rtl_eh): New stucture based on except.c one.
19561         (call_site_record): New forward declaration and vector type.
19562         * calls.c (emit_call_1): Do not call
19563         note_current_region_may_contain_throw.
19564         * except.c (eh_status): Remove cur_region, try_region since they are
19565         unused.
19566         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
19567         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
19568         sjlj_fc, sjlj_exit_after to rth_eh in function.h.
19569         Remove call_site_data_used, call_site_data_size.
19570         Turn call_site_record into vector in function.h.
19571         (note_current_region_may_contain_throw): Remove.
19572         (get_exception_pointer, get_exception_filter): Do not take struct
19573         function argument; update.
19574         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
19575         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
19576         build_post_landing_pads, dw2_build_landing_pads,
19577         sjlj_assign_call_site_values, sjlj_mark_call_sites,
19578         sjlj_emit_function_enter, sjlj_emit_function_enter,
19579         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
19580         sjlj_build_landing_pads, finish_eh_generation,
19581         remove_exception_handler_label, remove_eh_handler,
19582         maybe_remove_eh_handler, add_reachable_handler,
19583         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
19584         add_action_record, collect_one_action_chain, add_call_site,
19585         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
19586         sjlj_output_call_site_table, output_function_exception_table,
19587         * except.h (note_current_region_may_contain_throw): Remove
19588         (get_exception_pointer, get_exception_filter): Do not take struct
19589         function argument.
19590         * Makefile.in (GTFILES): Put varargs before struct function.
19591
19592 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
19593
19594         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
19595         punt for STRING_CST.
19596         (get_constraint_for): Deal with STRING_CST here instead.
19597
19598 2008-04-15  Richard Guenther  <rguenther@suse.de>
19599
19600         * tree-ssa-propagate.c (substitute_and_fold): Substitute
19601         statements in a basic-block with a backward walk.  Do not
19602         substitute into dead statements but instead remove those.
19603
19604 2008-04-15  Richard Guenther  <rguenther@suse.de>
19605
19606         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
19607         to zero, thus disable creation of SFTs.
19608
19609 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
19610
19611         * tree-predcom.c (suitable_reference_p): Return false if the
19612         reference can throw.
19613
19614 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
19615
19616         PR c/35751
19617         * c-decl.c (finish_decl): If extern or static var has variable
19618         size, set TREE_TYPE (decl) to error_mark_node.
19619
19620 2008-04-15  Rafael Espíndola  <espindola@google.com>
19621
19622         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
19623         variable arg1.
19624
19625 2008-04-15  Richard Guenther  <rguenther@suse.de>
19626
19627         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
19628         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
19629         (visit_reference_op_load): Do walk vuse-vdef chains on
19630         vn_reference_lookup.
19631         (visit_reference_op_store): But do not here.
19632         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
19633         vn_reference_lookup.
19634         (vn_lookup_with_vuses): But do so here.
19635
19636 2008-04-14  Ian Lance Taylor  <iant@google.com>
19637
19638         * fold-const.c (fold_overflow_warning): Remove assertion.
19639
19640 2008-04-15  Ben Elliston  <bje@au.ibm.com>
19641
19642         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
19643         temp1 local variables.
19644
19645 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
19646
19647         PR target/35661
19648         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
19649         ".text.unlikely" section as executable.
19650
19651 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
19652
19653         * config/ia64/ia64.c (rtx_needs_barrier): Handle
19654         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
19655         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
19656         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
19657         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
19658         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
19659         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
19660
19661 2008-04-14  Ian Lance Taylor  <iant@google.com>
19662
19663         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
19664         * fold-const.c (fold_comparison): If appropriate, test
19665         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
19666         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
19667         reassociating a pointer type.
19668         * doc/invoke.texi (Optimize Options): Document that
19669         -fstrict-overflow applies to pointer wraparound.
19670
19671 2008-04-13  Jan Hubicka  <jh@suse.cz>
19672
19673         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
19674
19675 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
19676
19677         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
19678         we are going to "save the world".
19679
19680 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
19681
19682         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
19683         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
19684         operand 0 constraint, not "=".
19685
19686 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
19687
19688         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
19689
19690 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
19691
19692         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
19693         of size of positions_needed * CHAR_BIT.
19694
19695 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
19696
19697         PR middle-end/35897
19698         * dse.c (store_info): Change positions_needed to unsigned
19699         HOST_WIDE_INT.
19700         (lowpart_bitmask): New.
19701         (record_store): Cast to unsigned HOST_WIDE_INT for
19702         positions_needed.  Assert width <= size of positions_needed *
19703         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
19704         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
19705         lowpart_bitmask to set mask.
19706
19707 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
19708
19709         * config/bfin/constraints.md: New file.
19710         * config/bfin/bfin.md: Include it.
19711         (adddi3): Use satisfies_constraint functions instead of the old macros.
19712         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
19713         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
19714         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
19715         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
19716         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
19717         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
19718         EXTRA_CONSTRAINT): Delete.
19719         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
19720         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
19721         of the old macros.
19722         * config/bfin/bfin.c: Include "tm-constrs.h".
19723         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
19724         Use satisfies_constraint functions instead of the old macros.
19725         * doc/md.texi (Blackfin Constraints): Update file name reference.
19726
19727 2008-04-11  Richard Guenther  <rguenther@suse.de>
19728
19729         PR tree-optimization/35869
19730         * tree-vrp.c (execute_vrp): Move switch statement update after
19731         jump threading.  Schedule another cfg cleanup run.
19732
19733 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
19734
19735         PR c/35744
19736         * attribs.c (decl_attributes): Return early on errorneous node.
19737
19738 2008-04-10  Oleg Ryjkov  <olegr@google.com>
19739
19740         * tree.h (struct tree_base): Added a new flag default_def_flag.
19741         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
19742
19743 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
19744
19745         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
19746
19747 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19748
19749         PR target/35768
19750         * pa.md: Define mode iterator P.  Define mode attribute dwc.
19751         (dcacheflush): Update pattern to use iterator P and attribute dwc.
19752         (icacheflush): Likewise.
19753         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
19754         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
19755
19756 2008-04-11  Ben Elliston  <bje@au.ibm.com>
19757
19758         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
19759
19760 2008-04-10  Rafael Espíndola  <espindola@google.com>
19761
19762         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
19763         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
19764         (extract_range_from_expr): The same.
19765
19766 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
19767
19768         * config/mips/mips.md (GPR2): New mode iterator.
19769         (seq): Add comment.
19770         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
19771         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
19772         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
19773         Rewrite these to take two modes, the mode of comparison and the
19774         mode of the destination.
19775         * config/mips/mips.c (mips_expand_scc): Instead of having
19776         paradoxical subreg as destination, expand "narrowing" scc if mode
19777         of comparison is SI and target is requested in DI mode.
19778         (mips_emit_int_order_test): Update comment.  Make mode of
19779         comparison match CMP0 rather than TARGET.  When creating inverse
19780         target use mode of TARGET.
19781
19782 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
19783
19784         * gcov-dump.c (tag_summary): Only print summaries for the first
19785         GCOV_COUNTERS_SUMMABLE counters.
19786
19787 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
19788
19789         * config/i386/i386.md (absneg): New code iterator.
19790         (absnegprefix): New code attribute.
19791         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
19792         patterns using absneg code iterator.
19793         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
19794         using absneg code iterator.
19795         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
19796         *neg<mode>2 patterns using absneg code iterator.
19797         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
19798         *negextendsfdf2 patterns using absneg code iterator.
19799         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
19800         *negextendsfxf2 patterns using absneg code iterator.
19801         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
19802         *negextendsfdf2 patterns using absneg code iterator.
19803         * config/i386/sse.md (<code><mode>2): Macroize expander from
19804         abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
19805
19806 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
19807
19808         * config/s390/s390.h: Remove the remains of the recent search
19809         & replace action of current_function_outgoing_args_size.
19810
19811 2008-04-10  Ira Rosen  <irar@il.ibm.com>
19812
19813         PR tree-optimization/35821
19814         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
19815         NEW_STMT_LIST is not NULL.
19816
19817 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
19818
19819         PR libstdc++/35597
19820         * toplev.c (process_options): Remove -ffunction-sections debugging
19821         warning.
19822
19823 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
19824
19825         PR middle-end/PR28690
19826         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
19827         than gen_rtx_fmt_ee to perform more canonicalizations.
19828
19829 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19830
19831         PR driver/35665
19832         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
19833
19834 2008-04-09  Richard Guenther  <rguenther@suse.de>
19835
19836         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
19837         (dump_function_to_file): Dump function arguments with types.
19838
19839 2008-04-08  Richard Guenther  <rguenther@suse.de>
19840
19841         * fold-const.c (fold_widened_comparison): Do not allow
19842         sign-changes that change the result.
19843
19844 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
19845
19846         PR target/35839
19847         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
19848         kinds of indirect references.
19849
19850 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
19851
19852         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
19853         GNU Fortran language string.
19854
19855 2008-04-08  Rafael Espíndola  <espindola@google.com>
19856
19857         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
19858         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
19859         * tree.h (tree_call_nonnegative_warnv_p): New.
19860
19861 2008-04-08  Jan Hubicka  <jh@suse.cz>
19862
19863         * function.c (free_after_compilation): Clear out regno_reg_rtx
19864         pointer.
19865
19866 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
19867
19868         Revert
19869         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
19870
19871         PR middle-end/PR28690
19872         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
19873         same precedence as REG_POINTER and MEM_POINTER operands.
19874
19875 2008-04-08  Richard Guenther  <rguenther@suse.de>
19876
19877         PR middle-end/35834
19878         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
19879         for adding index to base.
19880
19881 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
19882
19883         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
19884         (MINGW_ENABLE_EXECUTE_STACK): New.
19885         (IN_LIBGCC2): For libgcc include windows.h file for
19886         function declarations.
19887
19888 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
19889
19890         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
19891         and tem2 if tem1 is not a REG or MULT.
19892
19893 2008-04-08  Jan Hubicka  <jh@suse.cz>
19894
19895         * function.h (incomming_args): Break out of struct function.
19896         (function_subsections): Break out of struct function.
19897         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
19898         return_rtx and hard_reg_initial_vals from struct function.
19899         Kill inl_max_label_num.
19900         (current_function_pops_args, current_function_args_info,
19901         current_function_args_size, current_function_args_size,
19902         current_function_pretend_args_size,
19903         current_function_outgoing_args_size,
19904         current_function_internal_arg_pointer, current_function_return_rtx):
19905         Kill compatibility accestor macros.
19906         * builtins.c (expand_builtin_apply_args_1): Update.
19907         (expand_builtin_next_arg): Update.
19908         * df-scan.c (df_get_call_refs): Update.
19909         * dbxout.c (dbxout_function_end): Update.
19910         * dwarf2out.c (dwarf2out_switch_text_section): Update.
19911         (output_line_info): Update.
19912         (secname_for_decl): Update.
19913         (dwarf2out_var_location): Update.
19914         * function.c (free_after_compilation): Update.
19915         (assign_parm_find_stack_rtl): Update.
19916         (assign_parms): Update.
19917         (expand_dummy_function_end): Update.
19918         (expand_function_end): Update.
19919         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
19920         (expand_call): Update.
19921         (emit_library_call_value_1): Update.
19922         (store_one_arg): Update.
19923         * varasm.c (initialize_cold_section_name): Update.
19924         (unlikely_text_section): Update.
19925         (unlikely_text_section_p): Update.
19926         (assemble_start_function): Update.
19927         (assemble_end_function): Update.
19928         (default_section_type_flags): Update.
19929         (switch_to_section): Update.
19930         * integrate.c (set_decl_abstract_flags): Update.
19931         (get_hard_reg_initial_val): Update.
19932         (has_hard_reg_initial_val): Update.
19933         (allocate_initial_values): Update.
19934         * resource.c (init_resource_info): Update.
19935         * config/alpha/alpha.c (NUM_ARGS): Update.
19936         (direct_return): Update.
19937         (alpha_va_start): Update.
19938         (alpha_sa_size): Update.
19939         (alpha_initial_elimination_offset): Update.
19940         (alpha_expand_prologue): Update.
19941         (alpha_start_function): Update.
19942         (alpha_expand_epilogue): Update.
19943         (unicosmk_initial_elimination_offset):
19944         * config/alpha/alpha.md (call expander): Update.
19945         * config/s390/s390.c (s390_register_info): Update.
19946         (s390_register_info): Update.
19947         (s390_frame_info): Update.
19948         (s390_initial_elimination_offset): Update.
19949         (s390_build_builtin_va_list): Update.
19950         (s390_va_start): Update.
19951         * config/spu/spu.c (direct_return): Update.
19952         (spu_expand_prologue): Update.
19953         (spu_initial_elimination_offset): Update.
19954         (spu_build_builtin_va_list): Update.
19955         (spu_va_start): Update.
19956         * config/sparc/sparc.c (sparc_init_modes): Update.
19957         (sparc_compute_frame_size): Update.
19958         (function_value): Update.
19959         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
19960         * config/i386/i386.md (return expander): Update.
19961         * config/i386/i386.c (ix86_va_start): Update.
19962         (ix86_can_use_return_insn_p): Update.
19963         (ix86_compute_frame_layout): Update.
19964         (ix86_expand_epilogue): Update.
19965         * config/sh/sh.c (output_stack_adjust): Update.
19966         (calc_live_regs): Update.
19967         (sh_expand_prologue): Update.
19968         (sh_builtin_saveregs): Update.
19969         (sh_va_start): Update.
19970         (initial_elimination_offset): Update.
19971         (sh_allocate_initial_value): Update.
19972         (sh_function_ok_for_sibcall): Update.
19973         (sh_get_pr_initial_val): Update.
19974         * config/sh/sh.md (return expander): Update.
19975         * config/avr/avr.c (frame_pointer_required_p): UPdate.
19976         * config/crx/crx.c (crx_compute_frame): UPdate.
19977         (crx_initial_elimination_offset): UPdate.
19978         * config/xtensa/xtensa.c (compute_frame_size): Update
19979         (xtensa_builtin_saveregs): Update.
19980         (xtensa_va_start): Update.
19981         (order_regs_for_local_alloc): Update.
19982         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
19983         (xstormy16_expand_builtin_va_start): Update.
19984         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
19985         * config/m68hc11/m68hc11.md (return expanders): Update.
19986         * config/m68hc11/m68hc11.c (expand_prologue): Update.
19987         (expand_epilogue): Update.
19988         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
19989         (cris_simple_epilogue): Update.
19990         (cris_expand_prologue): Update.
19991         (cris_expand_epilogue): Update.
19992         * config/iq2000/iq2000.c (iq2000_va_start): Update.
19993         (compute_frame_size): Update.
19994         * config/mt/mt.c (mt_compute_frame_size): Update.
19995         * config/mn10300/mn10300.c (expand_prologue): Update.
19996         (expand_epilogue): Update.
19997         (initial_offset): Update.
19998         (mn10300_builtin_saveregs):
19999         * config/mn10300/mn10300.md (return expander): Update.
20000         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
20001         (ia64_initial_elimination_offset): Update.
20002         (ia64_initial_elimination_offset): Update.
20003         (ia64_expand_prologue): Update.
20004         * config/m68k/m68k.md (return expander): Update.
20005         * config/rs6000/rs6000.c (rs6000_va_start): Update.
20006         (rs6000_stack_info): Update.
20007         * config/mcore/mcore.c (layout_mcore_frame): Update.
20008         (mcore_expand_prolog): Update.
20009         * config/arc/arc.c (arc_compute_frame_size): Update.
20010         * config/score/score3.c (score3_compute_frame_size): Update.
20011         * config/score/score7.c (score7_compute_frame_size): Update.
20012         * config/arm/arm.c (use_return_insn): Update.
20013         (thumb_find_work_register): Update.
20014         (arm_compute_save_reg_mask): Update.
20015         (arm_output_function_prologue): Update.
20016         (arm_output_epilogue): Update.
20017         (arm_size_return_regs): Update.
20018         (arm_get_frame_offsets): Update.
20019         (arm_expand_prologue): Update.
20020         (thumb_exit): Update.
20021         (thumb_unexpanded_epilogue): Update.
20022         (thumb1_output_function_prologue): Update.
20023         * config/pa/pa.md (return expander): Update.
20024         * config/pa/pa.c (compute_frame_size): Update.
20025         (hppa_builtin_saveregs): Update.
20026         * config/mips/mips.c (mips_va_start): Update.
20027         (mips16_build_function_stub): Update.
20028         (mips_compute_frame_info): Update.
20029         (mips_restore_gp): Update.
20030         (mips_output_function_prologue): Update.
20031         (mips_expand_prologue): Update.
20032         * config/v850/v850.c (compute_frame_size): Update.
20033         (expand_prologue): * config/mmix/mmix.c (along): update.
20034         (mmix_initial_elimination_offset): update.
20035         (mmix_reorg): update.
20036         (mmix_use_simple_return): update.
20037         (mmix_expand_prologue): update.
20038         (mmix_expand_epilogue): Update.
20039         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
20040         (emit_link_insn): Update.
20041
20042 2008-04-08  Anatoly Sokolov <aesok@post.ru>
20043
20044         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
20045         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
20046         instructions.
20047         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
20048         atmega103 device.
20049
20050 2008-04-07  Jan Hubicka  <jh@suse.cz>
20051
20052         * function.h (rtl): Rename to x_rtl.
20053         (crtl): New define.
20054         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
20055         frame_offset, stack_check_probe_note, arg_pointer_save_area,
20056         used_temp_slots avail_temp_slots, temp_slot_level,
20057         nonlocal_goto_handler_labels): Update accesstors.
20058         (rtl): New global variable.
20059         (struct function): Move some fileds to rtl_data.
20060         (get_arg_pointer_save_area): Update prototype.
20061         * builtins.c (expand_builtin_setjmp_receiver): Update call of
20062         get_arg_pointer_save_area.
20063         * expr.c (init_expr): Update
20064         * function.c (get_frame_size): Update
20065         (assign_stack_local): Update
20066         (expand_function_end): Update.
20067         (get_art_pointer_save_area): Update
20068         * function.h
20069         * emit-rtl.c (rtl): Declare.
20070         (regno_reg_rtx): Declare.
20071         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
20072         Update.
20073         (gen_reg_rtx): Update.
20074         * varasm.c (n_deferred_constatns): Update accestor.
20075         (init_varasm_status): Do not allocate varasm_status.
20076         (force_const_mem, get_pool_size, output_constant_pool): Update.
20077         * stmt.c (force_label_rtx): Do not use x_ prefixes.
20078         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
20079         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
20080         * sparc/sparc.h (INIT_EXPANDERS): Update.
20081         * ia64/ia64.h (INIT_EXPANDERS): Update.
20082
20083 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
20084
20085         * reload.c (push_secondary_reload): Add missing break to for loop.
20086
20087 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
20088
20089         PR middle-end/PR28690
20090         * rtlanal.c: Update copyright years.
20091         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
20092         as REG_POINTER and MEM_POINTER operands.
20093         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
20094         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
20095         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
20096         * gcse.c: Update copyright years.
20097         (pre_delete): Call gen_reg_rtx_and_attrs.
20098         (hoist_code): Likewise.
20099         (build_store_vectors): Likewise.
20100         (delete_store): Likewise.
20101         * loop-invariant.c (move_invariant_reg): Likewise.
20102         Update copyright years.
20103
20104 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
20105
20106         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
20107         control string instead of quoted.
20108
20109 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
20110
20111         * doc/rtl.texi: Rewrite of subreg section.
20112
20113 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
20114
20115         PR/35842
20116         * config/i386/i386.c (legitimize_pic_address): Add treating
20117         of dllimport SYM_REF's.
20118         (legitimize_dllimport_symbol): Add prototype.
20119
20120 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
20121
20122         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
20123         reference in constructor with non self-referential type.
20124
20125 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
20126
20127         Removal of Return with Depressed Stack Pointer support
20128         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
20129         (ECF_SP_DEPRESSED): Likewise.
20130         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
20131         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
20132         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
20133         (expand_call): Do not test ECF_SP_DEPRESSED.
20134         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
20135         * function.c (keep_stack_depressed): Delete.
20136         (handle_epilogue_set): Likewise.
20137         (update_epilogue_consts): Likewise.
20138         (emit_equiv_load): Likewise.
20139         (thread_prologue_and_epilogue_insns): Remove support for Return with
20140         Depressed Stack Pointer.
20141         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
20142
20143 2008-04-06  Richard Guenther  <rguenther@suse.de>
20144
20145         PR tree-optimization/35400
20146         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
20147         information from SSA_NAMEs.
20148
20149 2008-04-06  Anatoly Sokolov <aesok@post.ru>
20150
20151         * config/avr/avr.h (avr_mega_p): Remove declaration.
20152         (AVR_MEGA): Remove macro.
20153         * config/avr/avr.c (avr_mega_p): Remove variable.
20154         (avr_override_options): Remove inicializion of avr_mega_p.
20155         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
20156         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
20157         (avr_jump_mode): (Ditto.).
20158         (avr_output_progmem_section_asm_op): (Ditto.).
20159         (avr_asm_init_sections): (Ditto.).
20160         (avr_asm_init_sections): (Ditto.).
20161         (avr_rtx_costs): (Ditto.).
20162         * config/avr/avr.md: (Ditto.).
20163         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
20164         '__AVR_MEGA__'.
20165
20166 2008-04-06  Richard Guenther  <rguenther@suse.de>
20167
20168         PR tree-optimization/35842
20169         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
20170         is_gimple_invariant_address.
20171
20172 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
20173
20174         * gcc.c (default_compilers): Sync Fortran extensions list with
20175         that in fortran/lang-specs.h.
20176         * doc/invoke.texi: Likewise.
20177         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
20178         * dwarf2out.c (gen_compile_unit_die): Likewise.
20179
20180 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
20181
20182         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
20183
20184 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
20185
20186         PR target/12329
20187         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
20188         attribute is used for nested functions.
20189
20190 2008-04-05  Jan Hubicka  <jh@suse.cz>
20191
20192         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
20193
20194         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
20195         letter argument.
20196         (dump_files): Update.
20197         (enable_rtl_dump_file): Do not accept letter argument.
20198         * tree-pass.h (dump_file_info): Remove letter argument.
20199         * toplev.c (decode_d_option): Update -da handling.
20200         * toplev.h (enable_rtl_dump_file): Update prototype.
20201         * passes.c (register_one_dump_file): Do not accept IPA argument; work
20202         it out based on pass type.
20203         (register_dump_files_1): Likewise.
20204         (init_optimization_passes): Update register_one_dump_file calls.
20205         (execute_one_pass): Sanity check that IPA passes are called at IPA
20206         level and RTL passes at RTL level.
20207         (execute_pass_list): IPA pass can not be after or subpass of
20208         GIMPLE/RTL pass.
20209         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
20210         disallov RTL subpasses of IPA subpasses.
20211
20212 2008-04-05  Ben Elliston  <bje@au.ibm.com>
20213
20214         * tree-cfg.c (need_fake_edge_p): Return false for calls to
20215         builtins that return exactly once and do not throw. Cache call to
20216         call_expr_flags.
20217
20218 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
20219
20220         PR rtl-optimization/34916
20221         PR middle-end/35519
20222         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
20223         between instruction pairs.
20224
20225 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
20226
20227         * doc/invoke.texi: Document -mbitops for SH.
20228         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
20229         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
20230         * config/sh/sh.c (print_operand): Add %t operand code.
20231         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
20232         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
20233         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
20234         (extendqihi2): Likewise.
20235         (movqi_i): Likewise.
20236         (insv): Use bset, bclr and bst instructions for SH2A if possible.
20237         (extv): Use bld instruction for SH2A if possible.
20238         (extzv): Likewise.
20239         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
20240         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
20241         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
20242         (bset.b, bclr.b): Define peepholes.
20243         * config/sh/sh.opt (mbitops): New option.
20244
20245 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
20246
20247         PR target/35620
20248         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
20249         and view convert expression.
20250
20251 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
20252
20253         PR target/35364
20254         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
20255
20256 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
20257
20258         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
20259
20260         * config/i386/cpuid.h (bit_AES): New.
20261         (bit_PCLMUL): Likewise.
20262
20263         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
20264         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
20265         SSE2 if AES or PCLMUL is enabled.
20266         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
20267         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
20268         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
20269         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
20270         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
20271         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
20272         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
20273         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
20274         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
20275         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
20276         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
20277         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
20278         __builtin_ia32_aeskeygenassist128 and
20279         __builtin_ia32_pclmulqdq128.
20280         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
20281         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
20282         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
20283
20284         * config/i386/i386.h (TARGET_AES): New.
20285         (TARGET_PCLMUL): Likewise.
20286         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
20287
20288         * config/i386/i386.md (UNSPEC_AESENC): New.
20289         (UNSPEC_AESENCLAST): Likewise.
20290         (UNSPEC_AESDEC): Likewise.
20291         (UNSPEC_AESDECLAST): Likewise.
20292         (UNSPEC_AESIMC): Likewise.
20293         (UNSPEC_AESKEYGENASSIST): Likewise.
20294         (UNSPEC_PCLMUL): Likewise.
20295
20296         * config/i386/i386.opt (maes): New.
20297         (mpclmul): Likewise.
20298
20299         * config/i386/sse.md (aesenc): New pattern.
20300         (aesenclast): Likewise.
20301         (aesdec): Likewise.
20302         (aesdeclast): Likewise.
20303         (aesimc): Likewise.
20304         (aeskeygenassist): Likewise.
20305         (pclmulqdq): Likewise.
20306
20307         * config/i386/wmmintrin.h: New.
20308
20309         * doc/extend.texi: Document AES and PCLMUL built-in function.
20310
20311         * doc/invoke.texi: Document -maes and -mpclmul.
20312
20313 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
20314
20315         * function.c (free_after_parsing): Replace with
20316         cxx_push_function_context from C++ front-end.
20317         (allocate_struct_function): Don't call langhook.
20318         * langhooks.h (struct lang_hooks_for_functions): Delete.
20319         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
20320         member "function".
20321         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
20322         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
20323         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
20324         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
20325         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
20326         remove LANG_HOOKS_FUNCTION_INITIALIZER.
20327         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
20328
20329         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
20330         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
20331
20332 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
20333
20334         PR c/35440
20335         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
20336         for all types.
20337
20338 2008-04-04  Richard Guenther  <rguenther@suse.de>
20339
20340         PR middle-end/35823
20341         * fold-const.c (optimize_minmax_comparison): Use the correct
20342         type for the constant in the simplified comparison.
20343
20344 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
20345
20346         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
20347         Pass L2 size as "--param l2-cache-size" to the compiler.
20348         (decode_l2_cache): New function to decode L2 cache parameters using
20349         0x8000006 extended cpuid function.
20350         (detect_caches_amd): Determine parameters of L2 cache using
20351         decode_l2_caches function.
20352         (decode_caches_intel): Decode L2 cache parameters.
20353         (detect_caches_intel): Determine L2 cache parameters using
20354         decode_caches_intel and decode_l2_caches functions.
20355
20356 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
20357
20358         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
20359         secondary input reload for subword loads from the constant pool.
20360
20361 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
20362
20363         PR target/35713
20364         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
20365           constants of the appropriate size for runtime calculations.
20366
20367         PR c/35712
20368         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
20369           decimal-float literal constant zero.
20370
20371 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
20372
20373         PR c/35738
20374         * c-parser.c (c_parser_omp_atomic): Call
20375         default_function_array_conversion on the RHS.
20376
20377         PR middle-end/35818
20378         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
20379         call is_variable_sized if decl has incomplete type.
20380
20381 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
20382
20383         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
20384
20385 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
20386
20387         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
20388         iterators.
20389         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
20390         (sgt<u>): Merge sgt and sgtu into new expander.
20391         (sgt, sgtu): Remove expanders.
20392         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
20393         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
20394         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
20395         *sgtu_<mode>_mips16 into new pattern.
20396         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
20397         (sge<u>): Merge sge and sgeu into new expander.
20398         (sge, sgeu): Remove expanders.
20399         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
20400         new pattern.
20401         (*sge_<mode>, second *sge_<mode>): Remove patterns.
20402         (slt<u>): Merge slt and sltu into new expander.
20403         (slt, sltu): Remove expanders.
20404         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
20405         (*slt_<mode>, *sltu_<mode>): Remove patterns.
20406         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
20407         *sltu_<mode>_mips16 into new pattern.
20408         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
20409         (sle<u>): Merge sle and sleu into new expander.
20410         (sle, sleu): Remove expanders.
20411         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
20412         (*sle_<mode>, *sleu_<mode>): Remove patterns.
20413         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
20414         *sleu_<mode>_mips16 into new pattern.
20415         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
20416
20417 2008-04-03  Jan Hubicka  <jh@suse.cz>
20418
20419         PR tree-optimization/35795
20420         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
20421         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
20422         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
20423         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
20424         * score/score3.c (score3_output_mi_thunk): Likewise.
20425         * score/score7.c (score7_output_mi_thunk): Likewise.
20426         * mips/mips.c (mips_output_mi_thunk): Likewise.
20427
20428 2008-04-03  Richard Guenther  <rguenther@suse.de>
20429
20430         * tree-vrp.c (extract_range_from_unary_expr): Handle all
20431         conversions.  Simplify code.
20432
20433 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
20434
20435         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
20436
20437 2008-04-03  Tom Tromey  <tromey@redhat.com>
20438             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20439
20440         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
20441         * config/bfin/t-bfin-linux (generated_files): Add
20442         linux-sysroot-suffix.h.
20443         * doc/install.texi (Prerequisites): Require make 3.80.
20444         * doc/sourcebuild.texi (Front End Directory): Document new
20445         variable.
20446         * Makefile.in (generated_files): New variable.
20447         (ALL_HOST_OBJS): New variable.
20448         ($(ALL_HOST_OBJS)): New target.
20449
20450 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
20451
20452         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
20453         (remap_block): Call id->transform_lang_insert_block instead
20454         of langhook.
20455         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
20456         Set id.transform_lang_insert_block to NULL.
20457         (clone_body): Move to cp/optimize.c
20458         * tree-inline.h (struct copy_body_data): Change
20459         transform_lang_insert_block to function pointer.
20460         (copy_generic_body, copy_decl_no_change): Export.
20461         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
20462         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
20463         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
20464
20465         * c-tree.h (insert_block): Kill.
20466         * c-decl.c (insert_block): Kill.
20467
20468 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
20469
20470         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
20471         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
20472         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
20473         argument.
20474         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
20475         argument, call {push,pop}_function_context from here.
20476         * c-parser.c: Use c_{push,pop}_function_context.
20477
20478         * function.c (push_function_context_to): Move meat ...
20479         (push_function_context): ... here.  Simplify.
20480         * function.c (pop_function_context_from): Move meat ...
20481         (pop_function_context): ... here.  Simplify.
20482         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
20483         leave_nested).
20484         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
20485         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
20486         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
20487         * tree.h (push_function_context_to, pop_function_context_from): Remove.
20488
20489 2008-04-03  Ben Elliston  <bje@au.ibm.com>
20490
20491         * expmed.c (extract_force_align_mem_bit_field): Remove.
20492
20493 2008-04-03  Richard Guenther  <rguenther@suse.de>
20494
20495         PR middle-end/35800
20496         * expr.h (try_casesi): Adjust prototype.
20497         * expr.c (try_casesi): Take fallback label as extra parameter.
20498         Use that for gen_casesi if default_label is NULL.
20499         * stmt.c (expand_case): Pass fallback label to try_casesi,
20500         make sure to fill gaps with a fallback label if default_label
20501         is not present.
20502
20503 2008-04-03  Dominique d'Humières <dominiq@lps.ens.fr>
20504
20505         PR target/35801
20506         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
20507
20508 2008-04-03  Ben Elliston  <bje@au.ibm.com>
20509
20510         * expmed.c (extract_split_bit_field): Remove if (0) code.
20511         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
20512         (do_ds_constraint): Likewise.
20513
20514 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
20515
20516         * doc/cppopts.texi (-dU): Document.
20517         * c-common.h (flag_dump_macros): Update comment.
20518         * c-opts.c (handle_OPT_d): Handle -dU.
20519         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
20520         dump_queued_macros, cb_used_define, cb_used_undef): New.
20521         (init_pp_output): Handle -dU.
20522         (cb_line_change): Call dump_queued_macros.
20523         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
20524
20525 2008-04-02  Anatoly Sokolov <aesok@post.ru>
20526
20527         * config/avr/predicates.md (io_address_operand): New predicate.
20528         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
20529         * config/avr/avr.c (avr_io_address_p): Remove function.
20530         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
20531         'avr_io_address_p' function.
20532         (out_movhi_r_mr): (Ditto.).
20533         (out_movqi_mr_r): (Ditto.).
20534         (out_movhi_mr_r): (Ditto.).
20535         (avr_address_cost): (Ditto.).
20536
20537 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
20538
20539         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
20540         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
20541         in 32bit mode when XMM registers are available to avoid store
20542         forwarding stalls.
20543         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
20544         corresponding post-reload splitters.
20545
20546 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
20547
20548         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
20549         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
20550         __builtin_ia32_roundss.
20551         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
20552         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
20553         __builtin_ia32_roundss.
20554         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
20555         IX86_BUILTIN_SHUFPD here.
20556
20557 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
20558
20559         * config/i386/i386.md (plogic): New.
20560         (plogicprefix): Likewise.
20561
20562         * config/i386/mmx.md (mmx_<code><mode>3): New.
20563         (mmx_and<mode>3): Removed.
20564         (mmx_ior<mode>3): Likewise.
20565         (mmx_xor<mode>3): Likewise.
20566
20567         * config/i386/sse.md (<code><mode>3): New.
20568         (*<code><mode>3): Likewise.
20569         (*<code><mode>3): Likewise.
20570         (<code><mode>3): Likewise.
20571         (*sse_<code><mode>3): Likewise.
20572         (*sse2_<code><mode>3): Likewise.
20573         (<code>tf3): Likewise.
20574         (*<code>tf3): Likewise.
20575         (and<mode>3): Likewise.
20576         (*and<mode>3): Likewise.
20577         (ior<mode>3): Removed.
20578         (*ior<mode>3): Likewise.
20579         (xor<mode>3): Likewise.
20580         (*xor<mode>3): Likewise.
20581         (*and<mode>3): Likewise.
20582         (*ior<mode>3): Likewise.
20583         (*xor<mode>3): Likewise.
20584         (and<mode>3): Likewise.
20585         (*sse_and<mode>3): Likewise.
20586         (*sse2_and<mode>3): Likewise.
20587         (andtf3): Likewise.
20588         (*andtf3): Likewise.
20589         (ior<mode>3): Likewise.
20590         (*sse_ior<mode>3): Likewise.
20591         (*sse2_ior<mode>3): Likewise.
20592         (iortf3): Likewise.
20593         (*iortf3): Likewise.
20594         (xor<mode>3): Likewise.
20595         (*sse_xor<mode>3): Likewise.
20596         (*sse2_xor<mode>3): Likewise.
20597         (xortf3): Likewise.
20598         (*xortf3): Likewise.
20599
20600 2008-04-02  Richard Guenther  <rguenther@suse.de>
20601
20602         PR tree-optimization/14495
20603         PR tree-optimization/34793
20604         * tree-vrp.c (struct switch_update): New structure.
20605         (to_remove_edges, to_update_switch_stmts): New VECs.
20606         (simplify_switch_using_ranges): New function.  Remove not taken
20607         case labels and edges.
20608         (simplify_stmt_using_ranges): Call it.
20609         (identify_jump_threads): Mark edges we have queued for removal
20610         so we don't thread them.
20611         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
20612         case label vector.
20613         * tree-cfg.c (group_case_labels): Deal with missing default label.
20614         (tree_verify_flow_info): Allow missing default label.
20615         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
20616         (emit_case_nodes): Likewise.
20617         (expand_case): Do not rely on the default label to be present.
20618         * expr.c (try_casesi): Deal with NULL default_label.
20619         (do_tablejump): Likewise.
20620
20621 2008-04-02  Richard Guenther  <rguenther@suse.de>
20622
20623         PR tree-optimization/14495
20624         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
20625         SWITCH_EXPR here ...
20626         (vrp_visit_switch_stmt): ... but here (new function).
20627         (find_case_label_index): New helper function.
20628         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
20629
20630 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
20631
20632         * fwprop.c: Fix ISO-C99ism.
20633
20634 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
20635
20636         PR bootstrap/35752
20637         * Makefile.in (objdir): Set it here.
20638         * configure.ac: Not here.  Find dynamic linker characteristics.
20639         * exec-tool.in: Use them.
20640         * aclocal.m4: Regenerate.
20641         * configure: Regenerate.
20642
20643 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
20644
20645         * expr.c (expand_var): Delete it.
20646         * expr.h (expand_var): Delete prototype.
20647         * function.c (expand_function_start): Use expand_decl instead.
20648         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
20649         langhook.
20650
20651 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
20652
20653         PR rtl-optimization/35542
20654         * fwprop.c (forward_propagate_and_simplify): Replace
20655         loc_reg_mentioned_in_p with reg_mentioned_p.
20656
20657 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
20658
20659         PR rtl-optimization/35281
20660         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
20661         (propagate_rtx_1): Handle PR_HANDLE_MEM.
20662         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
20663         (varying_mem_p): Move above propagate_rtx.
20664         (all_uses_available_at): Do not check MEMs.
20665
20666 2008-04-02  Rafael Espíndola  <espindola@google.com>
20667
20668         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
20669         (register_edge_assert_for_2): Split the cond argument.
20670         (register_edge_assert_for_1): Adjust for the change in
20671         register_edge_assert_for_2.
20672         (register_edge_assert_for): Split the cond argument.
20673         (find_switch_asserts): Adjust for the change in
20674         register_edge_assert_for.
20675
20676 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
20677
20678         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
20679         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
20680         offsets for 64-bit mingw.
20681         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
20682         abi for x86_64-pc-mingw.
20683
20684 2008-04-02  Richard Guenther  <rguenther@suse.de>
20685
20686         * tree-vrp.c (extract_range_from_assert): Make sure to not
20687         produce range min/max with TREE_OVERFOW set.
20688         If merging a anti-range and a range keep the anti-range if
20689         the range covers all values of the type.
20690         (register_edge_assert_for_2): Only allow sign-changing
20691         conversions in detecting canonical range checks.  Also
20692         register an assert for the unsigned name if useful.
20693
20694         PR tree-optimization/35787
20695         * tree-vrp.c (vrp_val_max): New function.
20696         (vrp_val_min): Likewise.
20697         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
20698         (vrp_val_is_min): Likewise.
20699         (supports_overflow_infinity): Use vrp_val_{min,max}.
20700         (negative_overflow_infinity): Likewise.
20701         (positive_overflow_infinity): Likewise.
20702         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
20703         (is_positive_overflow_infinity): Likewise.
20704         (is_overflow_infinity): Likewise.
20705         (avoid_overflow_infinity): Use vrp_val_{min,max} and
20706         vrp_val_is_{min,max}.
20707         (set_and_canonicalize_value_range): Canonicalize anti-ranges
20708         to ranges if possible.  Avoid empty ranges.
20709
20710 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20711
20712         PR middle-end/35705
20713         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
20714         the expression is a function address.
20715
20716 2008-04-01  George Helffrich  <george@gcc.gnu.org>
20717
20718         PR fortran/35154, fortran/23057
20719         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
20720         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
20721         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
20722         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
20723         in common.
20724         (dbxout_syms): Check for COMMON-based symbol and wrap in
20725         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
20726         in bracket for efficiency.
20727
20728         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
20729         using DW_TAG_common_block + member offset.
20730         (add_pubname_string): New function.
20731         (dw_expand_expr): New function to find block name and offset for
20732         COMMON var.
20733         (common_check): New function to check whether symbol in Fortran COMMON.
20734         (gen_variable_die): If COMMON, use DW_TAG_common_block.
20735
20736 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
20737
20738         PR c/35436
20739         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
20740
20741 2008-04-02  Ben Elliston  <bje@au.ibm.com>
20742
20743         * config/v850/v850.md (casesi): Remove if (0) code.
20744         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20745         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
20746
20747 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
20748
20749         * config/i386/i386.md (rex64suffix): New mode attribute.
20750         (floathi<mode>2): Disable expander for SSE math.
20751         (*floathi<mode>2_1): New insn insn_and_split pattern.
20752         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
20753         corresponding post-reload splitters.
20754         (*floathi<mode>2_i387): New macroized insn pattern.
20755         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
20756         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
20757         insn_and_split pattern.
20758         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
20759         New macroized instruction patterns and corresponding post-reload
20760         splitters.
20761         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
20762         and corresponding post-reload splitters.
20763         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
20764         New macroized instruction patterns.
20765         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
20766         macroized instruction patterns and corresponding post-reload splitters.
20767         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
20768         corresponding post-reload splitters.
20769         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
20770         New macroized instruction patterns.
20771         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
20772         corresponding post-reload splitters.
20773         (*floatsi<mode>2_i387): New macroized instruction patterns.
20774
20775 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
20776
20777         * config/i386/i386.md (smaxmin): New.
20778         (umaxmin): Likewise.
20779         (maxminiprefix): Likewise.
20780         (maxminfprefix): Likewise.
20781         (<code><mode>3): Likewise.
20782         (smin<mode>3): Removed.
20783         (smax<mode>3): Likewise.
20784
20785         * config/i386/mmx.md (mmx_<code>v2sf3): New.
20786         (mmx_<code>v4hi3): Likewise.
20787         (mmx_<code>v8qi3): Likewise.
20788         (mmx_smaxv2sf3): Removed.
20789         (mmx_sminv2sf3): Likewise.
20790         (mmx_umaxv8qi3): Likewise.
20791         (mmx_smaxv4hi3): Likewise.
20792         (mmx_uminv8qi3): Likewise.
20793         (mmx_sminv4hi3): Likewise.
20794
20795         * config/i386/sse.md (<addsub><mode>3): New.
20796         (*<addsub><mode>3): Likewise.
20797         (<sse>_vm<addsub><mode>3): Likewise.
20798         (<maxmin><mode>3): Likewise.
20799         (*<maxmin><mode>3_finite): Likewise.
20800         (*<maxmin><mode>3): Likewise.
20801         (<sse>_vm<maxmin><mode>3): Likewise.
20802         (sse3_h<addsub>v4sf3): Likewise.
20803         (sse3_h<addsub>v2df3): Likewise.
20804         (<maxmin>v16qi3): Likewise.
20805         (*<maxmin>v16qi3): Likewise.
20806         (<maxmin>v8hi3): Likewise.
20807         (*<maxmin>v8hi3): Likewise.
20808         (*sse4_1_<maxmin><mode>3): Likewise.
20809         (*sse4_1_<maxmin><mode>3): Likewise.
20810         (add<mode>3): Removed.
20811         (*add<mode>3): Likewise.
20812         (<sse>_vmadd<mode>3): Likewise.
20813         (sub<mode>3): Likewise.
20814         (*sub<mode>3): Likewise.
20815         (<sse>_vmsub<mode>3): Likewise.
20816         (smin<mode>3): Likewise.
20817         (*smin<mode>3_finite): Likewise.
20818         (*smin<mode>3): Likewise.
20819         (<sse>_vmsmin<mode>3): Likewise.
20820         (smax<mode>3): Likewise.
20821         (*smax<mode>3_finite): Likewise.
20822         (*smax<mode>3): Likewise.
20823         (<sse>_vmsmax<mode>3): Likewise.
20824         (sse3_haddv4sf3): Likewise.
20825         (sse3_haddv2df3): Likewise.
20826         (sse3_hsubv4sf3): Likewise.
20827         (sse3_hsubv2df3): Likewise.
20828         (umaxv16qi3): Likewise.
20829         (*umaxv16qi3): Likewise.
20830         (smaxv8hi3): Likewise.
20831         (*smaxv8hi3): Likewise.
20832         (*sse4_1_smax<mode>3): Likewise.
20833         (*sse4_1_umax<mode>3): Likewise.
20834         (uminv16qi3): Likewise.
20835         (*uminv16qi3): Likewise.
20836         (sminv8hi3): Likewise.
20837         (*sminv8hi3): Likewise.
20838         (*sse4_1_smin<mode>3): Likewise.
20839         (*sse4_1_umin<mode>3): Likewise.
20840
20841 2008-04-01  Rafael Espíndola  <espindola@google.com>
20842
20843         * tree-cfg.c (verify_expr): remove in_phi.
20844         (verify_stmt): Don't call walk_tree with verify_expr. Use
20845         is_gimple_min_invariant instead of is_gimple_val.
20846
20847 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
20848
20849         * doc/include/gpl_v3.texi: Update for manpage generation.
20850         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
20851         gpl.texi.
20852         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
20853         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
20854         gpl_v3.texi instead of gpl.texi.
20855         (gpl.pod): New.
20856
20857 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
20858
20859         PR pch/13675
20860         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
20861
20862 2008-04-01  Rafael Espíndola  <espindola@google.com>
20863
20864         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
20865         (extract_code_and_val_from_cond): Use
20866         extract_code_and_val_from_cond_with_ops.
20867
20868 2008-04-01  Jan Hubicka  <jh@suse.cz>
20869
20870         * function.c (free_after_compilation): Free epilogue_delay_list.
20871         (prepare_function_start): Assert that previous compilation was freed.
20872
20873 2008-04-01  Jan Hubicka  <jh@suse.cz>
20874             Jim Wilson  <wilson@tuliptree.org>
20875             Andreas Tobler <andreast@gcc.gnu.org>
20876
20877         PR middle-end/35781
20878         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
20879         rtl.emit instead cfun->emit.
20880         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
20881         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
20882
20883 2008-04-01  Ben Elliston  <bje@au.ibm.com>
20884
20885         * doc/c-tree.texi (Function Basics): Fix grammatical error.
20886
20887 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
20888
20889         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
20890         New options
20891         (fprofile-use): Add var flag_profile_use
20892         * coverage.c (coverage_begin_output): Do not open a gcno file for
20893         output only if -ftest-coverage is set.
20894         Do not add getpwd() to gcda file path.
20895         (build_gcov_info): Check the new flag
20896         flag_profile_datafile_relative_path.
20897         (coverage_init): Use profile_data_prefix.
20898         Read profile counter only if flag_profile_use is set.
20899         * opts.c (common_handle_option): New option fprofile-use=,
20900         fprofile-dir=, fprofile-generate=.
20901         * toplev.c (profile_data_prefix): New variable definition.
20902         * toplev.h (profile_data_prefix): New declaration.
20903         * doc/invoke.tex (Option Summary, Optimization Options):
20904         Add new options.
20905
20906 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
20907
20908         * varasm.c (output_constant_pool_1): In LABEL_REF check,
20909         use tmp consistently.
20910
20911         PR target/35695
20912         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
20913         * config/ia64/ia64.c (rtx_needs_barrier): Handle
20914         UNSPEC_FR_RECIP_APPROX_RES.
20915         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
20916
20917 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
20918
20919         PR c/35750
20920         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
20921
20922 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
20923
20924         PR middle-end/30186
20925         * fold-const.c (fold_indirect_ref_1): Support accessing non first
20926         element of the vector via a pointer.
20927
20928 2008-03-31  Ian Lance Taylor  <iant@google.com>
20929
20930         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
20931
20932 2008-03-31  Jan Hubicka  <jh@suse.cz>
20933
20934         * builtins.c (expand_builtin_setjmp_receiver): Update call of
20935         get_arg_pointer_save_area.
20936         * expr.c (init_expr): Just clear out rtl.expr.
20937         * function.c (free_after_compilation): Clear out whole RTL structure.
20938         (get_func_frame_size): Merge into ...
20939         (get_frame_size): ... this one.
20940         (assign_stack_local_1): Merge into ...
20941         (assign_stack_local): ... this one.
20942         (expand_function_end): Update call of get_arg_pointer_save_area.
20943         (get_art_pointer_save_area): Remove cfun argument.
20944         * function.h (emit_status): regno_pointer_align does not need length
20945         attribute. Move x_regno_reg_rtx to ...
20946         (regno_reg_rtx): ... new global array.
20947         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
20948         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
20949         apply_args_value, forced_labels, stack_pointer_delta):
20950         Update accestors.
20951         (struct varasm_status): Move here from varasm.c
20952         (struct rtl_data): New. Move here some fields from struct function.
20953         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
20954         frame_offset, stack_check_probe_note, arg_pointer_save_area,
20955         used_temp_slots avail_temp_slots, temp_slot_level,
20956         nonlocal_goto_handler_labels): Update accesstors.
20957         (rtl): New global variable.
20958         (struct function): Move some fileds to rtl_data.
20959         (get_arg_pointer_save_area): Update prototype.
20960         * emit-rtl.c (rtl): Declare.
20961         (regno_reg_rtx): Declare.
20962         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
20963         Update.
20964         (gen_reg_rtx): Update.
20965         (init_virtual_regs): Do not tate emit_status argument.
20966         (init_emit): Do not allocate emit.
20967         * varasm.c (varasm_statuc): Move to function.h.
20968         (n_deferred_constatns): Update accestor.
20969         (init_varasm_status): Do not allocate varasm_status.
20970         (force_const_mem, get_pool_size, output_constant_pool): Update.
20971         * stmt.c (force_label_rtx): Do not use x_ prefixes.
20972         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
20973
20974 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
20975
20976         PR rtl-optimization/35729
20977         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
20978         references.
20979
20980 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
20981
20982         PR target/32000
20983         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
20984         load/store if memory is unaligned.
20985         (*movti_rex64): Likewise.
20986
20987         * config/i386/predicates.md (misaligned_operand): New.
20988
20989 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
20990
20991         PR tree-opt/35431
20992         * tree-ssa-phiopt.c (conditional_replacement): Return early for
20993         complex types.
20994
20995 2008-03-31  Jan Beulich  <jbeulich@novell.com>
20996
20997         * config/ia64/constraints.md: Add 'j' constraint.
20998         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
20999         (movdi_internal): Likewise.
21000
21001 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
21002
21003         PR c/35748
21004         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
21005
21006 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
21007
21008         PR target/35757
21009         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
21010         proper error message for the third argument on blendpd and
21011         blendps.
21012
21013         * config/i386/sse.md (blendbits): New.
21014         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
21015
21016 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
21017
21018         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
21019
21020 2008-03-30  Richard Guenther  <rguenther@suse.de>
21021
21022         PR middle-end/31023
21023         * fold-const.c (fold_sign_changed_comparison): Do leave
21024         conversions to base-types alone.
21025
21026 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
21027
21028         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
21029         the link register if one altivec register is be saved.
21030
21031 2008-03-30  Ben Elliston  <bje@au.ibm.com>
21032
21033         * final.c (final_scan_insn): Remove if (0) code.
21034
21035 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
21036
21037         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
21038
21039 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
21040
21041         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
21042         of V4SFmode to ix86_binary_operator_ok.
21043
21044 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
21045
21046         * config/i386/i386.c (override_options): Initialize
21047         ix86_veclib_handler to ix86_veclibabi_svml when
21048         -mveclibabi=svml is used.
21049         (ix86_veclibabi_svml): New function for SVML ABI style
21050         vectorization support.
21051         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
21052
21053 2008-03-28  Rafael Espíndola  <espindola@google.com>
21054
21055         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
21056         (tree_binary_nonnegative_warnv_p): Make it public.
21057         (tree_single_nonnegative_warnv_p): Make it public.
21058         (tree_invalid_nonnegative_warnv_p): Make it public.
21059         (tree_unary_nonzero_warnv_p): Make it public.
21060         (tree_binary_nonzero_warnv_p): Make it public
21061         (tree_single_nonzero_warnv_p): Make it public.
21062         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
21063         (extract_range_from_binary_expr): Split the expr argument.
21064         (extract_range_from_unary_expr): Split the expr argument.
21065         (extract_range_from_comparison): Split the expr argument.
21066         (extract_range_from_expr): Use the new aux functions.
21067         (vrp_evaluate_conditional_warnv): Use
21068         vrp_evaluate_conditional_warnv_with_ops.
21069         * tree.h (tree_unary_nonzero_warnv_p): Declare.
21070         (tree_binary_nonzero_warnv_p): Declare.
21071         (tree_single_nonzero_warnv_p): Declare.
21072         (tree_expr_nonzero_warnv_p): Declare.
21073         (tree_unary_nonnegative_warnv_p): Declare.
21074         (tree_binary_nonnegative_warnv_p): Declare.
21075         (tree_single_nonnegative_warnv_p): Declare.
21076         (tree_invalid_nonnegative_warnv_p): Declare.
21077
21078 2008-03-28  Richard Guenther  <rguenther@suse.de>
21079
21080         PR tree-optimization/30317
21081         PR tree-optimization/30911
21082         PR tree-optimization/34793
21083         * tree-vrp.c (set_and_canonicalize_value_range): New function.
21084         (struct assert_locus_d): New member EXPR.
21085         (register_new_assert_for): Add EXPR parameter to support
21086         ASSERT_EXPR <name, expr OP limit>.
21087         (register_edge_assert_for_1): Adjust callers.
21088         (find_assert_locations): Likewise.
21089         (process_assert_insertions_for): Build condition from expression.
21090         (extract_range_from_assert): Handle ASSERT_EXPRs
21091         of the form ASSERT_EXPR <name, expr OP limit>.
21092         (register_edge_assert_for_2): New helper registering
21093         asserts for comparisons.  Recognize range tests of the form
21094         (unsigned)i - CST1 OP CST2.
21095         (register_edge_assert_for_1): Use it.
21096         (register_edge_assert_for): Likewise.
21097         (needs_overflow_infinity): Integer sub-types
21098         do not need overflow infinities.
21099         (vrp_val_is_max): The extreme values of integer sub-types
21100         are those of the base type.
21101         (vrp_val_is_min): Likewise.
21102         * tree.def (ASSERT_EXPR): Document extra allowed conditional
21103         expressions.
21104
21105 2008-03-28  Nick Clifton  <nickc@redhat.com>
21106
21107         PR target/31110
21108         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
21109         Return GENERAL_REGS for stack adjustment reloads.
21110
21111 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
21112
21113         PR target/31334
21114         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
21115         const_vector when all the vectors are constant.
21116
21117 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
21118
21119         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
21120         comparisons.
21121         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
21122         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
21123         (scc_sf): New.
21124         (s<code>_sf): Use new scc_sf attribute for opcode names.
21125
21126 2008-03-27  Tom Tromey  <tromey@redhat.com>
21127
21128         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
21129         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
21130         config/spu/t-spu-elf, config/i386/t-interix,
21131         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
21132         config/i386/x-darwin, config/i386/x-mingw32,
21133         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
21134         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
21135         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
21136         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
21137         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
21138         config/rs6000/x-darwin, config/rs6000/t-rs6000,
21139         config/score/t-score-elf, config/arm/t-strongarm-pe,
21140         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
21141         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
21142         Revert automatic dependency patch.
21143
21144 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
21145
21146         PR target/35657
21147         * config/i386/i386.c (ix86_function_arg_boundary): Align
21148         decimal floating point to its natural boundary.
21149
21150 2008-03-27  Richard Guenther  <rguenther@suse.de>
21151
21152         PR middle-end/35716
21153         * fold-const.c (fold_comparison): Restrict distinct decl
21154         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
21155         solely rely on operand_equal_p.
21156
21157 2008-03-27  Richard Guenther  <rguenther@suse.de>
21158
21159         PR c/32511
21160         * c-common.c (handle_weak_attribute): Reject combination of
21161         weak and inline.
21162
21163 2008-03-27  Richard Guenther  <rguenther@suse.de>
21164
21165         PR tree-optimization/32810
21166         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
21167         conversions from DECL_INITIAL.
21168         (fold_const_aggregate_ref): Likewise from constructor elements.
21169
21170 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
21171
21172         * tree-affine.h (aff_combination_expand): Declare.
21173         (get_inner_reference_aff): Likewise.
21174         * tree-affine.c (aff_combination_expand): Split out from
21175         tree_to_aff_combination_expand.
21176         (get_inner_reference_aff): New function.
21177         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
21178         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
21179         (struct lim_aux_data): sm_done field removed.
21180         (mem_ref_loc_p, mem_ref_locs_p): New types.
21181         (struct mem_ref): Added id, stored, accesses_in_loop,
21182         indep_loop, dep_loop, indep_ref, dep_ref fields.
21183         Removed is_stored, locs and next fields.
21184         (memory_accesses): New variable.
21185         (movement_possibility): Do not allow moving statements
21186         that store to memory.
21187         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
21188         New functions.
21189         (determine_max_movement): For statements with memory references,
21190         find the outermost loop in that the reference is independent.
21191         (move_computations_stmt): Mark the virtual operands for renaming.
21192         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
21193         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
21194         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
21195         add_vop_ref_mapping, create_vop_ref_mapping_loop,
21196         create_vop_ref_mapping, analyze_memory_references,
21197         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
21198         get_all_locs_in_loop, ref_always_accessed_p,
21199         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
21200         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
21201         store_motion_loop, store_motion): New functions.
21202         (struct vop_to_refs_elt): New type.
21203         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
21204         memref_hash, memref_eq, hoist_memory_references): Rewritten.
21205         (schedule_sm): Replaced by...
21206         (execute_sm): ... this.
21207         (determine_lsm_ref, hoist_memory_references,
21208         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
21209         find_more_ref_vops, free_mem_ref, free_mem_refs,
21210         determine_lsm_loop, determine_lsm): Removed.
21211         (tree_ssa_lim_finalize): Free data structures used by store motion.
21212         (tree_ssa_lim): Call analyze_memory_references.  Use
21213         store_motion instead of determine_lsm.
21214
21215 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
21216
21217         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
21218         rename tmake_file to m68hc11/t-m68hc11.
21219         (mcore): Set inhibit_libc to true.
21220         * config.host (alpha*-dec-*vms*): Set extra_programs.
21221         (interix3*): Don't use host_xmake_file.
21222         * configure.ac: Let config.gcc override inhibit_libc.
21223         * configure: Regenerate.
21224
21225         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
21226         * config/t-openbsd-thread: Remove commented out lines.
21227
21228         * config/x-interix: Remove.
21229
21230         * config/m68hc11/t-m68hc11-gas: Rename to...
21231         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
21232
21233         * config/mcore/t-mcore: Remove T_CFLAGS.
21234         * config/mcore/t-mcore-pe: Likewise.
21235
21236 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
21237
21238         * configure.ac: Replace custom __GNU_SOURCE test with
21239         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
21240         * aclocal.m4: Regenerate.
21241         * configure: Regenerate.
21242         * config.in: Regenerate.
21243
21244 2008-03-27  Richard Guenther  <rguenther@suse.de>
21245
21246         * fold-const.c (target.h): Include.
21247         (fold_comparison): Fold comparison of addresses of decls
21248         that bind locally or of constants.  Consolidate address folding code.
21249         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
21250         results from fold_binary_to_constant.
21251         (compare_values_warnv): Likewise.
21252
21253 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
21254
21255         PR middle-end/35429
21256         * fold-const.c (fold_truthop): Check for integeral types when folding
21257         a == 0 && b == 0 and a != 0 || b != 0 .
21258
21259 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
21260
21261         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
21262
21263 2008-03-26  Andreas Schwab  <schwab@suse.de>
21264
21265         * doc/invoke.texi: Fix use of @item vs. @itemx.
21266
21267 2008-03-26  Tom Tromey  <tromey@redhat.com>
21268
21269         * Makefile.in (build/gensupport.o, build/print-rtl.o,
21270         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
21271         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
21272         build/gencodes.o, build/genconditions.o, build/genconfig.o,
21273         build/genconstants.o, build/genemit.o, build/genextract.o,
21274         build/genflags.o, build/genmddeps.o, build/genopinit.o,
21275         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
21276         options.h.
21277
21278 2008-03-26  Richard Guenther  <rguenther@suse.de>
21279
21280         Revert
21281         2008-03-26  Richard Guenther  <rguenther@suse.de>
21282
21283         * fold-const.c (target.h): Include.
21284         (fold_comparison): Fold comparison of addresses of two decls
21285         that bind locally.  Consolidate address folding code.
21286
21287 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21288
21289         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
21290         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
21291         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
21292         dconstsqrt2, dconstthird, dconste and/or dconst10.
21293         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
21294         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
21295         dconstsqrt2, dconste): Delete.
21296         (init_emit_once): Likewise.  Simplify initializing dconstm1.
21297         Constify variable.
21298         * real.c (get_real_const): New.
21299         * real.h (dconst3, dconst10, dconstm2, dconstthird,
21300         dconstsqrt2, dconste): Delete.
21301         (real_value_const, get_real_const): New.
21302
21303 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
21304
21305         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
21306
21307         * config/i386/i386.c (ix86_function_arg_boundary): Check
21308         BIGGEST_ALIGNMENT instead of 128.
21309         (setup_incoming_varargs_64): Likewise.
21310
21311 2008-03-26  Tom Tromey  <tromey@redhat.com>
21312
21313         * Makefile.in (DEPFILES): Add missing '/'.
21314
21315 2008-03-26  Richard Guenther  <rguenther@suse.de>
21316
21317         * fold-const.c (target.h): Include.
21318         (fold_comparison): Fold comparison of addresses of two decls
21319         that bind locally.  Consolidate address folding code.
21320
21321 2008-03-26  Nick Clifton  <nickc@redhat.com>
21322
21323         PR target/31232
21324         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
21325         not allow INT+INT as a legitimate addressing mode.
21326
21327 2008-03-26  Richard Guenther  <rguenther@suse.de>
21328
21329         * tree-flow.h (widen_bitfield): Remove declaration.
21330         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
21331         (widen_bitfield): Remove function.
21332         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
21333         code.
21334
21335 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
21336
21337         PR target/31558
21338         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
21339         error_mark_node's.
21340
21341 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
21342
21343         PR rtl-optimization/35232
21344         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
21345         (forget_old_reloads_1, forget_marked_reloads): Don't clear
21346         reg_reloaded_call_part_clobbered here.
21347         (reload_regs_reach_end_p): New function.
21348         (reload_reg_rtx_for_input): New variable.
21349         (reload_reg_rtx_for_output): Likewise.
21350         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
21351         when reassigning a pseudo register.  Load reloadreg from
21352         reload_reg_rtx_for_input, moving the mode and register
21353         calculation to...
21354         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
21355         instead of the original when deciding whether an input reload
21356         would be a no-op or whether an output reload can be deleted.
21357         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
21358         when setting up new_spill_reg_store.  Load it from
21359         reload_reg_rtx_for_output, moving the mode and register
21360         calculation to...
21361         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
21362         instead of the original when deciding whether an output reload
21363         would be a no-op.  Do the same when modifying insn notes.
21364         Use rtx_equal_p instead of == to compare the registers.
21365         (inherit_piecemeal_p): Take a mode and two register numbers
21366         as argument.
21367         (emit_reload_insns): Clear new_spill_reg_store for every hard
21368         register in the reload register.  Remove spill registers
21369         from reg_reloaded_valid before considering whether to record
21370         inheritance information for them.  Use reload_reg_rtx_for_output
21371         instead of reg_rtx when recording output reloads.  Use
21372         reload_reg_rtx_for_input instead of reg_rtx when recording
21373         input reloads.  Set or clear reg_reloaded_call_part_clobbered
21374         at the same time as setting reg_reloaded_valid.
21375         (delete_output_reload): Add a new_reload_reg parameter and use it
21376         instead of rld[j].reg_rtx.
21377         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
21378         calls accordingly.
21379
21380 2008-03-25  Tom Tromey  <tromey@redhat.com>
21381
21382         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
21383         (build/genattr.o): Likewise.
21384         (build/genattrtab.o): Likewise.
21385         (build/gencodes.o): Likewise.
21386         (build/genconfig.o): Likewise.
21387         (build/genconstants.o): Likewise.
21388         (build/genemit.o): Likewise.
21389         (build/genextract.o): Likewise.
21390         (build/genflags.o): Likewise.
21391
21392 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
21393
21394         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
21395         instead of size_int for integer types.
21396         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
21397         to match type of MINUS_EXPR.
21398
21399 2008-03-25  Tom Tromey  <tromey@redhat.com>
21400
21401         * configure: Rebuilt.
21402         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
21403         Makefile.
21404
21405 2008-03-25  Tom Tromey  <tromey@redhat.com>
21406
21407         * config/x-solaris (host-solaris.o): Update.
21408         * config/x-linux (host-linux.o): Update.
21409         * config/x-hpux (host-hpux.o): Update.
21410         * config/x-darwin (host-darwin.o): Update.
21411         * config/v850/t-v850e (v850-c.o): Update.
21412         * config/v850/t-v850 (v850-c.o): Update.
21413         * config/t-vxworks (vxworks.o): Update.
21414         * config/t-sol2 (sol2-c.o, sol2.o): Update.
21415         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
21416         * config/spu/t-spu-elf (spu-c.o): Update.
21417         (spu.o): Remove.
21418         * config/sh/t-symbian (sh-c.o): Update.
21419         (symbian.o): Update.
21420         * config/sh/t-sh (sh-c.o): Update.
21421         * config/score/t-score-elf (score7.o, score3.o): Update.
21422         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
21423         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
21424         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
21425         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
21426         (rs6000.o): Remove.
21427         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
21428         * config/m32c/t-m32c (m32c-pragma.o): Update.
21429         * config/ia64/t-ia64 (ia64-c.o): Update.
21430         * config/i386/x-mingw32 (host-mingw32.o): Update.
21431         * config/i386/x-i386 (driver-i386.o): Update.
21432         * config/i386/x-darwin (host-i386-darwin.o): Update.
21433         * config/i386/x-cygwin (host-cygwin.o): Update.
21434         * config/i386/t-nwld (nwld.o): Update.
21435         * config/i386/t-netware (netware.o): Update.
21436         * config/i386/t-interix (winnt.o): Update.
21437         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
21438         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
21439         msformat-c.o): Update.
21440         * config/bfin/t-bfin-linux (generated_files): Add
21441         linux-sysroot-suffix.h.
21442         * config/arm/t-wince-pe (pe.o): Update.
21443         * config/arm/t-strongarm-pe (pe.o): Update.
21444         * config/arm/t-pe (pe.o): Update.
21445         * config/arm/t-arm (arm-c.o): Update.
21446         * doc/install.texi (Prerequisites): Require make 3.80.
21447         * Makefile.in: Remove .o targets.
21448         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
21449         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
21450         (simple_generated_h, simple_generated_c): Move earlier.
21451         (generated_files): New variable.
21452         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
21453         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
21454         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
21455         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
21456         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
21457         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
21458         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
21459         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
21460         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
21461         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
21462         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
21463         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
21464         (.c.o): Remove.
21465         (COMPILE.base, COMPILE): New variables.
21466         (%.o): New pattern rule.
21467         (ALL_HOST_OBJS): New variable.
21468         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
21469         (dummy-checksum.o, cc1-checksum.o): Remove.
21470         (DRIVER_SHLIB): New variable.
21471         (DRIVER_DEFINES): Use it.
21472         (gencondmd.c): Move out of build/.
21473         (s-conditions): Update.
21474         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
21475         (ALL_BUILD_OBJS): Likewise.
21476         (build/%.o): Use BUILDCOMPILE.
21477         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
21478         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
21479         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
21480         build/gencheck.o, build/gencodes.o, build/genconditions.o,
21481         build/genconfig.o, build/genconstants.o, build/genemit.o,
21482         build/genextract.o, build/genflags.o, build/genmddeps.o,
21483         build/genopinit.o, build/genoutput.o, build/genpeep.o,
21484         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
21485         build/gen-protos.o, build/scan.o, build/fix-header.o,
21486         build/scan-decls.o): Simplify.
21487         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
21488         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
21489         prefix.o, toplev.o): Reduce to variable setting.
21490         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
21491         ($(out_object_file), gcc-options.o): New targets.
21492         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
21493         * configure: Rebuilt.
21494         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
21495         * doc/sourcebuild.texi (Front End Directory): Document new variable.
21496
21497 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
21498
21499         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
21500         complain when we hit an error, return ERROR_MARK_NODE.
21501
21502 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
21503
21504         * config/sh/constraints.md (Pso, Psz): New constraints.
21505         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
21506         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
21507
21508 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
21509
21510         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
21511         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
21512
21513 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
21514
21515         * config/sh/sh.md (prefetch): Add condition for SH2A target.
21516         (prefetch_sh2a): New.
21517
21518 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
21519             Naveen.H.S  <naveen.hs@kpitcummins.com>
21520
21521         * config/sh/constraints.md (I28): New constraint.
21522         * config/sh/sh.c (broken_move): Add support for movi20s.
21523         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
21524
21525 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
21526             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
21527             Naveen.H.S  <naveen.hs@kpitcummins.com>
21528
21529         * config/sh/sh.c (SH_ATTRIBUTES): Define.
21530         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
21531         (print_operand): Handle resbank in %@ operand code.
21532         (sh_encode_section_info): New.
21533         (push_regs): Add conditions for resbank.
21534         (sh_expand_epilogue): Likewise.
21535         (sh_insert_attributes): Likewise.
21536         (sh_attribute_table): Likewise.
21537         (sh_handle_resbank_handler_attribute): New.
21538         (sh2a_handle_function_vector_handler_attribute): New.
21539         (sh2a_is_function_vector_call): New.
21540         (sh2a_get_function_vector_number): New.
21541         (sh2a_function_vector_p): New.
21542         (sh_cfun_resbank_handler_p): New.
21543         * config/sh/sh.md (calli): Emit jsr/n if possible.
21544         (calli_tbr_rel): New.
21545         (calli_pcrel): Emit jsr/n if possible.
21546         (return_i): Emit rts/n if possible.
21547         (call_valuei_tbr_rel): New.
21548         (call_valuei_pcrel): Add condition for SH2A target.
21549         (call_value): Likewise.
21550         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
21551         (sh2a_get_function_vector_number): Likewise.
21552         (sh2a_is_function_vector_call): Likewise.
21553         * doc/extend.texi: Document TBR relative addressing of SH2A.
21554         (resbank): Add description for SH2A.
21555
21556 2008-03-24  Richard Guenther  <rguenther@suse.de>
21557
21558         PR c/22371
21559         * gimplify.c (gimplify_modify_expr): For frontend type-correct
21560         pointer assignments change conversions according to middle-end rules.
21561         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
21562         * configure.ac: Include type checking in yes.
21563         * configure: Regenerate.
21564
21565 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
21566
21567         * diagnostic.c (diagnostic_count_diagnostic): Delete.
21568         (diagnostic_report_diagnostic): Update. Handle ICEs here.
21569
21570 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
21571
21572         * gthr-vxworks.h (UNUSED): Define.
21573
21574 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
21575
21576         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
21577
21578 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
21579
21580         * doc/extend.texi (Function Attributes): Add missing comma in the
21581         example of the "alloc_size" attribute.
21582
21583 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
21584
21585         Revert:
21586         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
21587
21588         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
21589         32bit host.
21590
21591         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
21592
21593         PR target/35496
21594         * stor-layout.c (update_alignment_for_field): Set minimum alignment
21595         of the underlying type of a MS bitfield layout to the natural
21596         alignment of the type.
21597
21598         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
21599
21600         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
21601         to their natural alignment to avoid store forwarding stalls.
21602
21603 2008-03-22  Richard Guenther  <rguenther@suse.de>
21604
21605         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
21606         For PHI nodes verify the address is invariant.
21607         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
21608         (get_symbol_constant_value): Use is_gimple_min_invariant.
21609         (maybe_fold_stmt_indirect): Likewise.
21610
21611 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
21612
21613         PR rtl-optimization/33927
21614         * Makefile.in (dse.o): Depend on $(TM_P_H).
21615         * expr.h (extract_low_bits): Declare.
21616         * expmed.c (extract_low_bits): New function.
21617         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
21618         * dse.c: Include tm_p.h.
21619         (find_shift_sequence): Remove the read_reg argument and return the
21620         read value.  Emit the instructions instead of returning them.
21621         Iterate on new_mode rather than calculating it each time.
21622         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
21623         source to NEW_MODE and extract_low_bits to convert the shifted
21624         value to READ_MODE.
21625         (replace_read): Allow the load and store to have different mode
21626         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
21627         or extraction instructions before trying the replacement.  Update
21628         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
21629
21630 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
21631
21632         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
21633         to their natural alignment to avoid store forwarding stalls.
21634
21635 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
21636
21637         PR target/27946
21638         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
21639         encouraging but not allowing gprs for input;
21640         change the input constraint to !f#r.
21641         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
21642         gprs for output;
21643         change the output constraint to !f#r.
21644
21645 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
21646
21647         PR target/13958
21648         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
21649         corresponding post-reload splitters.
21650         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
21651         when x87 FP math is selected.
21652         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
21653         New function prototype.
21654         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
21655         unreachable function to ease macroization of insn patterns.
21656
21657 2008-03-21  Martin Jambor  <mjambor@suse.cz>
21658
21659         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
21660         reference dumps if ddr is NULL or dependence is unknown.
21661
21662 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
21663
21664         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
21665         unsigned extension into account.
21666         (ATOMIC_COMPARE_AND_SWAP): Likewise.
21667         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
21668         Do computations on a scratch register.
21669
21670 2008-03-21  Richard Guenther  <rguenther@suse.de>
21671
21672         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
21673         Use is_gimple_min_invariant instead of TREE_INVARIANT.
21674         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
21675         * tree-ssa-dom.c (record_equality): Likewise.
21676         * tree-inline.c (copy_body_r): Likewise.
21677         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
21678         TREE_INVARIANT.
21679
21680 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
21681
21682         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
21683         as 'delete_unused' argument.
21684
21685 2008-03-20  Richard Guenther  <rguenther@suse.de>
21686
21687         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
21688         special casing of constant qualifiers.
21689         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
21690         care about them in general.
21691         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
21692         regardless of their type.
21693         (fold_stmt_r): Forcefully fold *& if we end up with that.
21694
21695 2008-03-20  Paul Brook  <paul@codesourcery.com>
21696
21697         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
21698         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
21699         linker flags.
21700         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
21701         definition.
21702         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
21703         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
21704
21705 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
21706
21707         * common.opt (Wmudflap): New option.
21708         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
21709         (mx_register_decls): Likewise.
21710         (mudflap_finish_file): Likewise.
21711         * doc/invoke.texi: Document -Wno-mudflap.
21712
21713 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
21714
21715         * c-format.c (replace_format_name_to_system_name): New.
21716         (cmp_attribs): New.
21717         (convert_format_name_to_system_name): New.
21718         (decode_format_attr): Add use of convert_format_name_to_system_name.
21719         (format_types_orig): Add gnu_ prefix to names.
21720         (check_format_info_main): Special treating of \0 escaped names for
21721         supporting multi-character format specifiers as I32, I64.
21722         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
21723         (gnu_target_overrides_format_attributes): New.
21724         * c-format.h: Add structure target_ovr_attr to hold
21725         system specific formatter names.
21726         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
21727         msformat-c.o file to c_target_objs and cxx_target_objs.
21728         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
21729         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
21730         (TARGET_N_FORMAT_TYPES): New.
21731         * config/i386/msformat-c.c: New.
21732         * config/i386/t-cygming: Add build rule for msformat-c.o.
21733         * doc/extend.texi: Add new format names gnu_* and ms_* and
21734         further details.
21735         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
21736
21737 2008-03-20  Ira Rosen  <irar@il.ibm.com>
21738
21739         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
21740         optimizations turned on under -O3.
21741         (ftree-vectorize): Add that the flag is turned on with -O3.
21742
21743 2008-03-20  Ben Elliston  <bje@au.ibm.com>
21744
21745         * regmove.c (try_auto_increment): Fix spelling error in comment.
21746         * final.c (final_scan_insn): Likewise.
21747
21748 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
21749
21750         PR target/14552
21751         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
21752         allocator preferences for "y" and "r" class registers.
21753         ("*mov<mode>_internal"): Ditto.
21754         ("*movv2sf_internal_rex64"): Ditto.
21755         ("*movv2sf_internal"): Ditto.
21756
21757 2008-03-19  Michael Matz  <matz@suse.de>
21758
21759         PR middle-end/35616
21760         * calls.c (expand_call): Check overlap of arguments with call
21761         address for sibcalls.
21762
21763 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
21764
21765         PR target/35496
21766         * stor-layout.c (update_alignment_for_field): Set minimum alignment
21767         of the underlying type of a MS bitfield layout to the natural
21768         alignment of the type.
21769
21770 2008-03-19  Jan Hubicka  <jh@suse.cz>
21771
21772         PR other/35094
21773         * toplev.c (decode_d_option): Handle all CPP flags.
21774         * tree-vrp.c: Update tree_pass descriptors.
21775         * regrename.c: Update tree_pass descriptors.
21776         * fwprop.c: Update tree_pass descriptors.
21777         * doc/invoke.texi: Remove documentation of dropped -d? flags.
21778         * tree-into-ssa.c: Update tree_pass descriptors.
21779         * tree-dump.c: Update tree_pass descriptors.
21780         * tree-complex.c: Update tree_pass descriptors.
21781         * tree-dump.h: Update tree_pass descriptors.
21782         * see.c: Update tree_pass descriptors.
21783         * cgraphbuild.c: Update tree_pass descriptors.
21784         * tracer.c: Update tree_pass descriptors.
21785         * tree-loop-distribution.c: Update tree_pass descriptors.
21786         * cgraph.c: Update tree_pass descriptors.
21787         * postreload-gcse.c: Update tree_pass descriptors.
21788         * postreload.c: Update tree_pass descriptors.
21789         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
21790         * tree-tailcall.c: Update tree_pass descriptors.
21791         * tree-pass.h (tree_opt_pass): Rename to ...
21792         (opt_pass) ... this one; add "type" field and remove letter field.
21793         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
21794         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
21795         all_lowering_passes): Update declaration.
21796         * ipa-cp.c: Update tree_pass descriptors.
21797         * final.c: Update tree_pass descriptors.
21798         * omp-low.c: Update tree_pass descriptors.
21799         * tree-ssa-dse.c: Update tree_pass descriptors.
21800         * ipa-reference.c: Update tree_pass descriptors.
21801         * tree-ssa-uncprop.c: Update tree_pass descriptors.
21802         * auto-inc-dec.c: Update tree_pass descriptors.
21803         * reorg.c: Update tree_pass descriptors.
21804         * cgraphunit.c: Update tree_pass descriptors.
21805         * tree-ssa-copyrename.c: Update tree_pass descriptors.
21806         * tree-ssa-ccp.c: Update tree_pass descriptors.
21807         * df-core.c: Update tree_pass descriptors.
21808         * mode-switching.c: Update tree_pass descriptors.
21809         * tree-nomudflap.c: Update tree_pass descriptors.
21810         * modulo-sched.c: Update tree_pass descriptors.
21811         * ipa-pure-const.c: Update tree_pass descriptors.
21812         * cse.c: Update tree_pass descriptors.
21813         * web.c: Update tree_pass descriptors.
21814         * tree-stdarg.c: Update tree_pass descriptors.
21815         * tree-ssa-math-opts.c: Update tree_pass descriptors.
21816         * tree-ssa-dom.c: Update tree_pass descriptors.
21817         * tree-nrv.c: Update tree_pass descriptors.
21818         * tree-ssa-alias.c: Update tree_pass descriptors.
21819         * loop-init.c: Update tree_pass descriptors.
21820         * gimple-low.c: Update tree_pass descriptors.
21821         * ipa-inline.c: Update tree_pass descriptors.
21822         * tree-ssa-sink.c: Update tree_pass descriptors.
21823         * global.c: Update tree_pass descriptors.
21824         * ifcvt.c: Update tree_pass descriptors.
21825         * jump.c: Update tree_pass descriptors.
21826         * predict.c: Update tree_pass descriptors.
21827         * tree-ssa-loop.c: Update tree_pass descriptors.
21828         * recog.c: Update tree_pass descriptors.
21829         * dse.c: Update tree_pass descriptors.
21830         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
21831         * tree-eh.c: Update tree_pass descriptors.
21832         * regmove.c: Update tree_pass descriptors.
21833         * local-alloc.c
21834         * function.c: Update tree_pass descriptors.
21835         * tree-vectorizer.c: Update tree_pass descriptors.
21836         * gcse.c: Update tree_pass descriptors.
21837         * ipa-type-escape.c: Update tree_pass descriptors.
21838         * tree-if-conv.c: Update tree_pass descriptors.
21839         * init-regs.c: Update tree_pass descriptors.
21840         * ipa.c: Update tree_pass descriptors.
21841         * tree-ssa-phiopt.c: Update tree_pass descriptors.
21842         * rtl-factoring.c: Update tree_pass descriptors.
21843         * lower-subreg.c: Update tree_pass descriptors.
21844         * bt-load.c: Update tree_pass descriptors.
21845         * tree-dfa.c: Update tree_pass descriptors.
21846         * except.c: Update tree_pass descriptors.
21847         * emit-rtl.c: Update tree_pass descriptors.
21848         * cfgexpand.c: Update tree_pass descriptors.
21849         * tree-cfgcleanup.c: Update tree_pass descriptors.
21850         * cfgcleanup.c: Update tree_pass descriptors.
21851         * tree-ssa-pre.c: Update tree_pass descriptors.
21852         * tree-sra.c: Update tree_pass descriptors.
21853         * tree-mudflap.c: Update tree_pass descriptors.
21854         * tree-ssa-copy.c: Update tree_pass descriptors.
21855         * cfglayout.c: Update tree_pass descriptors.
21856         * tree-ssa-forwprop.c: Update tree_pass descriptors.
21857         * tree-ssa-dce.c: Update tree_pass descriptors.
21858         * tree-ssa.c: Update tree_pass descriptors.
21859         * regclass.c: Update tree_pass descriptors.
21860         * integrate.c: Update tree_pass descriptors.
21861         * tree-optimize.c: Update tree_pass descriptors.
21862         * tree-ssa-phiprop.c: Update tree_pass descriptors.
21863         * tree-object-size.c: Update tree_pass descriptors.
21864         * combine.c: Update tree_pass descriptors.
21865         * tree-outof-ssa.c: Update tree_pass descriptors.
21866         * bb-reorder.c: Update tree_pass descriptors.
21867         * stack-ptr-mod.c: Update tree_pass descriptors.
21868         * var-tracking.c: Update tree_pass descriptors.
21869         * tree-profile.c: Update tree_pass descriptors.
21870         * tree-vect-generic.c: Update tree_pass descriptors.
21871         * reg-stack.c: Update tree_pass descriptors.
21872         * sched-rgn.c: Update tree_pass descriptors.
21873         * tree-ssa-structalias.c: Update tree_pass descriptors.
21874         * tree-cfg.c: Update tree_pass descriptors.
21875         * passes.c (current_pass): Update declaration.
21876         (finish_optimization_passes): Update.
21877         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
21878         (register_one_dump_file, register_dump_files_1, next_pass_1):
21879         Update arguments.
21880         (init_optimization_passes): Update handling of new types.
21881         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
21882         * ipa-struct-reorg.c: Update tree_pass descriptors.
21883         * tree-ssa-reassoc.c: Update tree_pass descriptors.
21884         * combine-stack-adj.c: Update tree_pass descriptors.
21885         * cfgrtl.c: Update tree_pass descriptors.
21886         * dce.c: Update tree_pass descriptors.
21887         * tree-ssanames.c: Update tree_pass descriptors.
21888
21889 2008-03-19  Richard Guenther  <rguenther@suse.de>
21890
21891         PR middle-end/35609
21892         * tree-ssa.c (walk_data): New structure.
21893         (warn_uninitialized_var): If not always_executed warn with "maybe"
21894         instead of "is".
21895         (execute_early_warn_uninitialized): Compute post-dominators.
21896         Initialize always_executed before processing each basic block.
21897
21898 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
21899
21900         PR target/35504
21901         * config/i386/i386.c (x86_this_parameter): Calculate correct location
21902         of "this" pointer when "regparm = N" or "fastcall" is in effect.
21903
21904 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21905
21906         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
21907
21908 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
21909
21910         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
21911         is true.
21912         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
21913         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
21914         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
21915         target after ignore has been set, and move there also the commputation
21916         of subtarget and original_target.
21917         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
21918         (LANG_HOOKS_INITIALIZER): Remove it.
21919         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
21920
21921 2008-03-18  Richard Guenther  <rguenther@suse.de>
21922
21923         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
21924         found an expression with constants, note that in the VN for the lhs.
21925         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
21926         fold them to constants if possible.  Run cleanup_cfg if done so.
21927         (execute_pre): Return todo.
21928         (do_pre): Likewise.
21929         (execute_fre): Likewise.
21930         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
21931         of constants.
21932         (get_prop_source_stmt): Look through pointer conversions.
21933
21934 2008-03-18  Jan Hubicka  <jh@suse.cz>
21935
21936         * tree-pretty-print.c: Include predict.h.
21937         (dump_generic_node): Dump predictor.
21938         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
21939         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
21940         * gimple-low.c (lower_stmt): Likewise.
21941         * expr.c (expand_expr_real): Likewise.
21942         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
21943         them.
21944         (build_predict_expr, build_predict_expr): New.
21945         * predict.h (predictor_name, build_predict_expr): Update.
21946         * c-typeck.c (c_finish_bc_stmt): Add prediction.
21947         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
21948         * predict.def (PRED_CONTINUE): Update hitrate.
21949         * tree.def (PREDICT_EXPR): Define.
21950         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
21951         do not handle BIND_EXPR.
21952         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
21953         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
21954         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
21955         operands.
21956
21957 2008-03-18  Michael Matz  <matz@suse.de>
21958
21959         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
21960
21961 2008-03-18  Richard Guenther  <rguenther@suse.de>
21962
21963         * tree-gimple.h (is_gimple_invariant_address): Declare.
21964         (is_gimple_constant): Likewise.
21965         * tree-gimple.c (is_gimple_constant): New function.
21966         (is_gimple_invariant_address): Likewise.
21967         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
21968         and is_gimple_invariant_address.
21969         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
21970         previous change.
21971         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
21972         an addressable base.
21973
21974 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
21975
21976         PR middle-end/35611
21977         * gimplify.c (gimplify_expr): Gimplify second operand of
21978         OMP_ATOMIC_LOAD.
21979
21980 2008-03-17  Richard Guenther  <rguenther@suse.de>
21981
21982         PR tree-optimization/19637
21983         * fold-const.c (fold_unary): Remove restrictions of removing
21984         intermediate pointer-conversions (P2)(P1)P0.
21985         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
21986         conversion to void pointer.
21987         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
21988
21989 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
21990
21991         PR debug/31510
21992         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
21993         emulated thread local variables.
21994
21995 2008-03-16  Richard Guenther  <rguenther@suse.de>
21996
21997         PR middle-end/35607
21998         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
21999         expand TREE_INVARIANT operations that are not gimple invariant.
22000
22001 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
22002
22003         * doc/extend.texi (Alignment): Say that the ABI controls
22004         the __alignof__ for non-strict-alignment targets rather
22005         than being a recommendation.
22006
22007 2008-03-15  Paul Brook  <paul@codesourcery.com>
22008
22009         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
22010         annotations.
22011         (arm_output_fn_unwind): Mark functions that can not be unwound.
22012
22013 2008-03-15  Paul Brook  <paul@codesourcery.com>
22014
22015         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
22016         extension instructions.
22017
22018 2008-03-15  Richard Guenther  <rguenther@suse.de>
22019
22020         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
22021         and fold constant aggregate refs.
22022         (fold_const_aggregate_ref): Handle string constants
22023         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
22024         (evaluate_stmt): Simplify now that ccp_fold folds constant
22025         aggregate refs.
22026
22027 2008-03-15  Paul Brook  <paul@codesourcery.com>
22028
22029         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
22030         (extzv): Use gen_extzv_t2.
22031         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
22032
22033 2008-03-15  Richard Guenther  <rguenther@suse.de>
22034
22035         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
22036         (fold_const_aggregate_ref): Likewise.
22037         (get_value): Return NULL if we don't have any values.
22038         (ccp_finalize): Set const_val to NULL after freeing it.
22039         * tree-flow.h (get_symbol_constant_value): Declare.
22040         (fold_const_aggregate_ref): Likewise.
22041         * tree-ssa-sccvn.c (try_to_simplify): Use them.
22042
22043 2008-03-15  Richard Guenther  <rguenther@suse.de>
22044
22045         PR middle-end/35593
22046         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
22047         to not produce negative array indices if not allowed.  Add
22048         parameter to indicate that.
22049         (maybe_fold_offset_to_component_ref): Allow negative array
22050         indices only for the first member of a structure.
22051         (maybe_fold_offset_to_reference): Allow negative array indices.
22052         (maybe_fold_stmt_addition): Likewise.
22053
22054 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
22055             Anatoly Sokolov <aesok@post.ru>
22056
22057         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
22058         (avr_arch): Add ARCH_AVR6.
22059         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
22060         (initial_elimination_offset): Initialize and use 'avr_pc_size'
22061         instead of fixed value 2.
22062         (print_operand_address): Use gs() asm specifier instead of pm().
22063         (avr_assemble_integer): (Ditto.).
22064         (avr_output_addr_vec_elt): (Ditto.).
22065         (print_operand): Handle "!" code.
22066         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
22067         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
22068         (AVR_HAVE_EIJMP_EICALL): Define.
22069         (AVR_3_BYTE_PC): Redefine.
22070         (AVR_2_BYTE_PC): (Ditto.).
22071         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
22072         (LINK_SPEC): Add atmega2560 and atmega2561.
22073         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
22074         (crtm2561.o).
22075         * config/avr/avr.md (call_insn): Use eicall instead of icall
22076         for 3 byte PC devices.
22077         (call_value_insn): (Ditto.).
22078         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
22079         (indirect_jump): Use only for for 2 byte PC devices.
22080         (*tablejump): (Ditto.).
22081         (*indirect_jump_avr6): Add insn.
22082         (*tablejump_rjmp): Don't use for 3 byte PC devices.
22083         * config/avr/libgcc.S (__prologue_saves__): Use eijmp
22084         instead of ijmp for 3 byte PC devices.
22085         (__tablejump2__): (Ditto.).
22086         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
22087         (MULITLIB_DIRNAMES): (Ditto.).
22088         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
22089
22090 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
22091
22092         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
22093         "sse2_umulsidi3".  Use V1DI mode for operand 0.
22094         ("mmx_psadbw"): Use V1DI mode for operand 0.
22095         * config/i386/i386-modes.def (V1SI): New vector mode.
22096         * config/i386/i386.c (struct builtin_description)
22097         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
22098         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
22099         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
22100         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
22101         v1di_ftype_v8qi_v8qi type.
22102         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
22103
22104         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
22105         __builtin_ia32_pmuludq]: Fix the mode of return value.
22106
22107 2008-03-15  Richard Guenther  <rguenther@suse.de>
22108
22109         PR middle-end/35595
22110         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
22111         being a PHI_NODE.
22112
22113 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
22114
22115         * doc/invoke.texi (Option Summary, Xtensa Options): Document
22116         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
22117         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
22118         unless TARGET_SERIALIZE_VOLATILE is enabled.
22119         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
22120         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
22121         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
22122
22123 2008-03-14  Richard Guenther  <rguenther@suse.de>
22124
22125         PR tree-optimization/34172
22126         * tree-flow.h (refs_may_alias_p): Declare.
22127         (get_single_def_stmt): Likewise.
22128         (get_single_def_stmt_from_phi): Likewise.
22129         (get_single_def_stmt_with_phi): Likewise.
22130         * tree-dfa.c (refs_may_alias_p): New function.
22131         (get_single_def_stmt): Likewise.
22132         (get_single_def_stmt_from_phi): Likewise.
22133         (get_single_def_stmt_with_phi): Likewise.
22134         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
22135         (vn_reference_lookup_1): New helper function.
22136         (vn_reference_lookup): Walk the virtual use-def chain to
22137         continue searching for a match if the def does not alias the
22138         reference we are looking for.
22139
22140 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
22141
22142         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
22143         archive and Perzl.  Update The Written Word listing.
22144
22145 2008-03-14  Richard Guenther  <rguenther@suse.de>
22146
22147         PR tree-optimization/34043
22148         PR tree-optimization/33989
22149         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
22150         when doing FRE.
22151         (bitmap_find_leader): Use extra argument to verify dominance
22152         relationship inside a basic-block.
22153         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
22154         (find_leader_in_sets): Adjust.
22155         (create_component_ref_by_pieces): Take extra argument for
22156         dominance check, handle lookup failures.
22157         (find_or_generate_expression): Likewise.
22158         (create_expression_by_pieces): Likewise.
22159         (insert_into_preds_of_block): Adjust.
22160         (create_value_expr_from): If asked for, verify all operands
22161         are in the blocks AVAIL_OUT set.
22162         (make_values_for_stmt): Check for SSA_NAMEs that are life
22163         over an abnormal edge.
22164         (compute_avail): Remove such check.
22165         (do_SCCVN_insertion): New function.
22166         (eliminate): If we do not find a leader suitable for replacement
22167         insert a replacement expression from SCCVN if available.
22168         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
22169         (struct vn_ssa_aux): Add needs_insertion flag.
22170         * tree-ssa-sccvn.c (may_insert): New global flag.
22171         (copy_reference_ops_from_ref): Value-number union member access
22172         based on its size, not type and member if insertion is allowed.
22173         (visit_reference_op_load): For a weak match from union type
22174         punning lookup a view-converted value and insert a SSA_NAME
22175         for that value if that is not found.
22176         (visit_use): Make dumps shorter.  Do not disallow value numbering
22177         SSA_NAMEs that are life over an abnormal edge to constants.
22178         (free_scc_vn): Release inserted SSA_NAMEs.
22179         (run_scc_vn): New flag to specify whether insertion is allowed.
22180         Process SSA_NAMEs in forward order.
22181         * tree-ssa-loop-im.c (for_each_index): Handle invariant
22182         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
22183         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
22184         pointer type to/from integral types that do not change the
22185         precision to regular conversions.
22186
22187 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
22188
22189         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
22190         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
22191         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
22192         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
22193         input arguments and the mode of return value.  Built-in functions
22194         that operate on whole 64-bit MMX register now use V1DI mode.
22195
22196 2008-03-13  Alon Dayan  <alond@il.ibm.com>
22197             Olga Golovanevsky  <olga@il.ibm.com>
22198
22199         PR tree-optimization/35041
22200         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
22201         to locate the right position in a statement.
22202
22203 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
22204
22205         PR target/34000
22206         PR target/35553
22207         * config/i386/xmmintrin.h:  Change all static inline functions to
22208         extern inline and add __gnu_inline__ attribute.
22209         * config/i386/bmintrin.h: Ditto.
22210         * config/i386/smmintrin.h: Ditto.
22211         * config/i386/tmmintrin.h: Ditto.
22212         * config/i386/mmintrin-common.h: Ditto.
22213         * config/i386/ammintrin.h: Ditto.
22214         * config/i386/emmintrin.h: Ditto.
22215         * config/i386/pmmintrin.h: Ditto.
22216         * config/i386/mmintrin.h: Ditto.
22217         * config/i386/mm3dnow.h: Ditto.
22218
22219 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
22220
22221         PR middle-end/35185
22222         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
22223         (lower_omp_2): New function.
22224         (lower_omp_1, lower_omp): Rewritten.
22225
22226 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
22227
22228         PR 35054
22229         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
22230         with the phrase "Microsoft Windows compilers".
22231         (Push/Pop Macro Pragmas): New subsection. Document
22232         #pragma push_macro and pragma pop_macro.
22233
22234 2008-03-12  Paul Brook  <paul@codesourcery.com>
22235
22236         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
22237
22238 2008-03-12  Paul Brook  <paul@codesourcery.com>
22239
22240         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
22241         (thumb2_alusi3_short): Exclude PLUS and MINUS.
22242         (thumb2_addsi_shortim): Rename ...
22243         (thumb2_addsi_short): ... to this.  Allow register operands.
22244         (thumb2_subsi_short): New pattern.
22245         (thumb2_one_cmplsi2_short,
22246         thumb2_negsi2_short): New patterns and peepholes.
22247
22248 2008-03-12  Paul Brook  <paul@codesourcery.com>
22249
22250         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
22251
22252 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
22253
22254         * config/i386/i386.md (int_cond): New code iterator.
22255         (fp_cond): Ditto.
22256         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
22257         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
22258         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
22259         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
22260         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
22261         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
22262         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
22263         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
22264
22265 2008-03-12  Paul Brook  <paul@codesourcery.com>
22266
22267         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
22268         instead of {arm,thumb}_compute_save_reg_mask.
22269         (output_return_instruction): Ditto.
22270         (thumb_unexpanded_epilogue): Ditto.
22271         (thumb1_expand_prologue): Ditto.
22272         (thumb1_output_function_prologue): Ditto.
22273         (arm_set_return_address): Ditto.
22274         (thumb_set_return_address): Ditto.
22275         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
22276         regs to achieve stack alignment.
22277         (thumb1_compute_save_reg_mask): Fix compiler warning.
22278         (arm_output_epilogue): Use offsets->saved_regs_mask.
22279         Adjust stack pointer by poping call clobered registers.
22280         (arm_expand_prologue): Use offsets->saved_regs_mask.
22281         Adjust stack pointer by pushing extra registers.
22282         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
22283
22284 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
22285
22286         PR tree-opt/35422
22287         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
22288         conversion to the operands of a multiplication.
22289
22290 2008-03-12  Richard Guenther  <rguenther@suse.de>
22291
22292         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
22293         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
22294         * timevar.def (TV_TREE_PHIPROP): Add.
22295         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
22296         pass description.  Use TV_TREE_PHIPROP.
22297         * tree-ssa-forwprop.c: Remove phiprop code.
22298
22299 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
22300
22301         PR middle-end/35549
22302         * omp-low.c (maybe_lookup_decl): Constify first argument.
22303         (use_pointer_for_field): Change last argument from bool to
22304         omp_context *.  Disallow shared copy-in/out in nested
22305         parallel if decl is shared in outer parallel too.
22306         (build_outer_var_ref, scan_sharing_clauses,
22307         lower_rec_input_clauses, lower_copyprivate_clauses,
22308         lower_send_clauses, lower_send_shared_vars): Adjust callers.
22309
22310 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
22311             Ira Rosen  <irar@il.ibm.com>
22312
22313         * tree-vectorizer.c (free_stmt_vec_info): New function.
22314         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
22315         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
22316         * tree-vectorizer.h (free_stmt_vec_info): Declare.
22317         * tree-vect-transform.c (vectorizable_conversion): Free
22318         vec_oprnds0 if it was allocated.
22319         (vect_permute_store_chain): Remove unused VECs.
22320         (vectorizable_store): Free VECs that are allocated in the..
22321         function.
22322         (vect_transform_strided_load, vectorizable_load): Likewise.
22323         (vect_remove_stores): Simplify the code.
22324         (vect_transform_loop): Move code to vect_remove_stores().
22325         Call vect_remove_stores() and free_stmt_vec_info().
22326
22327 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22328
22329         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
22330         TARGET_HPUX.  Revise comment.
22331         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
22332         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
22333         Use sr4 variant of `be' instruction when not generating PIC code.
22334         (attr_length_call): Adjust for above change.
22335
22336 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
22337
22338         * ipa-reference.c (static_execute): Remove module_statics_const and
22339         associated setting code.
22340
22341 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
22342
22343         PR target/35540
22344         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
22345         predicate for operand 1.
22346         (paritysi2_cmp): Use register_operand predicate for operand 2.
22347         Use earlyclobber modifier for operand 1.  Remove support for
22348         memory operands.
22349         (paritydi2_cmp): Use register_operand predicate for operand 3.
22350         Use earlyclobber modifier for operand 1.  Remove support for
22351         memory operands.
22352
22353 2008-03-11  Paul Brook  <paul@codesourcery.com>
22354             Vladimir Prus  <vladimir@codesourcery.com>
22355
22356         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
22357         (arm_compute_save_reg0_reg12_mask): Always
22358         check if register 11 must be saved.  Always safe hard frame pointer
22359         when frame_pointer_needeed.
22360         (arm_compute_save_reg_mask): Save IP and PC
22361         only with apcs frames.
22362         (arm_output_epilogue): Adjust Thumb2 codepath to
22363         be also invoked and work for ARM non-apcs frames.
22364         (arm_expand_prologue): Don't bother saving IP
22365         for non-apcs frame, since it's not clobbered by
22366         prologue code.  Implement non-apcs frame
22367         layout.
22368
22369 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
22370
22371         PR rtl-optimization/35281
22372         * expr.c (convert_move): Use a new pseudo for the intermediate
22373         from_mode->word_mode result.
22374
22375 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
22376
22377         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
22378         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
22379         * toplev.c (compile_file): Don't call it.
22380
22381 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
22382
22383         PR middle-end/35526
22384         * expr.c (store_expr): Call emit_block_move if the mode
22385         of "temp" RTX is BLKmode.
22386
22387 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
22388             Richard Guenther  <rguenther@suse.de>
22389
22390         PR tree-optimization/31358
22391         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
22392         the step with a NULL_TREE.
22393         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
22394         to sizetype if type is a pointer type.
22395         (add_candidate_1): Don't convert the base and step to
22396         the generic type if the orginal type is a pointer type.
22397         (add_iv_value_candidates): Use sizetype for the step
22398         if type is a pointer type.
22399         (cand_value_at): Likewise.
22400         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
22401         for pointer types.
22402         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
22403         Don't convert the tem affine to the type.
22404         (add_elt_to_tree): Use sizetype for the step if a pointer.
22405         Use POINTER_PLUS_EXPR for pointers.
22406         (aff_combination_to_tree): Use sizetype for the step if a
22407         pointer.
22408
22409 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
22410
22411         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
22412         Remove commutativity hint.
22413
22414 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
22415
22416         PR c/35438
22417         PR c/35439
22418         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
22419         errorneous type.  Check that v is a VAR_DECL.
22420
22421         PR middle-end/35099
22422         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
22423
22424 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
22425
22426         PR tree-optimization/35494
22427         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
22428         may be overriden at link and run time.
22429
22430 2008-03-10  Richard Guenther  <rguenther@suse.de>
22431
22432         PR tree-optimization/34677
22433         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
22434         (poolify_tree): Likewise.
22435         (modify_expr_template): Likewise.
22436         (poolify_modify_stmt): Likewise.
22437         (insert_fake_stores): Handle all component-ref style stores
22438         in addition to INDIRECT_REF.  Also handle complex types.
22439         Do not poolify the inserted load.
22440         (realify_fake_stores): Do not rebuild the tree but only
22441         make it a SSA_NAME copy.
22442         (init_pre): Remove initialzation of modify_expr_template.
22443         Do not allocate modify_expr_node_pool.
22444         (fini_pre): Do not free modify_expr_node_pool.
22445
22446 2008-03-10  Paul Brook  <paul@codesourcery.com>
22447
22448         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
22449         to avoid conflicts.
22450
22451 2008-03-10  Paul Brook  <paul@codesourcery.com>
22452             Mark Shinwell  <shinwell@codesourcery.com>
22453
22454         * config/arm/cortex-r4.md: New.
22455         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
22456         insn attributes.
22457         * config/arm/arm.md: Include cortex-r4.md.
22458         (insn): Add smmls, sdiv and udiv values.
22459         (generic_sched): Don't use generic scheduling for Cortex-R4.
22460         (arm_issue_rate): New function.
22461         (TARGET_SCHED_ISSUE_RATE): Define.
22462
22463 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
22464
22465         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
22466
22467 2008-03-10  Richard Guenther  <rguenther@suse.de>
22468
22469         * tree-ssa-pre.c (get_sccvn_value): Simplify.
22470         (compute_avail): Do not add stmt uses to AVAIL_OUT.
22471
22472 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
22473
22474         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
22475         Set default to true.
22476
22477 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22478
22479         * c.opt (Wsynth): Deprecate.
22480         * doc/invoke.texi (Option Summary, Warning Options): Document
22481         -Wno-format-contains-nul.
22482
22483 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
22484
22485         PR target/35496
22486         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
22487         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
22488
22489 2008-03-09  Ira Rosen  <irar@il.ibm.com>
22490
22491         * config/rs6000/rs6000.c (builtin_description): Rename vector
22492         left shift operations.
22493         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
22494         (altivec_vsl<VI_char>): Rename to ...
22495         (ashl<mode>3): ... new name.
22496         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
22497         gen_ashlv4si3.
22498         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
22499
22500 2008-03-08  Richard Guenther  <rguenther@suse.de>
22501
22502         * coverage.h (tree_coverage_counter_addr): Declare.
22503         * coverage.c (tree_coverage_counter_addr): New function.
22504         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
22505         before using again.
22506         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
22507         (tree_gen_one_value_profiler): Likewise.
22508         (tree_gen_ic_profiler): Likewise.
22509         (tree_gen_average_profiler): Likewise.
22510         (tree_gen_ior_profiler): Likewise.
22511
22512 2008-03-08  Richard Guenther  <rguenther@suse.de>
22513
22514         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
22515         (vn_binary_op_insert): Likewise.
22516         (vn_unary_op_lookup): Likewise.
22517         (vn_unary_op_insert): Likewise.
22518         (vn_nary_op_lookup): Declare.
22519         (vn_nary_op_insert): Likewise.
22520         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
22521         and binary hashes, use a single obstack for unary_op_pool
22522         and binary_op_pool.
22523         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
22524         a single struct vn_nary_op_s.  Store tree code length and
22525         a variable number of operands.
22526         (struct vn_reference_op_struct): Remove unused op2.
22527         (vn_reference_op_eq): Do not compare op2.
22528         (vn_reference_op_compute_hash): Do not compute hash of op2.
22529         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
22530         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
22531         with vn_nary_op_compute_hash.
22532         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
22533         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
22534         vn_nary_op_lookup.
22535         (vn_unary_op_insert, vn_binary_op_insert): Replace with
22536         vn_nary_op_insert.
22537         (visit_unary_op): Call nary functions.
22538         (visit_binary_op): Likewise.
22539         (process_scc): Adjust for struct vn_tables_s changes.
22540         (allocate_vn_table): Likewise.
22541         (free_vn_table): Likewise.
22542         * tree-vn.c (vn_add): Call nary functions.
22543         (vn_lookup): Likewise.
22544
22545 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
22546
22547         PR target/35498
22548         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
22549         wdst back after sync_compare_and_swapqhi_internal.
22550
22551 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
22552
22553         PR target/22152
22554         * config/i386/i386-modes.def (V1DI): New vector mode.
22555         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
22556         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
22557         (MMXMODE248): Ditto.
22558         (MMXMODE): Add V1DI mode.
22559         (mmxvecsize): Change DI mode to V1DI mode.
22560         ("mov<mode>): Use MMXMODEI8 mode iterator.
22561         ("*mov<mode>_internal_rex64"): Ditto.
22562         ("*mov<mode>_internal"): Ditto.
22563         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
22564         ("mmx_sub<mode>3"): Ditto.
22565         ("mmx_adddi3"): Remove insn pattern.
22566         ("mmx_subdi3"): Ditto.
22567         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
22568         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
22569         ("mmx_ashl<mode>3"): Ditto.
22570         ("mmx_lshrdi3"): Remove insn pattern.
22571         ("mmx_ashldi3"): Ditto.
22572         * config/i386/i386.c (classify_argument): Handle V1DImode.
22573         (function_arg_advance_32): Ditto.
22574         (function_arg_32): Ditto.
22575         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
22576         mmx_addv1di3 insn pattern.
22577         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
22578         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
22579         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
22580         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
22581         Remove definitions of built-in functions.
22582         (V1DI_type_node): New node.
22583         (v1di_ftype_v1di_int): Ditto.
22584         (v1di_ftype_v1di_v1di): Ditto.
22585         (v2si_ftype_v2si_si): Ditto.
22586         (v4hi_ftype_v4hi_di): Remove node.
22587         (v2si_ftype_v2si_di): Ditto.
22588         (ix86_init_mmx_sse_builtins): Handle V1DImode.
22589         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
22590         Redefine builtins using def_builtin_const with *_ftype_*_int node.
22591         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
22592         Add new builtins using def_builtin_const.
22593         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
22594         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
22595         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
22596         * config/i386/mmintrin.h (__v1di): New typedef.
22597         (_mm_add_si64): Cast arguments to __v1di type.
22598         (_mm_sub_si64): Ditto.
22599         (_mm_sll_pi16): Cast __count to __v4hi type.
22600         (_mm_sll_pi32): Cast __count to __v2si type.
22601         (_mm_sll_si64): Cast arguments to __v1di type.
22602         (_mm_srl_pi16): Cast __count to __v4hi type.
22603         (_mm_srl_pi32): Cast __count to __v2si type.
22604         (_mm_srl_si64): Cast arguments to __v1di type.
22605         (_mm_sra_pi16): Cast __count to __v4hi type.
22606         (_mm_sra_pi32): Cast __count to __v2si type.
22607         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
22608         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
22609         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
22610         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
22611         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
22612         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
22613         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
22614         (_mm_srai_pi32): Use __builtin_ia32_psradi.
22615         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
22616         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
22617         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
22618         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
22619
22620 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
22621
22622         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
22623
22624 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
22625
22626         PR target/35373
22627         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
22628         reg+const addressing for Altivec modes.  Don't generate reg+reg
22629         addressing for TFmode or TDmode quantities.
22630
22631 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
22632
22633         * c-common.c (vector_types_convertible_p): Call langhook
22634         instead of comptypes.
22635
22636 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
22637
22638         PR tree-opt/35402
22639         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
22640         integral and scalar float variables which have a
22641         NULL DECL_INITIAL.
22642
22643 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
22644
22645         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
22646         dwarf_register_span hook when emitting unwind information for
22647         register-to-memory saves.
22648         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
22649         (rs6000_frame_related): Remove call to spe_synthesize_frame.
22650
22651 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
22652
22653         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
22654         for the same VAR_DECL.
22655
22656 2008-03-06  Tom Tromey  <tromey@redhat.com>
22657
22658         * treelang: Delete.
22659         * doc/standards.texi (Standards): Don't mention treelang.
22660         * doc/invoke.texi (Overall Options): Don't mention treelang.
22661         * doc/install.texi (Prerequisites): Don't mention bison or
22662         treelang.
22663         (Configuration): Don't mention treelang.
22664         (Building): Likewise.
22665         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
22666
22667 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
22668
22669         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
22670         word-extractions out of a multi-word object.
22671
22672 2008-03-06  Richard Guenther  <rguenther@suse.de>
22673
22674         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
22675         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
22676         result type and precision.
22677         * expr.c (get_inner_reference): Set unsignedp based on the result
22678         type of BIT_FIELD_REF.
22679         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
22680         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
22681         (try_instantiate_multiple_fields): Likewise.  Use the correct type
22682         for BIT_FIELD_REF.
22683         (sra_build_assignment): Likewise.
22684         (sra_build_elt_assignment): Likewise.
22685         (sra_explode_bitfield_assignment): Likewise.
22686         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
22687         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
22688         set BIT_FIELD_REF_UNSIGNED.
22689         (vectorizable_load): Likewise.
22690
22691 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
22692
22693         * cse.c (cse_extended_basic_block): Invalidate artificial defs
22694         at bb start.
22695
22696 2008-03-06  Richard Guenther  <rguenther@suse.de>
22697
22698         * alias.c (struct alias_set_entry): Move has_zero_child field
22699         to pack with alias_set.
22700
22701 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
22702
22703         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
22704         32bit host.
22705
22706 2008-03-05  Ian Lance Taylor  <iant@google.com>
22707
22708         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
22709
22710 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
22711
22712         * fwprop.c (update_df): Support width and offset parameters of
22713         df_ref_create.
22714         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
22715         global_conflicts): Change DF_REF_EXTRACT to either
22716         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
22717         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
22718         * df-scan.c (df_ref_record, df_defs_record,
22719         df_ref_create_structure, df_def_record_1, df_uses_record,
22720         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
22721         df_bb_refs_collect, df_entry_block_defs_collect,
22722         df_exit_block_uses_collect): Support new width and offset fields.
22723         (ref_extract_pool): New storage pool.
22724         (df_free_ref): New function.
22725         (df_reg_chain_unlink, df_free_collection_rec,
22726         df_sort_and_compress_refs): Call df_free_ref.
22727         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
22728         of df_ref_extract.
22729         (df_ref_create_structure): Allocate df_ref_extract if offset and
22730         width fields are used.
22731         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
22732         (df_uses_record): Get offset and width from ZERO_EXTRACT
22733         and SIGN_EXTRACT.
22734         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
22735         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
22736         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
22737         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
22738         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
22739         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
22740         (df_ref_extract): New structure.
22741         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
22742         (df_ref_create): Add width and offset parameters.
22743
22744 2008-03-05  Richard Guenther  <rguenther@suse.de>
22745
22746         * tree-ssa-structalias.c (get_constraint_for_component_ref):
22747         Use ranges_overlap_p.
22748         (offset_overlaps_with_access): Rename
22749         to ranges_overlap_p and move ...
22750         * tree-flow-inline.h (ranges_overlap_p): ... here.
22751
22752         * tree.h (get_inner_reference, handled_component_p): Update
22753         comments.
22754
22755         * tree.h (record_component_aliases, get_alias_set,
22756         alias_sets_conflict_p, alias_sets_must_conflict_p,
22757         objects_must_conflict_p): Move declarations ...
22758         * alias.h (record_component_aliases, get_alias_set,
22759         alias_sets_conflict_p, alias_sets_must_conflict_p,
22760         objects_must_conflict_p): ... here.
22761         Include coretypes.h.
22762         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
22763
22764 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
22765
22766         * cfg.c: Include tree-flow.h.
22767         (remove_edge_raw): Call redirect_edge_var_map_clear.
22768         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
22769         * tree-flow-inline.h (redirect_edge_var_map_def): New.
22770         (redirect_edge_var_map_result): New.
22771         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
22772         PENDING_STMT use with redirect_edge_var_map_*.
22773         * tree-ssa.c (edge_var_maps): New definition.
22774         (redirect_edge_var_map_add): New.
22775         (redirect_edge_var_map_clear): New.
22776         (redirect_edge_var_map_dup): New.
22777         (redirect_edge_var_map_vector): New.
22778         (redirect_edge_var_map_destroy): New.
22779         (ssa_redirect_edge): Replace PENDING_STMT use with
22780         redirect_edge_var_map_*.
22781         (flush_pending_stmts): Same.
22782         (delete_tree_ssa): Destroy edge var map.
22783         * tree-flow.h (struct _edge_var_map): New.
22784         Define edge_var_map vector type.
22785         Declare redirect_edge_var_map_* prototypes.
22786         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
22787         * tree-cfg.c (reinstall_phi_args): Replace
22788         PENDING_STMT use with redirect_edge_var_map_*.
22789
22790 2008-03-05  Richard Guenther  <rguenther@suse.de>
22791
22792         PR tree-optimization/35472
22793         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
22794         whose single use_stmt has a overlapping set of loaded and
22795         stored symbols as that use_stmt might be a noop assignment then.
22796
22797 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
22798
22799         * gthr-rtems.h: Implement __gthread_mutex_destroy.
22800
22801 2008-03-05  Richard Guenther  <rguenther@suse.de>
22802
22803         PR c++/35336
22804         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
22805         should be constants.
22806         * tree-cfg.c (verify_expr): Verify it.
22807         * fold-const.c (fold_truthop): Remove code generating
22808         BIT_FIELD_REFs of structure bases.
22809         (fold_binary): Likewise.
22810         (fold_ternary): Position and size of BIT_FIELD_REFs are
22811         always host integers.
22812         (make_bit_field_ref): Remove.
22813         (optimize_bit_field_compare): Remove.
22814         (all_ones_mask_p): Remove.
22815
22816 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
22817
22818         PR gcc/33009
22819         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
22820         (split_block_and_df_analyze): New. Split basic block and rebuild
22821         dataflow.
22822         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
22823         SPLIT_BLOCK.
22824         (split_pattern_seq): Likewise.
22825         (erase_matching_seqs): Likewise.
22826         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
22827
22828 2008-03-04  Geoff Keating  <geoffk@apple.com>
22829
22830         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
22831         declaration and code.
22832         (tree_invalid_nonnegative_warnv_p): Likewise.
22833
22834 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
22835
22836         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
22837         examples.  Truncate option-names then causing overfull hbox.
22838
22839 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22840
22841         PR target/35222
22842         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
22843         on hpux10.
22844         * configure: Rebuilt.
22845
22846 2008-03-04  Rafael Espíndola  <espindola@google.com>
22847
22848         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
22849         (tree_unary_nonnegative_warnv_p): New.
22850         (tree_binary_nonnegative_warnv_p): New.
22851         (tree_single_nonnegative_warnv_p): New.
22852         (tree_invalid_nonnegative_warnv_p): New.
22853         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
22854
22855 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
22856
22857         PR 28322
22858         * opts.c (handle_option): Postpone 'unknown option' errors only for
22859         warning options.
22860
22861 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
22862
22863         PR target/35453
22864         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
22865         (_SIDD_XXX): This.
22866
22867 2008-03-04  Rafael Espíndola  <espindola@google.com>
22868
22869         * fold-const.c (tree_unary_nonzero_warnv_p): New.
22870         (tree_binary_nonzero_warnv_p): New.
22871         (tree_single_nonzero_warnv_p): New.
22872         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
22873
22874 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
22875
22876         PR middle-end/35456
22877         * fold-const.c (fold_cond_expr_with_comparison): Prevent
22878         transformations for modes that have signed zeros.
22879         * ifcvt.c (noce_try_abs): Ditto.
22880
22881 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
22882
22883         * config/i386/i386.c (override_options): Force
22884         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
22885
22886 2008-03-04  Jan Hubicka  <jh@suse.cz>
22887
22888         PR c++/35262
22889         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
22890         in last commit.
22891
22892 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
22893
22894         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
22895         label to probe the stack.
22896
22897 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
22898
22899         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
22900         (__gthr_win32_mutex_destroy): Declare.
22901         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
22902         __gthr_win32_mutex_destroy.
22903         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
22904
22905 2008-03-03  Jan Hubicka  <jh@suse.cz>
22906
22907         PR c++/35262
22908         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
22909         aggressive on inlining cold calls.
22910
22911 2008-03-03  Richard Guenther  <rguenther@suse.de>
22912
22913         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
22914         struct copies into the expression table.
22915         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
22916         (try_to_simplify): Likewise.
22917         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
22918         integral and pointer arguments which do not change the
22919         precision to NOP_EXPRs.
22920         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
22921         VIEW_CONVERT_EXPR case.
22922
22923 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
22924
22925         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
22926         defined in a loop at depth 0 is invariant.
22927         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
22928         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
22929         be called at loop depth 0.
22930
22931 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
22932
22933         PR driver/35420
22934         * gcc.c (process_command): Update copyright notice dates.
22935         * gcov.c (print_version): Likewise.
22936         * gcov-dump.c (print_version): Likewise.
22937         * mips-tfile.c (main): Likewise.
22938         * mips-tdump.c (main): Likewise.
22939
22940 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
22941
22942         PR 24924
22943         * c-common.c (flag_permissive): Delete.
22944         (constant_expression_warnings): Check flags first.
22945         (constant_expression_error): New.
22946         * c-common.h (flag_permissive): Delete.
22947         (constant_expression_error): Declare.
22948         * flags.h (flag_permissive): Declare. Update description.
22949         * diagnostic.c (pedwarn): Update.
22950         (permerror): New.
22951         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
22952         (permissive_error_kind): New.
22953         * toplev.c (flag_permissive): Define. Update description.
22954         * toplev.h (permissive_error_kind): Declare.
22955         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
22956         (pedwarn_c90): Use pedantic_warning_kind.
22957         * c-opts.c (c_common_post_options): flag_permissive does not affect
22958         flag_pedantic_errors.
22959
22960 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
22961
22962         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
22963         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
22964         __absvsi2, __absvDI2): Use unsigned arithmetic.
22965
22966 2008-03-02  Andi Kleen  <ak@suse.de>
22967             Richard Guenther  <rguenther@suse.de>
22968
22969         * struct-equiv.c: Remove file.
22970         * cfg_cleanup.c (condjump_equiv_p): Remove.
22971         * Makefile.in (OBJS-common): Remove struct-equiv.o.
22972         (struct-equiv.o): Remove rule.
22973         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
22974         insns_match_p, struct_equiv_block_eq, struct_equiv_init,
22975         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
22976
22977 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
22978
22979         * ifcvt.c (noce_process_if_block): Try to handle only the then
22980         block if the else block exists but isn't suitable.
22981
22982 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
22983
22984         PR gcc/35063
22985         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
22986         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
22987         regression from previous patch.
22988
22989 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
22990
22991         PR gcc/35063
22992         * gthr.h: Add __gthread_mutex_destroy as a function that must be
22993         implemented.
22994         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
22995         * gthr-single.h (__gthread_mutex_destroy): Likewise.
22996         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
22997         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
22998         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
22999         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
23000         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
23001         (__gthread_mutex_destroy_function): Rename to
23002         __gthread_mutex_destroy.
23003         * gthr-dce.h (__gthread_mutex_destroy): Call
23004         pthread_mutex_destroy.
23005         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
23006         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
23007         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
23008
23009 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
23010
23011         * df-scan.c (df_ref_chain_change_bb): Simplify.
23012         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
23013         set_block_for_insn if there's any change.
23014         * df.h ((df_insn_change_bb): Fix prototype.
23015         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
23016         df_insn_change_bb, don't call set_block_for_insn.
23017         * emit-rtl.c (reorder_insns): Likewise.
23018         * haifa-sched.c (move_insn): Likewise.
23019
23020 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
23021
23022         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
23023
23024 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
23025
23026         * tree-flow-inline.h (next_readonly_imm_use): Return
23027         NULL_USE_OPERAND_P after the end.
23028
23029 2008-03-01  Richard Guenther  <rguenther@suse.de>
23030
23031         PR tree-optimization/35411
23032         * tree-sra.c (sra_build_assignment): Split conversion to
23033         final type to a separate statement if we are not assigning
23034         to a register.
23035
23036 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
23037
23038         * fold-const.c (fold_convertible_p): Correct the logic to follow
23039         that in fold_convert().
23040
23041 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
23042
23043         PR c++/35315
23044         * tree-inline.c (build_duplicate_type): When we make a
23045         duplicate type, make it unique in the canonical types system.
23046
23047 2008-02-29  Tom Tromey  <tromey@redhat.com>
23048
23049         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
23050         input_file_stack_history, input_file_stack_restored): Remove.
23051         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
23052         * input.h (struct file_stack): Remove.
23053         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
23054         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
23055         Likewise.
23056         * diagnostic.h (struct diagnostic_context) <last_module>: Change
23057         type.
23058         (diagnostic_last_module_changed): Add 'map' argument.
23059         (diagnostic_set_last_function): Likewise.
23060         * diagnostic.c (undiagnostic_report_current_module): Iterate using
23061         line map, not input_file_stack.
23062         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
23063
23064 2008-02-29  Paul Brook  <paul@codesourcery.com>
23065
23066         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
23067
23068 2008-02-29  Paul Brook  <paul@codesourcery.com>
23069
23070         * config/arm/ieee754-df.S (muldf3): Use RET macros.
23071
23072 2008-02-29  Richard Guenther  <rguenther@suse.de>
23073
23074         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
23075         vn_lookup_or_add.
23076         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
23077         value for comparing for a store match.
23078         (simplify_unary_expression): Do nothing for SSA_NAMEs.
23079         (try_to_simplify): Do not do a full-blown reference lookup.
23080
23081 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
23082
23083         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
23084         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
23085
23086         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
23087
23088 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
23089
23090         * tree-loop-linear.c (try_interchange_loops): Compare memory access
23091         strides against cache sizes.
23092
23093 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
23094
23095         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
23096         constant to fpul.
23097
23098 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
23099
23100         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
23101         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
23102         is smaller than the original promoted value.
23103         (simplify_subreg): If OP is a SUBREG, try to preserve its
23104         SUBREG_PROMOTED_VAR_P information.
23105
23106 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
23107
23108         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
23109         (VN_INFO_GET): Allocate new objects on the obstack.
23110         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
23111         for rpo_numbers_temp, for consistency.
23112         (free_scc_vn): Free the obstack.
23113
23114 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
23115
23116         * doc/invoke.texi: Document -ftree-loop-distribution.
23117         * tree-loop-distribution.c: New.
23118         * tree-pass.h (pass_loop_distribution): New.
23119         * graphds.h (struct graph): Add htab_t indices.
23120         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
23121         * tree-vectorizer.c (rename_variables_in_loop): Extern.
23122         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
23123         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
23124         * tree-data-ref.c (debug_data_dependence_relations): New.
23125         (dump_data_dependence_relation): Also print data references.
23126         (free_data_ref): Extern.
23127         (same_access_functions): Moved...
23128         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
23129         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
23130         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
23131         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
23132         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
23133         (stmts_from_loop): Skip LABEL_EXPR.
23134         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
23135         New.
23136         (build_rdg): Initialize rdg->indices htab.
23137         (free_rdg, stores_from_loop, ref_base_address,
23138         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
23139         have_similar_memory_accesses_1, ref_base_address_1,
23140         remove_similar_memory_refs): New.
23141         * tree-data-ref.h: Depend on tree-chrec.h.
23142         (debug_data_dependence_relations, free_data_ref): Declared.
23143         (same_access_functions): ... here.
23144         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
23145         New.
23146         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
23147         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
23148         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
23149         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
23150         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
23151         rdg_vertex_for_stmt): Declared.
23152         (struct rdg_edge): Add level.
23153         (RDGE_LEVEL): New.
23154         (free_rdg, stores_from_loop, remove_similar_memory_refs,
23155         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
23156         Declared.
23157         (rdg_has_similar_memory_accesses): New.
23158         * tree-vect-analyze.c: Remove unused static decls.
23159         * lambda.h (dependence_level): New.
23160         * common.opt (ftree-loop-distribution): New.
23161         * tree-flow.h (mark_virtual_ops_in_bb,
23162         slpeel_tree_duplicate_loop_to_edge_cfg,
23163         rename_variables_in_loop): Declared.
23164         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
23165         (OBJS-common): Add tree-loop-distribution.o.
23166         (tree-loop-distribution.o): New rule.
23167         * tree-cfg.c (mark_virtual_ops_in_bb): New.
23168         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
23169         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
23170
23171 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
23172
23173         PR target/33963
23174         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
23175         other than structures and unions.
23176
23177 2008-02-28  Richard Guenther  <rguenther@suse.de>
23178
23179         Revert:
23180         2008-02-26  Richard Guenther  <rguenther@suse.de>
23181
23182         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
23183         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
23184         (lookup_decl_from_uid): Declare.
23185         (remove_decl_from_map): Likewise.
23186         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
23187         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
23188         (decl_for_uid_map): New global hashtable mapping DECL_UID
23189         to the decl tree.
23190         (init_ttree): Allocate it.
23191         (insert_decl_to_uid_decl_map): New helper function.
23192         (make_node_stat): Insert new decls into the map.
23193         (copy_node_stat): Likewise.
23194         (lookup_decl_from_uid): New function.
23195         (remove_decl_from_map): Likewise.
23196         (print_decl_for_uid_map_statistics): New helper.
23197         (dump_tree_statistics): Call it.
23198
23199         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
23200         (referenced_var_iterator): Adjust.
23201         (FOR_EACH_REFERENCED_VAR): Adjust.
23202         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
23203         (num_referenced_vars): Adjust.
23204         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
23205         (first_referenced_var): Remove.
23206         (end_referenced_vars_p): Likewise.
23207         (next_referenced_var): Likewise.
23208         (referenced_var_iterator_set): New helper function.
23209         * tree-dfa.c (referenced_var_lookup): Adjust.
23210         (referenced_var_check_and_insert): Likewise.
23211         (remove_referenced_var): Likewise.
23212         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
23213         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
23214         (verify_call_clobbering): Likewise.
23215         (verify_memory_partitions): Likewise.
23216         (init_tree_ssa): Allocate bitmap instead of hashtable for
23217         referenced_vars.
23218         (delete_tree_ssa): Adjust.
23219         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
23220         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
23221         (compute_tag_properties): Likewise.
23222         (set_initial_properties): Likewise.
23223         (find_partition_for): Likewise.
23224         (update_reference_counts): Likewise.
23225         (dump_may_aliases_for): Likewise.
23226         * tree-ssa-operands.c (add_virtual_operand): Likewise.
23227         (add_call_clobber_ops): Likewise.
23228         (add_call_read_ops): Likewise.
23229         (get_asm_expr_operands): Likewise.
23230         * tree-into-ssa.c (dump_decl_set): Likewise.
23231         (update_ssa): Likewise.
23232         * tree-sra.c (scan_function): Likewise.
23233         (decide_instantiations): Likewise.
23234         (scalarize_parms): Likewise.
23235         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
23236         (dsa_named_for): Likewise.
23237         * tree-ssa-structalias.c (update_alias_info): Likewise.
23238         (merge_smts_into): Likewise.
23239
23240 2008-02-27  David Daney  <ddaney@avtrex.com>
23241
23242         PR target/34409
23243         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
23244         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
23245         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
23246         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
23247         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
23248
23249 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
23250
23251         PR target/25477
23252         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
23253         (BUILT_IN_NEXTTOWARD): Remove.
23254         (BUILT_IN_NEXTTOWARDF): Ditto.
23255         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
23256         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
23257
23258 2008-02-27  Tom Tromey  <tromey@redhat.com>
23259
23260         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
23261         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
23262
23263 2008-02-27  Jan Beulich  <jbeulich@novell.com>
23264
23265         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
23266         update the respective field on newdecl.
23267
23268 2008-02-27  Revital Eres  <eres@il.ibm.com>
23269
23270         PR rtl-optimization/34999
23271         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
23272         crossing edges that ends with a call insn.
23273         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
23274         call insn and clear the EDGE_CROSSING flag of the crossing edge
23275         when fixing fallthru edges.
23276
23277 2008-02-27  Richard Guenther  <rguenther@suse.de>
23278
23279         PR middle-end/35390
23280         * fold-const.c (fold_unary): Return the correct argument,
23281         converted to the result type.
23282
23283 2008-02-27  Richard Guenther  <rguenther@suse.de>
23284
23285         PR middle-end/34971
23286         * expr.c (expand_expr_real_1): Assert on rotates that operate
23287         on partial modes.
23288         * fold-const.c (fold_binary): Use the types precision, not the
23289         bitsize of the mode if folding rotate expressions.  Build rotates
23290         only for full modes.
23291
23292 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
23293
23294         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
23295         and CPP_PRAGMA_EOL.
23296         * c-pragma.c (pragma_ns_name): New typedef.
23297         (registered_pp_pragmas): New variable.
23298         (c_pp_lookup_pragma): New function.
23299         (c_register_pragma_1): If flag_preprocess_only, do nothing
23300         for non-expanded pragmas, for expanded ones push pragma's
23301         namespace and name into registered_pp_pragmas vector.
23302         (c_invoke_pragma_handler): Register OpenMP pragmas even when
23303         flag_preprocess_only, don't register GCC pch_preprocess
23304         pragma if flag_preprocess_only.
23305         * c-opts.c (c_common_init): Call init_pragma even if
23306         flag_preprocess_only.
23307         * c-pragma.c (c_pp_lookup_pragma): New prototype.
23308         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
23309         cpp_register_pragma if flag_preprocess_only.
23310
23311 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23312
23313         PR c/28800
23314         * c-parser.c (c_parser_translation_unit): Warn for empty
23315         translation unit, not empty source file.
23316
23317 2008-02-26  Paul Brook  <paul@codesourcery.com>
23318
23319         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
23320         operand for Thumb-2.
23321         * config/arm/arm.h (reg_class): Add CORE_REGS.
23322         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
23323         (BASE_REG_CLASS): Use CORE_REGS.
23324         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
23325         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
23326         (REGNO_OK_FOR_INDEX_P): Exclude SP.
23327         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
23328         ARM_REGNO_OK_FOR_INDEX_P.
23329         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
23330         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
23331         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
23332         (ldm/stm peepholes): Ditto.
23333         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
23334         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
23335         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
23336         * config/arm/constraints.md: Enable "k" constraint on ARM.
23337
23338 2008-02-27  Ben Elliston  <bje@au.ibm.com>
23339
23340         * config/rs6000/rs6000.c: Annotate cache line size field in all
23341         instances of struct processor_costs.
23342
23343 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
23344
23345         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
23346         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
23347         jump_bypass): New counters.
23348         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
23349         * dce.c (gate_ud_dce): Same.
23350         (gate_fast_dce): Same.
23351         * dse.c (gate_dse1): New function.
23352         (gate_dse2): New function.
23353         (gate_dse): Merge results of new gate functions.
23354         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
23355         (gate_handle_jump_bypass): Add dbg_cnt.
23356         (gate_handle_gcse): Add dbg_cnt.
23357         * ifcvt.c (gate_handle_if_conversion): Same.
23358         (gate_handle_if_after_combine): Same.
23359         (gate_handle_if_after_reload): Same.
23360         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
23361
23362 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
23363
23364         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
23365         line sizes.
23366         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
23367
23368 2008-02-26  Jason Merrill  <jason@redhat.com>
23369
23370         PR c++/35315
23371         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
23372         alone if it's the naming decl for the type's main variant.
23373
23374 2008-02-26  Tom Tromey  <tromey@redhat.com>
23375
23376         * system.h (USE_MAPPED_LOCATION): Poison.
23377         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
23378         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
23379         (make_goto_expr_edges): Likewise.
23380         (remove_bb): Likewise.
23381         (execute_warn_function_return): Likewise.
23382         * basic-block.h (struct edge_def) <goto_locus>: Change type to
23383         location_t.
23384         * c-common.c (fname_decl): Remove old location code.
23385         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
23386         location code.
23387         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
23388         variant.
23389         (ASM_INPUT_SOURCE_LOCATION): Likewise.
23390         (gen_rtx_ASM_INPUT): Likewise.
23391         (gen_rtx_ASM_INPUT_loc): Likewise.
23392         (get_rtx_asm_OPERANDS): Remove.
23393         * cfglayout.c (insn_locators_alloc): Remove old location code.
23394         (set_curr_insn_source_location): Likewise.
23395         (curr_insn_locator): Likewise.
23396         * print-tree.c (print_node): Remove old location code.
23397         * tree-mudflap.c (mf_varname_tree): Remove old location code.
23398         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
23399         * cfgexpand.c (expand_gimple_cond_expr): Don't use
23400         location_from_locus.
23401         (construct_exit_block): Remove old location code.
23402         * emit-rtl.c (force_next_line_note): Remove old location code.
23403         * profile.c (branch_prob): Remove old location code.
23404         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
23405         LOC_LINE): Remove old-location variants.
23406         * langhooks.c (lhd_print_error_function): Remove old location
23407         code.
23408         * configure, config.in: Rebuilt.
23409         * configure.ac (--enable-mapped-location): Remove.
23410         * c-decl.c (c_init_decl_processing): Remove old location code.
23411         (finish_function): Likewise.
23412         * recog.c (decode_asm_operands): Remove old location code.
23413         * c-pch.c (c_common_read_pch): Remove old location code.
23414         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
23415         variants.
23416         * gimple-low.c (lower_function_body): Remove old location code.
23417         * toplev.c (unknown_location): Remove.
23418         (push_srcloc): Remove old-location variant.
23419         (process_options): Remove old location code.
23420         (lang_dependent_init): Likewise.
23421         * input.h (UNKNOWN_LOCATION): Move definition.
23422         (location_t): Undeprecate.
23423         (source_locus): Remove.
23424         (location_from_locus): Remove.
23425         (struct location_s): Remove.
23426         Remove all old-location code.
23427         (input_line, input_filename): Remove.
23428         * final.c (final_scan_insn): Remove old location code.
23429         * diagnostic.c (diagnostic_build_prefix): Remove
23430         USE_MAPPED_LOCATION test.
23431         * tree.h (gimple_stmt) <locus>: Now a location_t.
23432         (tree_exp) <locus>: Likewise.
23433         (DECL_IS_BUILTIN): Remove old-location variant.
23434         (annotate_with_file_line, annotate_with_locus): Likewise.
23435         (expr_locus, set_expr_locus): Update.
23436         * tree.c (build1_stat): Remove old location code.
23437         (last_annotated_node): Remove.
23438         (annotate_with_file_line): Remove old-location variant.
23439         (annotate_with_locus): Likewise.
23440         (expr_location): Remove old location code.
23441         (set_expr_location): Likewise.
23442         (expr_has_location): Likewise.
23443         (expr_locus): Likewise.
23444         (set_expr_locus): Likewise.
23445         (expr_filename): Don't use location_from_locus.
23446         (expr_lineno): Likewise.
23447         * rtl-error.c (location_for_asm): Remove old location code.
23448         * c-lex.c (cb_line_change): Remove old location code.
23449         (fe_file_change): Likewise.
23450         (cb_def_pragma): Likewise.
23451         (c_lex_with_flags): Likewise.
23452         * gengtype.c (do_typedef): Don't special-case location types.
23453         (define_location_structures): Remove.
23454         (main): Don't call define_location_structures.
23455         * tree-pretty-print.c (dump_implicit_edges): Remove old location
23456         code.
23457
23458 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
23459
23460         PR 26264
23461         * builtins.def (BUILT_IN_STDARG_START): Remove.
23462         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
23463         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
23464         * tree-inline.c (inline_forbidden_p_1): Likewise.
23465
23466 2008-02-26  Richard Guenther  <rguenther@suse.de>
23467
23468         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
23469         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
23470         (lookup_decl_from_uid): Declare.
23471         (remove_decl_from_map): Likewise.
23472         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
23473         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
23474         (decl_for_uid_map): New global hashtable mapping DECL_UID
23475         to the decl tree.
23476         (init_ttree): Allocate it.
23477         (insert_decl_to_uid_decl_map): New helper function.
23478         (make_node_stat): Insert new decls into the map.
23479         (copy_node_stat): Likewise.
23480         (lookup_decl_from_uid): New function.
23481         (remove_decl_from_map): Likewise.
23482         (print_decl_for_uid_map_statistics): New helper.
23483         (dump_tree_statistics): Call it.
23484
23485         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
23486         (referenced_var_iterator): Adjust.
23487         (FOR_EACH_REFERENCED_VAR): Adjust.
23488         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
23489         (num_referenced_vars): Adjust.
23490         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
23491         (first_referenced_var): Remove.
23492         (end_referenced_vars_p): Likewise.
23493         (next_referenced_var): Likewise.
23494         (referenced_var_iterator_set): New helper function.
23495         * tree-dfa.c (referenced_var_lookup): Adjust.
23496         (referenced_var_check_and_insert): Likewise.
23497         (remove_referenced_var): Likewise.
23498         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
23499         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
23500         (verify_call_clobbering): Likewise.
23501         (verify_memory_partitions): Likewise.
23502         (init_tree_ssa): Allocate bitmap instead of hashtable for
23503         referenced_vars.
23504         (delete_tree_ssa): Adjust.
23505         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
23506         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
23507         (compute_tag_properties): Likewise.
23508         (set_initial_properties): Likewise.
23509         (find_partition_for): Likewise.
23510         (update_reference_counts): Likewise.
23511         (dump_may_aliases_for): Likewise.
23512         * tree-ssa-operands.c (add_virtual_operand): Likewise.
23513         (add_call_clobber_ops): Likewise.
23514         (add_call_read_ops): Likewise.
23515         (get_asm_expr_operands): Likewise.
23516         * tree-into-ssa.c (dump_decl_set): Likewise.
23517         (update_ssa): Likewise.
23518         * tree-sra.c (scan_function): Likewise.
23519         (decide_instantiations): Likewise.
23520         (scalarize_parms): Likewise.
23521         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
23522         (dsa_named_for): Likewise.
23523         * tree-ssa-structalias.c (update_alias_info): Likewise.
23524         (merge_smts_into): Likewise.
23525
23526 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
23527
23528         PR 34351
23529         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
23530         * c-opts.c (c_common_handle_option): Wall enables
23531         Wvolatile-register-var.
23532         * common.opt: Move Wvolatile-register-var to...
23533         * c.opt: ...here.
23534
23535 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
23536
23537         * common.opt (Wlarger-than=): New.
23538         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
23539         -Wlarger-than=.
23540         * opts.c (common_handle_option): Handle -Wlarger-than=.
23541         * optc-gen.awk: Likewise.
23542         * opth-gen.awk: Likewise.
23543         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
23544         * tree-optimize.c (tree_rest_of_compilation): Likewise.
23545
23546 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
23547
23548         * c-common.c (match_case_to_enum_1): Add appropriate
23549         OPT_W* parameter to warning.
23550         (c_do_switch_warnings): Likewise.
23551         * c-typeck.c (warning_init): Add one more parameter following
23552         'warning' function.
23553         (push_init_level): Update call to warning_init.
23554         (pop_init_level): Likewise.
23555         (add_pending_init): Likewise.
23556         (output_init_element: Likewise.
23557
23558 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
23559
23560         PR 28322
23561         * toplev.c (toplev_main): If there are warnings or error, print
23562         errors for ignored options.
23563         * opts.c (ignored_options): New static variable.
23564         (postpone_unknown_option_error): New.
23565         (print_ignored_options): New.
23566         (handle_option): Postpone errors for unknown -Wno-* options.
23567         * opts.h (print_ignored_options): Declare.
23568
23569 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
23570
23571         * config/mips/mips.md (loadgp_blockage, blockage): Change type
23572         to "ghost".
23573
23574 2008-02-25  Richard Guenther  <rguenther@suse.de>
23575
23576         Revert:
23577         2008-02-25  Richard Guenther  <rguenther@suse.de>
23578
23579         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
23580         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
23581         (lookup_decl_from_uid): Declare.
23582         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
23583         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
23584         (decl_for_uid_map): New global hashtable mapping DECL_UID
23585         to the decl tree.
23586         (init_ttree): Allocate it.
23587         (insert_decl_to_uid_decl_map): New helper function.
23588         (make_node_stat): Insert new decls into the map.
23589         (copy_node_stat): Likewise.
23590         (lookup_decl_from_uid): New function.
23591         (print_decl_for_uid_map_statistics): New helper.
23592         (dump_tree_statistics): Call it.
23593
23594         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
23595         (referenced_var_iterator): Adjust.
23596         (FOR_EACH_REFERENCED_VAR): Adjust.
23597         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
23598         (num_referenced_vars): Adjust.
23599         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
23600         (first_referenced_var): Remove.
23601         (end_referenced_vars_p): Likewise.
23602         (next_referenced_var): Likewise.
23603         (referenced_var_iterator_set): New helper function.
23604         * tree-dfa.c (referenced_var_lookup): Adjust.
23605         (referenced_var_check_and_insert): Likewise.
23606         (remove_referenced_var): Likewise.
23607         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
23608         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
23609         (verify_call_clobbering): Likewise.
23610         (verify_memory_partitions): Likewise.
23611         (init_tree_ssa): Allocate bitmap instead of hashtable for
23612         referenced_vars.
23613         (delete_tree_ssa): Adjust.
23614         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
23615         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
23616         (compute_tag_properties): Likewise.
23617         (set_initial_properties): Likewise.
23618         (find_partition_for): Likewise.
23619         (update_reference_counts): Likewise.
23620         (dump_may_aliases_for): Likewise.
23621         * tree-ssa-operands.c (add_virtual_operand): Likewise.
23622         (add_call_clobber_ops): Likewise.
23623         (add_call_read_ops): Likewise.
23624         (get_asm_expr_operands): Likewise.
23625         * tree-into-ssa.c (dump_decl_set): Likewise.
23626         (update_ssa): Likewise.
23627         * tree-sra.c (scan_function): Likewise.
23628         (decide_instantiations): Likewise.
23629         (scalarize_parms): Likewise.
23630         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
23631         (dsa_named_for): Likewise.
23632         * tree-ssa-structalias.c (update_alias_info): Likewise.
23633         (merge_smts_into): Likewise.
23634
23635 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
23636
23637         PR fortran/29549
23638         * doc/invoke.texi (-fcx-limited-range): Document new option.
23639         * toplev.c (process_options): Handle -fcx-fortran-rules.
23640         * common.opt: Add documentation for -fcx-fortran-rules.
23641
23642 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
23643
23644         PR c/35162
23645         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
23646         actual behaviour and C99.
23647
23648 2008-02-26  Ben Elliston  <bje@au.ibm.com>
23649
23650         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
23651         (ASM_CPU_POWER6_SPEC): Likewise.
23652         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
23653         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
23654         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
23655
23656 2008-02-25  Richard Guenther  <rguenther@suse.de>
23657
23658         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
23659         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
23660         (lookup_decl_from_uid): Declare.
23661         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
23662         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
23663         (decl_for_uid_map): New global hashtable mapping DECL_UID
23664         to the decl tree.
23665         (init_ttree): Allocate it.
23666         (insert_decl_to_uid_decl_map): New helper function.
23667         (make_node_stat): Insert new decls into the map.
23668         (copy_node_stat): Likewise.
23669         (lookup_decl_from_uid): New function.
23670         (print_decl_for_uid_map_statistics): New helper.
23671         (dump_tree_statistics): Call it.
23672
23673         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
23674         (referenced_var_iterator): Adjust.
23675         (FOR_EACH_REFERENCED_VAR): Adjust.
23676         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
23677         (num_referenced_vars): Adjust.
23678         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
23679         (first_referenced_var): Remove.
23680         (end_referenced_vars_p): Likewise.
23681         (next_referenced_var): Likewise.
23682         (referenced_var_iterator_set): New helper function.
23683         * tree-dfa.c (referenced_var_lookup): Adjust.
23684         (referenced_var_check_and_insert): Likewise.
23685         (remove_referenced_var): Likewise.
23686         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
23687         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
23688         (verify_call_clobbering): Likewise.
23689         (verify_memory_partitions): Likewise.
23690         (init_tree_ssa): Allocate bitmap instead of hashtable for
23691         referenced_vars.
23692         (delete_tree_ssa): Adjust.
23693         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
23694         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
23695         (compute_tag_properties): Likewise.
23696         (set_initial_properties): Likewise.
23697         (find_partition_for): Likewise.
23698         (update_reference_counts): Likewise.
23699         (dump_may_aliases_for): Likewise.
23700         * tree-ssa-operands.c (add_virtual_operand): Likewise.
23701         (add_call_clobber_ops): Likewise.
23702         (add_call_read_ops): Likewise.
23703         (get_asm_expr_operands): Likewise.
23704         * tree-into-ssa.c (dump_decl_set): Likewise.
23705         (update_ssa): Likewise.
23706         * tree-sra.c (scan_function): Likewise.
23707         (decide_instantiations): Likewise.
23708         (scalarize_parms): Likewise.
23709         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
23710         (dsa_named_for): Likewise.
23711         * tree-ssa-structalias.c (update_alias_info): Likewise.
23712         (merge_smts_into): Likewise.
23713
23714 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
23715
23716         PR target/35258
23717         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
23718         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
23719         * alias.h (nonoverlapping_memrefs_p): Likewise.
23720
23721 2008-02-25  Jan Beulich  <jbeulich@novell.com>
23722
23723         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
23724         * config/i386/netware-libgcc.exp: Add __bswap?i2,
23725         __emultls_get_address, __emultls_register_common,
23726         __floatundi?f, and _Unwind_GetIPInfo.
23727         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
23728         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
23729         (gen_regparm_prefix): Likewise.
23730         (i386_nlm_encode_section_info): Sync with
23731         config/i386/winnt.c:i386_pe_encode_section_info().
23732         (i386_nlm_maybe_mangle_decl_assembler_name): New.
23733         i386_nlm_mangle_decl_assembler_name): New.
23734         (netware_override_options): New.
23735         * config/i386/netware.h (netware_override_options): Declare.
23736         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
23737         (i386_nlm_mangle_decl_assembler_name): Declare.
23738         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
23739
23740 2008-02-25  Ben Elliston  <bje@au.ibm.com>
23741
23742         PR other/32948
23743         * c-decl.c (grokdeclarator): Remove unused local variables
23744         `typedef_type' and `type_as_written'.
23745         * bb-reorder.c
23746         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
23747         unused local variable `has_hot_blocks'.
23748         (fix_crossing_conditional_branches): Remove unused local variable
23749         `prev_bb'.
23750
23751 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
23752
23753         PR middle-end/19984
23754         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
23755         using DEF_C99_BUILTIN.
23756         (BUILT_IN_NANF): Ditto.
23757         (BUILT_IN_NANL): Ditto.
23758
23759 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
23760             Revital Eres  <eres@il.ibm.com>
23761
23762         * modulo-sched.c (calculate_must_precede_follow): Address TODO
23763         regarding the order of two dependent insns in the same row.
23764
23765 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
23766
23767         * stor-layout.c (layout_decl): Do not bump the alignment of a
23768         bit-field to more than byte alignment if it is packed.
23769
23770 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
23771
23772         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
23773         e300c2 and e300c3.
23774
23775 2008-02-24  Diego Novillo  <dnovillo@google.com>
23776
23777         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
23778
23779         PR 33738
23780         * tree-vrp.c (vrp_evaluate_conditional): With
23781         -Wtype-limits, emit a warning when comparing against a
23782         constant outside the natural range of OP0's type.
23783         * c.opt (Wtype-limits): Move ...
23784         * common.opt (Wtype-limits): ... here.
23785
23786 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
23787
23788         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
23789         * config/rs6000/e300c2c3.md: New file.
23790         * config/rs6000/rs6000.c (processor_costs): Add new costs for
23791         e300c2 and e300c3.
23792         (rs6000_override_options): Add e300c2 and e300c3 cases to
23793         processor_target_table. Do not allow usage of Altivec or Spe
23794         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
23795         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
23796         * config/rs6000/rs6000.h (processor_type): Add
23797         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
23798         (ASM_CPU_SPEC): Add e300c2 and e300c3.
23799         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
23800         and ppce300c3. Include e300c2c3.md.
23801
23802 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
23803
23804         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
23805         instead of TARGET_STRICT_ALIGN.
23806
23807 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
23808
23809         * explow.c (memory_address): Assert that the generated address is
23810         valid.
23811
23812 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
23813
23814         PR target/25477
23815         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
23816         * config/darwin-ppc-ldouble-patch.def: New file.
23817         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
23818         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
23819         SUBTARGET_INIT_BUILTINS if defined.
23820         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
23821         New functions.
23822
23823 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
23824
23825         PR rtl-opt/33512
23826         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
23827         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
23828
23829 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
23830
23831         PR pch/35027
23832         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
23833         file" warning condtional on -Winvalid-PCH.
23834
23835 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
23836
23837         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
23838
23839 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
23840
23841         PR target/22076
23842         PR target/34256
23843         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
23844         prevent reload from using MMX registers.
23845         (*mov<mode>_internal): Ditto.
23846         (*movv2sf_internal_rex64): Ditto.
23847         (*movv2sf_internal): Ditto.
23848
23849 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23850
23851         PR documentation/31569
23852         * doc/install.texi2html: Use makeinfo --no-number-sections.
23853
23854 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
23855
23856         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
23857         ensure that we can address an entire entity > 8 bytes.  Don't
23858         generate reg+reg addressing for such data.
23859
23860 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
23861
23862         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
23863         strings when optimizing for size, unless the target cares about
23864         alignment.
23865
23866 2008-02-22  Tom Tromey  <tromey@redhat.com>
23867
23868         * regclass.c (current_pass): Remove declaration.
23869
23870 2008-02-22  Anatoly Sokolov <aesok@post.ru>
23871
23872         * config/avr/libgcc.S (__RAMPZ__): Define.
23873         (__do_copy_data): Add for devices with 128KB code memory.
23874
23875 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
23876
23877         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
23878         Use spe_abi.
23879         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
23880
23881 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
23882
23883         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
23884         GENNONACR_REGS.
23885
23886 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23887
23888         PR c/19999
23889         * c-typeck.c (build_binary_op): Warn about floating point
23890         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
23891
23892 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
23893
23894         PR target/34526
23895         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
23896         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
23897         add vrsave.
23898         (rs6000_override_options): Set altivec_abi as default, not override,
23899         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
23900         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
23901         is used; use new member spe_abi.
23902         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
23903         spe_abi and altivec_abi.
23904
23905 2008-02-22  Tomas Bily  <tbily@suse.cz>
23906
23907         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
23908
23909 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23910
23911         PR bootstrap/35273
23912         * config.build (build_file_translate): Set to `CMD //c' only if
23913         it works.
23914         * Makefile.in (build_file_translate): Improve comment.
23915
23916 2008-02-21  Jan Hubicka  <jh@suse.cz>
23917
23918         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
23919         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
23920         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
23921
23922 2008-02-21  Michael Matz  <matz@suse.de>
23923
23924         PR target/35264
23925         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
23926
23927 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
23928
23929         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
23930         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
23931         as insn constraint.
23932         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
23933         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
23934         SSE_VEC_FLOAT_MODE_P as insn constraint.
23935         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
23936         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
23937         sse4a_movntdf using MODEF mode iterator.
23938         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
23939         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
23940         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
23941         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
23942         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
23943         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
23944         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
23945
23946 2008-02-21  Richard Guenther  <rguenther@suse.de>
23947
23948         * tree.def (PAREN_EXPR): New tree code.
23949         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
23950         and PAREN_EXPR.
23951         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
23952         * expr.c (expand_expr_real_1): Likewise.
23953         * tree-inline.c (estimate_num_insns_1): Likewise.
23954         * tree-complex.c (expand_complex_move): Likewise.
23955         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
23956         as plain x.
23957
23958 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
23959
23960         PR target/35225
23961         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
23962
23963 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
23964
23965         PR target/35190
23966         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
23967
23968         * config/sh/sh.c (find_barrier): Don't go past
23969         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
23970
23971 2008-02-20  DJ Delorie  <dj@redhat.com>
23972
23973         * config/h8300/h8300.md (insv): Force source operand to be a register.
23974
23975         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
23976         as a jump, not as a plain insn.
23977
23978 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
23979
23980         * doc/invoke.texi (Warning Options): Add new option
23981         -Wframe-larger-than=.
23982         (-Wframe-larger-than): Document.
23983
23984         * flags.h (warn_frame_larger_than, frame_larger_than_size):
23985         Add declarations for new option variables.
23986
23987         * final.c (final_start_function): Check the frame size
23988         before emission and issue a Wframe-larger-than warning.
23989
23990         * opts.c (warn_frame_larger_than, frame_larger_than_size):
23991         Add definitions for new option variables.
23992         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
23993
23994         * common.opt (Wframe-larger-than=): New option.
23995
23996 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
23997
23998         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
23999         (<sse>_div<mode>3): Ditto.
24000         (<sse>_vmdiv<mode>3): Ditto.
24001         (<sse>_vmsqrt<mode>2): Ditto.
24002         (*smax<mode>3): Ditto.
24003         (sse5_frcz<mode>2): Ditto.
24004         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
24005         as insn constraint.
24006
24007 2008-02-20  Richard Guenther  <rguenther@suse.de>
24008
24009         PR middle-end/35265
24010         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
24011         be happy with INTEGRAL_TYPE_P.
24012
24013 2008-02-20  Richard Guenther  <rguenther@suse.de>
24014
24015         * fold-const.c (split_tree): Associate floatig-point expressions
24016         if flag_associative_math is set.
24017
24018 2008-02-20  Richard Guenther  <rguenther@suse.de>
24019
24020         * tree.h (fold_real_zero_addition_p): Declare.
24021         * fold-const.c (fold_real_zero_addition_p): Export.
24022         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
24023         floating-point operations with zero and one.
24024
24025 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
24026
24027         * doc/install.texi: Correct references to CFLAGS, replacing them
24028         with BOOT_CFLAGS.  Document flags used during bootstrap for
24029         target libraries.
24030
24031 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
24032
24033         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
24034         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
24035         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
24036         insn constraint.
24037         (smin<mode>3): Ditto from similar patterns.
24038         (smax<mode>3): Ditto.
24039         (*ieee_smin<mode>3): Ditto.
24040         (*ieee_smax<mode>3): Ditto.
24041         * config/i386/sse.md (sse): New mode attribute.
24042         (mov<mode>): Macroize expander from movv4sf and movv2df using
24043         SSEMODEF2P mode iterator.
24044         (<sse>_movnt<mode>): Ditto from similar patterns. Use
24045         SSE_VEC_FLOAT_MODE_P as insn constraint.
24046         (storent<mode>): Ditto.
24047         (storent<mode>): Macroize expander from storentsf and storentdf using
24048         MODEF mode iterator.
24049         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
24050         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
24051         (abs<mode>2): Ditto from similar patterns.
24052         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
24053         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
24054         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
24055         (<sse>_vmsqrt<mode>2): Ditto.
24056         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
24057         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
24058         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
24059         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
24060         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
24061         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
24062         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
24063         insn constraint.
24064         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
24065         iterator and SSE_FLOAT_MODE_P as insn constraint.
24066         (<sse>_ucomi): Ditto from similar patterns.
24067         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
24068         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
24069         SSE_VEC_FLOAT_MODE_P as insn constraint.
24070         (vcond<mode>): Ditto from similar patterns.
24071         (and<mode>3, *and<mode>3): Ditto.
24072         (<sse>_nand<mode>3): Ditto.
24073         (ior<mode>3, *ior<mode>3): Ditto.
24074         (xor<mode>3, *xor<mode>3): Ditto.
24075         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
24076         iterator and SSE_FLOAT_MODE_P as insn constraint.
24077         (*nand<mode>3): Ditto from similar patterns.
24078         (*ior<mode>3): Ditto.
24079         (*xor<mode>3): Ditto.
24080
24081 2008-02-20  Ira Rosen  <irar@il.ibm.com>
24082
24083         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
24084         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
24085         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
24086
24087 2008-02-19  Jan Hubicka  <jh@suse.cz>
24088
24089         * predict.c (tree_bb_level_predictions): Remove variable next
24090         mistakely introduced by previous commit.
24091
24092 2008-02-19  Jan Hubicka  <jh@suse.cz>
24093
24094         * predict.c (predict_paths_leading_to): Rewrite.
24095         (predict_paths_for_bb): New.
24096         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
24097
24098 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24099
24100         PR bootstrap/35218
24101         * Makefile.in (build_file_translate): New.
24102         (gcc-vers.texi): Use it for translating $(abs_srcdir).
24103         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
24104         * configure.ac (build_file_translate): Substitute it.
24105         * configure: Regenerate.
24106
24107 2008-02-19  Jan Hubicka  <jh@suse.cz>
24108
24109         PR rtl-optimization/34408
24110         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
24111         invalid sharing.
24112
24113 2008-02-19  Jan Hubicka  <jh@suse.cz>
24114
24115         PR middle-end/28779
24116         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
24117         call_expr.
24118
24119 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
24120
24121         PR Ada/35186
24122         * config/i386/i386-modes.def: Revert the last DI alignment
24123         change until Ada people can look into it.
24124
24125 2008-02-19  Nick Clifton  <nickc@redhat.com>
24126
24127         * opts.c (print_specific_help): Fix typo in --help text.
24128
24129 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
24130
24131         PR target/35239
24132         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
24133         32-bit inline asm without asm alternatives for host GCC < 3.0.
24134
24135 2008-02-19  Richard Guenther  <rguenther@suse.de>
24136
24137         PR tree-optimization/34989
24138         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
24139         Allow propagation to INDIRECT_REF if we can simplify only.
24140
24141 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
24142
24143         * c-common.c (warn_for_collisions_1): Use appropriate option when
24144         warning.
24145
24146 2008-02-19  Nick Clifton  <nickc@redhat.com>
24147
24148         PR other/31349
24149         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
24150         (handle_options): Fix indentation.
24151         (print_filtered_help): If no language-specific options were
24152         displayed tell the user how to list all the options supported by
24153         the language's front-end.
24154         (print_specific_help): Fix indentation and remove duplicate line.
24155         (common_handle_option): Handle the -v option.
24156         For --help enable the display of undocumented options if the -v
24157         switch has been included on the command line.
24158         For --help= check for overlaps in the arguments between the option
24159         classes and the language names and issue a warning when they
24160         cannot be disambiguated.
24161         * c.opt (v): Pass on to the common option handler.
24162
24163 2008-02-19  Revital Eres  <eres@il.ibm.com>
24164
24165         * modulo-sched.c (sms_schedule): Change dump message when
24166         create_ddg function fails.
24167         (try_scheduling_node_in_cycle): Rename row to cycle.
24168         (print_partial_schedule): Rename CYCLE to ROW.
24169
24170 2008-02-19  Christian Bruel  <christian.bruel@st.com>
24171             Zdenek Dvorak  <ook@ucw.cz>
24172
24173         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
24174
24175 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
24176
24177         PR target/33555
24178         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
24179         (*x86_movdicc_0_m1_se): Ditto.
24180
24181 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
24182
24183         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
24184         (CMPtype): Define as __gcc_CMPtype.
24185         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
24186         (CMPtype): Define as __gcc_CMPtype.
24187
24188 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
24189
24190         Support valgrind 3.3 for --enable-checking=valgrind.
24191         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
24192         here.
24193         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
24194         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
24195         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
24196         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
24197         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
24198         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
24199         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
24200         respectively.
24201         * ggc-zone.c: Similar.
24202         * ggc-page.c: Similar.
24203
24204 2008-02-19  Paul Brook  <paul@codesourcery.com>
24205
24206         PR target/35071
24207         * config/arm/ieee754-df.S: Fix do_it typo.
24208         * config/arm/ieee754-sf.S: Fix do_it typo.
24209
24210 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
24211
24212         PR target/35189
24213         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
24214         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
24215         (OPTION_MASK_ISA_SSE_SET): Likewise.
24216         (OPTION_MASK_ISA_SSE2_SET): Likewise.
24217         (OPTION_MASK_ISA_SSE3_SET): Likewise.
24218         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
24219         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
24220         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
24221         (OPTION_MASK_ISA_SSE4_SET): Likewise.
24222         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
24223         (OPTION_MASK_ISA_SSE5_SET): Likewise.
24224         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
24225         (OPTION_MASK_ISA_MMX_UNSET): Updated.
24226         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
24227         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
24228         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
24229         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
24230         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
24231         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
24232         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
24233         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
24234         (OPTION_MASK_ISA_SSE4): Removed.
24235         (ix86_handle_option): Turn on bits in ix86_isa_flags and
24236         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
24237         (override_options): Don't turn on implied SSE/MMX bits in
24238         ix86_isa_flags.
24239
24240 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
24241
24242         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
24243         32bit host.
24244
24245 2008-02-18  Joey Ye  <joey.ye@intel.com>
24246
24247         PR middle-end/34921
24248         * tree-nested.c (insert_field_into_struct): Set type alignment
24249         to field alignment if the former is less than the latter.
24250
24251 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
24252
24253         * BASE-VER: Set to 4.4.0.
24254
24255 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24256
24257         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
24258         * doc/cfg.texi: Likewise.
24259         * doc/extend.texi: Likewise.
24260         * doc/gty.texi: Likewise.
24261         * doc/invoke.texi: Likewise.
24262         * doc/loop.texi: Likewise.
24263         * doc/md.texi: Likewise.
24264         * doc/passes.texi: Likewise.
24265         * doc/rtl.texi: Likewise.
24266         * doc/sourcebuild.texi: Likewise.
24267         * doc/tm.texi: Likewise.
24268         * doc/tree-ssa.texi: Likewise.
24269
24270 2008-02-17  Richard Guenther  <rguenther@suse.de>
24271
24272         PR middle-end/35227
24273         * tree-complex.c (init_parameter_lattice_values): Handle parameters
24274         without default definition.
24275
24276 2008-02-17  Richard Guenther  <rguenther@suse.de>
24277
24278         PR tree-optimization/35231
24279         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
24280         if A | B != 1.
24281
24282 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
24283
24284         Revert:
24285         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
24286         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
24287         libgcc_cmp_return mode.
24288
24289 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
24290
24291         PR c/28368
24292         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
24293
24294 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
24295
24296         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
24297         multilibs.
24298
24299 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24300
24301         * doc/c-tree.texi: Use `@.' where appropriate.
24302         * doc/extend.texi: Likewise.
24303         * doc/install.texi: Likewise.
24304         * doc/invoke.texi: Likewise.
24305         * doc/loop.texi: Likewise.
24306         * doc/makefile.texi: Likewise.
24307         * doc/md.texi: Likewise.
24308         * doc/passes.texi: Likewise.
24309         * doc/standards.texi: Likewise.
24310         * doc/tm.texi: Likewise.
24311
24312 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
24313
24314         PR middle-end/35196
24315         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
24316         in entry_bb.
24317         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
24318         rather than in entry_bb.
24319
24320 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
24321
24322         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
24323         libgcc_cmp_return mode.
24324
24325 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
24326
24327         PR middle-end/35130
24328         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
24329         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
24330
24331 2008-02-15  Richard Guenther  <rguenther@suse.de>
24332             Zdenek Dvorak  <ook@ucw.cz>
24333
24334         PR tree-optimization/35164
24335         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
24336         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
24337         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
24338         Only propagate addresses which do not have abnormal SSA_NAMEs
24339         in their operands.
24340
24341 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
24342
24343         PR target/35088
24344         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
24345
24346 2008-02-15  Jan Hubicka  <jh@suse.cz>
24347
24348         PR middle-end/35149
24349         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
24350
24351 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
24352
24353         PR middle-end/34621
24354         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
24355         when calculating alignment_pad.
24356
24357 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
24358
24359         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
24360         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
24361         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
24362         and STACK_BOUNDARY define.
24363
24364 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
24365
24366         PR preprocessor/35061
24367         * c-pragma.c (handle_pragma_pop_macro): Check that
24368         pushed_macro_table has been allocated.
24369
24370 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
24371
24372         PR middle-end/35136
24373         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
24374         (force_gimple_operand): Likewise.
24375         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
24376         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
24377         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
24378         (find_interesting_uses_address): Check addressability and alignment
24379         of the base expression only after substituting bases of IVs into it.
24380
24381 2008-02-14  Michael Matz  <matz@suse.de>
24382
24383         PR target/34930
24384         * function.c (instantiate_virtual_regs_in_insn): Reload address
24385         before falling back to reloading the whole operand.
24386
24387 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
24388
24389         * config/s390/s390.c (s390_mainpool_start): Emit the pool
24390         before the first section switch note.
24391
24392 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24393
24394         * doc/bugreport.texi: Update copyright years.
24395         * doc/c-tree.texi: Likewise.
24396         * doc/cfg.texi: Likewise.
24397         * doc/cpp.texi: Likewise.
24398         * doc/cppinternals.texi: Likewise.
24399         * doc/fragments.texi: Likewise.
24400         * doc/frontends.texi: Likewise.
24401         * doc/gcc.texi: Likewise.
24402         * doc/gty.texi: Likewise.
24403         * doc/hostconfig.texi: Likewise.
24404         * doc/implement-c.texi: Likewise.
24405         * doc/libgcc.texi: Likewise.
24406         * doc/loop.texi: Likewise.
24407         * doc/makefile.texi: Likewise.
24408         * doc/options.texi: Likewise.
24409         * doc/passes.texi: Likewise.
24410         * doc/rtl.texi: Likewise.
24411         * doc/sourcebuild.texi: Likewise.
24412         * doc/standards.texi: Likewise.
24413         * doc/tree-ssa.texi: Likewise.
24414         * doc/trouble.texi: Likewise.
24415
24416         * doc/extend.texi: Use @: or add comma where appropriate.
24417         * doc/invoke.texi: Likewise.
24418         * doc/tm.texi: Likewise.
24419
24420 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
24421
24422         PR target/34393
24423         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
24424         to a reg.
24425
24426 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
24427
24428         * doc/md.texi (clz, ctz): Add reference.
24429         * doc/rtl.texi (clz, ctz): Likewise.
24430
24431 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24432
24433         PR other/35148
24434         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
24435         srcdir.
24436
24437 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
24438
24439         * config/s390/s390.c (struct constant_pool): New field
24440         emit_pool_after added.
24441         (s390_mainpool_start): Set the emit_pool_after flag according
24442         to the section switch notes.
24443         (s390_mainpool_finish): Consider emit_pool_after when emitting
24444         the literal pool at the end of the function.
24445         (s390_chunkify_start): Force literal pool splits at section
24446         switch notes.
24447
24448 2008-02-13  Michael Matz  <matz@suse.de>
24449
24450         PR debug/35065
24451         * var-tracking.c (clobber_variable_part): Correctly traverse the
24452         list.
24453
24454 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
24455
24456         PR 29673
24457         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
24458         Add -fdump-ipa-inline.
24459         * tree-dump.c (dump_files): Remove tree-inlined dump.
24460         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
24461
24462 2008-02-12  Richard Guenther  <rguenther@suse.de>
24463
24464         PR tree-optimization/35171
24465         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
24466         default defs.
24467
24468 2008-02-12  Richard Guenther  <rguenther@suse.de>
24469
24470         PR middle-end/35163
24471         * fold-const.c (fold_widened_comparison): Use get_unwidened in
24472         value-preserving mode.  Disallow final truncation.
24473
24474 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
24475
24476         PR middle-end/35136
24477         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
24478         code from here to...
24479         (force_gimple_operand): ...here.
24480
24481 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
24482
24483         PR c++/35144
24484         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
24485         non-compatible pointers.
24486         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
24487         different FIELD_DECLs, try harder by comparing field offsets, sizes
24488         and types.
24489
24490         PR inline-asm/35160
24491         * function.c (match_asm_constraints_1): Don't replace the same input
24492         multiple times.
24493
24494 2008-02-12  Anatoly Sokolov <aesok@post.ru>
24495
24496         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
24497         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
24498         (expand_epilogue): Restore RAMPZ register.
24499         * config/avr/avr.md (RAMPZ_ADDR): New constant.
24500
24501 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
24502
24503         * config/i386/cygwin.asm: (__alloca): Correct calling
24504         convention and alignment.
24505         (__chkstk): Force 8 byte stack alignment.
24506
24507 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
24508             Richard Guenther  <rguenther@suse.de>
24509
24510         PR tree-optimization/33992
24511         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
24512         the zero we compare against.
24513
24514 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
24515
24516         PR libfortran/35063
24517         * gthr-win32.h (__gthread_mutex_destroy_function): New function
24518         to CloseHandle after unlocking to prevent accumulation of handle
24519         count.
24520
24521 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24522
24523         PR middle_end/34150
24524         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
24525         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
24526         and update LABEL_NUSES during and after reload.
24527
24528 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
24529
24530         PR middle-end/34627
24531         * combine.c (simplify_if_then_else): Make sure the comparison is
24532         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
24533
24534 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
24535
24536         PR bootstrap/35051
24537         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
24538         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
24539         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
24540         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
24541         * tree.h (get_type_static_bounds): Likewise.
24542
24543 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24544
24545         * doc/invoke.texi (Option Summary, C++ Dialect Options)
24546         (Objective-C and Objective-C++ Dialect Options, Warning Options):
24547         Make -Wfoo language annotations match what the compiler outputs.
24548
24549 2008-02-08  Sa Liu  <saliu@de.ibm.com>
24550
24551         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
24552         intrinsics spu_convts, spu_convtu, spu_convtf.
24553
24554 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
24555
24556         * doc/extend.texi (Function Attributes) <noinline>: Mention
24557         asm ("") as method to keep calls.
24558
24559 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
24560
24561         PR other/32754
24562         * doc/options.texi (Options): Replace references to opts.sh with
24563         optc-gen.awk.
24564         * opts-common.c: Likewise.
24565         * optc-gen.awk: Likewise.
24566
24567 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
24568
24569         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
24570
24571 2008-02-07  Richard Henderson  <rth@redhat.com>
24572
24573         PR rtl-opt/33410
24574         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
24575         EXPR_LIST for the REG_EQUAL instead of a comparison with a
24576         funny mode.
24577
24578 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
24579
24580         PR tree-optimization/35085
24581         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
24582         for operand entry oe2 in addition to operand entry oe3 in order to
24583         expose more opportunities for vectorizer sum reduction.
24584
24585 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24586
24587         PR other/35107
24588         * Makefile.in (LIBS): Remove $(GMPLIBS).
24589         (cc1-dummy, cc1): Add $(GMPLIBS).
24590
24591 2008-02-06  Jan Hubicka  <jh@suse.cz>
24592
24593         PR target/23322
24594         * i386.md (moddf_integer): Do not produce partial memory stalls for
24595         targets where it hurts.
24596
24597 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
24598
24599         PR target/35083
24600         * optabs.c (expand_float): Do not check for decimal modes when
24601         expanding unsigned integer through signed conversion.
24602
24603 2008-02-06  Nick Clifton  <nickc@redhat.com>
24604
24605         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
24606         inside the clobber with a match_operand and duplicated operand
24607         number in the constraint.
24608         (ineqbranchsi): Delete redundant comment.
24609
24610 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
24611
24612         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
24613         builtin_define ("__USE_INIT_FINI__").
24614         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
24615         -msx multilibs.
24616         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
24617
24618 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24619
24620         PR documentation/30330
24621         * doc/invoke.texi (C++ Dialect Options)
24622         (Objective-C and Objective-C++ Dialect Options, Warning Options):
24623         For each warning option -Wfoo that allows -Wno-foo, ensure both
24624         -Wfoo and -Wno-foo are listed in the option index.  Fix index
24625         entry of -Wswitch-default, index -Wnormalized= including the
24626         `=', and -Wlarger-than-@var{len} including @var{len}.
24627
24628 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
24629
24630         * config/i386/i386.md (floatunssisf2): Use
24631         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
24632         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
24633         Macroize expander using MODEF mode iterator.
24634
24635 2008-02-05  Diego Novillo  <dnovillo@google.com>
24636
24637         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
24638
24639         PR 33738
24640         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
24641
24642 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24643
24644         PR other/35070
24645         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
24646
24647 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
24648
24649         PR target/35084
24650         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
24651         to indicate if a message should be generated.
24652         (init_cumulative_args): Updated.
24653         (function_value_32): Likewise.
24654
24655 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
24656
24657         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
24658
24659 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
24660
24661         PR target/35083
24662         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
24663         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
24664
24665 2008-02-04  Diego Novillo  <dnovillo@google.com>
24666
24667         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
24668
24669         PR 33738
24670         * tree-vrp.c (vrp_evaluate_conditional): With
24671         -Wtype-limits, emit a warning when comparing against a
24672         constant outside the natural range of OP0's type.
24673
24674 2008-02-04  Richard Guenther  <rguenther@suse.de>
24675
24676         PR middle-end/33631
24677         * expr.c (count_type_elements): Give for unions instead of
24678         guessing.
24679
24680 2008-02-04  Richard Guenther  <rguenther@suse.de>
24681
24682         PR middle-end/35043
24683         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
24684         to TYPE_DOMAINs base type instead of using bitsizetype here.
24685
24686 2008-02-03  Jason Merrill  <jason@redhat.com>
24687
24688         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
24689
24690 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24691
24692         PR other/29972
24693         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
24694         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
24695         (RS/6000 and PowerPC Options): Fix typos and markup.
24696         * doc/passes.texi (Tree-SSA passes): Likewise.
24697
24698 2008-02-02  Michael Matz  <matz@suse.de>
24699
24700         PR target/35045
24701         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
24702         from record_last_reg_set_info.
24703         (record_last_reg_set_info): Take an RTX argument, iterate over all
24704         constituent hardregs.
24705         (record_last_set_info, record_opr_changes): Change calls to
24706         new signature or to record_last_reg_set_info_regno.
24707
24708 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
24709
24710         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
24711
24712 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
24713
24714         PR rtl-optimization/34773
24715         * reg-notes.def (EQUAL): Mention significance of combination of
24716         REG_EQUAL and REG_RETVAL.
24717         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
24718         insn that has a REG_RETVAL.
24719
24720 2008-02-01  Roger Sayle  <roger@eyesopen.com>
24721
24722         PR bootstrap/33781
24723         * configure.ac (--enable-fixed-point): Disable unless explicitly
24724         requested on IRIX.
24725         * configure: Regenerate.
24726
24727 2008-02-01  Richard Guenther  <rguenther@suse.de>
24728
24729         PR other/35042
24730         * invoke.texi (-finline-limit): Remove no longer true parts
24731         of the documentation.  Note that there is no default value.
24732
24733 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
24734             Mark Mitchell  <mark@codesourcery.com>
24735             Ben Elliston  <bje@au.ibm.com>
24736
24737         PR c/29326
24738         * doc/extend.texi (Other Builtins): Document.
24739
24740 2008-01-31  Tom Browder <tom.browder@gmail.com>
24741
24742         * doc/c-tree.texi (Types): Fix grammar.
24743         (Expression trees): Ditto.
24744         * doc/passes.texi (Tree-SSA passes): Ditto.
24745
24746         * doc/configterms.texi (Configure Terms): Fix typo.
24747         * doc/cpp.texi (Common Predefined Macros): Ditto.
24748         * doc/md.texi (Machine Constraints): Ditto.
24749
24750         * doc/makefile.texi (Makefile): Add comma.
24751
24752 2008-01-31  Tom Browder  <tom.browder@gmail.com>
24753             Gerald Pfeifer  <gerald@pfeifer.com>
24754
24755         * doc/sourcebuild.texi (Front End): Remove references to CVS
24756         and CVSROOT/modules.
24757         (Texinfo Manuals): Replace reference to CVS by one to SVN.
24758         (Back End): Remove reference to CVS.
24759
24760 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
24761
24762         PR target/34900
24763         * config/mips/mips.c (gen_load_const_gp): New function, taking a
24764         comment from...
24765         (mips16_gp_pseudo_reg): ...here.
24766         * config/mips/mips.md (load_const_gp): Replace with...
24767         (load_const_gp_<mode>): ...this :P-based insn.
24768
24769 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
24770
24771         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
24772         options. Minor fixes.
24773         (-std): Move reference to standards closer to where language
24774         standards are first mentioned.
24775
24776 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
24777
24778         PR rtl-optimization/34995
24779         * reload.c (alternative_allows_const_pool_ref): Take an rtx
24780         parameter and return a bool.  If the rtx parameter is nonnull,
24781         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
24782         (find_reloads): Update call accordingly.  Pass the new operand
24783         if it needed no address reloads, otherwise pass null.
24784
24785 2008-01-30  Richard Henderson  <rth@redhat.com>
24786
24787         PR c/34993
24788         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
24789         for unbounded arrays.
24790
24791 2008-01-30  Silvius Rus  <rus@google.com>
24792
24793         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
24794
24795 2008-01-30  Jan Hubicka  <jh@suse.cz>
24796
24797         PR target/34982
24798         * i386.c (init_cumulative_args): Use real function declaration when
24799         calling locally.
24800
24801 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
24802
24803         PR rtl-optimization/34998
24804         * global.c (build_insn_chain): Treat non-subreg_lowpart
24805         SUBREGs of pseudos as clobbering all the words covered by the
24806         SUBREG, not just all the bytes.
24807         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
24808         original df_ref rather than an extract parameter.
24809         (global_conflicts): Update call accordingly.
24810
24811 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
24812
24813         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
24814         the overflow check to make it easier to read.
24815         (__fixtfdi): Change the type of the ll member in union
24816         long_double to UDItype_x.
24817
24818 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
24819
24820         PR middle-end/34969
24821         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
24822         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
24823         * tree-inline.c (fold_marked_statements): Call
24824         cgraph_update_edges_for_call_stmt if folding a call statement.
24825         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
24826         debug_generic_stmt calls, reset it back afterwards.
24827
24828         PR c/35017
24829         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
24830         static decls.
24831         * c-typeck.c (build_external_ref): Don't pedwarn about
24832         static vars in current function's scope.
24833
24834 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
24835
24836         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
24837
24838 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
24839
24840         PR c/35002
24841         * ipa-struct-reorg.c: Fix spelling.
24842         * params.def: Ditto.
24843
24844 2008-01-29  Richard Guenther  <rguenther@suse.de>
24845
24846         PR middle-end/35006
24847         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
24848         field.
24849         * tree-inline.c (remap_type): Increment remapping_type_depth
24850         around remapping types.
24851         (copy_body_r): Only add referenced variables if they are referenced
24852         from code, not types.
24853
24854 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
24855
24856         PR c++/34055
24857         PR c++/34103
24858         PR c++/34219
24859         PR c++/34606
24860         PR c++/34753
24861         PR c++/34754
24862         PR c++/34755
24863         PR c++/34919
24864         PR c++/34961
24865         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
24866         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
24867
24868 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
24869
24870         PR target/34412
24871         * config/avr/avr.c (expand_prologue): Use correct QI mode frame
24872         pointer for tiny stack.
24873
24874 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
24875
24876         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
24877
24878 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
24879
24880         * config/vx-common.h: Fix typo in comment.
24881
24882 2008-01-28  Ian Lance Taylor  <iant@google.com>
24883
24884         PR c++/34862
24885         PR c++/33407
24886         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
24887         coalesce pointers if they have different DECL_NO_TBAA_P values.
24888         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
24889         between variables with different DECL_NO_TBAA_P values.
24890
24891 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
24892
24893         PR 31535
24894         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
24895         are not legitimate small data references on SPE targets.
24896
24897 2008-01-28  David Daney  <ddaney@avtrex.com>
24898
24899         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
24900
24901 2008-01-28  David Daney  <ddaney@avtrex.com>
24902
24903         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
24904
24905 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
24906
24907         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
24908         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
24909         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
24910         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
24911         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
24912         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
24913         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
24914         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
24915
24916 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
24917
24918         * basic-block.h (condjump_equiv_p): Fix comment.
24919
24920 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
24921
24922         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
24923         print_generic_stmt_indented): Fix comment.
24924
24925 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
24926
24927         * configure.ac (__stack_chk_fail): Add detecion for availability
24928         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
24929         * configure: Regenerate.
24930
24931 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
24932
24933         PR middle-end/34688
24934         * final.c (output_addr_const): Handle TRUNCATE.
24935
24936 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
24937
24938         PR target/34711
24939         * tree-ssa-loop-ivopts.c (comp_cost): New type.
24940         (zero_cost, infinite_cost): New constants.
24941         (struct cost_pair): Change type of cost to comp_cost.
24942         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
24943         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
24944         New functions.
24945         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
24946         split_address_cost, ptr_difference_cost, difference_cost,
24947         get_computation_cost_at, get_computation_cost,
24948         determine_use_iv_cost_generic, determine_use_iv_cost_address,
24949         determine_use_iv_cost_condition, determine_use_iv_costs,
24950         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
24951         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
24952         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
24953         Change type of cost to comp_cost.
24954         (determine_iv_cost): Increase cost of non-original ivs, instead
24955         of decreasing the cost of original ones.
24956         (get_address_cost): Indicate the complexity of the addressing mode
24957         in comp_cost.
24958         (try_add_cand_for): Prefer using ivs not specific to some object.
24959         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
24960
24961 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
24962             Janis Johnson  <janis187@us.ibm.com>
24963
24964         PR target/34814
24965         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
24966         (TARGET_INSTANTIATE_DECLS): Likewise.
24967         * target.h (expand_to_rtl_hook): New target hook.
24968         (instantiate_decls): Likewise.
24969         * function.c (instantiate_decl): Make non-static.  Rename to...
24970         (instantiate_decl_rtl): ... this.
24971         (instantiate_expr): Use instantiate_decl_rtl.
24972         (instantiate_decls_1): Likewise.
24973         (instantiate_decls): Likewise.
24974         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
24975         * function.h (instantiate_decl_rtl): Add prototype.
24976         * cfgexpand.c (target.h): New include.
24977         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
24978         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
24979         (TARGET_INSTANTIATE_DECLS): Likewise.
24980         (TARGET_INITIALIZER): New target hooks added.
24981         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
24982         New prototype.
24983         * config/rs6000/rs6000.c (tree-flow.h): New include.
24984         (machine_function): Add sdmode_stack_slot field.
24985         (rs6000_alloc_sdmode_stack_slot): New function.
24986         (rs6000_instantiate_decls): Likewise.
24987         (rs6000_secondary_memory_needed_rtx): Likewise.
24988         (rs6000_check_sdmode): Likewise.
24989         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
24990         (TARGET_INSTANTIATE_DECLS): Likewise.
24991         (rs6000_hard_regno_mode_ok): Allow SDmode.
24992         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
24993         (rs6000_emit_move): Handle SDmode.
24994         (function_arg_advance): Likewise.
24995         (function_arg): Likewise.
24996         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
24997         SDmode var args for 32-bit compiles.
24998         (rs6000_secondary_reload_class): Handle SDmode.
24999         (rs6000_output_function_epilogue): Likewise.
25000         (rs6000_function_value): Simplify if statement.
25001         (rs6000_libcall_value): Likewise.
25002         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
25003         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
25004         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
25005         (movsd_hardfloat): New define_insn.
25006         (movsd_softfloat): Likewise.
25007         (movsd_store): Likewise.
25008         (movsd_load): Likewise.
25009         (extendsddd2): Likewise.
25010         (extendsdtd2): Likewise.
25011         (truncddsd2): Likewise.
25012         (movdd_hardfloat64): Fixup comment.
25013         (UNSPEC_MOVSD_LOAD): New constant.
25014         (UNSPEC_MOVSD_STORE): Likewise.
25015
25016 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
25017
25018         PR c++/34965
25019         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
25020         TRUTH_XOR_EXPR.
25021         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
25022         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
25023         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
25024         and TRUTH_XOR_EXPR.
25025
25026 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
25027
25028         PR target/34794
25029         * config.gcc: Separate AIX 5.3 from AIX 6.1.
25030         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
25031         __LONGDOUBLE128 too.
25032         * config/rs6000/aix61.h: New file.
25033
25034 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
25035
25036         PR rtl-optimization/34959
25037         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
25038         popcount and parity rtxes the same mode as their operand.
25039         Truncate or extend the result to the return value's mode
25040         if necessary.
25041
25042 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
25043
25044         PR target/34981
25045         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
25046         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
25047         to GOT_VERSION_REGNUM.
25048         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
25049         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
25050         * config/mips/mips.c (mips_emit_call_insn): New function.
25051         (mips_call_tls_get_addr): Call mips_expand_call directly.
25052         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
25053         emit_call_insn.
25054         (mips16_build_call_stub): Likewise.  Return the call insn or null.
25055         (mips_expand_call): Update the call to mips16_build_call_stub
25056         accordingly and a remove redundant condition.  Assert that MIPS16
25057         stubs do not use lazy binding.  Use mips_emit_call_insn and return
25058         the call insn.
25059         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
25060         TARGET_USE_GOT.
25061         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
25062         (mips_avoid_hazard): Remove hazard_set handling.
25063         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
25064         (UNSPEC_RESTORE_GP): ...this.
25065         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
25066         (FAKE_CALL_REGNO): Rename to...
25067         (GOT_VERSION_REGNUM): ...this.
25068         (type): Add "ghost" value.  Add an associated insn reservation.
25069         (hazard_set): Remove.
25070         (exception_receiver): Rename to...
25071         (restore_gp): ...this and update the unspec identifier accordingly.
25072         (exception_receiver, nonlocal_got_receiver): New expanders.
25073         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
25074         FAKE_CALL_REGNO.  Remove hazard_set attribute.
25075         (set_got_version, update_got_version): New patterns.
25076
25077 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
25078
25079         PR target/34970
25080         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
25081
25082 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
25083
25084         PR other/31955
25085         * doc/install.texi2html: Generate gcc-vers.texi.
25086
25087 2008-01-25  DJ Delorie  <dj@redhat.com>
25088
25089         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
25090
25091 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
25092
25093         * config/c4x: Remove directory.
25094         * config.gcc (crx-*, mt-*): Mark obsolete.
25095         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
25096         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
25097         sh-*-rtemscoff*): Remove cases.
25098         * defaults.h (C4X_FLOAT_FORMAT): Remove.
25099         * real.c (encode_c4x_single, decode_c4x_single,
25100         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
25101         c4x_extended_format): Remove.
25102         * real.h (c4x_single_format, c4x_extended_format): Remove.
25103         * doc/extend.texi (interrupt, naked): Remove mention of attributes
25104         on C4x.
25105         (Pragmas): Remove comment about c4x pragmas.
25106         * doc/install.texi (c4x): Remove target-specific instructions.
25107         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
25108         * doc/md.texi (Machine Constraints): Remove C4x documentation.
25109         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
25110         refer to C4x source files as examples.
25111         (C4X_FLOAT_FORMAT): Remove documentation.
25112
25113 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
25114
25115         * config/bfin/bfin.c (override_options): Reorder tests so that
25116         flag_pic gets enabled for -msep-data.
25117
25118 2008-01-25  Richard Guenther  <rguenther@suse.de>
25119
25120         PR middle-end/32244
25121         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
25122         to its bitfield precision if required.
25123
25124 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
25125
25126         PR middle-end/33880
25127         * tree-nested.c (walk_omp_for): New function.
25128         (convert_nonlocal_reference, convert_local_reference): Call
25129         walk_omp_for on OMP_FOR.
25130         (convert_call_expr): Call walk_body on OMP_FOR's
25131         OMP_FOR_PRE_INIT_BODY.
25132
25133 2008-01-25  Richard Guenther  <rguenther@suse.de>
25134
25135         PR tree-optimization/34966
25136         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
25137         default defs and PHI_NODEs we have to insert after the
25138         defining statement.
25139
25140 2008-01-24  Nick Clifton  <nickc@redhat.com>
25141
25142         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
25143         Provide a default definition.
25144         (LIBGCC2_UNITS_PER_WORD): Likewise.
25145
25146         * config/stormy16/stormy16.c: Include df.h for the prototype
25147         for df_regs_ever_live_p.
25148         (xstormy16_expand_builtin_va_start): Convert the stack offset
25149         into a component_ref and then use POINTER_PLUS_EXPR to add it
25150         to the incoming_virtual_args_rtx.
25151         (xstormy16_gimplify_va_arg_expr): Rename to
25152         xstormy16_gimplify_va_arg_expr.
25153         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
25154         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
25155         xstormy16_gimplify_va_arg_expr.
25156         Fix up some formatting issues.
25157
25158         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
25159         Move to predicates.md.
25160         (xs_hi_general_operand): Likewise.
25161         (xs_hi_nonmemory_operand): Likewise.
25162         * config/stormy16/predicates.md:
25163         (xstormy16_carry_plus_operand): New predicate.
25164         (xs_hi_general_operand): New predicate.
25165         (xs_hi_nonmemory_operand): New predicate.
25166         * config/stormy16/stormy16-protos.h:
25167         (xstormy16_carry_plus_operand): Delete prototype.
25168         (xs_hi_general_operand): Likewise.
25169         (xs_hi_nonmemory_operand): Likewise.
25170
25171         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
25172         modifiers as they are no longer needed and they can trigger
25173         reload spill failures.
25174
25175         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
25176         with a match_operand in order to help reload.
25177
25178         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
25179         constraint with 'e' for the 8th alternative as this version of
25180         the mov.w instruction only accepts the lower 8 registers.
25181
25182 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
25183
25184         PR target/34856
25185         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
25186         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
25187         vector elements.
25188
25189 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
25190
25191         PR middle-end/33333
25192         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
25193
25194 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
25195
25196         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
25197         New functions.
25198         (remove_structure): Update allocations list before removing structure.
25199
25200 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
25201
25202         * ipa-struct-reorg.c (is_safe_cond_expr,
25203         create_new_stmts_for_cond_expr): Use integer_zerop function,
25204         that recognize not only zero-pointer, but zero-integer too.
25205
25206 2008-01-25  Ben Elliston  <bje@au.ibm.com>
25207
25208         PR other/22232
25209         * fixproto: Escape "." in sed expression that strips leading "./".
25210
25211 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
25212
25213         PR driver/34904
25214         * gcc.c (SWITCH_OK): Removed.
25215         (SWITCH_LIVE): Changed to bit.
25216         (SWITCH_FALSE): Likewise.
25217         (SWITCH_IGNORE): Likewise.
25218         (switchstr): Change live_cond to unsigned int.
25219         (process_command): Replace SWITCH_OK with 0.
25220         (do_self_spec): Likewise.
25221         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
25222         (give_switch): Likewise.
25223         (used_arg): Likewise.
25224         (do_spec_1): Set the SWITCH_IGNORE bit.
25225         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
25226         bits.  Set the SWITCH_LIVE bit.
25227
25228 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
25229
25230         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
25231
25232 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
25233
25234         PR tree-optimization/34472
25235         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
25236         parameter to a "bool *" and set *DATA to false if there is
25237         an unsafe access.  Do not delete the structure here.
25238         (check_cond_exprs): Delete it here instead.
25239         (check_cond_exprs, exclude_cold_structs): Do not increase
25240         I when removing a structure.
25241
25242 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
25243
25244         PR target/34856
25245         * config/i386/i386.c (ix86_expand_vector_init): Consider only
25246         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
25247
25248 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
25249
25250         PR middle-end/34934
25251         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
25252         a fixed vector for stack.
25253
25254 2008-01-24  Ben Elliston  <bje@au.ibm.com>
25255
25256         PR c++/25701
25257         * doc/gcc.texi (Software development): Add a direntry for g++.
25258
25259 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
25260
25261         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
25262         stale and straggling -fforce-addr comments above.
25263
25264         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
25265         define.
25266         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
25267         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
25268
25269 2008-01-23  Michael Matz  <matz@suse.de>
25270
25271         PR debug/34895
25272         * dwarf2out.c (force_type_die): Use modified_type_die instead of
25273         gen_type_die.
25274
25275 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
25276
25277         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
25278         malloc result type.
25279
25280 2008-01-23 Anatoly Sokolov <aesok@post.ru>
25281
25282         * config/avr/avr.c (avr_current_arch): New variable.
25283         (avr_arch_types): Add 'avr31' and 'avr51' entries.
25284         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
25285         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
25286         (avr_override_options): Init 'avr_current_arch'.
25287         (base_arch_s): Move from here...
25288         * config/avr/avr.h (base_arch_s): ... here. Add new members
25289         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
25290         'mega' to 'have_jmp_call'.
25291         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
25292         "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
25293         macros.
25294         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
25295         architectures.
25296         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
25297         MULTILIB_MATCHES): Ditto.
25298
25299 2008-01-23  Richard Guenther  <rguenther@suse.de>
25300
25301         PR middle-end/31529
25302         * cgraphunit.c (cgraph_reset_node): Always mark the node
25303         not reachable if it is not queued already.
25304
25305 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
25306
25307         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
25308         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
25309         (cputype_selected): New static variable.
25310         (bfin_handle_option): Set it if -mcpu is used.
25311         (override_option): Select default set of workarounds if no cpu type
25312         selected on the command line.
25313         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
25314
25315         From  Michael Frysinger  <michael.frysinger@analog.com>
25316         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
25317         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
25318
25319         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
25320         for bf547, bf523, bf524, and bf526.
25321         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
25322         bf526.
25323         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
25324         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
25325         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
25326         __ADSPBF547__ and __ADSPBF54x__ for bf547.
25327         * doc/invoke.texi (Blackfin Options): Document that
25328         -mcpu now accept bf547, bf523, bf524, and bf526.
25329
25330 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
25331
25332         PR rtl-optimization/34628
25333         * combine.c (try_combine): Stop and undo after the first combination
25334         if an autoincrement side-effect on the first insn has effectively
25335         been lost.
25336
25337 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
25338
25339         PR target/34529
25340         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
25341         Offset addresses are not valid for Altivec or paired float modes.
25342
25343 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
25344
25345         PR c++/34607
25346         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
25347         if DECL_INITIAL (decl) is error_mark_node.
25348
25349         PR c++/34914
25350         * c-common.c (handle_vector_size_attribute): Only allow
25351         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
25352         the same way as pointer, array etc. types.
25353         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
25354
25355         PR c++/34917
25356         * tree.c (build_type_attribute_qual_variant): Call
25357         build_qualified_type if attributes are equal, but quals are not.
25358
25359 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
25360
25361         PR 32102
25362         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
25363         * flags.h (warn_strict_aliasing): Remove.
25364         (warn_strict_overflow): Remove.
25365         * opts.c (warn_strict_aliasing): Remove.
25366         (warn_strict_overflow): Remove.
25367         * c-opts.c (c_common_handle_option): -Wall only sets
25368         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
25369         (c_common_post_options): Give default values to -Wstrict-aliasing
25370         and -Wstrict-overflow if they are uninitialized.
25371         * common.opt (Wstrict-aliasing): Specify Var and Init.
25372         (Wstrict-overflow): Likewise.
25373
25374 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
25375
25376         PR rtl-optimization/26854
25377         PR rtl-optimization/34400
25378         PR rtl-optimization/34884
25379         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
25380         DF_RD->gen.
25381         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
25382         (df_rd_bb_info.expanded_lr_out): Deleted
25383         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
25384         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
25385         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
25386         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
25387         Removed code to allocate, initialize or free expanded_lr_out.
25388         (df_rd_bb_local_compute_process_def): Restructured to make more
25389         understandable.
25390         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
25391         sets if the sets are being trimmed.
25392
25393 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
25394
25395         PR bootstrap/32287
25396         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
25397         (as_vers): Likewise.
25398         * configure: Regenerated.
25399
25400 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
25401
25402         PR middle-end/33092
25403         * tree-pass.h (pass_build_alias): New pass.
25404         * tree-ssa-alias.c (gate_build_alias): New.
25405         (pass_build_alias): New.
25406         * passes.c (init_optimization_passes): Add pass_build_alias after
25407         pass_create_structure_vars.
25408
25409 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
25410
25411         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
25412         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
25413         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
25414         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
25415         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
25416         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
25417         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
25418         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
25419         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
25420         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
25421         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
25422         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
25423         * config/s390/s390.md (FP_ALL): New mode iterator.
25424         (_d): New mode attribute.
25425         ("*signbit<mode>2>"): Changed mode of first operand.
25426         ("isinf<mode>2"): Changed mode of first operand.
25427         ("*TDC_insn"): Adaptation for DFP modes.
25428
25429 2008-01-22  Ben Elliston  <bje@au.ibm.com>
25430
25431         * tree.c (check_qualified_type): Improve function description.
25432
25433 2008-01-21  Jason Merrill  <jason@redhat.com>
25434
25435         PR c++/34196
25436         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
25437         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
25438         if it is set.
25439
25440 2008-01-21  DJ Delorie  <dj@redhat.com>
25441
25442         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
25443         return zero.
25444
25445 2008-01-21  Richard Guenther  <rguenther@suse.de>
25446
25447         PR middle-end/34856
25448         * tree-cfg.c (verify_expr): Allow all invariant expressions
25449         instead of just constant class ones as reference argument.
25450         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
25451         like any other constant.
25452         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
25453
25454 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
25455
25456         * regmove.c (fixup_match_1): Update call crossed frequencies.
25457
25458 2008-01-21  Richard Guenther  <rguenther@suse.de>
25459
25460         PR c/34885
25461         * tree-inline.c (setup_one_parameter): Deal with mismatched
25462         types using a VIEW_CONVERT_EXPR.
25463
25464 2008-01-21  Alon Dayan  <alond@il.ibm.com>
25465             Olga Golovanevsky  <olga@il.ibm.com>
25466
25467         PR tree-optimization/34701
25468         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
25469         when the structure size is not a power of 2.
25470
25471 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
25472
25473         * doc/install.texi: Add doc for --enable-checking=df.
25474
25475 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
25476
25477         PR rtl-optimization/34808
25478         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
25479
25480 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
25481
25482         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
25483         input.
25484
25485 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
25486
25487         PR rtl-optimization/26854
25488         PR rtl-optimization/34400
25489         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
25490         DF_RD->gen.
25491         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
25492         (df_rd_bb_info.expanded_lr_out): New.
25493         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
25494         * loop_iv.c (iv_analysis_loop_init): Ditto.
25495         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
25496         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
25497         Added code to allocate, initialize or free expanded_lr_out.
25498         (df_rd_bb_local_compute_process_def): Restructured to make
25499         more understandable.
25500         (df_rd_confluence_n): Add code to do nothing with fake edges and
25501         code to no apply invalidate_by_call sets if the sets are being trimmed.
25502         (df_lr_local_finalize): Renamed to df_lr_finalize.
25503         (df_live_local_finalize): Renamed to df_live_finalize.
25504
25505 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
25506
25507         PR target/34831
25508         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
25509         deciding whether to use reciprocal instructions.
25510
25511 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
25512
25513         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
25514         dwarf2out_note_section_used if cold_text_section is NULL.
25515
25516 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
25517
25518         PR gcov-profile/34610
25519         * tree-cfg.c (make_edges): Mark both outgoing edges from
25520         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
25521         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
25522         from OMP_FOR and OMP_CONTINUE outgoing edges.
25523
25524         * tree-profile.c (tree_profiling): Return early if
25525         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
25526         at the end.
25527         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
25528         from cfun to child_cfun.
25529         * function.h (struct function): Add after_tree_profile bit.
25530
25531 2008-01-19 Anatoly Sokolov <aesok@post.ru>
25532
25533         * config/avr/avr.S (_exit): Disable interrupt.
25534
25535 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
25536             Steven Bosscher  <stevenb.gcc@gmail.com>
25537
25538         PR rtl-optimization/26854
25539         PR rtl-optimization/34400
25540         * df-problems.c (df_live_scratch): New scratch bitmap.
25541         (df_live_alloc): Allocate df_live_scratch when doing df_live.
25542         (df_live_reset): Clear the proper bitmaps.
25543         (df_live_bb_local_compute): Only process the artificial defs once
25544         since the order is not important.
25545         (df_live_init): Init the df_live sets only with the variables
25546         found live by df_lr.
25547         (df_live_transfer_function): Use the df_lr sets to prune the
25548         df_live sets as they are being computed.
25549         (df_live_free): Free df_live_scratch.
25550
25551 2008-01-18  Ian Lance Taylor  <iant@google.com>
25552
25553         * common.opt: Add fmerge-debug-strings.
25554         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
25555         flag_merge_debug_strings rather than flag_merge_constants.
25556         * doc/invoke.texi (Option Summary): Mention
25557         -fmerge-debug-strings.
25558         (Debugging Options): Document -fmerge-debug-strings.
25559
25560 2008-01-18  Ian Lance Taylor  <iant@google.com>
25561
25562         PR c++/33407
25563         * tree.h (DECL_IS_OPERATOR_NEW): Define.
25564         (struct tree_function_decl): Add new field operator_new_flag.
25565         * tree-inline.c (expand_call_inline): When inlining a call to
25566         operator new, force the return value to go into a variable, and
25567         set DECL_NO_TBAA_P on that variable.
25568         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
25569
25570 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
25571
25572         PR debug/34484
25573         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
25574         DWARF2_DEBUGGING_INFO.
25575         (dwarf2out_note_section_used): Ditto.  Add prototype.
25576         (have_multiple_function_sections, text_section_used,
25577         cold_text_section_used, *cold_text_sections): Move declarations
25578         before their uses.
25579
25580 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
25581
25582         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
25583         field and add signal_ra.
25584         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
25585         assignments to frame state pc.  Move end of stack check after
25586         MD_FALLBACK_FRAME_STATE_FOR.
25587         (uw_update_context_1): Use frame state signal_regs if set, instead
25588         of checking signal_frame flag.
25589         (uw_update_context): Use frame state signal_ra if set.
25590         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
25591         * config/xtensa/linux-unwind.h: New file.
25592
25593 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
25594
25595         * modulo-sched.c (get_sched_window): Fix comment typo.
25596
25597 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
25598
25599         PR tree-optimization/34648
25600         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
25601
25602 2008-01-17  Anatoly Sokolov <aesok@post.ru>
25603
25604         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
25605         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
25606
25607 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
25608
25609         PR rtl-optimization/34400
25610         * df-core.c (df_worklist_dataflow_overeager,
25611         df_worklist_dataflow_doublequeue): New functions.
25612         (df_worklist_dataflow): Two different worklist solvers.
25613         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
25614         New param.
25615
25616 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
25617
25618         PR testsuite/34821
25619         * doc/invoke.texi: Document the dependence on pthread for fopenmp
25620         and ftree-parallelize-loops.
25621
25622 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
25623
25624         PR rtl-optimization/34826
25625         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
25626
25627 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
25628
25629         * global.c (find_reg): Mark the eh regs as used if necessary.
25630         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
25631         * ra.h (struct allocno): no_eh_reg field added.  Changed
25632         no_stack_reg type to bitfield.
25633
25634 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
25635
25636         * tree.c (substitute_in_expr): Add missing 'break'.
25637
25638 2008-01-17  Richard Guenther  <rguenther@suse.de>
25639
25640         PR tree-optimization/34825
25641         * tree-ssa-math-opts.c (is_division_by): Do not recognize
25642         x / x as division to handle.
25643
25644 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25645
25646         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
25647         "-pthread" is specified.
25648         * pa-hpux11.h (LIB_SPEC): Likewise.
25649
25650 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
25651             Peter Bergner  <bergner@vnet.ibm.com>
25652
25653         PR rtl-optimization/33796
25654         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
25655
25656 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25657
25658         PR libgfortran/34699
25659         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
25660         static links.
25661         * pa-hpux10.h (LINK_SPEC): Likewise.
25662         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
25663
25664 2008-01-16  Richard Guenther  <rguenther@suse.de>
25665
25666         PR middle-end/32628
25667         * fold-const.c (fold_convert_const_int_from_int): Do not
25668         set overflow if that occured only because of a sign extension
25669         change when converting from/to a sizetype with the same
25670         precision and signedness.
25671
25672 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
25673
25674         PR debug/34249
25675         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
25676         location address to the correct place.  Update copyright year.
25677
25678 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
25679
25680         * lambda-code.c (lambda_transform_legal_p): Handle the case of
25681         no dependences in the dependence_relations vector.
25682
25683 2008-01-16  Jan Hubicka  <jh@suse.cz>
25684
25685         PR rtl-optimization/31396
25686         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
25687         * cfg.c (dump_reg_info): Print it.
25688         * regs.h (struct reg_info_t): add freq_calls_crossed.
25689         (REG_FREQ_CALLS_CROSSED): New macro.
25690         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
25691         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
25692         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
25693         regmove_optimize): Update call crossed frequencies.
25694         * local-alloc.c (struct qty): Add freq_calls_crossed.
25695         (alloc_qty): Copute freq_calls_crossed.
25696         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
25697         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
25698         * ra.h (struct allocno): Add freq_calls_crossed.
25699
25700 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
25701
25702         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
25703         libgomp when compiling with ftree-parallelize-loops.
25704         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
25705
25706 2008-01-16  Richard Guenther  <rguenther@suse.de>
25707
25708         PR tree-optimization/34769
25709         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
25710         * tree.c (int_cst_value): Instead make this function more
25711         permissive in what it accepts as valid input.  Document this
25712         function always sign-extends the value.
25713
25714 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
25715             Richard Guenther  <rguenther@suse.de>
25716
25717         PR c/34668
25718         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
25719         (gimple_fold_indirect_ref_rhs): ... this.
25720         (gimple_fold_indirect_ref): New function with foldings
25721         that preserve lvalueness.
25722         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
25723         * tree-flow.h (gimple_fold_indirect_ref): Declare.
25724         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
25725         to fold an INDIRECT_REF, fall back to the old use of
25726         fold_indirect_ref_1.
25727
25728 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
25729
25730         * tree-data-ref.c (subscript_dependence_tester_1): Call
25731         free_conflict_function.
25732         (compute_self_dependence): Same.
25733
25734 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
25735
25736         PR debug/34249
25737         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
25738         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
25739         function global.
25740         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
25741         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
25742         for DWARF2_UNWIND_INFO targets.
25743
25744 2008-01-16  Richard Guenther  <rguenther@suse.de>
25745
25746         PR c/34768
25747         * c-typeck.c (common_pointer_type): Do not merge inconsistent
25748         type qualifiers for function types.
25749
25750 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
25751
25752         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
25753         loop_iterator li from previous commit.
25754
25755 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
25756
25757         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
25758
25759 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
25760
25761         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
25762         (parallelize_loops): Don't parallelize irreducible components.
25763
25764 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
25765
25766         PR c++/24924
25767         * c-opts (c_common_post_options): Do not enable CPP
25768         flag_pedantic_errors by default.
25769
25770 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
25771
25772         PR rtl-optimization/31944
25773         * cse.c (remove_pseudo_from_table): New function.
25774         (merge_equiv_classes): Use above function to remove pseudo-registers.
25775         (invalidate): Likewise.
25776
25777 2008-01-13  Richard Guenther  <rguenther@suse.de>
25778
25779         PR middle-end/34601
25780         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
25781         instead of TYPE_MODE to deal with calls from expand_one_error_var.
25782
25783 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
25784
25785         * gcse.c (cprop_jump): Call validate_unshare_change instead of
25786         validate_change to unshare the source of the PC set.
25787
25788 2008-01-12  Jan Hubicka  <jh@suse.cz>
25789
25790         PR middle-end/32135
25791         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
25792         references above array bounds.  This might trigger bounds checks for
25793         pointers to arrays.
25794
25795 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
25796
25797         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
25798         new_replaceable_dependencies.
25799
25800 2008-01-12  Doug Kwan  <dougkwan@google.com>
25801
25802         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
25803         instead of OPT_Wreturn_type in warning due to ignored return type
25804         qualifiers.
25805         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
25806         options included in -Wextra.
25807         * c.opt: New option -Wignored_qualifiers.
25808         * doc/invoke.texi (Warning Options, -Wextra): Add new option
25809         -Wignore_qualifiers.
25810         (-Wignored-qualifiers): Document.
25811         (-Wreturn-type): Remove description of functionality now handled
25812         by -Wignored-qualifiers.
25813
25814 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
25815
25816         PR ada/33788
25817         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
25818         NOP_EXPR if it is between integral types with the same precision.
25819
25820 2008-01-12  Jan Hubicka  <jh@suse.cz>
25821
25822         PR other/28023
25823         * invoke.texi (max-inline-recursive-depth): Fix default value.
25824
25825 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
25826
25827         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
25828         correct type.
25829
25830 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
25831
25832         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
25833
25834 2008-01-11  James E. Wilson  <wilson@specifix.com>
25835
25836         PR target/26015
25837         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
25838
25839 2008-01-11  Anatoly Sokolov <aesok@post.ru>
25840
25841         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
25842         save/restore frame pointer register and don't use 'call-prologues'
25843         optimization in function with "OS_task" attribute.
25844
25845 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
25846
25847         PR middle-end/31309
25848         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
25849         when copying to memory.
25850
25851 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
25852
25853         PR rtl-optimization/30905
25854         * cfgcleanup.c: Include dce.h
25855         (crossjumps_occured): New global variable.
25856         (try_crossjump_bb): Exit loop after finding a fallthru edge.
25857         If something changed, set crossjumps_occured to true.
25858         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
25859         Don't add/remove fake edges to exit here...
25860         (cleanup_cfg): ...but do it here, when crossjumping.
25861         Run a fast DCE when successful crossjumps occured in the latest
25862         iteration of try_optimize_cfg.
25863
25864 2008-01-11  Richard Guenther  <rguenther@suse.de>
25865
25866         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
25867         (struct vn_unary_op_s): Likewise.
25868         (vn_reference_insert): Free old reference on hash collision.
25869
25870 2008-01-10  Raksit Ashok  <raksit@google.com>
25871
25872         PR rtl-optimization/27971
25873         * combine.c (find_split_point): Split PLUS expressions which are
25874         inside a MEM rtx, and whose first operand is complex.
25875
25876 2008-01-10  DJ Delorie  <dj@redhat.com>
25877
25878         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
25879         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
25880         (m32c_hard_regno_ok): Call the underlying function.
25881
25882 2008-01-10  Richard Guenther  <rguenther@suse.de>
25883
25884         PR middle-end/34683
25885         * tree-cfg.c (tree_merge_blocks): Do not go through the
25886         full-blown folding and stmt updating path if we just deal
25887         with virtual operands.
25888         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
25889         test for abnormal SSA_NAMEs.
25890
25891 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
25892
25893         PR middle-end/34641
25894         * reload.c (push_reload): Add assertions.  All constants from
25895         reg_equiv_constant should have been used for replacing the respective
25896         pseudo earlier.
25897         (find_reloads_address): Invoke find_reloads_address_part for
25898         constant taken from the reg_equiv_constant array.
25899
25900 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
25901
25902         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
25903         field (valnum) the first in the struct.  Replace bools with
25904         unit bit fields.
25905
25906 2008-01-10  Richard Guenther  <rguenther@suse.de>
25907
25908         PR tree-optimization/34651
25909         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
25910         types and ordering for masking and converting.
25911
25912 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
25913
25914         PR tree-optimization/34017
25915         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
25916         also for PHI_NODE expressions.
25917
25918 2008-01-09  Jan Hubicka  <jh@suse.cz>
25919
25920         PR tree-optimization/34708
25921         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
25922         based on number of case labels.
25923         (init_inline_once): Remove switch_cost.
25924         * tree-inline.h (eni_weights_d): Remove switch_cost.
25925
25926 2008-01-09  Richard Guenther  <rguenther@suse.de>
25927         Andrew Pinski  <andrew_pinski@playstation.sony.com>
25928
25929         PR middle-end/30132
25930         * gimplify.c (gimplify_cond_expr): Do not create an addressable
25931         temporary if an rvalue is ok or an lvalue is not required.
25932
25933 2008-01-09  Richard Guenther  <rguenther@suse.de>
25934
25935         PR middle-end/34458
25936         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
25937         adjust return type.
25938
25939 2008-01-09  Richard Guenther  <rguenther@suse.de>
25940
25941         PR middle-end/34679
25942         * tree.c (host_integerp): Check for sizetype only if the
25943         type is an integer type.
25944
25945 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
25946
25947         PR debug/26364
25948         * opts.c (decode_options): Disable inlining of functions called
25949         once if not in unit-at-a-time mode.
25950
25951 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
25952
25953         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
25954
25955 2008-01-08  Richard Guenther  <rguenther@suse.de>
25956
25957         PR middle-end/31863
25958         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
25959         out early if the result will be unused.
25960
25961 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
25962
25963         PR target/34709
25964         Revert:
25965
25966         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
25967         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
25968         for TARGET_RECIP.
25969
25970 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
25971
25972         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
25973         for vectorization tuned.
25974
25975 2008-01-08  Richard Guenther  <rguenther@suse.de>
25976
25977         PR tree-optimization/34683
25978         * tree-ssa-operands.c (operand_build_cmp): Export.
25979         * tree-ssa-operands.h (operand_build_cmp): Declare.
25980         * tree-vn.c (vuses_compare): Remove.
25981         (sort_vuses): Use operand_build_cmp.
25982         (sort_vuses_heap): Likewise.
25983         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
25984         to re-use old VEC if available.  Do not sort already sorted VUSEs.
25985         (vdefs_to_vec): Do not sort already sorted VDEFs.
25986
25987 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
25988
25989         PR middle-end/34694
25990         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
25991
25992 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
25993
25994         PR target/34702
25995         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
25996         limitations of reciprocal sequences on x86 targets.
25997
25998 2008-01-08  Richard Guenther  <rguenther@suse.de>
25999
26000         PR tree-optimization/34683
26001         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
26002
26003 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
26004
26005         PR target/34622
26006         * config/darwin.c (darwin_mergeable_string_section): Don't use
26007         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
26008
26009 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
26010
26011         PR target/34682
26012         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
26013         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
26014         predicates of op0 and op1 to register_operand.
26015         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
26016         expander using X87MODEF mode iterator.  Change predicates of
26017         op0 and op1 to register_operand.
26018         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
26019         corresponding patterns and macroize using MODEF macro.  Change
26020         predicates of op0 and op1 to register_operand and remove
26021         "m" constraint. Disparage "r" alternative with "!".
26022         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
26023         macroize using X87MODEF macro.  Change predicates of op0 and op1
26024         to register_operand and remove "m" constraint.  Disparage "r"
26025         alternative with "!".
26026         (absneg splitter with memory operands): Remove.
26027         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
26028         patterns and macroize using X87MODEF mode iterator.
26029         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
26030         Change predicate of op1 to register_operand.
26031         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
26032         for memory operands.
26033
26034 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
26035
26036         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
26037
26038 2008-01-07  Richard Guenther  <rguenther@suse.de>
26039
26040         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
26041         fields.
26042
26043 2008-01-07  Richard Guenther  <rguenther@suse.de>
26044
26045         PR tree-optimization/34683
26046         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
26047         VOPs of the needed size to save memory.  Use VEC_quick_push
26048         to save compile-time.
26049         (vdefs_to_vec): Likewise.
26050
26051 2008-01-07  Sa Liu  <saliu@de.ibm.com>
26052
26053         * config/spu/spu.md (divdf3): Genetate inline code for double
26054         division.  The implementation doesn't handle INF or NAN, therefore it
26055         only applies when -ffinite-math-only is given.
26056
26057 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
26058
26059         PR libstdc++/34680
26060         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
26061         * doc/cpp.texi ([Common Predefined Macros]): Document.
26062
26063 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
26064
26065         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
26066         order to use commutative addition instead of subtraction.
26067
26068 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
26069             Mircea Namolaru  <namolaru@il.ibm.com>
26070             Vladimir Yanovsky  <yanov@il.ibm.com>
26071             Revital Eres  <eres@il.ibm.com>
26072
26073         PR tree-optimization/34263
26074         * tree-outof-ssa.c (process_single_block_loop_latch,
26075         contains_tree_r): New functions.
26076         (analyze_edges_for_bb): Call process_single_block_loop_latch
26077         function to empty single-basic-block latch block if possible.
26078
26079 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
26080
26081         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
26082         for TARGET_RECIP.
26083         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
26084
26085 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
26086
26087         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
26088
26089 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
26090
26091         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
26092
26093 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
26094
26095         PR tree-optimization/34618
26096         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
26097         flag from T.
26098
26099 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
26100
26101         PR target/34673
26102         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
26103         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
26104         Update copyright year.
26105
26106         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
26107         Update copyright year.
26108         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
26109         using NR fixup.
26110
26111 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
26112
26113         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
26114         edge does not point to current bb before changing need_assert.
26115
26116 2008-01-04  Richard Guenther  <rguenther@suse.de>
26117
26118         PR middle-end/34029
26119         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
26120         for verifying purposes if they are is_gimple_min_invariant.
26121
26122 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
26123
26124         PR tree-optimization/34448
26125         PR tree-optimization/34465
26126         * gimplify.c (gimplify_init_constructor): Add new parameter
26127         notify_temp_creation.  Use it.
26128         (gimplify_modify_expr_rhs): Take volatiles into account when
26129         optimizing constructors.
26130         Do not optimize constructors if gimplify_init_constructor will dump to
26131         memory.
26132         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
26133         * gcc.c-torture/compile/pr34448.c: New.
26134
26135 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
26136
26137         PR gcov-profile/34609
26138         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
26139         return_slot if result is TREE_ADDRESSABLE.
26140
26141 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
26142
26143         * config/mips/mips.md (sqrt_condition): Tweak comment.
26144         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
26145
26146 2008-01-03  Tom Tromey  <tromey@redhat.com>
26147
26148         PR c/34457
26149         * c-common.c (c_type_hash): Handle VLAs.
26150
26151 2008-01-03  Jan Hubicka  <jh@suse.cz>
26152
26153         PR tree-optimization/31081
26154         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
26155         0 when inlining and not inlining to first basic block.
26156         (remap_decl): When var is initialized to 0, don't set default_def.
26157         (expand_call_inline): Set entry_bb.
26158         * tree-inline.h (copy_body_data): Add entry_bb.
26159
26160 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
26161
26162         PR c++/34619
26163         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
26164         before returning.
26165
26166         PR tree-optimization/29484
26167         * tree-inline.c (inline_forbidden_p_2): New function.
26168         (inline_forbidden_p): Disallow inlining if some static var
26169         has an address of a local LABEL_DECL in its initializer.
26170         * doc/extend.texi (Labels as Values): Document &&foo behaviour
26171         vs. inlining.
26172
26173 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
26174
26175         PR tree-optimization/34635
26176         * tree-data-ref.c (add_other_self_distances): Make sure that the
26177         evolution step is constant.
26178
26179 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
26180
26181         PR middle-end/34608
26182         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
26183
26184 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
26185
26186         * tree-sra.c (scalarize_init): Insert the generate_element_init
26187         statements after the generate_element_zero statements.
26188
26189 2008-01-02  Richard Guenther  <rguenther@suse.de>
26190
26191         PR middle-end/34093
26192         PR middle-end/31976
26193         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
26194         for very large number of operands instead of ICEing.
26195
26196 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
26197
26198         PR target/34013
26199         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
26200         while stack probing.
26201
26202 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
26203
26204         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
26205         in C++0x mode.
26206
26207 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
26208
26209         PR libmudflap/26442
26210         * tree-mudflap.c (mx_register_decls): Guard warning by
26211         !DECL_ARTIFICIAL check.
26212
26213 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
26214
26215         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
26216         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
26217         sse5_perm<mode>): Fix constraints.