OSDN Git Service

Add test cases for Fortran C binding with 128-bit integer.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-05-15  Sa Liu  <saliu@de.ibm.com>
2
3         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
4         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
5         * testsuite/lib/target-supports.exp: Add
6         check_effective_target_fortran_integer_16.
7
8 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
9
10         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
11         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
12         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
13         (TARGET_RETURN_IN_MEMORY): Define.
14
15 2008-05-15  Richard Guenther  <rguenther@suse.de>
16
17         PR middle-end/36244
18         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
19         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
20         represent unmodifiable vars.
21
22 2008-05-15  Richard Guenther  <rguenther@suse.de>
23
24         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
25         INDIRECT_REF and TARGET_MEM_REF.
26         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
27         TARGET_MEM_REF.
28
29 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
30             H.J. Lu  <hongjiu.lu@intel.com>
31
32         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
33         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
34         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
35         insn alternatives.  Add missing alternatives.
36         (*vec_concatv2di_rex64_sse4_1): Likewise.
37         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
38         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
39         Require TARGET_SSE.
40
41 2008-05-15  Richard Guenther  <rguenther@suse.de>
42
43         PR tree-optimization/36009
44         PR tree-optimization/36204
45         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
46         (determine_invariantness_stmt): Record the loop a store is
47         always executed in.
48         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
49         dependency.
50
51 2008-05-15  Richard Guenther  <rguenther@suse.de>
52
53         PR tree-optimization/34330
54         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
55         through the pointer will alias the SMT.
56
57 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
58
59         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
60
61 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
62
63         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
64
65 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
66             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
67
68         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
69         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
70         (vashl_optab): New optab for vector/vector shifts.
71         (vashr_optab): Ditto.
72         (vlshr_optab): Ditto.
73         (vrotl_optab): Ditto.
74         (vrotr_optab): Ditto.
75         (optab_subtype): New enum for optab_for_tree_code call.
76         (optab_for_tree_code): Add enum optab_subtype argument.
77
78         * optabs.c (optab_for_tree_code): Take an additional argument to
79         distinguish between a vector shift by a scalar and vector shift by
80         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
81         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
82         vector shift by a vector.
83         (expand_widen_pattern_expr): Pass additional argument to
84         optab_for_tree_code.
85
86         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
87         vrotl_optab, vrotr_optab.
88
89         * expr.c (expand_expr_real_1): Update calls to
90         optab_for_tree_code to distinguish between vector shifted by a
91         scalar and vector shifted by a vector.
92         * tree-vectorizer.c (supportable_widening_operation): Ditto.
93         (supportable_narrowing_operation): Ditto.
94         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
95         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
96         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
97         (vect_create_epilog_for_reduction): Ditto.
98         (vectorizable_reduction): Ditto.
99         (vectorizable_operation): Ditto.
100         (vect_strided_store_supported): Ditto.
101         (vect_strided_load_supported): Ditto.
102         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
103         * expmed.c (expand_shift): Ditto.
104
105         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
106         scalar type.
107         (ashr@var{m}3): Ditto.
108         (vashl@var{m}3): Document new vector/vector shift standard name.
109         (vashr@var{m}3): Ditto.
110         (vlshr@var{m}3): Ditto.
111         (vrotl@var{m}3): Ditto.
112         (vrotr@var{m}3): Ditto.
113
114         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
115         (PPERM_INVERT): Ditto.
116         (PPERM_REVERSE): Ditto.
117         (PPERM_REV_INV): Ditto.
118         (PPERM_ZERO): Ditto.
119         (PPERM_ONES): Ditto.
120         (PPERM_SIGN): Ditto.
121         (PPERM_INV_SIGN): Ditto.
122         (PPERM_SRC1): Ditto.
123         (PPERM_SRC2): Ditto.
124
125         * config/i386/sse.md (mulv2di3): Add SSE5 support.
126         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
127         allows a memory operand to be the value being added, and split it
128         to improve vectorization.
129         (sse5_pmacsdqh_mem): Ditto.
130         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
131         (sse5_mulv2div2di3_high): Ditto.
132         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
133         (vec_pack_trunc_v4si): Ditto.
134         (vec_pack_trunc_v2di): Ditto.
135         (sse5_pcmov_<mode>): Remove code that tried to use use
136         andps/andnps instead of pcmov.
137         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
138         pmacsdqh instructions.
139         (vec_widen_smult_lo_v4si): Ditto.
140
141         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
142         (PPERM_INVERT): Ditto.
143         (PPERM_REVERSE): Ditto.
144         (PPERM_REV_INV): Ditto.
145         (PPERM_ZERO): Ditto.
146         (PPERM_ONES): Ditto.
147         (PPERM_SIGN): Ditto.
148         (PPERM_INV_SIGN): Ditto.
149         (PPERM_SRC1): Ditto.
150         (PPERM_SRC2): Ditto.
151         (ix86_expand_sse_movcc): Move the SSE5 test after the if
152         true/false tests.
153         (ix86_expand_int_vcond): If SSE5 generate all possible integer
154         comparisons.
155         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
156         says ignore whether the last reference is a memory operand.
157
158 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
159             Paolo Bonzini <bonzini at gnu dot org>
160
161         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
162         shift patterns.
163
164         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
165         (vlshr<mode>3): Rename from vlshr<mode>3.
166         (vashr<mode>3): Rename from vashr<mode>3.
167         (mulv4sf3): Change the names of vector shift patterns.
168         (mulv4si3): Ditto.
169         (negv4sf2): Ditt.
170
171         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
172         shift insns.
173
174         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
175         (SI_SHLHI): Ditto.
176         (SI_SHL): Ditto.
177         (SI_SHLI): Ditto.
178         (SI_ROTH): Ditto.
179         (SI_ROTHI): Ditto.
180         (SI_ROT): Ditto.
181         (SI_ROTI): Ditto.
182         (SPU_RL_0): Ditto.
183         (SPU_RL_1): Ditto.
184         (SPU_RL_2): Ditto.
185         (SPU_RL_3): Ditto.
186         (SPU_RL_4): Ditto.
187         (SPU_RL_5): Ditto.
188         (SPU_RL_6): Ditto.
189         (SPU_RL_7): Ditto.
190         (SPU_SL_0): Ditto.
191         (SPU_SL_1): Ditto.
192         (SPU_SL_2): Ditto.
193         (SPU_SL_3): Ditto.
194         (SPU_SL_4): Ditto.
195         (SPU_SL_5): Ditto.
196         (SPU_SL_6): Ditto.
197         (SPU_SL_7): Ditto.
198
199         * config/spu/spu.md (v): New iterator macro to add v for vector types.
200         (floatunssidf2_internal): Change vector/vector shift names.
201         (floatunsdidf2_internal): Ditto.
202         (mulv8hi3): Ditto.
203         (ashrdi3): Ditto.
204         (ashrti3): Ditto.
205         (cgt_df): Ditto.
206         (cgt_v2df): Ditto.
207         (dftsv): Ditto.
208         (vashl<mode>3): Rename from ashl<mode>3.
209         (vashr<mode>3): Rename from ashr<mode>3.
210         (vlshr<mode>3): Rename from lshr<mode>3.
211         (vrotl<mode>3): Rename from rotl<mode>3.
212
213 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
214
215         PR target/36224
216         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
217         multiply gives the wrong value when doing widening multiplies.
218         (vec_widen_smult_lo_v4si): Ditto.
219
220 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
221
222         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
223         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
224         emit_library_call_value. 
225         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
226         * tree.h (ECF_LIBCALL_BLOCK): Removed.
227         * calls.c (initialize_argument_information, precompute_arguments, 
228         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
229         (precompute_arguments): Removed flags parameter.
230         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
231         
232 2008-05-14  Richard Guenther  <rguenther@suse.de>
233
234         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
235         Make sure to register the store if the use is a PHI_NODE.
236
237 2008-05-14  Olivier Hainque  <hainque@adacore.com>
238
239         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
240         memory if the component is to be referenced in BLKmode according
241         to get_inner_reference.
242
243 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
244
245         * calls.c (emit_library_call_value_1): Restore code clearing
246         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
247
248 2008-05-14  Olivier Hainque  <hainque@adacore.com>
249             Nicolas Roche  <roche@adacore.com>
250
251         * configure.ac: Add support for a "gcc_subdir" variable in
252         config-lang.in, to denote a subdirectory where the language/GCC
253         integration files are to be found.
254         * configure: Regenerate.
255
256 2008-05-14  Ira Rosen  <irar@il.ibm.com>
257
258         PR tree-optimization/36098
259         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
260         value for the first load in the group in case of a gap.
261         (vect_build_slp_tree): Check that there are no gaps in loads.
262
263 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
264
265         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
266         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
267         expand_copysign_bit, ): Change call to emit_no_conflict_block to
268         emit_insn and remove unneeded code to construct extra args.
269         (emit_no_conflict_block): Removed.
270         * optabls.h: (emit_no_conflict_block): Removed.
271         * cse.c (cse_extended_basic_block): Remove search for
272         REG_NO_CONFLICT note.
273         * global.c: Removed incorrect comment added in revision 117.
274         * expr.c (convert_move): Change call to emit_no_conflict_block to
275         emit_insn.
276         * recog.c: Change comments so that they do not mention
277         REG_NO_CONFLICT.
278         * local_alloc.c (combine_regs): Removed last parameter.
279         (no_conflict_p): Removed.
280         (block_alloc): Removed note, no_conflict_combined_regno and set
281         local vars. Removed all code to process REG_NO_CONFLICT blocks.
282         (combine_regs): Removed already_dead and code to look for
283         REG_NO_CONFLICT notes.
284         * lower_subreg (remove_retval_note): Removed code to look for
285         REG_NO_CONFLICT block.
286         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
287         (resolve_clobber): Remove code to process libcalls that have
288         REG_NO_CONFLICT notes.
289         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
290         case.
291         * combine.c (can_combine_p, distribute_notes):  Removed
292         REG_NO_CONFLICT case.
293         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
294         to emit_insns.
295         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
296         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
297         Ditto.
298         * reg-notes.def (NO_CONFLICT): Removed.
299
300 2008-05-14  David S. Miller  <davem@davemloft.net>
301
302         * config/sparc/sparc.c (sparc_profile_hook): If
303         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
304         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
305         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
306
307 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
308
309         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
310
311 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
312
313         PR target/36222
314         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
315         and op1 expansion before vector concat to have less live pseudos.
316
317 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
318
319         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
320         ix86_expand_vector_set if supported.
321
322 2008-05-13  Diego Novillo  <dnovillo@google.com>
323             Kenneth Zadeck  <zadeck@naturalbridge.com>
324
325         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
326
327         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
328         phinodes_print_statistics, init_ssanames, fini_ssanames,
329         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
330         release_ssa_name, release_defs, replace_ssa_name_symbol,
331         ssanames_print_statistics): Move ...
332         * tree-flow.h: ... here.
333         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
334         Use FN instead of cfun.
335         (make_ssa_name_fn): Rename from make_ssa_name.
336         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
337         * tree-flow-inline.h (make_ssa_name): Move from
338         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
339         * omp-low.c (expand_omp_parallel):
340         * tree-flow-inline.h (redirect_edge_var_map_result):
341         * tree-ssa.c (init_tree_ssa): Add argument FN.
342         Use it instead of cfun.  Update all users.
343
344 2008-05-13  Tom Tromey  <tromey@redhat.com>
345
346         PR preprocessor/22168:
347         * doc/cpp.texi (Top): Update menu.
348         (Alternatives to Wrapper #ifndef): New node.
349         (Other Directives): Document deprecation.
350         (Obsolete Features): Remove menu.
351         (Assertions): Merge node into Obsolete Features.
352         (Obsolete once-only headers): Move earlier; rename to Alternatives
353         to Wrapper #ifndef.
354         * doc/cppopts.texi: Update.
355         * c.opt (Wdeprecated): Enable for C and ObjC.
356         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
357         (C++ Dialect Options): Move -Wno-deprecated from here to...
358         (Warning Options): ... here.
359
360 2008-05-13  Richard Guenther  <rguenther@suse.de>
361
362         PR middle-end/36227
363         * fold-const.c (fold_sign_changed_comparison): Do not allow
364         changes in pointer-ness.
365
366 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
367
368         PR target/24713
369         * config/sh/sh.c (sh_expand_prologue): Don't clear
370         RTX_FRAME_RELATED_P for push insns.
371
372 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
373
374         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
375
376 2008-05-12  Anatoly Sokolov <aesok@post.ru>
377
378         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
379         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
380         Use 'machine->is_leaf' instead of 'leaf_func_p'.
381
382 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
383
384         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
385         (*vec_concatv4sf_sse): This.
386         (*sse2_concatv2si): Renamed to ...
387         (*vec_concatv2si_sse2): This.
388         (*sse1_concatv2si): Renamed to ...
389         (*vec_concatv2si_sse): This.
390         (*vec_concatv2di_rex): Renamed to ...
391         (*vec_concatv2di_rex64): This.
392         (*vec_concatv2si_sse4_1): New.
393         (*vec_concatv2di_rex64_sse4_1): Likewise.
394
395 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
396
397         PR rtl-optimization/36111
398         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
399         that was created for swappable operands.
400
401 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
402
403         PR ada/36001
404         * Makefile.in: Substitute GNATMAKE and GNATBIND.
405         * configure.ac: Add call to ACX_PROG_GNAT.
406
407 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
408
409         * optc-gen.awk: Fix comment typo.
410
411 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
412
413         * pretty-print.c (pp_integer_with_precision): Use
414         HOST_LONG_LONG_FORMAT.
415
416 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
417
418         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
419                 
420 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
421
422         * config/i386/i386.c (bdesc_ptest): Removed.
423         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
424         (bdesc_args): Add __builtin_ia32_ptestz128,
425         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
426         (ix86_init_mmx_sse_builtins): Updated.
427         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
428         (ix86_expand_builtin): Updated.
429
430 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
431
432         * tree-cfg.c (valid_fixed_convert_types_p): New function.
433         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
434
435 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
436
437         * value-prof.c (interesting_stringop_to_profile): Do not
438         return early for BUILT_IN_MEMPCPY.
439
440 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
441
442         * calls.c (expand_call): Don't use callgraph to increase
443         preferred_stack_boundary.
444
445         * cgraph.h (cgraph_rtl_info): Use unsigned on
446         preferred_incoming_stack_boundary.
447
448         * final.c (rest_of_clean_state): Use unsigned on
449         preferred_stack_boundary.
450
451 2008-05-09  Tom Tromey  <tromey@redhat.com>
452
453         PR preprocessor/22231:
454         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
455         proceeding.
456
457 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
458
459         PR tree-optimization/36129
460         * tree-ssa-ccp.c: Include value-prof.h.
461         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
462         built-in function was folded to a constant.
463         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
464
465 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
466             Sebastian Pop  <sebastian.pop@amd.com>
467
468         * tree-scalar-evolution.c: Document instantiate_scev.
469         (instantiate_parameters_1): Renamed instantiate_scev_1.
470         Don't use the same loop for instantiation_loop and evolution_loop.
471         (instantiate_scev): New.
472         (instantiate_parameters): Moved...
473         (resolve_mixers): Update call to instantiate_scev_1 to pass the
474         same loop twice.  Maintains the semantics for this function.
475         * tree-scalar-evolution.h (instantiate_scev): Declare.
476         (instantiate_parameters): ...here.  Now static inline.
477         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
478         instead of resolve_mixers.
479
480 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
481
482         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
483
484 2008-05-09  Tomas Bily  <tbily@suse.cz>
485
486         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
487         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
488         * tree-ssa-structalias.c (get_constraint_for): Likewise.
489         * c-common.c (c_common_truthvalue_conversion): Likewise.
490         * tree-object-size.c (compute_object_offset): Likewise.
491         * tree-inline.c (estimate_num_insns_1): Likewise.
492         * varasm.c (const_hash_1, compare_constant, copy_constant)
493         (compute_reloc_for_constant, output_addressed_constants)
494         (initializer_constant_valid_p): Likewise.
495         * c-omp.c (check_omp_for_incr_expr): Likewise.
496         * gimplify.c (gimplify_expr): Likewise.
497         * c-typeck.c (c_finish_return): Likewise.
498         * tree-vectorizer.c (supportable_widening_operation)
499         (supportable_narrowing_operation): Likewise.
500         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
501         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
502         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
503         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
504         (descr_info_loc): Likewise.
505         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
506         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
507         (fold_unary): Likewise.
508         * builtins.c (get_pointer_alignment): Likewise.
509         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
510         (instantiate_parameters_1): Likewise.
511         * tree.c (expr_align, stabilize_reference): Likewise.
512         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
513         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
514         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
515         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
516         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
517         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
518         Likewise.
519         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
520         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
521         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
522         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
523         (forward_propagate_comparison)
524         (tree_ssa_forward_propagate_single_use_vars): Likewise.
525         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
526         * emit-rtl.c (component_ref_for_mem_expr)
527         (set_mem_attributes_minus_bitpos): Likewise.
528         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
529         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
530         Likewise.
531         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
532         (build_function_call, pointer_diff, build_compound_expr)
533         (c_finish_return): Likewise.
534         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
535         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
536         Likewise.
537         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
538         * expr.c (is_aligning_offset): Likewise.
539         * tree-ssa-alias.c (is_escape_site): Likewise.
540         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
541         (check_all_va_list_escapes): Likewise.
542         * tree-ssa-loop-ivopts.c (determine_base_object)
543         (determine_common_wider_type): Likewise.
544         * dojump.c (do_jump): Likewise.
545         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
546         * tree-gimple.c (is_gimple_cast): Likewise.
547         * fold-const.c (decode_field_reference, )
548         (fold_sign_changed_comparison, fold_unary, fold_comparison)
549         (fold_binary): Likewise.
550         * tree-ssa-alias-warnings.c (find_alias_site_helper)
551         (already_warned_in_frontend_p): Likewise.
552         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
553         * tree.c (really_constant_p, get_unwidened): Likewise.
554         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
555         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
556         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
557         Likewise.
558         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
559         CONVERT_EXPR_P.
560         (CONVERT_EXPR_P): Define.
561         (CASE_CONVERT): Define.
562         
563 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
564
565         PR middle-end/36117
566         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
567         (delete_unmarked_insns): When deleting a call, call
568         delete_unreachable_blocks.
569         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
570         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
571
572 2008-05-08  Richard Guenther  <rguenther@suse.de>
573
574         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
575         (-ftree-salias): Likewise.
576         (salias-max-implicit-fields): Remove param documentation.
577         (salias-max-array-elements): Likewise.
578         * tree-pass.h (pass_create_structure_vars): Remove.
579         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
580         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
581         * tree-ssa-alias.c (create_structure_vars): Remove.
582         (gate_structure_vars): Likewise.
583         (pass_create_structure_vars): Likewise.
584         (gate_build_alias): Likewise.
585         (pass_build_alias): Adjust to run always and dump the function.
586         * common.opt (ftree-salias): Hide.
587         * passes.c (init_optimization_passes): Remove
588         pass_create_structure_vars, adjust comment.
589         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
590         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
591         * opts.c (decode_options): Do not set flag_tree_salias.
592         (common_handle_option): Add OPT_ftree_salias to the backward
593         compatibility section.
594
595 2008-05-08  Richard Guenther  <rguenther@suse.de>
596
597         * tree-flow-inline.h (var_can_have_subvars): Move ...
598         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
599         * tree-flow.h (var_can_have_subvars): Remove.
600         (push_fields_onto_fieldstack): Remove.
601         (sort_fieldstack): Likewise.
602         (struct fieldoff): Move ...
603         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
604         alias_set and base_for_components fields.
605         (sort_fieldstack): Make static.
606         (push_fields_onto_fieldstack): Likewise.  Remove code that
607         handles anything but RECORD_TYPEs.  Remove alias_set and
608         base_for_components handling.
609         (create_variable_info_for): Adjust.
610
611 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
612
613         * common.opt (Wframe-larger-than=): Shorten the help message
614         to one line.
615         * doc/invoke.texi (Wframe-larger-than=): Add more description.
616
617 2008-05-08  Rafael Espindola  <espindola@google.com>
618
619         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
620         trap.
621         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
622         trap and that both operands are gimple values.
623         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
624         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
625         is a fp operation.
626
627 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
628
629         * read-rtl.c (join_c_conditions): Return the first string if the
630         two strings are equal.
631
632 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
633
634         * gensupport.h (pred_data): Add a "num_codes" field.
635         (add_predicate_code): Declare.
636         * gensupport.c (add_predicate_code): New function.
637         (std_pred_table): Add an "allows_const_p" field.
638         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
639         Remove the (incomplete) list of such codes from the codes field.
640         (init_predicate_table): Use add_predicate_code.  Add all
641         RTX_CONST_OBJs if allows_const_p is true.
642         * genrecog.c (process_define_predicate): Use add_predicate_code.
643
644 2008-05-08  David Daney  <ddaney@avtrex.com>
645             Richard Sandiford  <rsandifo@nildram.co.uk>
646         
647         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
648         special case of constant zero operands.
649         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
650         old and new values.  Special case constant zero values.
651         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
652         fails.
653         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
654         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
655
656 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
657
658         PR target/36090
659         * simplify-rtx.c (simplify_plus_minus): Create CONST of
660         similar RTX_CONST_OBJ before CONST_INT.
661
662 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
663
664         * stmt.c (expand_stack_restore): Change sa mode if needed.
665
666 2008-05-08  Richard Guenther  <rguenther@suse.de>
667
668         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
669         return type to bool.
670         (ix86_sol10_return_in_memory): Likewise.
671         (ix86_i386elf_return_in_memory): Likewise.
672         (ix86_i386interix_return_in_memory): Likewise.
673         * config/i386/i386.c (ix86_return_in_memory): Likewise.
674         (ix86_sol10_return_in_memory): Likewise.
675         (ix86_i386elf_return_in_memory): Likewise.
676         (ix86_i386interix_return_in_memory): Likewise.
677
678 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
679
680         PR bootstrap/36180
681         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
682         fndecl argument.
683         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
684         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
685         declared in front.
686
687 2008-05-08  Richard Guenther  <rguenther@suse.de>
688
689         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
690         * tree-data-ref.h (struct dr_alias): Remove subvars field.
691         (DR_SUBVARS): Remove.
692         * tree-dfa.c (dump_subvars_for): Remove.
693         (debug_subvars_for): Likewise.
694         (dump_variable): Do not dump subvars.
695         (remove_referenced_var): Do not remove subvars.
696         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
697         (lookup_subvars_for_var): Remove.
698         (get_subvars_for_var): Likewise.
699         (get_subvars_at): Likewise.
700         (get_first_overlapping_subvar): Likewise.
701         (overlap_subvar): Likewise.
702         * tree-flow.h (subvar_t): Remove.
703         (struct var_ann_d): Remove subvars field.
704         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
705         argument.  Remove special handling of SFTs.
706         (compute_tag_properties): Likewise.
707         (set_initial_properties): Likewise.
708         (compute_call_clobbered): Likewise.
709         (count_mem_refs): Likewise.
710         (compute_memory_partitions): Likewise.
711         (compute_flow_insensitive_aliasing): Likewise.
712         (setup_pointers_and_addressables): Likewise.
713         (new_type_alias): Likewise.
714         (struct used_part): Remove.
715         (used_portions): Likewise.
716         (struct used_part_map): Likewise.
717         (used_part_map_eq): Likewise.
718         (used_part_map_hash): Likewise.
719         (free_used_part_map): Likewise.
720         (up_lookup): Likewise.
721         (up_insert): Likewise.
722         (get_or_create_used_part_for): Likewise.
723         (create_sft): Likewise.
724         (create_overlap_variables_for): Likewise.
725         (find_used_portions): Likewise.
726         (create_structure_vars): Likewise.
727         * tree.def (STRUCT_FIELD_TAG): Remove.
728         * tree.h (MTAG_P): Adjust.
729         (struct tree_memory_tag): Remove base_for_components and
730         unpartitionable flags.
731         (struct tree_struct_field_tag): Remove.
732         (SFT_PARENT_VAR): Likewise.
733         (SFT_OFFSET): Likewise.
734         (SFT_SIZE): Likewise.
735         (SFT_NONADDRESSABLE_P): Likewise.
736         (SFT_ALIAS_SET): Likewise.
737         (SFT_UNPARTITIONABLE_P): Likewise.
738         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
739         (union tree_node): Remove sft field.
740         * alias.c (get_alias_set): Remove special handling of SFTs.
741         * print-tree.c (print_node): Remove handling of SFTs.
742         * tree-dump.c (dequeue_and_dump): Likewise.
743         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
744         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
745         * tree-predcom.c (set_alias_info): Do not set subvars.
746         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
747         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
748         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
749         (add_vars_for_offset): Remove.
750         (add_virtual_operand): Remove special handling of SFTs.
751         (add_call_clobber_ops): Likewise.
752         (add_call_read_ops): Likewise.
753         (get_asm_expr_operands): Likewise.
754         (get_modify_stmt_operands): Likewise.
755         (get_expr_operands): Likewise.
756         (add_to_addressable_set): Likewise.
757         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
758         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
759         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
760         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
761         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
762         (tree_node_structure): Likewise.
763         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
764         handling of SFTs.
765         (find_what_p_points_to): Likewise.
766
767 2008-05-08  Sa Liu  <saliu@de.ibm.com>
768
769         * config/spu/spu.md: Fixed subti3 pattern.
770
771 2008-05-08  Richard Guenther  <rguenther@suse.de>
772
773         PR middle-end/36154
774         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
775         sure to create a representative for trailing arrays for PTA.
776
777 2008-05-08  Richard Guenther  <rguenther@suse.de>
778
779         PR middle-end/36172
780         * fold-const.c (operand_equal_p): Two objects which types
781         differ in pointerness are not equal.
782
783 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
784
785         * calls.c (compute_argument_block_size): Add argument tree fndecl.
786         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
787         (emit_library_call_value_1): Add new variable fndecl initialized by
788         NULL_TREE. It should be the decl type of orgfun, but this information
789         seems not to be available here, so it uses the default calling abi.
790         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
791         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
792         by TARGET_RETURN_IN_MEMORY.
793         * config/i386/i386-interix.h: Likewise.
794         * config/i386/i386.h: Likewise.
795         * config/i386/i386elf.h: Likewise.
796         * config/i386/ptx4-i.h: Likewise.
797         * config/i386/sol2-10.h: Likewise.
798         * config/i386/sysv4.h: Likewise.
799         * config/i386/vx-common.h: Likewise.
800         * config/cris/cris.h: Removed #if 0 clause.
801         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
802         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
803         argument.
804         (ix86_sol10_return_in_memory): Likewise.
805         (ix86_i386elf_return_in_memory): New.
806         (ix86_i386interix_return_in_memory): New.
807         * config/mt/mt-protos.h (mt_return_in_memory): New.
808         * config/mt/mt.c: Likewise.
809         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
810         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
811         * config/bfin/bfin.h: Likewise.
812         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
813         argument.
814         * config/bfin/bfin.c: Likewise.
815         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
816         * config/alpha/unicosmk.h: Likewise.
817         * config/i386/cygming.h: Likewise.
818         * config/iq2000/iq2000.h: Likewise.
819         * config/mips/mips.h: Likewise.
820         * config/mn10300/mn10300.h: Likewise.
821         * config/rs6000/rs6000.h: Likewise.
822         * config/score/score.h: Likewise.
823         * config/spu/spu.h: Likewise.
824         * config/v850/v850.h: Likewise.
825         * defaults.h: Likewise.
826         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
827         * expr.c (emit_block_move): Adjust use of
828         OUTGOING_REG_PARM_STACK_SPACE.
829         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
830         OUTGOING_REG_PARM_STACK_SPACE.
831         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
832
833 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
834
835         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
836         on OMP_RETURN for OMP_FOR.
837
838         PR debug/35896
839         * dwarf2out.c (dw_expand_expr, common_check): Removed.
840         (fortran_common): New function.
841         (gen_variable_die): Call fortran_common instead of common_check,
842         adjust for it returning tree instead of rtx.  Formatting.
843
844 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
845
846         PR rtl/7335
847         PR rtl/33826
848         * see.c (see_copy_insn): Copy new pure const attributes for new call.
849         * c-decl.c (merge_decls): Ditto.
850         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
851         to RTL_CONST_OR_PURE_CALL_P.
852         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
853         Initialized DECL_LOOPING_CONST_PURE.
854         (process_call_operands): Set tree_side_effects properly.
855         * tree.h (TREE_READONLY_DECL_P): Removed.
856         (DECL_IS_PURE): Renamed to DECL_PURE_P.
857         (DECL_LOOPING_OR_CONST_P): New macro.
858         (struct tree_function_decl): Added looping_const_or_pure_p.
859         (ECF_*) Renumbered.
860         (ECF_LOOPING_OR_CONST_P): New macro.
861         * rtlanal.c (pure_const_p): Removed.
862         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
863         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
864         to RTL_CONST_CALL_P.
865         * ipa-pure-const.c (pure_const_state_e): Added looping field.
866         (check_decl, check_tree, check_call, scan_function): Initialize
867         looping.
868         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
869         (static_execute): Set looping true for recursive functions.
870         Undo setting state to IPA_NEITHER for recursive functions.
871         * cse.c (cse_insn): 
872         * ifcvt.c (noce_can_store_speculate_p): Changed
873         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
874         RTL_CONST_OR_PURE_CALL_P.
875         * dse.c (scan_insn): Ditto.
876         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
877         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
878         RTL_CONST_OR_PURE_CALL_P.
879         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
880         pure_call_p to RTL_CONST_CALL_P.
881         * gimplify.c (gimplify_call_expr): Clear side effects for
882         non-looping pure and constant calls.
883         * calls.c (emit_call_1): Set rtl flags from ecf flags.
884         (flags_from_decl_or_type): Set ecf flags from decl flags.
885         (initialize_argument_information): Turn off
886         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
887         Change const to pure if callee_copies is true rather than just
888         turning off const.
889         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
890         way of marking pure calls.
891         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
892         Remove hack that was supposed to fix pr7335 and remove old
893         way of marking pure calls.
894         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
895         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
896         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
897         RTL_CONST_OR_PURE_CALL_P.
898         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
899         * loop-invariant.c (find_exits, find_invariant_bb): Changed
900         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
901         * sched-deps.c (schedule_analyze): Ditto.
902         * rtl.h (struct rtx_def): Use call field, unchanging field, and
903         return_val field of calls to represent pure and const function info.
904         (CONST_OR_PURE_CALL_P): Deleted macro.
905         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
906         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
907         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
908         TREE_READONLY.
909         * tree-optimize.c (execute_fixup_cfg): Added test for
910         ECF_LOOPING_CONST_OR_PURE.
911         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
912         DECL_PURE_P.
913         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
914         effects for looping pure or const calls.
915         (verify_gimple_expr): Added verification code. 
916         * config/alpha/alpha.c (alpha_legitimize_address,
917         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
918         RTL_CONST_CALL_P.
919         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
920         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
921         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
922         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
923         RTL_CONST_OR_PURE_CALL_P.
924         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
925         and const calls to be deleted.
926
927 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
928
929         PR target/35714
930         * config/i386/mmx.md (mmx_subv2sf3): New expander.
931         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
932         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
933         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
934         to handle nonimmediate operands.
935         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
936         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
937         to handle nonimmediate operands.
938         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
939         (mmx_pmulhrwv4hi3): New expander.  Use
940         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
941         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
942         (sse2_umulv1siv1di3): New expander.  Use
943         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
944         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
945         (mmx_eq<mode>3): New expander.  Use
946         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
947         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
948         (mmx_uavgv8qi3): New expander.  Use
949         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
950         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
951         (mmx_uavgv4hi3): New expander.  Use
952         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
953
954         * config/i386/sse.md
955         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
956         to handle nonimmediate operands.
957         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
958         to handle nonimmediate operands.
959         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
960         to handle nonimmediate operands.
961         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
962         to handle nonimmediate operands.
963         (sse2_unpckhpd_exp): New expander.  Use
964         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
965         (sse2_unpcklpd_exp): New expander.  Use
966         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
967         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
968         to handle nonimmediate operands.
969         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
970         to handle nonimmediate operands.
971         (*sse2_<plusminus_insn><mode>3): Rename from
972         sse2_<plusminus_insn><mode>3 insn pattern.
973         (sse2_<plusminus_insn><mode>3): New expander.  Use
974         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
975         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
976         (sse2_umulv2siv2di3): New expander.  Use
977         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
978         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
979         (sse4_1_mulv2siv2di3): New expander.  Use
980         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
981         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
982         (sse2_pmaddwd): New expander.  Use
983         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
984         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
985         (sse2_eq<mode>3): New expander.  Use
986         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
987         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
988         (sse4_1_eqv2di3): New expander.  Use
989         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
990         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
991         (sse2_uavgv16qi3): New expander.  Use
992         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
993         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
994         (sse2_uavgv16qi3): New expander.  Use
995         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
996         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
997         (sse2_uavgv8hi3): New expander.  Use
998         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
999         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
1000         (ssse3_pmulhrswv8hi3): New expander.  Use
1001         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1002         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
1003         (ssse3_pmulhrswv4hi3): New expander.  Use
1004         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1005
1006         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
1007         (<sse>_vmmul<mode>3): Ditto.
1008         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
1009         (divv2df3): Ditto.
1010         (ssse3_pmaddubsw128): Use register_operand for operand 1.
1011         (ssse3_pmaddubsw): Ditto.
1012
1013         * config/i386/i386.c (struct_builtin_description)
1014         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
1015         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
1016         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
1017         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
1018         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
1019         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
1020         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
1021         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
1022         (ix86_fixup_binary_operands): Assert that src1
1023         and src2 must have the same mode when swapped.
1024         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
1025         and ix86_binary_operator_ok.  Do not force operands in registers
1026         when optimizing.
1027
1028 2008-05-07  Jan Hubicka  <jh@suse.cz>
1029
1030         * cgraph.c (dump_cgraph_node): Update.
1031         * cgraph.h (cgraph_local_info): Break out inline summary.
1032         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
1033         hook.
1034         * ipa-inline (inline_summary): New accestor function.
1035         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
1036         cgraph_decide_inlining, compute_inline_parameters): Update.
1037         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
1038
1039 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
1040
1041         Cleanup ColdFire scheduling support and add V4 pipeline model.
1042
1043         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
1044         (define_attr cpu): Add cfv4 value.
1045         (define_attr type, define_attr type1): Merge into a single 'type'
1046         attribute.  Update all uses.
1047         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
1048         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
1049         Update all uses.
1050         (define_attr opx_mem, define_attr opy_mem): Remove.
1051         (define_attr op_mem): Clean up, update comment.
1052         (define_attr size): Use specific values instead of general int.
1053         (define_attr guess, define_attr split): Remove.  Update all uses.
1054         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
1055         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
1056         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
1057         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
1058         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
1059         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
1060         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
1061         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
1062         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
1063         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
1064         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
1065         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
1066         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
1067         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
1068         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
1069         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
1070         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
1071         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
1072         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
1073         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
1074         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
1075         Update or set attributes.
1076         (stack_tie): New fake instruction.
1077
1078         * config/m68k/m68k.h (TUNE_CFV4): New macro.
1079         (m68k_sched_attr_size): Update declaration.
1080         (m68k_sched_attr_type2): Remove.
1081         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
1082         Declare new bypass predicates.
1083
1084         * config/m68k/m68k.c (m68k_sched_issue_rate,
1085         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
1086         implementations.
1087         (TARGET_SCHED_ISSUE_RATE,
1088         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
1089         (override_options): Handle scheduling for ColdFire V4 core.
1090         (m68k_expand_prologue): Emit stack_tie.
1091         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
1092         'OP_TYPE_FPN'.  Update all uses.
1093         (sched_guess_p): Remove.
1094         (sched_address_type): Handle symbolic addresses.
1095         (sched_get_operand): New static function.
1096         (sched_operand_type): Merge into sched_attr_op_type.
1097         (sched_attr_op_type): Handle FP registers, handle quick constants,
1098         update.
1099         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
1100         (m68k_sched_attr_size): Update.  Move logic to ...
1101         (sched_get_attr_size_int): New static function.
1102         (sched_get_opxy_mem_type): New static function.
1103         (m68k_sched_attr_op_mem): Update.
1104         (m68k_sched_attr_type2): Remove.
1105         (sched_cfv4_bypass_data): New static variable.
1106         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
1107         (m68k_sched_issue_rate): Implement scheduler hook.
1108         (struct _sched_ib: enabled_p): New field.
1109         (m68k_sched_variable_issue): Update.  Handle V4.
1110         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
1111         sched_dump_class_func_t, sched_dump_split_class,
1112         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
1113         sched_dump_dfa_class, m68k_sched_dump): Remove.
1114         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
1115         hook.
1116         (m68k_sched_init_global): Remove statisctics dumping, introduce
1117         sanity check that all instructions have pipeline reservations.  Handle
1118         ColdFire V4 core.
1119         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
1120         Handle ColdFire V4 core.
1121         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
1122         New static functions.
1123         (m68k_sched_address_bypass_p): New bypass predicate.
1124         (sched_get_indexed_address_scale): New static function.
1125         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
1126
1127         * cf.md: Update comments.
1128         (define_attr type2): Remove.  Use 'type' attribute instead.
1129         Update all uses.
1130         (cf_ib): Rename to cfv123_ib.  Update all uses.
1131         (cf_oep): Rename to cfv123_oep.  Update all uses.
1132         (cf_chr): Rename to cfv123_chr.  Update all uses.
1133         (cf_mem): Rename to cfv123_mem.  Update all uses.
1134         (cf_mac): Move to more appropriate place.
1135         (cfv123_guess): New automaton and cpu_unit.
1136         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
1137         Update uses of 'size' attribute.  Handle before reload scheduling.
1138         (cfv123_guess): New dummy reservation for unhandled instructions.
1139         (cfv4_*): Pipeline description of ColdFire V4 core.
1140         (ignore): New reservation to handle 'ignore' type.
1141
1142 2008-05-07  Ian Lance Taylor  <iant@google.com>
1143
1144         PR middle-end/36013
1145         * gimplify.c (find_single_pointer_decl_1): Don't look through
1146         indirections.
1147         (find_single_pointer_decl): Adjust comments.
1148
1149 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
1150
1151         PR middle-end/36137
1152         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
1153         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
1154
1155         PR middle-end/36106
1156         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
1157         integral type rather than floating point, then VIEW_CONVERT_EXPR
1158         to the floating point type.
1159
1160 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
1161
1162         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
1163         TFmode op0 to register.
1164
1165 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
1166
1167         * c-decl.c (grokdeclarator): Comment typo.
1168
1169 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
1170
1171         * tree-flow.h: Remove prototype for computed_goto_p.
1172         * tree-cfg.c (computed_goto_p): Make static.
1173
1174 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
1175
1176         PR target/35657
1177         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
1178         (contains_aligned_value_p): This.  Handle _Decimal128.
1179         (ix86_function_arg_boundary): Only align _Decimal128 to its
1180         natural boundary and handle it properly.
1181
1182 2008-05-06  Martin Jambor  <mjambor@suse.cz>
1183
1184         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
1185         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
1186         (ipcp_method_set_orig_node): Removed.
1187         (ipcp_cval_get_cvalue_type): Removed.
1188         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
1189         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
1190         (ipcp_cval_set_cvalue_type): Removed.
1191         (ipcp_cval_get_cvalue): Removed.
1192         (ipcp_cval_set_cvalue): Removed.
1193         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
1194         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
1195         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
1196         (ipcp_cval_meet): Renamed to ipa_lattice_meet
1197         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
1198         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
1199         (ipcp_get_ith_lattice): Changed parameters.
1200         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
1201         (ipcp_lattice_from_jfunc): Changed parameters.
1202         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
1203         (ipcp_method_cval_print): Added temporary variable info.
1204         (ipcp_redirect): Removed already unused local variable caller.
1205         (ipcp_redirect): New temporary variable orig_callee_info
1206         (ipcp_redirect): Removed newly unused local variable callee.
1207         (ipcp_redirect): Removed (a bit confusing) local variable type.
1208         (ipcp_insert_stage): Added local variable info.
1209         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
1210         renamed too
1211         (ipcp_formal_create): Removed.
1212         (ipcp_method_cval_set): Removed.
1213         (ipcp_propagate_stage): Renamed lattice variables.
1214         (ipcp_method_cval_set_cvalue_type): Removed.
1215         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
1216         (ipcp_print_all_lattices): Changed printed strings to refer to 
1217         lattices rather than cvals.
1218         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
1219         (ipcp_propagate_const): Changed formal parameters.
1220         (build_const_val): Changed formal parameters.
1221         (ipcp_insert_stage): Removed useless variable cvalue
1222         (build_const_val): Changed formal parameters.
1223         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
1224         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
1225         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
1226         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
1227         (ipcp_print_func_profile_counts): Changed string from "method" to 
1228         "function"
1229         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
1230         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
1231         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
1232         (ipcp_structures_print): Renamed to ipcp_print_all_structures
1233         (ipcp_profile_print): Renamed to ipcp_print_profile_data
1234         (ipcp_lat_is_const): Changed parameters and made inline.
1235         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
1236         (ipcp_redirect): Renamed to ipcp_need_redirect_p
1237         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
1238         the predicate condition directly
1239         (ipcp_propagate_stage): Added local variable args. Removed local
1240         variable callee.  (Both are mere code simplifications.)
1241         (ipcp_method_dont_insert_const): Renamed to
1242         ipcp_node_not_modifiable_p.
1243         (ipcp_node_not_modifiable_p): Made inline.
1244         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
1245         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
1246         (ipcp_print_all_lattices): Removed variable cvalue
1247         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
1248         Updated comments.
1249
1250 2008-05-06  Olivier Hainque  <hainque@adacore.com>
1251
1252         * tree-sra.c (try_instantiate_multiple_fields): Early return
1253         if field has POINTER_TYPE.
1254
1255 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
1256
1257         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
1258         by using 'q' specifier for instruction.
1259         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
1260
1261 2008-05-06  Anatoly Sokolov <aesok@post.ru>
1262
1263         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
1264         Change mode of zero_extract from QImode to HImode.
1265         (sign bit tests peepholes): (Ditto.).
1266
1267 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
1268
1269         * config/i386/mmx.md: Remove double backslashes from asm templates.
1270         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
1271         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
1272         to handle nonimmediate operands.
1273         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
1274         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
1275         to handle nonimmediate operands.
1276         (*mmx_<code>v2sf3_finite): New insn pattern.
1277         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
1278         (mmx_<code>v2sf3): New expander.  Use
1279         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1280         (mmx_<plusminus_insn><mode>3): New expander.  Use
1281         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1282         (*mmx_<plusminus_insn><mode>3): New insn pattern.
1283         (mmx_add<mode>3): Removed.
1284         (mmx_ssadd<mode>3): Ditto.
1285         (mmx_usadd<mode>3): Ditto.
1286         (mmx_sub<mode>3): Ditto.
1287         (mmx_sssub<mode>3): Ditto.
1288         (mmx_ussub<mode>3): Ditto.
1289         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
1290         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
1291         to handle nonimmediate operands.
1292         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
1293         insn pattern.
1294         (mmx_smulv4hi3_highpart): New expander.  Use
1295         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1296         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
1297         insn pattern.
1298         (mmx_umulv4hi3_highpart): New expander.  Use
1299         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1300         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
1301         (mmx_<code>v4hi3): New expander.  Use
1302         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1303         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
1304         (mmx_<code>v8qi3): New expander.  Use
1305         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1306         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
1307         (mmx_<code><mode>3): New expander.  Use
1308         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1309
1310 2008-05-05  Jan Hubicka  <jh@suse.cz>
1311
1312         PR tree-optimization/36118
1313         * passes.c (pass_init_dump_file): Fix dump header.
1314
1315 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1316
1317         PR middle-end/36141
1318         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
1319         VCE for function decls.
1320
1321 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
1322
1323         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
1324
1325 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
1326
1327         * config/i386/i386.md (sat_plusminus): New.
1328         (plusminus_insn): Likewise.
1329         (plusminus_mnemonic): Likewise.
1330         (addsub): Removed.
1331         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
1332         (*<addsub><mode>3_cc_overflow): Renamed to ...
1333         (*<plusminus_insn><mode>3_cc_overflow): This.
1334         (*<addsub>si3_zext_cc_overflow): Renamed to ...
1335         (*<plusminus_insn>si3_zext_cc_overflow): This.
1336
1337         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
1338         (<plusminus_insn><mode>3): This.
1339         (*<addsub><mode>3): Renamed to ...
1340         (*<plusminus_insn><mode>3): This.
1341         (<sse>_vm<addsub><mode>3): Renamed to ...
1342         (<sse>_vm<plusminus_insn><mode>3): This.
1343         (sse3_h<addsub>v4sf3): Renamed to ...
1344         (sse3_h<plusminus_insn>v4sf3): This.
1345         (sse3_h<addsub>v2df3): Renamed to ...
1346         (sse3_h<plusminus_insn>v2df3): This.
1347         (<plusminus_insn><mode>3): New.
1348         (*<plusminus_insn><mode>3): Likewise.
1349         (sse2_<plusminus_insn><mode>3): Likewise.
1350         (add<mode>): Removed.
1351         (*add<mode>3): Likewise.
1352         (sse2_ssadd<mode>3): Likewise.
1353         (sse2_usadd<mode>3): Likewise.
1354         (sub<mode>3): Likewise.
1355         (*sub<mode>3): Likewise.
1356         (sse2_sssub<mode>3): Likewise.
1357         (sse2_ussub<mode>3): Likewise.
1358
1359 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
1360
1361         * gthr-single.h: Add in required interface elements as per gthr.h.
1362         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
1363         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
1364         Generalize UNUSED macro. 
1365         (__gthread_once): Add.
1366         (__gthread_key_create): Add.
1367         (__gthread_key_delete): Add.
1368         (__gthread_getspecific): Add.
1369         (__gthread_setspecific): Add.
1370         
1371 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
1372
1373         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
1374         the same size types for the indirect reference on the rhs, then
1375         create a VCE.
1376
1377 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
1378
1379         * config/i386/i386.md
1380         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
1381         one insn template instead of template series.
1382         (*xordi_1_rex64): Ditto.
1383         (*xordi_2_rex64): Ditto.
1384
1385 2008-05-05  Ira Rosen  <irar@il.ibm.com>
1386
1387         PR tree-optimization/36119
1388         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
1389         in case of SLP.
1390
1391 2008-06-04  Jan Hubicka  <jh@suse.cz>
1392
1393         tree-optimization/36100
1394         * tree-pass.h (pass_O0_always_inline): Declare.
1395         * ipa-inline.c (inline_transform): Remove dead code.
1396         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
1397         pass_O0_always_inline): New.
1398         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
1399
1400 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
1401
1402         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
1403         mnemonic in this_param move for TARGET_64BIT.
1404
1405 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
1406
1407         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
1408         (*strmovsi_rex_1): Ditto.
1409         (*strsetsi_1): Ditto.
1410         (*strsetsi_rex_1): Ditto.
1411
1412         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
1413         adddicc expanders using SWI mode iterator.
1414
1415 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
1416
1417         PR target/36121
1418         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
1419         argument handling.
1420
1421 2008-05-04  David S. Miller  <davem@davemloft.net>
1422
1423         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
1424         (sparc*-*-linux*): Use linux.h in tm_file.
1425         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
1426         compiler defaulting to 32-bit.
1427         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
1428         no longer needed.
1429         * config/sparc/linux.h: Remove definitions now obtained
1430         properly from linux.h
1431         * config/sparc/linux64.h: Likewise.
1432         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
1433         don't want this setting for 32-bit builds in a biarch compiler.
1434         * doc/install.texi: Add sparc-linux to list of targets
1435         supporting --enable-targets=all.
1436
1437 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
1438
1439         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
1440
1441 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
1442
1443         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
1444         after V4SI_FTYPE_V8HI.
1445         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
1446         case V4SI_FTYPE_V2DF.
1447
1448 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
1449
1450         * doc/invoke.texi (max-flow-memory-locations): Removed.
1451         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
1452         
1453 2008-05-03  Richard Guenther  <rguenther@suse.de>
1454
1455         PR middle-end/34973
1456         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
1457
1458 2008-05-02  David S. Miller  <davem@davemloft.net>
1459
1460         * config.gcc (need_64bit_hwint): Document libcpp dependency.
1461
1462 2008-05-02  Simon Baldwin <simonb@google.com>
1463
1464         PR bootstrap/36108
1465         * c-common.h (warn_array_subscript_range): Removed.
1466         * c-common.c (warn_array_subscript_range): Ditto.
1467         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
1468         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
1469
1470 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
1471
1472         * config/i386/i386.c (ix86_special_builtin_type): New.
1473         (bdesc_special_args): Likewise.
1474         (ix86_expand_special_args_builtin): Likewise.
1475         (ix86_init_mmx_sse_builtins): Updated.
1476         (ix86_expand_builtin): Updated.
1477         (ix86_expand_store_builtin): Removed.
1478         (ix86_expand_unop_builtin): Likewise.
1479
1480         * config/i386/mm3dnow.h (__v2sf): Moved to ...
1481         * config/i386/mmintrin.h (__v2sf): Here.
1482
1483         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
1484         const __v2sf.
1485         (_mm_loadl_pi): Likewise.
1486         (_mm_storeh_pi): Replace __v2si with __v2sf.
1487         (_mm_storel_pi): Likewise.
1488
1489         * doc/extend.texi: Correct __builtin_ia32_loadhps,
1490         __builtin_ia32_loadlps, __builtin_ia32_storehps,
1491         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
1492         __builtin_ia32_loadlpd.
1493
1494 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
1495
1496         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
1497         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
1498         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
1499         (ix86_init_mmx_sse_builtins): Updated.
1500         (ix86_expand_args_builtin): Likewise.
1501         (ix86_expand_builtin): Likewise.
1502         (ix86_expand_unop1_builtin): Renamed to ...
1503         (ix86_expand_unop_vec_merge_builtin): This.
1504
1505 2008-05-01  Jan Hubicka  <jh@suse.cz>
1506
1507         PR bootstrap/36100
1508         * ipa-inline.c (inline_generate_summary): Make static.
1509         (inline_transform): Do not call inlining at -O0; make static.
1510         * passes.c (execute_todo): Add sanity check.
1511         (execute_one_ipa_transform_pass): Execute proper flags.
1512
1513 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
1514
1515         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
1516         (DECL_NONADDRESSABLE_P): Likewise.
1517         * alias.c (record_component_aliases): Fix comment.
1518
1519 2008-05-01  Simon Baldwin <simonb@google.com>
1520
1521         * c-common.h (warn_array_subscript_range): New function.
1522         * c-common.c (warn_array_subscript_range): Ditto.
1523         * tree-vrp.c (check_array_ref): Corrected code to agree with
1524         comment, ignoring only arrays of size 0 or size 1.
1525         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
1526
1527 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
1528
1529         * config/i386/i386.c (ix86_builtin_type): Replace
1530         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
1531         (bdesc_args): Updated.
1532         (ix86_init_mmx_sse_builtins): Likewise.
1533         (ix86_expand_args_builtin): Likewise.
1534
1535         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
1536         with __v1di.
1537
1538         * doc/extend.texi: Correct __builtin_ia32_palignr.
1539
1540 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
1541
1542         PR target/36095
1543         * config/i386/i386.c (bdesc_crc32): Removed.
1544         (ix86_expand_crc32): Likewise.
1545         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
1546         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
1547         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
1548         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
1549         UINT_FTYPE_UINT_UCHAR.
1550         (bdesc_args): Updated. Add crc32 builtins.
1551         (ix86_init_mmx_sse_builtins): Updated.
1552         (ix86_expand_args_builtin): Updated to support subreg.
1553
1554         * doc/extend.texi: Correct __builtin_ia32_crc32di.
1555
1556 2008-05-01  Jan Hubicka  <jh@suse.cz>
1557
1558         * tree-pass.h (opt_pass): Add IPA_PASS.
1559         (varpool_node, cgraph_node): Forward declare.
1560         (ipa_opt_pass): Define.
1561         (pass_ipa_inline): Turn into ipa_opt_pass.
1562         (pass_apply_inline): Remove.
1563         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
1564         (apply_inline): Turn into ....
1565         (inline_transform): ... this one.
1566         (inline_generate_summary): New function.
1567         (pass_apply_inline): Remove.
1568         * function.h (ipa_opt_pass): Forward declare structure; typedef;
1569         vector.
1570         (struct function): Add ipa_transforms_to_apply.
1571         * passes.c (register_one_dump_file): Work on IPA_PASS.
1572         (init_optimization_passes): Remove pass_inline_parameters and
1573         pass_apply_inline.
1574         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
1575         (execute_one_pass) ... here; apply transforms when possible.
1576         (add_ipa_transform_pass, execute_ipa_summary_asses,
1577         execute_one_ipa_transform_pass): New.
1578         (execute_ipa_pass_list): Update for IPA_PASS type.
1579
1580 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
1581
1582         * config/i386/i386.c (ix86_builtin_type): Add
1583         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
1584         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
1585         (bdesc_args): Add SSE4a builtins.
1586         (ix86_init_mmx_sse_builtins): Updated.
1587         (ix86_expand_args_builtin): Likewise.
1588         (ix86_expand_builtin): Likewise.
1589
1590 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
1591
1592         * config/i386/i386.c (ix86_builtin_type): Add
1593         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
1594         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
1595         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
1596         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
1597         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
1598         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
1599         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
1600         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
1601         and DI_FTYPE_DI_DI_INT.
1602         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
1603         (ix86_init_mmx_sse_builtins): Updated.
1604         (ix86_expand_args_builtin): Likewise.
1605         (ix86_expand_builtin): Likewise.
1606         (ix86_expand_binop_imm_builtin): Removed.
1607
1608         * doc/extend.texi: Correct __builtin_ia32_palignr128.
1609
1610 2008-04-30  Richard Guenther  <rguenther@suse.de>
1611
1612         PR tree-optimization/32921
1613         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
1614
1615 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
1616
1617         * config/arm/arm.c (arm_unwind_emit): Use
1618         crtl->all_throwers_are_sibcalls instead of
1619         cfun->all_throwers_are_sibcalls.
1620         (arm_output_fn_unwind): Likewise.
1621         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
1622         instead of cfun->uses_pic_offset_table.
1623         (frv_expand_prologue): Likewise.
1624         (frv_frame_pointer_required): Likewise.
1625         (frv_expand_fdpic_call): Likewise.
1626         (frv_emit_movsi): Likewise.
1627         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
1628         cfun->returns_pcc_struct instead of
1629         current_function_returns_pcc_struct.
1630         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
1631         instead of cfun->calls_eh_return.
1632         (m32c_pushm_popm): Likewise.
1633         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
1634         "extern" declaration.
1635
1636 2008-04-30  Richard Guenther  <rguenther@suse.de>
1637
1638         PR tree-optimization/21636
1639         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
1640         constant address.
1641         (evaluate_stmt): Print the likely value.
1642         (ccp_visit_stmt): Avoid excessive vertical spacing.
1643
1644 2008-04-30  Rafael Espindola  <espindola@google.com>
1645
1646         * builtins.c (fold_call_expr): Return realret.
1647         * tree-ssa-threadedge.c
1648         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
1649         __builtin_object_size.
1650
1651 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
1652
1653         * gcc.c (wrapper_string): New variable.
1654         (insert_wrapper): New function.
1655         (execute): New option -wrapper.
1656         * doc/invoke.texi (Overall Options): New driver option -wrapper.
1657
1658 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
1659
1660         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
1661         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
1662         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
1663         from...
1664         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
1665         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
1666         config/rs6000/e500crtres64gprctr.asm,
1667         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
1668         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
1669         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
1670         config/rs6000/e500crtsav64gprctr.asm,
1671         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
1672         config/rs6000/e500crtsavg64gprctr.asm: New files.
1673         * config/rs6000/t-ppccomm: Add build rules for new files.
1674         (LIB2FUNCS_STATIC_EXTRA): Add new files.
1675         * config/rs6000/t-netbsd: Add build rules for new files.
1676         (LIB2FUNCS_STATIC_EXTRA): New variable.
1677         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
1678         (CRTSAVRES_DEFAULT_SPEC): Likewise.
1679         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
1680
1681 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
1682
1683         * config/i386/i386.c (ix86_builtin_type): Add
1684         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
1685         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
1686         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
1687         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
1688         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
1689         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
1690         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
1691         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
1692         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
1693         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
1694         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
1695         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
1696         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
1697         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
1698         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
1699         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
1700         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
1701         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
1702         V1DI_FTYPE_V2SI_V2SI.
1703         (bdesc_2arg): Moved to ...
1704         (bdesc_args): Here.
1705         (ix86_init_mmx_sse_builtins): Updated.
1706         (ix86_expand_args_builtin): Updated.  Take a pointer
1707         to const struct builtin_description.  Handle comparison
1708         builtin functions.
1709         (ix86_expand_sse_compare): Take a new argument for swapping operands.
1710         (ix86_expand_builtin): Updated.
1711
1712         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
1713         (ssse3_pmaddubsw128): This.
1714         (ssse3_pmaddubswv4hi3): Renamed to ...
1715         (ssse3_pmaddubsw): This.
1716
1717         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
1718         (__builtin_ia32_packssdw128): Likewise.
1719         (__builtin_ia32_packuswb128): Likewise.
1720         (__builtin_ia32_pmaddubsw): Likewise.
1721         (__builtin_ia32_pmaddubsw128): Likewise.
1722
1723 2008-04-30  Richard Guenther  <rguenther@suse.de>
1724
1725         PR tree-optimization/14847
1726         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
1727         (recognize_bits_test): Use it.
1728         (recognize_single_bit_test): Likewise.
1729
1730 2008-04-30  Martin Jambor  <mjambor@suse.cz>
1731
1732         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
1733         instead of setting number of formal parameters to zero.
1734         (ipcp_init_stage): Do not set the number of actual parameters to zero 
1735         either.
1736         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
1737         which are called with variable number of arguments.
1738         (ipcp_insert_stage): Explicitely skipping all nodes which are
1739         called with variable number of arguments.
1740         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
1741         number of parameters.
1742
1743         * ipa-prop.h (struct ipa_node_params): Added flag
1744         called_with_var_arguments
1745         (ipa_set_param_count): Added.  Changed sole setter to use it.
1746         (ipa_get_param_count): Added.  All readers of param_count
1747         converted to use it instead.
1748         (ipa_set_called_with_variable_arg): Added.
1749         (ipa_is_called_with_var_arguments): Added.
1750         (ipa_get_ith_param): Added.  All readers of param_decls converted
1751         to use it instead.
1752         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
1753         changed to use it. 
1754         (ipa_get_cs_argument_count): Added, all readers of argument_count
1755         changed to cal it.
1756         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
1757         to use it.
1758         
1759         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
1760         (struct ipcp_lattice): Renamed cval_type to type
1761         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
1762
1763         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
1764         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
1765         (ipcp_insert_stage): Changed the type of variable cvalue to tree
1766         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
1767         (build_const_val): Changed the type of parameter cvalue to tree
1768         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
1769         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
1770         
1771         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
1772         constant 
1773
1774         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
1775         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
1776         (ipa_add_method): Renamed to ipa_push_func_to_list
1777         (ipa_remove_method): Renamed to ipa_pop_func_from_list
1778         (ipa_callsite_param_count): Removed.
1779         (ipa_callsite_param_count_set): Removed.
1780         (ipa_callsite_param): Removed.
1781         (ipa_callsite_callee): Removed.
1782         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
1783         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
1784         (ipa_method_formal_count): Removed.
1785         (ipa_method_formal_count_set): Removed.
1786         (ipa_method_get_tree): Removed.
1787         (ipa_method_tree_map_create): Removed.
1788         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
1789         (ipa_create_param_decls_array): Creates the array itself
1790         (ipa_create_param_decls_array): Temporary variable info instead of 
1791         a few dereferences.
1792         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
1793         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
1794         (get_type): Removed.
1795         (ipa_jf_get_info_type): Removed.
1796         (ipa_node_create): Renamed to ipa_create_node_params
1797         (ipa_free): Renamed to ipa_free_all_node_params
1798         (ipa_nodes_create): Renamed to ipa_create_all_node_params
1799         (ipa_edges_create): Renamed to ipa_create_all_edge_args
1800         (ipa_edges_free): Renamed to ipa_free_all_edge_args
1801         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
1802         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
1803         ipa_free_all_edge_args
1804         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
1805         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
1806         (ipa_create_methodlist_node): Removed.
1807         (ipa_methodlist_method): Removed.
1808         (ipa_methodlist_method_set): Removed.
1809         (ipa_methodlist_next_method): Removed.
1810         (ipa_methodlist_next_method_set): Removed.
1811         (ipa_method_is_modified): Removed.
1812         (ipa_method_modify_create): Removed.
1813         (ipa_method_modify_init): Temporary variable info instead of a few 
1814         dereferences.
1815         (ipa_detect_param_modifications): Temporary variable info instead of 
1816         a few dereferences.
1817         (ipa_compute_jump_functions): Temporary variable info instead of 
1818         a few dereferences.
1819         (ipa_method_modify_set): Removed.
1820         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
1821         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
1822         than craph_node as the first parameter.
1823         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
1824         (ipa_method_modify_init): Removed.
1825         (ipa_compute_jump_functions): Added a temp variable instead of 
1826         repeatadly dereferencing the cgraph_edge.aux pointer
1827         (ipa_callsite_param_set_type): Removed.
1828         (ipa_compute_jump_functions): i renamed to index and moved to 
1829         an inner block
1830         (ipa_callsite_param_set_info_type_formal): Removed.
1831         (ipa_callsite_param_set_info_type): Removed.
1832         (ipa_callsite_param_map_create): Removed.
1833         (ipa_callsite_tree): Removed.
1834         (ipa_callsite_caller): Removed.
1835         (ipa_pop_func_from_list): return_method removed to return_func
1836
1837         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
1838         prefixed all values with IPA_. Changed all users.
1839         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
1840         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
1841         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
1842         (union parameter_info): Renamed to jump_func_value.
1843         (union jump_func_value): Renamed value to constant
1844         (struct ipa_jump_func): Renamed info_type to value
1845         (struct ipa_node): Renamed to ipa_node_params
1846         (struct ipa_node_params): Renamed ipa_arg_num to param_count
1847         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
1848         (struct ipa_node_params): Renamed ipa_mod to modified_flags
1849         (struct ipa_edge): Renamed to ipa_edge_args
1850         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
1851         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
1852         (struct ipa_methodlist): Renamed to ipa_func_list
1853         (struct ipa_func_list): method_p renamed to node, next_method
1854         renamed to next
1855         (ipa_methodlist_p): Removed, switched all users to struct pointer
1856         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
1857
1858 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
1859
1860         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
1861         (rs6000_emit_epilogue): Use backchain to restore only when we
1862         have a large frame.  Make use of frame pointer to restore if we
1863         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
1864
1865 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
1866
1867         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
1868         Add mode to zero_extract.
1869         (sign bit tests peepholes): (Ditto.).
1870
1871 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
1872
1873         * config/i386/i386.c (ix86_builtins): Replace Prescott New
1874         Instructions in comments with SSE3.
1875         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
1876         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
1877         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
1878         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
1879         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
1880         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
1881         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
1882         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
1883         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
1884         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
1885         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
1886         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
1887         (bdesc_sse_args): Renamed to ...
1888         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
1889         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
1890         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
1891         IX86_BUILTIN_FABSQ.
1892         (bdesc_1arg): Moved to ...
1893         (bdesc_args): Here.
1894         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
1895         Instructions in comments with SSE3.
1896         (ix86_expand_sse_operands_builtin): Renamed to ...
1897         (ix86_expand_args_builtin): This.  Updated.
1898         (ix86_expand_unop1_builtin): Update comments.
1899         (ix86_expand_builtin): Updated.
1900
1901 2008-04-29  Richard Guenther  <rguenther@suse.de>
1902
1903         PR tree-optimization/36078
1904         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
1905         Update virtual SSA form after cleaning up the CFG.
1906
1907 2008-04-29  Richard Guenther  <rguenther@suse.de>
1908
1909         PR middle-end/15255
1910         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
1911
1912 2008-04-29  Richard Guenther  <rguenther@suse.de>
1913
1914         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
1915         (compute_may_aliases): Do not call finalize_ref_all_pointers.
1916         (compute_flow_insensitive_aliasing): Do not treat
1917         PTR_IS_REF_ALL pointers special.
1918         (get_smt_for): Likewise.
1919         (may_alias_p): Re-structure.
1920         (is_escape_site): A ref-all pointer conversion is not an escape site.
1921         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
1922         PTR_IS_REF_ALL pointers special.
1923         * tree-ssa-structalias.h (struct alias_info): Remove
1924         ref_all_symbol_mem_tag field.
1925         (PTR_IS_REF_ALL): Remove.
1926
1927 2008-04-29  Richard Guenther  <rguenther@suse.de>
1928
1929         PR middle-end/36077
1930         * fold-const.c (extract_muldiv_1): In combining division constants
1931         make sure to never overflow.
1932
1933 2008-04-29  Nick Clifton  <nickc@redhat.com>
1934
1935         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
1936
1937 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1938
1939         PR bootstrap/35169
1940         * optc-gen.awk: Work around HP-UX/IA awk bug.
1941
1942 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
1943
1944         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
1945         2008-04-25 commit.
1946
1947 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
1948
1949         PR target/36073
1950         * config/i386/i386.md
1951         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
1952         Change operand 1 predicate to nonimmediate_operand.
1953
1954 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
1955
1956         PR debug/36060
1957         * dwarf2out.c (struct die_struct): Mark as chain_circular through
1958         die_sub field.
1959         * gengtype.c (walk_type, write_func_for_structure): Handle
1960         chain_circular.
1961         * doc/gty.texi: Document chain_circular.
1962
1963 2008-04-28  Richard Guenther  <rguenther@suse.de>
1964
1965         PR tree-optimization/36066
1966         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
1967         SCEV and loop.
1968
1969 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
1970
1971         PR target/36064
1972         * config/i386/i386.md
1973         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
1974         Use match_scratch instead of match_operand for operands 3 and 4.
1975
1976 2008-04-27  Richard Guenther  <rguenther@suse.de>
1977
1978         PR tree-optimization/18754
1979         PR tree-optimization/34223
1980         * tree-pass.h (pass_complete_unrolli): Declare.
1981         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
1982         loop size before and after unconditionally of UL_NO_GROWTH in effect.
1983         Rewrite loop into loop closed SSA form if it is not already.
1984         (tree_unroll_loops_completely): Re-structure to iterate over
1985         innermost loops with intermediate CFG cleanups.
1986         Unroll outermost loops only if requested or the code does not grow
1987         doing so.
1988         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
1989         loops are available.
1990         (tree_vectorize): Instead do so here.
1991         (tree_complete_unroll): Also unroll outermost loops.
1992         (tree_complete_unroll_inner): New function.
1993         (gate_tree_complete_unroll_inner): Likewise.
1994         (pass_complete_unrolli): New pass.
1995         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
1996         uses outside of the loop.
1997         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
1998         form if it is available.  
1999         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
2000         * passes.c (init_optimization_passes): Schedule complete inner
2001         loop unrolling pass before the first CCP pass after final inlining.
2002
2003 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
2004
2005         * targhooks.h (default_emutls_var_fields,
2006         default_emutls_var_init): Declare.
2007         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
2008         * target.h (struct gcc_target): Add struct emutls member.
2009         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
2010         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
2011         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
2012         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
2013         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
2014         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
2015         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
2016         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
2017         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
2018         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
2019         emit debug information.
2020         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
2021         * varasm.c: Include targhooks.h.
2022         (emutls_object_section, emutls_tmpl_section): New.
2023         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
2024         (EMUTLS_SEPARATOR): New.
2025         (prefix_name): New.
2026         (get_emutls_object_name): New.
2027         (default_emutls_var_fields): New, broken out of ...
2028         (get_emutls_object_type): ... here.  Adjust to use target hooks.
2029         (get_emutls_init_templ_addr): Adjust to use target hooks.
2030         (emutls_decl): Adjust to use target hooks.
2031         (emutls_finish): Likewise.
2032         (default_emutls_var_init): New, broken out of ...
2033         (assemble_variable): ... here.  Adjust to use target hooks.
2034         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
2035         SECCAT_EMUTLS_TMPL.
2036         * c-common.c (handle_section_attribute): Prevent overriding
2037         sections for emulated tls with special sections.
2038         * config/i386/i386.c (x86_64_elf_select_section): Add
2039         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
2040         (x86_64_elf_unique_section): Likewise.
2041         * config/vxworks.c: Include tree.h.
2042         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
2043         (vxworks_override_options): Set TLS scheme.
2044         * doc/tm.texi (Emulated TLS): New node.
2045
2046 2008-04-26  Simon Baldwin <simonb@google.com>
2047
2048         PR c/35652
2049         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
2050         with propagated string constants.
2051
2052 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
2053
2054         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
2055         constraint for operand 2 when operand 0 is memory operand.
2056         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
2057         operand 0 is memory operand.
2058         (fix_trunc<mode>_i387_with_temp): Ditto.
2059         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
2060         operand 2 when operand 1 is memory operand.
2061         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
2062         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
2063         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
2064         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
2065         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
2066         operands 2,3 and 4 when operand 1 is memory operand.
2067         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
2068         is memory operand.
2069         (fistdi2_floor_with_temp): Ditto.
2070         (fist<mode>2_floor_with_temp): Ditto.
2071         (fistdi2_ceil_with_temp): Ditto.
2072         (fist<mode>2_ceil_with_temp): Ditto.
2073         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
2074
2075 2008-04-26  David Daney  <ddaney@avtrex.com>
2076
2077         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
2078         unspec_volitile.
2079         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
2080         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
2081         UNSPEC_UPDATE_GOT_VERSION): Renumber.
2082         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
2083         (compare_and_swap_12): New insn.
2084         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
2085         * config/mips/mips.c (mips_force_binary): New function.
2086         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
2087         (mips_expand_compare_and_swap_12): New function.
2088         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
2089
2090 2008-04-25  Jan Hubicka  <jh@suse.cz>
2091
2092         PR testsuite/35843
2093         * cfgexpand.c (pass_expand): Turn into RTL pass.
2094         * passes.c (execute_one_pass): Do pass typechecking after execution.
2095         * tree-pass.h (pass_expand): Turn into RTL pass.
2096
2097         * function.h (struct rtl_data): Move here fields
2098         accesses_prior_frames, calls_eh_return, saves_all_registers,
2099         has_nonlocal_goto, has_asm_statement, is_thunk,
2100         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
2101         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
2102         arg_pointer_save_area_init from struct function; turn into bool.
2103         (struct function): Move
2104         calls_eh_return, saves_all_registers, has_nonlocal_goto,
2105         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
2106         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
2107         tail_call_emit, arg_pointer_save_area_init
2108         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
2109         (current_function_returns_struct, current_function_returns_pcc_struct,
2110         current_function_calls_setjmp, current_function_calls_alloca,
2111         current_function_accesses_prior_frames,
2112         current_function_calls_eh_return, current_function_is_thunk,
2113         current_function_stdarg, current_function_profile,
2114         current_function_limit_stack, current_function_uses_pic_offset_table,
2115         current_function_uses_const_pool, current_function_has_nonlocal_label,
2116         current_function_saves_all_registers,
2117         current_function_has_nonlocal_goto,
2118         current_function_has_asm_statement): Remove accesor macros.
2119         * ra-conflict.c (global_conflicts): Update.
2120         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
2121         (suitable_for_tail_call_opt_p): Update.
2122         * builtins.c (expand_builtin_return_addr): Update.
2123         (expand_builtin_setjmp_setup): Update.
2124         (expand_builtin_nonlocal_goto): Update.
2125         * final.c (final_start_function): Update.
2126         (profile_function): Update.
2127         (leaf_function_p): Update.
2128         (only_leaf_regs_used): Update.
2129         * df-scan.c (df_get_exit_block_use_set): Update.
2130         * dojump.c (clear_pending_stack_adjust): Update.
2131         * tree-stdarg.c (gate_optimize_stdarg): Update.
2132         * gimple-low.c (lower_function_body): Update.
2133         * global.c (compute_regsets): Update.
2134         (global_alloc): Update.
2135         * dwarf2out.c (dwarf2out_begin_prologue): Update.
2136         * expr.c (expand_assignment): Update.
2137         * dse.c (dse_step0): Update.
2138         (dse_step1): Update.
2139         * c-decl.c (store_parm_decls): Update.
2140         * local-alloc.c (combine_regs): Update.
2141         (find_free_reg): Update.
2142         * function.c (assign_parms_augmented_arg_list): Update.
2143         (assign_parm_find_data_types): Update.
2144         (assign_parms): Update.
2145         (allocate_struct_function): Update.
2146         (expand_function_start): Update.
2147         (expand_function_end): Update.
2148         (get_arg_pointer_save_area): Update.
2149         (thread_prologue_and_epilogue_insns): Update.
2150         (rest_of_match_asm_constraints): Update.
2151         * stor-layout.c (variable_size): Update.
2152         * gcse.c (gcse_main): Update.
2153         (bypass_jumps): Update.
2154         * gimplify.c (gimplify_function_tree): Update.
2155         * calls.c (emit_call_1): Update.
2156         (expand_call): Update.
2157         * bt-load.c (compute_defs_uses_and_gen): Update.
2158         * except.c (sjlj_assign_call_site_values): Update.
2159         (sjlj_emit_function_enter): Update.
2160         (can_throw_external): Update.
2161         (set_nothrow_function_flags): Update.
2162         (expand_builtin_unwind_init): Update.
2163         (expand_eh_return): Update.
2164         (convert_to_eh_region_ranges): Update.
2165         (output_function_exception_table): Update.
2166         * emit-rtl.c (gen_tmp_stack_mem): Update.
2167         * cfgexpand.c (expand_used_vars): Update.
2168         (tree_expand_cfg): Update.
2169         * cfgcleanup.c (rest_of_handle_jump): Update.
2170         * explow.c (allocate_dynamic_stack_space): Update.
2171         * varasm.c (assemble_start_function): Update.
2172         (force_const_mem): Update.
2173         (mark_constant_pool): Update.
2174         * tree-optimize.c (tree_rest_of_compilation): Update.
2175         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
2176         * tree-cfg.c (notice_special_calls): Update.
2177         (is_ctrl_altering_stmt): Update.
2178         (tree_can_make_abnormal_goto): Update.
2179         (tree_purge_dead_abnormal_call_edges): Update.
2180         * config/alpha/predicates.md: Update.
2181         * config/alpha/alpha.c (alpha_sa_mask): Update.
2182         (alpha_sa_size): Update.
2183         (alpha_does_function_need_gp): Update.
2184         (alpha_expand_prologue): Update.
2185         (alpha_start_function): Update.
2186         (alpha_output_function_end_prologue): Update.
2187         (alpha_expand_epilogue): Update.
2188         * config/frv/frv.c (frv_stack_info): Update.
2189         (frv_expand_epilogue): Update.
2190         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
2191         (s390_register_info): Update.
2192         (s390_frame_info): Update.
2193         (s390_init_frame_layout): Update.
2194         (s390_can_eliminate): Update.
2195         (save_gprs): Update.
2196         * config/spu/spu.c (spu_split_immediate): Update.
2197         (need_to_save_reg): Update.
2198         (spu_expand_prologue): Update.
2199         (spu_expand_epilogue): Update.
2200         * config/sparc/sparc.md: Update.
2201         * config/sparc/sparc.c (eligible_for_return_delay): Update.
2202         (sparc_tls_got): Update.
2203         (legitimize_pic_address): Update.
2204         (sparc_emit_call_insn): Update.
2205         (sparc_expand_prologue): Update.
2206         (output_return): Update.
2207         (print_operand): Update.
2208         (sparc_function_ok_for_sibcall): Update.
2209         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
2210         * config/m32r/m32r.md: Update.
2211         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
2212         (m32r_compute_frame_size): Update.
2213         (m32r_expand_prologue): Update.
2214         (m32r_expand_epilogue): Update.
2215         (m32r_legitimize_pic_address): Update.
2216         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
2217         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
2218         * config/i386/i386.c (ix86_frame_pointer_required): Update.
2219         (gen_push): Update.
2220         (ix86_save_reg): Update.
2221         (ix86_compute_frame_layout): Update.
2222         (ix86_expand_prologue): Update.
2223         (ix86_expand_epilogue): Update.
2224         * config/sh/sh.c (output_stack_adjust): Update.
2225         (calc_live_regs): Update.
2226         (sh5_schedule_saves): Update.
2227         (sh_expand_prologue): Update.
2228         (sh_expand_epilogue): Update.
2229         (sh_setup_incoming_varargs): Update.
2230         (sh_allocate_initial_value): Update.
2231         (sh_get_pr_initial_val): Update.
2232         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
2233         * config/sh/sh.md (label:): Update.
2234         * config/avr/avr.c (out_movhi_mr_r): Update.
2235         * config/crx/crx.h (enum): Update.
2236         * config/xtensa/xtensa.h (along): Update.
2237         * config/stormy16/stormy16.c Update.
2238         (xstormy16_compute_stack_layout): Update.
2239         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
2240         (fr30_expand_prologue): Update.
2241         * config/cris/cris.c (cris_conditional_register_usage): Update.
2242         (cris_reg_saved_in_regsave_area): Update.
2243         (cris_initial_frame_pointer_offset): Update.
2244         (cris_simple_epilogue): Update.
2245         (cris_expand_prologue): Update.
2246         (cris_expand_epilogue): Update.
2247         (cris_expand_pic_call_address): Update.
2248         (cris_asm_output_symbol_ref): Update.
2249         (cris_asm_output_label_ref): Update.
2250         * config/cris/cris.md Update.
2251         * config/iq2000/iq2000.c (compute_frame_size): Update.
2252         (iq2000_expand_epilogue): Update.
2253         * config/mt/mt.h (save_direction): Update.
2254         * config/mn10300/mn10300.c (mn10300_function_value): Update.
2255         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
2256         (ia64_secondary_reload_class): Update.
2257         * config/m68k/m68k.c (m68k_save_reg): Update.
2258         (m68k_expand_prologue): Update.
2259         (m68k_expand_epilogue): Update.
2260         (legitimize_pic_address): Update.
2261         * config/rs6000/rs6000.c (rs6000_got_register): Update.
2262         (first_reg_to_save): Update.
2263         (first_altivec_reg_to_save): Update.
2264         (compute_vrsave_mask): Update.
2265         (compute_save_world_info): Update.
2266         (rs6000_stack_info): Update.
2267         (spe_func_has_64bit_regs_p): Update.
2268         (rs6000_ra_ever_killed): Update.
2269         (rs6000_emit_eh_reg_restore): Update.
2270         (rs6000_emit_allocate_stack): Update.
2271         (rs6000_emit_prologue): Update.
2272         (rs6000_emit_epilogue): Update.
2273         (rs6000_output_function_epilogue): Update.
2274         (output_profile_hook): Update.
2275         (rs6000_elf_declare_function_name): Update.
2276         * config/rs6000/rs6000.h (rs6000_args): Update.
2277         * config/rs6000/rs6000.md: Update.
2278         * config/mcore/mcore.c (mcore_expand_prolog): Update.
2279         * config/arc/arc.c (arc_output_function_epilogue): Update.
2280         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
2281         * config/darwin.c (machopic_function_base_name): Update.
2282         * config/score/score3.c (score3_compute_frame_size): Update.
2283         (rpush): Update.
2284         (rpop): Update.
2285         (score3_epilogue): Update.
2286         * config/score/score7.c (score7_compute_frame_size): Update.
2287         (score7_prologue): Update.
2288         (score7_epilogue): Update.
2289         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
2290         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
2291         * config/arm/arm.c (use_return_insn): Update.
2292         (require_pic_register): Update.
2293         (arm_load_pic_register): Update.
2294         (arm_compute_save_reg0_reg12_mask): Update.
2295         (arm_compute_save_reg_mask): Update.
2296         (thumb1_compute_save_reg_mask): Update.
2297         (output_return_instruction): Update.
2298         (arm_output_function_prologue): Update.
2299         (arm_output_epilogue): Update.
2300         (arm_get_frame_offsets): Update.
2301         (arm_expand_prologue): Update.
2302         (thumb_pushpop): Update.
2303         (thumb_exit): Update.
2304         (thumb1_expand_prologue): Update.
2305         (thumb1_expand_epilogue): Update.
2306         (arm_unwind_emit): Update.
2307         (arm_output_fn_unwind): Update.
2308         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
2309         * config/arm/arm.md: Update.
2310         * config/pa/pa.md: Update.
2311         * config/pa/pa.c (legitimize_pic_address): Update.
2312         (compute_frame_size): Update.
2313         (hppa_expand_prologue): Update.
2314         (hppa_expand_epilogue): Update.
2315         (borx_reg_operand): Update.
2316         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
2317         (HARD_REGNO_RENAME_OK): Update.
2318         * config/mips/mips.c (mips_global_pointer): Update.
2319         (mips_save_reg_p): Update.
2320         (mips_compute_frame_info): Update.
2321         (mips_frame_pointer_required): Update.
2322         (mips_expand_prologue): Update.
2323         (mips_expand_epilogue): Update.
2324         (mips_can_use_return_insn): Update.
2325         (mips_reorg_process_insns): Update.
2326         * config/v850/v850.c (compute_register_save_size): Update.
2327         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
2328         * config/mmix/mmix.c (along): Update.
2329         (mmix_expand_epilogue): Update.
2330         * config/bfin/bfin.c (legitimize_pic_address): Update.
2331         (must_save_p): Update.
2332         (stack_frame_needed_p): Update.
2333         (add_to_reg): Update.
2334         (bfin_expand_prologue): Update.
2335         * stmt.c (expand_asm_operands): Update.
2336         * reload1.c (reload): Update.
2337         (init_elim_table): Update.
2338
2339 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
2340         
2341         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
2342         
2343 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
2344
2345         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
2346         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
2347         (mov<mode>): Removed.
2348         (*movv4sf_internal): Likewise.
2349         (*movv2df_internal): Likewise.
2350
2351 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
2352
2353         * config.gcc (crx-*-elf): Remove deprecation.
2354
2355 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
2356
2357         * config/i386/cygming-crtend.c (register_frame_ctor): Register
2358         __gcc_deregister_frame with atexit.
2359         (deregister_frame_dtor): Remove.
2360
2361 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
2362             Nathan Sidwell  <nathan@codesourcery.com>
2363
2364         * config/rs6000/rs6000.opt (mspe): Remove Var property.
2365         (misel): Likewise.
2366         * config/rs6000/rs6000.h (rs6000_spe): Declare.
2367         (rs6000_isel): Likewise.
2368         * config/rs6000/rs6000.c (rs6000_spe): New variable.
2369         (rs6000_isel): New variable.
2370         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
2371
2372 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
2373
2374         PR c++/35758
2375         * c-common.c (handle_vector_size_attribute): Call
2376         lang_hooks.types.reconstruct_complex_type instead of
2377         reconstruct_complex_type.
2378         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
2379         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
2380         * langhooks.h (struct lang_hooks_for_types): Add
2381         reconstruct_complex_type hook.
2382         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
2383         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
2384
2385 2008-04-24  Richard Guenther  <rguenther@suse.de>
2386
2387         * c-common.h (check_builtin_function_arguments): Declare.
2388         * c-common.c (validate_nargs): New function.
2389         (check_builtin_function_arguments): Likewise.
2390         * c-typeck.c (build_function_call): Call
2391         check_builtin_function_arguments.
2392         * builtins.c (fold_builtin_classify): Remove error reporting code.
2393         (fold_builtin_unordered_cmp): Likewise.
2394         (fold_builtin_1): Likewise.
2395         (fold_builtin_n): Likewise.
2396
2397 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
2398
2399         PR tree-optimization/36008
2400         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
2401         the original op1, rather than delta by step.
2402
2403 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
2404             Sebastian Pop  <sebastian.pop@amd.com>
2405
2406         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
2407         eliminate_local_variables_stmt, eliminate_local_variables,
2408         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
2409         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
2410         of code delimited by two edges in the CFG.
2411         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
2412         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
2413         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
2414         the case of parallelisation of reductions.
2415         (expr_invariant_in_region_p): New.
2416
2417         * tree-flow.h (gather_blocks_in_sese_region): Declared.
2418         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
2419
2420 2008-04-24  Ira Rosen  <irar@il.ibm.com>
2421             Richard Guenther  <rguenther@suse.de>
2422
2423         PR tree-optimization/36034
2424         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
2425         incapable of dealing with loads with gaps.
2426
2427 2008-04-24  Rafael Espindola  <espindola@google.com>
2428
2429         * tree-flow.h (vrp_evaluate_conditional): Change signature.
2430         * tree-ssa-propagate.c (fold_predicate_in): Update call to
2431         vrp_evaluate_conditional.
2432         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
2433         (vrp_evaluate_conditional): Split the cond argument.
2434         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
2435         (simplify_stmt_for_jump_threading): Update call to
2436         vrp_evaluate_conditional.
2437
2438 2008-04-24  Ira Rosen  <irar@il.ibm.com>
2439
2440         PR tree-optimization/35982
2441         * tree-vect-analyze.c (vect_check_interleaving): Check that the
2442         interleaved data-refs are of the same type.
2443
2444 2008-04-24  Danny Smith  <dannysmith@users.net>
2445
2446         * c-format.c (check_format_info_main): Use strncmp rather than a
2447         magic prefix to handle multichar length specs.
2448         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
2449         Don't prefix "I64" and "I32" with '\0'.
2450
2451 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
2452
2453         PR target/36015
2454         * config/i386/i386.c (init_cumulative_args): Don't pass anything
2455         in registers for -m32 only if stdarg_p (fntype).
2456
2457 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
2458
2459         PR rtl-optimization/36006
2460         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
2461         temp to op0 in order to avoid invalid rtx sharing.
2462
2463 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
2464
2465         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
2466         check TREE_INVARIANT.
2467         * tree-gimple.c (is_gimple_address): New.
2468         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
2469         * tree-gimple.h (is_gimple_address): New.
2470         * tree.h (decl_address_invariant_p): New.
2471         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
2472         (build_string): Likewise.
2473         (decl_address_invariant_p): New, from is_gimple_invariant_address.
2474         (tree_invariant_p_1): Likewise.
2475         (save_expr): Use it.
2476         (tree_invariant_p): New.
2477         (skip_simple_arithmetic): Use it.
2478         (stabilize_reference_1): Use it.
2479         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
2480         simplify.
2481         (build1_stat): Drop code to compute TREE_INVARIANT.
2482         (build2_stat): Drop code to compute TREE_INVARIANT.
2483         (build3_stat): Drop code to compute TREE_INVARIANT.
2484         (build4_stat): Drop code to compute TREE_INVARIANT.
2485         (build5_stat): Drop code to compute TREE_INVARIANT.
2486         (build7_stat): Drop code to compute TREE_INVARIANT.
2487         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
2488         * tree.h (struct tree_base): Remove invariant_flag.
2489         (TREE_INVARIANT): Remove.
2490         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
2491         (fold_builtin_expect): Check TREE_CONSTANT.
2492         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
2493         * c-tree.h (c_expr_to_decl): Drop third parameter.
2494         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
2495         (build_c_cast): Don't set TREE_INVARIANT.
2496         (pop_init_level): Don't set TREE_INVARIANT.
2497         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
2498         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
2499         TREE_CONSTANT.
2500         (gimplify_init_constructor): Don't set TREE_INVARIANT.
2501         (gimplify_addr_expr): Adjust comment.
2502         * tree-mudflap.c (mf_build_string):
2503         * print-tree.c (print_node): Don't print TREE_INVARIANT.
2504         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
2505         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
2506         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
2507         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
2508         * langhooks.h (struct lang_hooks): Drop third parameter from
2509         expr_to_decl.
2510
2511 2008-04-23  Richard Guenther  <rguenther@suse.de>
2512
2513         PR tree-optimization/27799
2514         PR tree-optimization/32921
2515         PR tree-optimization/32624
2516         * tree-ssa-structalias.c (merge_smts_into): Only merge the
2517         SMTs aliases and the tag itself into the solution.
2518         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
2519         merge the points-to solution back into the SMT aliases.
2520         (may_alias_p): Use alias_set_subset_of instead of
2521         aliases_conflict_p.  A pointer which points to
2522         memory with alias set zero may access any variable.
2523
2524 2008-04-23  Richard Guenther  <rguenther@suse.de>
2525
2526         * alias.c (alias_set_subset_of): Correctly handle asking
2527         if zero is a subset of an alias set with zero child.
2528         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
2529         (compute_flow_insensitive_aliasing): Correctly walk all
2530         pointers.  Do not unnecessarily union sets.
2531
2532 2008-04-23  Richard Guenther  <rguenther@suse.de>
2533
2534         PR middle-end/36021
2535         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
2536
2537 2008-04-22  Tomas Bily  <tbily@suse.cz>
2538
2539         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
2540         unreachable case.
2541         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
2542         NON_LVALUE_EXPR.
2543         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
2544         * tree-ssa-structalias.c (get_constraint_for): Likewise.
2545         * tree-inline.c (estimate_num_insns_1): Likewise.
2546         * varasm.c (const_hash_1, compare_constant, copy_constant)
2547         (compute_reloc_for_constant, output_addressed_constants): Likewise.
2548         * emit-rtl.c (component_ref_for_mem_expr)
2549         (set_mem_attributes_minus_bitpos): Likewise.
2550         * expr.c (highest_pow2_factor, expand_expr_real_1, )
2551         (is_aligning_offset): Likewise.
2552         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
2553         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
2554         * dojump.c (do_jump): Likewise.
2555         * builtins.c (get_pointer_alignment, get_memory_rtx)
2556         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
2557         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
2558
2559 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
2560
2561         PR rtl-optimization/36017
2562         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
2563         expanding the library call.
2564
2565 2008-04-22  Ian Lance Taylor  <iant@google.com>
2566
2567         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
2568         than size_in_bytes.
2569
2570 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
2571
2572         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
2573         of LR/CTR moves for Power6.
2574
2575 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
2576
2577         PR middle-end/36003
2578         * passes.c (init_optimization_passes): Remove
2579         pass_fast_rtl_byte_dce.
2580         
2581 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
2582
2583         PR target/29096
2584         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
2585         builtin functions to generate faster code.
2586         (_mm_cvtpu16_ps): Ditto.
2587         (_mm_cvtpi32x2_ps): Ditto.
2588
2589 2008-04-22  Nick Clifton  <nickc@redhat.com>
2590
2591         * common.opt (ftree-loop-distribution): Add Optimization
2592         attribute.
2593
2594         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
2595         (frv_expand_builtin_va_start): Likewise.
2596
2597         * config/arm/arm.c (thumb_find_work_register): Fix location of
2598         argument register count.
2599
2600 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
2601
2602         Support scheduling for ColdFire V1 and V3 microarchitecture.
2603         Improve scheduling of multiplication instructions.
2604
2605         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
2606         (mac): New instruction attribute.
2607         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
2608         (m68k_sched_mac): New variable.
2609         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
2610         Handle cfv1 and cfv3.
2611         (max_insn_size): New static variable.
2612         (struct _sched_ib): New type.
2613         (sched_ib): New static variable.
2614         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
2615         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
2616         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
2617         Update.
2618         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
2619         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
2620         new variables.  Update.
2621         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
2622         Add modeling of cfv3 instruction buffer.  Update.
2623         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
2624         * config/m68k/m68k.h (TUNE_CFV3): New macro.
2625         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
2626         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
2627         a particular reservation applies to.
2628         (type2): Reorganize attribute values.  Rename alu to alu_reg,
2629         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
2630         to mul_l and mul_w.
2631         (cf_ib_*): Simplify description of instruction buffer.
2632         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
2633         (cf_mem): Split into cf_mem1 and cf_mem2.
2634         (cf_v2_move_??): Rename to cfv12_alu_??.
2635         (cf_v2_move_l_??): Rename to cfv12_omove_??.
2636         (cf_v2_mul_??): Remove reservations.
2637         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
2638         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
2639         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
2640         appropriate place.
2641         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
2642         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
2643         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
2644         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
2645         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
2646         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
2647         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
2648         expansions of the above reservations for instructions of sizes
2649         1, 2 and 3 words.
2650
2651 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
2652
2653         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
2654
2655 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
2656
2657         * coverage.c: Include tree-pass.h.
2658         (coverage_counter_alloc): Print da_file_name to the dump file.
2659
2660 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
2661
2662         * sbitmap.c (sbitmap_range_empty_p): New function.
2663         * sbitmap.h (sbitmap_range_empty_p): New function.
2664         * bitmap.h: Now includes obstack.h.
2665
2666 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
2667             Kenneth Zadeck  <zadeck@naturalbridge.com>
2668
2669         * dbgcnt.def (ra_byte_scan): Added.
2670         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
2671         when the last hit happens for a counter.  
2672         * timevar.def (TV_DF_BYTE_LR): New variable.
2673         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
2674         * passes.c (pass_fast_rtl_byte_dce): New pass.
2675         * fwprop.c (update_df): Added mode to call df_ref_create.
2676         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
2677         DF_REF_EXTRACT_OFFSET.
2678         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
2679         DF_BYTE_LR_OUT, df_byte_lr): New macro.
2680         (df_mm): New enum.
2681         (df_ref_extract): Added mode field.
2682         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
2683         DF_REF_EXTRACT_OFFSET.
2684         (DF_REF_EXTRACT_MODE): New macro.
2685         (df_byte_lr_bb_info): New structure.
2686         (df_print_byte_regset, df_compute_accessed_bytes, 
2687         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
2688         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
2689         df_byte_lr_simulate_uses,
2690         df_byte_lr_simulate_artificial_refs_at_top,
2691         df_byte_lr_simulate_artificial_refs_at_end,
2692         df_compute_accessed_bytes): New function.
2693         (df_ref_create): Add parameter.
2694         (df_byte_lr_get_bb_info): New inline function.
2695         * df-scan.c (df_ref_record, df_uses_record,
2696         df_ref_create_structure): Added mode parameter.
2697         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
2698         df_defs_record, df_uses_record, df_get_conditional_uses,
2699         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
2700         df_entry_block_defs_collect, df_exit_block_uses_collect):
2701         Added mode parameter to calls to df_ref_record, df_uses_record,
2702         df_ref_create_structure.
2703         (df_ref_equal_p, df_ref_compare): Added test for modes.
2704         (df_ref_create_structure): Added code to set mode.  Renamed
2705         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
2706         DF_REF_EXTRACT_OFFSET.
2707         * df-core.c (df_print_byte_regset): New function.
2708         * df-byte-scan.c: New file.
2709         * df-problems.c (df_rd_transfer_function): Removed unnecessary
2710         calls to BITMAP_FREE.  
2711         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
2712         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
2713         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
2714         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
2715         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
2716         df_byte_lr_local_compute, df_byte_lr_init,
2717         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
2718         df_byte_lr_transfer_function, df_byte_lr_free, 
2719         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
2720         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
2721         df_byte_lr_simulate_uses,
2722         df_byte_lr_simulate_artificial_refs_at_top,
2723         df_byte_lr_simulate_artificial_refs_at_end): New function.
2724         * dce.c (byte_dce_process_block): New function.
2725         (dce_process_block): au is now passed in rather than computed
2726         locally.  Changed loops that look at artificial defs to not look
2727         for conditional or partial ones, because there never are any.  
2728         (fast_dce): Now is able to drive byte_dce_process_block or 
2729         dce_process_block depending on the kind of dce being done.
2730         (rest_of_handle_fast_dce): Add parameter to fast_dce.
2731         (rest_of_handle_fast_byte_dce): New function.
2732         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
2733         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
2734
2735 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
2736
2737         PR fortran/35019
2738         * gcc.h: Added fortran options that take arguments to
2739         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
2740         macros.
2741
2742 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
2743
2744         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
2745         scalarization if on the LHS and not a full access.
2746
2747 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2748
2749         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
2750
2751 2008-04-18  Rafael Espindola  <espindola@google.com>
2752
2753         * tree-vrp.c (find_case_label_index): Fix the binary search.
2754         (find_case_label_range): New.
2755         (vrp_visit_switch_stmt): Use find_case_label_range.
2756         (simplify_switch_using_ranges): Use find_case_label_range.
2757
2758 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
2759
2760         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
2761         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
2762
2763 2008-04-18  Tom Tromey  <tromey@redhat.com>
2764
2765         PR libcpp/15500:
2766         * doc/cpp.texi (Implementation-defined behavior): Mention
2767         -finput-charset.
2768
2769 2008-04-18  Ian Lance Taylor  <iant@google.com>
2770
2771         * fold-const.c (pointer_may_wrap_p): New static function.
2772         (fold_comparison): Add another test for pointer overflow.  Use
2773         pointer_may_wrap_p to disable some false positives.
2774
2775 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
2776           
2777         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
2778         (fname_as_string): Match updated cpp_interpret_string prototype.
2779         (fix_string_type): Support char16_t* and char32_t*.
2780         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
2781         derivative) nodes.  Register as builtin if C++0x.
2782         (c_parse_error): Support CPP_CHAR{16,32}.
2783         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
2784         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
2785         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
2786         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
2787         CTI_CHAR32_ARRAY_TYPE>: New elements.
2788         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
2789         char32_type_node, signed_char32_type_node, char16_array_type_node,
2790         char32_array_type_node): New defines.
2791         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
2792         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
2793         (lex_string): Support CPP_STRING{16,32}, match updated
2794         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
2795         (lex_charconst): Support CPP_CHAR{16,32}.
2796         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
2797         and CPP_STRING{16,32}.
2798
2799 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
2800
2801         PR bootstrap/35457
2802         * aclocal.m4: Regenerate.
2803         * configure: Regenerate.
2804
2805 2008-04-18  Jan Hubicka  <jh@suse.cz>
2806
2807         * except.c (dw2_size_of_call_site_table,
2808         sjlj_size_of_call_site_table): Use vector API for call_site_record.
2809
2810         * cgraphbuild.c (build_cgraph_edges): Update.
2811         * tree-pass.h: Update comment.
2812         * final.c (leaf_function_p): Update.
2813         (leaf_renumber_regs): Update.
2814         (rest_of_clean_state): Update.
2815         * omp-low.c (expand_omp_parallel): Update.
2816         * ipa-reference.c (analyze_function): Update.
2817         * reorg.c (find_end_label): Update.
2818         (optimize_skip): Update.
2819         (fill_simple_delay_slots): Update.
2820         (fill_simple_delay_slots): Update.
2821         (make_return_insns): Update.
2822         (dbr_schedule): Update.
2823         * gimple-low.c (record_vars_into): Update.
2824         * cfgbuild.c (make_edges): Update.
2825         * function.c (assign_stack_local): Update.
2826         (assign_parm_adjust_stack_rtl): Update.
2827         (locate_and_pad_parm): Update.
2828         (allocate_struct_function): Do not initialize stack_alignment_needed
2829         and preferred_stack_boundary here.
2830         (stack_protect_prologue): Update.
2831         (stack_protect_epilogue): Update.
2832         (expand_function_start): Initialize stack_alignment_needed,
2833         preferred_stack_boundary and max_jumptable_ents.
2834         (expand_function_end): Update.
2835         (free_after_compilation): Do not NULLify epilogue_delay_list.
2836         * function.h (struct rtl_data): Add stack_protect_guard,
2837         stack_alignment_needed,
2838         preferred_stack_boundary, epilogue_delay_list.
2839         (struct function): Remove value_histograms, stack_alignment_needed,
2840         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
2841         last_label_uid,
2842         unexpanded_var_list, stack_protect_guard.
2843         (current_function_epilogue_delay_list): Remove.
2844         * ipa-type-escape.c (analyze_function): Update.
2845         * gimplify.c (pop_gimplify_context): Update comment.
2846         * calls.c (expand_call): Update.
2847         (emit_library_call_value_1): Update.
2848         * except.c (set_nothrow_function_flags): Update.
2849         * cfgexpand.c (get_decl_align_unit): Update.
2850         (create_stack_guard): Update.
2851         (estimated_stack_frame_size): Update.
2852         (expand_used_vars): Update.
2853         (tree_expand_cfg): Free histogram earliers, init expansion variables.
2854         * explow.c (allocate_dynamic_stack_space): Update.
2855         * tree-ssa-live.c (remove_unused_locals): Update.
2856         * varasm.c (mark_constant_pool): Update.
2857         * tree-inline.c (remap_decls): Update.
2858         (initialize_cfun): Update.
2859         (declare_return_variable): Update.
2860         (inline_forbidden_p): Update.
2861         (expand_call_inline): Update.
2862         (declare_inline_vars): Update.
2863         (tree_function_versioning): Update.
2864         * tree-flow.h (value_histograms): New.
2865         (VALUE_HISTOGRAMS): New macro.
2866         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
2867         last_label_uid.
2868         * tree-cfg.c (set_bb_for_stmt): Update.
2869         (replace_by_duplicate_decl): Update.
2870         (move_block_to_fn): Update.
2871         (new_label_mapper): Update.
2872         (dump_function_to_file): Update.
2873         * ipa-struct-reorg.c (build_data_structure): Update.
2874         * cfgrtl.c (print_rtl_with_bb): Update.
2875         * reload1.c (reload): Update.
2876         (reload): Update.
2877         * config/i386/i386.c (setup_incoming_varargs_64,
2878         ix86_compute_frame_layout): Update.
2879         * config/arc/arc.c (arc_output_function_epilogue): Update.
2880
2881 2008-04-18  Marius Strobl <marius@FreeBSD.org>
2882
2883         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
2884         for FreeBSD as well.
2885         * gthr-posix95.h: Likewise.
2886
2887 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
2888
2889         PR rtl-optimization/35838
2890         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
2891         out the byte offset of the first subreg.
2892
2893 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
2894
2895         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
2896         to split_ti instead of three separate calls with single member arrays.
2897         (subti3 splitter): Ditto.
2898         (adddi3 splitter): Ditto with split_di.
2899         (subdi3 splitter): Ditto.
2900         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
2901         two separate calls with single member arrays.  Swap match_dup
2902         operands 1 and 2 to better fit into the array.
2903         (negdi2 splitter): Ditto with split_di.
2904         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
2905         two separate calls with single member arrays.  Swap match_dup operands
2906         6 and 7 to better fit into the array.
2907
2908 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
2909
2910         * config/i386/i386.c (sse_builtin_type): New.
2911         (bdesc_sse_args): Likewise.
2912         (bdesc_sse_3arg): Removed.
2913         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
2914         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
2915         IX86_BUILTIN_ROUNDPS.
2916         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
2917         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
2918         IX86_BUILTIN_ROUNDPS.
2919         (ix86_expand_sse_4_operands_builtin): Removed.
2920         (ix86_expand_sse_operands_builtin): New.
2921         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
2922         and CODE_FOR_sse4_1_roundps.
2923         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
2924         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
2925
2926 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
2927
2928         PR target/35907
2929         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
2930         regs before frame pop when needed.  If use_backchain_to_restore_sp
2931         then load backchain into a temp reg to restore vr and vrsave.  Add
2932         code to restore vr after frame pop if possible.
2933
2934 2008-04-17  Richard Guenther  <rguenther@suse.de>
2935
2936         * tree-vn.c (expressions_equal_p): Do not check type
2937         equality or compatibility before calling operand_equal_p.
2938         * fold-const.c (operand_equal_p): Check equivalence of
2939         integer constants before bailing out due to signedness or
2940         precision differences.
2941         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
2942         spurious differences in type qualification.  Ignore types
2943         for COMPONENT_REFs at all.
2944
2945 2008-04-17  Christian Bruel  <christian.bruel@st.com>
2946
2947         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
2948         msw_skip comparison.
2949         
2950 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
2951
2952         PR c/35739
2953         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
2954         reg type.
2955
2956         PR tree-optimization/35899
2957         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
2958         rather than TREE_OPERAND.
2959
2960 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
2961
2962         PR target/35944
2963         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
2964         temporary registers.  Change operand predicate to general_operand.
2965         (remainderxf3): Ditto.
2966
2967 2008-04-16  Richard Guenther  <rguenther@suse.de>
2968
2969         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
2970         * tree-affine.c (aff_combination_expand): Look through some
2971         conversions.
2972
2973 2008-04-15  Doug Kwan  <dougkwan@google.com>
2974
2975         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
2976         for hex printing.
2977         * tree-pretty-print.c (dump_generic_node): Ditto.
2978         * final.c (output_addr_const): Ditto.
2979         * dwarf2out.c (output_cfi): Ditto.
2980         * c-pretty-print.c (pp_c_integer_constant): Ditto.
2981         * print-rtl.c (print_rtx): Ditto.
2982         * print-tree.c (print_node_brief, print_node): Ditto.
2983         * c-common.c (match_case_to_enum_1): Ditto.
2984         * sched-vis.c (print_value): Ditto.
2985         * config/i386/i386.c (print_operand): Cast to long unsigned int
2986         for hex printing.
2987
2988 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
2989         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
2990         MS Windows VirtualProtect function.
2991
2992 2008-04-15  Jan Hubicka  <jh@suse.cz>
2993
2994         * gengtype.c (write_root): Param_is argument is OK.
2995         * expr.c (expand_expr_real_1): Update call of get_exception_*.
2996         * function.h: Include varray.h
2997         (rtl_eh): New stucture based on except.c one.
2998         (call_site_record): New forward declaration and vector type.
2999         * calls.c (emit_call_1): Do not call
3000         note_current_region_may_contain_throw.
3001         * except.c (eh_status): Remove cur_region, try_region since they are
3002         unused.
3003         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
3004         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
3005         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
3006         Remove call_site_data_used, call_site_data_size.
3007         Turn call_site_record into vector in function.h.
3008         (note_current_region_may_contain_throw): Remove.
3009         (get_exception_pointer, get_exception_filter): Do not take struct
3010         function argument; update.
3011         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
3012         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
3013         build_post_landing_pads, dw2_build_landing_pads,
3014         sjlj_assign_call_site_values, sjlj_mark_call_sites,
3015         sjlj_emit_function_enter, sjlj_emit_function_enter, 
3016         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
3017         sjlj_build_landing_pads, finish_eh_generation,
3018         remove_exception_handler_label, remove_eh_handler,
3019         maybe_remove_eh_handler, add_reachable_handler,
3020         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
3021         add_action_record, collect_one_action_chain, add_call_site,
3022         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
3023         sjlj_output_call_site_table, output_function_exception_table,
3024         * except.h (note_current_region_may_contain_throw): Remove
3025         (get_exception_pointer, get_exception_filter): Do not take struct
3026         function argument.
3027         * Makefile.in (GTFILES): Put varargs before struct function.
3028
3029 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
3030
3031         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
3032         punt for STRING_CST.
3033         (get_constraint_for): Deal with STRING_CST here instead.
3034
3035 2008-04-15  Richard Guenther  <rguenther@suse.de>
3036
3037         * tree-ssa-propagate.c (substitute_and_fold): Substitute
3038         statements in a basic-block with a backward walk.  Do not
3039         substitute into dead statements but instead remove those.
3040
3041 2008-04-15  Richard Guenther  <rguenther@suse.de>
3042
3043         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
3044         to zero, thus disable creation of SFTs.
3045
3046 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
3047
3048         * tree-predcom.c (suitable_reference_p): Return false if the
3049         reference can throw.
3050
3051 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
3052
3053         PR c/35751
3054         * c-decl.c (finish_decl): If extern or static var has variable
3055         size, set TREE_TYPE (decl) to error_mark_node.
3056
3057 2008-04-15  Rafael Espindola  <espindola@google.com>
3058
3059         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
3060         variable arg1.
3061
3062 2008-04-15  Richard Guenther  <rguenther@suse.de>
3063
3064         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
3065         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
3066         (visit_reference_op_load): Do walk vuse-vdef chains on
3067         vn_reference_lookup.
3068         (visit_reference_op_store): But do not here.
3069         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
3070         vn_reference_lookup.
3071         (vn_lookup_with_vuses): But do so here.
3072
3073 2008-04-14  Ian Lance Taylor  <iant@google.com>
3074
3075         * fold-const.c (fold_overflow_warning): Remove assertion.
3076
3077 2008-04-15  Ben Elliston  <bje@au.ibm.com>
3078
3079         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
3080         temp1 local variables.
3081
3082 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
3083
3084         PR target/35661
3085         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
3086         ".text.unlikely" section as executable.
3087
3088 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
3089
3090         * config/ia64/ia64.c (rtx_needs_barrier): Handle
3091         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
3092         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
3093         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
3094         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
3095         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
3096         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
3097
3098 2008-04-14  Ian Lance Taylor  <iant@google.com>
3099
3100         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
3101         * fold-const.c (fold_comparison): If appropriate, test
3102         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
3103         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
3104         reassociating a pointer type.
3105         * doc/invoke.texi (Optimize Options): Document that
3106         -fstrict-overflow applies to pointer wraparound.
3107
3108 2008-04-13  Jan Hubicka  <jh@suse.cz>
3109
3110         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
3111
3112 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
3113
3114         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
3115         we are going to "save the world".
3116
3117 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
3118
3119         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
3120         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
3121         operand 0 constraint, not "=".
3122
3123 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
3124
3125         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
3126
3127 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
3128
3129         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
3130         of size of positions_needed * CHAR_BIT.
3131
3132 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
3133
3134         PR middle-end/35897
3135         * dse.c (store_info): Change positions_needed to unsigned
3136         HOST_WIDE_INT.
3137         (lowpart_bitmask): New.
3138         (record_store): Cast to unsigned HOST_WIDE_INT for
3139         positions_needed.  Assert width <= size of positions_needed *
3140         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
3141         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
3142         lowpart_bitmask to set mask.
3143
3144 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
3145
3146         * config/bfin/constraints.md: New file.
3147         * config/bfin/bfin.md: Include it.
3148         (adddi3): Use satisfies_constraint functions instead of the old macros.
3149         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
3150         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
3151         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
3152         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
3153         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
3154         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
3155         EXTRA_CONSTRAINT): Delete.
3156         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
3157         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
3158         of the old macros.
3159         * config/bfin/bfin.c: Include "tm-constrs.h".
3160         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
3161         Use satisfies_constraint functions instead of the old macros.
3162         * doc/md.texi (Blackfin Constraints): Update file name reference.
3163
3164 2008-04-11  Richard Guenther  <rguenther@suse.de>
3165
3166         PR tree-optimization/35869
3167         * tree-vrp.c (execute_vrp): Move switch statement update after
3168         jump threading.  Schedule another cfg cleanup run.
3169
3170 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
3171
3172         PR c/35744
3173         * attribs.c (decl_attributes): Return early on errorneous node.
3174
3175 2008-04-10  Oleg Ryjkov  <olegr@google.com>
3176
3177         * tree.h (struct tree_base): Added a new flag default_def_flag.
3178         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
3179
3180 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
3181
3182         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
3183
3184 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3185
3186         PR target/35768
3187         * pa.md: Define mode iterator P.  Define mode attribute dwc.
3188         (dcacheflush): Update pattern to use iterator P and attribute dwc.
3189         (icacheflush): Likewise.
3190         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
3191         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
3192
3193 2008-04-11  Ben Elliston  <bje@au.ibm.com>
3194
3195         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
3196
3197 2008-04-10  Rafael Espindola  <espindola@google.com>
3198
3199         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
3200         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
3201         (extract_range_from_expr): The same.
3202
3203 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
3204
3205         * config/mips/mips.md (GPR2): New mode iterator.
3206         (seq): Add comment.
3207         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
3208         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
3209         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
3210         Rewrite these to take two modes, the mode of comparison and the
3211         mode of the destination.
3212         * config/mips/mips.c (mips_expand_scc): Instead of having
3213         paradoxical subreg as destination, expand "narrowing" scc if mode
3214         of comparison is SI and target is requested in DI mode.
3215         (mips_emit_int_order_test): Update comment.  Make mode of
3216         comparison match CMP0 rather than TARGET.  When creating inverse
3217         target use mode of TARGET.
3218
3219 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
3220
3221         * gcov-dump.c (tag_summary): Only print summaries for the first
3222         GCOV_COUNTERS_SUMMABLE counters.
3223
3224 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
3225
3226         * config/i386/i386.md (absneg): New code iterator.
3227         (absnegprefix): New code attribute.
3228         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
3229         patterns using absneg code iterator.
3230         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
3231         using absneg code iterator.
3232         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
3233         *neg<mode>2 patterns using absneg code iterator.
3234         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
3235         *negextendsfdf2 patterns using absneg code iterator.
3236         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
3237         *negextendsfxf2 patterns using absneg code iterator.
3238         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
3239         *negextendsfdf2 patterns using absneg code iterator.
3240         * config/i386/sse.md (<code><mode>2): Macroize expander from
3241         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
3242
3243 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
3244
3245         * config/s390/s390.h: Remove the remains of the recent search
3246         & replace action of current_function_outgoing_args_size.
3247
3248 2008-04-10  Ira Rosen  <irar@il.ibm.com>
3249
3250         PR tree-optimization/35821
3251         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
3252         NEW_STMT_LIST is not NULL.
3253
3254 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
3255
3256         PR libstdc++/35597
3257         * toplev.c (process_options): Remove -ffunction-sections debugging
3258         warning.
3259
3260 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
3261
3262         PR middle-end/PR28690
3263         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
3264         than gen_rtx_fmt_ee to perform more canonicalizations.
3265
3266 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3267
3268         PR driver/35665
3269         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
3270
3271 2008-04-09  Richard Guenther  <rguenther@suse.de>
3272
3273         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
3274         (dump_function_to_file): Dump function arguments with types.
3275
3276 2008-04-08  Richard Guenther  <rguenther@suse.de>
3277
3278         * fold-const.c (fold_widened_comparison): Do not allow
3279         sign-changes that change the result.
3280
3281 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
3282
3283         PR target/35839
3284         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
3285         kinds of indirect references.
3286
3287 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
3288
3289         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
3290         GNU Fortran language string.
3291
3292 2008-04-08  Rafael Espindola  <espindola@google.com>
3293
3294         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
3295         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
3296         * tree.h (tree_call_nonnegative_warnv_p): New.
3297
3298 2008-04-08  Jan Hubicka  <jh@suse.cz>
3299
3300         * function.c (free_after_compilation): Clear out regno_reg_rtx
3301         pointer.
3302
3303 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
3304
3305         Revert
3306         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
3307
3308         PR middle-end/PR28690
3309         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
3310         same precedence as REG_POINTER and MEM_POINTER operands.
3311
3312 2008-04-08  Richard Guenther  <rguenther@suse.de>
3313
3314         PR middle-end/35834
3315         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
3316         for adding index to base.
3317
3318 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
3319
3320         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
3321         (MINGW_ENABLE_EXECUTE_STACK): New.
3322         (IN_LIBGCC2): For libgcc include windows.h file for
3323         function declarations.
3324
3325 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
3326
3327         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
3328         and tem2 if tem1 is not a REG or MULT.
3329
3330 2008-04-08  Jan Hubicka  <jh@suse.cz>
3331
3332         * function.h (incomming_args): Break out of struct function.
3333         (function_subsections): Break out of struct function.
3334         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
3335         return_rtx and hard_reg_initial_vals from struct function.
3336         Kill inl_max_label_num.
3337         (current_function_pops_args, current_function_args_info,
3338         current_function_args_size, current_function_args_size,
3339         current_function_pretend_args_size,
3340         current_function_outgoing_args_size,
3341         current_function_internal_arg_pointer, current_function_return_rtx):
3342         Kill compatibility accestor macros.
3343         * builtins.c (expand_builtin_apply_args_1): Update.
3344         (expand_builtin_next_arg): Update.
3345         * df-scan.c (df_get_call_refs): Update.
3346         * dbxout.c (dbxout_function_end): Update.
3347         * dwarf2out.c (dwarf2out_switch_text_section): Update.
3348         (output_line_info): Update.
3349         (secname_for_decl): Update.
3350         (dwarf2out_var_location): Update.
3351         * function.c (free_after_compilation): Update.
3352         (assign_parm_find_stack_rtl): Update.
3353         (assign_parms): Update.
3354         (expand_dummy_function_end): Update.
3355         (expand_function_end): Update.
3356         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
3357         (expand_call): Update.
3358         (emit_library_call_value_1): Update.
3359         (store_one_arg): Update.
3360         * varasm.c (initialize_cold_section_name): Update.
3361         (unlikely_text_section): Update.
3362         (unlikely_text_section_p): Update.
3363         (assemble_start_function): Update.
3364         (assemble_end_function): Update.
3365         (default_section_type_flags): Update.
3366         (switch_to_section): Update.
3367         * integrate.c (set_decl_abstract_flags): Update.
3368         (get_hard_reg_initial_val): Update.
3369         (has_hard_reg_initial_val): Update.
3370         (allocate_initial_values): Update.
3371         * resource.c (init_resource_info): Update.
3372         * config/alpha/alpha.c (NUM_ARGS): Update.
3373         (direct_return): Update.
3374         (alpha_va_start): Update.
3375         (alpha_sa_size): Update.
3376         (alpha_initial_elimination_offset): Update.
3377         (alpha_expand_prologue): Update.
3378         (alpha_start_function): Update.
3379         (alpha_expand_epilogue): Update.
3380         (unicosmk_initial_elimination_offset):
3381         * config/alpha/alpha.md (call expander): Update.
3382         * config/s390/s390.c (s390_register_info): Update.
3383         (s390_register_info): Update.
3384         (s390_frame_info): Update.
3385         (s390_initial_elimination_offset): Update.
3386         (s390_build_builtin_va_list): Update.
3387         (s390_va_start): Update.
3388         * config/spu/spu.c (direct_return): Update.
3389         (spu_expand_prologue): Update.
3390         (spu_initial_elimination_offset): Update.
3391         (spu_build_builtin_va_list): Update.
3392         (spu_va_start): Update.
3393         * config/sparc/sparc.c (sparc_init_modes): Update.
3394         (sparc_compute_frame_size): Update.
3395         (function_value): Update.
3396         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
3397         * config/i386/i386.md (return expander): Update.
3398         * config/i386/i386.c (ix86_va_start): Update.
3399         (ix86_can_use_return_insn_p): Update.
3400         (ix86_compute_frame_layout): Update.
3401         (ix86_expand_epilogue): Update.
3402         * config/sh/sh.c (output_stack_adjust): Update.
3403         (calc_live_regs): Update.
3404         (sh_expand_prologue): Update.
3405         (sh_builtin_saveregs): Update.
3406         (sh_va_start): Update.
3407         (initial_elimination_offset): Update.
3408         (sh_allocate_initial_value): Update.
3409         (sh_function_ok_for_sibcall): Update.
3410         (sh_get_pr_initial_val): Update.
3411         * config/sh/sh.md (return expander): Update.
3412         * config/avr/avr.c (frame_pointer_required_p): UPdate.
3413         * config/crx/crx.c (crx_compute_frame): UPdate.
3414         (crx_initial_elimination_offset): UPdate.
3415         * config/xtensa/xtensa.c (compute_frame_size): Update
3416         (xtensa_builtin_saveregs): Update.
3417         (xtensa_va_start): Update.
3418         (order_regs_for_local_alloc): Update.
3419         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
3420         (xstormy16_expand_builtin_va_start): Update.
3421         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
3422         * config/m68hc11/m68hc11.md (return expanders): Update.
3423         * config/m68hc11/m68hc11.c (expand_prologue): Update.
3424         (expand_epilogue): Update.
3425         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
3426         (cris_simple_epilogue): Update.
3427         (cris_expand_prologue): Update.
3428         (cris_expand_epilogue): Update.
3429         * config/iq2000/iq2000.c (iq2000_va_start): Update.
3430         (compute_frame_size): Update.
3431         * config/mt/mt.c (mt_compute_frame_size): Update.
3432         * config/mn10300/mn10300.c (expand_prologue): Update.
3433         (expand_epilogue): Update.
3434         (initial_offset): Update.
3435         (mn10300_builtin_saveregs):
3436         * config/mn10300/mn10300.md (return expander): Update.
3437         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
3438         (ia64_initial_elimination_offset): Update.
3439         (ia64_initial_elimination_offset): Update.
3440         (ia64_expand_prologue): Update.
3441         * config/m68k/m68k.md (return expander): Update.
3442         * config/rs6000/rs6000.c (rs6000_va_start): Update.
3443         (rs6000_stack_info): Update.
3444         * config/mcore/mcore.c (layout_mcore_frame): Update.
3445         (mcore_expand_prolog): Update.
3446         * config/arc/arc.c (arc_compute_frame_size): Update.
3447         * config/score/score3.c (score3_compute_frame_size): Update.
3448         * config/score/score7.c (score7_compute_frame_size): Update.
3449         * config/arm/arm.c (use_return_insn): Update.
3450         (thumb_find_work_register): Update.
3451         (arm_compute_save_reg_mask): Update.
3452         (arm_output_function_prologue): Update.
3453         (arm_output_epilogue): Update.
3454         (arm_size_return_regs): Update.
3455         (arm_get_frame_offsets): Update.
3456         (arm_expand_prologue): Update.
3457         (thumb_exit): Update.
3458         (thumb_unexpanded_epilogue): Update.
3459         (thumb1_output_function_prologue): Update.
3460         * config/pa/pa.md (return expander): Update.
3461         * config/pa/pa.c (compute_frame_size): Update.
3462         (hppa_builtin_saveregs): Update.
3463         * config/mips/mips.c (mips_va_start): Update.
3464         (mips16_build_function_stub): Update.
3465         (mips_compute_frame_info): Update.
3466         (mips_restore_gp): Update.
3467         (mips_output_function_prologue): Update.
3468         (mips_expand_prologue): Update.
3469         * config/v850/v850.c (compute_frame_size): Update.
3470         (expand_prologue): * config/mmix/mmix.c (along): update.
3471         (mmix_initial_elimination_offset): update.
3472         (mmix_reorg): update.
3473         (mmix_use_simple_return): update.
3474         (mmix_expand_prologue): update.
3475         (mmix_expand_epilogue): Update.
3476         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
3477         (emit_link_insn): Update.
3478
3479 2008-04-08  Anatoly Sokolov <aesok@post.ru>
3480
3481         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
3482         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
3483         instructions.
3484         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
3485         atmega103 device.
3486
3487 2008-04-07  Jan Hubicka  <jh@suse.cz>
3488
3489         * function.h (rtl): Rename to x_rtl.
3490         (crtl): New define.
3491         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
3492         frame_offset, stack_check_probe_note, arg_pointer_save_area,
3493         used_temp_slots avail_temp_slots, temp_slot_level,
3494         nonlocal_goto_handler_labels): Update accesstors.
3495         (rtl): New global variable.
3496         (struct function): Move some fileds to rtl_data.
3497         (get_arg_pointer_save_area): Update prototype.
3498         * builtins.c (expand_builtin_setjmp_receiver): Update call of
3499         get_arg_pointer_save_area.
3500         * expr.c (init_expr): Update
3501         * function.c (get_frame_size): Update
3502         (assign_stack_local): Update
3503         (expand_function_end): Update.
3504         (get_art_pointer_save_area): Update
3505         * function.h 
3506         * emit-rtl.c (rtl): Declare.
3507         (regno_reg_rtx): Declare.
3508         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
3509         Update.
3510         (gen_reg_rtx): Update.
3511         * varasm.c (n_deferred_constatns): Update accestor.
3512         (init_varasm_status): Do not allocate varasm_status.
3513         (force_const_mem, get_pool_size, output_constant_pool): Update.
3514         * stmt.c (force_label_rtx): Do not use x_ prefixes.
3515         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
3516         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
3517         * sparc/sparc.h (INIT_EXPANDERS): Update.
3518         * ia64/ia64.h (INIT_EXPANDERS): Update.
3519
3520 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
3521
3522         * reload.c (push_secondary_reload): Add missing break to for loop.
3523
3524 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
3525
3526         PR middle-end/PR28690
3527         * rtlanal.c: Update copyright years.
3528         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
3529         as REG_POINTER and MEM_POINTER operands.
3530         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
3531         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
3532         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
3533         * gcse.c: Update copyright years.
3534         (pre_delete): Call gen_reg_rtx_and_attrs.
3535         (hoist_code): Likewise.
3536         (build_store_vectors): Likewise.
3537         (delete_store): Likewise.
3538         * loop-invariant.c (move_invariant_reg): Likewise.
3539         Update copyright years.
3540
3541 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
3542
3543         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
3544         control string instead of quoted.
3545
3546 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
3547
3548         * doc/rtl.texi: Rewrite of subreg section.
3549
3550 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
3551
3552         PR/35842
3553         * config/i386/i386.c (legitimize_pic_address): Add treating
3554         of dllimport SYM_REF's.
3555         (legitimize_dllimport_symbol): Add prototype.
3556
3557 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
3558
3559         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
3560         reference in constructor with non self-referential type.
3561
3562 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
3563
3564         Removal of Return with Depressed Stack Pointer support
3565         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
3566         (ECF_SP_DEPRESSED): Likewise.
3567         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
3568         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
3569         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
3570         (expand_call): Do not test ECF_SP_DEPRESSED.
3571         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
3572         * function.c (keep_stack_depressed): Delete.
3573         (handle_epilogue_set): Likewise.
3574         (update_epilogue_consts): Likewise.
3575         (emit_equiv_load): Likewise.
3576         (thread_prologue_and_epilogue_insns): Remove support for Return with
3577         Depressed Stack Pointer.
3578         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
3579
3580 2008-04-06  Richard Guenther  <rguenther@suse.de>
3581
3582         PR tree-optimization/35400
3583         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
3584         information from SSA_NAMEs.
3585
3586 2008-04-06  Anatoly Sokolov <aesok@post.ru>
3587
3588         * config/avr/avr.h (avr_mega_p): Remove declaration.
3589         (AVR_MEGA): Remove macro.
3590         * config/avr/avr.c (avr_mega_p): Remove variable.
3591         (avr_override_options): Remove inicializion of avr_mega_p.
3592         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
3593         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
3594         (avr_jump_mode): (Ditto.).
3595         (avr_output_progmem_section_asm_op): (Ditto.).
3596         (avr_asm_init_sections): (Ditto.).
3597         (avr_asm_init_sections): (Ditto.).
3598         (avr_rtx_costs): (Ditto.).
3599         * config/avr/avr.md: (Ditto.).
3600         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
3601         '__AVR_MEGA__'.
3602
3603 2008-04-06  Richard Guenther  <rguenther@suse.de>
3604
3605         PR tree-optimization/35842
3606         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
3607         is_gimple_invariant_address.
3608
3609 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3610
3611         * gcc.c (default_compilers): Sync Fortran extensions list with
3612         that in fortran/lang-specs.h.
3613         * doc/invoke.texi: Likewise.
3614         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
3615         * dwarf2out.c (gen_compile_unit_die): Likewise.
3616
3617 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
3618
3619         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
3620
3621 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
3622
3623         PR target/12329
3624         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
3625         attribute is used for nested functions.
3626
3627 2008-04-05  Jan Hubicka  <jh@suse.cz>
3628
3629         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
3630
3631         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
3632         letter argument.
3633         (dump_files): Update.
3634         (enable_rtl_dump_file): Do not accept letter argument.
3635         * tree-pass.h (dump_file_info): Remove letter argument.
3636         * toplev.c (decode_d_option): Update -da handling.
3637         * toplev.h (enable_rtl_dump_file): Update prototype.
3638         * passes.c (register_one_dump_file): Do not accept IPA argument; work
3639         it out based on pass type.
3640         (register_dump_files_1): Likewise.
3641         (init_optimization_passes): Update register_one_dump_file calls.
3642         (execute_one_pass): Sanity check that IPA passes are called at IPA
3643         level and RTL passes at RTL level.
3644         (execute_pass_list): IPA pass can not be after or subpass of
3645         GIMPLE/RTL pass.
3646         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
3647         disallov RTL subpasses of IPA subpasses.
3648
3649 2008-04-05  Ben Elliston  <bje@au.ibm.com>
3650
3651         * tree-cfg.c (need_fake_edge_p): Return false for calls to
3652         builtins that return exactly once and do not throw. Cache call to
3653         call_expr_flags.
3654
3655 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
3656
3657         PR rtl-optimization/34916
3658         PR middle-end/35519
3659         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
3660         between instruction pairs.
3661
3662 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
3663
3664         * doc/invoke.texi: Document -mbitops for SH.
3665         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
3666         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
3667         * config/sh/sh.c (print_operand): Add %t operand code.
3668         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
3669         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
3670         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
3671         (extendqihi2): Likewise.
3672         (movqi_i): Likewise.
3673         (insv): Use bset, bclr and bst instructions for SH2A if possible.
3674         (extv): Use bld instruction for SH2A if possible.
3675         (extzv): Likewise.
3676         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
3677         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
3678         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
3679         (bset.b, bclr.b): Define peepholes.
3680         * config/sh/sh.opt (mbitops): New option.
3681
3682 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
3683
3684         PR target/35620
3685         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
3686         and view convert expression.
3687
3688 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
3689
3690         PR target/35364
3691         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
3692
3693 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
3694
3695         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
3696
3697         * config/i386/cpuid.h (bit_AES): New.
3698         (bit_PCLMUL): Likewise.
3699
3700         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
3701         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
3702         SSE2 if AES or PCLMUL is enabled.
3703         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
3704         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
3705         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
3706         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
3707         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
3708         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
3709         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
3710         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
3711         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
3712         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
3713         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
3714         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
3715         __builtin_ia32_aeskeygenassist128 and
3716         __builtin_ia32_pclmulqdq128.
3717         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
3718         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
3719         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
3720
3721         * config/i386/i386.h (TARGET_AES): New.
3722         (TARGET_PCLMUL): Likewise.
3723         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
3724
3725         * config/i386/i386.md (UNSPEC_AESENC): New.
3726         (UNSPEC_AESENCLAST): Likewise.
3727         (UNSPEC_AESDEC): Likewise.
3728         (UNSPEC_AESDECLAST): Likewise.
3729         (UNSPEC_AESIMC): Likewise.
3730         (UNSPEC_AESKEYGENASSIST): Likewise.
3731         (UNSPEC_PCLMUL): Likewise.
3732
3733         * config/i386/i386.opt (maes): New.
3734         (mpclmul): Likewise.
3735
3736         * config/i386/sse.md (aesenc): New pattern.
3737         (aesenclast): Likewise.
3738         (aesdec): Likewise.
3739         (aesdeclast): Likewise.
3740         (aesimc): Likewise.
3741         (aeskeygenassist): Likewise.
3742         (pclmulqdq): Likewise.
3743
3744         * config/i386/wmmintrin.h: New.
3745
3746         * doc/extend.texi: Document AES and PCLMUL built-in function.
3747
3748         * doc/invoke.texi: Document -maes and -mpclmul.
3749
3750 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
3751
3752         * function.c (free_after_parsing): Replace with
3753         cxx_push_function_context from C++ front-end.
3754         (allocate_struct_function): Don't call langhook.
3755         * langhooks.h (struct lang_hooks_for_functions): Delete.
3756         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
3757         member "function".
3758         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
3759         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
3760         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3761         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
3762         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
3763         remove LANG_HOOKS_FUNCTION_INITIALIZER.
3764         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
3765
3766         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
3767         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
3768         
3769 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
3770
3771         PR c/35440
3772         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
3773         for all types.
3774
3775 2008-04-04  Richard Guenther  <rguenther@suse.de>
3776
3777         PR middle-end/35823
3778         * fold-const.c (optimize_minmax_comparison): Use the correct
3779         type for the constant in the simplified comparison.
3780
3781 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
3782
3783         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
3784         Pass L2 size as "--param l2-cache-size" to the compiler.
3785         (decode_l2_cache): New function to decode L2 cache parameters using
3786         0x8000006 extended cpuid function.
3787         (detect_caches_amd): Determine parameters of L2 cache using
3788         decode_l2_caches function.
3789         (decode_caches_intel): Decode L2 cache parameters.
3790         (detect_caches_intel): Determine L2 cache parameters using
3791         decode_caches_intel and decode_l2_caches functions.
3792
3793 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
3794
3795         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
3796         secondary input reload for subword loads from the constant pool.
3797
3798 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
3799
3800         PR target/35713
3801         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
3802           constants of the appropriate size for runtime calculations.
3803
3804         PR c/35712
3805         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
3806           decimal-float literal constant zero.
3807
3808 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
3809
3810         PR c/35738
3811         * c-parser.c (c_parser_omp_atomic): Call
3812         default_function_array_conversion on the RHS.
3813
3814         PR middle-end/35818
3815         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
3816         call is_variable_sized if decl has incomplete type.
3817
3818 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
3819
3820         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
3821
3822 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
3823
3824         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
3825         iterators.
3826         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
3827         (sgt<u>): Merge sgt and sgtu into new expander.
3828         (sgt, sgtu): Remove expanders.
3829         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
3830         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
3831         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
3832         *sgtu_<mode>_mips16 into new pattern.
3833         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
3834         (sge<u>): Merge sge and sgeu into new expander.
3835         (sge, sgeu): Remove expanders.
3836         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
3837         new pattern.
3838         (*sge_<mode>, second *sge_<mode>): Remove patterns.
3839         (slt<u>): Merge slt and sltu into new expander.
3840         (slt, sltu): Remove expanders.
3841         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
3842         (*slt_<mode>, *sltu_<mode>): Remove patterns.
3843         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
3844         *sltu_<mode>_mips16 into new pattern.
3845         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
3846         (sle<u>): Merge sle and sleu into new expander.
3847         (sle, sleu): Remove expanders.
3848         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
3849         (*sle_<mode>, *sleu_<mode>): Remove patterns.
3850         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
3851         *sleu_<mode>_mips16 into new pattern.
3852         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
3853
3854 2008-04-03  Jan Hubicka  <jh@suse.cz>
3855
3856         PR tree-optimization/35795
3857         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
3858         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
3859         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
3860         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
3861         * score/score3.c (score3_output_mi_thunk): Likewise.
3862         * score/score7.c (score7_output_mi_thunk): Likewise.
3863         * mips/mips.c (mips_output_mi_thunk): Likewise.
3864
3865 2008-04-03  Richard Guenther  <rguenther@suse.de>
3866
3867         * tree-vrp.c (extract_range_from_unary_expr): Handle all
3868         conversions.  Simplify code.
3869
3870 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
3871
3872         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
3873
3874 2008-04-03  Tom Tromey  <tromey@redhat.com>
3875             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3876
3877         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
3878         * config/bfin/t-bfin-linux (generated_files): Add
3879         linux-sysroot-suffix.h.
3880         * doc/install.texi (Prerequisites): Require make 3.80.
3881         * doc/sourcebuild.texi (Front End Directory): Document new
3882         variable.
3883         * Makefile.in (generated_files): New variable.
3884         (ALL_HOST_OBJS): New variable.
3885         ($(ALL_HOST_OBJS)): New target.
3886
3887 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
3888
3889         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
3890         (remap_block): Call id->transform_lang_insert_block instead
3891         of langhook.
3892         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
3893         Set id.transform_lang_insert_block to NULL.
3894         (clone_body): Move to cp/optimize.c
3895         * tree-inline.h (struct copy_body_data): Change
3896         transform_lang_insert_block to function pointer.
3897         (copy_generic_body, copy_decl_no_change): Export.
3898         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
3899         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
3900         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
3901
3902         * c-tree.h (insert_block): Kill.
3903         * c-decl.c (insert_block): Kill.
3904
3905 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
3906
3907         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
3908         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
3909         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
3910         argument.
3911         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
3912         argument, call {push,pop}_function_context from here.
3913         * c-parser.c: Use c_{push,pop}_function_context.
3914
3915         * function.c (push_function_context_to): Move meat ...
3916         (push_function_context): ... here.  Simplify.
3917         * function.c (pop_function_context_from): Move meat ...
3918         (pop_function_context): ... here.  Simplify.
3919         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
3920         leave_nested).
3921         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
3922         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
3923         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
3924         * tree.h (push_function_context_to, pop_function_context_from): Remove.
3925
3926 2008-04-03  Ben Elliston  <bje@au.ibm.com>
3927
3928         * expmed.c (extract_force_align_mem_bit_field): Remove.
3929
3930 2008-04-03  Richard Guenther  <rguenther@suse.de>
3931
3932         PR middle-end/35800
3933         * expr.h (try_casesi): Adjust prototype.
3934         * expr.c (try_casesi): Take fallback label as extra parameter.
3935         Use that for gen_casesi if default_label is NULL.
3936         * stmt.c (expand_case): Pass fallback label to try_casesi,
3937         make sure to fill gaps with a fallback label if default_label
3938         is not present.
3939
3940 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
3941
3942         PR target/35801
3943         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
3944
3945 2008-04-03  Ben Elliston  <bje@au.ibm.com>
3946
3947         * expmed.c (extract_split_bit_field): Remove if (0) code.
3948         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
3949         (do_ds_constraint): Likewise.
3950
3951 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
3952
3953         * doc/cppopts.texi (-dU): Document.
3954         * c-common.h (flag_dump_macros): Update comment.
3955         * c-opts.c (handle_OPT_d): Handle -dU.
3956         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
3957         dump_queued_macros, cb_used_define, cb_used_undef): New.
3958         (init_pp_output): Handle -dU.
3959         (cb_line_change): Call dump_queued_macros.
3960         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
3961
3962 2008-04-02  Anatoly Sokolov <aesok@post.ru>
3963
3964         * config/avr/predicates.md (io_address_operand): New predicate. 
3965         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
3966         * config/avr/avr.c (avr_io_address_p): Remove function.
3967         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
3968         'avr_io_address_p' function.
3969         (out_movhi_r_mr): (Ditto.).
3970         (out_movqi_mr_r): (Ditto.).
3971         (out_movhi_mr_r): (Ditto.).
3972         (avr_address_cost): (Ditto.).
3973
3974 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
3975
3976         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
3977         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
3978         in 32bit mode when XMM registers are available to avoid store
3979         forwarding stalls.
3980         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
3981         corresponding post-reload splitters.
3982
3983 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
3984
3985         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
3986         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
3987         __builtin_ia32_roundss.
3988         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
3989         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
3990         __builtin_ia32_roundss.
3991         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
3992         IX86_BUILTIN_SHUFPD here.
3993
3994 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
3995
3996         * config/i386/i386.md (plogic): New.
3997         (plogicprefix): Likewise.
3998
3999         * config/i386/mmx.md (mmx_<code><mode>3): New.
4000         (mmx_and<mode>3): Removed.
4001         (mmx_ior<mode>3): Likewise.
4002         (mmx_xor<mode>3): Likewise.
4003
4004         * config/i386/sse.md (<code><mode>3): New.
4005         (*<code><mode>3): Likewise.
4006         (*<code><mode>3): Likewise.
4007         (<code><mode>3): Likewise.
4008         (*sse_<code><mode>3): Likewise.
4009         (*sse2_<code><mode>3): Likewise.
4010         (<code>tf3): Likewise.
4011         (*<code>tf3): Likewise.
4012         (and<mode>3): Likewise.
4013         (*and<mode>3): Likewise.
4014         (ior<mode>3): Removed.
4015         (*ior<mode>3): Likewise.
4016         (xor<mode>3): Likewise.
4017         (*xor<mode>3): Likewise.
4018         (*and<mode>3): Likewise.
4019         (*ior<mode>3): Likewise.
4020         (*xor<mode>3): Likewise.
4021         (and<mode>3): Likewise.
4022         (*sse_and<mode>3): Likewise.
4023         (*sse2_and<mode>3): Likewise.
4024         (andtf3): Likewise.
4025         (*andtf3): Likewise.
4026         (ior<mode>3): Likewise.
4027         (*sse_ior<mode>3): Likewise.
4028         (*sse2_ior<mode>3): Likewise.
4029         (iortf3): Likewise.
4030         (*iortf3): Likewise.
4031         (xor<mode>3): Likewise.
4032         (*sse_xor<mode>3): Likewise.
4033         (*sse2_xor<mode>3): Likewise.
4034         (xortf3): Likewise.
4035         (*xortf3): Likewise.
4036
4037 2008-04-02  Richard Guenther  <rguenther@suse.de>
4038
4039         PR tree-optimization/14495
4040         PR tree-optimization/34793
4041         * tree-vrp.c (struct switch_update): New structure.
4042         (to_remove_edges, to_update_switch_stmts): New VECs.
4043         (simplify_switch_using_ranges): New function.  Remove not taken
4044         case labels and edges.
4045         (simplify_stmt_using_ranges): Call it.
4046         (identify_jump_threads): Mark edges we have queued for removal
4047         so we don't thread them.
4048         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
4049         case label vector.
4050         * tree-cfg.c (group_case_labels): Deal with missing default label.
4051         (tree_verify_flow_info): Allow missing default label.
4052         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
4053         (emit_case_nodes): Likewise.
4054         (expand_case): Do not rely on the default label to be present.
4055         * expr.c (try_casesi): Deal with NULL default_label.
4056         (do_tablejump): Likewise.
4057
4058 2008-04-02  Richard Guenther  <rguenther@suse.de>
4059
4060         PR tree-optimization/14495
4061         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
4062         SWITCH_EXPR here ...
4063         (vrp_visit_switch_stmt): ... but here (new function).
4064         (find_case_label_index): New helper function.
4065         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
4066
4067 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
4068
4069         * fwprop.c: Fix ISO-C99ism.
4070
4071 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
4072
4073         PR bootstrap/35752
4074         * Makefile.in (objdir): Set it here.
4075         * configure.ac: Not here.  Find dynamic linker characteristics.
4076         * exec-tool.in: Use them.
4077         * aclocal.m4: Regenerate.
4078         * configure: Regenerate.
4079
4080 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
4081
4082         * expr.c (expand_var): Delete it.
4083         * expr.h (expand_var): Delete prototype.
4084         * function.c (expand_function_start): Use expand_decl instead.
4085         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
4086         langhook.
4087
4088 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
4089
4090         PR rtl-optimization/35542
4091         * fwprop.c (forward_propagate_and_simplify): Replace
4092         loc_reg_mentioned_in_p with reg_mentioned_p.
4093
4094 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
4095
4096         PR rtl-optimization/35281
4097         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
4098         (propagate_rtx_1): Handle PR_HANDLE_MEM.
4099         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
4100         (varying_mem_p): Move above propagate_rtx.
4101         (all_uses_available_at): Do not check MEMs.
4102
4103 2008-04-02  Rafael Espindola  <espindola@google.com>
4104
4105         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
4106         (register_edge_assert_for_2): Split the cond argument.
4107         (register_edge_assert_for_1): Adjust for the change in
4108         register_edge_assert_for_2.
4109         (register_edge_assert_for): Split the cond argument.
4110         (find_switch_asserts): Adjust for the change in
4111         register_edge_assert_for.
4112
4113 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
4114
4115         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
4116         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
4117         offsets for 64-bit mingw.
4118         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
4119         abi for x86_64-pc-mingw.
4120
4121 2008-04-02  Richard Guenther  <rguenther@suse.de>
4122
4123         * tree-vrp.c (extract_range_from_assert): Make sure to not
4124         produce range min/max with TREE_OVERFOW set.
4125         If merging a anti-range and a range keep the anti-range if
4126         the range covers all values of the type.
4127         (register_edge_assert_for_2): Only allow sign-changing
4128         conversions in detecting canonical range checks.  Also
4129         register an assert for the unsigned name if useful.
4130
4131         PR tree-optimization/35787
4132         * tree-vrp.c (vrp_val_max): New function.
4133         (vrp_val_min): Likewise.
4134         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
4135         (vrp_val_is_min): Likewise.
4136         (supports_overflow_infinity): Use vrp_val_{min,max}.
4137         (negative_overflow_infinity): Likewise.
4138         (positive_overflow_infinity): Likewise.
4139         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
4140         (is_positive_overflow_infinity): Likewise.
4141         (is_overflow_infinity): Likewise.
4142         (avoid_overflow_infinity): Use vrp_val_{min,max} and
4143         vrp_val_is_{min,max}.
4144         (set_and_canonicalize_value_range): Canonicalize anti-ranges
4145         to ranges if possible.  Avoid empty ranges.
4146
4147 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4148
4149         PR middle-end/35705
4150         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
4151         the expression is a function address.
4152
4153 2008-04-01  George Helffrich  <george@gcc.gnu.org>
4154
4155         PR fortran/35154, fortran/23057
4156         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
4157         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
4158         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
4159         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
4160         in common.
4161         (dbxout_syms): Check for COMMON-based symbol and wrap in
4162         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
4163         in bracket for efficiency.
4164
4165         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
4166         using DW_TAG_common_block + member offset.
4167         (add_pubname_string): New function.
4168         (dw_expand_expr): New function to find block name and offset for
4169         COMMON var.
4170         (common_check): New function to check whether symbol in Fortran COMMON.
4171         (gen_variable_die): If COMMON, use DW_TAG_common_block.
4172
4173 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
4174
4175         PR c/35436
4176         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
4177
4178 2008-04-02  Ben Elliston  <bje@au.ibm.com>
4179
4180         * config/v850/v850.md (casesi): Remove if (0) code.
4181         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
4182         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
4183
4184 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
4185
4186         * config/i386/i386.md (rex64suffix): New mode attribute.
4187         (floathi<mode>2): Disable expander for SSE math.
4188         (*floathi<mode>2_1): New insn insn_and_split pattern.
4189         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
4190         corresponding post-reload splitters.
4191         (*floathi<mode>2_i387): New macroized insn pattern.
4192         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
4193         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
4194         insn_and_split pattern.
4195         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
4196         New macroized instruction patterns and corresponding post-reload
4197         splitters.
4198         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
4199         and corresponding post-reload splitters.
4200         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
4201         New macroized instruction patterns.
4202         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
4203         macroized instruction patterns and corresponding post-reload splitters.
4204         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
4205         corresponding post-reload splitters.
4206         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
4207         New macroized instruction patterns.
4208         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
4209         corresponding post-reload splitters.
4210         (*floatsi<mode>2_i387): New macroized instruction patterns.
4211
4212 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
4213
4214         * config/i386/i386.md (smaxmin): New.
4215         (umaxmin): Likewise.
4216         (maxminiprefix): Likewise.
4217         (maxminfprefix): Likewise.
4218         (<code><mode>3): Likewise.
4219         (smin<mode>3): Removed.
4220         (smax<mode>3): Likewise.
4221
4222         * config/i386/mmx.md (mmx_<code>v2sf3): New.
4223         (mmx_<code>v4hi3): Likewise.
4224         (mmx_<code>v8qi3): Likewise.
4225         (mmx_smaxv2sf3): Removed.
4226         (mmx_sminv2sf3): Likewise.
4227         (mmx_umaxv8qi3): Likewise.
4228         (mmx_smaxv4hi3): Likewise.
4229         (mmx_uminv8qi3): Likewise.
4230         (mmx_sminv4hi3): Likewise.
4231
4232         * config/i386/sse.md (<addsub><mode>3): New.
4233         (*<addsub><mode>3): Likewise.
4234         (<sse>_vm<addsub><mode>3): Likewise.
4235         (<maxmin><mode>3): Likewise.
4236         (*<maxmin><mode>3_finite): Likewise.
4237         (*<maxmin><mode>3): Likewise.
4238         (<sse>_vm<maxmin><mode>3): Likewise.
4239         (sse3_h<addsub>v4sf3): Likewise.
4240         (sse3_h<addsub>v2df3): Likewise.
4241         (<maxmin>v16qi3): Likewise.
4242         (*<maxmin>v16qi3): Likewise.
4243         (<maxmin>v8hi3): Likewise.
4244         (*<maxmin>v8hi3): Likewise.
4245         (*sse4_1_<maxmin><mode>3): Likewise.
4246         (*sse4_1_<maxmin><mode>3): Likewise.
4247         (add<mode>3): Removed.
4248         (*add<mode>3): Likewise.
4249         (<sse>_vmadd<mode>3): Likewise.
4250         (sub<mode>3): Likewise.
4251         (*sub<mode>3): Likewise.
4252         (<sse>_vmsub<mode>3): Likewise.
4253         (smin<mode>3): Likewise.
4254         (*smin<mode>3_finite): Likewise.
4255         (*smin<mode>3): Likewise.
4256         (<sse>_vmsmin<mode>3): Likewise.
4257         (smax<mode>3): Likewise.
4258         (*smax<mode>3_finite): Likewise.
4259         (*smax<mode>3): Likewise.
4260         (<sse>_vmsmax<mode>3): Likewise.
4261         (sse3_haddv4sf3): Likewise.
4262         (sse3_haddv2df3): Likewise.
4263         (sse3_hsubv4sf3): Likewise.
4264         (sse3_hsubv2df3): Likewise.
4265         (umaxv16qi3): Likewise.
4266         (*umaxv16qi3): Likewise.
4267         (smaxv8hi3): Likewise.
4268         (*smaxv8hi3): Likewise.
4269         (*sse4_1_smax<mode>3): Likewise.
4270         (*sse4_1_umax<mode>3): Likewise.
4271         (uminv16qi3): Likewise.
4272         (*uminv16qi3): Likewise.
4273         (sminv8hi3): Likewise.
4274         (*sminv8hi3): Likewise.
4275         (*sse4_1_smin<mode>3): Likewise.
4276         (*sse4_1_umin<mode>3): Likewise.
4277
4278 2008-04-01  Rafael Espindola  <espindola@google.com>
4279
4280         * tree-cfg.c (verify_expr): remove in_phi.
4281         (verify_stmt): Don't call walk_tree with verify_expr. Use
4282         is_gimple_min_invariant instead of is_gimple_val.
4283
4284 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
4285
4286         * doc/include/gpl_v3.texi: Update for manpage generation.
4287         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
4288         gpl.texi.
4289         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
4290         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
4291         gpl_v3.texi instead of gpl.texi.
4292         (gpl.pod): New.
4293
4294 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
4295
4296         PR pch/13675
4297         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
4298
4299 2008-04-01  Rafael Espindola  <espindola@google.com>
4300
4301         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
4302         (extract_code_and_val_from_cond): Use
4303         extract_code_and_val_from_cond_with_ops.
4304
4305 2008-04-01  Jan Hubicka  <jh@suse.cz>
4306
4307         * function.c (free_after_compilation): Free epilogue_delay_list.
4308         (prepare_function_start): Assert that previous compilation was freed.
4309
4310 2008-04-01  Jan Hubicka  <jh@suse.cz>
4311             Jim Wilson  <wilson@tuliptree.org>
4312             Andreas Tobler <andreast@gcc.gnu.org>
4313
4314         PR middle-end/35781
4315         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
4316         rtl.emit instead cfun->emit.
4317         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
4318         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
4319
4320 2008-04-01  Ben Elliston  <bje@au.ibm.com>
4321
4322         * doc/c-tree.texi (Function Basics): Fix grammatical error.
4323
4324 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
4325
4326         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
4327         New options
4328         (fprofile-use): Add var flag_profile_use
4329         * coverage.c (coverage_begin_output): Do not open a gcno file for
4330         output only if -ftest-coverage is set.
4331         Do not add getpwd() to gcda file path.
4332         (build_gcov_info): Check the new flag
4333         flag_profile_datafile_relative_path.
4334         (coverage_init): Use profile_data_prefix.
4335         Read profile counter only if flag_profile_use is set.
4336         * opts.c (common_handle_option): New option fprofile-use=,
4337         fprofile-dir=, fprofile-generate=.
4338         * toplev.c (profile_data_prefix): New variable definition.
4339         * toplev.h (profile_data_prefix): New declaration.
4340         * doc/invoke.tex (Option Summary, Optimization Options):
4341         Add new options.
4342
4343 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
4344
4345         * varasm.c (output_constant_pool_1): In LABEL_REF check,
4346         use tmp consistently.
4347
4348         PR target/35695
4349         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
4350         * config/ia64/ia64.c (rtx_needs_barrier): Handle
4351         UNSPEC_FR_RECIP_APPROX_RES.
4352         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
4353
4354 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
4355
4356         PR c/35750
4357         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
4358
4359 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4360
4361         PR middle-end/30186
4362         * fold-const.c (fold_indirect_ref_1): Support accessing non first
4363         element of the vector via a pointer.
4364
4365 2008-03-31  Ian Lance Taylor  <iant@google.com>
4366
4367         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
4368
4369 2008-03-31  Jan Hubicka  <jh@suse.cz>
4370
4371         * builtins.c (expand_builtin_setjmp_receiver): Update call of
4372         get_arg_pointer_save_area.
4373         * expr.c (init_expr): Just clear out rtl.expr.
4374         * function.c (free_after_compilation): Clear out whole RTL structure.
4375         (get_func_frame_size): Merge into ...
4376         (get_frame_size): ... this one.
4377         (assign_stack_local_1): Merge into ...
4378         (assign_stack_local): ... this one.
4379         (expand_function_end): Update call of get_arg_pointer_save_area.
4380         (get_art_pointer_save_area): Remove cfun argument.
4381         * function.h (emit_status): regno_pointer_align does not need length
4382         attribute. Move x_regno_reg_rtx to ...
4383         (regno_reg_rtx): ... new global array.
4384         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
4385         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
4386         apply_args_value, forced_labels, stack_pointer_delta):
4387         Update accestors.
4388         (struct varasm_status): Move here from varasm.c
4389         (struct rtl_data): New. Move here some fields from struct function.
4390         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
4391         frame_offset, stack_check_probe_note, arg_pointer_save_area,
4392         used_temp_slots avail_temp_slots, temp_slot_level,
4393         nonlocal_goto_handler_labels): Update accesstors.
4394         (rtl): New global variable.
4395         (struct function): Move some fileds to rtl_data.
4396         (get_arg_pointer_save_area): Update prototype.
4397         * emit-rtl.c (rtl): Declare.
4398         (regno_reg_rtx): Declare.
4399         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
4400         Update.
4401         (gen_reg_rtx): Update.
4402         (init_virtual_regs): Do not tate emit_status argument.
4403         (init_emit): Do not allocate emit.
4404         * varasm.c (varasm_statuc): Move to function.h.
4405         (n_deferred_constatns): Update accestor.
4406         (init_varasm_status): Do not allocate varasm_status.
4407         (force_const_mem, get_pool_size, output_constant_pool): Update.
4408         * stmt.c (force_label_rtx): Do not use x_ prefixes.
4409         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
4410
4411 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
4412
4413         PR rtl-optimization/35729
4414         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
4415         references.
4416
4417 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
4418
4419         PR target/32000
4420         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
4421         load/store if memory is unaligned.
4422         (*movti_rex64): Likewise.
4423
4424         * config/i386/predicates.md (misaligned_operand): New.
4425
4426 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
4427
4428         PR tree-opt/35431
4429         * tree-ssa-phiopt.c (conditional_replacement): Return early for
4430         complex types.
4431
4432 2008-03-31  Jan Beulich  <jbeulich@novell.com>
4433
4434         * config/ia64/constraints.md: Add 'j' constraint.
4435         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
4436         (movdi_internal): Likewise.
4437
4438 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
4439
4440         PR c/35748
4441         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
4442
4443 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
4444
4445         PR target/35757
4446         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
4447         proper error message for the third argument on blendpd and
4448         blendps.
4449
4450         * config/i386/sse.md (blendbits): New.
4451         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
4452
4453 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
4454
4455         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
4456
4457 2008-03-30  Richard Guenther  <rguenther@suse.de>
4458
4459         PR middle-end/31023
4460         * fold-const.c (fold_sign_changed_comparison): Do leave
4461         conversions to base-types alone.
4462
4463 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4464
4465         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
4466         the link register if one altivec register is be saved.
4467
4468 2008-03-30  Ben Elliston  <bje@au.ibm.com>
4469
4470         * final.c (final_scan_insn): Remove if (0) code.
4471
4472 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
4473
4474         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
4475
4476 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
4477
4478         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
4479         of V4SFmode to ix86_binary_operator_ok.
4480
4481 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
4482
4483         * config/i386/i386.c (override_options): Initialize
4484         ix86_veclib_handler to ix86_veclibabi_svml when
4485         -mveclibabi=svml is used.
4486         (ix86_veclibabi_svml): New function for SVML ABI style
4487         vectorization support.
4488         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
4489
4490 2008-03-28  Rafael Espindola  <espindola@google.com>
4491
4492         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
4493         (tree_binary_nonnegative_warnv_p): Make it public.
4494         (tree_single_nonnegative_warnv_p): Make it public.
4495         (tree_invalid_nonnegative_warnv_p): Make it public.
4496         (tree_unary_nonzero_warnv_p): Make it public.
4497         (tree_binary_nonzero_warnv_p): Make it public
4498         (tree_single_nonzero_warnv_p): Make it public.
4499         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
4500         (extract_range_from_binary_expr): Split the expr argument.
4501         (extract_range_from_unary_expr): Split the expr argument.
4502         (extract_range_from_comparison): Split the expr argument.
4503         (extract_range_from_expr): Use the new aux functions.
4504         (vrp_evaluate_conditional_warnv): Use
4505         vrp_evaluate_conditional_warnv_with_ops.
4506         * tree.h (tree_unary_nonzero_warnv_p): Declare.
4507         (tree_binary_nonzero_warnv_p): Declare.
4508         (tree_single_nonzero_warnv_p): Declare.
4509         (tree_expr_nonzero_warnv_p): Declare.
4510         (tree_unary_nonnegative_warnv_p): Declare.
4511         (tree_binary_nonnegative_warnv_p): Declare.
4512         (tree_single_nonnegative_warnv_p): Declare.
4513         (tree_invalid_nonnegative_warnv_p): Declare.
4514
4515 2008-03-28  Richard Guenther  <rguenther@suse.de>
4516
4517         PR tree-optimization/30317
4518         PR tree-optimization/30911
4519         PR tree-optimization/34793
4520         * tree-vrp.c (set_and_canonicalize_value_range): New function.
4521         (struct assert_locus_d): New member EXPR.
4522         (register_new_assert_for): Add EXPR parameter to support
4523         ASSERT_EXPR <name, expr OP limit>.
4524         (register_edge_assert_for_1): Adjust callers.
4525         (find_assert_locations): Likewise.
4526         (process_assert_insertions_for): Build condition from expression.
4527         (extract_range_from_assert): Handle ASSERT_EXPRs
4528         of the form ASSERT_EXPR <name, expr OP limit>.
4529         (register_edge_assert_for_2): New helper registering
4530         asserts for comparisons.  Recognize range tests of the form
4531         (unsigned)i - CST1 OP CST2.
4532         (register_edge_assert_for_1): Use it.
4533         (register_edge_assert_for): Likewise.
4534         (needs_overflow_infinity): Integer sub-types
4535         do not need overflow infinities.
4536         (vrp_val_is_max): The extreme values of integer sub-types
4537         are those of the base type.
4538         (vrp_val_is_min): Likewise.
4539         * tree.def (ASSERT_EXPR): Document extra allowed conditional
4540         expressions.
4541
4542 2008-03-28  Nick Clifton  <nickc@redhat.com>
4543
4544         PR target/31110
4545         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
4546         Return GENERAL_REGS for stack adjustment reloads.
4547
4548 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4549
4550         PR target/31334
4551         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
4552         const_vector when all the vectors are constant.
4553
4554 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
4555
4556         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
4557         comparisons.
4558         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
4559         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
4560         (scc_sf): New.
4561         (s<code>_sf): Use new scc_sf attribute for opcode names.
4562
4563 2008-03-27  Tom Tromey  <tromey@redhat.com>
4564
4565         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
4566         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
4567         config/spu/t-spu-elf, config/i386/t-interix,
4568         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
4569         config/i386/x-darwin, config/i386/x-mingw32,
4570         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
4571         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
4572         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
4573         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
4574         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
4575         config/rs6000/x-darwin, config/rs6000/t-rs6000,
4576         config/score/t-score-elf, config/arm/t-strongarm-pe,
4577         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
4578         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
4579         Revert automatic dependency patch.
4580
4581 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
4582
4583         PR target/35657
4584         * config/i386/i386.c (ix86_function_arg_boundary): Align
4585         decimal floating point to its natural boundary.
4586
4587 2008-03-27  Richard Guenther  <rguenther@suse.de>
4588
4589         PR middle-end/35716
4590         * fold-const.c (fold_comparison): Restrict distinct decl
4591         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
4592         solely rely on operand_equal_p.
4593
4594 2008-03-27  Richard Guenther  <rguenther@suse.de>
4595
4596         PR c/32511
4597         * c-common.c (handle_weak_attribute): Reject combination of
4598         weak and inline.
4599
4600 2008-03-27  Richard Guenther  <rguenther@suse.de>
4601
4602         PR tree-optimization/32810
4603         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
4604         conversions from DECL_INITIAL.
4605         (fold_const_aggregate_ref): Likewise from constructor elements.
4606
4607 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
4608
4609         * tree-affine.h (aff_combination_expand): Declare.
4610         (get_inner_reference_aff): Likewise.
4611         * tree-affine.c (aff_combination_expand): Split out from
4612         tree_to_aff_combination_expand.
4613         (get_inner_reference_aff): New function.
4614         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
4615         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
4616         (struct lim_aux_data): sm_done field removed.
4617         (mem_ref_loc_p, mem_ref_locs_p): New types.
4618         (struct mem_ref): Added id, stored, accesses_in_loop,
4619         indep_loop, dep_loop, indep_ref, dep_ref fields.
4620         Removed is_stored, locs and next fields.
4621         (memory_accesses): New variable.
4622         (movement_possibility): Do not allow moving statements
4623         that store to memory.
4624         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
4625         New functions.
4626         (determine_max_movement): For statements with memory references,
4627         find the outermost loop in that the reference is independent.
4628         (move_computations_stmt): Mark the virtual operands for renaming.
4629         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
4630         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
4631         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
4632         add_vop_ref_mapping, create_vop_ref_mapping_loop,
4633         create_vop_ref_mapping, analyze_memory_references,
4634         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
4635         get_all_locs_in_loop, ref_always_accessed_p,
4636         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
4637         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
4638         store_motion_loop, store_motion): New functions.
4639         (struct vop_to_refs_elt): New type.
4640         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
4641         memref_hash, memref_eq, hoist_memory_references): Rewritten.
4642         (schedule_sm): Replaced by...
4643         (execute_sm): ... this.
4644         (determine_lsm_ref, hoist_memory_references,
4645         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
4646         find_more_ref_vops, free_mem_ref, free_mem_refs,
4647         determine_lsm_loop, determine_lsm): Removed.
4648         (tree_ssa_lim_finalize): Free data structures used by store motion.
4649         (tree_ssa_lim): Call analyze_memory_references.  Use
4650         store_motion instead of determine_lsm.
4651
4652 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
4653
4654         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
4655         rename tmake_file to m68hc11/t-m68hc11.
4656         (mcore): Set inhibit_libc to true.
4657         * config.host (alpha*-dec-*vms*): Set extra_programs.
4658         (interix3*): Don't use host_xmake_file.
4659         * configure.ac: Let config.gcc override inhibit_libc.
4660         * configure: Regenerate.
4661
4662         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
4663         * config/t-openbsd-thread: Remove commented out lines.
4664         
4665         * config/x-interix: Remove.
4666
4667         * config/m68hc11/t-m68hc11-gas: Rename to...
4668         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
4669
4670         * config/mcore/t-mcore: Remove T_CFLAGS.
4671         * config/mcore/t-mcore-pe: Likewise.
4672
4673 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
4674
4675         * configure.ac: Replace custom __GNU_SOURCE test with
4676         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
4677         * aclocal.m4: Regenerate.
4678         * configure: Regenerate.
4679         * config.in: Regenerate.
4680
4681 2008-03-27  Richard Guenther  <rguenther@suse.de>
4682
4683         * fold-const.c (target.h): Include.
4684         (fold_comparison): Fold comparison of addresses of decls
4685         that bind locally or of constants.  Consolidate address folding code.
4686         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
4687         results from fold_binary_to_constant.
4688         (compare_values_warnv): Likewise.
4689
4690 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
4691
4692         PR middle-end/35429
4693         * fold-const.c (fold_truthop): Check for integeral types when folding
4694         a == 0 && b == 0 and a != 0 || b != 0 .
4695
4696 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
4697
4698         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
4699
4700 2008-03-26  Andreas Schwab  <schwab@suse.de>
4701
4702         * doc/invoke.texi: Fix use of @item vs. @itemx.
4703
4704 2008-03-26  Tom Tromey  <tromey@redhat.com>
4705
4706         * Makefile.in (build/gensupport.o, build/print-rtl.o,
4707         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
4708         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
4709         build/gencodes.o, build/genconditions.o, build/genconfig.o,
4710         build/genconstants.o, build/genemit.o, build/genextract.o,
4711         build/genflags.o, build/genmddeps.o, build/genopinit.o,
4712         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
4713         options.h.
4714
4715 2008-03-26  Richard Guenther  <rguenther@suse.de>
4716
4717         Revert
4718         2008-03-26  Richard Guenther  <rguenther@suse.de>
4719
4720         * fold-const.c (target.h): Include.
4721         (fold_comparison): Fold comparison of addresses of two decls
4722         that bind locally.  Consolidate address folding code.
4723
4724 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4725
4726         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
4727         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
4728         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
4729         dconstsqrt2, dconstthird, dconste and/or dconst10.
4730         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
4731         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
4732         dconstsqrt2, dconste): Delete.
4733         (init_emit_once): Likewise.  Simplify initializing dconstm1.
4734         Constify variable.
4735         * real.c (get_real_const): New.
4736         * real.h (dconst3, dconst10, dconstm2, dconstthird,
4737         dconstsqrt2, dconste): Delete.
4738         (real_value_const, get_real_const): New.
4739
4740 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
4741
4742         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
4743
4744         * config/i386/i386.c (ix86_function_arg_boundary): Check
4745         BIGGEST_ALIGNMENT instead of 128.
4746         (setup_incoming_varargs_64): Likewise.
4747
4748 2008-03-26  Tom Tromey  <tromey@redhat.com>
4749
4750         * Makefile.in (DEPFILES): Add missing '/'.
4751
4752 2008-03-26  Richard Guenther  <rguenther@suse.de>
4753
4754         * fold-const.c (target.h): Include.
4755         (fold_comparison): Fold comparison of addresses of two decls
4756         that bind locally.  Consolidate address folding code.
4757
4758 2008-03-26  Nick Clifton  <nickc@redhat.com>
4759
4760         PR target/31232
4761         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
4762         not allow INT+INT as a legitimate addressing mode.
4763
4764 2008-03-26  Richard Guenther  <rguenther@suse.de>
4765
4766         * tree-flow.h (widen_bitfield): Remove declaration.
4767         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
4768         (widen_bitfield): Remove function.
4769         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
4770         code.
4771
4772 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4773
4774         PR target/31558
4775         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
4776         error_mark_node's.
4777
4778 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
4779
4780         PR rtl-optimization/35232
4781         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
4782         (forget_old_reloads_1, forget_marked_reloads): Don't clear
4783         reg_reloaded_call_part_clobbered here.
4784         (reload_regs_reach_end_p): New function.
4785         (reload_reg_rtx_for_input): New variable.
4786         (reload_reg_rtx_for_output): Likewise.
4787         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
4788         when reassigning a pseudo register.  Load reloadreg from 
4789         reload_reg_rtx_for_input, moving the mode and register
4790         calculation to...
4791         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
4792         instead of the original when deciding whether an input reload
4793         would be a no-op or whether an output reload can be deleted.
4794         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
4795         when setting up new_spill_reg_store.  Load it from
4796         reload_reg_rtx_for_output, moving the mode and register
4797         calculation to...
4798         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
4799         instead of the original when deciding whether an output reload
4800         would be a no-op.  Do the same when modifying insn notes.
4801         Use rtx_equal_p instead of == to compare the registers.
4802         (inherit_piecemeal_p): Take a mode and two register numbers
4803         as argument.
4804         (emit_reload_insns): Clear new_spill_reg_store for every hard
4805         register in the reload register.  Remove spill registers
4806         from reg_reloaded_valid before considering whether to record
4807         inheritance information for them.  Use reload_reg_rtx_for_output
4808         instead of reg_rtx when recording output reloads.  Use
4809         reload_reg_rtx_for_input instead of reg_rtx when recording
4810         input reloads.  Set or clear reg_reloaded_call_part_clobbered
4811         at the same time as setting reg_reloaded_valid.
4812         (delete_output_reload): Add a new_reload_reg parameter and use it
4813         instead of rld[j].reg_rtx.
4814         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
4815         calls accordingly.
4816
4817 2008-03-25  Tom Tromey  <tromey@redhat.com>
4818
4819         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
4820         (build/genattr.o): Likewise.
4821         (build/genattrtab.o): Likewise.
4822         (build/gencodes.o): Likewise.
4823         (build/genconfig.o): Likewise.
4824         (build/genconstants.o): Likewise.
4825         (build/genemit.o): Likewise.
4826         (build/genextract.o): Likewise.
4827         (build/genflags.o): Likewise.
4828
4829 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
4830         
4831         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
4832         instead of size_int for integer types.
4833         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
4834         to match type of MINUS_EXPR.
4835         
4836 2008-03-25  Tom Tromey  <tromey@redhat.com>
4837
4838         * configure: Rebuilt.
4839         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
4840         Makefile.
4841
4842 2008-03-25  Tom Tromey  <tromey@redhat.com>
4843
4844         * config/x-solaris (host-solaris.o): Update.
4845         * config/x-linux (host-linux.o): Update.
4846         * config/x-hpux (host-hpux.o): Update.
4847         * config/x-darwin (host-darwin.o): Update.
4848         * config/v850/t-v850e (v850-c.o): Update.
4849         * config/v850/t-v850 (v850-c.o): Update.
4850         * config/t-vxworks (vxworks.o): Update.
4851         * config/t-sol2 (sol2-c.o, sol2.o): Update.
4852         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
4853         * config/spu/t-spu-elf (spu-c.o): Update.
4854         (spu.o): Remove.
4855         * config/sh/t-symbian (sh-c.o): Update.
4856         (symbian.o): Update.
4857         * config/sh/t-sh (sh-c.o): Update.
4858         * config/score/t-score-elf (score7.o, score3.o): Update.
4859         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
4860         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
4861         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
4862         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
4863         (rs6000.o): Remove.
4864         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
4865         * config/m32c/t-m32c (m32c-pragma.o): Update.
4866         * config/ia64/t-ia64 (ia64-c.o): Update.
4867         * config/i386/x-mingw32 (host-mingw32.o): Update.
4868         * config/i386/x-i386 (driver-i386.o): Update.
4869         * config/i386/x-darwin (host-i386-darwin.o): Update.
4870         * config/i386/x-cygwin (host-cygwin.o): Update.
4871         * config/i386/t-nwld (nwld.o): Update.
4872         * config/i386/t-netware (netware.o): Update.
4873         * config/i386/t-interix (winnt.o): Update.
4874         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
4875         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
4876         msformat-c.o): Update.
4877         * config/bfin/t-bfin-linux (generated_files): Add
4878         linux-sysroot-suffix.h.
4879         * config/arm/t-wince-pe (pe.o): Update.
4880         * config/arm/t-strongarm-pe (pe.o): Update.
4881         * config/arm/t-pe (pe.o): Update.
4882         * config/arm/t-arm (arm-c.o): Update.
4883         * doc/install.texi (Prerequisites): Require make 3.80.
4884         * Makefile.in: Remove .o targets.
4885         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
4886         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
4887         (simple_generated_h, simple_generated_c): Move earlier.
4888         (generated_files): New variable.
4889         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
4890         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
4891         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
4892         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
4893         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
4894         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
4895         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
4896         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
4897         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
4898         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
4899         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
4900         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
4901         (.c.o): Remove.
4902         (COMPILE.base, COMPILE): New variables.
4903         (%.o): New pattern rule.
4904         (ALL_HOST_OBJS): New variable.
4905         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
4906         (dummy-checksum.o, cc1-checksum.o): Remove.
4907         (DRIVER_SHLIB): New variable.
4908         (DRIVER_DEFINES): Use it.
4909         (gencondmd.c): Move out of build/.
4910         (s-conditions): Update.
4911         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
4912         (ALL_BUILD_OBJS): Likewise.
4913         (build/%.o): Use BUILDCOMPILE.
4914         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
4915         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
4916         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
4917         build/gencheck.o, build/gencodes.o, build/genconditions.o,
4918         build/genconfig.o, build/genconstants.o, build/genemit.o,
4919         build/genextract.o, build/genflags.o, build/genmddeps.o,
4920         build/genopinit.o, build/genoutput.o, build/genpeep.o,
4921         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
4922         build/gen-protos.o, build/scan.o, build/fix-header.o,
4923         build/scan-decls.o): Simplify.
4924         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
4925         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
4926         prefix.o, toplev.o): Reduce to variable setting.
4927         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
4928         ($(out_object_file), gcc-options.o): New targets.
4929         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
4930         * configure: Rebuilt.
4931         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
4932         * doc/sourcebuild.texi (Front End Directory): Document new variable.
4933
4934 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
4935
4936         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
4937         complain when we hit an error, return ERROR_MARK_NODE.
4938
4939 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
4940
4941         * config/sh/constraints.md (Pso, Psz): New constraints.
4942         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
4943         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
4944
4945 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
4946
4947         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
4948         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
4949
4950 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
4951
4952         * config/sh/sh.md (prefetch): Add condition for SH2A target.
4953         (prefetch_sh2a): New.   
4954
4955 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
4956             Naveen.H.S  <naveen.hs@kpitcummins.com>
4957
4958         * config/sh/constraints.md (I28): New constraint.
4959         * config/sh/sh.c (broken_move): Add support for movi20s.
4960         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
4961
4962 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
4963             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
4964             Naveen.H.S  <naveen.hs@kpitcummins.com>
4965
4966         * config/sh/sh.c (SH_ATTRIBUTES): Define.
4967         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
4968         (print_operand): Handle resbank in %@ operand code.
4969         (sh_encode_section_info): New.
4970         (push_regs): Add conditions for resbank.
4971         (sh_expand_epilogue): Likewise.
4972         (sh_insert_attributes): Likewise.
4973         (sh_attribute_table): Likewise.
4974         (sh_handle_resbank_handler_attribute): New.
4975         (sh2a_handle_function_vector_handler_attribute): New.
4976         (sh2a_is_function_vector_call): New.
4977         (sh2a_get_function_vector_number): New.
4978         (sh2a_function_vector_p): New.
4979         (sh_cfun_resbank_handler_p): New.
4980         * config/sh/sh.md (calli): Emit jsr/n if possible.
4981         (calli_tbr_rel): New.
4982         (calli_pcrel): Emit jsr/n if possible.
4983         (return_i): Emit rts/n if possible.
4984         (call_valuei_tbr_rel): New.
4985         (call_valuei_pcrel): Add condition for SH2A target.
4986         (call_value): Likewise.
4987         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
4988         (sh2a_get_function_vector_number): Likewise.
4989         (sh2a_is_function_vector_call): Likewise.
4990         * doc/extend.texi: Document TBR relative addressing of SH2A.
4991         (resbank): Add description for SH2A.
4992
4993 2008-03-24  Richard Guenther  <rguenther@suse.de>
4994
4995         PR c/22371
4996         * gimplify.c (gimplify_modify_expr): For frontend type-correct
4997         pointer assignments change conversions according to middle-end rules.
4998         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
4999         * configure.ac: Include type checking in yes.
5000         * configure: Regenerate.
5001
5002 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5003
5004         * diagnostic.c (diagnostic_count_diagnostic): Delete.
5005         (diagnostic_report_diagnostic): Update. Handle ICEs here.
5006         
5007 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
5008
5009         * gthr-vxworks.h (UNUSED): Define.
5010
5011 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
5012
5013         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
5014
5015 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
5016
5017         * doc/extend.texi (Function Attributes): Add missing comma in the
5018         example of the "alloc_size" attribute.
5019         
5020 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
5021
5022         Revert:
5023         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
5024
5025         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
5026         32bit host.
5027
5028         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
5029
5030         PR target/35496
5031         * stor-layout.c (update_alignment_for_field): Set minimum alignment
5032         of the underlying type of a MS bitfield layout to the natural
5033         alignment of the type.
5034
5035         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
5036
5037         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
5038         to their natural alignment to avoid store forwarding stalls.
5039
5040 2008-03-22  Richard Guenther  <rguenther@suse.de>
5041
5042         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
5043         For PHI nodes verify the address is invariant.
5044         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
5045         (get_symbol_constant_value): Use is_gimple_min_invariant.
5046         (maybe_fold_stmt_indirect): Likewise.
5047
5048 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
5049
5050         PR rtl-optimization/33927
5051         * Makefile.in (dse.o): Depend on $(TM_P_H).
5052         * expr.h (extract_low_bits): Declare.
5053         * expmed.c (extract_low_bits): New function.
5054         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
5055         * dse.c: Include tm_p.h.
5056         (find_shift_sequence): Remove the read_reg argument and return the
5057         read value.  Emit the instructions instead of returning them.
5058         Iterate on new_mode rather than calculating it each time.
5059         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
5060         source to NEW_MODE and extract_low_bits to convert the shifted
5061         value to READ_MODE.
5062         (replace_read): Allow the load and store to have different mode
5063         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
5064         or extraction instructions before trying the replacement.  Update
5065         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
5066
5067 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
5068
5069         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
5070         to their natural alignment to avoid store forwarding stalls.
5071
5072 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5073
5074         PR target/27946
5075         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
5076         encouraging but not allowing gprs for input;
5077         change the input constraint to !f#r.
5078         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
5079         gprs for output;
5080         change the output constraint to !f#r.
5081
5082 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
5083
5084         PR target/13958
5085         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
5086         corresponding post-reload splitters.
5087         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
5088         when x87 FP math is selected.
5089         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
5090         New function prototype.
5091         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
5092         unreachable function to ease macroization of insn patterns.
5093
5094 2008-03-21  Martin Jambor  <mjambor@suse.cz>
5095
5096         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
5097         reference dumps if ddr is NULL or dependence is unknown.
5098
5099 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
5100
5101         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
5102         unsigned extension into account.
5103         (ATOMIC_COMPARE_AND_SWAP): Likewise.
5104         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
5105         Do computations on a scratch register.
5106
5107 2008-03-21  Richard Guenther  <rguenther@suse.de>
5108
5109         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
5110         Use is_gimple_min_invariant instead of TREE_INVARIANT.
5111         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
5112         * tree-ssa-dom.c (record_equality): Likewise.
5113         * tree-inline.c (copy_body_r): Likewise.
5114         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
5115         TREE_INVARIANT.
5116
5117 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
5118
5119         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
5120         as 'delete_unused' argument.
5121
5122 2008-03-20  Richard Guenther  <rguenther@suse.de>
5123
5124         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
5125         special casing of constant qualifiers.
5126         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
5127         care about them in general.
5128         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
5129         regardless of their type.
5130         (fold_stmt_r): Forcefully fold *& if we end up with that.
5131
5132 2008-03-20  Paul Brook  <paul@codesourcery.com>
5133
5134         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
5135         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
5136         linker flags.
5137         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
5138         definition.
5139         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
5140         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
5141
5142 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
5143
5144         * common.opt (Wmudflap): New option.
5145         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
5146         (mx_register_decls): Likewise.
5147         (mudflap_finish_file): Likewise.
5148         * doc/invoke.texi: Document -Wno-mudflap.
5149
5150 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
5151
5152         * c-format.c (replace_format_name_to_system_name): New.
5153         (cmp_attribs): New.
5154         (convert_format_name_to_system_name): New.
5155         (decode_format_attr): Add use of convert_format_name_to_system_name.
5156         (format_types_orig): Add gnu_ prefix to names.
5157         (check_format_info_main): Special treating of \0 escaped names for
5158         supporting multi-character format specifiers as I32, I64.
5159         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
5160         (gnu_target_overrides_format_attributes): New.
5161         * c-format.h: Add structure target_ovr_attr to hold
5162         system specific formatter names.
5163         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
5164         msformat-c.o file to c_target_objs and cxx_target_objs.
5165         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
5166         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
5167         (TARGET_N_FORMAT_TYPES): New.
5168         * config/i386/msformat-c.c: New.
5169         * config/i386/t-cygming: Add build rule for msformat-c.o.
5170         * doc/extend.texi: Add new format names gnu_* and ms_* and
5171         further details.
5172         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
5173
5174 2008-03-20  Ira Rosen  <irar@il.ibm.com>
5175
5176         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
5177         optimizations turned on under -O3.
5178         (ftree-vectorize): Add that the flag is turned on with -O3.
5179
5180 2008-03-20  Ben Elliston  <bje@au.ibm.com>
5181
5182         * regmove.c (try_auto_increment): Fix spelling error in comment.
5183         * final.c (final_scan_insn): Likewise.
5184
5185 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
5186
5187         PR target/14552
5188         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
5189         allocator preferences for "y" and "r" class registers.
5190         ("*mov<mode>_internal"): Ditto.
5191         ("*movv2sf_internal_rex64"): Ditto.
5192         ("*movv2sf_internal"): Ditto.
5193
5194 2008-03-19  Michael Matz  <matz@suse.de>
5195
5196         PR middle-end/35616
5197         * calls.c (expand_call): Check overlap of arguments with call
5198         address for sibcalls.
5199
5200 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
5201
5202         PR target/35496
5203         * stor-layout.c (update_alignment_for_field): Set minimum alignment
5204         of the underlying type of a MS bitfield layout to the natural
5205         alignment of the type.
5206
5207 2008-03-19  Jan Hubicka  <jh@suse.cz>
5208
5209         PR other/35094
5210         * toplev.c (decode_d_option): Handle all CPP flags.
5211         * tree-vrp.c: Update tree_pass descriptors.
5212         * regrename.c: Update tree_pass descriptors.
5213         * fwprop.c: Update tree_pass descriptors.
5214         * doc/invoke.texi: Remove documentation of dropped -d? flags.
5215         * tree-into-ssa.c: Update tree_pass descriptors.
5216         * tree-dump.c: Update tree_pass descriptors.
5217         * tree-complex.c: Update tree_pass descriptors.
5218         * tree-dump.h: Update tree_pass descriptors.
5219         * see.c: Update tree_pass descriptors.
5220         * cgraphbuild.c: Update tree_pass descriptors.
5221         * tracer.c: Update tree_pass descriptors.
5222         * tree-loop-distribution.c: Update tree_pass descriptors.
5223         * cgraph.c: Update tree_pass descriptors.
5224         * postreload-gcse.c: Update tree_pass descriptors.
5225         * postreload.c: Update tree_pass descriptors.
5226         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
5227         * tree-tailcall.c: Update tree_pass descriptors.
5228         * tree-pass.h (tree_opt_pass): Rename to ...
5229         (opt_pass) ... this one; add "type" field and remove letter field.
5230         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
5231         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
5232         all_lowering_passes): Update declaration.
5233         * ipa-cp.c: Update tree_pass descriptors.
5234         * final.c: Update tree_pass descriptors.
5235         * omp-low.c: Update tree_pass descriptors.
5236         * tree-ssa-dse.c: Update tree_pass descriptors.
5237         * ipa-reference.c: Update tree_pass descriptors.
5238         * tree-ssa-uncprop.c: Update tree_pass descriptors.
5239         * auto-inc-dec.c: Update tree_pass descriptors.
5240         * reorg.c: Update tree_pass descriptors.
5241         * cgraphunit.c: Update tree_pass descriptors.
5242         * tree-ssa-copyrename.c: Update tree_pass descriptors.
5243         * tree-ssa-ccp.c: Update tree_pass descriptors.
5244         * df-core.c: Update tree_pass descriptors.
5245         * mode-switching.c: Update tree_pass descriptors.
5246         * tree-nomudflap.c: Update tree_pass descriptors.
5247         * modulo-sched.c: Update tree_pass descriptors.
5248         * ipa-pure-const.c: Update tree_pass descriptors.
5249         * cse.c: Update tree_pass descriptors.
5250         * web.c: Update tree_pass descriptors.
5251         * tree-stdarg.c: Update tree_pass descriptors.
5252         * tree-ssa-math-opts.c: Update tree_pass descriptors.
5253         * tree-ssa-dom.c: Update tree_pass descriptors.
5254         * tree-nrv.c: Update tree_pass descriptors.
5255         * tree-ssa-alias.c: Update tree_pass descriptors.
5256         * loop-init.c: Update tree_pass descriptors.
5257         * gimple-low.c: Update tree_pass descriptors.
5258         * ipa-inline.c: Update tree_pass descriptors.
5259         * tree-ssa-sink.c: Update tree_pass descriptors.
5260         * global.c: Update tree_pass descriptors.
5261         * ifcvt.c: Update tree_pass descriptors.
5262         * jump.c: Update tree_pass descriptors.
5263         * predict.c: Update tree_pass descriptors.
5264         * tree-ssa-loop.c: Update tree_pass descriptors.
5265         * recog.c: Update tree_pass descriptors.
5266         * dse.c: Update tree_pass descriptors.
5267         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
5268         * tree-eh.c: Update tree_pass descriptors.
5269         * regmove.c: Update tree_pass descriptors.
5270         * local-alloc.c
5271         * function.c: Update tree_pass descriptors.
5272         * tree-vectorizer.c: Update tree_pass descriptors.
5273         * gcse.c: Update tree_pass descriptors.
5274         * ipa-type-escape.c: Update tree_pass descriptors.
5275         * tree-if-conv.c: Update tree_pass descriptors.
5276         * init-regs.c: Update tree_pass descriptors.
5277         * ipa.c: Update tree_pass descriptors.
5278         * tree-ssa-phiopt.c: Update tree_pass descriptors.
5279         * rtl-factoring.c: Update tree_pass descriptors.
5280         * lower-subreg.c: Update tree_pass descriptors.
5281         * bt-load.c: Update tree_pass descriptors.
5282         * tree-dfa.c: Update tree_pass descriptors.
5283         * except.c: Update tree_pass descriptors.
5284         * emit-rtl.c: Update tree_pass descriptors.
5285         * cfgexpand.c: Update tree_pass descriptors.
5286         * tree-cfgcleanup.c: Update tree_pass descriptors.
5287         * cfgcleanup.c: Update tree_pass descriptors.
5288         * tree-ssa-pre.c: Update tree_pass descriptors.
5289         * tree-sra.c: Update tree_pass descriptors.
5290         * tree-mudflap.c: Update tree_pass descriptors.
5291         * tree-ssa-copy.c: Update tree_pass descriptors.
5292         * cfglayout.c: Update tree_pass descriptors.
5293         * tree-ssa-forwprop.c: Update tree_pass descriptors.
5294         * tree-ssa-dce.c: Update tree_pass descriptors.
5295         * tree-ssa.c: Update tree_pass descriptors.
5296         * regclass.c: Update tree_pass descriptors.
5297         * integrate.c: Update tree_pass descriptors.
5298         * tree-optimize.c: Update tree_pass descriptors.
5299         * tree-ssa-phiprop.c: Update tree_pass descriptors.
5300         * tree-object-size.c: Update tree_pass descriptors.
5301         * combine.c: Update tree_pass descriptors.
5302         * tree-outof-ssa.c: Update tree_pass descriptors.
5303         * bb-reorder.c: Update tree_pass descriptors.
5304         * stack-ptr-mod.c: Update tree_pass descriptors.
5305         * var-tracking.c: Update tree_pass descriptors.
5306         * tree-profile.c: Update tree_pass descriptors.
5307         * tree-vect-generic.c: Update tree_pass descriptors.
5308         * reg-stack.c: Update tree_pass descriptors.
5309         * sched-rgn.c: Update tree_pass descriptors.
5310         * tree-ssa-structalias.c: Update tree_pass descriptors.
5311         * tree-cfg.c: Update tree_pass descriptors.
5312         * passes.c (current_pass): Update declaration.
5313         (finish_optimization_passes): Update.
5314         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
5315         (register_one_dump_file, register_dump_files_1, next_pass_1):
5316         Update arguments.
5317         (init_optimization_passes): Update handling of new types.
5318         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
5319         * ipa-struct-reorg.c: Update tree_pass descriptors.
5320         * tree-ssa-reassoc.c: Update tree_pass descriptors.
5321         * combine-stack-adj.c: Update tree_pass descriptors.
5322         * cfgrtl.c: Update tree_pass descriptors.
5323         * dce.c: Update tree_pass descriptors.
5324         * tree-ssanames.c: Update tree_pass descriptors.
5325
5326 2008-03-19  Richard Guenther  <rguenther@suse.de>
5327
5328         PR middle-end/35609
5329         * tree-ssa.c (walk_data): New structure.
5330         (warn_uninitialized_var): If not always_executed warn with "maybe"
5331         instead of "is".
5332         (execute_early_warn_uninitialized): Compute post-dominators.
5333         Initialize always_executed before processing each basic block.
5334
5335 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
5336
5337         PR target/35504
5338         * config/i386/i386.c (x86_this_parameter): Calculate correct location
5339         of "this" pointer when "regparm = N" or "fastcall" is in effect.
5340
5341 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5342
5343         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
5344
5345 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
5346
5347         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
5348         is true.
5349         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
5350         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
5351         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
5352         target after ignore has been set, and move there also the commputation
5353         of subtarget and original_target.
5354         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
5355         (LANG_HOOKS_INITIALIZER): Remove it.
5356         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
5357
5358 2008-03-18  Richard Guenther  <rguenther@suse.de>
5359
5360         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
5361         found an expression with constants, note that in the VN for the lhs.
5362         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
5363         fold them to constants if possible.  Run cleanup_cfg if done so.
5364         (execute_pre): Return todo.
5365         (do_pre): Likewise.
5366         (execute_fre): Likewise.
5367         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
5368         of constants.
5369         (get_prop_source_stmt): Look through pointer conversions.
5370
5371 2008-03-18  Jan Hubicka  <jh@suse.cz>
5372
5373         * tree-pretty-print.c: Include predict.h.
5374         (dump_generic_node): Dump predictor.
5375         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
5376         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
5377         * gimple-low.c (lower_stmt): Likewise.
5378         * expr.c (expand_expr_real): Likewise.
5379         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
5380         them.
5381         (build_predict_expr, build_predict_expr): New.
5382         * predict.h (predictor_name, build_predict_expr): Update.
5383         * c-typeck.c (c_finish_bc_stmt): Add prediction.
5384         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
5385         * predict.def (PRED_CONTINUE): Update hitrate.
5386         * tree.def (PREDICT_EXPR): Define.
5387         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
5388         do not handle BIND_EXPR.
5389         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
5390         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
5391         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
5392         operands.
5393
5394 2008-03-18  Michael Matz  <matz@suse.de>
5395
5396         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
5397
5398 2008-03-18  Richard Guenther  <rguenther@suse.de>
5399
5400         * tree-gimple.h (is_gimple_invariant_address): Declare.
5401         (is_gimple_constant): Likewise.
5402         * tree-gimple.c (is_gimple_constant): New function.
5403         (is_gimple_invariant_address): Likewise.
5404         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
5405         and is_gimple_invariant_address.
5406         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
5407         previous change.
5408         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
5409         an addressable base.
5410
5411 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
5412
5413         PR middle-end/35611
5414         * gimplify.c (gimplify_expr): Gimplify second operand of
5415         OMP_ATOMIC_LOAD.
5416
5417 2008-03-17  Richard Guenther  <rguenther@suse.de>
5418
5419         PR tree-optimization/19637
5420         * fold-const.c (fold_unary): Remove restrictions of removing
5421         intermediate pointer-conversions (P2)(P1)P0.
5422         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
5423         conversion to void pointer.
5424         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
5425
5426 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
5427
5428         PR debug/31510
5429         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
5430         emulated thread local variables.
5431
5432 2008-03-16  Richard Guenther  <rguenther@suse.de>
5433
5434         PR middle-end/35607
5435         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
5436         expand TREE_INVARIANT operations that are not gimple invariant.
5437
5438 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
5439
5440         * doc/extend.texi (Alignment): Say that the ABI controls
5441         the __alignof__ for non-strict-alignment targets rather
5442         than being a recommendation.
5443
5444 2008-03-15  Paul Brook  <paul@codesourcery.com>
5445
5446         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
5447         annotations.
5448         (arm_output_fn_unwind): Mark functions that can not be unwound.
5449
5450 2008-03-15  Paul Brook  <paul@codesourcery.com>
5451
5452         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
5453         extension instructions.
5454
5455 2008-03-15  Richard Guenther  <rguenther@suse.de>
5456
5457         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
5458         and fold constant aggregate refs.
5459         (fold_const_aggregate_ref): Handle string constants
5460         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
5461         (evaluate_stmt): Simplify now that ccp_fold folds constant
5462         aggregate refs.
5463
5464 2008-03-15  Paul Brook  <paul@codesourcery.com>
5465
5466         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
5467         (extzv): Use gen_extzv_t2.
5468         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
5469
5470 2008-03-15  Richard Guenther  <rguenther@suse.de>
5471
5472         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
5473         (fold_const_aggregate_ref): Likewise.
5474         (get_value): Return NULL if we don't have any values.
5475         (ccp_finalize): Set const_val to NULL after freeing it.
5476         * tree-flow.h (get_symbol_constant_value): Declare.
5477         (fold_const_aggregate_ref): Likewise.
5478         * tree-ssa-sccvn.c (try_to_simplify): Use them.
5479
5480 2008-03-15  Richard Guenther  <rguenther@suse.de>
5481
5482         PR middle-end/35593
5483         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
5484         to not produce negative array indices if not allowed.  Add
5485         parameter to indicate that.
5486         (maybe_fold_offset_to_component_ref): Allow negative array
5487         indices only for the first member of a structure.
5488         (maybe_fold_offset_to_reference): Allow negative array indices.
5489         (maybe_fold_stmt_addition): Likewise.
5490
5491 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
5492             Anatoly Sokolov <aesok@post.ru>
5493
5494         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
5495         (avr_arch): Add ARCH_AVR6.
5496         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
5497         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
5498         instead of fixed value 2.
5499         (print_operand_address): Use gs() asm specifier instead of pm().
5500         (avr_assemble_integer): (Ditto.).
5501         (avr_output_addr_vec_elt): (Ditto.).
5502         (print_operand): Handle "!" code.
5503         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
5504         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
5505         (AVR_HAVE_EIJMP_EICALL): Define.
5506         (AVR_3_BYTE_PC): Redefine.
5507         (AVR_2_BYTE_PC): (Ditto.).
5508         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
5509         (LINK_SPEC): Add atmega2560 and atmega2561.
5510         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
5511         (crtm2561.o).
5512         * config/avr/avr.md (call_insn): Use eicall instead of icall 
5513         for 3 byte PC devices.
5514         (call_value_insn): (Ditto.).
5515         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
5516         (indirect_jump): Use only for for 2 byte PC devices.
5517         (*tablejump): (Ditto.).
5518         (*indirect_jump_avr6): Add insn.
5519         (*tablejump_rjmp): Don't use for 3 byte PC devices.
5520         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
5521         instead of ijmp for 3 byte PC devices.
5522         (__tablejump2__): (Ditto.).
5523         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
5524         (MULITLIB_DIRNAMES): (Ditto.). 
5525         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
5526
5527 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
5528
5529         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
5530         "sse2_umulsidi3".  Use V1DI mode for operand 0.
5531         ("mmx_psadbw"): Use V1DI mode for operand 0.
5532         * config/i386/i386-modes.def (V1SI): New vector mode.
5533         * config/i386/i386.c (struct builtin_description)
5534         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
5535         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
5536         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
5537         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
5538         v1di_ftype_v8qi_v8qi type.
5539         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
5540
5541         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
5542         __builtin_ia32_pmuludq]: Fix the mode of return value.
5543
5544 2008-03-15  Richard Guenther  <rguenther@suse.de>
5545
5546         PR middle-end/35595
5547         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
5548         being a PHI_NODE.
5549
5550 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
5551         
5552         * doc/invoke.texi (Option Summary, Xtensa Options): Document
5553         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
5554         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
5555         unless TARGET_SERIALIZE_VOLATILE is enabled.
5556         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
5557         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
5558         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
5559
5560 2008-03-14  Richard Guenther  <rguenther@suse.de>
5561
5562         PR tree-optimization/34172
5563         * tree-flow.h (refs_may_alias_p): Declare.
5564         (get_single_def_stmt): Likewise.
5565         (get_single_def_stmt_from_phi): Likewise.
5566         (get_single_def_stmt_with_phi): Likewise.
5567         * tree-dfa.c (refs_may_alias_p): New function.
5568         (get_single_def_stmt): Likewise.
5569         (get_single_def_stmt_from_phi): Likewise.
5570         (get_single_def_stmt_with_phi): Likewise.
5571         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
5572         (vn_reference_lookup_1): New helper function.
5573         (vn_reference_lookup): Walk the virtual use-def chain to
5574         continue searching for a match if the def does not alias the
5575         reference we are looking for.
5576
5577 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
5578
5579         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
5580         archive and Perzl.  Update The Written Word listing.
5581
5582 2008-03-14  Richard Guenther  <rguenther@suse.de>
5583
5584         PR tree-optimization/34043
5585         PR tree-optimization/33989
5586         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
5587         when doing FRE.
5588         (bitmap_find_leader): Use extra argument to verify dominance
5589         relationship inside a basic-block.
5590         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
5591         (find_leader_in_sets): Adjust.
5592         (create_component_ref_by_pieces): Take extra argument for
5593         dominance check, handle lookup failures.
5594         (find_or_generate_expression): Likewise.
5595         (create_expression_by_pieces): Likewise.
5596         (insert_into_preds_of_block): Adjust.
5597         (create_value_expr_from): If asked for, verify all operands
5598         are in the blocks AVAIL_OUT set.
5599         (make_values_for_stmt): Check for SSA_NAMEs that are life
5600         over an abnormal edge.
5601         (compute_avail): Remove such check.
5602         (do_SCCVN_insertion): New function.
5603         (eliminate): If we do not find a leader suitable for replacement
5604         insert a replacement expression from SCCVN if available.
5605         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
5606         (struct vn_ssa_aux): Add needs_insertion flag.
5607         * tree-ssa-sccvn.c (may_insert): New global flag.
5608         (copy_reference_ops_from_ref): Value-number union member access
5609         based on its size, not type and member if insertion is allowed.
5610         (visit_reference_op_load): For a weak match from union type
5611         punning lookup a view-converted value and insert a SSA_NAME
5612         for that value if that is not found.
5613         (visit_use): Make dumps shorter.  Do not disallow value numbering
5614         SSA_NAMEs that are life over an abnormal edge to constants.
5615         (free_scc_vn): Release inserted SSA_NAMEs.
5616         (run_scc_vn): New flag to specify whether insertion is allowed.
5617         Process SSA_NAMEs in forward order.
5618         * tree-ssa-loop-im.c (for_each_index): Handle invariant
5619         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
5620         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
5621         pointer type to/from integral types that do not change the
5622         precision to regular conversions.
5623
5624 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
5625
5626         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
5627         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
5628         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
5629         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
5630         input arguments and the mode of return value.  Built-in functions
5631         that operate on whole 64-bit MMX register now use V1DI mode.
5632
5633 2008-03-13  Alon Dayan  <alond@il.ibm.com>
5634             Olga Golovanevsky  <olga@il.ibm.com>
5635
5636         PR tree-optimization/35041
5637         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
5638         to locate the right position in a statement.
5639
5640 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
5641
5642         PR target/34000
5643         PR target/35553
5644         * config/i386/xmmintrin.h:  Change all static inline functions to
5645         extern inline and add __gnu_inline__ attribute.
5646         * config/i386/bmintrin.h: Ditto.
5647         * config/i386/smmintrin.h: Ditto.
5648         * config/i386/tmmintrin.h: Ditto.
5649         * config/i386/mmintrin-common.h: Ditto.
5650         * config/i386/ammintrin.h: Ditto.
5651         * config/i386/emmintrin.h: Ditto.
5652         * config/i386/pmmintrin.h: Ditto.
5653         * config/i386/mmintrin.h: Ditto.
5654         * config/i386/mm3dnow.h: Ditto.
5655
5656 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
5657
5658         PR middle-end/35185
5659         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
5660         (lower_omp_2): New function.
5661         (lower_omp_1, lower_omp): Rewritten.
5662
5663 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
5664
5665         PR 35054
5666         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
5667         with the phrase "Microsoft Windows compilers".
5668         (Push/Pop Macro Pragmas): New subsection. Document
5669         #pragma push_macro and pragma pop_macro.
5670
5671 2008-03-12  Paul Brook  <paul@codesourcery.com>
5672
5673         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
5674
5675 2008-03-12  Paul Brook  <paul@codesourcery.com>
5676
5677         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
5678         (thumb2_alusi3_short): Exclude PLUS and MINUS.
5679         (thumb2_addsi_shortim): Rename ...
5680         (thumb2_addsi_short): ... to this.  Allow register operands.
5681         (thumb2_subsi_short): New pattern.
5682         (thumb2_one_cmplsi2_short,
5683         thumb2_negsi2_short): New patterns and peepholes.
5684
5685 2008-03-12  Paul Brook  <paul@codesourcery.com>
5686
5687         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
5688
5689 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
5690
5691         * config/i386/i386.md (int_cond): New code iterator.
5692         (fp_cond): Ditto.
5693         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
5694         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
5695         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
5696         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
5697         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
5698         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
5699         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
5700         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
5701
5702 2008-03-12  Paul Brook  <paul@codesourcery.com>
5703
5704         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
5705         instead of {arm,thumb}_compute_save_reg_mask.
5706         (output_return_instruction): Ditto.
5707         (thumb_unexpanded_epilogue): Ditto.
5708         (thumb1_expand_prologue): Ditto.
5709         (thumb1_output_function_prologue): Ditto.
5710         (arm_set_return_address): Ditto.
5711         (thumb_set_return_address): Ditto.
5712         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
5713         regs to achieve stack alignment.
5714         (thumb1_compute_save_reg_mask): Fix compiler warning.
5715         (arm_output_epilogue): Use offsets->saved_regs_mask.
5716         Adjust stack pointer by poping call clobered registers.
5717         (arm_expand_prologue): Use offsets->saved_regs_mask.
5718         Adjust stack pointer by pushing extra registers.
5719         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
5720
5721 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
5722
5723         PR tree-opt/35422
5724         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
5725         conversion to the operands of a multiplication.
5726
5727 2008-03-12  Richard Guenther  <rguenther@suse.de>
5728
5729         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
5730         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
5731         * timevar.def (TV_TREE_PHIPROP): Add.
5732         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
5733         pass description.  Use TV_TREE_PHIPROP.
5734         * tree-ssa-forwprop.c: Remove phiprop code.
5735
5736 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
5737
5738         PR middle-end/35549
5739         * omp-low.c (maybe_lookup_decl): Constify first argument.
5740         (use_pointer_for_field): Change last argument from bool to
5741         omp_context *.  Disallow shared copy-in/out in nested
5742         parallel if decl is shared in outer parallel too.
5743         (build_outer_var_ref, scan_sharing_clauses,
5744         lower_rec_input_clauses, lower_copyprivate_clauses,
5745         lower_send_clauses, lower_send_shared_vars): Adjust callers.
5746
5747 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
5748             Ira Rosen  <irar@il.ibm.com>
5749
5750         * tree-vectorizer.c (free_stmt_vec_info): New function.
5751         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
5752         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
5753         * tree-vectorizer.h (free_stmt_vec_info): Declare.
5754         * tree-vect-transform.c (vectorizable_conversion): Free
5755         vec_oprnds0 if it was allocated.
5756         (vect_permute_store_chain): Remove unused VECs.
5757         (vectorizable_store): Free VECs that are allocated in the..
5758         function.
5759         (vect_transform_strided_load, vectorizable_load): Likewise.
5760         (vect_remove_stores): Simplify the code.
5761         (vect_transform_loop): Move code to vect_remove_stores().
5762         Call vect_remove_stores() and free_stmt_vec_info().
5763
5764 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5765
5766         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
5767         TARGET_HPUX.  Revise comment.
5768         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
5769         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
5770         Use sr4 variant of `be' instruction when not generating PIC code.
5771         (attr_length_call): Adjust for above change.
5772
5773 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5774
5775         * ipa-reference.c (static_execute): Remove module_statics_const and
5776         associated setting code.
5777
5778 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
5779
5780         PR target/35540
5781         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
5782         predicate for operand 1.
5783         (paritysi2_cmp): Use register_operand predicate for operand 2.
5784         Use earlyclobber modifier for operand 1.  Remove support for
5785         memory operands.
5786         (paritydi2_cmp): Use register_operand predicate for operand 3.
5787         Use earlyclobber modifier for operand 1.  Remove support for
5788         memory operands.
5789
5790 2008-03-11  Paul Brook  <paul@codesourcery.com>
5791             Vladimir Prus  <vladimir@codesourcery.com>
5792
5793         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
5794         (arm_compute_save_reg0_reg12_mask): Always
5795         check if register 11 must be saved.  Always safe hard frame pointer
5796         when frame_pointer_needeed.
5797         (arm_compute_save_reg_mask): Save IP and PC
5798         only with apcs frames.
5799         (arm_output_epilogue): Adjust Thumb2 codepath to
5800         be also invoked and work for ARM non-apcs frames.
5801         (arm_expand_prologue): Don't bother saving IP
5802         for non-apcs frame, since it's not clobbered by
5803         prologue code.  Implement non-apcs frame
5804         layout.
5805
5806 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
5807
5808         PR rtl-optimization/35281
5809         * expr.c (convert_move): Use a new pseudo for the intermediate
5810         from_mode->word_mode result.
5811
5812 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
5813
5814         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
5815         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
5816         * toplev.c (compile_file): Don't call it.
5817
5818 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
5819
5820         PR middle-end/35526
5821         * expr.c (store_expr): Call emit_block_move if the mode
5822         of "temp" RTX is BLKmode.
5823
5824 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5825             Richard Guenther  <rguenther@suse.de>
5826
5827         PR tree-optimization/31358
5828         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
5829         the step with a NULL_TREE.
5830         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
5831         to sizetype if type is a pointer type.
5832         (add_candidate_1): Don't convert the base and step to
5833         the generic type if the orginal type is a pointer type.
5834         (add_iv_value_candidates): Use sizetype for the step
5835         if type is a pointer type.
5836         (cand_value_at): Likewise.
5837         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
5838         for pointer types.
5839         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
5840         Don't convert the tem affine to the type.
5841         (add_elt_to_tree): Use sizetype for the step if a pointer.
5842         Use POINTER_PLUS_EXPR for pointers.
5843         (aff_combination_to_tree): Use sizetype for the step if a
5844         pointer.
5845
5846 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
5847
5848         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
5849         Remove commutativity hint.
5850
5851 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
5852
5853         PR c/35438
5854         PR c/35439
5855         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
5856         errorneous type.  Check that v is a VAR_DECL.
5857
5858         PR middle-end/35099
5859         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
5860
5861 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
5862
5863         PR tree-optimization/35494
5864         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
5865         may be overriden at link and run time.
5866
5867 2008-03-10  Richard Guenther  <rguenther@suse.de>
5868
5869         PR tree-optimization/34677
5870         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
5871         (poolify_tree): Likewise.
5872         (modify_expr_template): Likewise.
5873         (poolify_modify_stmt): Likewise.
5874         (insert_fake_stores): Handle all component-ref style stores
5875         in addition to INDIRECT_REF.  Also handle complex types.
5876         Do not poolify the inserted load.
5877         (realify_fake_stores): Do not rebuild the tree but only
5878         make it a SSA_NAME copy.
5879         (init_pre): Remove initialzation of modify_expr_template.
5880         Do not allocate modify_expr_node_pool.
5881         (fini_pre): Do not free modify_expr_node_pool.
5882
5883 2008-03-10  Paul Brook  <paul@codesourcery.com>
5884
5885         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
5886         to avoid conflicts.
5887
5888 2008-03-10  Paul Brook  <paul@codesourcery.com>
5889             Mark Shinwell  <shinwell@codesourcery.com>
5890
5891         * config/arm/cortex-r4.md: New.
5892         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
5893         insn attributes.
5894         * config/arm/arm.md: Include cortex-r4.md.
5895         (insn): Add smmls, sdiv and udiv values.
5896         (generic_sched): Don't use generic scheduling for Cortex-R4.
5897         (arm_issue_rate): New function.
5898         (TARGET_SCHED_ISSUE_RATE): Define.
5899
5900 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
5901
5902         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
5903
5904 2008-03-10  Richard Guenther  <rguenther@suse.de>
5905
5906         * tree-ssa-pre.c (get_sccvn_value): Simplify.
5907         (compute_avail): Do not add stmt uses to AVAIL_OUT.
5908
5909 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
5910
5911         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
5912         Set default to true.
5913
5914 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5915
5916         * c.opt (Wsynth): Deprecate.
5917         * doc/invoke.texi (Option Summary, Warning Options): Document
5918         -Wno-format-contains-nul.
5919
5920 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
5921
5922         PR target/35496
5923         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
5924         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
5925
5926 2008-03-09  Ira Rosen  <irar@il.ibm.com>
5927
5928         * config/rs6000/rs6000.c (builtin_description): Rename vector
5929         left shift operations.
5930         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
5931         (altivec_vsl<VI_char>): Rename to ...
5932         (ashl<mode>3): ... new name.
5933         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
5934         gen_ashlv4si3.
5935         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
5936
5937 2008-03-08  Richard Guenther  <rguenther@suse.de>
5938
5939         * coverage.h (tree_coverage_counter_addr): Declare.
5940         * coverage.c (tree_coverage_counter_addr): New function.
5941         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
5942         before using again.
5943         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
5944         (tree_gen_one_value_profiler): Likewise.
5945         (tree_gen_ic_profiler): Likewise.
5946         (tree_gen_average_profiler): Likewise.
5947         (tree_gen_ior_profiler): Likewise.
5948
5949 2008-03-08  Richard Guenther  <rguenther@suse.de>
5950
5951         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
5952         (vn_binary_op_insert): Likewise.
5953         (vn_unary_op_lookup): Likewise.
5954         (vn_unary_op_insert): Likewise.
5955         (vn_nary_op_lookup): Declare.
5956         (vn_nary_op_insert): Likewise.
5957         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
5958         and binary hashes, use a single obstack for unary_op_pool
5959         and binary_op_pool.
5960         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
5961         a single struct vn_nary_op_s.  Store tree code length and
5962         a variable number of operands.
5963         (struct vn_reference_op_struct): Remove unused op2.
5964         (vn_reference_op_eq): Do not compare op2.
5965         (vn_reference_op_compute_hash): Do not compute hash of op2.
5966         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
5967         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
5968         with vn_nary_op_compute_hash.
5969         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
5970         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
5971         vn_nary_op_lookup.
5972         (vn_unary_op_insert, vn_binary_op_insert): Replace with
5973         vn_nary_op_insert.
5974         (visit_unary_op): Call nary functions.
5975         (visit_binary_op): Likewise.
5976         (process_scc): Adjust for struct vn_tables_s changes.
5977         (allocate_vn_table): Likewise.
5978         (free_vn_table): Likewise.
5979         * tree-vn.c (vn_add): Call nary functions.
5980         (vn_lookup): Likewise.
5981
5982 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
5983
5984         PR target/35498
5985         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
5986         wdst back after sync_compare_and_swapqhi_internal.
5987
5988 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
5989
5990         PR target/22152
5991         * config/i386/i386-modes.def (V1DI): New vector mode.
5992         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
5993         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
5994         (MMXMODE248): Ditto.
5995         (MMXMODE): Add V1DI mode.
5996         (mmxvecsize): Change DI mode to V1DI mode.
5997         ("mov<mode>): Use MMXMODEI8 mode iterator.
5998         ("*mov<mode>_internal_rex64"): Ditto.
5999         ("*mov<mode>_internal"): Ditto.
6000         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
6001         ("mmx_sub<mode>3"): Ditto.
6002         ("mmx_adddi3"): Remove insn pattern.
6003         ("mmx_subdi3"): Ditto.
6004         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
6005         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
6006         ("mmx_ashl<mode>3"): Ditto.
6007         ("mmx_lshrdi3"): Remove insn pattern.
6008         ("mmx_ashldi3"): Ditto.
6009         * config/i386/i386.c (classify_argument): Handle V1DImode.
6010         (function_arg_advance_32): Ditto.
6011         (function_arg_32): Ditto.
6012         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
6013         mmx_addv1di3 insn pattern.
6014         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
6015         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
6016         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
6017         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
6018         Remove definitions of built-in functions.
6019         (V1DI_type_node): New node.
6020         (v1di_ftype_v1di_int): Ditto.
6021         (v1di_ftype_v1di_v1di): Ditto.
6022         (v2si_ftype_v2si_si): Ditto.
6023         (v4hi_ftype_v4hi_di): Remove node.
6024         (v2si_ftype_v2si_di): Ditto.
6025         (ix86_init_mmx_sse_builtins): Handle V1DImode.
6026         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
6027         Redefine builtins using def_builtin_const with *_ftype_*_int node.
6028         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
6029         Add new builtins using def_builtin_const.
6030         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
6031         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
6032         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
6033         * config/i386/mmintrin.h (__v1di): New typedef.
6034         (_mm_add_si64): Cast arguments to __v1di type.
6035         (_mm_sub_si64): Ditto.
6036         (_mm_sll_pi16): Cast __count to __v4hi type.
6037         (_mm_sll_pi32): Cast __count to __v2si type.
6038         (_mm_sll_si64): Cast arguments to __v1di type.
6039         (_mm_srl_pi16): Cast __count to __v4hi type.
6040         (_mm_srl_pi32): Cast __count to __v2si type.
6041         (_mm_srl_si64): Cast arguments to __v1di type.
6042         (_mm_sra_pi16): Cast __count to __v4hi type.
6043         (_mm_sra_pi32): Cast __count to __v2si type.
6044         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
6045         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
6046         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
6047         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
6048         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
6049         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
6050         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
6051         (_mm_srai_pi32): Use __builtin_ia32_psradi.
6052         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
6053         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
6054         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
6055         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
6056
6057 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
6058
6059         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
6060
6061 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
6062
6063         PR target/35373
6064         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
6065         reg+const addressing for Altivec modes.  Don't generate reg+reg
6066         addressing for TFmode or TDmode quantities.
6067
6068 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
6069
6070         * c-common.c (vector_types_convertible_p): Call langhook
6071         instead of comptypes.
6072
6073 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6074
6075         PR tree-opt/35402
6076         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
6077         integral and scalar float variables which have a
6078         NULL DECL_INITIAL.
6079
6080 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
6081
6082         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
6083         dwarf_register_span hook when emitting unwind information for
6084         register-to-memory saves.
6085         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
6086         (rs6000_frame_related): Remove call to spe_synthesize_frame.
6087
6088 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
6089
6090         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
6091         for the same VAR_DECL.
6092
6093 2008-03-06  Tom Tromey  <tromey@redhat.com>
6094
6095         * treelang: Delete.
6096         * doc/standards.texi (Standards): Don't mention treelang.
6097         * doc/invoke.texi (Overall Options): Don't mention treelang.
6098         * doc/install.texi (Prerequisites): Don't mention bison or
6099         treelang.
6100         (Configuration): Don't mention treelang.
6101         (Building): Likewise.
6102         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
6103
6104 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
6105
6106         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
6107         word-extractions out of a multi-word object.
6108
6109 2008-03-06  Richard Guenther  <rguenther@suse.de>
6110
6111         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
6112         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
6113         result type and precision.
6114         * expr.c (get_inner_reference): Set unsignedp based on the result
6115         type of BIT_FIELD_REF.
6116         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
6117         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
6118         (try_instantiate_multiple_fields): Likewise.  Use the correct type
6119         for BIT_FIELD_REF.
6120         (sra_build_assignment): Likewise.
6121         (sra_build_elt_assignment): Likewise.
6122         (sra_explode_bitfield_assignment): Likewise.
6123         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
6124         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
6125         set BIT_FIELD_REF_UNSIGNED.
6126         (vectorizable_load): Likewise.
6127
6128 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
6129
6130         * cse.c (cse_extended_basic_block): Invalidate artificial defs
6131         at bb start.
6132
6133 2008-03-06  Richard Guenther  <rguenther@suse.de>
6134
6135         * alias.c (struct alias_set_entry): Move has_zero_child field
6136         to pack with alias_set.
6137
6138 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
6139
6140         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
6141         32bit host.
6142
6143 2008-03-05  Ian Lance Taylor  <iant@google.com>
6144
6145         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
6146
6147 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
6148
6149         * fwprop.c (update_df): Support width and offset parameters of
6150         df_ref_create.
6151         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
6152         global_conflicts): Change DF_REF_EXTRACT to either
6153         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
6154         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
6155         * df-scan.c (df_ref_record, df_defs_record,
6156         df_ref_create_structure, df_def_record_1, df_uses_record,
6157         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
6158         df_bb_refs_collect, df_entry_block_defs_collect,
6159         df_exit_block_uses_collect): Support new width and offset fields.
6160         (ref_extract_pool): New storage pool.
6161         (df_free_ref): New function.
6162         (df_reg_chain_unlink, df_free_collection_rec,
6163         df_sort_and_compress_refs): Call df_free_ref.
6164         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
6165         of df_ref_extract.
6166         (df_ref_create_structure): Allocate df_ref_extract if offset and
6167         width fields are used.
6168         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
6169         (df_uses_record): Get offset and width from ZERO_EXTRACT 
6170         and SIGN_EXTRACT.
6171         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
6172         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
6173         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
6174         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
6175         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
6176         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
6177         (df_ref_extract): New structure.
6178         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
6179         (df_ref_create): Add width and offset parameters.
6180         
6181 2008-03-05  Richard Guenther  <rguenther@suse.de>
6182
6183         * tree-ssa-structalias.c (get_constraint_for_component_ref):
6184         Use ranges_overlap_p.
6185         (offset_overlaps_with_access): Rename
6186         to ranges_overlap_p and move ...
6187         * tree-flow-inline.h (ranges_overlap_p): ... here.
6188
6189         * tree.h (get_inner_reference, handled_component_p): Update
6190         comments.
6191
6192         * tree.h (record_component_aliases, get_alias_set,
6193         alias_sets_conflict_p, alias_sets_must_conflict_p,
6194         objects_must_conflict_p): Move declarations ...
6195         * alias.h (record_component_aliases, get_alias_set,
6196         alias_sets_conflict_p, alias_sets_must_conflict_p,
6197         objects_must_conflict_p): ... here.
6198         Include coretypes.h.
6199         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
6200
6201 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
6202
6203         * cfg.c: Include tree-flow.h.
6204         (remove_edge_raw): Call redirect_edge_var_map_clear.
6205         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
6206         * tree-flow-inline.h (redirect_edge_var_map_def): New.
6207         (redirect_edge_var_map_result): New.
6208         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
6209         PENDING_STMT use with redirect_edge_var_map_*.
6210         * tree-ssa.c (edge_var_maps): New definition.
6211         (redirect_edge_var_map_add): New.
6212         (redirect_edge_var_map_clear): New.
6213         (redirect_edge_var_map_dup): New.
6214         (redirect_edge_var_map_vector): New.
6215         (redirect_edge_var_map_destroy): New.
6216         (ssa_redirect_edge): Replace PENDING_STMT use with
6217         redirect_edge_var_map_*.
6218         (flush_pending_stmts): Same.
6219         (delete_tree_ssa): Destroy edge var map.
6220         * tree-flow.h (struct _edge_var_map): New.
6221         Define edge_var_map vector type.
6222         Declare redirect_edge_var_map_* prototypes.
6223         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
6224         * tree-cfg.c (reinstall_phi_args): Replace
6225         PENDING_STMT use with redirect_edge_var_map_*.
6226
6227 2008-03-05  Richard Guenther  <rguenther@suse.de>
6228
6229         PR tree-optimization/35472
6230         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
6231         whose single use_stmt has a overlapping set of loaded and
6232         stored symbols as that use_stmt might be a noop assignment then.
6233
6234 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
6235
6236         * gthr-rtems.h: Implement __gthread_mutex_destroy.
6237
6238 2008-03-05  Richard Guenther  <rguenther@suse.de>
6239
6240         PR c++/35336
6241         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
6242         should be constants.
6243         * tree-cfg.c (verify_expr): Verify it.
6244         * fold-const.c (fold_truthop): Remove code generating
6245         BIT_FIELD_REFs of structure bases.
6246         (fold_binary): Likewise.
6247         (fold_ternary): Position and size of BIT_FIELD_REFs are
6248         always host integers.
6249         (make_bit_field_ref): Remove.
6250         (optimize_bit_field_compare): Remove.
6251         (all_ones_mask_p): Remove.
6252
6253 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
6254
6255         PR gcc/33009
6256         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
6257         (split_block_and_df_analyze): New. Split basic block and rebuild
6258         dataflow.
6259         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
6260         SPLIT_BLOCK.
6261         (split_pattern_seq): Likewise.
6262         (erase_matching_seqs): Likewise.
6263         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
6264
6265 2008-03-04  Geoff Keating  <geoffk@apple.com>
6266
6267         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
6268         declaration and code.
6269         (tree_invalid_nonnegative_warnv_p): Likewise.
6270
6271 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
6272
6273         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
6274         examples.  Truncate option-names then causing overfull hbox.
6275
6276 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6277
6278         PR target/35222
6279         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
6280         on hpux10.
6281         * configure: Rebuilt.
6282
6283 2008-03-04  Rafael Espindola  <espindola@google.com>
6284
6285         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
6286         (tree_unary_nonnegative_warnv_p): New.
6287         (tree_binary_nonnegative_warnv_p): New.
6288         (tree_single_nonnegative_warnv_p): New.
6289         (tree_invalid_nonnegative_warnv_p): New.
6290         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
6291
6292 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6293
6294         PR 28322
6295         * opts.c (handle_option): Postpone 'unknown option' errors only for
6296         warning options.
6297
6298 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
6299
6300         PR target/35453
6301         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
6302         (_SIDD_XXX): This.
6303
6304 2008-03-04  Rafael Espindola  <espindola@google.com>
6305
6306         * fold-const.c (tree_unary_nonzero_warnv_p): New.
6307         (tree_binary_nonzero_warnv_p): New.
6308         (tree_single_nonzero_warnv_p): New.
6309         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
6310
6311 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
6312
6313         PR middle-end/35456
6314         * fold-const.c (fold_cond_expr_with_comparison): Prevent
6315         transformations for modes that have signed zeros.
6316         * ifcvt.c (noce_try_abs): Ditto.
6317
6318 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
6319
6320         * config/i386/i386.c (override_options): Force
6321         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
6322
6323 2008-03-04  Jan Hubicka  <jh@suse.cz>
6324
6325         PR c++/35262
6326         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
6327         in last commit.
6328
6329 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
6330
6331         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
6332         label to probe the stack.
6333
6334 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
6335
6336         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
6337         (__gthr_win32_mutex_destroy): Declare.
6338         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
6339         __gthr_win32_mutex_destroy.
6340         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
6341
6342 2008-03-03  Jan Hubicka  <jh@suse.cz>
6343
6344         PR c++/35262
6345         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
6346         aggressive on inlining cold calls.
6347
6348 2008-03-03  Richard Guenther  <rguenther@suse.de>
6349
6350         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
6351         struct copies into the expression table.
6352         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
6353         (try_to_simplify): Likewise.
6354         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
6355         integral and pointer arguments which do not change the
6356         precision to NOP_EXPRs.
6357         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
6358         VIEW_CONVERT_EXPR case.
6359
6360 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
6361
6362         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
6363         defined in a loop at depth 0 is invariant.
6364         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
6365         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
6366         be called at loop depth 0.
6367
6368 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
6369
6370         PR driver/35420
6371         * gcc.c (process_command): Update copyright notice dates.
6372         * gcov.c (print_version): Likewise.
6373         * gcov-dump.c (print_version): Likewise.
6374         * mips-tfile.c (main): Likewise.
6375         * mips-tdump.c (main): Likewise.
6376
6377 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6378
6379         PR 24924
6380         * c-common.c (flag_permissive): Delete.
6381         (constant_expression_warnings): Check flags first.
6382         (constant_expression_error): New.
6383         * c-common.h (flag_permissive): Delete.
6384         (constant_expression_error): Declare.
6385         * flags.h (flag_permissive): Declare. Update description.
6386         * diagnostic.c (pedwarn): Update.
6387         (permerror): New.
6388         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
6389         (permissive_error_kind): New.
6390         * toplev.c (flag_permissive): Define. Update description.
6391         * toplev.h (permissive_error_kind): Declare.
6392         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
6393         (pedwarn_c90): Use pedantic_warning_kind.
6394         * c-opts.c (c_common_post_options): flag_permissive does not affect
6395         flag_pedantic_errors.
6396
6397 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
6398
6399         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
6400         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
6401         __absvsi2, __absvDI2): Use unsigned arithmetic.
6402
6403 2008-03-02  Andi Kleen  <ak@suse.de>
6404             Richard Guenther  <rguenther@suse.de>
6405
6406         * struct-equiv.c: Remove file.
6407         * cfg_cleanup.c (condjump_equiv_p): Remove.
6408         * Makefile.in (OBJS-common): Remove struct-equiv.o.
6409         (struct-equiv.o): Remove rule.
6410         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
6411         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
6412         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
6413
6414 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
6415
6416         * ifcvt.c (noce_process_if_block): Try to handle only the then
6417         block if the else block exists but isn't suitable.
6418
6419 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
6420
6421         PR gcc/35063
6422         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
6423         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
6424         regression from previous patch.
6425
6426 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
6427
6428         PR gcc/35063
6429         * gthr.h: Add __gthread_mutex_destroy as a function that must be
6430         implemented.
6431         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
6432         * gthr-single.h (__gthread_mutex_destroy): Likewise.
6433         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
6434         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
6435         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
6436         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
6437         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
6438         (__gthread_mutex_destroy_function): Rename to
6439         __gthread_mutex_destroy.
6440         * gthr-dce.h (__gthread_mutex_destroy): Call
6441         pthread_mutex_destroy.
6442         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
6443         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
6444         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
6445
6446 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
6447
6448         * df-scan.c (df_ref_chain_change_bb): Simplify.
6449         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
6450         set_block_for_insn if there's any change.
6451         * df.h ((df_insn_change_bb): Fix prototype.
6452         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
6453         df_insn_change_bb, don't call set_block_for_insn.
6454         * emit-rtl.c (reorder_insns): Likewise.
6455         * haifa-sched.c (move_insn): Likewise.
6456
6457 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
6458
6459         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
6460
6461 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
6462
6463         * tree-flow-inline.h (next_readonly_imm_use): Return
6464         NULL_USE_OPERAND_P after the end.
6465
6466 2008-03-01  Richard Guenther  <rguenther@suse.de>
6467
6468         PR tree-optimization/35411
6469         * tree-sra.c (sra_build_assignment): Split conversion to
6470         final type to a separate statement if we are not assigning
6471         to a register.
6472
6473 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
6474
6475         * fold-const.c (fold_convertible_p): Correct the logic to follow
6476         that in fold_convert().
6477
6478 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
6479
6480         PR c++/35315
6481         * tree-inline.c (build_duplicate_type): When we make a
6482         duplicate type, make it unique in the canonical types system.
6483
6484 2008-02-29  Tom Tromey  <tromey@redhat.com>
6485
6486         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
6487         input_file_stack_history, input_file_stack_restored): Remove.
6488         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
6489         * input.h (struct file_stack): Remove.
6490         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
6491         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
6492         Likewise.
6493         * diagnostic.h (struct diagnostic_context) <last_module>: Change
6494         type.
6495         (diagnostic_last_module_changed): Add 'map' argument.
6496         (diagnostic_set_last_function): Likewise.
6497         * diagnostic.c (undiagnostic_report_current_module): Iterate using
6498         line map, not input_file_stack.
6499         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
6500
6501 2008-02-29  Paul Brook  <paul@codesourcery.com>
6502
6503         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
6504
6505 2008-02-29  Paul Brook  <paul@codesourcery.com>
6506
6507         * config/arm/ieee754-df.S (muldf3): Use RET macros.
6508
6509 2008-02-29  Richard Guenther  <rguenther@suse.de>
6510
6511         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
6512         vn_lookup_or_add.
6513         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
6514         value for comparing for a store match.
6515         (simplify_unary_expression): Do nothing for SSA_NAMEs.
6516         (try_to_simplify): Do not do a full-blown reference lookup.
6517
6518 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
6519
6520         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
6521         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
6522
6523         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
6524
6525 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
6526
6527         * tree-loop-linear.c (try_interchange_loops): Compare memory access
6528         strides against cache sizes.
6529
6530 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
6531
6532         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
6533         constant to fpul.
6534
6535 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
6536
6537         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
6538         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
6539         is smaller than the original promoted value.
6540         (simplify_subreg): If OP is a SUBREG, try to preserve its
6541         SUBREG_PROMOTED_VAR_P information.
6542
6543 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
6544
6545         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
6546         (VN_INFO_GET): Allocate new objects on the obstack.
6547         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
6548         for rpo_numbers_temp, for consistency.
6549         (free_scc_vn): Free the obstack.
6550
6551 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
6552
6553         * doc/invoke.texi: Document -ftree-loop-distribution.
6554         * tree-loop-distribution.c: New.
6555         * tree-pass.h (pass_loop_distribution): New.
6556         * graphds.h (struct graph): Add htab_t indices.
6557         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
6558         * tree-vectorizer.c (rename_variables_in_loop): Extern.
6559         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
6560         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
6561         * tree-data-ref.c (debug_data_dependence_relations): New.
6562         (dump_data_dependence_relation): Also print data references.
6563         (free_data_ref): Extern.
6564         (same_access_functions): Moved...
6565         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
6566         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
6567         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
6568         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
6569         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
6570         (stmts_from_loop): Skip LABEL_EXPR.
6571         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
6572         New.
6573         (build_rdg): Initialize rdg->indices htab.
6574         (free_rdg, stores_from_loop, ref_base_address,
6575         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
6576         have_similar_memory_accesses_1, ref_base_address_1,
6577         remove_similar_memory_refs): New.
6578         * tree-data-ref.h: Depend on tree-chrec.h.
6579         (debug_data_dependence_relations, free_data_ref): Declared.
6580         (same_access_functions): ... here.
6581         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
6582         New.
6583         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
6584         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
6585         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
6586         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
6587         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
6588         rdg_vertex_for_stmt): Declared.
6589         (struct rdg_edge): Add level.
6590         (RDGE_LEVEL): New.
6591         (free_rdg, stores_from_loop, remove_similar_memory_refs,
6592         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
6593         Declared.
6594         (rdg_has_similar_memory_accesses): New.
6595         * tree-vect-analyze.c: Remove unused static decls.
6596         * lambda.h (dependence_level): New.
6597         * common.opt (ftree-loop-distribution): New.
6598         * tree-flow.h (mark_virtual_ops_in_bb, 
6599         slpeel_tree_duplicate_loop_to_edge_cfg,
6600         rename_variables_in_loop): Declared.
6601         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
6602         (OBJS-common): Add tree-loop-distribution.o.
6603         (tree-loop-distribution.o): New rule.
6604         * tree-cfg.c (mark_virtual_ops_in_bb): New.
6605         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
6606         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
6607
6608 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
6609
6610         PR target/33963
6611         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
6612         other than structures and unions.
6613
6614 2008-02-28  Richard Guenther  <rguenther@suse.de>
6615
6616         Revert:
6617         2008-02-26  Richard Guenther  <rguenther@suse.de>
6618
6619         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
6620         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
6621         (lookup_decl_from_uid): Declare.
6622         (remove_decl_from_map): Likewise.
6623         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
6624         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
6625         (decl_for_uid_map): New global hashtable mapping DECL_UID
6626         to the decl tree.
6627         (init_ttree): Allocate it.
6628         (insert_decl_to_uid_decl_map): New helper function.
6629         (make_node_stat): Insert new decls into the map.
6630         (copy_node_stat): Likewise.
6631         (lookup_decl_from_uid): New function.
6632         (remove_decl_from_map): Likewise.
6633         (print_decl_for_uid_map_statistics): New helper.
6634         (dump_tree_statistics): Call it.
6635
6636         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
6637         (referenced_var_iterator): Adjust.
6638         (FOR_EACH_REFERENCED_VAR): Adjust.
6639         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
6640         (num_referenced_vars): Adjust.
6641         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
6642         (first_referenced_var): Remove.
6643         (end_referenced_vars_p): Likewise.
6644         (next_referenced_var): Likewise.
6645         (referenced_var_iterator_set): New helper function.
6646         * tree-dfa.c (referenced_var_lookup): Adjust.
6647         (referenced_var_check_and_insert): Likewise.
6648         (remove_referenced_var): Likewise.
6649         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
6650         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6651         (verify_call_clobbering): Likewise.
6652         (verify_memory_partitions): Likewise.
6653         (init_tree_ssa): Allocate bitmap instead of hashtable for
6654         referenced_vars.
6655         (delete_tree_ssa): Adjust.
6656         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
6657         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6658         (compute_tag_properties): Likewise.
6659         (set_initial_properties): Likewise.
6660         (find_partition_for): Likewise.
6661         (update_reference_counts): Likewise.
6662         (dump_may_aliases_for): Likewise.
6663         * tree-ssa-operands.c (add_virtual_operand): Likewise.
6664         (add_call_clobber_ops): Likewise.
6665         (add_call_read_ops): Likewise.
6666         (get_asm_expr_operands): Likewise.
6667         * tree-into-ssa.c (dump_decl_set): Likewise.
6668         (update_ssa): Likewise.
6669         * tree-sra.c (scan_function): Likewise.
6670         (decide_instantiations): Likewise.
6671         (scalarize_parms): Likewise.
6672         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
6673         (dsa_named_for): Likewise.
6674         * tree-ssa-structalias.c (update_alias_info): Likewise.
6675         (merge_smts_into): Likewise.
6676
6677 2008-02-27  David Daney  <ddaney@avtrex.com>
6678
6679         PR target/34409
6680         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
6681         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
6682         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
6683         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
6684         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
6685
6686 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
6687
6688         PR target/25477
6689         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
6690         (BUILT_IN_NEXTTOWARD): Remove.
6691         (BUILT_IN_NEXTTOWARDF): Ditto.
6692         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
6693         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
6694
6695 2008-02-27  Tom Tromey  <tromey@redhat.com>
6696
6697         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
6698         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
6699
6700 2008-02-27  Jan Beulich  <jbeulich@novell.com>
6701
6702         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
6703         update the respective field on newdecl.
6704
6705 2008-02-27  Revital Eres  <eres@il.ibm.com>
6706
6707         PR rtl-optimization/34999
6708         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
6709         crossing edges that ends with a call insn.
6710         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
6711         call insn and clear the EDGE_CROSSING flag of the crossing edge
6712         when fixing fallthru edges.
6713
6714 2008-02-27  Richard Guenther  <rguenther@suse.de>
6715
6716         PR middle-end/35390
6717         * fold-const.c (fold_unary): Return the correct argument,
6718         converted to the result type.
6719
6720 2008-02-27  Richard Guenther  <rguenther@suse.de>
6721
6722         PR middle-end/34971
6723         * expr.c (expand_expr_real_1): Assert on rotates that operate
6724         on partial modes.
6725         * fold-const.c (fold_binary): Use the types precision, not the
6726         bitsize of the mode if folding rotate expressions.  Build rotates
6727         only for full modes.
6728
6729 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
6730
6731         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
6732         and CPP_PRAGMA_EOL.
6733         * c-pragma.c (pragma_ns_name): New typedef.
6734         (registered_pp_pragmas): New variable.
6735         (c_pp_lookup_pragma): New function.
6736         (c_register_pragma_1): If flag_preprocess_only, do nothing
6737         for non-expanded pragmas, for expanded ones push pragma's
6738         namespace and name into registered_pp_pragmas vector.
6739         (c_invoke_pragma_handler): Register OpenMP pragmas even when
6740         flag_preprocess_only, don't register GCC pch_preprocess
6741         pragma if flag_preprocess_only.
6742         * c-opts.c (c_common_init): Call init_pragma even if
6743         flag_preprocess_only.
6744         * c-pragma.c (c_pp_lookup_pragma): New prototype.
6745         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
6746         cpp_register_pragma if flag_preprocess_only.
6747
6748 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6749
6750         PR c/28800
6751         * c-parser.c (c_parser_translation_unit): Warn for empty
6752         translation unit, not empty source file.
6753
6754 2008-02-26  Paul Brook  <paul@codesourcery.com>
6755
6756         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
6757         operand for Thumb-2.
6758         * config/arm/arm.h (reg_class): Add CORE_REGS.
6759         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
6760         (BASE_REG_CLASS): Use CORE_REGS.
6761         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
6762         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
6763         (REGNO_OK_FOR_INDEX_P): Exclude SP.
6764         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
6765         ARM_REGNO_OK_FOR_INDEX_P.
6766         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
6767         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
6768         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
6769         (ldm/stm peepholes): Ditto.
6770         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
6771         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
6772         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
6773         * config/arm/constraints.md: Enable "k" constraint on ARM.
6774
6775 2008-02-27  Ben Elliston  <bje@au.ibm.com>
6776
6777         * config/rs6000/rs6000.c: Annotate cache line size field in all
6778         instances of struct processor_costs.
6779
6780 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
6781
6782         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
6783         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
6784         jump_bypass): New counters.
6785         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
6786         * dce.c (gate_ud_dce): Same.
6787         (gate_fast_dce): Same.
6788         * dse.c (gate_dse1): New function.
6789         (gate_dse2): New function.
6790         (gate_dse): Merge results of new gate functions.
6791         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
6792         (gate_handle_jump_bypass): Add dbg_cnt.
6793         (gate_handle_gcse): Add dbg_cnt.
6794         * ifcvt.c (gate_handle_if_conversion): Same.
6795         (gate_handle_if_after_combine): Same.
6796         (gate_handle_if_after_reload): Same.
6797         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
6798
6799 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
6800
6801         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
6802         line sizes.
6803         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
6804
6805 2008-02-26  Jason Merrill  <jason@redhat.com>
6806
6807         PR c++/35315
6808         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
6809         alone if it's the naming decl for the type's main variant.
6810
6811 2008-02-26  Tom Tromey  <tromey@redhat.com>
6812
6813         * system.h (USE_MAPPED_LOCATION): Poison.
6814         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
6815         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
6816         (make_goto_expr_edges): Likewise.
6817         (remove_bb): Likewise.
6818         (execute_warn_function_return): Likewise.
6819         * basic-block.h (struct edge_def) <goto_locus>: Change type to
6820         location_t.
6821         * c-common.c (fname_decl): Remove old location code.
6822         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
6823         location code.
6824         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
6825         variant.
6826         (ASM_INPUT_SOURCE_LOCATION): Likewise.
6827         (gen_rtx_ASM_INPUT): Likewise.
6828         (gen_rtx_ASM_INPUT_loc): Likewise.
6829         (get_rtx_asm_OPERANDS): Remove.
6830         * cfglayout.c (insn_locators_alloc): Remove old location code.
6831         (set_curr_insn_source_location): Likewise.
6832         (curr_insn_locator): Likewise.
6833         * print-tree.c (print_node): Remove old location code.
6834         * tree-mudflap.c (mf_varname_tree): Remove old location code.
6835         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
6836         * cfgexpand.c (expand_gimple_cond_expr): Don't use
6837         location_from_locus.
6838         (construct_exit_block): Remove old location code.
6839         * emit-rtl.c (force_next_line_note): Remove old location code.
6840         * profile.c (branch_prob): Remove old location code.
6841         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
6842         LOC_LINE): Remove old-location variants.
6843         * langhooks.c (lhd_print_error_function): Remove old location
6844         code.
6845         * configure, config.in: Rebuilt.
6846         * configure.ac (--enable-mapped-location): Remove.
6847         * c-decl.c (c_init_decl_processing): Remove old location code.
6848         (finish_function): Likewise.
6849         * recog.c (decode_asm_operands): Remove old location code.
6850         * c-pch.c (c_common_read_pch): Remove old location code.
6851         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
6852         variants.
6853         * gimple-low.c (lower_function_body): Remove old location code.
6854         * toplev.c (unknown_location): Remove.
6855         (push_srcloc): Remove old-location variant.
6856         (process_options): Remove old location code.
6857         (lang_dependent_init): Likewise.
6858         * input.h (UNKNOWN_LOCATION): Move definition.
6859         (location_t): Undeprecate.
6860         (source_locus): Remove.
6861         (location_from_locus): Remove.
6862         (struct location_s): Remove.
6863         Remove all old-location code.
6864         (input_line, input_filename): Remove.
6865         * final.c (final_scan_insn): Remove old location code.
6866         * diagnostic.c (diagnostic_build_prefix): Remove
6867         USE_MAPPED_LOCATION test.
6868         * tree.h (gimple_stmt) <locus>: Now a location_t.
6869         (tree_exp) <locus>: Likewise.
6870         (DECL_IS_BUILTIN): Remove old-location variant.
6871         (annotate_with_file_line, annotate_with_locus): Likewise.
6872         (expr_locus, set_expr_locus): Update.
6873         * tree.c (build1_stat): Remove old location code.
6874         (last_annotated_node): Remove.
6875         (annotate_with_file_line): Remove old-location variant.
6876         (annotate_with_locus): Likewise.
6877         (expr_location): Remove old location code.
6878         (set_expr_location): Likewise.
6879         (expr_has_location): Likewise.
6880         (expr_locus): Likewise.
6881         (set_expr_locus): Likewise.
6882         (expr_filename): Don't use location_from_locus.
6883         (expr_lineno): Likewise.
6884         * rtl-error.c (location_for_asm): Remove old location code.
6885         * c-lex.c (cb_line_change): Remove old location code.
6886         (fe_file_change): Likewise.
6887         (cb_def_pragma): Likewise.
6888         (c_lex_with_flags): Likewise.
6889         * gengtype.c (do_typedef): Don't special-case location types.
6890         (define_location_structures): Remove.
6891         (main): Don't call define_location_structures.
6892         * tree-pretty-print.c (dump_implicit_edges): Remove old location
6893         code.
6894
6895 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6896
6897         PR 26264
6898         * builtins.def (BUILT_IN_STDARG_START): Remove.
6899         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
6900         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
6901         * tree-inline.c (inline_forbidden_p_1): Likewise.
6902         
6903 2008-02-26  Richard Guenther  <rguenther@suse.de>
6904
6905         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
6906         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
6907         (lookup_decl_from_uid): Declare.
6908         (remove_decl_from_map): Likewise.
6909         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
6910         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
6911         (decl_for_uid_map): New global hashtable mapping DECL_UID
6912         to the decl tree.
6913         (init_ttree): Allocate it.
6914         (insert_decl_to_uid_decl_map): New helper function.
6915         (make_node_stat): Insert new decls into the map.
6916         (copy_node_stat): Likewise.
6917         (lookup_decl_from_uid): New function.
6918         (remove_decl_from_map): Likewise.
6919         (print_decl_for_uid_map_statistics): New helper.
6920         (dump_tree_statistics): Call it.
6921
6922         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
6923         (referenced_var_iterator): Adjust.
6924         (FOR_EACH_REFERENCED_VAR): Adjust.
6925         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
6926         (num_referenced_vars): Adjust.
6927         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
6928         (first_referenced_var): Remove.
6929         (end_referenced_vars_p): Likewise.
6930         (next_referenced_var): Likewise.
6931         (referenced_var_iterator_set): New helper function.
6932         * tree-dfa.c (referenced_var_lookup): Adjust.
6933         (referenced_var_check_and_insert): Likewise.
6934         (remove_referenced_var): Likewise.
6935         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
6936         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6937         (verify_call_clobbering): Likewise.
6938         (verify_memory_partitions): Likewise.
6939         (init_tree_ssa): Allocate bitmap instead of hashtable for
6940         referenced_vars.
6941         (delete_tree_ssa): Adjust.
6942         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
6943         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6944         (compute_tag_properties): Likewise.
6945         (set_initial_properties): Likewise.
6946         (find_partition_for): Likewise.
6947         (update_reference_counts): Likewise.
6948         (dump_may_aliases_for): Likewise.
6949         * tree-ssa-operands.c (add_virtual_operand): Likewise.
6950         (add_call_clobber_ops): Likewise.
6951         (add_call_read_ops): Likewise.
6952         (get_asm_expr_operands): Likewise.
6953         * tree-into-ssa.c (dump_decl_set): Likewise.
6954         (update_ssa): Likewise.
6955         * tree-sra.c (scan_function): Likewise.
6956         (decide_instantiations): Likewise.
6957         (scalarize_parms): Likewise.
6958         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
6959         (dsa_named_for): Likewise.
6960         * tree-ssa-structalias.c (update_alias_info): Likewise.
6961         (merge_smts_into): Likewise.
6962
6963 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6964
6965         PR 34351
6966         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
6967         * c-opts.c (c_common_handle_option): Wall enables
6968         Wvolatile-register-var.
6969         * common.opt: Move Wvolatile-register-var to...
6970         * c.opt: ...here.
6971         
6972 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6973
6974         * common.opt (Wlarger-than=): New.
6975         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
6976         -Wlarger-than=.
6977         * opts.c (common_handle_option): Handle -Wlarger-than=.
6978         * optc-gen.awk: Likewise.
6979         * opth-gen.awk: Likewise.
6980         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
6981         * tree-optimize.c (tree_rest_of_compilation): Likewise.
6982         
6983 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6984
6985         * c-common.c (match_case_to_enum_1): Add appropriate
6986         OPT_W* parameter to warning.
6987         (c_do_switch_warnings): Likewise.
6988         * c-typeck.c (warning_init): Add one more parameter following
6989         'warning' function.
6990         (push_init_level): Update call to warning_init.
6991         (pop_init_level): Likewise.
6992         (add_pending_init): Likewise.
6993         (output_init_element: Likewise.
6994
6995 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6996
6997         PR 28322
6998         * toplev.c (toplev_main): If there are warnings or error, print
6999         errors for ignored options.
7000         * opts.c (ignored_options): New static variable.
7001         (postpone_unknown_option_error): New.
7002         (print_ignored_options): New.
7003         (handle_option): Postpone errors for unknown -Wno-* options.
7004         * opts.h (print_ignored_options): Declare.
7005         
7006 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
7007
7008         * config/mips/mips.md (loadgp_blockage, blockage): Change type
7009         to "ghost".
7010
7011 2008-02-25  Richard Guenther  <rguenther@suse.de>
7012
7013         Revert:
7014         2008-02-25  Richard Guenther  <rguenther@suse.de>
7015
7016         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
7017         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
7018         (lookup_decl_from_uid): Declare.
7019         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
7020         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
7021         (decl_for_uid_map): New global hashtable mapping DECL_UID
7022         to the decl tree.
7023         (init_ttree): Allocate it.
7024         (insert_decl_to_uid_decl_map): New helper function.
7025         (make_node_stat): Insert new decls into the map.
7026         (copy_node_stat): Likewise.
7027         (lookup_decl_from_uid): New function.
7028         (print_decl_for_uid_map_statistics): New helper.
7029         (dump_tree_statistics): Call it.
7030
7031         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
7032         (referenced_var_iterator): Adjust.
7033         (FOR_EACH_REFERENCED_VAR): Adjust.
7034         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
7035         (num_referenced_vars): Adjust.
7036         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
7037         (first_referenced_var): Remove.
7038         (end_referenced_vars_p): Likewise.
7039         (next_referenced_var): Likewise.
7040         (referenced_var_iterator_set): New helper function.
7041         * tree-dfa.c (referenced_var_lookup): Adjust.
7042         (referenced_var_check_and_insert): Likewise.
7043         (remove_referenced_var): Likewise.
7044         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
7045         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7046         (verify_call_clobbering): Likewise.
7047         (verify_memory_partitions): Likewise.
7048         (init_tree_ssa): Allocate bitmap instead of hashtable for
7049         referenced_vars.
7050         (delete_tree_ssa): Adjust.
7051         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
7052         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7053         (compute_tag_properties): Likewise.
7054         (set_initial_properties): Likewise.
7055         (find_partition_for): Likewise.
7056         (update_reference_counts): Likewise.
7057         (dump_may_aliases_for): Likewise.
7058         * tree-ssa-operands.c (add_virtual_operand): Likewise.
7059         (add_call_clobber_ops): Likewise.
7060         (add_call_read_ops): Likewise.
7061         (get_asm_expr_operands): Likewise.
7062         * tree-into-ssa.c (dump_decl_set): Likewise.
7063         (update_ssa): Likewise.
7064         * tree-sra.c (scan_function): Likewise.
7065         (decide_instantiations): Likewise.
7066         (scalarize_parms): Likewise.
7067         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
7068         (dsa_named_for): Likewise.
7069         * tree-ssa-structalias.c (update_alias_info): Likewise.
7070         (merge_smts_into): Likewise.
7071
7072 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
7073
7074         PR fortran/29549
7075         * doc/invoke.texi (-fcx-limited-range): Document new option.
7076         * toplev.c (process_options): Handle -fcx-fortran-rules.
7077         * common.opt: Add documentation for -fcx-fortran-rules.
7078
7079 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
7080
7081         PR c/35162
7082         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
7083         actual behaviour and C99.
7084         
7085 2008-02-26  Ben Elliston  <bje@au.ibm.com>
7086
7087         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
7088         (ASM_CPU_POWER6_SPEC): Likewise.
7089         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
7090         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
7091         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
7092
7093 2008-02-25  Richard Guenther  <rguenther@suse.de>
7094
7095         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
7096         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
7097         (lookup_decl_from_uid): Declare.
7098         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
7099         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
7100         (decl_for_uid_map): New global hashtable mapping DECL_UID
7101         to the decl tree.
7102         (init_ttree): Allocate it.
7103         (insert_decl_to_uid_decl_map): New helper function.
7104         (make_node_stat): Insert new decls into the map.
7105         (copy_node_stat): Likewise.
7106         (lookup_decl_from_uid): New function.
7107         (print_decl_for_uid_map_statistics): New helper.
7108         (dump_tree_statistics): Call it.
7109
7110         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
7111         (referenced_var_iterator): Adjust.
7112         (FOR_EACH_REFERENCED_VAR): Adjust.
7113         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
7114         (num_referenced_vars): Adjust.
7115         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
7116         (first_referenced_var): Remove.
7117         (end_referenced_vars_p): Likewise.
7118         (next_referenced_var): Likewise.
7119         (referenced_var_iterator_set): New helper function.
7120         * tree-dfa.c (referenced_var_lookup): Adjust.
7121         (referenced_var_check_and_insert): Likewise.
7122         (remove_referenced_var): Likewise.
7123         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
7124         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7125         (verify_call_clobbering): Likewise.
7126         (verify_memory_partitions): Likewise.
7127         (init_tree_ssa): Allocate bitmap instead of hashtable for
7128         referenced_vars.
7129         (delete_tree_ssa): Adjust.
7130         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
7131         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7132         (compute_tag_properties): Likewise.
7133         (set_initial_properties): Likewise.
7134         (find_partition_for): Likewise.
7135         (update_reference_counts): Likewise.
7136         (dump_may_aliases_for): Likewise.
7137         * tree-ssa-operands.c (add_virtual_operand): Likewise.
7138         (add_call_clobber_ops): Likewise.
7139         (add_call_read_ops): Likewise.
7140         (get_asm_expr_operands): Likewise.
7141         * tree-into-ssa.c (dump_decl_set): Likewise.
7142         (update_ssa): Likewise.
7143         * tree-sra.c (scan_function): Likewise.
7144         (decide_instantiations): Likewise.
7145         (scalarize_parms): Likewise.
7146         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
7147         (dsa_named_for): Likewise.
7148         * tree-ssa-structalias.c (update_alias_info): Likewise.
7149         (merge_smts_into): Likewise.
7150
7151 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
7152
7153         PR target/35258
7154         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
7155         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
7156         * alias.h (nonoverlapping_memrefs_p): Likewise.
7157
7158 2008-02-25  Jan Beulich  <jbeulich@novell.com>
7159
7160         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
7161         * config/i386/netware-libgcc.exp: Add __bswap?i2,
7162         __emultls_get_address, __emultls_register_common,
7163         __floatundi?f, and _Unwind_GetIPInfo.
7164         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
7165         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
7166         (gen_regparm_prefix): Likewise.
7167         (i386_nlm_encode_section_info): Sync with
7168         config/i386/winnt.c:i386_pe_encode_section_info().
7169         (i386_nlm_maybe_mangle_decl_assembler_name): New.
7170         i386_nlm_mangle_decl_assembler_name): New.
7171         (netware_override_options): New.
7172         * config/i386/netware.h (netware_override_options): Declare.
7173         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
7174         (i386_nlm_mangle_decl_assembler_name): Declare.
7175         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
7176
7177 2008-02-25  Ben Elliston  <bje@au.ibm.com>
7178
7179         PR other/32948
7180         * c-decl.c (grokdeclarator): Remove unused local variables
7181         `typedef_type' and `type_as_written'.
7182         * bb-reorder.c
7183         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
7184         unused local variable `has_hot_blocks'.
7185         (fix_crossing_conditional_branches): Remove unused local variable
7186         `prev_bb'.
7187         
7188 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
7189
7190         PR middle-end/19984
7191         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
7192         using DEF_C99_BUILTIN.
7193         (BUILT_IN_NANF): Ditto.
7194         (BUILT_IN_NANL): Ditto.
7195
7196 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
7197             Revital Eres  <eres@il.ibm.com>
7198
7199         * modulo-sched.c (calculate_must_precede_follow): Address TODO
7200         regarding the order of two dependent insns in the same row.
7201
7202 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
7203
7204         * stor-layout.c (layout_decl): Do not bump the alignment of a
7205         bit-field to more than byte alignment if it is packed.
7206
7207 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
7208
7209         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
7210         e300c2 and e300c3.
7211
7212 2008-02-24  Diego Novillo  <dnovillo@google.com>
7213
7214         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
7215
7216         PR 33738
7217         * tree-vrp.c (vrp_evaluate_conditional): With
7218         -Wtype-limits, emit a warning when comparing against a
7219         constant outside the natural range of OP0's type.
7220         * c.opt (Wtype-limits): Move ...
7221         * common.opt (Wtype-limits): ... here.
7222
7223 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
7224
7225         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
7226         * config/rs6000/e300c2c3.md: New file.
7227         * config/rs6000/rs6000.c (processor_costs): Add new costs for
7228         e300c2 and e300c3.
7229         (rs6000_override_options): Add e300c2 and e300c3 cases to
7230         processor_target_table. Do not allow usage of Altivec or Spe
7231         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
7232         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
7233         * config/rs6000/rs6000.h (processor_type): Add
7234         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
7235         (ASM_CPU_SPEC): Add e300c2 and e300c3.
7236         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
7237         and ppce300c3. Include e300c2c3.md.
7238
7239 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
7240
7241         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
7242         instead of TARGET_STRICT_ALIGN.
7243
7244 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
7245
7246         * explow.c (memory_address): Assert that the generated address is
7247         valid.
7248
7249 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
7250
7251         PR target/25477
7252         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
7253         * config/darwin-ppc-ldouble-patch.def: New file.
7254         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
7255         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
7256         SUBTARGET_INIT_BUILTINS if defined.
7257         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
7258         New functions.
7259
7260 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7261
7262         PR rtl-opt/33512
7263         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
7264         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
7265
7266 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7267
7268         PR pch/35027
7269         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
7270         file" warning condtional on -Winvalid-PCH.
7271
7272 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
7273
7274         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
7275
7276 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
7277
7278         PR target/22076
7279         PR target/34256 
7280         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
7281         prevent reload from using MMX registers.
7282         (*mov<mode>_internal): Ditto.
7283         (*movv2sf_internal_rex64): Ditto.
7284         (*movv2sf_internal): Ditto.
7285
7286 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7287
7288         PR documentation/31569
7289         * doc/install.texi2html: Use makeinfo --no-number-sections.
7290
7291 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
7292
7293         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
7294         ensure that we can address an entire entity > 8 bytes.  Don't
7295         generate reg+reg addressing for such data.
7296
7297 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
7298
7299         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
7300         strings when optimizing for size, unless the target cares about
7301         alignment.
7302
7303 2008-02-22  Tom Tromey  <tromey@redhat.com>
7304
7305         * regclass.c (current_pass): Remove declaration.
7306
7307 2008-02-22  Anatoly Sokolov <aesok@post.ru>
7308
7309         * config/avr/libgcc.S (__RAMPZ__): Define.
7310         (__do_copy_data): Add for devices with 128KB code memory.
7311
7312 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
7313
7314         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
7315         Use spe_abi.
7316         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
7317
7318 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
7319
7320         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
7321         GENNONACR_REGS.
7322
7323 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7324
7325         PR c/19999
7326         * c-typeck.c (build_binary_op): Warn about floating point
7327         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
7328
7329 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
7330
7331         PR target/34526
7332         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
7333         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
7334         add vrsave.
7335         (rs6000_override_options): Set altivec_abi as default, not override,
7336         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
7337         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
7338         is used; use new member spe_abi.
7339         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
7340         spe_abi and altivec_abi.
7341
7342 2008-02-22  Tomas Bily  <tbily@suse.cz>
7343
7344         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
7345
7346 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7347
7348         PR bootstrap/35273
7349         * config.build (build_file_translate): Set to `CMD //c' only if
7350         it works.
7351         * Makefile.in (build_file_translate): Improve comment.
7352
7353 2008-02-21  Jan Hubicka  <jh@suse.cz>
7354
7355         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
7356         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
7357         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
7358
7359 2008-02-21  Michael Matz  <matz@suse.de>
7360
7361         PR target/35264
7362         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
7363
7364 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
7365
7366         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
7367         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
7368         as insn constraint.
7369         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
7370         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
7371         SSE_VEC_FLOAT_MODE_P as insn constraint.
7372         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
7373         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
7374         sse4a_movntdf using MODEF mode iterator.
7375         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
7376         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
7377         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
7378         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
7379         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
7380         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
7381         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
7382
7383 2008-02-21  Richard Guenther  <rguenther@suse.de>
7384
7385         * tree.def (PAREN_EXPR): New tree code.
7386         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
7387         and PAREN_EXPR.
7388         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
7389         * expr.c (expand_expr_real_1): Likewise.
7390         * tree-inline.c (estimate_num_insns_1): Likewise.
7391         * tree-complex.c (expand_complex_move): Likewise.
7392         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
7393         as plain x.
7394
7395 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
7396
7397         PR target/35225
7398         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
7399
7400 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
7401
7402         PR target/35190
7403         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
7404
7405         * config/sh/sh.c (find_barrier): Don't go past
7406         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
7407
7408 2008-02-20  DJ Delorie  <dj@redhat.com>
7409
7410         * config/h8300/h8300.md (insv): Force source operand to be a register.
7411
7412         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
7413         as a jump, not as a plain insn.
7414         
7415 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
7416
7417         * doc/invoke.texi (Warning Options): Add new option
7418         -Wframe-larger-than=.
7419         (-Wframe-larger-than): Document.
7420
7421         * flags.h (warn_frame_larger_than, frame_larger_than_size):
7422         Add declarations for new option variables.
7423
7424         * final.c (final_start_function): Check the frame size
7425         before emission and issue a Wframe-larger-than warning.
7426
7427         * opts.c (warn_frame_larger_than, frame_larger_than_size):
7428         Add definitions for new option variables.
7429         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
7430
7431         * common.opt (Wframe-larger-than=): New option.
7432
7433 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
7434
7435         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
7436         (<sse>_div<mode>3): Ditto.
7437         (<sse>_vmdiv<mode>3): Ditto.
7438         (<sse>_vmsqrt<mode>2): Ditto.
7439         (*smax<mode>3): Ditto.
7440         (sse5_frcz<mode>2): Ditto.
7441         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
7442         as insn constraint.
7443
7444 2008-02-20  Richard Guenther  <rguenther@suse.de>
7445
7446         PR middle-end/35265
7447         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
7448         be happy with INTEGRAL_TYPE_P.
7449
7450 2008-02-20  Richard Guenther  <rguenther@suse.de>
7451
7452         * fold-const.c (split_tree): Associate floatig-point expressions
7453         if flag_associative_math is set.
7454
7455 2008-02-20  Richard Guenther  <rguenther@suse.de>
7456
7457         * tree.h (fold_real_zero_addition_p): Declare.
7458         * fold-const.c (fold_real_zero_addition_p): Export.
7459         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
7460         floating-point operations with zero and one.
7461
7462 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
7463
7464         * doc/install.texi: Correct references to CFLAGS, replacing them
7465         with BOOT_CFLAGS.  Document flags used during bootstrap for
7466         target libraries.
7467                                 
7468 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
7469
7470         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
7471         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
7472         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
7473         insn constraint.
7474         (smin<mode>3): Ditto from similar patterns.
7475         (smax<mode>3): Ditto.
7476         (*ieee_smin<mode>3): Ditto.
7477         (*ieee_smax<mode>3): Ditto.
7478         * config/i386/sse.md (sse): New mode attribute.
7479         (mov<mode>): Macroize expander from movv4sf and movv2df using
7480         SSEMODEF2P mode iterator.
7481         (<sse>_movnt<mode>): Ditto from similar patterns. Use
7482         SSE_VEC_FLOAT_MODE_P as insn constraint.
7483         (storent<mode>): Ditto.
7484         (storent<mode>): Macroize expander from storentsf and storentdf using
7485         MODEF mode iterator.
7486         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
7487         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
7488         (abs<mode>2): Ditto from similar patterns.
7489         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
7490         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
7491         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
7492         (<sse>_vmsqrt<mode>2): Ditto.
7493         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
7494         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
7495         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
7496         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
7497         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
7498         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
7499         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
7500         insn constraint.
7501         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
7502         iterator and SSE_FLOAT_MODE_P as insn constraint.
7503         (<sse>_ucomi): Ditto from similar patterns.
7504         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
7505         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
7506         SSE_VEC_FLOAT_MODE_P as insn constraint.
7507         (vcond<mode>): Ditto from similar patterns.
7508         (and<mode>3, *and<mode>3): Ditto.
7509         (<sse>_nand<mode>3): Ditto.
7510         (ior<mode>3, *ior<mode>3): Ditto.
7511         (xor<mode>3, *xor<mode>3): Ditto.
7512         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
7513         iterator and SSE_FLOAT_MODE_P as insn constraint.
7514         (*nand<mode>3): Ditto from similar patterns.
7515         (*ior<mode>3): Ditto.
7516         (*xor<mode>3): Ditto.
7517
7518 2008-02-20  Ira Rosen  <irar@il.ibm.com>
7519
7520         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
7521         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
7522         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
7523
7524 2008-02-19  Jan Hubicka  <jh@suse.cz>
7525
7526         * predict.c (tree_bb_level_predictions): Remove variable next
7527         mistakely introduced by previous commit.
7528
7529 2008-02-19  Jan Hubicka  <jh@suse.cz>
7530
7531         * predict.c (predict_paths_leading_to): Rewrite.
7532         (predict_paths_for_bb): New.
7533         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
7534
7535 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7536
7537         PR bootstrap/35218
7538         * Makefile.in (build_file_translate): New.
7539         (gcc-vers.texi): Use it for translating $(abs_srcdir).
7540         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
7541         * configure.ac (build_file_translate): Substitute it.
7542         * configure: Regenerate.
7543
7544 2008-02-19  Jan Hubicka  <jh@suse.cz>
7545
7546         PR rtl-optimization/34408
7547         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
7548         invalid sharing.
7549
7550 2008-02-19  Jan Hubicka  <jh@suse.cz>
7551
7552         PR middle-end/28779
7553         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
7554         call_expr.
7555
7556 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
7557
7558         PR Ada/35186
7559         * config/i386/i386-modes.def: Revert the last DI alignment
7560         change until Ada people can look into it.
7561
7562 2008-02-19  Nick Clifton  <nickc@redhat.com>
7563
7564         * opts.c (print_specific_help): Fix typo in --help text.
7565
7566 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
7567
7568         PR target/35239
7569         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
7570         32-bit inline asm without asm alternatives for host GCC < 3.0.
7571
7572 2008-02-19  Richard Guenther  <rguenther@suse.de>
7573
7574         PR tree-optimization/34989
7575         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
7576         Allow propagation to INDIRECT_REF if we can simplify only.
7577
7578 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7579
7580         * c-common.c (warn_for_collisions_1): Use appropriate option when
7581         warning.
7582
7583 2008-02-19  Nick Clifton  <nickc@redhat.com>
7584
7585         PR other/31349
7586         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
7587         (handle_options): Fix indentation.
7588         (print_filtered_help): If no language-specific options were
7589         displayed tell the user how to list all the options supported by
7590         the language's front-end.
7591         (print_specific_help): Fix indentation and remove duplicate line.
7592         (common_handle_option): Handle the -v option.
7593         For --help enable the display of undocumented options if the -v
7594         switch has been included on the command line.
7595         For --help= check for overlaps in the arguments between the option
7596         classes and the language names and issue a warning when they
7597         cannot be disambiguated.
7598         * c.opt (v): Pass on to the common option handler.
7599
7600 2008-02-19  Revital Eres  <eres@il.ibm.com> 
7601
7602         * modulo-sched.c (sms_schedule): Change dump message when
7603         create_ddg function fails.
7604         (try_scheduling_node_in_cycle): Rename row to cycle.
7605         (print_partial_schedule): Rename CYCLE to ROW.
7606
7607 2008-02-19  Christian Bruel  <christian.bruel@st.com>
7608             Zdenek Dvorak  <ook@ucw.cz>
7609
7610         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
7611
7612 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
7613
7614         PR target/33555
7615         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
7616         (*x86_movdicc_0_m1_se): Ditto.
7617
7618 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
7619
7620         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
7621         (CMPtype): Define as __gcc_CMPtype.
7622         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
7623         (CMPtype): Define as __gcc_CMPtype.
7624
7625 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
7626
7627         Support valgrind 3.3 for --enable-checking=valgrind.
7628         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
7629         here.
7630         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
7631         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
7632         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
7633         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
7634         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
7635         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
7636         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
7637         respectively.
7638         * ggc-zone.c: Similar.
7639         * ggc-page.c: Similar.
7640
7641 2008-02-19  Paul Brook  <paul@codesourcery.com>
7642
7643         PR target/35071
7644         * config/arm/ieee754-df.S: Fix do_it typo.
7645         * config/arm/ieee754-sf.S: Fix do_it typo.
7646
7647 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
7648
7649         PR target/35189
7650         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
7651         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
7652         (OPTION_MASK_ISA_SSE_SET): Likewise.
7653         (OPTION_MASK_ISA_SSE2_SET): Likewise.
7654         (OPTION_MASK_ISA_SSE3_SET): Likewise.
7655         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
7656         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
7657         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
7658         (OPTION_MASK_ISA_SSE4_SET): Likewise.
7659         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
7660         (OPTION_MASK_ISA_SSE5_SET): Likewise.
7661         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
7662         (OPTION_MASK_ISA_MMX_UNSET): Updated.
7663         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
7664         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
7665         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
7666         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
7667         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
7668         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
7669         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
7670         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
7671         (OPTION_MASK_ISA_SSE4): Removed.
7672         (ix86_handle_option): Turn on bits in ix86_isa_flags and
7673         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
7674         (override_options): Don't turn on implied SSE/MMX bits in
7675         ix86_isa_flags.
7676
7677 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
7678
7679         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7680         32bit host.
7681
7682 2008-02-18  Joey Ye  <joey.ye@intel.com>
7683
7684         PR middle-end/34921
7685         * tree-nested.c (insert_field_into_struct): Set type alignment
7686         to field alignment if the former is less than the latter.
7687
7688 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
7689
7690         * BASE-VER: Set to 4.4.0.
7691
7692 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7693
7694         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
7695         * doc/cfg.texi: Likewise.
7696         * doc/extend.texi: Likewise.
7697         * doc/gty.texi: Likewise.
7698         * doc/invoke.texi: Likewise.
7699         * doc/loop.texi: Likewise.
7700         * doc/md.texi: Likewise.
7701         * doc/passes.texi: Likewise.
7702         * doc/rtl.texi: Likewise.
7703         * doc/sourcebuild.texi: Likewise.
7704         * doc/tm.texi: Likewise.
7705         * doc/tree-ssa.texi: Likewise.
7706
7707 2008-02-17  Richard Guenther  <rguenther@suse.de>
7708
7709         PR middle-end/35227
7710         * tree-complex.c (init_parameter_lattice_values): Handle parameters
7711         without default definition.
7712
7713 2008-02-17  Richard Guenther  <rguenther@suse.de>
7714
7715         PR tree-optimization/35231
7716         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
7717         if A | B != 1.
7718
7719 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
7720
7721         Revert:
7722         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
7723         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
7724         libgcc_cmp_return mode.
7725
7726 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7727
7728         PR c/28368
7729         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
7730
7731 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
7732
7733         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
7734         multilibs.
7735
7736 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7737
7738         * doc/c-tree.texi: Use `@.' where appropriate.
7739         * doc/extend.texi: Likewise.
7740         * doc/install.texi: Likewise.
7741         * doc/invoke.texi: Likewise.
7742         * doc/loop.texi: Likewise.
7743         * doc/makefile.texi: Likewise.
7744         * doc/md.texi: Likewise.
7745         * doc/passes.texi: Likewise.
7746         * doc/standards.texi: Likewise.
7747         * doc/tm.texi: Likewise.
7748
7749 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
7750
7751         PR middle-end/35196
7752         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
7753         in entry_bb.
7754         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
7755         rather than in entry_bb.
7756
7757 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
7758
7759         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
7760         libgcc_cmp_return mode.
7761
7762 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
7763
7764         PR middle-end/35130
7765         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
7766         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
7767
7768 2008-02-15  Richard Guenther  <rguenther@suse.de>
7769             Zdenek Dvorak  <ook@ucw.cz>
7770
7771         PR tree-optimization/35164
7772         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
7773         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
7774         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
7775         Only propagate addresses which do not have abnormal SSA_NAMEs
7776         in their operands.
7777
7778 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
7779
7780         PR target/35088
7781         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
7782
7783 2008-02-15  Jan Hubicka  <jh@suse.cz>
7784
7785         PR middle-end/35149
7786         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
7787
7788 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
7789
7790         PR middle-end/34621
7791         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
7792         when calculating alignment_pad.
7793
7794 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
7795
7796         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
7797         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
7798         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
7799         and STACK_BOUNDARY define.
7800
7801 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
7802
7803         PR preprocessor/35061
7804         * c-pragma.c (handle_pragma_pop_macro): Check that
7805         pushed_macro_table has been allocated.
7806
7807 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
7808
7809         PR middle-end/35136
7810         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
7811         (force_gimple_operand): Likewise.
7812         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
7813         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
7814         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
7815         (find_interesting_uses_address): Check addressability and alignment
7816         of the base expression only after substituting bases of IVs into it.
7817
7818 2008-02-14  Michael Matz  <matz@suse.de>
7819
7820         PR target/34930
7821         * function.c (instantiate_virtual_regs_in_insn): Reload address
7822         before falling back to reloading the whole operand.
7823
7824 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
7825
7826         * config/s390/s390.c (s390_mainpool_start): Emit the pool
7827         before the first section switch note.
7828
7829 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7830
7831         * doc/bugreport.texi: Update copyright years.
7832         * doc/c-tree.texi: Likewise.
7833         * doc/cfg.texi: Likewise.
7834         * doc/cpp.texi: Likewise.
7835         * doc/cppinternals.texi: Likewise.
7836         * doc/fragments.texi: Likewise.
7837         * doc/frontends.texi: Likewise.
7838         * doc/gcc.texi: Likewise.
7839         * doc/gty.texi: Likewise.
7840         * doc/hostconfig.texi: Likewise.
7841         * doc/implement-c.texi: Likewise.
7842         * doc/libgcc.texi: Likewise.
7843         * doc/loop.texi: Likewise.
7844         * doc/makefile.texi: Likewise.
7845         * doc/options.texi: Likewise.
7846         * doc/passes.texi: Likewise.
7847         * doc/rtl.texi: Likewise.
7848         * doc/sourcebuild.texi: Likewise.
7849         * doc/standards.texi: Likewise.
7850         * doc/tree-ssa.texi: Likewise.
7851         * doc/trouble.texi: Likewise.
7852
7853         * doc/extend.texi: Use @: or add comma where appropriate.
7854         * doc/invoke.texi: Likewise.
7855         * doc/tm.texi: Likewise.
7856
7857 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
7858
7859         PR target/34393
7860         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
7861         to a reg.
7862
7863 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
7864
7865         * doc/md.texi (clz, ctz): Add reference.
7866         * doc/rtl.texi (clz, ctz): Likewise.
7867
7868 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7869
7870         PR other/35148
7871         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
7872         srcdir.
7873
7874 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
7875
7876         * config/s390/s390.c (struct constant_pool): New field
7877         emit_pool_after added.
7878         (s390_mainpool_start): Set the emit_pool_after flag according
7879         to the section switch notes.
7880         (s390_mainpool_finish): Consider emit_pool_after when emitting
7881         the literal pool at the end of the function.
7882         (s390_chunkify_start): Force literal pool splits at section
7883         switch notes.
7884
7885 2008-02-13  Michael Matz  <matz@suse.de>
7886
7887         PR debug/35065
7888         * var-tracking.c (clobber_variable_part): Correctly traverse the
7889         list.
7890
7891 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7892
7893         PR 29673
7894         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
7895         Add -fdump-ipa-inline.
7896         * tree-dump.c (dump_files): Remove tree-inlined dump.
7897         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
7898         
7899 2008-02-12  Richard Guenther  <rguenther@suse.de>
7900
7901         PR tree-optimization/35171
7902         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
7903         default defs.
7904
7905 2008-02-12  Richard Guenther  <rguenther@suse.de>
7906
7907         PR middle-end/35163
7908         * fold-const.c (fold_widened_comparison): Use get_unwidened in
7909         value-preserving mode.  Disallow final truncation.
7910
7911 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
7912
7913         PR middle-end/35136
7914         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
7915         code from here to...
7916         (force_gimple_operand): ...here.
7917
7918 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
7919
7920         PR c++/35144
7921         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
7922         non-compatible pointers.
7923         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
7924         different FIELD_DECLs, try harder by comparing field offsets, sizes
7925         and types.
7926
7927         PR inline-asm/35160
7928         * function.c (match_asm_constraints_1): Don't replace the same input
7929         multiple times.
7930
7931 2008-02-12  Anatoly Sokolov <aesok@post.ru>
7932
7933         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
7934         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
7935         (expand_epilogue): Restore RAMPZ register.
7936         * config/avr/avr.md (RAMPZ_ADDR): New constant.
7937
7938 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
7939
7940         * config/i386/cygwin.asm: (__alloca): Correct calling
7941         convention and alignment.
7942         (__chkstk): Force 8 byte stack alignment.
7943
7944 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
7945             Richard Guenther  <rguenther@suse.de>
7946
7947         PR tree-optimization/33992
7948         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
7949         the zero we compare against.
7950
7951 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
7952
7953         PR libfortran/35063
7954         * gthr-win32.h (__gthread_mutex_destroy_function): New function
7955         to CloseHandle after unlocking to prevent accumulation of handle
7956         count.
7957
7958 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7959
7960         PR middle_end/34150
7961         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
7962         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
7963         and update LABEL_NUSES during and after reload.
7964
7965 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
7966
7967         PR middle-end/34627
7968         * combine.c (simplify_if_then_else): Make sure the comparison is
7969         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
7970
7971 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
7972
7973         PR bootstrap/35051
7974         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
7975         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
7976         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
7977         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
7978         * tree.h (get_type_static_bounds): Likewise.
7979
7980 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7981
7982         * doc/invoke.texi (Option Summary, C++ Dialect Options)
7983         (Objective-C and Objective-C++ Dialect Options, Warning Options):
7984         Make -Wfoo language annotations match what the compiler outputs.
7985
7986 2008-02-08  Sa Liu  <saliu@de.ibm.com>
7987
7988         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
7989         intrinsics spu_convts, spu_convtu, spu_convtf.
7990
7991 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
7992
7993         * doc/extend.texi (Function Attributes) <noinline>: Mention
7994         asm ("") as method to keep calls.
7995
7996 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7997
7998         PR other/32754
7999         * doc/options.texi (Options): Replace references to opts.sh with
8000         optc-gen.awk.
8001         * opts-common.c: Likewise.
8002         * optc-gen.awk: Likewise.
8003         
8004 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
8005
8006         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
8007
8008 2008-02-07  Richard Henderson  <rth@redhat.com>
8009
8010         PR rtl-opt/33410
8011         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
8012         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
8013         funny mode.
8014
8015 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
8016
8017         PR tree-optimization/35085
8018         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
8019         for operand entry oe2 in addition to operand entry oe3 in order to
8020         expose more opportunities for vectorizer sum reduction.
8021
8022 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8023
8024         PR other/35107
8025         * Makefile.in (LIBS): Remove $(GMPLIBS).
8026         (cc1-dummy, cc1): Add $(GMPLIBS).
8027
8028 2008-02-06  Jan Hubicka  <jh@suse.cz>
8029
8030         PR target/23322
8031         * i386.md (moddf_integer): Do not produce partial memory stalls for
8032         targets where it hurts.
8033
8034 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
8035
8036         PR target/35083
8037         * optabs.c (expand_float): Do not check for decimal modes when
8038         expanding unsigned integer through signed conversion.
8039
8040 2008-02-06  Nick Clifton  <nickc@redhat.com>
8041
8042         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
8043         inside the clobber with a match_operand and duplicated operand
8044         number in the constraint.
8045         (ineqbranchsi): Delete redundant comment.
8046
8047 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
8048
8049         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
8050         builtin_define ("__USE_INIT_FINI__").
8051         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
8052         -msx multilibs.
8053         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
8054
8055 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8056
8057         PR documentation/30330
8058         * doc/invoke.texi (C++ Dialect Options)
8059         (Objective-C and Objective-C++ Dialect Options, Warning Options):
8060         For each warning option -Wfoo that allows -Wno-foo, ensure both
8061         -Wfoo and -Wno-foo are listed in the option index.  Fix index
8062         entry of -Wswitch-default, index -Wnormalized= including the
8063         `=', and -Wlarger-than-@var{len} including @var{len}.
8064
8065 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
8066
8067         * config/i386/i386.md (floatunssisf2): Use
8068         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
8069         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
8070         Macroize expander using MODEF mode iterator.
8071
8072 2008-02-05  Diego Novillo  <dnovillo@google.com>
8073
8074         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
8075
8076         PR 33738
8077         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
8078
8079 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8080
8081         PR other/35070
8082         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
8083
8084 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
8085
8086         PR target/35084
8087         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
8088         to indicate if a message should be generated.
8089         (init_cumulative_args): Updated.
8090         (function_value_32): Likewise.
8091
8092 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
8093
8094         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
8095
8096 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
8097
8098         PR target/35083
8099         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
8100         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
8101
8102 2008-02-04  Diego Novillo  <dnovillo@google.com>
8103
8104         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
8105
8106         PR 33738
8107         * tree-vrp.c (vrp_evaluate_conditional): With
8108         -Wtype-limits, emit a warning when comparing against a
8109         constant outside the natural range of OP0's type.
8110
8111 2008-02-04  Richard Guenther  <rguenther@suse.de>
8112
8113         PR middle-end/33631
8114         * expr.c (count_type_elements): Give for unions instead of
8115         guessing.
8116
8117 2008-02-04  Richard Guenther  <rguenther@suse.de>
8118
8119         PR middle-end/35043
8120         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
8121         to TYPE_DOMAINs base type instead of using bitsizetype here.
8122
8123 2008-02-03  Jason Merrill  <jason@redhat.com>
8124
8125         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
8126
8127 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8128
8129         PR other/29972
8130         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
8131         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
8132         (RS/6000 and PowerPC Options): Fix typos and markup.
8133         * doc/passes.texi (Tree-SSA passes): Likewise.
8134
8135 2008-02-02  Michael Matz  <matz@suse.de>
8136
8137         PR target/35045
8138         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
8139         from record_last_reg_set_info.
8140         (record_last_reg_set_info): Take an RTX argument, iterate over all
8141         constituent hardregs.
8142         (record_last_set_info, record_opr_changes): Change calls to
8143         new signature or to record_last_reg_set_info_regno.
8144
8145 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
8146
8147         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
8148
8149 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
8150
8151         PR rtl-optimization/34773
8152         * reg-notes.def (EQUAL): Mention significance of combination of
8153         REG_EQUAL and REG_RETVAL.
8154         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
8155         insn that has a REG_RETVAL.
8156
8157 2008-02-01  Roger Sayle  <roger@eyesopen.com>
8158
8159         PR bootstrap/33781
8160         * configure.ac (--enable-fixed-point): Disable unless explicitly
8161         requested on IRIX.
8162         * configure: Regenerate.
8163
8164 2008-02-01  Richard Guenther  <rguenther@suse.de>
8165
8166         PR other/35042
8167         * invoke.texi (-finline-limit): Remove no longer true parts
8168         of the documentation.  Note that there is no default value.
8169
8170 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
8171             Mark Mitchell  <mark@codesourcery.com>
8172             Ben Elliston  <bje@au.ibm.com>
8173
8174         PR c/29326
8175         * doc/extend.texi (Other Builtins): Document.
8176
8177 2008-01-31  Tom Browder <tom.browder@gmail.com>
8178
8179         * doc/c-tree.texi (Types): Fix grammar.
8180         (Expression trees): Ditto.
8181         * doc/passes.texi (Tree-SSA passes): Ditto.
8182         
8183         * doc/configterms.texi (Configure Terms): Fix typo.
8184         * doc/cpp.texi (Common Predefined Macros): Ditto.
8185         * doc/md.texi (Machine Constraints): Ditto.
8186         
8187         * doc/makefile.texi (Makefile): Add comma.
8188
8189 2008-01-31  Tom Browder  <tom.browder@gmail.com>
8190             Gerald Pfeifer  <gerald@pfeifer.com>
8191         
8192         * doc/sourcebuild.texi (Front End): Remove references to CVS
8193         and CVSROOT/modules.
8194         (Texinfo Manuals): Replace reference to CVS by one to SVN.
8195         (Back End): Remove reference to CVS.
8196
8197 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
8198
8199         PR target/34900
8200         * config/mips/mips.c (gen_load_const_gp): New function, taking a
8201         comment from...
8202         (mips16_gp_pseudo_reg): ...here.
8203         * config/mips/mips.md (load_const_gp): Replace with...
8204         (load_const_gp_<mode>): ...this :P-based insn.
8205
8206 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8207
8208         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
8209         options. Minor fixes.
8210         (-std): Move reference to standards closer to where language
8211         standards are first mentioned.
8212         
8213 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
8214
8215         PR rtl-optimization/34995
8216         * reload.c (alternative_allows_const_pool_ref): Take an rtx
8217         parameter and return a bool.  If the rtx parameter is nonnull,
8218         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
8219         (find_reloads): Update call accordingly.  Pass the new operand
8220         if it needed no address reloads, otherwise pass null.
8221
8222 2008-01-30  Richard Henderson  <rth@redhat.com>
8223
8224         PR c/34993
8225         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
8226         for unbounded arrays.
8227
8228 2008-01-30  Silvius Rus  <rus@google.com>
8229
8230         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
8231
8232 2008-01-30  Jan Hubicka  <jh@suse.cz>
8233
8234         PR target/34982
8235         * i386.c (init_cumulative_args): Use real function declaration when
8236         calling locally.
8237
8238 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
8239
8240         PR rtl-optimization/34998
8241         * global.c (build_insn_chain): Treat non-subreg_lowpart
8242         SUBREGs of pseudos as clobbering all the words covered by the
8243         SUBREG, not just all the bytes.
8244         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
8245         original df_ref rather than an extract parameter.
8246         (global_conflicts): Update call accordingly.
8247
8248 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
8249
8250         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
8251         the overflow check to make it easier to read.
8252         (__fixtfdi): Change the type of the ll member in union
8253         long_double to UDItype_x.
8254
8255 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
8256
8257         PR middle-end/34969
8258         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
8259         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
8260         * tree-inline.c (fold_marked_statements): Call
8261         cgraph_update_edges_for_call_stmt if folding a call statement.
8262         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
8263         debug_generic_stmt calls, reset it back afterwards.
8264
8265         PR c/35017
8266         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
8267         static decls.
8268         * c-typeck.c (build_external_ref): Don't pedwarn about
8269         static vars in current function's scope.
8270
8271 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
8272
8273         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
8274
8275 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
8276
8277         PR c/35002
8278         * ipa-struct-reorg.c: Fix spelling.
8279         * params.def: Ditto.
8280
8281 2008-01-29  Richard Guenther  <rguenther@suse.de>
8282
8283         PR middle-end/35006
8284         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
8285         field.
8286         * tree-inline.c (remap_type): Increment remapping_type_depth
8287         around remapping types.
8288         (copy_body_r): Only add referenced variables if they are referenced
8289         from code, not types.
8290
8291 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
8292
8293         PR c++/34055
8294         PR c++/34103
8295         PR c++/34219
8296         PR c++/34606
8297         PR c++/34753
8298         PR c++/34754
8299         PR c++/34755
8300         PR c++/34919
8301         PR c++/34961
8302         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
8303         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
8304
8305 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
8306
8307         PR target/34412
8308         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
8309         pointer for tiny stack.
8310
8311 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
8312
8313         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
8314
8315 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
8316
8317         * config/vx-common.h: Fix typo in comment.
8318
8319 2008-01-28  Ian Lance Taylor  <iant@google.com>
8320
8321         PR c++/34862
8322         PR c++/33407
8323         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
8324         coalesce pointers if they have different DECL_NO_TBAA_P values.
8325         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
8326         between variables with different DECL_NO_TBAA_P values.
8327
8328 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
8329
8330         PR 31535
8331         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
8332         are not legitimate small data references on SPE targets.
8333
8334 2008-01-28  David Daney  <ddaney@avtrex.com>
8335
8336         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
8337
8338 2008-01-28  David Daney  <ddaney@avtrex.com>
8339
8340         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
8341
8342 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
8343
8344         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
8345         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
8346         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
8347         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
8348         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
8349         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
8350         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
8351         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
8352
8353 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
8354
8355         * basic-block.h (condjump_equiv_p): Fix comment.
8356
8357 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
8358
8359         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
8360         print_generic_stmt_indented): Fix comment.
8361
8362 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
8363
8364         * configure.ac (__stack_chk_fail): Add detecion for availability
8365         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
8366         * configure: Regenerate.
8367
8368 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
8369
8370         PR middle-end/34688
8371         * final.c (output_addr_const): Handle TRUNCATE.
8372
8373 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
8374
8375         PR target/34711
8376         * tree-ssa-loop-ivopts.c (comp_cost): New type.
8377         (zero_cost, infinite_cost): New constants.
8378         (struct cost_pair): Change type of cost to comp_cost.
8379         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
8380         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
8381         New functions.
8382         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
8383         split_address_cost, ptr_difference_cost, difference_cost,
8384         get_computation_cost_at, get_computation_cost,
8385         determine_use_iv_cost_generic, determine_use_iv_cost_address,
8386         determine_use_iv_cost_condition, determine_use_iv_costs,
8387         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
8388         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
8389         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
8390         Change type of cost to comp_cost.
8391         (determine_iv_cost): Increase cost of non-original ivs, instead
8392         of decreasing the cost of original ones.
8393         (get_address_cost): Indicate the complexity of the addressing mode 
8394         in comp_cost.
8395         (try_add_cand_for): Prefer using ivs not specific to some object.
8396         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
8397
8398 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
8399             Janis Johnson  <janis187@us.ibm.com>
8400
8401         PR target/34814
8402         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
8403         (TARGET_INSTANTIATE_DECLS): Likewise.
8404         * target.h (expand_to_rtl_hook): New target hook.
8405         (instantiate_decls): Likewise.
8406         * function.c (instantiate_decl): Make non-static.  Rename to...
8407         (instantiate_decl_rtl): ... this.
8408         (instantiate_expr): Use instantiate_decl_rtl.
8409         (instantiate_decls_1): Likewise.
8410         (instantiate_decls): Likewise.
8411         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
8412         * function.h (instantiate_decl_rtl): Add prototype.
8413         * cfgexpand.c (target.h): New include.
8414         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
8415         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
8416         (TARGET_INSTANTIATE_DECLS): Likewise.
8417         (TARGET_INITIALIZER): New target hooks added.
8418         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
8419         New prototype.
8420         * config/rs6000/rs6000.c (tree-flow.h): New include.
8421         (machine_function): Add sdmode_stack_slot field.
8422         (rs6000_alloc_sdmode_stack_slot): New function.
8423         (rs6000_instantiate_decls): Likewise.
8424         (rs6000_secondary_memory_needed_rtx): Likewise.
8425         (rs6000_check_sdmode): Likewise.
8426         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
8427         (TARGET_INSTANTIATE_DECLS): Likewise.
8428         (rs6000_hard_regno_mode_ok): Allow SDmode.
8429         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
8430         (rs6000_emit_move): Handle SDmode.
8431         (function_arg_advance): Likewise.
8432         (function_arg): Likewise.
8433         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
8434         SDmode var args for 32-bit compiles.
8435         (rs6000_secondary_reload_class): Handle SDmode.
8436         (rs6000_output_function_epilogue): Likewise.
8437         (rs6000_function_value): Simplify if statement.
8438         (rs6000_libcall_value): Likewise.
8439         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
8440         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
8441         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
8442         (movsd_hardfloat): New define_insn.
8443         (movsd_softfloat): Likewise.
8444         (movsd_store): Likewise.
8445         (movsd_load): Likewise.
8446         (extendsddd2): Likewise.
8447         (extendsdtd2): Likewise.
8448         (truncddsd2): Likewise.
8449         (movdd_hardfloat64): Fixup comment.
8450         (UNSPEC_MOVSD_LOAD): New constant.
8451         (UNSPEC_MOVSD_STORE): Likewise.
8452
8453 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
8454
8455         PR c++/34965
8456         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
8457         TRUTH_XOR_EXPR.
8458         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
8459         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
8460         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
8461         and TRUTH_XOR_EXPR.
8462
8463 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
8464
8465         PR target/34794
8466         * config.gcc: Separate AIX 5.3 from AIX 6.1.
8467         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
8468         __LONGDOUBLE128 too.
8469         * config/rs6000/aix61.h: New file.
8470
8471 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
8472
8473         PR rtl-optimization/34959
8474         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
8475         popcount and parity rtxes the same mode as their operand.
8476         Truncate or extend the result to the return value's mode
8477         if necessary.
8478
8479 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
8480
8481         PR target/34981
8482         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
8483         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
8484         to GOT_VERSION_REGNUM.
8485         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
8486         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
8487         * config/mips/mips.c (mips_emit_call_insn): New function.
8488         (mips_call_tls_get_addr): Call mips_expand_call directly.
8489         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
8490         emit_call_insn.
8491         (mips16_build_call_stub): Likewise.  Return the call insn or null.
8492         (mips_expand_call): Update the call to mips16_build_call_stub
8493         accordingly and a remove redundant condition.  Assert that MIPS16
8494         stubs do not use lazy binding.  Use mips_emit_call_insn and return
8495         the call insn.
8496         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
8497         TARGET_USE_GOT.
8498         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
8499         (mips_avoid_hazard): Remove hazard_set handling.
8500         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
8501         (UNSPEC_RESTORE_GP): ...this.
8502         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
8503         (FAKE_CALL_REGNO): Rename to...
8504         (GOT_VERSION_REGNUM): ...this.
8505         (type): Add "ghost" value.  Add an associated insn reservation.
8506         (hazard_set): Remove.
8507         (exception_receiver): Rename to...
8508         (restore_gp): ...this and update the unspec identifier accordingly.
8509         (exception_receiver, nonlocal_got_receiver): New expanders.
8510         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
8511         FAKE_CALL_REGNO.  Remove hazard_set attribute.
8512         (set_got_version, update_got_version): New patterns.
8513
8514 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
8515
8516         PR target/34970
8517         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
8518
8519 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
8520
8521         PR other/31955
8522         * doc/install.texi2html: Generate gcc-vers.texi.
8523
8524 2008-01-25  DJ Delorie  <dj@redhat.com>
8525
8526         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
8527
8528 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
8529
8530         * config/c4x: Remove directory.
8531         * config.gcc (crx-*, mt-*): Mark obsolete.
8532         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
8533         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
8534         sh-*-rtemscoff*): Remove cases.
8535         * defaults.h (C4X_FLOAT_FORMAT): Remove.
8536         * real.c (encode_c4x_single, decode_c4x_single,
8537         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
8538         c4x_extended_format): Remove.
8539         * real.h (c4x_single_format, c4x_extended_format): Remove.
8540         * doc/extend.texi (interrupt, naked): Remove mention of attributes
8541         on C4x.
8542         (Pragmas): Remove comment about c4x pragmas.
8543         * doc/install.texi (c4x): Remove target-specific instructions.
8544         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
8545         * doc/md.texi (Machine Constraints): Remove C4x documentation.
8546         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
8547         refer to C4x source files as examples.
8548         (C4X_FLOAT_FORMAT): Remove documentation.
8549
8550 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
8551
8552         * config/bfin/bfin.c (override_options): Reorder tests so that
8553         flag_pic gets enabled for -msep-data.
8554
8555 2008-01-25  Richard Guenther  <rguenther@suse.de>
8556
8557         PR middle-end/32244
8558         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
8559         to its bitfield precision if required.
8560
8561 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
8562
8563         PR middle-end/33880
8564         * tree-nested.c (walk_omp_for): New function.
8565         (convert_nonlocal_reference, convert_local_reference): Call
8566         walk_omp_for on OMP_FOR.
8567         (convert_call_expr): Call walk_body on OMP_FOR's
8568         OMP_FOR_PRE_INIT_BODY.
8569
8570 2008-01-25  Richard Guenther  <rguenther@suse.de>
8571
8572         PR tree-optimization/34966
8573         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
8574         default defs and PHI_NODEs we have to insert after the
8575         defining statement.
8576
8577 2008-01-24  Nick Clifton  <nickc@redhat.com>
8578
8579         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
8580         Provide a default definition.
8581         (LIBGCC2_UNITS_PER_WORD): Likewise.
8582
8583         * config/stormy16/stormy16.c: Include df.h for the prototype
8584         for df_regs_ever_live_p.
8585         (xstormy16_expand_builtin_va_start): Convert the stack offset
8586         into a component_ref and then use POINTER_PLUS_EXPR to add it
8587         to the incoming_virtual_args_rtx.
8588         (xstormy16_gimplify_va_arg_expr): Rename to
8589         xstormy16_gimplify_va_arg_expr.
8590         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
8591         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
8592         xstormy16_gimplify_va_arg_expr.
8593         Fix up some formatting issues.
8594
8595         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
8596         Move to predicates.md.
8597         (xs_hi_general_operand): Likewise.
8598         (xs_hi_nonmemory_operand): Likewise.
8599         * config/stormy16/predicates.md:
8600         (xstormy16_carry_plus_operand): New predicate.
8601         (xs_hi_general_operand): New predicate.
8602         (xs_hi_nonmemory_operand): New predicate.
8603         * config/stormy16/stormy16-protos.h:
8604         (xstormy16_carry_plus_operand): Delete prototype.
8605         (xs_hi_general_operand): Likewise.
8606         (xs_hi_nonmemory_operand): Likewise.
8607
8608         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
8609         modifiers as they are no longer needed and they can trigger
8610         reload spill failures.
8611
8612         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
8613         with a match_operand in order to help reload.
8614
8615         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
8616         constraint with 'e' for the 8th alternative as this version of
8617         the mov.w instruction only accepts the lower 8 registers.
8618
8619 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
8620
8621         PR target/34856
8622         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
8623         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
8624         vector elements.
8625
8626 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
8627
8628         PR middle-end/33333
8629         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
8630
8631 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
8632
8633         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
8634         New functions.
8635         (remove_structure): Update allocations list before removing structure.
8636         
8637 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
8638
8639         * ipa-struct-reorg.c (is_safe_cond_expr, 
8640         create_new_stmts_for_cond_expr): Use integer_zerop function,
8641         that recognize not only zero-pointer, but zero-integer too.
8642
8643 2008-01-25  Ben Elliston  <bje@au.ibm.com>
8644
8645         PR other/22232
8646         * fixproto: Escape "." in sed expression that strips leading "./".
8647
8648 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
8649
8650         PR driver/34904
8651         * gcc.c (SWITCH_OK): Removed.
8652         (SWITCH_LIVE): Changed to bit.
8653         (SWITCH_FALSE): Likewise.
8654         (SWITCH_IGNORE): Likewise.
8655         (switchstr): Change live_cond to unsigned int.
8656         (process_command): Replace SWITCH_OK with 0.
8657         (do_self_spec): Likewise.
8658         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
8659         (give_switch): Likewise.
8660         (used_arg): Likewise.
8661         (do_spec_1): Set the SWITCH_IGNORE bit.
8662         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
8663         bits.  Set the SWITCH_LIVE bit.
8664
8665 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
8666
8667         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
8668
8669 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
8670
8671         PR tree-optimization/34472
8672         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
8673         parameter to a "bool *" and set *DATA to false if there is
8674         an unsafe access.  Do not delete the structure here.
8675         (check_cond_exprs): Delete it here instead.
8676         (check_cond_exprs, exclude_cold_structs): Do not increase
8677         I when removing a structure.
8678
8679 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
8680
8681         PR target/34856
8682         * config/i386/i386.c (ix86_expand_vector_init): Consider only
8683         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
8684
8685 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
8686
8687         PR middle-end/34934
8688         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
8689         a fixed vector for stack.
8690
8691 2008-01-24  Ben Elliston  <bje@au.ibm.com>
8692
8693         PR c++/25701
8694         * doc/gcc.texi (Software development): Add a direntry for g++.
8695         
8696 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
8697
8698         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
8699         stale and straggling -fforce-addr comments above.
8700
8701         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
8702         define.
8703         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
8704         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
8705
8706 2008-01-23  Michael Matz  <matz@suse.de>
8707
8708         PR debug/34895
8709         * dwarf2out.c (force_type_die): Use modified_type_die instead of
8710         gen_type_die.
8711
8712 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
8713
8714         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
8715         malloc result type.
8716
8717 2008-01-23 Anatoly Sokolov <aesok@post.ru>
8718
8719         * config/avr/avr.c (avr_current_arch): New variable.
8720         (avr_arch_types): Add 'avr31' and 'avr51' entries.
8721         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
8722         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
8723         (avr_override_options): Init 'avr_current_arch'. 
8724         (base_arch_s): Move from here...
8725         * config/avr/avr.h (base_arch_s): ... here. Add new members 
8726         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
8727         'mega' to 'have_jmp_call'.
8728         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
8729         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
8730         macros.
8731         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
8732         architectures.
8733         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
8734         MULTILIB_MATCHES): (Ditto.).
8735
8736 2008-01-23  Richard Guenther  <rguenther@suse.de>
8737
8738         PR middle-end/31529
8739         * cgraphunit.c (cgraph_reset_node): Always mark the node
8740         not reachable if it is not queued already.
8741
8742 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
8743
8744         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
8745         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
8746         (cputype_selected): New static variable.
8747         (bfin_handle_option): Set it if -mcpu is used.
8748         (override_option): Select default set of workarounds if no cpu type
8749         selected on the command line.
8750         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
8751
8752         From  Michael Frysinger  <michael.frysinger@analog.com>
8753         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
8754         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
8755
8756         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
8757         for bf547, bf523, bf524, and bf526.
8758         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
8759         bf526.
8760         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
8761         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
8762         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
8763         __ADSPBF547__ and __ADSPBF54x__ for bf547.
8764         * doc/invoke.texi (Blackfin Options): Document that
8765         -mcpu now accept bf547, bf523, bf524, and bf526.
8766
8767 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
8768
8769         PR rtl-optimization/34628
8770         * combine.c (try_combine): Stop and undo after the first combination
8771         if an autoincrement side-effect on the first insn has effectively
8772         been lost.
8773
8774 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
8775
8776         PR target/34529
8777         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
8778         Offset addresses are not valid for Altivec or paired float modes.
8779
8780 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
8781
8782         PR c++/34607
8783         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
8784         if DECL_INITIAL (decl) is error_mark_node.
8785
8786         PR c++/34914
8787         * c-common.c (handle_vector_size_attribute): Only allow
8788         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
8789         the same way as pointer, array etc. types.
8790         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
8791
8792         PR c++/34917
8793         * tree.c (build_type_attribute_qual_variant): Call
8794         build_qualified_type if attributes are equal, but quals are not.
8795
8796 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8797
8798         PR 32102
8799         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
8800         * flags.h (warn_strict_aliasing): Remove.
8801         (warn_strict_overflow): Remove.
8802         * opts.c (warn_strict_aliasing): Remove.
8803         (warn_strict_overflow): Remove.
8804         * c-opts.c (c_common_handle_option): -Wall only sets
8805         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
8806         (c_common_post_options): Give default values to -Wstrict-aliasing
8807         and -Wstrict-overflow if they are uninitialized.
8808         * common.opt (Wstrict-aliasing): Specify Var and Init.
8809         (Wstrict-overflow): Likewise.
8810
8811 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
8812
8813         PR rtl-optimization/26854
8814         PR rtl-optimization/34400
8815         PR rtl-optimization/34884
8816         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
8817         DF_RD->gen.
8818         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
8819         (df_rd_bb_info.expanded_lr_out): Deleted
8820         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
8821         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
8822         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
8823         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
8824         Removed code to allocate, initialize or free expanded_lr_out.
8825         (df_rd_bb_local_compute_process_def): Restructured to make more
8826         understandable.
8827         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
8828         sets if the sets are being trimmed.
8829
8830 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
8831
8832         PR bootstrap/32287
8833         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
8834         (as_vers): Likewise.
8835         * configure: Regenerated.
8836
8837 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8838
8839         PR middle-end/33092
8840         * tree-pass.h (pass_build_alias): New pass.
8841         * tree-ssa-alias.c (gate_build_alias): New.
8842         (pass_build_alias): New.
8843         * passes.c (init_optimization_passes): Add pass_build_alias after
8844         pass_create_structure_vars.
8845
8846 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
8847
8848         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
8849         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
8850         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
8851         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
8852         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
8853         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
8854         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
8855         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
8856         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
8857         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
8858         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
8859         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
8860         * config/s390/s390.md (FP_ALL): New mode iterator.
8861         (_d): New mode attribute.
8862         ("*signbit<mode>2>"): Changed mode of first operand.
8863         ("isinf<mode>2"): Changed mode of first operand.
8864         ("*TDC_insn"): Adaptation for DFP modes.
8865
8866 2008-01-22  Ben Elliston  <bje@au.ibm.com>
8867
8868         * tree.c (check_qualified_type): Improve function description.
8869
8870 2008-01-21  Jason Merrill  <jason@redhat.com>
8871
8872         PR c++/34196
8873         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
8874         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
8875         if it is set.
8876
8877 2008-01-21  DJ Delorie  <dj@redhat.com>
8878
8879         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
8880         return zero.
8881
8882 2008-01-21  Richard Guenther  <rguenther@suse.de>
8883
8884         PR middle-end/34856
8885         * tree-cfg.c (verify_expr): Allow all invariant expressions
8886         instead of just constant class ones as reference argument.
8887         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
8888         like any other constant.
8889         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
8890
8891 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
8892
8893         * regmove.c (fixup_match_1): Update call crossed frequencies.
8894
8895 2008-01-21  Richard Guenther  <rguenther@suse.de>
8896
8897         PR c/34885
8898         * tree-inline.c (setup_one_parameter): Deal with mismatched
8899         types using a VIEW_CONVERT_EXPR.
8900
8901 2008-01-21  Alon Dayan  <alond@il.ibm.com>
8902             Olga Golovanevsky  <olga@il.ibm.com>
8903         
8904         PR tree-optimization/34701
8905         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
8906         when the structure size is not a power of 2.
8907
8908 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
8909
8910         * doc/install.texi: Add doc for --enable-checking=df.
8911         
8912 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8913
8914         PR rtl-optimization/34808
8915         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
8916
8917 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
8918
8919         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
8920         input.
8921
8922 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
8923
8924         PR rtl-optimization/26854
8925         PR rtl-optimization/34400
8926         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
8927         DF_RD->gen.
8928         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
8929         (df_rd_bb_info.expanded_lr_out): New.
8930         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
8931         * loop_iv.c (iv_analysis_loop_init): Ditto.
8932         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
8933         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
8934         Added code to allocate, initialize or free expanded_lr_out.
8935         (df_rd_bb_local_compute_process_def): Restructured to make
8936         more understandable.
8937         (df_rd_confluence_n): Add code to do nothing with fake edges and
8938         code to no apply invalidate_by_call sets if the sets are being trimmed.
8939         (df_lr_local_finalize): Renamed to df_lr_finalize.
8940         (df_live_local_finalize): Renamed to df_live_finalize.
8941
8942 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
8943
8944         PR target/34831
8945         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
8946         deciding whether to use reciprocal instructions.
8947
8948 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
8949
8950         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
8951         dwarf2out_note_section_used if cold_text_section is NULL.
8952
8953 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
8954
8955         PR gcov-profile/34610
8956         * tree-cfg.c (make_edges): Mark both outgoing edges from
8957         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
8958         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
8959         from OMP_FOR and OMP_CONTINUE outgoing edges.
8960
8961         * tree-profile.c (tree_profiling): Return early if
8962         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
8963         at the end.
8964         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
8965         from cfun to child_cfun.
8966         * function.h (struct function): Add after_tree_profile bit.
8967
8968 2008-01-19 Anatoly Sokolov <aesok@post.ru>
8969
8970         * config/avr/avr.S (_exit): Disable interrupt.
8971
8972 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
8973             Steven Bosscher  <stevenb.gcc@gmail.com>
8974
8975         PR rtl-optimization/26854
8976         PR rtl-optimization/34400
8977         * df-problems.c (df_live_scratch): New scratch bitmap.
8978         (df_live_alloc): Allocate df_live_scratch when doing df_live.
8979         (df_live_reset): Clear the proper bitmaps.
8980         (df_live_bb_local_compute): Only process the artificial defs once
8981         since the order is not important.
8982         (df_live_init): Init the df_live sets only with the variables
8983         found live by df_lr.
8984         (df_live_transfer_function): Use the df_lr sets to prune the
8985         df_live sets as they are being computed.  
8986         (df_live_free): Free df_live_scratch.
8987
8988 2008-01-18  Ian Lance Taylor  <iant@google.com>
8989
8990         * common.opt: Add fmerge-debug-strings.
8991         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
8992         flag_merge_debug_strings rather than flag_merge_constants.
8993         * doc/invoke.texi (Option Summary): Mention
8994         -fmerge-debug-strings.
8995         (Debugging Options): Document -fmerge-debug-strings.
8996
8997 2008-01-18  Ian Lance Taylor  <iant@google.com>
8998
8999         PR c++/33407
9000         * tree.h (DECL_IS_OPERATOR_NEW): Define.
9001         (struct tree_function_decl): Add new field operator_new_flag.
9002         * tree-inline.c (expand_call_inline): When inlining a call to
9003         operator new, force the return value to go into a variable, and
9004         set DECL_NO_TBAA_P on that variable.
9005         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
9006
9007 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
9008
9009         PR debug/34484
9010         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
9011         DWARF2_DEBUGGING_INFO.
9012         (dwarf2out_note_section_used): Ditto.  Add prototype.
9013         (have_multiple_function_sections, text_section_used,
9014         cold_text_section_used, *cold_text_sections): Move declarations
9015         before their uses.
9016
9017 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
9018
9019         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
9020         field and add signal_ra.
9021         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
9022         assignments to frame state pc.  Move end of stack check after
9023         MD_FALLBACK_FRAME_STATE_FOR.
9024         (uw_update_context_1): Use frame state signal_regs if set, instead
9025         of checking signal_frame flag.
9026         (uw_update_context): Use frame state signal_ra if set.
9027         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
9028         * config/xtensa/linux-unwind.h: New file.
9029
9030 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
9031
9032         * modulo-sched.c (get_sched_window): Fix comment typo.
9033
9034 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
9035
9036         PR tree-optimization/34648
9037         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
9038
9039 2008-01-17  Anatoly Sokolov <aesok@post.ru>
9040
9041         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
9042         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
9043
9044 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
9045
9046         PR rtl-optimization/34400
9047         * df-core.c (df_worklist_dataflow_overeager,
9048         df_worklist_dataflow_doublequeue): New functions.
9049         (df_worklist_dataflow): Two different worklist solvers.
9050         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
9051         New param.
9052
9053 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
9054
9055         PR testsuite/34821
9056         * doc/invoke.texi: Document the dependence on pthread for fopenmp
9057         and ftree-parallelize-loops.
9058
9059 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
9060
9061         PR rtl-optimization/34826
9062         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
9063
9064 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
9065
9066         * global.c (find_reg): Mark the eh regs as used if necessary.
9067         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
9068         * ra.h (struct allocno): no_eh_reg field added.  Changed
9069         no_stack_reg type to bitfield.
9070
9071 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
9072
9073         * tree.c (substitute_in_expr): Add missing 'break'.
9074
9075 2008-01-17  Richard Guenther  <rguenther@suse.de>
9076
9077         PR tree-optimization/34825
9078         * tree-ssa-math-opts.c (is_division_by): Do not recognize
9079         x / x as division to handle.
9080
9081 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9082
9083         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
9084         "-pthread" is specified.
9085         * pa-hpux11.h (LIB_SPEC): Likewise.
9086
9087 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
9088             Peter Bergner  <bergner@vnet.ibm.com>
9089
9090         PR rtl-optimization/33796
9091         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
9092
9093 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9094
9095         PR libgfortran/34699
9096         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
9097         static links.
9098         * pa-hpux10.h (LINK_SPEC): Likewise.
9099         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
9100
9101 2008-01-16  Richard Guenther  <rguenther@suse.de>
9102
9103         PR middle-end/32628
9104         * fold-const.c (fold_convert_const_int_from_int): Do not
9105         set overflow if that occured only because of a sign extension
9106         change when converting from/to a sizetype with the same
9107         precision and signedness.
9108
9109 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
9110
9111         PR debug/34249
9112         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
9113         location address to the correct place.  Update copyright year.
9114
9115 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
9116
9117         * lambda-code.c (lambda_transform_legal_p): Handle the case of
9118         no dependences in the dependence_relations vector.
9119
9120 2008-01-16  Jan Hubicka  <jh@suse.cz>
9121
9122         PR rtl-optimization/31396
9123         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
9124         * cfg.c (dump_reg_info): Print it.
9125         * regs.h (struct reg_info_t): add freq_calls_crossed.
9126         (REG_FREQ_CALLS_CROSSED): New macro.
9127         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
9128         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
9129         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
9130         regmove_optimize): Update call crossed frequencies.
9131         * local-alloc.c (struct qty): Add freq_calls_crossed.
9132         (alloc_qty): Copute freq_calls_crossed.
9133         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
9134         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
9135         * ra.h (struct allocno): Add freq_calls_crossed.
9136
9137 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
9138
9139         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
9140         libgomp when compiling with ftree-parallelize-loops.
9141         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
9142
9143 2008-01-16  Richard Guenther  <rguenther@suse.de>
9144
9145         PR tree-optimization/34769
9146         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
9147         * tree.c (int_cst_value): Instead make this function more
9148         permissive in what it accepts as valid input.  Document this
9149         function always sign-extends the value.
9150
9151 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
9152             Richard Guenther  <rguenther@suse.de>
9153
9154         PR c/34668
9155         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
9156         (gimple_fold_indirect_ref_rhs): ... this.
9157         (gimple_fold_indirect_ref): New function with foldings
9158         that preserve lvalueness.
9159         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
9160         * tree-flow.h (gimple_fold_indirect_ref): Declare.
9161         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
9162         to fold an INDIRECT_REF, fall back to the old use of
9163         fold_indirect_ref_1.
9164
9165 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
9166
9167         * tree-data-ref.c (subscript_dependence_tester_1): Call 
9168         free_conflict_function.
9169         (compute_self_dependence): Same.
9170
9171 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
9172
9173         PR debug/34249
9174         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
9175         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
9176         function global.
9177         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
9178         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
9179         for DWARF2_UNWIND_INFO targets.
9180
9181 2008-01-16  Richard Guenther  <rguenther@suse.de>
9182
9183         PR c/34768
9184         * c-typeck.c (common_pointer_type): Do not merge inconsistent
9185         type qualifiers for function types.
9186
9187 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
9188
9189         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
9190         loop_iterator li from previous commit.
9191
9192 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
9193
9194         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
9195
9196 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
9197
9198         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
9199         (parallelize_loops): Don't parallelize irreducible components.
9200
9201 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9202
9203         PR c++/24924
9204         * c-opts (c_common_post_options): Do not enable CPP
9205         flag_pedantic_errors by default.
9206         
9207 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
9208
9209         PR rtl-optimization/31944
9210         * cse.c (remove_pseudo_from_table): New function.
9211         (merge_equiv_classes): Use above function to remove pseudo-registers.
9212         (invalidate): Likewise.
9213
9214 2008-01-13  Richard Guenther  <rguenther@suse.de>
9215
9216         PR middle-end/34601
9217         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
9218         instead of TYPE_MODE to deal with calls from expand_one_error_var.
9219
9220 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
9221
9222         * gcse.c (cprop_jump): Call validate_unshare_change instead of
9223         validate_change to unshare the source of the PC set.
9224
9225 2008-01-12  Jan Hubicka  <jh@suse.cz>
9226
9227         PR middle-end/32135
9228         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
9229         references above array bounds.  This might trigger bounds checks for
9230         pointers to arrays.
9231
9232 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
9233
9234         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
9235         new_replaceable_dependencies.
9236
9237 2008-01-12  Doug Kwan  <dougkwan@google.com>
9238
9239         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
9240         instead of OPT_Wreturn_type in warning due to ignored return type
9241         qualifiers.
9242         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
9243         options included in -Wextra.
9244         * c.opt: New option -Wignored_qualifiers.
9245         * doc/invoke.texi (Warning Options, -Wextra): Add new option
9246         -Wignore_qualifiers.
9247         (-Wignored-qualifiers): Document.
9248         (-Wreturn-type): Remove description of functionality now handled
9249         by -Wignored-qualifiers.
9250
9251 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
9252
9253         PR ada/33788
9254         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
9255         NOP_EXPR if it is between integral types with the same precision.
9256
9257 2008-01-12  Jan Hubicka  <jh@suse.cz>
9258
9259         PR other/28023
9260         * invoke.texi (max-inline-recursive-depth): Fix default value.
9261
9262 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
9263
9264         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
9265         correct type.
9266
9267 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
9268         
9269         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
9270         
9271 2008-01-11  James E. Wilson  <wilson@specifix.com>
9272
9273         PR target/26015
9274         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
9275
9276 2008-01-11  Anatoly Sokolov <aesok@post.ru>
9277
9278         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
9279         save/restore frame pointer register and don't use 'call-prologues' 
9280         optimization in function with "OS_task" attribute.
9281
9282 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
9283
9284         PR middle-end/31309
9285         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
9286         when copying to memory.
9287
9288 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
9289
9290         PR rtl-optimization/30905
9291         * cfgcleanup.c: Include dce.h
9292         (crossjumps_occured): New global variable.
9293         (try_crossjump_bb): Exit loop after finding a fallthru edge.
9294         If something changed, set crossjumps_occured to true.
9295         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
9296         Don't add/remove fake edges to exit here...
9297         (cleanup_cfg): ...but do it here, when crossjumping.
9298         Run a fast DCE when successful crossjumps occured in the latest
9299         iteration of try_optimize_cfg.
9300
9301 2008-01-11  Richard Guenther  <rguenther@suse.de>
9302
9303         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
9304         (struct vn_unary_op_s): Likewise.
9305         (vn_reference_insert): Free old reference on hash collision.
9306
9307 2008-01-10  Raksit Ashok  <raksit@google.com>
9308
9309         PR rtl-optimization/27971
9310         * combine.c (find_split_point): Split PLUS expressions which are
9311         inside a MEM rtx, and whose first operand is complex.
9312
9313 2008-01-10  DJ Delorie  <dj@redhat.com>
9314
9315         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
9316         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
9317         (m32c_hard_regno_ok): Call the underlying function.
9318
9319 2008-01-10  Richard Guenther  <rguenther@suse.de>
9320
9321         PR middle-end/34683
9322         * tree-cfg.c (tree_merge_blocks): Do not go through the
9323         full-blown folding and stmt updating path if we just deal
9324         with virtual operands.
9325         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
9326         test for abnormal SSA_NAMEs.
9327
9328 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
9329
9330         PR middle-end/34641
9331         * reload.c (push_reload): Add assertions.  All constants from
9332         reg_equiv_constant should have been used for replacing the respective
9333         pseudo earlier.
9334         (find_reloads_address): Invoke find_reloads_address_part for
9335         constant taken from the reg_equiv_constant array.
9336
9337 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
9338
9339         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
9340         field (valnum) the first in the struct.  Replace bools with
9341         unit bit fields.
9342
9343 2008-01-10  Richard Guenther  <rguenther@suse.de>
9344
9345         PR tree-optimization/34651
9346         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
9347         types and ordering for masking and converting.
9348
9349 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
9350
9351         PR tree-optimization/34017
9352         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
9353         also for PHI_NODE expressions.
9354
9355 2008-01-09  Jan Hubicka  <jh@suse.cz>
9356
9357         PR tree-optimization/34708
9358         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
9359         based on number of case labels.
9360         (init_inline_once): Remove switch_cost.
9361         * tree-inline.h (eni_weights_d): Remove switch_cost.
9362
9363 2008-01-09  Richard Guenther  <rguenther@suse.de>
9364         Andrew Pinski  <andrew_pinski@playstation.sony.com>
9365
9366         PR middle-end/30132
9367         * gimplify.c (gimplify_cond_expr): Do not create an addressable
9368         temporary if an rvalue is ok or an lvalue is not required.
9369
9370 2008-01-09  Richard Guenther  <rguenther@suse.de>
9371
9372         PR middle-end/34458
9373         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
9374         adjust return type.
9375
9376 2008-01-09  Richard Guenther  <rguenther@suse.de>
9377
9378         PR middle-end/34679
9379         * tree.c (host_integerp): Check for sizetype only if the
9380         type is an integer type.
9381
9382 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
9383
9384         PR debug/26364
9385         * opts.c (decode_options): Disable inlining of functions called
9386         once if not in unit-at-a-time mode.
9387
9388 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
9389
9390         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
9391
9392 2008-01-08  Richard Guenther  <rguenther@suse.de>
9393
9394         PR middle-end/31863
9395         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
9396         out early if the result will be unused.
9397
9398 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
9399
9400         PR target/34709
9401         Revert:
9402
9403         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
9404         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
9405         for TARGET_RECIP.       
9406         
9407 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
9408         
9409         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
9410         for vectorization tuned.
9411         
9412 2008-01-08  Richard Guenther  <rguenther@suse.de>
9413
9414         PR tree-optimization/34683
9415         * tree-ssa-operands.c (operand_build_cmp): Export.
9416         * tree-ssa-operands.h (operand_build_cmp): Declare.
9417         * tree-vn.c (vuses_compare): Remove.
9418         (sort_vuses): Use operand_build_cmp.
9419         (sort_vuses_heap): Likewise.
9420         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
9421         to re-use old VEC if available.  Do not sort already sorted VUSEs.
9422         (vdefs_to_vec): Do not sort already sorted VDEFs.
9423
9424 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
9425
9426         PR middle-end/34694
9427         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
9428
9429 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
9430
9431         PR target/34702
9432         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
9433         limitations of reciprocal sequences on x86 targets.
9434
9435 2008-01-08  Richard Guenther  <rguenther@suse.de>
9436
9437         PR tree-optimization/34683
9438         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
9439
9440 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
9441
9442         PR target/34622
9443         * config/darwin.c (darwin_mergeable_string_section): Don't use
9444         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
9445
9446 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
9447
9448         PR target/34682
9449         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
9450         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
9451         predicates of op0 and op1 to register_operand.
9452         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
9453         expander using X87MODEF mode iterator.  Change predicates of
9454         op0 and op1 to register_operand.
9455         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
9456         corresponding patterns and macroize using MODEF macro.  Change
9457         predicates of op0 and op1 to register_operand and remove
9458         "m" constraint. Disparage "r" alternative with "!".
9459         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
9460         macroize using X87MODEF macro.  Change predicates of op0 and op1
9461         to register_operand and remove "m" constraint.  Disparage "r"
9462         alternative with "!".
9463         (absneg splitter with memory operands): Remove.
9464         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
9465         patterns and macroize using X87MODEF mode iterator.
9466         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
9467         Change predicate of op1 to register_operand.
9468         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
9469         for memory operands.
9470
9471 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
9472
9473         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
9474
9475 2008-01-07  Richard Guenther  <rguenther@suse.de>
9476
9477         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
9478         fields.
9479
9480 2008-01-07  Richard Guenther  <rguenther@suse.de>
9481
9482         PR tree-optimization/34683
9483         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
9484         VOPs of the needed size to save memory.  Use VEC_quick_push
9485         to save compile-time.
9486         (vdefs_to_vec): Likewise.
9487
9488 2008-01-07  Sa Liu  <saliu@de.ibm.com>
9489
9490         * config/spu/spu.md (divdf3): Genetate inline code for double
9491         division.  The implementation doesn't handle INF or NAN, therefore it
9492         only applies when -ffinite-math-only is given.
9493
9494 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
9495
9496         PR libstdc++/34680
9497         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
9498         * doc/cpp.texi ([Common Predefined Macros]): Document.
9499
9500 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
9501
9502         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
9503         order to use commutative addition instead of subtraction.
9504
9505 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9506             Mircea Namolaru  <namolaru@il.ibm.com>
9507             Vladimir Yanovsky  <yanov@il.ibm.com>
9508             Revital Eres  <eres@il.ibm.com>
9509
9510         PR tree-optimization/34263
9511         * tree-outof-ssa.c (process_single_block_loop_latch,
9512         contains_tree_r): New functions.
9513         (analyze_edges_for_bb): Call process_single_block_loop_latch
9514         function to empty single-basic-block latch block if possible.
9515
9516 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
9517
9518         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
9519         for TARGET_RECIP.
9520         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
9521
9522 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
9523
9524         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
9525
9526 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
9527
9528         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
9529
9530 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
9531
9532         PR tree-optimization/34618
9533         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
9534         flag from T.
9535
9536 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
9537
9538         PR target/34673
9539         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
9540         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
9541         Update copyright year.
9542
9543         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
9544         Update copyright year.
9545         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
9546         using NR fixup.
9547
9548 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
9549
9550         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
9551         edge does not point to current bb before changing need_assert.
9552
9553 2008-01-04  Richard Guenther  <rguenther@suse.de>
9554
9555         PR middle-end/34029
9556         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
9557         for verifying purposes if they are is_gimple_min_invariant.
9558
9559 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
9560
9561         PR tree-optimization/34448
9562         PR tree-optimization/34465
9563         * gimplify.c (gimplify_init_constructor): Add new parameter
9564         notify_temp_creation.  Use it.
9565         (gimplify_modify_expr_rhs): Take volatiles into account when
9566         optimizing constructors.
9567         Do not optimize constructors if gimplify_init_constructor will dump to
9568         memory.
9569         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
9570         * gcc.c-torture/compile/pr34448.c: New.
9571
9572 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
9573
9574         PR gcov-profile/34609
9575         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
9576         return_slot if result is TREE_ADDRESSABLE.
9577
9578 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
9579
9580         * config/mips/mips.md (sqrt_condition): Tweak comment.
9581         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
9582
9583 2008-01-03  Tom Tromey  <tromey@redhat.com>
9584
9585         PR c/34457
9586         * c-common.c (c_type_hash): Handle VLAs.
9587
9588 2008-01-03  Jan Hubicka  <jh@suse.cz>
9589
9590         PR tree-optimization/31081
9591         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
9592         0 when inlining and not inlining to first basic block.
9593         (remap_decl): When var is initialized to 0, don't set default_def.
9594         (expand_call_inline): Set entry_bb.
9595         * tree-inline.h (copy_body_data): Add entry_bb.
9596
9597 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
9598
9599         PR c++/34619
9600         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
9601         before returning.
9602
9603         PR tree-optimization/29484
9604         * tree-inline.c (inline_forbidden_p_2): New function.
9605         (inline_forbidden_p): Disallow inlining if some static var
9606         has an address of a local LABEL_DECL in its initializer.
9607         * doc/extend.texi (Labels as Values): Document &&foo behaviour
9608         vs. inlining.
9609
9610 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
9611
9612         PR tree-optimization/34635
9613         * tree-data-ref.c (add_other_self_distances): Make sure that the
9614         evolution step is constant.
9615
9616 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
9617
9618         PR middle-end/34608
9619         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
9620
9621 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
9622
9623         * tree-sra.c (scalarize_init): Insert the generate_element_init
9624         statements after the generate_element_zero statements.
9625
9626 2008-01-02  Richard Guenther  <rguenther@suse.de>
9627
9628         PR middle-end/34093
9629         PR middle-end/31976
9630         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
9631         for very large number of operands instead of ICEing.
9632
9633 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
9634
9635         PR target/34013
9636         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
9637         while stack probing.
9638
9639 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
9640
9641         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
9642         in C++0x mode.
9643
9644 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
9645
9646         PR libmudflap/26442
9647         * tree-mudflap.c (mx_register_decls): Guard warning by
9648         !DECL_ARTIFICIAL check.
9649
9650 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
9651
9652         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
9653         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
9654         sse5_perm<mode>): Fix constraints.