OSDN Git Service

* tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-08-18  Tomas Bily  <tbily@suse.cz>
2
3         * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P.
4         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Use
5         CONVERT_EXPR_P.
6         * tree-data-ref.c (split_constant_offset_1): Likewise.
7         * tree-inline.c (estimate_operator_cost): Use CASE_CONVERT.
8         * tree-sra.c (sra_walk_expr): Likewise.
9         * matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise.
10         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
11         * gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P.
12         * tree-ssa-structalias.c (find_func_aliases, find_func_aliases):
13         Likewise.
14         * gimple.c (gimple_assign_unary_nop_p): Likewise.
15         * tree-vect-transform.c (vectorizable_type_demotion)
16         (vectorizable_type_promotion): Likewise.
17         * tree-inline.c (expand_call_inline): 
18         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
19         (forward_propagate_addr_expr_1, forward_propagate_comparison)
20         (tree_ssa_forward_propagate_single_use_vars): Likewise.
21         * expr.c (expand_expr_real_1): Likewise.
22         * tree-ssa-dom.c (hashable_expr_equal_p, iterative_hash_hashable_expr)
23         (gimple_assign_unary_useless_conversion_p): Likewise.
24         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
25         * tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise.
26         * fold-const.c (fold_unary): Likewise.
27         * tree.h (CONVERT_EXPR_P): Likewise.
28         * tree.c (simple_cst_equal, iterative_hash_expr): Likewise.
29         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
30         * tree-vrp.c: 
31         (register_edge_assert_for_2, extract_range_from_unary_expr)
32         (register_edge_assert_for_1): Likewise.
33         
34 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
35
36         * real.h (dconst_e, dconst_third, dconst_sqrt2, dconst_e_ptr,
37         dconst_third_ptr, dconst_sqrt2_ptr): Declare.
38         (enum real_value_const): Delete.
39         (get_real_const): Delete.
40         * real.c (get_real_const): Delete.
41         (dconst_e_ptr): Define.
42         (dconst_third_ptr): Define.
43         (dconst_sqrt2_ptr): Define.
44         * builtins.c: Update all callers.
45
46 2008-08-18  Richard Guenther  <rguenther@suse.de>
47
48         * tree-ssa-reassoc.c (reassociate_bb): Properly reset the
49         statement iterator after statement removal.
50
51 2008-08-18  Andreas Tobler  <a.tobler@schweiz.org>
52
53         * config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.
54         (detect_processor_freebsd): Likewise.
55         (host_detect_local_cpu): Call newly added functions for FreeBSD.
56
57 2008-08-18  Richard Guenther  <rguenther@suse.de>
58
59         * tree-cfg.c (verify_types_in_gimple_assign): Verify copies
60         and loads have the correct types.
61
62 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
63
64         PR cpp/7263
65         * c-opts.c (cpp_opts): Remove static.
66         * c-parser.c (cpp_opts): Declare it extern.
67         (disable_extension_diagnostics): Handle cpp options.
68         (enable_extension_diagnostics): Likewise.
69
70 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
71
72         * diagnostics.c (permerror_at): Rename as permerror.
73         (permerror): Delete.
74         * toplev.h: Likewise.
75
76 2008-08-18  Richard Guenther  <rguenther@suse.de>
77
78         * passes.c (init_optimization_passes): Remove cleanup_cfg1,
79         sdse1 and addressables2 passes.  Replace dce1 with cddce1.
80         Move call_cdce before build_alias.  Move copyrename2,
81         cunrolli and ccp2 beafore build_alias.  Re-add addressable2
82         right after final inlining.
83         * tree-cfg.c (build_gimple_cfg): Do not dump function here.
84         (pass_build_cfg): But instead via TODO_dump_func.
85
86 2008-08-18  Richard Guenther  <rguenther@suse.de>
87
88         * tree-sra.c (generate_element_init_1): Deal with NULL constructor
89         element index.
90         (scalarize_init): If we failed to generate some initializers
91         do not generate zeros for not instantiated members.  Instead
92         rely on the copy out.
93         * tree-ssa-operands.c (get_addr_dereference_operands): Warn
94         about missing flow-sensitive alias info only if we have
95         aliases computed.
96
97 2008-08-17  Nick Clifton  <nickc@redhat.com>
98
99         * doc/extend.texi (Function Attributes): Fix typo in description
100         if hot function attribute.
101
102 2008-08-17  Daniel Jacobowitz  <dan@codesourcery.com>
103             Richard Sandiford  <rdsandiford@googlemail.com>
104
105         * doc/install.texi (--with-mips-plt): Document.
106         * doc/invoke.texi (-mplt, -mno-plt): Document.
107         * config.gcc (mips*-*-*): Add mips-plt to supported_defaults
108         and handle ${with_mips_plt}.
109         * config/mips/mips.opt (mplt): New option.
110         * config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
111         (TARGET_ABICALLS_PIC2): Likewise.
112         (TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
113         (OPTION_DEFAULT_SPECS): Add a mips-plt entry.
114         (ASM_SPEC): Use !mabi=* instead of !mabi*.
115         (MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
116         to decide whether to output ".option picX" directives.
117         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
118         Pass -call_nonpic rather than -KPIC for -mplt.
119         (BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
120         on the command line.  Also remove it when -mabi=64 is used without
121         -msym32.
122         * config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
123         * config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
124         TARGET_ABICALLS_PIC0.
125         (mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
126         TARGET_ABICALLS.
127         (mips16_build_function_stub): Only output ".option pic" directives
128         and PIC stubs if TARGET_ABICALLS_PIC2.  Call through $25 instead of $1.
129         (mips16_build_call_stub): Fix comment and remove redundant
130         ".set at"/"set .noat" directives.
131         (mips_function_rodata_section): Use the default behaviour for
132         TARGET_ABSOLUTE_ABICALLS.
133         (mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
134         (mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
135         (mips_restore_gp): Do nothing if the current function doesn't use
136         a global pointer.
137         (mips_expand_prologue): Only save $gp if the current function uses it.
138         Use a normal move for TARGET_ABICALLS_PIC0.
139         (mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.
140
141 2008-08-17  Richard Sandiford  <rdsandiford@googlemail.com>
142
143         * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest
144         of function when handling GLOBAL_POINTER_REGNUM.
145
146 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
147
148         PR ada/20548
149         * common.opt (-fstack-check): Do not declare the variable here.
150         (-fstack-check=): New option variant.
151         * doc/invoke.texi (Code Gen Options): Document it.
152         * expr.h (STACK_OLD_CHECK_PROTECT): New macro.
153         (STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used.
154         (STACK_CHECK_STATIC_BUILTIN): New macro.
155         * doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN.
156         * opts.c: Include expr.h.
157         (common_handle_option) <OPT_fold_stack_check_>: New case.
158         <OPT_fstack_check>: Likewise.
159         * calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT
160         consistently in the test for variable-sized types.  Adjust for
161         new behaviour of flag_stack_check.
162         * explow.c: Include except.h.
163         (allocate_dynamic_stack_space): Do not take into account
164         STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking.
165         * function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test
166         for variable-sized parameters.  Treat all parameters whose size is
167         greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic
168         stack checking is enabled.
169         * gimplify.c (gimplify_decl_expr): Treat non-static objects whose
170         size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized
171         if generic stack checking is enabled.
172         (expand_function_end): Adjust for new behaviour of flag_stack_check.
173         * reload1.c (reload): Likewise.
174         * stmt.c (expand_decl): Assert that all automatic variables have
175         fixed size at this point and remove dead code.
176         * flags.h (stack_check_type): New enumeration type.
177         (flag_stack_check): Declare.
178         * toplev.c (flag_stack_check): New global variable.
179         * Makefile.in (opts.o): Add dependency on EXPR_H.
180         (explow.o): Add dependency on except.h.
181
182 2008-08-16  Andy Hutchinson  <hutchinsonandy@aim.com>
183
184         * config/avr/avr.c (avr_override_options): Reduce value of 
185         PARAM_INLINE_CALL_COST.
186
187 2008-08-15  Eric Botcazou  <ebotcazou@adacore.com>
188
189         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: When converting
190         to BLKmode, try to fetch an inner memory reference.  Use 'mode' in
191         lieu of TYPE_MODE (type) throughout.
192
193 2008-08-15  Joseph Myers  <joseph@codesourcery.com>
194
195         * config/arm/arm.c (add_minipool_backward_ref): Check for
196         8-byte-aligned entries in second case of forcing insertion after a
197         particular entry.  Change third case to avoid inserting
198         non-8-byte-aligned entries before 8-byte-aligned ones.
199
200 2008-08-15  Richard Guenther  <rguenther@suse.de>
201
202         * tree-ssa-ccp.c (maybe_fold_offset_to_reference): Do not
203         strip components for unknown size accesses.
204
205 2008-08-15  Wolfgang Gellerich  <gellerich@de.ibm.com>
206
207         * config/s390/2097.md New file.
208         * config/s390/s390.md ("z10prop" attribute): Define none,
209         z10_super, z10_super_E1, z10_super_A1, z10_super_c,
210         z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
211         z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
212         possible values and apply them to insns as appropriate.
213         ("type" attribute): Removed itof and added ftrunctf,ftruncdf,
214         ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
215         fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
216         fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible
217         values.
218         ("bfp" mode attribute): Removed.  Every occurence replaced
219         with <mode>.
220         * config/s390/s390.c (struct "z10_cost"): Updated entries.
221         * config/s390/2084.md (insn_reservation "x_itof"): Updated
222           type attribute.
223
224 2008-08-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
225
226         PR c/28152
227         * c-parser.c (c_lex_one_token): Do not store the canonical spelling
228         for keywords.
229         
230 2008-08-14  Dorit Nuzman  <dorit@il.ibm.com>
231
232         * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an
233         additional argument. Support reduction when duplication is needed due
234         to data-types of different sizes in the loop.
235         (get_initial_def_for_induction): Fix printout.
236         (vect_get_vec_def_for_stmt_copy): Support case where the
237         vec_stmt_for_operand is a phi node.
238         (vectorizable_reduction): Support reduction when duplication is needed 
239         due to data-types of different sizes in the loop.
240         (vectorizable_call): Remove restriction to not vectorize in case we 
241         have data-types of different sizes in the loop.
242         (vectorizable_conversion): Likewise.
243         (vectorizable_operation): Likewise.
244         (vectorizable_type_demotion): Likewise.
245         (vectorizable_type_promotion): Likewise.
246         (vectorizable_induction): Add restriction to not vectorize in case 
247         we have data-types of different sizes in the loop.
248
249 2008-08-14  Christophe Saout  <christophe@saout.de>
250             Uros Bizjak  <ubizjak@gmail.com>
251
252         PR target/37101
253         * config/i386/sse.md (vec_concatv2di): Remove movlps alternative.
254         (*vec_concatv2di_rex64_sse4_1): Ditto.
255         (*vec_concatv2di_rex64_sse): Ditto.
256
257 2008-08-14  Jakub Jelinek  <jakub@redhat.com>
258
259         PR middle-end/37103
260         * fold-const.c (fold_widened_comparison): Do not allow
261         sign changes that change the result even if shorter type
262         is wider than arg1_unw's type.
263
264 2008-08-13  Kazu Hirata  <kazu@codesourcery.com>
265
266         * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c:
267         Skip if the multilib testing specifies -march that does not
268         agree with the one specified in the testcase.
269
270 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
271
272         * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or
273         zero extend SImode values being converted to TFmode before passing
274         to libcalls.
275
276 2008-08-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
277
278         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
279         __PPU__ when targeting the Cell/B.E. PPU processor.
280
281 2008-08-13  Eric Botcazou  <ebotcazou@adacore.com>
282
283         * gimple.h (gimple_call_set_chain): Accept SSA variables.
284         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>:
285         Rematerialize the static chain, if any.
286         * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the
287         static chain.
288
289 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
290
291         * dwarf2out.c (dwarf_stack_op_name): Remove prototype.
292         (new_loc_descr): Likewise.
293         (add_loc_descr): Likewise.
294         (size_of_loc_descr): Likewise.
295         (size_of_locs): Likewise.
296         (output_loc_operands): Likewise.
297         (output_loc_sequence): Likewise.
298         (new_reg_loc_descr): New.
299         (build_cfa_loc): Use it.
300         (build_cfa_aligned_loc): Likewise.
301         (one_reg_loc_descriptor): Likewise.
302         (based_loc_descr): Likewise.
303
304 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
305
306         PR 30551
307         * doc/invoke.texi (Wmain): Update.
308         * c-decl.c (start_decl): warn_main is only 0 or 1.
309         (start_function): Likewise. Fix formatting.
310         (finish_function): Delete redundant warning.
311         * c.opt (Wmain): Add Var(warn_main) and Init(-1).
312         * c-opts (c_common_handle_option): -Wall only has effect if
313         warn_main is uninitialized. OPT_Wmain is automatically
314         handled. -pedantic also enables Wmain.
315         (c_common_post_options): Handle all logic for Wmain here.
316         * c-common.c (warn_main): Delete.
317         (check_main_parameter_types): Make pedwarns conditional on
318         OPT_Wmain.
319         * c-common.h (warn_main): Delete.
320
321 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
322
323         PR middle-end/36701
324         * expr.c (emit_group_store): Allocate stack temp with the
325         largest alignment when copying from register to stack.
326
327 2008-08-13  Richard Guenther  <rguenther@suse.de>
328
329         * tree.h (maybe_fold_offset_to_address): Declare.
330         * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit.
331         (ccp_fold): Handle pointer conversions the same as fold_stmt.
332         Likewise for POINTER_PLUS_EXPR.
333         (maybe_fold_offset_to_reference): Enable disabled code.
334         (maybe_fold_offset_to_address): New function.
335         (fold_stmt_r): Use it.
336         (fold_gimple_assign): Likewise.
337         * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address.
338         (gimplify_expr): Likewise.
339
340 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
341
342         * toplev.h (pedwarn_at): Fix declaration.
343         
344 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
345
346         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
347         LINK_SPEC): Use %R in -Y P argument.
348
349 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
350
351         PR c/15236
352         * diagnostic.c (pedwarn_at): New.
353         * toplev.h (pedwarn_at): Declare.
354         * c-tree.h (build_enumerator): Update declaration.
355         * c-decl.c (finish_enum): Update comment.
356         (build_enumerator): Take a location parameter. Give a pedwarn but do
357         not perform any conversion.
358         * c-parser.c (c_parser_enum_specifier): Set correct location for
359         enumerator.
360
361 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
362
363         PR 35635
364         * c-common.c (conversion_warning): Use a switch. Ignore boolean
365         expressions except for conversions to signed:1 bitfields. Handle
366         COND_EXPR with constant operands.
367         
368 2008-08-13  Richard Guenther  <rguenther@suse.de>
369
370         PR tree-optimization/15255
371         * tree-ssa-reassoc.c (linearize_expr_tree): Declare.
372         (struct oecount_s): New struct and VEC types.
373         (cvec): New global.
374         (oecount_hash): New function.
375         (oecount_eq): Likewise.
376         (oecount_cmp): Likewise.
377         (zero_one_operation): New function.
378         (build_and_add_sum): Likewise.
379         (undistribute_ops_list): Perform un-distribution of multiplication
380         and division on the chain of summands.
381         (should_break_up_subtract): Also break up subtracts for factors.
382         (reassociate_bb): Delete dead visited statements.
383         Call undistribute_ops_list.  Re-sort and optimize if it did something.
384         * passes.c (init_optimization_passes): Move DSE before
385         reassociation.
386         * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle
387         PHI nodes.
388
389 2008-08-12  Janis Johnson  <janis187@us.ibm.com>
390
391         * doc/invoke.texi (-fipa-pta): Say the option is experimental.
392
393         * doc/invoke.texi: Revert unintended checkin.
394
395 2008-08-12  Nathan Froyd  <froydnj@codesourcery.com>
396
397         PR libgomp/26165
398         * gcc.c (include_spec_function): Tweak call to find_a_file.
399
400 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
401
402         PR middle-end/37014
403         * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
404         and TRUTH_ORIF_EXPR.
405         * dojump.c (do_jump): Likewise.
406
407         PR tree-optimization/37084
408         * tree-inline.c (copy_bb): Call gimple_regimplify_operands
409         if id->regimplify, don't assume stmt is a cast assignment.
410
411 2008-08-12  Anatoly Sokolov  <aesok@post.ru>
412
413         * final.c (final_scan_insn): Use app_enable/app_disable functions.
414
415 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
416
417         PR bootstrap/37097
418         * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced
419         by last change.
420
421 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
422
423         * defaults.h (TARGET_FLOAT_FORMAT): Remove.
424         (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove.
425
426         * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove.
427         * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove.
428         * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove.
429         * config/score/score.h (TARGET_FLOAT_FORMAT): Remove.
430         * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove.
431
432         * doc/tm.texi (Storage Layout): Remove documentation for
433         TARGET_FLOAT_FORMAT.
434
435         * simplify-rtx.c (simplify_binary_operation_1): Replace
436         TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks.
437
438 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
439
440         * real.h (struct real_format): New member has_sign_dependent_rounding.
441         * real.c (ieee_single_format, mips_single_format, motorola_single_format,
442         spu_single_format, ieee_double_format, mips_double_format,
443         motorola_double_format, ieee_extended_motorola_format,
444         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
445         ieee_extended_intel_96_round_53_format, ibm_extended_format,
446         mips_extended_format, ieee_quad_format, mips_quad_format,
447         vax_f_format, vax_d_format, vax_g_format): Initialize it.
448         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
449
450         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
451         MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
452         * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
453         MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
454         (ROUND_TOWARDS_ZERO): Likewise.
455
456         * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion.
457         (FLOAT_MODE_FORMAT): New macro.
458         (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ...
459         (MODE_COMPOSITE_P): ... this new macro.
460         (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
461         MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros.
462         * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode.
463
464         * flags.h: Include "real.h".
465
466         * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of
467         REAL_MODE_FORMAT_COMPOSITE_P.
468         * simplify-rtx.c (simplify_const_binary_operation): Likewise.
469
470         * doc/tm.texi (Storage Layout): Remove documentation of
471         MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
472         MODE_HAS_SIGN_DEPENDENT_ROUNDING.  Update documentation of
473         ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify
474         they only apply to libgcc2.a.
475
476 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
477
478         * config/spu/float_disf.c: New file.
479         * config/spu/float_unsdisf.c: New file.
480         * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them.
481         (LIB2FUNCS_EXCLUDE): Define.
482
483 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
484             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
485
486         * real.h (struct real_format): New member round_towards_zero.
487         * real.c (round_for_format): Respect fmt->round_towards_zero.
488         (ieee_single_format, mips_single_format, motorola_single_format,
489         spu_single_format, ieee_double_format, mips_double_format,
490         motorola_double_format, ieee_extended_motorola_format,
491         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
492         ieee_extended_intel_96_round_53_format, ibm_extended_format,
493         mips_extended_format, ieee_quad_format, mips_quad_format,
494         vax_f_format, vax_d_format, vax_g_format): Initialize it.
495         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
496
497         * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of
498         real_format to choose rounding mode when calling MPFR functions.
499         (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise.
500         (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise.
501
502         * real.h (real_to_decimal_for_mode): Add prototype.
503         * real.c (real_to_decimal_for_mode): Renames old real_to_decimal.
504         Respect target rounding mode when generating decimal representation.
505         (real_to_decimal): New stub for backwards compatibility.
506         * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use
507         real_to_decimal_for_mode instead of real_to_decimal.
508
509         * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New.
510
511 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
512             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
513
514         * real.c (spu_single_format): New variable.
515         * real.h (spu_single_format): Declare.
516
517         * config/spu/spu.c (spu_override_options): Install SFmode format.
518         (spu_split_immediate): Use integer mode to operate on pieces of
519         floating-point values in all cases.
520
521         * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New.
522         ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND.
523         ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE.
524
525 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
526
527         * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA.
528
529 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
530
531         * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define.
532
533 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
534
535         PR c++/36688
536         * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY
537         on the VAR_DECL instead of TYPE_READONLY on its type.
538
539 2008-08-12  Ira Rosen  <irar@il.ibm.com>
540
541         * tree-vectorizer.c: Depend on langhooks.h.
542         (supportable_widening_operation): Add two arguments. Support double
543         type conversions.
544         (supportable_narrowing_operation): Likewise.
545         * tree-vectorizer.h (supportable_widening_operation): Add two 
546         arguments.
547         (supportable_narrowing_operation): Likewise.
548         * tree-vect-patterns.c (vect_recog_widen_mult_pattern) : Call
549         supportable_widening_operation with correct arguments.
550         * tree-vect-transform.c (vectorizable_conversion): Likewise.
551         (vectorizable_type_demotion): Support double type conversions.
552         (vectorizable_type_promotion): Likewise.
553         * Makefile.in (tree-vectorizer.o): Depend on langhooks.h.
554
555 2008-08-11  Michael Matz  <matz@suse.de>
556
557         * i386/i386.c (override_options): Move initialisation from
558         flag_schedule_insns_after_reload to here from ...
559         (optimization_options): ... here.
560
561 2008-08-11  Jakub Jelinek  <jakub@redhat.com>
562
563         PR rtl-optimization/36998
564         * dwarf2out.c (compute_barrier_args_size_1,
565         compute_barrier_args_size): Temporarily remove assertions.
566
567 2008-08-10  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
568
569         PR middle-end/20644
570         * tree-ssa.c (struct walk_data): Add new flag
571         warn_possibly_uninitialized.
572         (warn_uninitialized_var): Use it.
573         (warn_uninitialized_vars): New.
574         (execute_early_warn_uninitialized): Call it.
575         (execute_late_warn_uninitialized): Likewise.
576
577 2008-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
578
579         PR middle-end/36238
580         * reload1.c (gen_reload): Guard calls to get_secondary_mem
581         for memory subregs.
582
583 2008-08-09  Jan Hubicka  <jh@suse.cz>
584
585         PR target/37055
586         * optabs.c (maybe_emit_unop_insn): Remove produced code if
587         expansion failed.
588         (expand_fix): Be prepared for expansion to fail.
589         (expand_sfix_optab): Remove instructions if expansion failed.
590
591 2008-08-09  Anatoly Sokolov  <aesok@post.ru>
592
593         * config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to
594         avr31 architecture.
595         * config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.).
596         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
597
598 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
599
600         * config.gcc (mips*-*-linux*, mips64*-*-linux*): Add
601         mips/t-libgcc-mips16 to tmake_file.
602         * config/mips/mips-protos.h (mips_call_type): New enum.
603         (mips_pic_base_register, mips_got_load): Declare.
604         (mips_restore_gp): Take an rtx argument.
605         (mips_use_pic_fn_addr_reg_p): Declare.
606         (mips_expand_call): Replace the sibcall_p argument with
607         a mips_call_type argument.  Add a lazy_p parameter.
608         (mips_split_call): Declare.
609         * config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro.
610         (MIPS16_PIC_TEMP): Likewise.
611         (reg_class): Delete M16_NA_REGS.
612         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
613         (SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros.
614         (mips_split_hi_p): Declare.
615         * config/mips/mips.c (mips_split_hi_p): New array.
616         (mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS.
617         (mips_got_symbol_type_p): New function.
618         (mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P.
619         (mips16_stub_function_p): New function.
620         (mips16_local_function_p): Likewise.
621         (mips_use_pic_fn_addr_reg_p): Likewise.
622         (mips_cannot_force_const_mem): Return false for HIGHs.
623         Extend CONST_INT and symbolic handling to MIPS16, using
624         mips_symbol_insns to check that the base symbol type is a
625         legitimate constant.  Reject GOT-based constants if
626         TARGET_MIPS16_PCREL_LOADS.
627         (mips_const_insns): Check targetm.cannot_force_const_mem when
628         decomposing a symbolic base and a large offset.
629         (mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters.
630         When calling a function that needs $25 from MIPS16 code,
631         move the target address into $25 separately and add a USE
632         to the call insn.
633         (mips16_gp_pseudo_reg): Insert the initializer immediately
634         before the first real insn.
635         (mips_pic_base_register, mips_got_load): New functions.
636         (mips_split_symbol): Generalize the name of the LO_SUM_OUT
637         parameter to LOW_OUT.  Say that it can be any valid SET_SRC
638         when splitting a load-address operation.  Split SYMBOL_GOT_DISP
639         constants and highs of SYMBOL_GOT_PAGE_OFST constants.
640         (mips_call_tls_get_addr): Update the call to mips_expand_call,
641         also passing NULL_RTX rather than const0_rtx as the aux argument.
642         (mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p
643         instead of TARGET_EXPLICIT_RELOCS.
644         (mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P.
645         (mips_load_call_address): Replace the sibcall_p argument with
646         a mips_call_type argument.  Use mips_got_load.
647         (mips16_local_alias): New structure.
648         (mips16_local_aliases): New variable.
649         (mips16_local_aliases_hash): New function.
650         (mips16_local_aliases_eq): Likewise.
651         (mips16_local_alias): Likewise.
652         (mips16_stub_function): Likewise.
653         (mips16_build_function_stub): Create a local alias for the target
654         function.  Handle TARGET_ABICALLS.  For PIC abicalls, emit a
655         .cpload directive and an R_MIPS_NONE relocation for the target
656         function, then load the alias rather than the function itself.
657         Wrap the non-PIC abicalls version in ".option pic0/.option pic2".
658         (mips16_copy_fpr_return_value): Use mips16_stub_function and
659         mips_expand_call.  Set SYMBOL_REF_BIND_NOW on the symbol.
660         (mips16_build_call_stub): Replace the FN parameter with an
661         FN_PTR parameter.  Force the address into a register if it
662         isn't a call_insn_operand; don't rely on the caller to do this.
663         If a call to a locally-defined and locally-binding MIPS16
664         function must be made indirectly, redirect the call to the
665         function's local alias.  Use mips16_stub_function_p,
666         mips16_stub_function, mips_expand_call and use_reg.
667         Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols.
668         Use explicit %hi and %lo accesses where possible.
669         Use MIPS_CALL to generate the correct code form of a
670         jal instruction.  Add clobbers of $18 instead of uses.
671         Update the call to mips_emit_call_insn.
672         (mips_expand_call): Replace the SIBCALL_P argument with a
673         mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value.
674         Take a LAZY_P parameter.  Call mips16_build_call_stub first,
675         allowing it to modify the call address.  Update the calls to
676         mips_load_call_address and mips_emit_call_insn.
677         (mips_split_call): New function.
678         (mips_init_relocs): Clear mips_split_hi_p.  Only use %gp_rel if
679         !TARGET_MIPS16.  Split SYMBOL_GOT_DISP, and the high parts of
680         SYMBOL_GOT_PAGE_OFST, for MIPS16 code.
681         (mips_global_pointer): Check mips16_cfun_returns_in_fpr_p.
682         (mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM
683         if TARGET_MIPS16.
684         (mips_cprestore_slot): New function.
685         (mips_restore_gp): Take a TEMP parameter.  Handle TARGET_MIPS16
686         and use mips_cprestore_slot.
687         (mips_output_function_prologue): Handle TARGET_MIPS16 for
688         LOADGP_OLDABI.
689         (mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16,
690         then use a copygp_mips16 instruction to set up $28.
691         (mips_expand_prologue): Initialize the cprestore slot for MIPS16 too.
692         (mips16_lay_out_constants): Call split_all_insns_noflow.
693         (mips_reorg_process_insns): Explicitly set all_noreorder_p to
694         false if TARGET_MIPS16.
695         (mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16.
696         (mips_output_mi_thunk): Use mips_got_symbol_type_p.  Use the
697         mips_dangerous_for_la25_p approach for MIPS16 PIC calls too.
698         (mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for
699         MIPS16 code.  Allow MIPS16 o32 PIC.
700         (mips_override_options): Allow MIPS16 o32 PIC.
701         * config/mips/mips.md: Lower CONST_GP_P moves into register moves
702         after reload if TARGET_USE_GOT.
703         (UNSPEC_COPYGP): New constant.
704         (length): Use a default length of 8 for MIPS16 GOT loads.
705         (*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT.
706         (*got_page<mode>): Check mips_split_hi_p.
707         (*got_disp<mode>, *got_page<mode>): Use mips_got_load.
708         (unspec_got<mode>, unspec_call<mode>): New expanders.
709         (load_got<mode>, load_call<mode>): Remove the length attributes.
710         Use a got attribute instead of a type attribute.
711         (copygp_mips16): New insn.
712         (restore_gp): Add a scratch clobber and pass it to mips_restore_gp.
713         (load_call<mode>): Use a "d" constraint instead of an "r" constraint.
714         (sibcall, sibcall_value, call, call_value): Update the calls
715         to mips_expand_call.
716         (call_internal, call_value_internal): Use mips_split_call.
717         (call_value_multiple_internal): Likewise.
718         (call_split): Move after call_internal (the insn it is split from).
719         (call_internal_direct, call_value_internal_direct): Turn into
720         define_insn_and_splits.  Split if TARGET_SPLIT_CALLS.
721         (call_direct_split, call_value_direct_split): New patterns.
722         * config/mips/constraints.md (c): Handle TARGET_MIPS16 first
723         and use M16_REGS instead of M16_NA_REGS.
724         * config/mips/predicates.md (const_call_insn_operand): Replace
725         the TARGET_ABSOLUTE_ABICALLS-based check with a more general
726         mips_use_pic_fn_addr_reg_p check.
727         (move_operand): Reject HIGHs if mips_split_hi_p.
728         * config/mips/mips16.S: Assembly as empty if the ABI is not suitable.
729         (__mips16_floatunsisf): Inline __mips16_floatsisf.
730         (CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25.
731         * config/mips/libgcc-mips16.ver: New file.
732         * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add
733         $(srcdir)/config/mips/libgcc-mips16.ver.
734
735 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
736
737         * config/mips/mips.c (mips_unspec_address_offset): Move earlier in file.
738         (mips_unspec_address, mips_unspec_offset_high): Likewise.
739         (mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise.
740         (mips16_cfun_returns_in_fpr_p): Likewise.
741
742 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
743
744         * config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary.
745         * config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2
746         rather than 4 to PC.
747
748 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
749
750         * config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
751         (FUNCTION_PROFILER): Save the static chain pointer into $2
752         beforehand and restore it aftewards.
753         (TRAMPOLINE_TEMPLATE): Adjust accordingly.  Load the target
754         address directly into $25 and call the function through $25;
755         do not clobber $3.  Pad the DImode version to cover the space
756         left by the deleted $25 <- $3 move.
757         (TRAMPOLINE_SIZE): Adjust the size of the SImode version after
758         the removal of the $25 <- $3 move.
759         (INITIALIZE_TRAMPOLINE): Update offsets accordingly.
760         * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
761
762 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
763             Daniel Jacobowitz  <dan@codesourcery.com>
764
765         * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete.
766         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete.
767         (ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete.
768         * config/mips/mips.c (mips_start_function_definition): New function.
769         (mips_end_function_definition): Likewise.
770         (mips_output_function_prologue): Use mips_start_function_definition.
771         (mips_output_function_epilogue): Use mips_end_function_definition.
772         (build_mips16_function_stub): Use mips_start_function_definition
773         and mips_end_function_definition.
774         (build_mips16_call_stub): Likewise.
775
776 2008-08-09  Richard Guenther  <rguenther@suse.de>
777
778         * gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
779         * gimple.h (gimple_call_fn): Adjust comment.
780         (gimple_call_set_fndecl): New function.
781         (gimple_call_fndecl): Adjust for GIMPLE_CALL no
782         longer having bare FUNCTION_DECL operand.
783         (gimple_call_return_type): Likewise.
784         * tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL.
785
786         * value-prof.c (gimple_divmod_fixed_value): Do not emit labels.
787         (gimple_mod_pow2): Likewise.
788         (gimple_mod_subtract): Likewise.
789         (gimple_ic): Likewise.
790         (gimple_stringop_fixed_value): Likewise.
791         (gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no
792         longer having bare FUNCTION_DECL operand.
793         * ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl.
794         * omp-low.c (optimize_omp_library_calls): Likewise.
795         * cgraphunit.c (update_call_expr): Likewise.
796         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
797         (execute_convert_to_rsqrt): Likewise.
798         * cfgexpand.c (gimple_to_tree): Simplify.
799         (release_stmt_tree): Fix for GIMPLE_CALL no longer having
800         bare FUNCTION_DECL operand.
801         * tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type.
802         (convert_gimple_call): Use gimple_call_fndecl.
803         * c-common.c (c_warn_unused_result): Likewise.
804
805 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
806
807         PR c/17880
808         * c-typeck.c (digest_init): Call verify_sequence_points from here.
809         (c_finish_return): Likewise.
810         (c_start_case): Likewise.
811         * c-common.c (warn_for_collisions_1): Use explicit location in
812         warning.
813         * c-parser.c (c_parser_condition): New. Call
814         verify_sequence_points.
815         (c_parser_paren_condition): Call c_parser_condition.
816         (c_parser_for_statement): Call c_parser_condition.
817
818 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
819
820         PR 36901
821         * diagnostic.def (DK_PEDWARN, DK_PERMERROR): New.  
822         * diagnostic.c (pedantic_warning_kind, permissive_error_kind):
823         Moved from diagnostic.h
824         (diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and
825         DK_PERMERROR.
826         (emit_diagnostic): New.
827         (warning0, pedwarn0): Delete.
828         (warning, warning_at, pedwarn, permerror): Return bool.  
829         * diagnostic.h (pedantic_warning_kind, permissive_error_kind):
830         Moved to diagnostic.c.
831         (struct diagnostic_context): Use correct type for
832         classify_diagnostic.
833         (diagnostic_report_diagnostic): Update declaration.
834         (emit_diagnostic): Declare.
835         * errors.c (warning): Return bool.  
836         * errors.h (warning): Update declaration.
837         * toplev.h (warning0, pedwarn0): Delete.
838         (warning, warning_at, pedwarn, permerror): Return bool.
839         * c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN.
840         * c-decl.c (locate_old_decl): Delete 'diag' argument. Always use
841         inform. Update all calls.
842         (diagnose_mismatched_decls): Check return value of warning/pedwarn
843         before giving informative note.
844         (implicit_decl_warning): Likewise.  
845         * c-typeck.c (build_function_call): Likewise.  
846         * tree-sssa.c (warn_uninit): Likewise.  
847         * builtins.c (gimplify_va_arg_expr): Likewise.
848
849 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
850
851         PR 7651
852         * doc/invoke.texi (-Wextra): Move warning from here...
853         (-Wuninitialized): ... to here.
854         
855 2008-08-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
856
857         PR 28875
858         * flags.h (set_Wunused): Delete
859         * toplev.c (process_options): Handle Wunused flags here.
860         * opts.c (maybe_warn_unused_parameter): Delete.
861         (common_handle_option): Replace set_Wunused by warn_unused.
862         (set_Wextra): Do not handle Wunused-parameter here.
863         (set_Wunused): Delete.
864         * c-opts.c (c_common_handle_option): Replace set_Wunused by
865         warn_unused.
866         * common.opt (Wunused): Add Var and Init.
867         (Wunused-function): Likewise.
868         (Wunused-label): Likewise.
869         (Wunused-parameter): Likewise.
870         (Wunused-value): Likewise.
871         (Wunused-variable): Likewise.
872         
873 2008-08-08  Peter Bergner  <bergner@vnet.ibm.com>
874
875         * doc/invoke.texi: Add cpu_type power7.
876         * config.in (HAVE_AS_VSX): New.
877         * config.gcc: Add cpu_type power7.
878         * configure.ac (HAVE_AS_VSX): Check for assembler support of the
879         VSX instructions.
880         * configure: Regenerate.
881         * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to
882         power5.
883         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define.
884         (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7.
885         (EXTRA_SPECS): Add asm_cpu_power7 spec string.
886
887 2008-08-08  Dorit Nuzman  <dorit@il.ibm.com>
888
889         * tree-vect-transform.c (vectorizable_conversion): Pass the integral
890         type to vectorize.builtin_conversion.
891         (vectorizable_conversion): Likewise.
892         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes
893         integral type as input.
894         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
895         FIX_TRUNC_EXPR.
896         (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS
897         and ALTIVEC_BUILTIN_VCTSXS.
898         (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix
899         formatting. 
900
901 2008-08-08  Richard Guenther  <rguenther@suse.de>
902
903         * tree-ssa-ccp.c (likely_value): Calls are not all varying.
904         (surely_varying_stmt_p): Calls are varying only if they are
905         non-builtin and not indirect or have no result.
906         (ccp_fold): Re-instantiate code before the tuples merge.
907
908 2008-08-08  Richard Guenther  <rguenther@suse.de>
909
910         PR tree-optimization/37056
911         * gimple.h (gimple_assign_rhs_class): New helper function.
912         * tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle
913         unary operations properly.
914
915 2008-08-07  Jan Hubicka  <jh@suse.cz>
916
917         * i386.h (ix86_size_cost): Declare.
918         (ix86_cur_cost): New function macro.
919         * i386.md (peepholes expanding size and splitters): Predicate by
920         optimize_insn_for_speed_p.
921         (peepholes reduce size and splitters): Predicate by
922         optimize_insn_for_size_p.
923         * i386.c (ix86_size_cost): Rename from ...
924         (size_cost): This one.
925         (override_options): Update.
926         (decide_alg): Likewise.
927         (ix86_expand_clear): Use RTL profile.
928         (ix86_pad_returns): Use RTL profile.
929
930 2008-08-07  Jan Hubicka  <jh@suse.cz>
931
932         * recog.c (split_all_insns): Set RTL profile
933         (peephole2_optimize): Likewise.
934         * function.c (thread_prologue_and_epilogue_insns): Likewise.
935         * combine.c (combine_instructions): Likewise.
936
937 2008-08-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
938
939         * c-common.c (c_common_reswords): Also warn about keyword "bool".
940
941 2008-08-07  Bob Wilson  <bob.wilson@acm.org>
942         
943         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming
944         value in a6 after the set_frame_ptr insn.
945         
946 2008-08-07  Richard Henderson  <rth@redhat.com>
947
948         PR debug/37033
949         * gcc.c (cpp_options): Pass along -g*.
950
951 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
952
953         * config/arm/arm.c (output_move_neon): Update comment describing
954         big-endian vector layout.
955         (arm_assemble_integer): Do not handle big-endian NEON vectors
956         specially.
957         * config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>,
958         neon_vget_lane<mode>_sext_internal,
959         neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust
960         element indices for big-endian.
961
962 2008-08-07  Richard Henderson  <rth@redhat.com>
963
964         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New.
965         * configure, config.in: Rebuild.
966         * debug.h (dwarf2out_do_cfi_asm): Declare.
967         * c-cppbuiltin.c (c_cpp_builtins): Use it.
968         * dwarf2out.c (dwarf2out_do_cfi_asm): New.
969         (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info,
970         dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it.
971
972 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
973
974         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
975         movv2si_internal): Combine into mov<mode>_internal.
976         (movv2si_internal_2): Remove.
977
978 2008-08-07  Jan Hubicka  <jh@suse.cz>
979
980         PR target/37048
981         * i386.md (single stringop patterns): Enable unconditionally. 
982
983 2008-08-07  H.J. Lu  <hongjiu.lu@intel.com>
984
985         PR target/36992
986         * config/i386/emmintrin.h (_mm_move_epi64): Use
987         __builtin_ia32_movq128.
988
989         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128.
990         (bdesc_args): Add IX86_BUILTIN_MOVQ128.
991
992         * config/i386/sse.md (sse2_movq128): New.
993
994         * doc/extend.texi: Document __builtin_ia32_movq128.
995
996 2008-08-07  Richard Guenther  <rguenther@suse.de>
997
998         PR middle-end/37042
999         * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all
1000         pointers can access anything.
1001
1002 2008-08-06  Jan Hubicka  <jh@suse.cz>
1003
1004         * optabs.c (emit_unop_insn): Break out to ...
1005         (maybe_emit_unop_insn): ... this one.
1006         (expand_sfix_optab): Use maybe variant.
1007         * optabs.h (maybe_emit_unop_insn): Declare.
1008
1009         * i386.md (mov0 patterns): Enable by default.
1010         (FP conversion expanders): Disable expansion of code expanding
1011         sequences when instruction should be optimized for size.
1012         (single strinop patterns): Enable when optimizing for size.
1013         (string expanders): Disable expanding of code expanding sequences
1014         when optimizning instruction for size.
1015         * i386.c (ix86_expand_vector_move_misalign): Do code size optimization
1016         per BB basis.
1017         (ix86_fp_comparison_sahf_cost): Likewise.
1018         (ix86_expand_branch): Likewise.
1019         (ix86_expand_ashl_const): Likewise.
1020         (ix86_split_ashl): Likewise.
1021         (ix86_expand_strlen): Likewise.
1022         (ix86_emit_fp_unordered_jump): Likewie.
1023
1024 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1025
1026         * c-common.c: Fix typo.
1027         (c_common_reswords): Activate more C++ keyword warnings.
1028
1029         * matrix-reorg.c (compute_offset): Avoid C++ keywords.
1030
1031 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1032
1033         PR 26785
1034         * diagnostic.c (permerror_at): New.
1035         * toplev.h (permerror_at): Declare.
1036         
1037 2008-08-06  Victor Kaplansky  <victork@il.ibm.com>
1038             Ira Rosen  <irar@il.ibm.com>
1039
1040         * tree-vect-transform.c (vect_model_simple_cost): Return
1041         immediately if stmt is pure SLP.
1042         (vect_model_store_cost): Ditto.
1043         (vect_model_load_cost): Ditto.
1044         (vectorizable_store): Remove PURE_SLP check before call
1045         to vect_model_store_cost.
1046         (vect_model_store_cost): When checking whether stmt describe
1047         strided access, add a check that it is not slp_node.
1048
1049 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1050
1051         PR 8715
1052         * c-common.c (warn_for_sign_compare): New. Handle separately the
1053         case that 'constant' is zero.
1054         * c-typeck.c (build_binary_op): Move code to c-common.c
1055         
1056 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1057
1058         * config/alpha/alpha.c (alpha_preferred_reload_class,
1059         alpha_secondary_reload, alpha_emit_set_const_1, function_value,
1060         alpha_output_mi_thunk_osf): Avoid C++ keywords.
1061         * config/arm/arm.c (output_move_vfp, output_move_neon): Likewise.
1062         * config/arm/arm.md: Likewise.
1063         * config/avr/avr-protos.h (preferred_reload_class,
1064         test_hard_reg_class, avr_simplify_comparison_p,
1065         out_shift_with_cnt, class_max_nregs): Likewise.
1066         * config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p,
1067         output_movqi, output_movhi, output_movsisf, out_shift_with_cnt,
1068         preferred_reload_class, test_hard_reg_class): Likewise.
1069         * config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok,
1070         bfin_memory_move_cost, bfin_secondary_reload,
1071         bfin_output_mi_thunk): Likewise.
1072         * config/crx/crx.c (crx_secondary_reload_class,
1073         crx_memory_move_cost): Likewise.
1074         * config/frv/frv-protos.h (frv_secondary_reload_class,
1075         frv_class_likely_spilled_p, frv_class_max_nregs): Likewise.
1076         * config/frv/frv.c (frv_override_options, frv_alloc_temp_reg,
1077         frv_secondary_reload_class, frv_class_likely_spilled_p,
1078         frv_class_max_nregs): Likewise.
1079         * config/h8300/h8300.c (h8300_classify_operand,
1080         h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count):
1081         Likewise.
1082         * config/i386/winnt.c (i386_pe_declare_function_type): Likewise.
1083         * config/ia64/ia64.c (ia64_preferred_reload_class,
1084         ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise.
1085         * config/iq2000/iq2000.c (gen_int_relational): Likewise.
1086         * config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare):
1087         Likewise.
1088         * config/m68hc11/m68hc11.c (preferred_reload_class,
1089         m68hc11_memory_move_cost): Likewise.
1090         * config/mcore/mcore.c (mcore_secondary_reload_class,
1091         mcore_reload_class): Likewise.
1092         * config/mips/mips.c (mips_hard_regno_mode_ok_p,
1093         mips_class_max_nregs, mips_cannot_change_mode_class,
1094         mips_preferred_reload_class, mips_secondary_reload_class,
1095         mips_output_mi_thunk): Likewise.
1096         * config/mmix/mmix.c (mmix_preferred_reload_class,
1097         mmix_preferred_output_reload_class, mmix_secondary_reload_class):
1098         Likewise.
1099         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
1100         Likewise.
1101         * config/pa/pa.c (pa_secondary_reload, pa_combine_instructions,
1102         pa_can_combine_p, pa_cannot_change_mode_class): Likewise.
1103         * config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
1104         * config/rs6000/rs6000.c (paired_expand_vector_init,
1105         rs6000_secondary_reload_class, rs6000_output_mi_thunk,
1106         compare_section_name, rs6000_memory_move_cost): Likewise.
1107         * config/s390/s390.c (s390_emit_compare_and_swap,
1108         s390_preferred_reload_class, s390_secondary_reload,
1109         legitimize_pic_address, legitimize_tls_address,
1110         legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic,
1111         s390_class_max_nregs): Likewise.
1112         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
1113         * config/s390/s390.md: Likewise.
1114         * config/score/score-protos.h (score_secondary_reload_class,
1115         score_preferred_reload_class): Likewise.
1116         * config/score/score.c (score_preferred_reload_class,
1117         score_secondary_reload_class): Likewise.
1118         * config/score/score3.c (score3_output_mi_thunk,
1119         score3_preferred_reload_class, score3_secondary_reload_class,
1120         score3_hard_regno_mode_ok): Likewise.
1121         * config/score/score3.h (score3_preferred_reload_class,
1122         score3_secondary_reload_class): Likewise.
1123         * config/score/score7.c (score7_output_mi_thunk,
1124         score7_preferred_reload_class, score7_secondary_reload_class,
1125         score7_hard_regno_mode_ok): Likewise.
1126         * config/score/score7.h (score7_preferred_reload_class,
1127         score7_secondary_reload_class): Likewise.
1128         * config/sh/sh.c (prepare_move_operands, output_far_jump,
1129         output_branchy_insn, add_constant, gen_block_redirect,
1130         sh_insn_length_adjustment, sh_cannot_change_mode_class,
1131         sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload):
1132         Likewise.
1133         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
1134         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
1135         xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
1136         xstormy16_preferred_reload_class): Likewise.
1137         * config/xtensa/xtensa.c (xtensa_expand_compare_and_swap,
1138         xtensa_expand_atomic, override_options,
1139         xtensa_preferred_reload_class, xtensa_secondary_reload_class):
1140         Likewise.
1141         * reorg.c (try_merge_delay_insns): Likewise.
1142         * tree.c (merge_dllimport_decl_attributes): Likewise.
1143
1144         * config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA.
1145
1146 2008-08-06  Michael Matz  <matz@suse.de>
1147
1148         * Makefile.in (write_entries_to_file): Quote words.
1149         * gengtype.c: (read_input_line): Skip over leading white-space.
1150
1151 2008-08-06  Marc Gauthier  <marc@tensilica.com>
1152
1153         * config.gcc: Match more processor names for Xtensa.
1154         * configure.ac: Likewise.
1155         * doc/install.texi (Specific): Likewise.
1156         * configure: Regenerate.
1157
1158 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1159
1160         * builtins.c (expand_builtin_profile_func): Avoid C++ keywords.
1161         * calls.c (avoid_likely_spilled_reg): Likewise.
1162         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
1163         * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise.
1164         * config/i386/i386.c (ix86_expand_special_args_builtin,
1165         ix86_secondary_reload): Likewise.
1166         * except.c (struct eh_region, gen_eh_region_catch,
1167         remove_unreachable_regions, duplicate_eh_regions,
1168         assign_filter_values, build_post_landing_pads,
1169         sjlj_find_directly_reachable_regions, remove_eh_handler,
1170         reachable_next_level, foreach_reachable_handler,
1171         can_throw_internal_1, can_throw_external_1,
1172         collect_one_action_chain): Likewise.
1173         * expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise.
1174         * fold-const.c (twoval_comparison_p, eval_subst): Likewise.
1175         * function.c (update_temp_slot_address, instantiate_new_reg,
1176         instantiate_virtual_regs_in_rtx,
1177         instantiate_virtual_regs_in_insn): Likewise.
1178         * gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise.
1179         * gimplify.c (gimplify_call_expr, gimplify_init_constructor,
1180         gimplify_cleanup_point_expr): Likewise.
1181         * ipa-cp.c (ipcp_lattice_changed): Likewise.
1182         * passes.c (next_pass_1): Likewise.
1183         * print-tree.c (print_node_brief, print_node): Likewise.
1184         * profile.c (branch_prob): Likewise.
1185         * tree-dump.c (dump_register): Likewise.
1186         * tree-eh.c (replace_goto_queue_cond_clause, lower_catch):
1187         Likewise.
1188         * tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks,
1189         copy_statement_list, remap_gimple_op_r, copy_tree_body_r,
1190         copy_edges_for_bb, copy_cfg_body, copy_tree_r,
1191         copy_arguments_for_versioning, copy_static_chain): Likewise.
1192         * tree-into-ssa.c (names_replaced_by, add_to_repl_tbl,
1193         add_new_name_mapping, register_new_name_mapping): Likewise.
1194         * tree-mudflap.c (mf_xform_derefs): Likewise.
1195         * tree-predcom.c (struct chain, dump_chain, replace_ref_with,
1196         get_init_expr, combine_chains): Likewise.
1197         * tree-pretty-print.c (dump_generic_node): Likewise.
1198         * tree-ssa-structalias.c (create_variable_info_for): Likewise.
1199         * tree-vrp.c (simplify_cond_using_ranges): Likewise.
1200         * tree.c (substitute_in_expr, iterative_hash_expr): Likewise.
1201         * value-prof.c (gimple_duplicate_stmt_histograms): Likewise.
1202
1203 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
1204
1205         PR middle-end/37010
1206         * calls.c (expand_call): Use the biggest preferred stack
1207         boundary.
1208
1209 2008-08-06  Michael Matz  <matz@suse.de>
1210
1211         PR target/36613
1212         * reload.c (push_reload): Merge in,out,in_reg,out_reg members
1213         for reused reload, instead of overwriting them.
1214
1215 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
1216
1217         PR middle-end/37009
1218         * cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary
1219         for incoming stack boundary.
1220
1221         * function.c (assign_parm_find_entry_rtl): Update
1222         parm_stack_boundary.
1223
1224         * function.h (rtl_data): Add parm_stack_boundary.
1225
1226         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Check
1227         parm_stack_boundary for incoming stack boundary.
1228
1229 2008-08-06  Joseph Myers  <joseph@codesourcery.com>
1230
1231         * jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset
1232         for unrepresentable subregs or treat them as equal to other regs
1233         or subregs with the same register number.
1234
1235 2008-08-06  Aldy Hernandez  <aldyh@redhat.com>
1236
1237         PR middle-end/35432
1238         * gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types
1239         if want_value.
1240
1241 2008-08-06  Jan Hubicka  <jh@suse.cz>
1242
1243         * predict.c (maybe_hot_frequency_p): When profile is absent, all
1244         frequencies might be hot.
1245
1246 2008-08-06  Andreas Krebbel  <krebbel1@de.ibm.com>
1247
1248         * reload.c (find_reloads): Force constants into literal pool
1249         also if they are wrapped in a SUBREG.
1250
1251 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
1252
1253         PR target/35659
1254         * haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ...
1255         * sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here.
1256         Don't allow predicated instructions for data speculation.
1257         * sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move
1258         declaration.
1259
1260 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
1261
1262         * haifa-sched.c (extend_global): Split to extend_global_data and
1263         extend_region_data.  Update all uses.
1264         (extend_all): Rename to extend_block_data.
1265
1266 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
1267
1268         * sched-rgn.c (new_ready): Check if instruction can be
1269         speculatively scheduled before attempting speculation.
1270         (debug_rgn_dependencies): Remove wrongful assert.
1271
1272 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
1273
1274         * config/xtensa/t-xtensa: Remove dependency for gt-xtensa.h.
1275         
1276 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
1277         
1278         * config/xtensa/xtensa.c (xtensa_va_start): Unshare valist.
1279         (xtensa_gimplify_va_arg_expr): Unshare valist, orig_ndx, ndx, array,
1280         va_size, and type_size.
1281         
1282 2008-08-04  Jason Merrill  <jason@redhat.com>
1283
1284         PR c++/37016
1285         * tree-ssa.c (useless_type_conversion_p_1): Call langhook
1286         if TYPE_STRUCTURAL_EQUALITY_P is true for both types.
1287
1288 2008-08-05  Richard Henderson  <rth@redhat.com>
1289
1290         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Check .cfi_personality.
1291         * configure: Rebuild.
1292
1293 2008-08-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1294
1295         PR tree-opt/37024
1296         * tree-tailcall.c (process_assignment): Use gimple_assign_cast_p
1297         instead of IS_CONVERT_EXPR_CODE_P for seeing if the assignment
1298         is a conversion.
1299
1300 2008-08-05  Richard Henderson  <rth@redhat.com>
1301
1302         * Makefile.in (c-cppbuiltin.o): Depend on debug.h.
1303         * c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM.
1304         * doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it.
1305         * common.opt (fdwarf2-cfi-asm): New.
1306         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): New.
1307         * config.in, configure: Rebuild.
1308         * dwarf2asm.c (dw2_asm_output_data_raw): New.
1309         (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw): New.
1310         (dw2_force_const_mem): Externalize.
1311         * dwarf2asm.h: Update.
1312         * dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't
1313         generate a real label.
1314         (output_cfi_directive): New.
1315         (add_fde_cfi): If flag_dwarf2_cfi_asm, use it.
1316         (output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm.
1317         (dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality,
1318         and .cfi_lsda.
1319         (dwarf2out_end_epilogue): Emit .cfi_endproc.
1320         (output_loc_operands_raw, output_loc_sequence_raw): New.
1321         (output_cfa_loc_raw): New.
1322         
1323 2008-08-05  Paul Brook  <paul@codesourcery.com>
1324
1325         * doc/invoke.texi: Document new ARM -mfpu= and -mcpu= options.
1326         * config/arm/arm.c (all_fpus): Add vfpv3 and vfpv3-d16.
1327         (fp_model_for_fpu): Add entry for FPUTYPE_VFP3D16.
1328         (arm_file_start): Add FPUTYPE_VFP3D16.  Rename vfp3 to vfpv3.
1329         * config/arm/arm.h (TARGET_VFPD32): Define.
1330         (TARGET_VFP3): Use TARGET_VFPD32.
1331         (fputype): Add FPUTYPE_VFP3D16.
1332         (LAST_VFP_REGNUM): Use TARGET_VFPD32.
1333         * config/arm/constraints.md ("w"): Use TARGET_VFPD32.
1334         * config/arm/arm-cores.def: Add cortex-r4f.
1335         * config/arm/arm-tune.md: Regenerate.
1336
1337 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1338
1339         * config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus.
1340         Reword some comments throughout the file.
1341
1342         (MFC_MIN_DMA_LIST_ELEMENTS): New define.
1343         (MFC_MAX_DMA_LIST_ELEMENTS): Likewise.
1344         (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of MFC_MIN_DMA_LIST_ELEMENTS.
1345         (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of MFC_MAX_DMA_LIST_ELEMENTS.
1346
1347         (MFC_START_ENABLE): Remove PPU-only define.
1348         (MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise.
1349         (MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise.
1350
1351         (MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants.
1352         (MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise.
1353         (MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise.
1354         (MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise.
1355         (MFC_GETB_CMD, MFC_GETF_CMD): Likewise.
1356         (MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise.
1357         (MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise.
1358
1359         (MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines.
1360         (MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise.
1361         (mfc_sdcrt, mfc_sdcrtst): Likewise.
1362         (mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise.
1363
1364         (spu_read_machine_status): Fix typo.
1365
1366 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1367
1368         * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized
1369         SUBREG of multi-word hard register.
1370         * config/spu/spu.c (valid_subreg): Likewise.
1371         (adjust_operand): Handle SUBREGs of multi-word hard registers.
1372
1373 2008-08-04  Richard Guenther  <rguenther@suse.de>
1374
1375         * tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add
1376         the candidate with the stripped base if that base is different
1377         from the original base even for offset zero.
1378
1379 2008-08-04  Richard Guenther  <rguenther@suse.de>
1380
1381         PR middle-end/36691
1382         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly
1383         check for no_overflow.
1384
1385 2008-08-04  Richard Guenther  <rguenther@suse.de>
1386
1387         * tree-vect-transform.c (vectorizable_call): Fix tuplification.
1388
1389 2008-08-04  Paul Brook  <paul@codesourcery.com>
1390
1391         * cofig/arm/arm.c (thumb_core_reg_alloc_order): New.
1392         (arm_order_regs_for_local_alloc): New function.
1393         * config/arm/arm-protos.h (arm_order_regs_for_local_alloc): Add
1394         prototype.
1395         * config/arm/arm.h (ORDER_REGS_FOR_LOCAL_ALLOC): Define.
1396
1397 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
1398
1399         PR target/37012
1400         * config/i386/i386.c (ix86_expand_prologue): Use UNITS_PER_WORD
1401         instead of STACK_BOUNDARY / BITS_PER_UNIT to align stack.
1402         (ix86_expand_epilogue): Likewise.
1403
1404 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
1405
1406         * config/i386/i386.c (ix86_compute_frame_layout): Fix a typo
1407         in comments.
1408
1409 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
1410
1411         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x
1412         to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES.
1413         (*movv2sf_internal_rex64): Ditto.
1414
1415 2008-08-03  Jan Hubicka  <jh@suse.cz>
1416
1417         * optabs.c (expand_binop, expand_builtin_pow, expand_builtin_powi,
1418         expand_builtin_strcat): Upse optimize_insn_for_speed predicate.
1419         * expmed.c (expand_smod_pow2): Likewise.
1420
1421 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
1422
1423         PR target/36992
1424         * config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
1425         alternative 0 of operand 1.
1426         (*vec_concatv2di_rex64_sse): Ditto.
1427         (*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
1428         of operand 1.
1429         (*sse2_storeq_rex64): Penalize allocation of "r" registers.
1430         * config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation
1431         of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
1432         (*movv2sf_internal_rex64): Ditto.
1433
1434 2008-08-02  Richard Guenther  <rguenther@suse.de>
1435
1436         PR target/35252
1437         * config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators.
1438         (ssedoublesizemode): New mode attribute.
1439         (sse_shufps): Call gen_sse_shufps_v4sf.
1440         (sse_shufps_1): Macroize.
1441         (sse2_shufpd): Call gen_Sse_shufpd_v2df.
1442         (sse2_shufpd_1): Macroize.
1443         (vec_extract_odd, vec_extract_even): New expanders.
1444         (vec_interleave_highv4sf, vec_interleave_lowv4sf,
1445         vec_interleave_highv2df, vec_interleave_lowv2df): Likewise.
1446         * i386.c (ix86_expand_vector_init_one_nonzero): Call
1447         gen_sse_shufps_v4sf instead of gen_sse_shufps_1.
1448         (ix86_expand_vector_set): Likewise.
1449         (ix86_expand_reduc_v4sf): Likewise.
1450
1451 2008-08-01  Doug Kwan  <dougkwan@google.com>
1452
1453         * matrix-reorg.c: Re-enable all code.
1454         (struct malloc_call_data): Change CALL_STMT to gimple type.
1455         (collect_data_for_malloc_call): Tuplify.
1456         (struct access_site_info): Change STMT to gimple type.
1457         (struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT,
1458         and MALLOC_FOR_LEVEL to gimple and gimple pointer type.
1459         (struct free_info): Change STMT to gimple type.
1460         (struct matrix_access_phi_node):  Change PHI to gimple type.
1461         (get_inner_of_cast_expr): Remove.
1462         (may_flatten_matrices_1): Tuplify.
1463         (may_flatten_matrices): Ditto.
1464         (mark_min_matrix_escape_level): Ditto.
1465         (ssa_accessed_in_tree): Refactor statement RHS related code into ...
1466         (ssa_accessed_in_call_rhs): New
1467         (ssa_accessed_in_assign_rhs): New
1468         (record_access_alloc_site_info): Tuplify.
1469         (add_allocation_site): Ditto.
1470         (analyze_matrix_allocation_site): Ditto.
1471         (analyze_transpose): Ditto.
1472         (get_index_from_offset): Ditto.
1473         (update_type_size): Ditto.
1474         (analyze_accesses_for_call_expr): Tuplify and renamed into ...
1475         (analyze_accesses_for_call_stmt): New. Also handle LHS of a call.
1476         (analyze_accesses_for_phi_node): Tuplify.
1477         (analyze_accesses_for_modify_stmt): Tuplify and renamed into ...
1478         (analyze_accesses_for_assign_stmt): Remove code for handling call LHS.
1479         (analyze_matrix_accesses): Tuplify.
1480         (check_var_data): New call-back type for check_var_notmodified_p.
1481         (check_var_notmodified_p): Tuplify and use call-back struct to
1482         return statement found.
1483         (can_calculate_expr_before_stmt): Factor out statement related code
1484         into ...
1485         (can_calculate_stmt_before_stmt): New.
1486         (check_allocation_function): Tuplify.
1487         (find_sites_in_func): Ditto.
1488         (record_all_accesses_in_func): Ditto.
1489         (transform_access_sites): Ditto.
1490         (transform_allocation_sites): Ditto.
1491         (matrix_reorg): Re-enable.
1492         (gate_matrix_reorg): Re-enable.
1493
1494 2008-08-01  Jakub Jelinek  <jakub@redhat.com>
1495
1496         * dwarf2out.c (compute_barrier_args_size): Set barrier_args_size
1497         for labels for which it hasn't been set yet.  If it has been set,
1498         stop walking insns and continue with next worklist item.
1499         (dwarf2out_stack_adjust): Don't call compute_barrier_args_size
1500         if the only BARRIER is at the very end of a function.
1501
1502 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
1503
1504         * cfgexpand.c (expand_stack_alignment): Assert that
1505         stack_realign_drap and drap_rtx must match.
1506
1507         * function.c (instantiate_new_reg): If DRAP is used to realign
1508         stack, replace virtual_incoming_args_rtx with internal arg
1509         pointer.
1510
1511 2008-08-01  Richard Guenther  <rguenther@suse.de>
1512
1513         * tree-ssa-pre.c (fini_pre): Take in_fre parameter.  Free
1514         loop information only if we initialized it.
1515         (execute_pre): Call fini_pre with in_fre.
1516         * tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump
1517         if we do not unroll because we hit max-completely-peeled-insns.
1518         Use our estimation for consistency, do allow shrinking.
1519
1520 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
1521
1522         * config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY
1523         with MIN_STACK_BOUNDARY.
1524         (ix86_update_stack_boundary): Likewise.
1525         (ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of
1526         STACK_BOUNDARY.
1527
1528         * config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ...
1529         (MIN_STACK_BOUNDARY): This.
1530
1531 2008-08-01  Richard Guenther  <rguenther@suse.de>
1532
1533         PR middle-end/36997
1534         * gimplify.c (gimplify_call_expr): Set error_mark_node on GS_ERROR.
1535
1536 2008-08-01  Richard Guenther  <rguenther@suse.de>
1537
1538         PR tree-optimization/36988
1539         * tree-ssa-ccp.c (ccp_fold): Conversions of constants only
1540         do not matter if that doesn't change volatile qualification.
1541
1542 2008-08-01  Paolo Bonzini  <bonzini@gnu.org>
1543
1544         * configure.ac: Do not generate libada-mk.  Do not subst
1545         host_cc_for_libada.
1546         * libada-mk.in: Remove.
1547         * Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars.
1548         * configure: Regenerate.
1549
1550 2008-08-01  Basile Starynkevitch  <basile@starynkevitch.net>
1551
1552         * tree-pass.h: Added comment about not dumping passes with name
1553         starting with star in struct opt_pass.
1554         * passes.c (register_dump_files_1): Don't do dump for a pass with
1555         name starting with star.
1556         * doc/passes.texi (Pass manager): Mention pass names and special
1557         meaning of star prefix to avoid dump.
1558
1559 2008-07-31  Adam Nemet  <anemet@caviumnetworks.com>
1560
1561         * config.gcc (mipsisa64r2*-*-linux*): New configuration.  Set ISA
1562         to MIPS64r2.
1563         * config/mips/mips.h (GENERATE_MIPS16E): Update comment.
1564         (ISA_MIPS64R2): New macro.
1565         (TARGET_CPU_CPP_BUILTINS, MULTILIB_ISA_DEFAULT): Handle it.
1566         (ISA_HAS_64BIT_REGS, ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE,
1567         ISA_HAS_8CC, ISA_HAS_FP4, ISA_HAS_PAIRED_SINGLE,
1568         ISA_HAS_MADD_MSUB, ISA_HAS_NMADD4_NMSUB4, ISA_HAS_CLZ_CLO,
1569         ISA_HAS_ROR, ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX, ISA_HAS_SEB_SEH,
1570         ISA_HAS_EXT_INS, ISA_HAS_MXHC1, ISA_HAS_HILO_INTERLOCKS,
1571         ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Return true for ISA_MIPS64R2.
1572         (MIPS_ISA_LEVEL_SPEC, ASM_SPEC, LINK_SPEC): Handle -mips64r2.
1573         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF):
1574         Move up to keep list alphabetically sorted.
1575         (TUNE_20KC, TUNE_24K, TUNE_74K, TUNE_LOONGSON_2EF): Likewise.
1576         * config/mips/mips.c (mips_cpu_info_table): Add default MIPS64r2
1577         processor.
1578         * doc/invoke.texi (MIPS Options): Add -mips64r2.
1579         (-march=@var{arch}): Add mips64r2.
1580
1581 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
1582
1583         * config/i386/darwin.h (MAIN_STACK_BOUNDARY): Define to 128.
1584
1585 2008-07-31  Steve Ellcey  <sje@cup.hp.com>
1586
1587         * expr.c (expand_assignment): Check for complete type.
1588
1589 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
1590
1591         PR debug/36977
1592         * cfgexpand.c (expand_stack_alignment): Set stack_realign_tried.
1593
1594         * dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried
1595         for stack alignment.
1596
1597         * function.h (rtl_data): Add stack_realign_tried.  Update comments.
1598
1599 2008-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
1600
1601         * config/sh/sh.c (sh_canonical_va_list_type): Remove.
1602         (TARGET_CANONICAL_VA_LIST_TYPE): Remove.
1603
1604 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
1605
1606         PR rtl-optimization/36419
1607         * dwarf2out.c (barrier_args_size): New variable.
1608         (compute_barrier_args_size, compute_barrier_args_size_1): New
1609         functions.
1610         (dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size
1611         if not called yet in the current function, use barrier_args_size
1612         array to find the new args_size value.
1613         (dwarf2out_frame_debug): Free and clear barrier_args_size.
1614
1615 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
1616
1617         PR debug/36980
1618         * dwarf2out.c (dwarf2out_frame_debug_expr): Move rule 17 before
1619         rule 19.
1620
1621 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
1622
1623         PR debug/36976
1624         * dwarf2out.c (dwarf2out_args_size_adjust): New.
1625         (dwarf2out_stack_adjust): Use it.
1626         (dwarf2out_frame_debug_expr): Likewise.
1627
1628 2008-07-31  Richard Guenther  <rguenther@suse.de>
1629
1630         PR tree-optimization/36978
1631         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Do not fold
1632         the generated condition.
1633
1634 2008-07-31  Richard Guenther  <rguenther@suse.de>
1635
1636         * passes.c (init_optimization_passes): Always call
1637         pass_early_warn_uninitialized.
1638         * opts.c (decode_options): Do not warn about -Wuninitialized at -O0.
1639         * doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0.
1640         * doc/passes.texi (Warn for uninitialized variables): Adjust.
1641
1642 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
1643
1644         PR c/36970
1645         * builtins.c (maybe_emit_free_warning): New function.
1646         (expand_builtin): Process BUILT_IN_FREE even at -O0.  Call
1647         maybe_emit_free_warning for BUILT_IN_FREE.
1648
1649         PR debug/36278
1650         * dwarf2out.c (get_context_die): New function.
1651         (force_decl_die, force_type_die): Use it.
1652         (dwarf2out_imported_module_or_decl): Likewise.  If base_type_die
1653         returns NULL, force generation of DW_TAG_typedef and put that into
1654         DW_AT_import.
1655
1656         PR preprocessor/36649
1657         * c-pch.c (c_common_read_pch): Save and restore
1658         line_table->trace_includes across PCH restore.
1659
1660 2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>
1661
1662         PR ada/36554
1663         * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.
1664
1665 2008-07-30  Rafael Avila de Espindola  <espindola@google.com>
1666
1667         PR 36974
1668         * final.c (call_from_call_insn): Handle COND_EXEC.
1669
1670 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
1671
1672         * builtins.c (std_gimplify_va_arg_expr): Replace
1673         PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT.
1674         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
1675
1676 2008-07-30  Joey Ye  <joey.ye@intel.com>
1677             H.J. Lu  <hongjiu.lu@intel.com>
1678
1679         * builtins.c (expand_builtin_setjmp_receiver): Replace
1680         virtual_incoming_args_rtx with crtl->args.internal_arg_pointer.
1681         (expand_builtin_apply_args_1): Likewise.
1682         (expand_builtin_longjmp): Need DRAP for stack alignment.
1683         (expand_builtin_apply): Likewise.
1684
1685         * caller-save.c (setup_save_areas): Call assign_stack_local_1
1686         instead of assign_stack_local to allow alignment reduction.
1687
1688         * calls.c (emit_call_1): Need DRAP for stack alignment if
1689         return pops.
1690         (expand_call): Replace virtual_incoming_args_rtx with
1691         crtl->args.internal_arg_pointer.
1692         * stmt.c (expand_nl_goto_receiver): Likewise.
1693
1694         * cfgexpand.c (get_decl_align_unit): Estimate stack variable
1695         alignment and store to stack_alignment_estimated and
1696         max_used_stack_slot_alignment.
1697         (expand_one_var): Likewise.
1698         (expand_stack_alignment): New function.
1699         (tree_expand_cfg): Initialize max_used_stack_slot_alignment
1700         and stack_alignment_estimated fields in rtl_data.  Call
1701         expand_stack_alignment at end.
1702
1703         * defaults.h (INCOMING_STACK_BOUNDARY): New.
1704         (MAX_STACK_ALIGNMENT): Likewise.
1705         (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise.
1706         (SUPPORTS_STACK_ALIGNMENT): Likewise.
1707
1708         * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for
1709         stack alignment when generating virtual registers.
1710
1711         * function.c (assign_stack_local): Renamed to ...
1712         (assign_stack_local_1): This.  Add a parameter to indicate
1713         if it is OK to reduce alignment.
1714         (assign_stack_local): Use it.
1715         (instantiate_new_reg): Instantiate virtual incoming args rtx
1716         to vDRAP if stack realignment and DRAP is needed.
1717         (assign_parms): Collect parameter/return type alignment and
1718         contribute to stack_alignment_estimated.
1719         (locate_and_pad_parm): Likewise.
1720         (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx
1721         with crtl->args.internal_arg_pointer.
1722
1723         * function.h (rtl_data): Add new field drap_reg,
1724         max_used_stack_slot_alignment, stack_alignment_estimated,
1725         stack_realign_needed, need_drap, stack_realign_processed and
1726         stack_realign_finalized.
1727         (stack_realign_fp): New macro.
1728         (stack_realign_drap): Likewise.
1729
1730         * global.c (compute_regsets): Frame pointer is needed when
1731         stack is realigned.  Can eliminate frame pointer when stack is
1732         realigned and dynamic realigned argument pointer isn't used.
1733
1734         * reload1.c (update_eliminables):  Frame pointer is needed
1735         when stack is realigned.
1736         (init_elim_table): Can eliminate frame pointer when stack is
1737         realigned and dynamic realigned argument pointer isn't used.
1738
1739         * rtl.h (assign_stack_local_1): Declare new funtion.
1740
1741         * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New.
1742         (TARGET_GET_DRAP_RTX): Likewise.
1743         (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and
1744         TARGET_GET_DRAP_RTX.
1745
1746         * target.h (gcc_target): Add update_stack_boundary and get_drap_rtx.
1747
1748         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
1749         STACK_BOUNDARY with MAX_STACK_ALIGNMENT.
1750
1751 2008-07-30  Xuepeng Guo  <xuepeng.guo@intel.com>
1752             H.J. Lu  <hongjiu.lu@intel.com>
1753
1754         * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg,
1755         vdrap_reg, stack_realign and drap_reg_saved.
1756         (add_cfi): Don't allow redefining CFA when DRAP is used.
1757         (reg_save): Handle stack alignment.
1758         (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack
1759         alignment.  Don't generate DWARF information for (set fp sp)
1760         when DRAP is used.
1761         (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg
1762         to INVALID_REGNUM.
1763         (int_loc_descriptor): Move prototype forward.  Also define if
1764         DWARF2_UNWIND_INFO is true.
1765         (output_cfa_loc): Handle DW_CFA_expression.
1766         (build_cfa_aligned_loc): New.
1767         (based_loc_descr): Update assert for stack realign.  For local
1768         variables, use sp+offset when stack is aligned without drap and
1769         fp+offset when stack is aligned with drap.  For arguments, use
1770         cfa+offset when drap is used to align stack.
1771
1772 2008-07-30  Joey Ye  <joey.ye@intel.com>
1773             H.J. Lu  <hongjiu.lu@intel.com>
1774
1775         * config/i386/i386.c (ix86_force_align_arg_pointer_string):
1776         Break long line.
1777         (ix86_gen_andsp): New.
1778         (ix86_user_incoming_stack_boundary): Likewise.
1779         (ix86_default_incoming_stack_boundary): Likewise.
1780         (ix86_incoming_stack_boundary): Likewise.
1781         (ix86_can_eliminate): Likewise.
1782         (find_drap_reg): Likewise.
1783         (ix86_update_stack_boundary): Likewise.
1784         (ix86_get_drap_rtx): Likewise.
1785         (ix86_finalize_stack_realign_flags): Likewise.
1786         (TARGET_UPDATE_STACK_BOUNDARY): Likewise.
1787         (TARGET_GET_DRAP_RTX): Likewise.
1788         (override_options): Overide option value for new options.
1789         (ix86_function_ok_for_sibcall): Remove check for
1790         force_align_arg_pointer.
1791         (ix86_handle_cconv_attribute): Likewise.
1792         (ix86_function_regparm): Likewise.
1793         (setup_incoming_varargs_64): Don't set stack_alignment_needed here.
1794         (ix86_va_start): Replace virtual_incoming_args_rtx with
1795         crtl->args.internal_arg_pointer.
1796         (ix86_select_alt_pic_regnum): Check DRAP register.
1797         (ix86_save_reg): Replace force_align_arg_pointer with drap_reg.
1798         (ix86_compute_frame_layout): Compute frame layout wrt stack
1799         realignment.
1800         (ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx.
1801         (ix86_expand_prologue): Decide if stack realignment is needed
1802         and generate prologue code accordingly.
1803         (ix86_expand_epilogue): Generate epilogue code wrt stack
1804         realignment is really needed or not.
1805         
1806         * config/i386/i386.h (MAIN_STACK_BOUNDARY): New.
1807         (ABI_STACK_BOUNDARY): Likewise.
1808         (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise.
1809         (STACK_REALIGN_DEFAULT): Likewise.
1810         (INCOMING_STACK_BOUNDARY): Likewise.
1811         (MAX_STACK_ALIGNMENT): Likewise.
1812         (ix86_incoming_stack_boundary): Likewise.
1813         (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed.
1814         (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG.
1815         (CAN_ELIMINATE): Defined with ix86_can_eliminate.
1816         (machine_function): Remove force_align_arg_pointer.
1817
1818         * config/i386/i386.md (BX_REG): New.
1819         (R13_REG): Likewise.
1820
1821         * config/i386/i386.opt (mforce_drap): New.
1822         (mincoming-stack-boundary): Likewise.
1823         (mstackrealign): Add Init(-1).
1824
1825         * config/i386/i386-protos.h (ix86_can_eliminate): New
1826
1827 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
1828
1829         * doc/extend.texi: Update force_align_arg_pointer.
1830
1831         * doc/invoke.texi: Document -mincoming-stack-boundary.  Update
1832         -mstackrealign.
1833
1834         * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro.
1835         (INCOMING_STACK_BOUNDARY): Likewise.
1836         (TARGET_UPDATE_STACK_BOUNDARY): New target hook.
1837         (TARGET_GET_DRAP_RTX): Likewise.
1838
1839 2008-07-30  Andreas Schwab  <schwab@suse.de>
1840
1841         PR rtl-optimization/36929
1842         * dse.c (replace_inc_dec): Use emit_insn_before instead of
1843         add_insn_before and fix argument order.
1844         (replace_inc_dec_mem): Handle NULL rtx.
1845
1846 2008-07-30  Andrew Jenner  <andrew@codesourcery.com>
1847
1848         * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
1849         function.
1850         (arm_compute_initial_elimination_offset): Use it.
1851         (arm_compute_save_reg_mask): Include static chain save slot when
1852         calculating alignment.
1853         (arm_get_frame_offsets): Ditto.
1854         (thumb1_compute_save_reg_mask): Ensure we have a low register saved
1855         that we can use to decrement the stack when the stack decrement
1856         could be too big for an immediate value in a single insn.
1857         (thumb1_expand_prologue): Avoid using r12 for stack decrement.
1858
1859 2008-07-30  Richard Guenther  <rguenther@suse.de>
1860
1861         PR tree-optimization/36967
1862         * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p.
1863         Release defs of statements we remove.
1864
1865 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
1866
1867         * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
1868         instead of NULL_RTVEC.
1869
1870 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
1871
1872         PR target/35866
1873
1874         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
1875         vector modes.
1876
1877 2008-07-30  Rafael Avila de Espindola  <espindola@google.com>
1878
1879         * final.c (call_from_call_insn): New.
1880         (final_scan_insn): Call assemble_external on FUNCTION_DECLs.
1881
1882 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
1883
1884         * configure.ac: Substitute ADA_CFLAGS.
1885         * configure: Regenerate.
1886         * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files.
1887         * Makefile.in: Remove mention of X_* variables.
1888         * config/pa/x-ada-hpux10: Remove.
1889         * config/pa/x-ada: Remove.
1890
1891         * doc/fragments.texi: Update.
1892
1893 2008-07-30  Olivier Hainque  <hainque@adacore.com>
1894
1895         * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
1896         * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
1897         __dso_handle explicitly here.
1898
1899 2008-07-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1900
1901         PR 34389
1902         * c-typeck.c (build_binary_op): Encapsulate code into...
1903         * c-common.c (shorten_binary_op): ...this new function.
1904         (conversion_warning): Use the new function. Handle non-negative
1905         constant in bitwise-and.
1906         * c-common.h (shorten_binary_op): Declare.
1907
1908 2008-07-30  Olivier Hainque  <hainque@adacore.com>
1909
1910         * scan.c (make_sstring_space): Add explicit conversions of
1911         allocator's return value.
1912         * fix-header.c (recognized_function): Likewise.
1913
1914 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1915
1916         * doc/cpp.texi: Update to GFDL 1.2.
1917         * doc/gcc.texi: Do not list GPL as Invariant Section.
1918         * doc/gccint.texi: Likewise.  Update copyright years.
1919         * doc/install.texi: Update copyright years.
1920
1921 2008-07-30  Alan Modra  <amodra@bigpond.net.au>
1922
1923         PR target/36955
1924         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
1925         a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.
1926
1927 2008-07-29  Jan Hubicka  <jh@suse.cz>
1928
1929         * c-decl.c (merge_decls): Do not handle DECL_INLINE.
1930         (grokdeclarator): Likewise.
1931         * langhooks.c (lhd_warn_unused_global_decl): Use
1932         DECL_DECLARED_INLINE_P.
1933         * print-tree.c (print_node): Remove DECL_INLINE check.
1934
1935 2008-07-29  Richard Guenther  <rguenther@suse.de>
1936
1937         PR tree-optimization/36945
1938         * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
1939         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
1940         Record invariant addresses un-decomposed.
1941         (copy_reference_ops_from_call): Record reference call
1942         arguments properly.  Simplify.
1943         * tree-ssa-pre.c (create_component_ref_by_pieces_1): New
1944         helper split out from ...
1945         (create_component_ref_by_pieces): ... here.  Simplify.
1946         Prepare for recursive invocation for call arguments.
1947         (create_expression_by_pieces): Adjust call to
1948         create_component_ref_by_pieces.
1949         (compute_avail): Process operand 2 of reference ops.
1950
1951 2008-07-29  Richard Guenther  <rguenther@suse.de>
1952
1953         * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for OBJ_TYPE_REF.
1954
1955 2008-07-29  Jakub Jelinek  <jakub@redhat.com>
1956
1957         * c-format.c (check_format_types): Revert unwanted checkin.
1958
1959 2008-07-29  Jan Hubicka  <jh@suse.cz>
1960
1961         * flags.h (flag_really_no_inline): Remove.
1962         * cgraph.c (cgraph_function_possibly_inlined_p): Simplify.
1963         * toplev.c (flag_really_no_inline): Remove.
1964         * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline.
1965         * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline.
1966         (cgraph_decide_inlining_incrementally): Likewise.
1967         (compute_inline_parameters): Likewise.
1968         * opts.c (decode_options): Simplify.
1969         * c-opts.c (c_common_post_options): Do not set flag_no_inline.
1970         * common.opt (finline): Initialize to 1.
1971         * tree-inline.c (inlinable_function_p): Check flag_no_inline.
1972
1973 2008-07-29  Jan Hubicka  <jh@suse.cz>
1974
1975         * predict.c (always_optimize_for_size_p): New function.
1976         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
1977         optimize_edge_for_size_p, optimize_edge_for_speed_p,
1978         optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
1979         functions.
1980         (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
1981         * function.c (prepare_function_start): Set default profile.
1982         * function.h (rtl_data): Add maybe_hot_insn_p.
1983         * cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
1984         (construct_exit_block): Likewise.
1985         (tree_expand_cfg): Likewise.
1986         * basic-block.h
1987         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
1988         optimize_edge_for_size_p, optimize_edge_for_speed_p,
1989         optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
1990         (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
1991         Declare.
1992
1993 2008-07-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1994
1995         PR 34985
1996         * c-decl.c (merge_decls): Merge USED flags.
1997
1998 2008-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
1999
2000         * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
2001         valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit,
2002         next_stack, lab_false and lab_over trees.
2003
2004 2008-07-28  Richard Guenther  <rguenther@suse.de>
2005
2006         PR tree-optimization/36957
2007         * tree-flow.h (tree_ssa_useless_type_conversion): Remove.
2008         (useless_type_conversion_p): Remove.
2009         (types_compatible_p): Remove.
2010         * gimple.h (tree_ssa_useless_type_conversion): Declare.
2011         (useless_type_conversion_p): Declare.
2012         (types_compatible_p): Declare.
2013         (gimple_expr_type): Return the base type only if it is
2014         trivially convertible to the subtype.
2015
2016 2008-07-28  Andreas Tobler  <a.tobler@schweiz.org>
2017
2018         * configure.ac: Use the m4_do macro to concatenate the warnings into
2019         one string in ACX_PROG_CC_WARNING_OPTS,
2020         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and ACX_PROG_CC_WARNINGS_ARE_ERRORS.
2021         * configure: Regenerate.
2022
2023 2008-07-28  Richard Guenther  <rguenther@suse.de>
2024
2025         * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code.
2026         (insert_fake_stores): Remove.
2027         (realify_fake_stores): Likewise.
2028         (execute_pre): Remove dead code.
2029         * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary case.
2030         (find_func_aliases): Deal with it here instead.
2031         Re-enable gcc_unreachable call.
2032
2033 2008-07-28  Richard Guenther  <rguenther@suse.de>
2034
2035         Merge from gimple-tuples-branch.
2036
2037         * ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
2038         * gimple.def: New file.
2039         * gsstruct.def: Likewise.
2040         * gimple-iterator.c: Likewise.
2041         * gimple-pretty-print.c: Likewise.
2042         * tree-gimple.c: Removed.  Merged into ...
2043         * gimple.c: ... here.  New file.
2044         * tree-gimple.h: Removed.  Merged into ...
2045         * gimple.h: ... here.  New file.
2046
2047         * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
2048         * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
2049         --enable-checking=gimple flag.
2050         * config.in: Likewise.
2051         * configure: Regenerated.
2052
2053         * tree-ssa-operands.h: Tuplified.
2054         * tree-vrp.c: Likewise.
2055         * tree-loop-linear.c: Likewise.
2056         * tree-into-ssa.c: Likewise.
2057         * tree-ssa-loop-im.c: Likewise.
2058         * tree-dump.c: Likewise.
2059         * tree-complex.c: Likewise.
2060         * cgraphbuild.c: Likewise.
2061         * tree-ssa-threadupdate.c: Likewise.
2062         * tree-ssa-loop-niter.c: Likewise.
2063         * tree-pretty-print.c: Likewise.
2064         * tracer.c: Likewise.
2065         * gengtype.c: Likewise.
2066         * tree-loop-distribution.c: Likewise.
2067         * tree-ssa-loop-unswitch.c: Likewise.
2068         * cgraph.c: Likewise.
2069         * cgraph.h: Likewise.
2070         * tree-ssa-loop-manip.c: Likewise.
2071         * value-prof.c: Likewise.
2072         * tree-ssa-loop-ch.c: Likewise.
2073         * tree-tailcall.c: Likewise.
2074         * value-prof.h: Likewise.
2075         * tree.c: Likewise.
2076         * tree.h: Likewise.
2077         * tree-pass.h: Likewise.
2078         * ipa-cp.c: Likewise.
2079         * tree-scalar-evolution.c: Likewise.
2080         * tree-scalar-evolution.h: Likewise.
2081         * target.h: Likewise.
2082         * lambda-mat.c: Likewise.
2083         * tree-phinodes.c: Likewise.
2084         * diagnostic.h: Likewise.
2085         * builtins.c: Likewise.
2086         * tree-ssa-alias-warnings.c: Likewise.
2087         * cfghooks.c: Likewise.
2088         * fold-const.c: Likewise.
2089         * cfghooks.h: Likewise.
2090         * omp-low.c: Likewise.
2091         * tree-ssa-dse.c: Likewise.
2092         * ipa-reference.c: Likewise.
2093         * tree-ssa-uncprop.c: Likewise.
2094         * toplev.c: Likewise.
2095         * tree-gimple.c: Likewise.
2096         * tree-gimple.h: Likewise.
2097         * tree-chrec.c: Likewise.
2098         * tree-chrec.h: Likewise.
2099         * tree-ssa-sccvn.c: Likewise.
2100         * tree-ssa-sccvn.h: Likewise.
2101         * cgraphunit.c: Likewise.
2102         * tree-ssa-copyrename.c: Likewise.
2103         * tree-ssa-ccp.c: Likewise.
2104         * tree-ssa-loop-ivopts.c: Likewise.
2105         * tree-nomudflap.c: Likewise.
2106         * tree-call-cdce.c: Likewise.
2107         * ipa-pure-const.c: Likewise.
2108         * c-format.c: Likewise.
2109         * tree-stdarg.c: Likewise.
2110         * tree-ssa-math-opts.c: Likewise.
2111         * tree-ssa-dom.c: Likewise.
2112         * tree-nrv.c: Likewise.
2113         * tree-ssa-propagate.c: Likewise.
2114         * ipa-utils.c: Likewise.
2115         * tree-ssa-propagate.h: Likewise.
2116         * tree-ssa-alias.c: Likewise.
2117         * gimple-low.c: Likewise.
2118         * tree-ssa-sink.c: Likewise.
2119         * ipa-inline.c: Likewise.
2120         * c-semantics.c: Likewise.
2121         * dwarf2out.c: Likewise.
2122         * expr.c: Likewise.
2123         * tree-ssa-loop-ivcanon.c: Likewise.
2124         * predict.c: Likewise.
2125         * tree-ssa-loop.c: Likewise.
2126         * tree-parloops.c: Likewise.
2127         * tree-ssa-address.c: Likewise.
2128         * tree-ssa-ifcombine.c: Likewise.
2129         * matrix-reorg.c: Likewise.
2130         * c-decl.c: Likewise.
2131         * tree-eh.c: Likewise.
2132         * c-pretty-print.c: Likewise.
2133         * lambda-trans.c: Likewise.
2134         * function.c: Likewise.
2135         * langhooks.c: Likewise.
2136         * ebitmap.h: Likewise.
2137         * tree-vectorizer.c: Likewise.
2138         * function.h: Likewise.
2139         * langhooks.h: Likewise.
2140         * tree-vectorizer.h: Likewise.
2141         * ipa-type-escape.c: Likewise.
2142         * ipa-type-escape.h: Likewise.
2143         * domwalk.c: Likewise.
2144         * tree-if-conv.c: Likewise.
2145         * profile.c: Likewise.
2146         * domwalk.h: Likewise.
2147         * tree-data-ref.c: Likewise.
2148         * tree-data-ref.h: Likewise.
2149         * tree-flow-inline.h: Likewise.
2150         * tree-affine.c: Likewise.
2151         * tree-vect-analyze.c: Likewise.
2152         * c-typeck.c: Likewise.
2153         * gimplify.c: Likewise.
2154         * coretypes.h: Likewise.
2155         * tree-ssa-phiopt.c: Likewise.
2156         * calls.c: Likewise.
2157         * tree-ssa-coalesce.c: Likewise.
2158         * tree.def: Likewise.
2159         * tree-dfa.c: Likewise.
2160         * except.c: Likewise.
2161         * except.h: Likewise.
2162         * cfgexpand.c: Likewise.
2163         * tree-cfgcleanup.c: Likewise.
2164         * tree-ssa-pre.c: Likewise.
2165         * tree-ssa-live.c: Likewise.
2166         * tree-sra.c: Likewise.
2167         * tree-ssa-live.h: Likewise.
2168         * tree-predcom.c: Likewise.
2169         * lambda.h: Likewise.
2170         * tree-mudflap.c: Likewise.
2171         * ipa-prop.c: Likewise.
2172         * print-tree.c: Likewise.
2173         * tree-ssa-copy.c: Likewise.
2174         * ipa-prop.h: Likewise.
2175         * tree-ssa-forwprop.c: Likewise.
2176         * ggc-page.c: Likewise.
2177         * c-omp.c: Likewise.
2178         * tree-ssa-dce.c: Likewise.
2179         * tree-vect-patterns.c: Likewise.
2180         * tree-ssa-ter.c: Likewise.
2181         * tree-nested.c: Likewise.
2182         * tree-ssa.c: Likewise.
2183         * lambda-code.c: Likewise.
2184         * tree-ssa-loop-prefetch.c: Likewise.
2185         * tree-inline.c: Likewise.
2186         * tree-inline.h: Likewise.
2187         * tree-iterator.c: Likewise.
2188         * tree-optimize.c: Likewise.
2189         * tree-ssa-phiprop.c: Likewise.
2190         * tree-vect-transform.c: Likewise.
2191         * tree-object-size.c: Likewise.
2192         * tree-outof-ssa.c: Likewise.
2193         * cfgloop.c: Likewise.
2194         * system.h: Likewise.
2195         * tree-profile.c: Likewise.
2196         * cfgloop.h: Likewise.
2197         * c-gimplify.c: Likewise.
2198         * c-common.c: Likewise.
2199         * tree-vect-generic.c: Likewise.
2200         * tree-flow.h: Likewise.
2201         * c-common.h: Likewise.
2202         * basic-block.h: Likewise.
2203         * tree-ssa-structalias.c: Likewise.
2204         * tree-switch-conversion.c: Likewise.
2205         * tree-ssa-structalias.h: Likewise.
2206         * tree-cfg.c: Likewise.
2207         * passes.c: Likewise.
2208         * ipa-struct-reorg.c: Likewise.
2209         * ipa-struct-reorg.h: Likewise.
2210         * tree-ssa-reassoc.c: Likewise.
2211         * cfgrtl.c: Likewise.
2212         * varpool.c: Likewise.
2213         * stmt.c: Likewise.
2214         * tree-ssanames.c: Likewise.
2215         * tree-ssa-threadedge.c: Likewise.
2216         * langhooks-def.h: Likewise.
2217         * tree-ssa-operands.c: Likewise.
2218         * config/alpha/alpha.c: Likewise.
2219         * config/frv/frv.c: Likewise.
2220         * config/s390/s390.c: Likewise.
2221         * config/m32c/m32c.c: Likewise.
2222         * config/m32c/m32c-protos.h: Likewise.
2223         * config/spu/spu.c: Likewise.
2224         * config/sparc/sparc.c: Likewise.
2225         * config/i386/i386.c: Likewise.
2226         * config/sh/sh.c: Likewise.
2227         * config/xtensa/xtensa.c: Likewise.
2228         * config/stormy16/stormy16.c: Likewise.
2229         * config/ia64/ia64.c: Likewise.
2230         * config/rs6000/rs6000.c: Likewise.
2231         * config/pa/pa.c: Likewise.
2232         * config/mips/mips.c: Likewise.
2233
2234 2008-07-28  Simon Baldwin  <simonb@google.com>
2235
2236         * c-pragma.c (handle_pragma_message): New function.
2237         (init_pragma): Register handle_pragma_message.
2238         * doc/extend.texi (Diagnostic Pragmas): Added #pragma message
2239         documentation.
2240
2241 2008-07-27  Victor Kaplansky  <victork@il.ibm.com>
2242
2243         PR tree-optimization/35252
2244         * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
2245         REALPART_EXPR to be considered as same load operation.
2246
2247 2008-07-27  Eric Botcazou  <ebotcazou@adacore.com>
2248
2249         PR tree-optimization/36830
2250         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
2251         (expressions_equal_p): Return false if only one operand is null.
2252
2253 2008-07-26  Gerald Pfeifer  <gerald@pfeifer.com>
2254
2255         * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
2256         version requirements.
2257
2258 2008-07-26  Olivier Hainque  <hainque@adacore.com>
2259
2260         * collect2.c (symkind): New enum.  Symbol kinds we care about.
2261         (is_ctor_dtor): Return symkind instead of int.  Adjust prototype,
2262         code and head comment accordingly.
2263         (scan_prog_file): Use symkind names instead of bare integers.
2264
2265 2008-07-25  Jan Hubicka  <jh@suse.cz>
2266
2267         * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on
2268         DECL_INLINE.
2269         * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
2270         (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
2271         * dojump.c (clear_pending_stack_adjust): Likewise.
2272         * print-tree.c (print_node): Ignore DECL_INLINE.
2273         * tree-inline.c (inlinable_function_p): Likewise.
2274
2275 2008-07-25  Michael Meissner  <gnu@the-meissners.org>
2276
2277         * doc/extend.texi (hot attribute): Document that the hot attribute
2278         turns on -O3 for some ports.
2279         (cold attribute): Document that the cold attribute turns on -Os
2280         for some ports
2281
2282         * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
2283         reflect function specific option support.
2284
2285         * target.h (struct target_option_hooks): Add fields to say whether
2286         the cold attribute implies -Os and the hot attribute implies -O3.
2287
2288         * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
2289         By default, do not turn on -Os for cold functions.
2290         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
2291         not turn on -O3 for hot functions.
2292
2293         * c-common.c (handle_hot_attribute): Use target hook to determine
2294         if hot functions should enable -O3.
2295         (handle_cold_attribute): Use target hook to determine if cold
2296         functions should enable -Os.
2297
2298         * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
2299         (override_options): Move disable scheduling to
2300         optimization_options.
2301         (optimization_options): Disable scheduling here, not
2302         override_options.
2303         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
2304         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
2305
2306         * config/ia64/ia64.c (ia64_override_options): Move setting
2307         scheduling flags to ia64_optimization_options.
2308         (ia64_optimization_options): Disable scheduling options here, and
2309         not in ia64_override_options.
2310         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
2311         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
2312
2313 2008-07-25  H.J. Lu  <hongjiu.lu@intel.com>
2314
2315         PR target/36936
2316         * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
2317
2318 2008-07-25  Martin Jambor  <mjambor@suse.cz>
2319
2320         PR tree-optimization/36926
2321         * ipa-prop.c (ipa_analyze_call_uses): Call
2322         ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
2323
2324 2008-07-25  Joseph Myers  <joseph@codesourcery.com>
2325
2326         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
2327         movv2si_internal): Add mem = reg alternative.
2328
2329 2008-07-25  Andreas Tobler  <a.tobler@schweiz.org>
2330
2331         PR bootstrap/36918
2332         * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
2333         DEFAULT_PCC_STRUCT_RETURN to 127.
2334
2335 2008-07-24  Jan Hubicka  <jh@suse.cz>
2336
2337         * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
2338         (build_cgraph_edges): Likewise.
2339         * cgraph.c (cgraph_node): Do not update assembler hash.
2340         (cgraph_remove_node): Drop non-unit-at-a-time code.
2341         * tree-pass.h (pass_O0_always_inline): Remove.
2342         * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
2343         * toplev.c (process_options): Flag unit-at-a-time does not imply
2344         no section anchors.
2345         * cgraphunit.c: Update comments.
2346         (decide_is_function_needed): Drop non-unit-at-a-time mode.
2347         (cgraph_assemble_pending_functions): Remove.
2348         (cgraph_reset_node): Drop non-unit-at-a-time code.
2349         (cgraph_finalize_function): Likewise.
2350         (cgraph_analyze_function): Likewise.
2351         (cgraph_finalize_compilation_unit): Likewise.
2352         (cgraph_expand_function): Likewise.
2353         (cgraph_optimize): Likesise.
2354         (save_inline_function_body): Likewise.
2355         * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
2356         * tree-ssa-alias.c (maybe_be_aliased): Likewise.
2357         * ipa-inline.c: Update comments.
2358         (enum inlining_mode): remove INLINE_SPEED.
2359         (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
2360         (cgraph_mark_inline_edge): Likewise.
2361         (try_inline): Likewise.
2362         (cgraph_decide_inlining_incrementally): Likewise.
2363         (cgraph_gate_inlining): Remove.
2364         (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
2365         (cgraph_gate_early_inlining): Likewise.
2366         (gate_inline_passes): Remove.
2367         (pass_inline_parameters, pass_ipa_inline): Remove gates.
2368         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
2369         pass_O0_always_inline): Remove.
2370         * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
2371         * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
2372         * opts.c (no_unit_at_a_time_default): Remove.
2373         (decode_options): Remove flag_unit_at_a_time reset and warning.
2374         * opts.h (no_unit_at_a_time_default): Remove.
2375         * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
2376         early in GNU dialect.
2377         (merge_decls): Update comment; drop unit-at-a-time check.
2378         (finish_decl): Likewise.
2379         (grok_declaration): Remove flag_inline_trees code.
2380         (finish_functions): Return on function returning non-void on all
2381         statics.
2382         * ipa-tye-escape.c (gate_type_escape_vars): Remove.
2383         * cfgexpand.c (expand_one_static_var): Remove.
2384         (expand_one_var): Remove expand_one_static_var call.
2385         (expand_used_vars_for_block): Remove flag_unit_a_time check.
2386         * c-opts.c (c_common_post_options): Remove flag_inline_trees code
2387         and flag_unit_at_a-time compatibility checks.
2388         * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
2389         * tree-inline.c (flag_inline_trees): Remove.
2390         (inlinable_function_p): Don't check it.
2391         (expand_call_inline): Remove non-unit-at-a-time code.
2392         * tree-inline.h (flag_inline_trees): Remove.
2393         * tree-optimize.c (execute_early_local_optimizations): Remove
2394         unit-at-a-time checks.
2395         (tree_rest_of_compilation): Likewise.
2396         * combine.c (setup_incoming_promotions): Likewise.
2397         * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
2398         * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
2399         * passes.c (pass_inline_parameters): Update comments; remove
2400         O0_alwaysinline pass.
2401         (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
2402         (execute_one_pass): Likewise.
2403         * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
2404         (ix86_function_sseregparm): Likewise.
2405         * arm.c (arm_function_in_section_p): Likewise.
2406         * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
2407         * varpool.c: Update comments.
2408         (decide_is_variable_needed): Remove unit-at-a-time checks.
2409         (varpool_finalize_decl): Likewise.
2410
2411 2008-07-24  Kaz Kojima  <kkojima@gcc.gnu.org>
2412
2413         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
2414         to 2 instead of -1.
2415         (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal to 2.
2416
2417 2008-07-24  Kai Tietz  <kai.tietz@onevision.com>
2418
2419         * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
2420         imp symbol extension.
2421
2422         2008-07-23  Ian Lance Taylor  <iant@google.com>
2423
2424         * tree-vrp.c (infer_value_range): Ignore asm statements when
2425         looking for memory accesses for -fdelete-null-pointer-checks.
2426
2427 2008-07-24  Ben Elliston  <bje@au.ibm.com>
2428
2429         * config/spu/spu-c.c (__vector_keyword): New variable.
2430         (vector_keyword): Likewise.
2431         (spu_categorize_keyword): New function.
2432         (spu_macro_to_expand): Likewise.
2433         (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
2434         compiling an ISO C dialect.
2435
2436 2008-07-24  Ben Elliston  <bje@au.ibm.com>
2437
2438         * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
2439         conventional usage.
2440
2441 2008-07-23  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2442
2443         * configure: Regenerate.
2444         * configure.ac: Require texinfo 4.7.
2445         * doc/install.texi: Document texinfo 4.7 requirement.
2446
2447 2008-07-23  Martin Jambor  <mjambor@suse.cz>
2448
2449         * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
2450         rather than for DECL_SAVED_TREE.
2451         * ipa-prop.c: Include diagnostic.h.
2452         (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
2453         thoroughly.
2454         (ipa_detect_param_modifications): Function rewritten from scratch.
2455         (ipa_compute_jump_functions): Changed accesses to modification flags.
2456         (ipa_free_node_params_substructures): Update flags destruction.
2457         (ipa_node_duplication_hook): Update flags duplication.
2458         (ipa_print_all_params_modified): Updated flag access.
2459         * ipa-prop.h (struct ipa_param_flags): New structure.
2460         (struct ipa_node_params): New field modification_analysis_done,
2461         modified_flags changed into param_flags.
2462         (ipa_is_ith_param_modified): Changed to use new flags.
2463         * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
2464
2465         * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
2466         ipa-cp.c and split into two functions.
2467         (ipa_print_node_jump_functions): New function.
2468         (compute_scalar_jump_functions): New function.
2469         (type_like_member_ptr_p): New function.
2470         (compute_pass_through_member_ptrs): New function.
2471         (fill_member_ptr_cst_jump_function): New function.
2472         (determine_cst_member_ptr): New function.
2473         (compute_cst_member_ptr_arguments): New function.
2474         (ipa_compute_jump_functions): Complete rewrite.
2475         * ipa-prop.h (enum jump_func_type): Make explicit that we depend
2476         on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
2477         (struct ipa_member_ptr_cst): New structure.
2478         (union jump_func_value): New field member_cst.
2479         * ipa-cp.c (ipcp_lat_is_insertable): New function.
2480         (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
2481         jump function types.
2482         (ipcp_print_all_lattices): Slight fprintf rearrangement.
2483         (ipcp_print_all_structures): Call ipa_print_all_jump_functions
2484         instead of ipcp_print_all_jump_functions.
2485         (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
2486         only for replacable scalars.
2487
2488         * doc/invoke.texi (Optimize options): Add description of
2489         -findirect-inlining.
2490         * common.opt (flag_indirect_inlining): New flag.
2491         * opts.c (decode_options): Set flag_indirect_inlining when
2492         optimize >= 3.
2493
2494         * ipa-inline.c: Include ipa-prop.h.
2495         (inline_indirect_intraprocedural_analysis): New function.
2496         (inline_generate_summary): Allocate parameter and argument info
2497         structures, call inline_indirect_intraprocedural_analysis on each
2498         node when doing indirect inlining and deallocate indirect inlining
2499         data structures in the end.
2500         * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
2501         (free_all_ipa_structures_after_iinln): New function.
2502         (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be
2503         done.
2504         * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
2505
2506         * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
2507         (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
2508         of computing the frequency separately.
2509         (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
2510         of computing the frequency separately.
2511         * ipa-cp.c (ipcp_print_all_structures): Replace a call to
2512         ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
2513         * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
2514         (ipa_get_stmt_member_ptr_load_param): New function.
2515         (ipa_is_ssa_with_stmt_def): New function.
2516         (ipa_note_param_call): New function.
2517         (ipa_analyze_call_uses): New function.
2518         (ipa_analyze_stmt_uses): New function.
2519         (ipa_analyze_params_uses): New function.
2520         (ipa_free_node_params_substructures): Also free the param_calls linked
2521         list.
2522         (ipa_node_duplication_hook): Also duplicate the param_calls linked list.
2523         (ipa_print_node_param_flags): New function.
2524         (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
2525         (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
2526         * ipa-prop.h (struct ipa_param_flags): New field called.
2527         (struct ipa_param_call_note): New structure.
2528         (struct ipa_node_params): New fields param_calls and
2529         uses_analysis_done.
2530         (ipa_is_ith_param_called): New function.
2531         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
2532         ipa_analyze_params_uses and dump parameter flags.
2533
2534         * ipa-inline.c (cgraph_decide_recursive_inlining): Call
2535         ipa_propagate_indirect_call_infos if performing indirect inlining,
2536         pass a new parameter new_edges to it.
2537         (add_new_edges_to_heap): New fucntion.
2538         (cgraph_decide_inlining_of_small_functions): New vector
2539         new_indirect_edges for newly found indirect edges , call
2540         ipa_propagate_indirect_call_infos after inlining.
2541         (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
2542         inlining if performing indirect inlining.  Call
2543         free_all_ipa_structures_after_iinln when doing so too.
2544         (inline_generate_summary): Do not call
2545         free_all_ipa_structures_after_iinln here.
2546         * ipa-prop.c (update_jump_functions_after_inlining): New function.
2547         (print_edge_addition_message): New function.
2548         (update_call_notes_after_inlining): New function.
2549         (propagate_info_to_inlined_callees): New function.
2550         (ipa_propagate_indirect_call_infos): New function.
2551         * ipa-prop.h: Include cgraph.h
2552         (struct ipa_param_call_note): Fields reordered, new field processed.
2553         * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
2554         flag indirect_call.
2555         * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
2556         rediscovered call statements.
2557         * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
2558         (dump_cgraph_node): Dump also the indirect_call flag.
2559         (cgraph_clone_edge): Copy also the indirect_call flag.
2560         * tree-inline.c (copy_bb): Do not check for fndecls from call
2561         expressions, check for edge availability when moving clones.
2562         (get_indirect_callee_fndecl): New function.
2563         (expand_call_inline): If callee declaration is not apprent from
2564         the statement, try calling get_indirect_callee_fndecl.  Do not
2565         issue warnings or call sorry when not inlinings an indirect edge.
2566         * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
2567
2568         * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
2569         bit more frandly to matching.
2570         * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
2571         * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
2572         * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
2573
2574 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
2575
2576         PR 36907
2577         * opth-gen.awk: Suppress function specific features when building
2578         target libraries.
2579         * optc-gen.awk: Ditto.
2580
2581 2008-07-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2582
2583         PR 35058
2584         * diagnostic.c (pedwarn): Add opt parameter.
2585         (pedwarn0): New.
2586         * c-tree.h (pedwarn_init): Add opt parameter.
2587         (pedwarn_c90): Likewise.
2588         (pedwarn_c99): Likewise.
2589         * c-errors.c (pedwarn_c99): Likewise.
2590         (pedwarn_c90): Likewise.
2591         * toplev.h (pedwarn): Update declaration.
2592         (pedwarn0): Declare.
2593         * c-lex.c: All calls to pedwarn changed.
2594         * builtins.c: All calls to pedwarn changed.
2595         * toplev.c: All calls to pedwarn changed.
2596         * c-decl.c: All calls to pedwarn changed.
2597         * c-typeck.c: All calls to pedwarn changed.
2598         * c-common.c: All calls to pedwarn changed.
2599         * c-parser.c: All calls to pedwarn changed.
2600
2601 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
2602             Karthik Kumar  <karthikkumar@gmail.com>
2603
2604         * attribs.c (file scope): Include c-common.h.
2605         (decl_attributes): Add support for #pragma GCC optimize and
2606         #pragma GCC option.
2607
2608         * targhooks.c (default_can_inline_p): New function that is the
2609         default for the TARGET_CAN_INLINE_P target hook.
2610
2611         * targhooks.h (default_can_inline_p): Add declaration.
2612
2613         * tree.c (cl_optimization_node): New static tree for building
2614         OPTIMIZATION_NODE tree.
2615         (cl_target_option_node): New static tree for building
2616         TARGET_OPTION_NODE tree.
2617         (cl_option_hash_table): New hash table for hashing
2618         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
2619         (cl_option_hash_hash): New function to provide the hash value for
2620         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
2621         (cl_option_hash_eq): New function to provide an equality test for
2622         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
2623         (tree_code_size): Add support for OPTIMIZATION_NODE and
2624         TARGET_OPTION_NODE trees.
2625         (tree_code_structure): Add support for OPTIMIZATION_NODE and
2626         TARGET_OPTION_NODE trees.
2627         (build_optimization_node): Build a tree that has all of the
2628         current optimization options.
2629         (build_target_option_node): Build a tree that has the target
2630         options that might be changed on a per function basis.
2631
2632         * tree.h (file scope): Include options.h.
2633         (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
2634         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
2635         (TREE_OPTIMIZATION): Ditto.
2636         (TREE_TARGET_SPECIFIC): Ditto.
2637         (struct tree_function_decl): Add fields for remembering the
2638         current optimization options and target specific options.
2639         (struct tree_optimization_option): New tree variant that remembers
2640         the optimization options.
2641         (struct tree_target_option): New tree variant that remembers the
2642         target specific flags that might change for compiling a particular
2643         function.
2644         (union tree_node): Include tree_optimization_option and
2645         tree_target_option fields.
2646         (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
2647         TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
2648         TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
2649         TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
2650         TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
2651         optimization and target options.
2652         (optimization_default_node): New macro to refer to global_trees
2653         field.
2654         (optimization_current_node): Ditto.
2655         (optimization_cold_node): Ditto.
2656         (optimization_hot_node): Ditto.
2657         (target_option_default_node): Ditto.
2658         (target_option_current_node): Ditto.
2659         (current_option_pragma): Ditto.
2660         (current_optimize_pragma): Ditto.
2661
2662         * target.h (struct gcc_target): Add valid_option_attribute_p,
2663         target_option_save, target_option_restore, target_option_print,
2664         target_option_pragma_parse, and can_inline_p hooks.
2665
2666         * toplev.h (parse_optimize_options): Add declaration.
2667         (fast_math_flags_struct_set_p): Ditto.
2668
2669         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
2670         adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
2671         optimize is used.
2672
2673         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
2674         tree_can_inline_p hook to see if one function can inline another.
2675         (cgraph_decide_inlining): Ditto.
2676         (cgraph_decide_inlining_incrementally): Ditto.
2677
2678         * opts.c (decode_options): Add support for running multiple times
2679         to allow functions with different target or optimization options
2680         than was specified on the command line.
2681         (fast_math_flags_struct_set_p): New function that is similar to
2682         fast_math_flags_set_p, except it uses the values in the
2683         cl_optimization structure instead of global variables.
2684
2685         * optc-gen.awk: Add support for TargetSave to allow a back end to
2686         declare new fields that need to be saved when using function
2687         specific options.  Include flags.h and target.h in the options.c
2688         source.  Add support for Save to indicate which options can be set
2689         for individual functions.  Generate cl_optimize_save,
2690         cl_optimize_restore, cl_optimize_print, cl_target_option_save,
2691         cl_target_option_restore, cl_target_option_print functions to
2692         allow functions to use different optimization or target options.
2693
2694         * opt-functions.awk (var_type_struct): Return the type used for
2695         storing the field in a structure.
2696
2697         * opth-gen.awk: Add support for TargetSave to allow a back end to
2698         declare new fields that need to be saved when using function
2699         specific options.  Add support for Save to indicate which options
2700         can be set for individual functions.  Only generate one extern for
2701         Mask fields.  Generate cl_optimization and cl_target_option
2702         structures to remember optimization and target options.
2703
2704         * treestruct.def (TS_OPTIMIZATION): Add support for garbage
2705         collecting new tree nodes.
2706         (TS_TARGET_OPTION): Ditto.
2707
2708         * c-decl.c (merge_decls): Merge function specific target and
2709         optimization options.
2710
2711         * function.c (invoke_set_current_function_hook): If the function
2712         uses different optimization options, change the global variables
2713         to reflect this.
2714
2715         * coretypes.h (struct cl_optimization): Add forward reference.
2716         (struct cl_target_option): Ditto.
2717
2718         * c-pragma.c (option_stack): New static vector to remember the
2719         current #pragma GCC option stack.
2720         (handle_pragma_option): New function to support #pragma GCC option
2721         to change target options.
2722         (optimize_stack): New static vector to remember the current
2723         #pragma GCC optimize stack.
2724         (handle_pragma_optimize): New function to support #pragma GCC
2725         optimize to change optimization options.
2726         (init_pragma): Add support for #pragma GCC optimize and #pragma
2727         GCC option.
2728
2729         * tree.def (OPTIMIZATION_NODE): New tree code for remembering
2730         optimization options.
2731         (TARGET_OPTION_NODE): New tree code for remembering certain target
2732         options.
2733
2734         * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
2735         TARGET_OPTION_NODE trees.
2736
2737         * common.opt (-O): Add Optimization flag.
2738         (-Os): Ditto.
2739         (-fmath-errno): Ditto.
2740         (-falign-functions): Add UInteger flag to make sure flag gets full
2741         int in cl_optimization structure.
2742         (-falign-jumps): Ditto.
2743         (-falign-labels): Ditto.
2744         (-falign-loops): Ditto.
2745         (-fsched-stalled-insns): Ditto.
2746         (-fsched-stalled-insns-dep): Ditto.
2747
2748         * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
2749         definition.
2750         (TARGET_OPTION_SAVE): Ditto.
2751         (TARGET_OPTION_RESTORE): Ditto.
2752         (TARGET_OPTION_PRINT): Ditto.
2753         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
2754         (TARGET_CAN_INLINE_P): Ditto.
2755         (TARGET_INITIALIZER): Add new hooks.
2756
2757         * tree-inline.c (tree_can_inline_p): New function to determine
2758         whether one function can inline another.  Check if the functions
2759         use compatible optimization options, and also call the backend
2760         can_inline_p hook.
2761
2762         * tree-inline.h (tree_can_inline_p): Add declaration.
2763
2764         * c-common.c (c_common_attribute): Add support for option and
2765         optimize attributes.
2766         (handle_option_attribute): Add support for the option attribute to
2767         allow the user to specify different target options for compiling a
2768         specific function.
2769         (handle_optimize_attribute): Add support for the optimize
2770         attribute to allow the user to specify different optimization
2771         options for compiling a specific function.
2772         (handle_hot_attribute): Turn on -O3 optimization for this one
2773         function if it isn't the default optimization level.
2774         (handle_cold_attribute): Turn on -Os optimization for this one
2775         function if it insn't the default optimization.
2776         (const_char_p): New const char * typedef.
2777         (optimize_args): New static vector to remember the optimization
2778         arguments.
2779         (parse_optimize_options): New function to set up the optimization
2780         arguments from either the optimize attribute or #pragma GCC optimize.
2781
2782         * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
2783         (builtin_define_std): Ditto.
2784
2785         * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
2786         Add t-i386 Makefile fragment to add i386-c.o and i386.o dependencies.
2787         (x86_64-*-*): Ditto.
2788
2789         * Makefile.in (TREE_H): Add options.h.
2790         (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
2791
2792         * doc/extend.texi (option attribute): Document new attribute.
2793         (optimize attribute): Ditto.
2794         (hot attribute): Document hot attribute sets -O3.
2795         (cold attribute): Document cold attribute sets -Os.
2796         (#pragma GCC option): Document new pragma.
2797         (#pragma GCC optimize): Ditto.
2798
2799         * doc/options.texi (TargetSave): Document TargetSave syntax.
2800         (UInteger): Document UInteger must be used for certain flags.
2801         (Save): Document Save option to create target specific options
2802         that can be saved/restored on a function specific context.
2803
2804         * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new macro.
2805         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
2806
2807         * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new hook.
2808         (TARGET_OPTION_SAVE): Ditto.
2809         (TARGET_OPTION_RESTORE): Ditto.
2810         (TARGET_OPTION_PRINT): Ditto.
2811         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
2812         (TARGET_CAN_INLINE_P): Ditto.
2813
2814         * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
2815         -mfpmath=sse,387.
2816         (-mfpmath=both): Ditto.
2817
2818 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
2819             Karthik Kumar  <karthikkumar@gmail.com>
2820
2821         * config/i386/i386.h (TARGET_ABM): Move switch into ix86_isa_flags.
2822         (TARGET_POPCNT): Ditto.
2823         (TARGET_SAHF): Ditto.
2824         (TARGET_AES): Ditto.
2825         (TARGET_PCLMUL): Ditto.
2826         (TARGET_CMPXCHG16B): Ditto.
2827         (TARGET_RECIP): Move switch into target_flags.
2828         (TARGET_FUSED_MADD): Ditto.
2829         (ix86_arch_features): Make an unsigned char type.
2830         (ix86_tune_features): Ditto.
2831         (OVERRIDE_OPTIONS): Add bool argument to override_options call.
2832         (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
2833         (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
2834
2835         * config/i386/i386.opt (arch): New TargetSave field to define
2836         fields that need to be saved for function specific option support.
2837         (tune): Ditto.
2838         (fpmath): Ditto.
2839         (branch_cost): Ditto.
2840         (ix86_isa_flags_explicit): Ditto.
2841         (tune_defaulted): Ditto.
2842         (arch_specified): Ditto.
2843         (-m128-long-double): Add Save flag to save option for target
2844         specific option support.
2845         (-m80387): Ditto.
2846         (-maccumulate-outgoing-args): Ditto.
2847         (-malign-double): Ditto.
2848         (-malign-stringops): Ditto.
2849         (-mfancy-math-387): Ditto.
2850         (-mhard-float): Ditto.
2851         (-mieee-fp): Ditto.
2852         (-minline-all-stringops): Ditto.
2853         (-minline-stringops-dynamically): Ditto.
2854         (-mms-bitfields): Ditto.
2855         (-mno-align-stringops): Ditto.
2856         (-mno-fancy-math-387): Ditto.
2857         (-mno-push-args): Ditto.
2858         (-mno-red-zone): Ditto.
2859         (-mpush-args): Ditto.
2860         (-mred-zone): Ditto.
2861         (-mrtd): Ditto.
2862         (-msseregparm): Ditto.
2863         (-mstack-arg-probe): Ditto.
2864         (-m32): Ditto.
2865         (-m64): Ditto.
2866         (-mmmx): Ditto.
2867         (-m3dnow): Ditto.
2868         (-m3dnowa): Ditto.
2869         (-msse): Ditto.
2870         (-msse2): Ditto.
2871         (-msse3): Ditto.
2872         (-msse4.1): Ditto.
2873         (-msse4.2): Ditto.
2874         (-msse4): Ditto.
2875         (-mno-sse4): Ditto.
2876         (-msse4a): Ditto.
2877         (-msse5): Ditto.
2878         (-mrecip): Move flag into target_flags.
2879         (-mcld): Ditto.
2880         (-mno-fused-madd): Ditto.
2881         (-mfused-madd): Ditto.
2882         (-mabm): Move flag into ix86_isa_flags.
2883         (-mcx16): Ditto.
2884         (-mpopcnt): Ditto.
2885         (-msahf): Ditto.
2886         (-maes): Ditto.
2887         (-mpclmul): Ditto.
2888
2889         * config/i386/i386-c.c: New file for #pragma support.
2890         (ix86_target_macros_internal): New function to #define or #undef
2891         target macros based when the user uses the #pragma GCC option to
2892         change target options.
2893         (ix86_pragma_option_parse): New function to add #pragma GCC option
2894         support.
2895         (ix86_target_macros): Move defining the target macros here from
2896         TARGET_CPU_CPP_BUILTINS in i386.h.
2897         (ix86_register_pragmas): Register the #pragma GCC option hook.  If
2898         defined, initialize any subtarget #pragmas.
2899
2900         * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
2901         REGISTER_TARGET_PRAGMAS.
2902
2903         * config/i386/t-i386: New file for x86 dependencies.
2904         (i386.o): Make dependencies mirror the include files used.
2905         (i386-c.o): New file, add dependencies.
2906
2907         * config/i386/i386-protos.h (override_options): Add bool argument.
2908         (ix86_valid_option_attribute_tree): Add declaration.
2909         (ix86_target_macros): Ditto.
2910         (ix86_register_macros): Ditto.
2911
2912         * config/i386/i386.c (ix86_tune_features): Move initialization of
2913         the target masks to initial_ix86_tune_features to allow functions
2914         to have different target options.  Make type unsigned char,
2915         instead of unsigned int.
2916         (initial_ix86_tune_features): New static vector to hold processor
2917         masks for the tune variables.
2918         (ix86_arch_features): Move initialization of the target masks to
2919         initial_ix86_arch_features to allow functions to have different
2920         target options.  Make type unsigned char, instead of unsigned int.
2921         (initial_ix86_arch_features): New static vector to hold processor
2922         masks for the arch variables.
2923         (enum ix86_function_specific_strings): New enum to describe the
2924         string options used for attribute((option(...))).
2925         (ix86_target_string): New function to return a string that
2926         describes the target options.
2927         (ix86_debug_options): New function to print the current options in
2928         the debugger.
2929         (ix86_function_specific_save): New function hook to save the
2930         function specific global variables in the cl_target_option structure.
2931         (ix86_function_specific_restore): New function hook to restore the
2932         function specific variables from the cl_target_option structure to
2933         the global variables.
2934         (ix86_function_specific_print): New function hook to print the
2935         target specific options in the cl_target_option structure.
2936         (ix86_valid_option_attribute_p): New function hook to validate
2937         attribute((option(...))) arguments.
2938         (ix86_valid_option_attribute_tree): New function that is common
2939         code between attribute((option(...))) and #pragma GCC option
2940         support that parses the options and returns a tree holding the options.
2941         (ix86_valid_option_attribute_inner_p): New helper function for
2942         ix86_valid_option_attribute_tree.
2943         (ix86_can_inline_p): New function hook to decide if one function
2944         can inline another on a target specific basis.
2945         (ix86_set_current_function); New function hook to switch target
2946         options if the user used attribute((option(...))) or #pragma GCC
2947         option.
2948         (ix86_tune_defaulted): Move to static file scope from
2949         override_options.
2950         (ix86_arch_specified): Ditto.
2951         (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
2952         ix86_isa_flags.
2953         (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
2954         (OPTION_MASK_ISA_ABM_SET): Ditto.
2955         (OPTION_MASK_ISA_POPCNT_SET): Ditto.
2956         (OPTION_MASK_ISA_CX16_SET): Ditto.
2957         (OPTION_MASK_ISA_SAHF_SET): Ditto.
2958         (OPTION_MASK_ISA_AES_UNSET): Ditto.
2959         (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
2960         (OPTION_MASK_ISA_ABM_UNSET): Ditto.
2961         (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
2962         (OPTION_MASK_ISA_CX16_UNSET): Ditto.
2963         (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
2964         (struct ptt): Move to static file scope from override_options.
2965         (processor_target_table): Ditto.
2966         (cpu_names): Ditto.
2967         (ix86_handle_option): Add support for options that are now isa options.
2968         (override_options): Add support for declaring functions that
2969         support different target options than were specified on the
2970         command line.  Move struct ptt, processor_target_table, cpu_names,
2971         ix86_tune_defaulted, ix86_arch_specified to static file scope.
2972         Add bool argument.  Fix up error messages so the appropriate error
2973         is given for either command line or attribute.
2974         (ix86_previous_fndecl): New static to remember previous function
2975         declaration to see if we need to change target options.
2976         (ix86_builtins_isa): New array to record the ISA of each builtin
2977         function.
2978         (def_builtin): Always create the builtin function, even if the
2979         current ISA doesn't support it.
2980         (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
2981         tests for those builtins.
2982         (ix86_init_builtins): Remove TARGET_MMX test for calling
2983         ix86_init_mmx_sse_builtins.
2984         (ix86_expand_builtin): If the current ISA doesn't support a given
2985         builtin, signal an error.
2986         (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
2987         (TARGET_SET_CURRENT_FUNCTION): Ditto.
2988         (TARGET_OPTION_SAVE): Ditto.
2989         (TARGET_OPTION_RESTORE): Ditto.
2990         (TARGET_OPTION_PRINT): Ditto.
2991         (TARGET_CAN_INLINE_P): Ditto.
2992
2993 2008-07-22  Rafael Avila de Espindola  <espindola@google.com>
2994
2995         * c-typeck.c (build_external_ref): Don't call assemble_external.
2996         * final.c (output_operand): Call assemble_external.
2997
2998 2008-07-21  DJ Delorie  <dj@redhat.com>
2999
3000         * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
3001         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
3002
3003 2008-07-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3004
3005         * config/spu/spu.md ("div<mode>3"): Convert into expander, move
3006         original insn and splitter contents into ...
3007         ("*div<mode>3_fast"): ... this new pattern.  Enable only if
3008         flag_unsafe_math_optimizations.  Add dummy scratch register.
3009         ("*div<mode>3_adjusted"): New insn and splitter.  Enable only if
3010         !flag_unsafe_math_optimizations.  Returns number with next
3011         highest magnitude if this is still less or equal to the true
3012         quotient in magnitude.
3013
3014 2008-07-21  Rafael Avila de Espindola  <espindola@google.com>
3015
3016         * Makefile.in: Replace toplev.h with TOPLEV_H.
3017         * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
3018         * c-lex.c (fe_file_change): Don't set in_system_header.
3019         * c-parser.c (c_token): Remove in_system_header.
3020         (c_lex_one_token): Don't set in_system_header.
3021         (c_parser_set_source_position_from_token): Don't set in_system_header.
3022         * diagnostic.c (diagnostic_report_diagnostic): Use location from
3023         diagnostic_info.
3024         (warning_at): New.
3025         * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
3026         * flags.h (in_system_header): Remove.
3027         * function.c (saved_in_system_header): Remove.
3028         (push_cfun): Don't set in_system_header.
3029         (pop_cfun): Don't set in_system_header.
3030         (push_struct_function): Don't set in_system_header.
3031         * input.h (expanded_location): Add sysp.
3032         (in_system_header_at): New.
3033         (in_system_header): New.
3034         * toplev.c (in_system_header): Remove.
3035         * toplev.h: Include input.h
3036         (warning_at): New.
3037         * tree-cfg.c (execute_warn_function_return): Call warning_at.
3038         * tree-ssa.c (warn_uninit): Call warning_at.
3039         (warn_uninitialized_var): Update calls to warn_uninit.
3040         (warn_uninitialized_phi): Update calls to warn_uninit.
3041         * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
3042         (expand_location): Initialize xloc.sysp.
3043         * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
3044         (tree_decl_with_vis): Remove in_system_header_flag.
3045
3046 2008-07-21  Andreas Krebbel  <krebbel1@de.ibm.com>
3047
3048         PR target/36822
3049         * recog.c (asm_operand_ok): Change the order of the extra
3050         memory constraint checks.
3051
3052 2008-07-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3053
3054         PR tree-opt/36879
3055         * tree-switch-conversion.c (build_one_array): Call
3056         varpool_mark_needed_node and varpool_finalize_decl
3057         instead of assemble_variable.
3058
3059 2008-07-19  Jan Hubicka  <jh@suse.cz>
3060
3061         * cgraph.c (cgraph_add_new_function): Do early local passes.
3062         * tree-nrv.c (gate_pass_return_slot): New gate.
3063         (pass_nrv): Add the gate.
3064         * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
3065         functions.
3066         (coalesce_ssa_name): Coalesce SSA names.
3067         * tree-ssa-live.c (remove_unused_locals): Be more conservative when
3068         not optimizing so unused user vars remains visible.
3069         * common.opt (flag_tree_ter): Always enable by default.
3070         * tree-ssa-ter.c: Include flags.h
3071         (is_replaceable_p): Check that locations match; when aliasing is missing
3072         be conservative about loads.
3073         * tree-optimize.c (gate_init_datastructures): Remove.
3074         (pass_init_datastructures): New.
3075         * passes.c: Reorder passes so we always go into SSA.
3076
3077 2008-07-19  Jan Hubicka  <jh@suse.cz>
3078
3079         * doc/extend.texi (flatten attribute): Remove note about unit-at-a-time
3080         * doc/invoke.texi (--combine): Likewise.
3081         (-finline-functions-called-once): Update levels when enabled.
3082         (-funit-at-a-time): Document new behaviour.
3083         (-ftoplevel-reorder): Document that it is enabled -O0 and imply
3084         -fno-section-anchors when disabled explicitly.
3085         (inline params): They are not ignored now.
3086         (precompiled headers): Remove unit-at-a-time as being incompatible.
3087         * opts.c (decode_options): Handle unit-at-a-time as alias;
3088         imply -fno-section-anchors when toplevel reorder is disabled
3089         explicitly.
3090         * common.opt (ftoplevel-reorder): Set default value to 2.
3091         (funit-at-a-time): Set default value to 1.
3092         * config/rs6000/rs6000.c (optimization_options): Set section anchors
3093         to 2.
3094
3095 2008-07-19  Jan Hubicka  <jh@suse.cz>
3096
3097         * builtins.c (expand_builtin_int_roundingfn,
3098         expand_builtin_int_roundingfn_2): Do not take subtarget argument;
3099         it is not useful.
3100
3101 2008-07-19  Richard Guenther  <rguenther@suse.de>
3102
3103         PR bootstrap/36864
3104         * tree-ssa-sccvn.h (get_constant_value_id): Declare.
3105         * tree-ssa-sccvn.c (get_constant_value_id): New function.
3106         * tree-ssa-pre.c (get_expr_value_id): For newly created
3107         constant value-ids make sure to add the expression to its
3108         expression-set.
3109
3110 2008-07-19  Jakub Jelinek  <jakub@redhat.com>
3111
3112         PR middle-end/36877
3113         * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
3114         return value of the builtin is ignored.
3115
3116 2008-07-19  Olivier Hainque  <hainque@adacore.com>
3117
3118         * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
3119         bits, a C conformant malloc implementation has to provide.
3120         * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
3121
3122 2008-07-19  Joseph Myers  <joseph@codesourcery.com>
3123
3124         PR target/36780
3125         PR target/36827
3126         * reload.c (find_reloads_subreg_address): Only reload address if
3127         reloaded == 0, not for reloaded != 1.
3128
3129         Revert:
3130         2008-07-16  Joseph Myers  <joseph@codesourcery.com>
3131         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
3132         (m32c_legitimate_address_p): Handle "++rii" addresses created by
3133         m32c_legitimize_reload_address.
3134
3135         2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
3136         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
3137         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
3138
3139 2008-07-19  Olivier Hainque  <hainque@adacore.com>
3140
3141         * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
3142         argument, saying whether nested array are to be collapsed
3143         into a single array type DIE with multiple subscripts.
3144         (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
3145         issues, centralize the nested array types collapsing control and
3146         disable the transformation for Ada.
3147
3148 2008-07-18  Uros Bizjak  <ubizjak@gmail.com>
3149
3150         PR target/36786
3151         * config/i386/i386.md (x86_64_shift_adj_1): Rename from
3152         x86_64_shift_adj.
3153         (x86_64_shift_adj_2): New expander.
3154         (x86_64_shift_adj_3): Ditto.
3155         * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
3156         to split TImode operands.
3157         (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
3158         (ix86_split_lshr): Ditto.
3159
3160 2008-07-18  Kris Van Hees  <kris.van.hees@oracle.com>
3161
3162         * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
3163         and __CHAR32_TYPE__.
3164         * c-typeck.c (digest_init): Support char16_t and char32_t.
3165         (set_nonincremental_init_from_string): Idem.
3166
3167 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
3168
3169         PR middle-end/36859
3170         * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
3171         PREFERRED_STACK_BOUNDARY.
3172         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
3173
3174 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
3175
3176         PR middle-end/36858
3177         * function.c (locate_and_pad_parm): Cap boundary earlier.
3178
3179 2008-07-17  Julian Brown  <julian@codesourcery.com>
3180
3181         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
3182         no-op for targets which don't use DLLs.
3183
3184 2008-07-17  Martin Jambor  <mjambor@suse.cz>
3185
3186         * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
3187         that nodes are relevant by examining the node->analyzed flag.
3188         (ipcp_init_stage): Check which nodes are relevant, assert that the
3189         relevant ones are also required.
3190         (ipcp_propagate_stage): Check on the side arrays are properly
3191         allocated.
3192         (ipcp_print_all_jump_functions): Make sure not to touch any node
3193         that is not analyzed or an edge that does not have a corresponding
3194         entry in the on-the-side vectors.
3195         (ipcp_function_scale_print): Likewise.
3196         (ipcp_update_callgraph): Check that the node is relevant.
3197         (ipcp_insert_stage): Check that the node is relevant.  Check there is
3198         an info for every node and edge.
3199         * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
3200         (ipa_print_all_tree_maps): Likewise and a new variable info.
3201         (ipa_print_all_params_modified): Likewise.
3202         * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
3203
3204 2008-07-17  Roman Zippel <zippel@linux-m68k.org>
3205
3206         PR target/25343
3207         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
3208
3209 2008-07-17  Paolo Bonzini  <bonzini@gnu.org>
3210
3211         PR rtl-optimization/36753
3212         * fwprop.c (use_killed_between): Don't shortcut
3213         single-definition global registers.
3214
3215 2008-07-16  Jan Hubicka  <jh@suse.cz>
3216
3217         * cgraph.h (varpool_empty_needed_queue): Declare.
3218         * cgraphunit.c (output_in_order): Mark all variables as needed;
3219         empty the queue.
3220         * varpool.c (varpool_assemble_node): Update debug queue.
3221         (varpool_assemble_pending_decls): Don't do it here.
3222         (varpool_empty_needed_queue):  New function.
3223
3224 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3225
3226         * recog.c (peephole2_optimize): Fix formatting.
3227
3228 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3229
3230         * c-pch.c (get_ident): Avoid C++ keywords.
3231         * combine-stack-adj.c (single_set_for_csa): Likewise.
3232         * final.c (asm_insn_count, final_scan_insn, alter_subreg,
3233         output_asm_insn): Likewise.
3234         * reload.c (push_secondary_reload, find_reusable_reload,
3235         push_reload, combine_reloads, find_reloads,
3236         debug_reload_to_stream): Likewise.
3237         * reload.h (struct reload): Likewise.
3238         * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
3239         allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
3240         emit_output_reload_insns): Likewise.
3241         * targhooks.c (default_secondary_reload): Likewise.
3242         * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
3243
3244 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3245
3246         * recog.c (validate_change_1, validate_change,
3247         validate_unshare_change, validate_replace_rtx_1, struct
3248         funny_match, constrain_operands, peephole2_optimize): Avoid C++
3249         keywords.
3250         * reload.c (push_secondary_reload, secondary_reload_class,
3251         scratch_reload_class, find_valid_class, find_reusable_reload,
3252         push_reload, find_dummy_reload, find_reloads_address_1,
3253         find_reloads_address_part, find_equiv_reg): Likewise.
3254         * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
3255         choose_reload_regs): Likewise.
3256         * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
3257         Likewise.
3258         * rtlhooks.c (gen_lowpart_if_possible): Likewise.
3259         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
3260         * sched-rgn.c (concat_INSN_LIST): Likewise.
3261         * stor-layout.c (mode_for_size, mode_for_size_tree,
3262         smallest_mode_for_size): Likewise.
3263
3264 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3265
3266         * cfg.c (dump_reg_info): Avoid C++ keywords.
3267         * dwarf2asm.c (dw2_force_const_mem,
3268         dw2_asm_output_encoded_addr_rtx): Likewise.
3269         * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
3270         * expmed.c (expand_shift): Likewise.
3271         * global.c (find_reg): Likewise.
3272         * graph.c (draw_edge): Likewise.
3273         * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
3274         * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
3275         widen_clz, widen_bswap, expand_parity, expand_unop,
3276         emit_cmp_and_jump_insn_1): Likewise.
3277         * postreload.c (reload_cse_simplify_operands): Likewise.
3278         * ra.h (add_neighbor): Likewise.
3279         * reg-stack.c (remove_regno_note, change_stack): Likewise.
3280         * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
3281         record_reg_classes, copy_cost, record_address_regs,
3282         invalid_mode_change_p): Likewise.
3283         * regrename.c (regrename_optimize, scan_rtx_reg,
3284         dump_def_use_chain, find_oldest_value_reg,
3285         replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
3286
3287 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
3288
3289         * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
3290         MASK_POWERPC64 for power4 in previous commit.
3291
3292 2008-07-16  Olivier Hainque  <hainque@adacore.com>
3293
3294         * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
3295         instead of bare conversion to cast const-ness away.
3296
3297 2008-07-16  Anatoly Sokolov  <aesok@post.ru>
3298
3299         * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
3300         XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
3301         * config/xtensa/xtensa.c (xtensa_function_value): New function.
3302         (TARGET_FUNCTION_VALUE): Define.
3303
3304 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
3305
3306         * config/rs6000/rs6000.c (processor_target_table): Add
3307         MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
3308
3309 2008-07-16  Joseph Myers  <joseph@codesourcery.com>
3310
3311         PR target/36827
3312         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
3313         (m32c_legitimate_address_p): Handle "++rii" addresses created by
3314         m32c_legitimize_reload_address.
3315
3316 2007-07-16  Rafael Avila de Espindola  <espindola@google.com>
3317
3318         * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
3319         DECL_IN_SYSTEM_HEADER in sync.
3320
3321 2008-07-15  Daniel Berlin  <dberlin@dberlin.org>
3322
3323         * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
3324         * tree-ssa-pre.c (pre_expr_eq): Ditto
3325         (get_constant_for_value_id): Take a type as an argument.
3326         (fully_constant_expression): Pass in type.
3327         (find_or_generate_expression): Short circuit constant case.
3328         (create_expression_by_pieces): Remove special casing of
3329         pointer_plus.
3330         (do_regular_insertion): Short circuit constant case.
3331         (do_partial_partial_insertion): Ditto.
3332
3333 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
3334
3335         PR target/36782
3336         * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
3337
3338 2008-07-15  Bob Wilson  <bob.wilson@acm.org>
3339
3340         * config/xtensa/libgcc-xtensa.ver: New file.
3341         * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
3342
3343 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3344
3345         * df-problems.c (df_set_note): Avoid C++ keywords.
3346         * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
3347         * dse.c (record_store, remove_useless_values): Likewise.
3348         * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
3349         gen_reg_rtx_offset, operand_subword, change_address_1,
3350         change_address, adjust_address_1, offset_address,
3351         widen_memory_access, emit_copy_of_insn_after): Likewise.
3352         * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
3353         * fwprop.c (should_replace_address, propagate_rtx_1,
3354         propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
3355         Likewise.
3356         * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
3357         gcse_emit_move_after, update_ld_motion_stores): Likewise.
3358         * lcm.c (compute_insert_delete, pre_edge_lcm,
3359         compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
3360         * lower-subreg.c (resolve_reg_notes): Likewise.
3361         * mode-switching.c (optimize_mode_switching): Likewise.
3362
3363 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3364
3365         * bt-load.c (add_btr_def, migrate_btr_def,
3366         branch_target_load_optimize): Avoid C++ keywords.
3367         * caller-save.c (insert_restore, insert_save, insert_one_insn):
3368         Likewise.
3369         * combine.c (subst, simplify_set, make_extraction,
3370         make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
3371         * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
3372         fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
3373
3374 2008-07-15  Richard Guenther  <rguenther@suse.de>
3375
3376         PR middle-end/36369
3377         * c-common.c (strict_aliasing_warning): Do not warn for
3378         TYPE_REF_CAN_ALIAS_ALL pointers.
3379         (c_common_get_alias_set): may_alias types are not special.
3380         * tree.c (build_pointer_type_for_mode): Look up the may_alias
3381         attribute and set can_ref_all accordingly.
3382         (build_reference_type_for_mode): Likewise.
3383         * doc/extend.texi (may_alias): Clarify.
3384
3385 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
3386
3387         PR target/36780
3388         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
3389         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
3390
3391 2008-07-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3392
3393         PR target/31568
3394         * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
3395         gcc_assert, instead call output_operand_lossage.
3396
3397 2008-07-15  Kai Tietz  <kai.tietz@onevision.com>
3398
3399         * builtins.c (std_canonical_va_list): Treat structure based
3400         va_list types.
3401
3402 2008-07-15  Ben Elliston  <bje@au.ibm.com>
3403
3404         * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
3405
3406 2007-07-14  Rafael Avila de Espindola  <espindola@google.com>
3407
3408         * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
3409         is set.
3410
3411 2008-07-14  Jan Hubicka  <jh@suse.cz>
3412
3413         * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
3414         * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
3415         fix predicates and constraints.
3416         * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
3417         * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
3418
3419 2008-07-14  Doug Kwan  <dougkwan@google.com>
3420
3421         * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
3422         additional option file arm/eabi.opt.
3423         * config/arm/eabi.h (File): New configuration file for EABI targets.
3424         * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
3425         SUBSUBTARGET_EXTRA_SPECS.
3426         (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
3427         * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
3428         from STARTFILE_SPEC so that it can be referenced in an override.
3429         (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
3430         (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
3431         can be referenced in an override.
3432         (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
3433         * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
3434         so that it can be referenced in an override.
3435         (LINK_SPEC): Use BPABI_LINK_SPEC.
3436         * config/arm/eabi.opt (File): New.
3437
3438 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3439
3440         * Makefile.in (TARGET_DEF_H): Add targhooks.h.
3441         (FIXED_VALUE_H): New variable.
3442         (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
3443         input.h, fixed-value.h.
3444         (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
3445         (BASIC_BLOCK_H): Use $(BITMAP_H).
3446         (FUNCTION_H): Add varray.h.
3447         (IPA_REFERENCE_H): Use $(BITMAP_H).
3448         (CGRAPH_H): Add $(BASIC_BLOCK_H).
3449         (DF_H): Use $(BITMAP_H).
3450         (GGC_H): Add statistics.h.
3451         (INSN_ADDR_H): New.
3452         (INSN_ATTR_H): Use it.
3453         (SYSTEM_H): Add safe-ctype.h, filenames.h.
3454         (INPUT_H): New.
3455         (SYMTAB_H): Add $(OBSTACK_H).
3456         (CPP_INTERNAL_H): New.
3457         (TREE_DUMP_H): Add tree-pass.h.
3458         (TREE_FLOW_H): Use $(BITMAP_H)
3459         (PRETTY_PRINT_H): Use $(INPUT_H).
3460         (EBITMAP_H): Rename from typo-ed EBIMAP_H.
3461         (GSTAB_H): New.
3462         (BITMAP_H): New.
3463         (many object files): Fix lots of header dependencies throughout.
3464
3465 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3466
3467         * Makefile.in (write_entries_to_file, write_entries_to_file_split):
3468         New macros.
3469         (s-gtyp-input): Use them to write tmp-gi.list.
3470         (echo_to_gi.list): Remove.
3471
3472 2008-07-14  Richard Guenther  <rguenther@suse.de>
3473
3474         * tree-ssa-sccvn.c (pre_info): Remove.
3475         (switch_to_PRE_table): Likewise.
3476         (free_scc_vn): Do not clear SSA_NAME_VALUE.  Do not free pre_info.
3477         (set_hashtable_value_ids): Do not create value-ids for the
3478         optimistic tables.
3479         (run_scc_vn): Remove double test.  Remove bogus special-case
3480         in value-number printing.
3481         * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
3482         * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
3483         SSA_NAME_VALUE.
3484         * tree-flow-inline.h (get_value_handle): Remove.
3485         * tree-flow.h (get_value_handle): Remove.
3486
3487 2008-07-14  Martin Jambor  <mjambor@suse.cz>
3488
3489         * tree-switch-conversion.c (gen_inbound_check): Make sure the type
3490         in which we generate arithmetics is not a subrange.
3491
3492 2008-07-14  Martin Jambor  <mjambor@suse.cz>
3493
3494         * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
3495
3496 2008-07-14  Richard Guenther  <rguenther@suse.de>
3497
3498         * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
3499
3500 2008-07-14  Andreas Krebbel  <krebbel1@de.ibm.com>
3501
3502         PR target/36745
3503         * config/s390/s390.c: (s390_secondary_reload): Add a secondary
3504         reload for symbol refs moved to r0 with -fPIC.
3505         (legitimize_pic_address): Use the target register as temporary
3506         reg if possible.
3507         (emit_symbolic_move): Adjust comment.
3508         * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
3509         New expanders.
3510
3511 2008-07-14  Ben Elliston  <bje@au.ibm.com>
3512
3513         * c-common.h (C_CPP_HASHNODE): New macro.
3514         * coretypes.h (struct cpp_token): Forward declare.
3515         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
3516         the context-sensitive keyword method.
3517         * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
3518         __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
3519         expand_bool_pixel): New.
3520         (altivec_categorize_keyword): New function.
3521         (init_vector_keywords): New function.
3522         (rs6000_macro_to_expand): Likewise.
3523         (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
3524         compiling an ISO C dialect.
3525
3526 2008-07-13  Daniel Berlin  <dberlin@dberlin.org>
3527
3528         * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
3529         (create_expression_by_pieces): Fix typo.
3530         (do_regular_insertion): Use debug counter here too.
3531
3532 2008-07-14  Hans-Peter Nilsson  <hp@axis.com>
3533
3534         PR target/35492.
3535         * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
3536         CONST_OK_FOR_LETTER_P.  All port-local users changed.
3537         (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
3538         implement Kp matching power-of-two.
3539         (CONSTRAINT_LEN): Define to match.
3540         * config/cris/cris.md: Replace all use of constraint K with Kc.
3541         ("*btst*): Use Kp for operand 0 of last alternative.
3542
3543 2008-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3544
3545         PR testsuite/36440
3546         * tree-call-cdce.c (check_target_format): Accept MIPS single, double
3547         and quad formats.
3548
3549 2008-07-13  Jan Hubicka  <jh@suse.cz>
3550
3551         * tree.c (decl_assembler_name_equal): Expect assembler name of decl
3552         to be mangled too.
3553
3554 2008-07-13  Richard Guenther  <rguenther@suse.de>
3555
3556         PR middle-end/36811
3557         * langhooks.c (lhd_print_error_function): Deal with recursive
3558         BLOCK trees.
3559
3560 2008-07-12  Jan Hubicka  <jh@suse.cz>
3561
3562         * cgraph.c (assembler_name_hash): New static var.
3563         (hash_node_by_assembler_name, eq_assembler_name): New.
3564         (cgraph_node_for_asm): Use hashtable.
3565         (cgraph_remove_node): Maintain hashtable.
3566         (change_decl_assembler_name): Sanity check that names are not changing
3567         after aliasing was processed.
3568         * cgraph.h (varpoon_node): Add next GGC marker.
3569         * tree.c (decl_assembler_name_equal): Constify.
3570         (decl_assembler_name_hash): New.
3571         * tree.h (decl_assembler_name_equal): Constify.
3572         (decl_assembler_name_hash): Update.
3573
3574 2008-07-12  David Daney  <ddaney@avtrex.com>
3575
3576         * config/mips/driver-native.c (host_detect_local_cpu): Handle
3577         sb1 and r5000 cpus.
3578
3579 2008-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3580
3581         * doc/md.texi: Document the MIPS "v" constraint.
3582         * config/mips/mips.h (reg_class): Revert last change.
3583         (REG_CLASS_NAMES): Likewise.
3584         (REG_CLASS_CONTENTS): Likewise.
3585         * config/mips/mips.c (mips_regno_to_class): Likewise.
3586         * config/mips/constraints.md (v): Likewise, but add documentation.
3587         Add a comment to say that this constraint should not be used in
3588         gcc code.
3589
3590 2008-07-11  DJ Delorie  <dj@redhat.com>
3591
3592         * config/h8300/h8300.md (length): Fix branch offset limit.
3593
3594 2008-07-11  Anatoly Sokolov  <aesok@post.ru>
3595
3596         * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
3597         * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
3598         (avr_hard_regno_scratch_ok): New function.
3599         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
3600         * config/avr/avr.md (all peepholes that request a scratch register):
3601         Remove avr_peep2_scratch_safe use.
3602
3603 2008-07-11  Tom Tromey  <tromey@redhat.com>
3604             Ian Lance Taylor  <iant@google.com>
3605
3606         * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
3607         (struct c_common_resword): Define.
3608         (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
3609         (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
3610         (c_common_reswords, num_c_common_reswords): Declare.
3611         * c-common.c (c_common_reswords): New global const array.
3612         (num_c_common_reswords): New const int.
3613         * c-parser.c (struct resword, reswords): Don't define.
3614         (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
3615         (c_parse_init): Clarify mask code.  Use c_common_reswords rather
3616         than reswords.  If warning about C++ keywords, give them a special
3617         RID code.
3618         (c_lex_one_token): Warn about C++ keywords.  Call
3619         objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
3620         (c_parser_external_declaration): Look for RID_xxx rather than
3621         RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
3622         (c_parser_statement_after_labels): Likewise.
3623         (c_parser_objc_class_instance_variables): Likewise.
3624         (c_parser_objc_class_declaration): Likewise.
3625         (c_parser_objc_try_catch_statement): Likewise.
3626         * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
3627         (declspecs_add_type): Likewise.
3628
3629 2008-07-11  Angelo Graziosi  <angelo.graziosi@alice.it>
3630
3631         * ggc-page.c (alloc_page):
3632         Substituting xmalloc, xcalloc with
3633         XNEWVEC and XCNEWVAR macros which add the
3634         needed casts.
3635
3636 2008-07-11  Richard Guenther  <rguenther@suse.de>
3637
3638         PR tree-optimization/36765
3639         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
3640         aliases from HEAP vars to SMTs.
3641
3642 2008-07-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3643
3644         * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
3645         * configure.ac (loose_warn): Move -Wc++-compat from here...
3646         (strict_warn): ...to here.
3647         * configure: Regenerate.
3648
3649 2008-07-10  Joseph Myers  <joseph@codesourcery.com>
3650
3651         * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
3652         i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
3653         m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
3654         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
3655         excluding more specific h8300-*-* and sh-*-* targets.
3656
3657 2008-07-10  Daniel Berlin  <dberlin@dberlin.org>
3658
3659         * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
3660         (eliminate): Ditto.
3661         (execute_pre): Call loop_optimizer_finalize in early exit.
3662
3663 2008-07-10  Jakub Jelinek  <jakub@redhat.com>
3664
3665         PR middle-end/36790
3666         * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
3667         uids in the bitmap, not just VAR_DECL uids.
3668
3669         PR rtl-optimization/36419
3670         * combine-stack-adj.c (adjust_frame_related_expr): New function.
3671         (combine_stack_adjustments_for_block): Call it if needed.  Delete
3672         correct insn.
3673         * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
3674         DW_CFA_GNU_args_size if CSA pass merged some adjustments into
3675         prologue sp adjustment.
3676
3677 2008-07-10  Peter Maydell  <pmaydell@chiark.greenend.org.uk>
3678
3679         PR other/28322
3680         * opts.c (print_ignored_options): Report postponed diagnostics for
3681         unknown -Wno-* options as warnings, not errors.
3682         (postpone_unknown_option_error): Renamed to...
3683         (postpone_unknown_option_warning): ... this.
3684
3685 2008-07-09  Doug Kwan  <dougkwan@google.com>
3686
3687         Revert:
3688         2008-07-08  Doug Kwan  <dougkwan@google.com>
3689
3690         * config/arm/arm.opt (mandroid): New option.
3691         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
3692         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
3693         (CC1_SPEC): Same.
3694         (CC1PLUS_SPEC): Same.
3695         (LIB_SPEC): Same.
3696         (STARTFILE_SPEC): Same.
3697         (ENDFILE_SPEC): Same.
3698         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
3699         used.
3700
3701 2008-07-09  Richard Sandiford  <rdsandiford@googlemail.com>
3702
3703         PR target/35802
3704         * config/mips/mips.h (reg_class): Remove V1_REG.
3705         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
3706         * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
3707         instead of V1_REGS.
3708         (mips_get_tp): New function.
3709         (mips_legitimize_tls_address): Use it.
3710         * config/mips/constraints.md (v): Delete.
3711         * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
3712         (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
3713         After reload, split into a move and ...
3714         (*tls_get_tp_<mode>_split): ...this new instruction.
3715
3716 2008-07-09  David Daney  <ddaney@avtrex.com>
3717
3718         * config/mips/driver-native.c: Include coretypes.h and tm.h.
3719
3720 2008-07-09  Jakub Jelinek  <jakub@redhat.com>
3721
3722         * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
3723         (push_gimplify_context): Don't allocate temp_htab nor c itself here.
3724         Add c argument.
3725         (pop_gimplify_context): Check c->temp_htab instead of optimize whether
3726         htab_delete should be called.  Don't free c.
3727         (lookup_tmp_var): Create temp_htab lazily.
3728         (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
3729         gimplify_body, force_gimple_operand): Adjust push_gimplify_context
3730         callers.
3731         * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
3732         lower_omp_ordered, lower_omp_critical, lower_omp_for,
3733         create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
3734         * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
3735         * tree-sra.c (generate_element_init): Likewise.
3736         * tree-mudflap.c (execute_mudflap_function_ops,
3737         execute_mudflap_function_decls): Likewise.
3738         * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
3739         * tree-gimple.h (struct gimplify_ctx): New type.
3740         (push_gimplify_context): Adjust prototype.
3741
3742 2008-07-09  Daniel Berlin  <dberlin@dberlin.org>
3743
3744         * tree-ssa-pre.c (phi_translate_1): Update placement of
3745         add_to_value calls.
3746
3747 2008-07-09  Anatoly Sokolov  <aesok@post.ru>
3748
3749         * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
3750         * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
3751         (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
3752         * targhooks.c (default_hard_regno_scratch_ok): New function.
3753         * targhooks.h (default_hard_regno_scratch_ok): Declare function.
3754         * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
3755         * recog.c:  Include "target.h".
3756         (peep2_find_free_register): Add check for global regs. Add target
3757         specific check.
3758         * Makefile.in (recog.o): Depend on target.h.
3759
3760 2008-07-09  Kaz Kojima  <kkojima@gcc.gnu.org>
3761
3762         * config/sh/sh.c (sh_canonical_va_list_type): New.
3763         (TARGET_CANONICAL_VA_LIST_TYPE): Define.
3764
3765 2008-07-09  Raksit Ashok <raksit@google.com>
3766
3767         * doc/invoke.texi (Option Summary): Mention new option
3768         -Wdisallowed-function-list=...
3769         (Warning Options): Document -Wdisallowed-function-list=...
3770         * common.opt (Wdisallowed-function-list=): New flag.
3771         * flags.h (warn_disallowed_functions): External definition of new
3772         boolean warning flag.
3773         (warn_if_disallowed_function_p): Declare new function.
3774         * opts.c (warning_disallowed_functions): New static variable.
3775         (warn_disallowed_functions): New boolean warning flag.
3776         (warn_if_disallowed_function_p): New function.
3777         (add_comma_separated_to_vector): Rename
3778         add_instrument_functions_exclude_list to this.
3779         (common_handle_option): Handle new option. Rename calls to
3780         add_instrument_functions_exclude_list into calls to
3781         add_comma_separated_to_vector.
3782         * c-parser.c (c_parser_postfix_expression_after_primary): New warning
3783         based on flag warn_disallowed_functions.
3784
3785 2008-07-09  Christian Bruel  <christian.bruel@st.com>
3786
3787         * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
3788          instead of get_attr_length.
3789
3790 2008-07-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3791
3792         * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
3793         keywords.
3794         * genemit.c (gen_insn): Likewise.
3795         * gengtype.c (note_def_vec): Likewise.
3796         * gengtype.h (note_def_vec): Likewise.
3797         * genoutput.c (struct data, output_insn_data, process_template,
3798         gen_expand, gen_split, note_constraint): Likewise.
3799         * genrecog.c (new_decision, add_to_sequence, factor_tests,
3800         make_insn_sequence): Likewise.
3801         * gensupport.c (record_insn_name): Likewise.
3802
3803 2008-07-08  Doug Kwan  <dougkwan@google.com>
3804
3805         * config/arm/arm.opt (mandroid): New option.
3806         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
3807         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
3808         (CC1_SPEC): Same.
3809         (CC1PLUS_SPEC): Same.
3810         (LIB_SPEC): Same.
3811         (STARTFILE_SPEC): Same.
3812         (ENDFILE_SPEC): Same.
3813         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
3814         used.
3815
3816 2008-07-08  Raksit Ashok  <raksit@google.com>
3817
3818         * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
3819         (set_storage_via_setmem): Fix expected_align parameter.
3820         * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
3821         missing from the list.
3822         * doc/md.texi (movmem): Explicitly state that expected alignment is
3823         to be expressed in bytes.
3824         (setmem): Explicitly state that expected alignment is to be expressed
3825         in bytes.
3826
3827 2008-07-08  Joseph Myers  <joseph@codesourcery.com>
3828
3829         * reload.c (find_reloads_subreg_address): Do not require validity
3830         of address in original mode before reloading address.
3831
3832 2008-07-07  Tianwei Sheng  <tianweis@google.com>
3833
3834         * df-core.c (df_remove_problem): Adjust the access to avoid out of
3835         bounds array access.
3836
3837 2008-07-08  Jakub Jelinek  <jakub@redhat.com>
3838
3839         * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
3840
3841 2008-07-05  Daniel Berlin  <dberlin@dberlin.org>
3842
3843         Fix PR tree-optimization/23455
3844         Fix PR tree-optimization/35286
3845         Fix PR tree-optimization/35287
3846         * Makefile.in (OBJS-common): Remove tree-vn.o.
3847         (tree-vn.o): Remove.
3848         * dbgcnt.def: Add treepre_insert debug counter.
3849         * gcc/tree-flow.h (add_to_value): Updated for other changes.
3850         (debug_value_expressions): Ditto.
3851         (print_value_expressions): Ditto.
3852         * tree-pretty-print.c (dump_generic_node): Updated for
3853         VALUE_HANDLE removal.
3854         * tree-ssa-dom.c (record_equality): Ditto.
3855         (cprop_operand): Ditto.
3856         (lookup_avail_expr): Ditto.
3857         * tree-ssa-threadedge.c
3858         (record_temporary_equivalences_from_stmts_at_dest): Ditto.
3859         (simplify_control_stmt_condition): Ditto.
3860         * tree.c (tree_code_size): Ditto.
3861         (tree_node_structure): Ditto.
3862         (iterative_hash_expr): Ditto.
3863         * tree.def: Ditto.
3864         * tree.h (VALUE_HANDLE_ID): Ditto.
3865         (VALUE_HANDLE_EXPR_SET): Ditto.
3866         (struct tree_value_handle): Ditto.
3867         (union tree_node): Ditto.
3868         * treestruct.def: Ditto.
3869         * tree-vn.c: Removed.
3870         * tree-ssa-pre.c: Rewritten entirely.
3871         * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
3872         (constant_value_ids): Ditto.
3873         (vn_nary_op_t): Moved to header.
3874         (vn_phi_t): Ditto.
3875         (vn_reference_op_t): Ditto
3876         (vn_reference_t): Ditto.
3877         (next_value_id): New variable.
3878         (VN_INFO): Add an assert.
3879         (vn_constant_eq): New function.
3880         (vn_constant_hash): Ditto.
3881         (get_or_alloc_constant_value_id): Ditto.
3882         (value_id_constant_p): Ditto.
3883         (vn_reference_compute_hash): De-staticify.
3884         (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
3885         Disable some code with a FIXME.  Remove VALUE_HANDLE use.
3886         (valueize_refs): Update opcode if it changes from ssa name to constant.
3887         (vn_reference_lookup_1): Add new argument.
3888         (vn_reference_lookup):  Ditto.
3889         (vn_reference_lookup_pieces): New function.
3890         (vn_reference_insert): Add return type. Modify to deal with value ids.
3891         (vn_reference_insert_pieces):  New function.
3892         (vn_nary_op_compute_hash): De-staticify.
3893         (vn_nary_op_eq): Ditto.
3894         (vn_nary_op_lookup_pieces): New function.
3895         (vn_nary_op_lookup): Add new argument.
3896         (vn_nary_op_insert_pieces): New function.
3897         (vn_nary_op_insert): Add return type. Modify to deal with value ids.
3898         (vn_phi_insert): Ditto.
3899         (visit_unary_op): Update for callee changes.
3900         (visit_binary_op): Ditto.
3901         (visit_reference_op_load): Ditto.
3902         (visit_reference_op_store): Ditto.
3903         (init_scc_vn): Init next_value_id, constant_to_value_id and
3904         constant_value_ids.
3905         (free_scc_vn): Free them.
3906         (set_hashtable_value_ids): New function.
3907         (run_scc_vn): Use it.
3908         (get_max_value_id): New function.
3909         (get_next_value_id): Ditto.
3910         (expressions_equal_p): Moved from tree-vn.c
3911         (sort_vuses): Ditto.
3912         (sort_vuses_heap): Ditto.
3913         * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
3914         above).
3915         * tree.c (iterative_hash_hashval_t): Made non-static
3916         * tree.h (iterative_hash_hashval_t): Declare it.
3917
3918 2008-07-08  Martin Jambor  <mjambor@suse.cz>
3919
3920         * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
3921         instead of ipa_create_node_params.
3922         (ipcp_driver): Allocate infos with ipa_check_create_node_params and
3923         ipa_check_create_edge_args, free them with
3924         free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
3925
3926         * ipa-prop.c: Include flags.h and tree-inline.h.
3927         (ipa_node_params_vector): New variable.
3928         (ipa_edge_args_vector): New variable.
3929         (edge_removal_hook_holder): New variable.
3930         (node_removal_hook_holder): New variable.
3931         (edge_duplication_hook_holder): New variable.
3932         (node_duplication_hook_holder): New variable.
3933         (ipa_detect_param_modifications): Check for presence of modified flags.
3934         (ipa_compute_jump_functions): Check for presence of jump functions.
3935         (ipa_free_edge_args_substructures): New function.
3936         (ipa_create_node_params): Removed.
3937         (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
3938         (ipa_free_node_params_substructures): New function.
3939         (ipa_free_all_node_params): Changed to deallocate the on-the-side
3940         vector.
3941         (ipa_edge_removal_hook): New function.
3942         (ipa_node_removal_hook): New function.
3943         (duplicate_array): New function.
3944         (ipa_edge_duplication_hook): New function.
3945         (ipa_node_duplication_hook): New function.
3946         (ipa_register_cgraph_hooks): New function.
3947         (ipa_unregister_cgraph_hooks): New function.
3948         (free_all_ipa_structures_after_ipa_cp): New function.
3949
3950         * ipa-prop.h: Include vec.h.
3951         (ipa_node_params_t): New typedef with vector types for it.
3952         (ipa_edge_args_t):  New typedef with vector types for it.
3953         (IPA_NODE_REF): Changed to access an on-the-side vector.
3954         (IPA_EDGE_REF): Changed to access an on-the-side vector.
3955         (ipa_check_create_node_params): New function.
3956         (ipa_check_create_edge_args): New function.
3957
3958         * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h.  Converted
3959         all users.
3960
3961 2008-07-07  Tom Tromey  <tromey@redhat.com>
3962
3963         * configure, config.in: Rebuilt.
3964         * configure.ac: Don't check for scandir or alphasort.
3965
3966 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
3967
3968         * config/arm/arm.c (arm_init_neon_builtins): Register built-in
3969         types immediately after creating them.
3970
3971 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
3972
3973         * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
3974
3975 2008-07-07  Fernando Pereira <fernando@cs.ucla.edu>
3976
3977         * tree-ssa-structalias.c (compute_points_to_sets): Add call to
3978         dump_constraint_graph.
3979         (dump_constraint_edge): New function.
3980         (dump_constraint_graph): New function.
3981         (debug_constraint_graph): New function.
3982         (dump_constraint): Removed useless comparison.
3983         * tree-ssa-structalias.h (dump_constraint_edge): Declare.
3984         (dump_constraint_graph): Declare.
3985         (debug_constraint_graph): Declare.
3986         * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
3987
3988 2008-07-07  Kai Tietz  <kai.tietz@onevision.com>
3989
3990         * config/i386/i386.c (is_va_list_char_pointer): New.
3991         (ix86_va_start): Replace compare with ms_va_list_type_node
3992         by is_va_list_char_pointer.
3993         (ix86_gimplify_va_arg): Likewise.
3994
3995 2008-07-07  Martin Jambor  <mjambor@suse.cz>
3996
3997         * cgraph.c (cgraph_edge_max_uid): New variable.
3998         (struct cgraph_edge_hook_list): New type.
3999         (struct cgraph_node_hook_list): New type.
4000         (struct cgraph_2edge_hook_list): New type.
4001         (struct cgraph_2node_hook_list): New type.
4002         (first_cgraph_edge_removal_hook): New variable.
4003         (first_cgraph_node_removal_hook): New variable.
4004         (first_cgraph_edge_duplicated_hook): New variable.
4005         (first_cgraph_node_duplicated_hook): New variable.
4006         (cgraph_add_edge_removal_hook): New function.
4007         (cgraph_remove_edge_removal_hook): New function.
4008         (cgraph_call_edge_removal_hooks):  New function.
4009         (cgraph_add_node_removal_hook):  New function.
4010         (cgraph_remove_node_removal_hook):  New function.
4011         (cgraph_call_node_removal_hooks):  New function.
4012         (cgraph_add_edge_duplication_hook):  New function.
4013         (cgraph_remove_edge_duplication_hook):  New function.
4014         (cgraph_call_edge_duplication_hooks):  New function.
4015         (cgraph_add_node_duplication_hook):  New function.
4016         (cgraph_remove_node_duplication_hook):  New function.
4017         (cgraph_call_node_duplication_hooks):  New function.
4018         (cgraph_create_edge): Assign to edge uid.
4019         (cgraph_remove_edge): Call edge removal hooks.
4020         (cgraph_node_remove_callees): Call edge removal hooks.
4021         (cgraph_node_remove_callers): Call edge removal hooks.
4022         (cgraph_remove_node): Call node removal hooks.
4023         (cgraph_clone_edge): Call edge duplication hooks.
4024         (cgraph_clone_node): Call node duplication hooks.
4025
4026         * cgraph.h (cgraph_edge): New field uid.
4027         (cgraph_edge_hook): New type.
4028         (cgraph_node_hook): New type.
4029         (cgraph_2edge_hook): New type.
4030         (cgraph_2node_hook): New type.
4031
4032 2008-07-07  Andreas Tobler  <a.tobler@schweiz.org>
4033
4034         * config.in: Regenerate.
4035
4036 2008-07-07  Vladimir Prus  <vladimir@codesourcery.com>
4037
4038         * gcc.c (print_sysroot): New.
4039         (option_map, display_help, process_command): Handle the
4040         -print-sysroot option.
4041         (main): Print the sysroot if requested.
4042         * doc/invoke.texi (Debugging Options): Document -print-sysroot.
4043
4044 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4045
4046         PR target/34780
4047         * unwind-pe.h (size_of_encoded_value): add attribute unused.
4048
4049 2008-07-07  Daniel Jacobowitz  <dan@codesourcery.com>
4050
4051         * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
4052         (assign_parm_setup_block_p): Also check mode of entry_parm.
4053
4054 2008-07-07  Richard Guenther  <rguenther@suse.de>
4055
4056         * tree-ssa-structalias.h (set_used_smts): Remove.
4057         * tree-ssa-structalias.c (used_smts): Likewise.
4058         (set_used_smts): Likewise.
4059         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
4060         call to set_used_smts.
4061
4062 2008-07-07  Richard Guenther  <rguenther@suse.de>
4063
4064         * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
4065         (new_var_info): Set it to false.
4066         (solution_set_add): Correctly handle pointers outside a var and
4067         inside a field.
4068         (type_safe): Treat variables with is_full_var properly.
4069         (do_sd_constraint): Likewise.
4070         (do_ds_constraint): Likewise.
4071         (process_constraint): Remove zeroing offset for !use_field_sensitive.
4072         (get_constraint_for_ptr_offset): New function.
4073         (get_constraint_for_component_ref): For addresses at least include
4074         the last field of the variable.  Handle is_full_vars properly.
4075         (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
4076         (handle_ptr_arith): Remove.
4077         (find_func_aliases): Simplify assignment handling.
4078         (create_function_info_for): For parameter and result varinfos set
4079         is_full_var flag.
4080         (create_variable_info_for): Set is_full_var flag whenever we
4081         just created a single varinfo for a decl.
4082         (init_alias_vars): Initialize use_field_sensitive from
4083         max-fields-for-field-sensitive parameter.
4084
4085 2008-07-07  Richard Guenther  <rguenther@suse.de>
4086
4087         PR tree-optimization/36713
4088         * tree-flow-inline.h (is_call_used): New function.
4089         * tree-nrv.c (dest_safe_for_nrv_p): Use it.
4090         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
4091         * tree-outof-ssa.c (create_temp): Set call-used flag if required.
4092
4093 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
4094
4095         * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
4096
4097 2008-07-07  Mark Shinwell  <shinwell@codesourcery.com>
4098
4099         * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
4100
4101 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
4102             Nathan Sidwell  <nathan@codesourcery.com>
4103
4104         * config.gcc (m68k-*-linux*): Add with_arch.  Add sysroot-suffix.h
4105         to tm_file.  Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
4106         tmake_file.
4107         * config/m68k/t-linux: New.
4108         * doc/install.texi: Document m68k-*-linux is now multilibbed by
4109         default.
4110
4111 2008-07-07  Nathan Sidwell  <nathan@codesourcery.com>
4112
4113         * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
4114         * config/m68k/m68k-devices.def: Remove multilibs that only differ
4115         by MAC/EMAC.
4116
4117 2008-07-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4118
4119         * gcc.c (execute): Fix -Wc++-compat warning.
4120
4121 2008-07-06  H.J. Lu  <hongjiu.lu@intel.com>
4122
4123         PR target/36720
4124         * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
4125         constant for little endian.
4126
4127 2008-07-06  Richard Sandiford  <rdsandiford@googlemail.com>
4128
4129         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
4130         mips_base_mips16 instead of TARGET_MIPS16.
4131         (mips_base_mips16): Declare.
4132         * config/mips/mips.c (mips_base_mips16): Make global.
4133         (was_mips16_p): Remove GTY marker.
4134         (was_mips16_pch_p): New variable.
4135         (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
4136         (mips_override_options): Force to non-MIPS16 mode initially.
4137         Do not complain about MIPS16 PIC incompatibilities here.
4138         Only allow -mgpopt if -mexplicit-relocs is in force for
4139         non-MIPS16 code.
4140
4141 2008-07-06  Andreas Tobler  <a.tobler@schweiz.org>
4142
4143         * configure.ac: Check for caddr_t, define to char * if not defined.
4144         * configure: Regenerate.
4145         * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
4146         (mmap_gt_pch_use_address): Likewise.
4147         * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
4148
4149 2008-07-06  Richard Guenther  <rguenther@suse.de>
4150
4151         * tree-ssa-structalias.c (struct variable_info): Remove has_union.
4152         (new_var_info): Deal with it.
4153         (solution_set_add): Likewise.
4154         (bitpos_of_field): Make signed, fix.
4155         (struct fieldoff): Remove type and decl fields.  Make size field
4156         unsigned HOST_WIDE_INT.  Add has_unknown_size and may_have_pointers
4157         flags.
4158         (fieldoff_compare): Deal with it.
4159         (push_fields_onto_fieldstack): Remove has_union argument, glob
4160         adjacent non-pointer fields together.
4161         (create_function_info_for): Do not set has_union.
4162         (create_variable_info_for): Simplify.
4163
4164 2008-07-06  Kai Tietz  <kai.tietz@onevision.com>
4165
4166         * config.gcc (extra_headers): Add cross-stdarg.h for target
4167         x86_64-*-* and i?86-*-*.
4168         * config/i386/cross-stdarg.h: New.
4169         * builtins.c (std_fn_abi_va_list): New.
4170         (std_canonical_va_list_type): New.
4171         (stabilize_va_list): Replace va_list_type_node use by
4172         mtarget.canonical_va_list_type.
4173         (gimplify_va_arg_expr): Likewise.
4174         (expand_builtin_va_copy): Replace va_list_type_node use by
4175         mtarget.fn_abi_va_list.
4176         * tree-sra.c (is_va_list_type): New helper.
4177         (decl_can_be_decomposed_p): Replace
4178         va_list_type_node use by is_va_list_type.
4179         * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
4180         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
4181         * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
4182         * config/i386/i386-protos.h (ix86_get_valist_type): New.
4183         (ix86_enum_va_list): New.
4184         * config/i386/i386.c (sysv_va_list_type_node): New.
4185         (ms_va_list_type_node): New.
4186         (ix86_function_type_abi): Remove sorry.
4187         (ix86_build_builtin_va_list_abi): New.
4188         (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
4189         for 64-bit targets.
4190         (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
4191         (ix86_init_builtins_va_builtins_abi): New.
4192         (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
4193         for 64-bit targets.
4194         (ix86_handle_abi_attribute): New.
4195         (attribute_spec): Add sysv_abi and ms_abi.
4196         (ix86_fn_abi_va_list): New.
4197         (ix86_canonical_va_list_type): New.
4198         (ix86_enum_va_list): New.
4199         (TARGET_FN_ABI_VA_LIST): New.
4200         (TARGET_CANONICAL_VA_LIST_TYPE): New.
4201         * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
4202         * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
4203         (TARGET_CANONICAL_VA_LIST_TYPE): New.
4204         (TARGET_ENUM_VA_LIST): New.
4205         * expr.h (std_fn_abi_va_list): New.
4206         (std_canonical_va_list_type): New.
4207         * target-def.h (TARGET_FN_ABI_VA_LIST): New.
4208         (TARGET_CANONICAL_VA_LIST_TYPE): New.
4209         (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
4210         TARGET_CANONICAL_VA_LIST_TYPE.
4211         * target.h (struct gcc_target): Add fn_abi_va_list hook
4212         and canonical_va_list_type hook.
4213
4214 2008-07-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4215
4216         * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
4217         integral and pointer types.
4218
4219 2008-07-04  Roger Sayle  <roger@eyesopen.com>
4220
4221         * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
4222         the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
4223
4224 2008-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
4225
4226         PR target/36684
4227         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
4228
4229 2008-07-04  Jakub Jelinek  <jakub@redhat.com>
4230
4231         * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
4232         build_gimple_modify_stmt.
4233         (build_arrays, gen_inbound_check): Likewise.  Force RHS to be
4234         gimple operand.  Use fold_build* instead of build*.
4235
4236 2008-07-04  Richard Guenther  <rguenther@suse.de>
4237
4238         * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
4239         (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
4240         properly to compute the reachability set if we do field-sensitive PTA.
4241         * invoke.texi (max-fields-for-field-sensitive): Document default.
4242         * opts.c (decode_options): Set max-fields-for-field-sensitive to
4243         100 for optimize >= 2.
4244
4245 2008-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4246
4247         * ggc-zone.c (lookup_page_table_if_allocated,
4248         set_page_table_entry, zone_find_object_size, alloc_small_page,
4249         alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
4250         new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
4251         -Wc++-compat and/or -Wcast-qual warnings.
4252
4253 2008-07-04  Alan Modra  <amodra@bigpond.net.au>
4254
4255         PR target/36634
4256         * config/rs6000/rs6000.md (call, call_value): Don't arrange for
4257         pic_offset_table_rtx to be marked as used here.
4258         (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
4259         TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
4260         (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
4261         (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
4262         !TARGET_SECURE_PLT.
4263
4264 2008-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4265
4266         * alloc-pool.c (hash_descriptor, eq_descriptor,
4267         alloc_pool_descriptor): Fix -Wc++-compat warnings.
4268         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
4269         Likewise.
4270         * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
4271         loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
4272         final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
4273         * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
4274         Likewise.
4275
4276 2008-07-03  Eric Botcazou  <ebotcazou@adacore.com>
4277
4278         * tree-flow.h (loop_only_exit_p): Declare.
4279         * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
4280         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
4281         the number of iterations if it is constant.  Otherwise, if this is the
4282         only possible exit of the loop, use the conservative estimate on the
4283         number of iterations of the entire loop if available.
4284
4285 2008-07-03  Richard Sandiford  <rdsandiford@googlemail.com>
4286
4287         * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
4288         * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
4289         Add synchronization functions.
4290         * config/sync.c: New file.
4291         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
4292         (LIBGCC_SYNC_CFLAGS): Likewise.
4293
4294 2008-07-03  Uros Bizjak  <ubizjak@gmail.com>
4295
4296         PR target/36710
4297         * config/i386/i386.md (mode): Add TF to "mode" attribute.
4298         (*pushtf_sse): New insn pattern.
4299         (pushtf splitters): New splitters.
4300
4301 2008-07-03  Michael Meissner  <gnu@the-meissners.org>
4302
4303         PR middle-end/35736
4304         * predict.c (build_predict_expr): Use void_type_node for the tree
4305         type, instead of NULL_TREE.
4306
4307 2008-07-03  H.J. Lu  <hongjiu.lu@intel.com>
4308
4309         * config/i386/i386.c (contains_aligned_value_p): Return true
4310         for TCmode.
4311         (ix86_data_alignment): Align TCmode to 128bits.
4312         (ix86_local_alignment): Likewise.
4313
4314 2008-07-03  Andrew Haley  <aph@redhat.com>
4315
4316         PR bootstrap/33304
4317         * vec.h (VEC_TA): New.
4318         (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
4319         DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
4320         * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
4321         (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
4322         (C_COMMON_FIXED_TYPES): Remove first arg.
4323         (C_COMMON_FIXED_MODE_TYPES): Likewise.
4324         * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
4325         MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
4326         not to use empty macro arguments.
4327
4328 2008-07-02  Joseph Myers  <joseph@codesourcery.com>
4329
4330         * config/alpha/vms_tramp.asm, config/arm/crti.asm,
4331         config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
4332         config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
4333         config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
4334         config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
4335         config/i386/sol2-gc1.asm, config/ia64/crti.asm,
4336         config/ia64/crtn.asm, config/m68hc11/larith.asm,
4337         config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
4338         config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
4339         config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
4340         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
4341         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
4342         config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
4343         config/rs6000/e500crtres64gpr.asm,
4344         config/rs6000/e500crtres64gprctr.asm,
4345         config/rs6000/e500crtrest32gpr.asm,
4346         config/rs6000/e500crtrest64gpr.asm,
4347         config/rs6000/e500crtresx32gpr.asm,
4348         config/rs6000/e500crtresx64gpr.asm,
4349         config/rs6000/e500crtsav32gpr.asm,
4350         config/rs6000/e500crtsav64gpr.asm,
4351         config/rs6000/e500crtsav64gprctr.asm,
4352         config/rs6000/e500crtsavg32gpr.asm,
4353         config/rs6000/e500crtsavg64gpr.asm,
4354         config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
4355         config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
4356         config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
4357         config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
4358         config/sparc/sol2-cn.asm: Remove .file directives.
4359
4360 2008-07-02  Richard Sandiford  <rdsandiford@googlemail.com>
4361
4362         * resource.c (mark_referenced_resources): Look inside
4363         UNSPEC_VOLATILEs and ASM_INPUTs.
4364
4365 2008-07-02  Ian Lance Taylor  <iant@google.com>
4366
4367         * rtlanal.c (add_reg_note): New function.
4368         * rtl.h (add_reg_note): Declare.
4369         * auto-inc-dec.c (attempt_change): Use add_reg_note.
4370         * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
4371         * builtins.c (expand_builtin_longjmp): Likewise.
4372         (expand_builtin_nonlocal_goto): Likewise.
4373         * calls.c (emit_call_1, expand_call): Likewise.
4374         * cfgexpand.c (add_reg_br_prob_note): Likewise.
4375         * cfglayout.c (fixup_reorder_chain): Likewise.
4376         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
4377         (commit_one_edge_insertion): Likewise.
4378         * combine.c (move_deaths, distribute_notes): Likewise.
4379         * df-problems.c (df_set_note): Likewise.
4380         * emit-rtl.c (link_cc0_insns, try_split): Likewise.
4381         (set_unique_reg_note): Likewise.
4382         (emit_copy_of_insn_after): Likewise.
4383         * expr.c (expand_expr_real): Likewise.
4384         * gcse.c (add_label_notes): Likewise.
4385         * haifa-sched.c (create_check_block_twin): Likewise.
4386         * jump.c (mark_jump_label_1): Likewise.
4387         * loop-doloop.c (add_test, doloop_modify): Likewise.
4388         * loop-unswitch.c (compare_and_jump_seq): Likewise.
4389         * lower-subreg.c (move_eh_region_note): Likewise.
4390         * optabs.c (emit_libcall_block): Likewise.
4391         * predict.c (predict_insn): Likewise.
4392         (combine_predictions_for_insn): Likewise.
4393         * recog.c (peephole2_optimize): Likewise.
4394         * regmove.c (try_auto_increment): Likewise.
4395         * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
4396         * reload.c (find_reloads): Likewise.
4397         * reload1.c (fixup_eh_region_note): Likewise.
4398         (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
4399         * reorg.c (delete_prior_computation): Likewise.
4400         (delete_computation, dbr_schedule): Likewise.
4401         * config/pa/pa.c (legitimize_pic_address): Likewise.
4402         * config/sh/sh.c (sh_reorg): Likewise.
4403
4404 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
4405
4406         PR target/36669
4407         * config/libgcc-glibc.ver: Add %exclude.
4408         * config/m32r/libgcc-glibc.ver: Likwise.
4409         * config/s390/libgcc-glibc.ver: Likwise.
4410         * config/sh/libgcc-glibc.ver: Likwise.
4411         * config/sparc/libgcc-sparc-glibc.ver: Likwise.
4412
4413         * config/i386/libgcc-glibc.ver: New.
4414
4415         * config/i386/libgcc-x86_64-glibc.ver: Removed.
4416
4417 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
4418
4419         * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
4420         from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
4421         i[34567]86-*-linux*, x86_64-*-linux*.  Add
4422         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
4423         i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
4424         x86_64-*-linux*.  Add i386/t-linux to tmake_file for
4425         i[34567]86-*-linux*, x86_64-*-linux*.
4426
4427         * libgcc-std.ver: Add empty GCC_4.4.0.
4428
4429         * mkmap-symver.awk: Support multiple versions per symbol.
4430
4431         * config/i386/i386.c (ix86_init_builtins): Always define
4432         __builtin_fabsq and __builtin_copysignq with fallbacks.
4433         (ix86_expand_builtin): Emit normal call for __builtin_fabsq
4434         and __builtin_copysignq if SSE2 isn't available.
4435
4436         * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
4437         (LIBGCC2_TF_CEXT): Likwise.
4438         (TF_SIZE): Likwise.
4439
4440         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
4441
4442         * config/i386/sfp-machine.h: Moved to libgcc.
4443
4444         * config/i386/sfp-machine.h: New.
4445         * config/i386/t-linux: Likwise.
4446
4447         * config/i386/t-darwin: Remove softfp_wrap_start and
4448         softfp_wrap_end.
4449         * config/i386/t-darwin64: Likewise.
4450
4451         * config/i386/t-fprules-softfp64: Renamed to ...
4452         * config/i386/t-fprules-softfp: This.
4453
4454         * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
4455         and softfp_wrap_end.
4456
4457 2008-07-02  Jason Merrill  <jason@redhat.com>
4458
4459         * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
4460
4461         * tree.c (ctor_to_list): New fn.
4462         * tree.h: Declare it.
4463         (CONSTRUCTOR_ELT): New macro.
4464         (CONSTRUCTOR_NELTS): New macro.
4465
4466 2008-07-02  Richard Guenther  <rguenther@suse.de>
4467
4468         * tree-ssa-structalias.c (struct variable_info): Reorder
4469         to fill padding on 64bit hosts.  Make collapsed_to an int.
4470         (get_varinfo_fc): Deal with that.
4471         (new_var_info): Likewise.
4472         (collapse_rest_of_var): Likewise.
4473
4474 2008-07-02  Joshua Sumali  <jsumali@redhat.com>
4475
4476         * doc/install.texi (--enable-java-home): Document.
4477         (--enable-aot-compile-rpm): Likewise.
4478         (--with-arch-directory): Likewise.
4479         (--with-os-directory): Likewise.
4480         (--with-origin-name): Likewise.
4481         (--with-arch-suffix): Likewise.
4482         (--with-jvm-root-dir): Likewise.
4483         (--with-jvm-jar-dir): Likewise.
4484         (--with-python-dir): Likewise.
4485
4486 2008-07-02  Richard Guenther  <rguenther@suse.de>
4487
4488         * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
4489         from decls explicitly.  Merge operand checking from tuples.
4490
4491 2008-07-02  Martin Jambor  <mjambor@suse.cz>
4492
4493         * tree-switch-conversion.c: Included timevar.h which I forgot before.
4494
4495 2008-07-02  Martin Jambor  <mjambor@suse.cz>
4496
4497         * tree-switch-conversion.c: Included timevar.h
4498         (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
4499
4500         * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
4501
4502 2008-07-02  Martin Jambor  <mjambor@suse.cz>
4503
4504         * tree-switch-conversion.c: Corrected various comments and
4505         whitespace issues
4506         (build_constructors): Fixed minor formatting mistakes.
4507
4508         * invoke.texi (Optimize Options): Corrected the
4509         switch-conversion-max-branch-ratio parameter.
4510
4511 2008-07-02  Mark Shinwell  <shinwell@codesourcery.com>
4512
4513         * final.c (asm_insn_count): Return zero for an empty asm body.
4514
4515 2008-07-02  Richard Guenther  <rguenther@suse.de>
4516
4517         * bitmap.h (bitmap_set_bit): Return bool.
4518         (bitmap_clear_bit): Likewise.
4519         * bitmap.c (bitmap_set_bit): Return if the bit changed.  Only
4520         write to the bitmap if it would.
4521         (bitmap_clear_bit): Likewise.
4522         * tree-ssa-structalias.c (add_implicit_graph_edge): Use
4523         bitmap_set_bit return value.
4524         (add_pred_graph_edge): Likewise.
4525         (add_graph_edge): Likewise.
4526         (do_sd_constraint): Likewise.
4527         (do_ds_constraint): Likewise.
4528
4529 2008-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4530
4531         * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
4532         Fix -Wc++-compat and/or -Wcast-qual warnings.
4533         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
4534         gen_regparm_prefix): Likewise.
4535         * vmsdbgout.c (write_modbeg, lookup_filename,
4536         vmsdbgout_source_line, vmsdbgout_init): Likewise.
4537
4538 2008-07-02  Danny Smith  <dannysmith@users.sourceforge.net>
4539
4540         * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
4541         defaults.h definition apply.
4542
4543 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
4544
4545         * function.c (assign_parm_remove_parallels): New.
4546         (assign_parm_setup_block_p): Do not return true for non-BLKmode
4547         PARALLELs.
4548         (assign_parm_setup_block): Do not handle them.
4549         (assign_parm_setup_reg, assign_parm_setup_stack): Call
4550         assign_parm_remove_parallels.
4551
4552 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
4553
4554         * c-typeck.c (convert_for_assignment): Use
4555         vector_targets_convertible_p.
4556         * c-common.c (vector_targets_convertible_p): New.
4557         * c-common.h (vector_targets_convertible_p): New prototype.
4558         * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
4559         opaque_p_V2SI_type_node.
4560
4561 2008-07-01  Steve Ellcey  <sje@cup.hp.com>
4562
4563         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
4564         RFmode constants.
4565
4566 2008-07-01  Uros Bizjak  <ubizjak@gmail.com>
4567
4568         * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
4569         TFmode constants via two element DImode vector for hosts with
4570         HOST_BITS_PER_WIDE_INT < 64.
4571         (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
4572         also for HOST_BITS_PER_WIDE_INT < 64.
4573
4574 2008-07-01  Richard Guenther  <rguenther@suse.de>
4575
4576         PR tree-optimization/36666
4577         * tree-ssa-structalias.c (get_constraint_for_1): Declare.
4578         (get_constraint_exp_from_ssa_var): Split into ...
4579         (get_constraint_exp_for_temp): ... this ...
4580         (get_constraint_for_ssa_var): ... and that.
4581         Return constraint expressions for all touched sub-fields
4582         if the results address is not taken.
4583         (process_constraint): Remove assertion that aggregate
4584         assignments do not happen at this place.
4585         (get_constraint_for_component_ref): Add address_p argument.
4586         Return constraint expressions for all touched sub-fields
4587         if the results address is not taken.
4588         (do_deref): Use get_constraint_exp_for_temp.
4589         (get_constraint_for_1): Rename from ...
4590         (get_constraint_for): ... this.  Add the old function as wrapper.
4591         (do_structure_copy): Use get_constraint_for_1.
4592
4593 2008-07-01  Martin Jambor  <mjambor@suse.cz>
4594
4595         * Makefile.in (tree-switch-conversion.o): Add.
4596         (OBJS-common): Add tree-swtch-conversion.o.
4597         * passes.c (init_optimization_passes): Add pass_convert_switch.
4598         * tree-pass.h: (pass_convert_switch): Add.
4599         * tree-switch-conversion.c: New file.
4600         * gcc.dg/tree-ssa/cswtch.c: New testcase.
4601         * common.opt (ftree-cswtch): New option.
4602         * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
4603         * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
4604         * opts.c (decode_options): Set flag_tree_switch_conversion when
4605         optimization level is >= 2.
4606         * doc/invoke.texi (Optimize Options): Added description of
4607         -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
4608
4609 2008-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4610
4611         * config/darwin-driver.c (darwin_default_min_version): Fix
4612         -Wc++-compat warnings.
4613
4614 2008-06-30  Uros Bizjak  <ubizjak@gmail.com>
4615
4616         * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
4617         of operand 0.
4618
4619 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
4620
4621         * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
4622
4623 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
4624
4625         PR rtl-optimization/34744
4626         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
4627         (df_scan_free_internal): Free data structures not
4628         allocated in storage pools.
4629         (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
4630         (df_refs_add_to_chains): Use df_scan_free_ref_vec and
4631         df_scan_free_mws_vec.
4632         * dse.c (dse_step6): Free offset_map_p and offset_map_n
4633         unconditionally.
4634
4635 2008-06-30  H.J. Lu  <hongjiu.lu@intel.com>
4636
4637         * config/i386/i386.c (contains_aligned_value_p): Return true
4638         for __float128.
4639         (ix86_function_arg_boundary): Return its natural boundary
4640         for __float128.
4641         (return_in_memory_32): Don't check TDmode.
4642         (ix86_split_to_parts): Support splitting into 4 parts and
4643         support TFmode for 32bit target.
4644         (ix86_split_long_move): Support splitting into 4 parts.
4645         (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
4646         for SSE2.
4647         (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
4648         (ix86_init_builtins): Here.
4649         (ix86_scalar_mode_supported_p): Always return true for TFmode.
4650         (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
4651         'q' and 'w', respectively.
4652
4653         * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
4654         TARGET_64BIT.
4655         (movtf_internal): Likewise.
4656         (<code>tf2): Likewise.
4657         (*absnegtf2_sse): Likewise.
4658         (copysign<mode>3): Likewise.
4659         (copysign<mode>3_const): Likewise.
4660         (copysign<mode>3_var): Likewise.
4661         (define_split UNSPEC_COPYSIGN): Likewise.
4662         * config/i386/sse.md (*nandtf3): Likewise.
4663         (<code>tf3): Likewise.
4664         (*<code>tf3): Likewise.
4665
4666 2008-06-30  Joey Ye  <joey.ye@intel.com>
4667             H.J. Lu  <hongjiu.lu@intel.com>
4668
4669         * global.c (compute_regsets): Set frame_pointer_needed here.
4670         * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
4671
4672 2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
4673
4674         * doc/install.texi (specific): Expand Windows build notes.
4675
4676 2008-06-30  Ira Rosen  <irar@il.ibm.com>
4677
4678         PR tree-optimization/36648
4679         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
4680         number of prolog iterations by step. Fix the comment.
4681
4682 2008-06-30  Richard Guenther  <rguenther@suse.de>
4683
4684         PR middle-end/36671
4685         * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
4686         handle calls from ECF_MALLOC functions.
4687         (handle_pure_call): ECF_MALLOC functions do not return
4688         call-used memory.
4689         (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
4690
4691 2008-06-29  Andreas Schwab  <schwab@suse.de>
4692
4693         * config/m68k/m68k.c (print_operand): Always print a float
4694         constant in hex.
4695         * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
4696         (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
4697         Remove macros.
4698
4699         * config/rs6000/x-linux64: Remove never used file.
4700
4701 2008-06-29  Richard Guenther  <rguenther@suse.de>
4702
4703         * tree-ssa-structalias.h (compute_points_to_sets): Adjust
4704         prototype.
4705         (struct alias_info): Move ...
4706         * tree-ssa-alias.c: ... here.
4707         (update_alias_info): Declare.
4708         (compute_may_aliases): Call it.
4709         (update_alias_info): New function.
4710         * tree-ssa-structalias.c (update_alias_info): Move ...
4711         * tree-ssa-alias.c (update_alias_info_1): ... here.
4712         * tree-ssa-structalias.c (process_constraint_1): Remove
4713         unused from_call argument.  Rename to ...
4714         (process_constraint): ... this.  Delete old wrapper.
4715         (make_constraint_to): Adjust callers.
4716         (handle_const_call): Likewise.
4717         (handle_pure_call): Likewise.
4718         (init_base_vars): Likewise.
4719         (handle_lhs_call): Likewise.  Remove unnecessary constraint.
4720         (find_func_aliases): We don't need structure copies for
4721         complex types.
4722         (make_constraint_from_anything): Remove.
4723         (create_variable_info_for): For globals make constraints
4724         from escaped, not from anything.
4725         (compute_points_to_sets): Do not call update_alias_info.
4726         (ipa_pta_execute): Use make_constraint_from.
4727
4728 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4729
4730         * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
4731         (bitmap.o-warn, dominance.o-warn): New.
4732         * configure.ac (cxx_compat_warn): Delete.
4733         (loose_warn): Add -Wcast-qual and -Wc++-compat.
4734         * system.h: Remove #pragma diagnostic for -Wcast-qual and
4735         -Wc++-compat.
4736         * configure: Regenerate.
4737
4738         * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
4739         warnings.
4740
4741 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4742
4743         * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
4744         * df-scan.c (df_notes_rescan): Likewise.
4745         * ggc-page.c (set_page_table_entry): Likewise.
4746         * intl.c (gcc_gettext_width): Likewise.
4747         * varasm.c (get_unnamed_section, get_noswitch_section,
4748         get_section): Likewise.
4749
4750 2008-06-28  Andrew Jenner  <andrew@codesourcery.com>
4751
4752         * regrename.c (build_def_use): Don't copy RTX.
4753
4754 2008-06-28  Sandra Loosemore  <sandra@codesourcery.com>
4755
4756         * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
4757         (Type Attributes): Fix nesting of @table and @subsection.  Adjust
4758         punctuation.  Use @ref instead of @xref.
4759         (Function Names): Remove stray @display/@end display.
4760         (C++ Attributes): Use @ref instead of @xref.
4761         (Deprecated Features): Fix punctuation around @xref.
4762         (Backwards Compatibility): Likewise.
4763         * doc/rtl.texi (Incdec): Remove stray @table/@end table.
4764
4765 2008-06-28  Joseph Myers  <joseph@codesourcery.com>
4766
4767         * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
4768         constants for E500 double.
4769
4770 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4771
4772         * doc/rtl.texi (const_vector): Document const_fixed as legitimate
4773         element type of const_vector.
4774
4775 2008-06-28  Uros Bizjak  <ubizjak@gmail.com>
4776
4777         * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
4778         Remove FLAGS_REG clobber from expander pattern.
4779         (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
4780         (anddi3, andsi3, andhi3, andqi3): Ditto.
4781         (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
4782         (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
4783         (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
4784         (ashlsi3, ashlhi3, ashlqi3): Ditto.
4785         (ashrsi3, ashrhi3, ashrqi3): Ditto.
4786         (lshrsi3, lshrhi3, lshrqi3): Ditto.
4787         (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
4788         (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
4789
4790 2008-06-28  Richard Guenther  <rguenther@suse.de>
4791
4792         * tree-ssa-structalias.c (callused_id, var_callused,
4793         callused_tree): Add.
4794         (handle_pure_call): New function.
4795         (find_func_aliases): Call it.
4796         (find_what_p_points_to): Handle the call-used set.
4797         (clobber_what_escaped): Likewise.
4798         (compute_call_used_vars): New function.
4799         (init_base_vars): Init the call-used variable.
4800         (do_sd_constraint): Do not propagate the solution from CALLUSED
4801         but use CALLUSED as a placeholder.
4802         (solve_graph): Likewise.
4803         * tree-flow-inline.h (gimple_call_used_vars): New function.
4804         * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
4805         (compute_call_used_vars): Declare.
4806         * tree-ssa-alias.c (set_initial_properties): Call
4807         compute_call_used_vars.
4808         (reset_alias_info): Clear call-used variables.
4809         (add_call_clobber_ops): Assert we are not called for const/pure
4810         functions.  Remove handling of them.
4811         (add_call_read_ops): Handle pure functions by adding the
4812         call-used set of variables as VUSEs.
4813         * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
4814         (delete_tree_ssa): Free it.
4815         * tree-dfa.c (remove_referenced_var): Clear the var from the
4816         call-used bitmap.
4817
4818 2008-06-28  Kai Tietz  <kai.tietz@onevision.com>
4819
4820         * tree.c (build_varargs_function_type_list): New.
4821         (build_function_type_list_1): New.
4822         (build_function_type_list): Use build_function_type_list_1.
4823         * tree.h (build_varargs_function_type_list): New.
4824
4825 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4826
4827         PR target/34856
4828         * config/spu/spu.c (spu_builtin_splats): Do not generate
4829         invalid CONST_VECTOR expressions.
4830         (spu_expand_vector_init): Likewise.
4831
4832 2008-06-28  Richard Sandiford  <rdsandiford@googlemail.com>
4833
4834         * optabs.c (libfunc_decls): New variable.
4835         (libfunc_decl_hash, libfunc_decl_eq): New functions.
4836         (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
4837         for the same function twice.
4838
4839 2008-06-27  Uros Bizjak  <ubizjak@gmail.com>
4840
4841         * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
4842         ix86_expand_binary_operator directly.
4843         (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
4844         for operand 2.
4845         (*ashrti3_1): Ditto.
4846         (*lshrti3_1): Ditto.
4847         (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
4848         (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
4849         using only one splitter.  Conditionaly execute splitter before or
4850         after peephole2 pass.
4851         (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
4852         (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
4853         Use only one alternative in asm template.
4854         (x86_64_shld): Compress operand 2 constraints. Use only one alternative
4855         in asm template.
4856         (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
4857         "J" operand constraint for operand 2.
4858         (*ashldi3_cconly_rex64): Ditto.
4859         (*ashrdi3_cmp_rex64): Ditto.
4860         (*ashrdi3_cconly_rex64): Ditto.
4861         (*lshrdi3_cmp_rex64): Ditto.
4862         (*lshrdi3_cconly_rex64): Ditto.
4863         * config/i386/predicates.md (const_1_to_63_operand): New predicate.
4864         * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
4865         (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
4866         gen_x86_shrd_1.
4867
4868 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
4869
4870         * gimplify.c (omp_is_private): Don't return true if decl is not
4871         already private on #pragma omp for or #pragma omp parallel for.
4872
4873         PR debug/36617
4874         * tree-cfg.c (struct move_stmt_d): Replace block field with
4875         orig_block and new_block fields.
4876         (move_stmt_r): Only set TREE_BLOCK to p->new_block if
4877         if it used to be NULL, p->orig_block or if p->orig_block is NULL.
4878         (move_block_to_fn): Replace vars_map and new_label_map arguments
4879         with struct move_stmt_d pointer.
4880         (replace_block_vars_by_duplicates): New function.
4881         (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
4882         move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
4883         all subblocks of ORIG_BLOCK to the new function.  Call
4884         replace_block_vars_by_duplicates.
4885         * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
4886         * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
4887         BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
4888         Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
4889         (expand_omp): Temporarily set input_location to the location of
4890         region's controlling stmt.
4891         (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
4892         BIND_EXPR, push ctx->block_vars and gimplification vars into
4893         the BIND_EXPR and its block's BLOCK_VARS instead of directly
4894         into dest function.
4895         (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
4896         there are any BLOCK_VARS.
4897         (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
4898         OMP_PARALLEL or OMP_TASK stmt.
4899         (lower_omp): Save and restore input_location around the lower_omp_1
4900         call.
4901
4902 2008-06-27  Richard Guenther  <rguenther@suse.de>
4903
4904         PR tree-optimization/36400
4905         PR tree-optimization/36373
4906         PR tree-optimization/36344
4907         * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
4908         var_nonlocal, nonlocal_tree, nonlocal_id): New globals
4909         (update_alias_info): Remove call clobbering code.
4910         (make_constraint_to): New helper function.
4911         (make_escape_constraint): Likewise.
4912         (handle_rhs_call): Use it on all pointer containing arguments.
4913         Also mark the static chain escaped.
4914         (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
4915         instead of ANYTHING.
4916         (make_constraint_from): New helper split out from ...
4917         (make_constraint_from_anything): ... here.
4918         (find_func_aliases): Add constraints for escape sites.
4919         (intra_create_variable_infos): Make constraints from NONLOCAL
4920         for parameters.
4921         (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
4922         as ANYTHING.
4923         (clobber_what_p_points_to): Remove.
4924         (clobber_what_escaped): New function.
4925         (init_base_vars): Init NONLOCAL and ESCAPED.
4926         (do_sd_constraint): Do not propagate the solution from ESCAPED
4927         but use ESCAPED as a placeholder.
4928         (solve_graph): Likewise.
4929         * tree-flow.h (clobber_what_p_points_to): Remove.
4930         (clobber_what_escaped): Declare.
4931         * tree-ssa-alias.c (set_initial_properties): Call it.
4932         Remove code clobbering escaped pointers.
4933
4934 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
4935
4936         * function.c (allocate_struct_function): Only allocate a unique
4937         funcdef_no if the decl is nonzero.
4938
4939 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
4940
4941         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
4942         * config/mips/mips.c (mips_split_const_insns): New function.
4943         * config/mips/mips.md (move_type): New attribute.
4944         (mode): Move attribute definition earlier in file.  Add "TI" and "TF".
4945         (dword_mode): New attribute.
4946         (type): Avoid long line.  Map "move_type"s to "type"s,
4947         choosing "multi" for doubleword moves if appropriate.
4948         Swap MTC/MFC comments to match their declaration order.
4949         (extended_mips16): Default to "yes" if "move_type" is "sll0",
4950         "type" is "branch" or "jal" is "direct".
4951         (length): Handle "extended_mips16" first.  Make the default
4952         "0" for "ghost" instructions.  Set the length from "move_type".
4953         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
4954         of "type", with "sll0" for the register alternative.  Remove the
4955         "extended_mips16" attribute.
4956         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
4957         of "type", with "shift_shift" for the register alternative.
4958         Remove the "length" attribute.
4959         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
4960         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
4961         of "type", with "andi" for the register alternative.
4962         (*zero_extendqihi2): Likewise.
4963         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
4964         of "andi" instead of a "type" of "arith".
4965         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
4966         instead of "type".
4967         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
4968         (mov_<store>r, *mov<mode>_ra): Likewise.
4969         (extendsidi2): Use "move_type" instead of "type", with "move"
4970         for the register alternative.
4971         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
4972         of "type", with "signext" for the register alternative.
4973         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
4974         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
4975         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
4976         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
4977         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
4978         (unnamed branch insn): Likewise.
4979         (*movdi_gp32_fp64): Fold into...
4980         (*movdi_32bit): ...here.
4981         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
4982         (*movdf_hardfloat): ...this new pattern.
4983         (*movdf_softfloat): Remove redundant FPR alternatives.
4984         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
4985         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
4986         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
4987         the "move" attribute.
4988         (*movdi_32bit): Use "move_type" instead of "type" and remove the
4989         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
4990         and "store" for COP loads and stores.
4991         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
4992         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
4993         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
4994         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
4995         (*movtf_mips16, *movv2sf): Likewise.
4996         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
4997         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
4998         (mfhc1<mode>): Use "move_type" instead of "move".
4999         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
5000         (loadgp_blockage): Remove the "length" attribute.
5001         (blockage, set_got_version, update_got_version): Likewise.
5002         (call_internal): Remove the "extended_mips16" attribute.
5003         (call_value_internal, call_value_multiple_internal): Likewise.
5004         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
5005         instead of "move".
5006         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
5007         the "length" attribute.
5008
5009 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5010
5011         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
5012         -Wcast-qual warnings.
5013         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
5014         handle_pragma_pop_macro): Likewise.
5015         * collect2.c (resolve_lib_name): Likewise.
5016         * config/arc/arc.c (arc_init): Likewise.
5017         * config/arm/arm.c (neon_builtin_compare,
5018         locate_neon_builtin_icode): Likewise.
5019         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
5020         * config/bfin/bfin.c (bfin_init_machine_status,
5021         bfin_optimize_loop): Likewise.
5022         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
5023         * config/cris/cris.c (cris_init_expanders): Likewise.
5024         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
5025         * config/darwin.c (machopic_indirection_eq,
5026         machopic_indirection_name, machopic_output_indirection): Likewise.
5027         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
5028         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
5029         frv_optimize_membar): Likewise.
5030         * config/i386/cygwin.h (mingw_scan,
5031         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
5032         * config/i386/cygwin1.c (mingw_scan): Likewise.
5033         * config/i386/i386.c (machopic_output_stub): Likewise.
5034         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
5035         i386_pe_unique_section): Likewise.
5036         * config/ia64/ia64.c (ia64_init_machine_status,
5037         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
5038         Likewise.
5039         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
5040         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
5041         * config/m68k/m68k.c (m68k_handle_option,
5042         m68k_sched_md_init_global): Likewise.
5043         * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
5044         mcore_unique_section): Likewise.
5045         * config/mips/mips.c (mips_block_move_straight,
5046         mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
5047         Likewise.
5048         * config/mmix/mmix.c (mmix_init_machine_status,
5049         mmix_encode_section_info): Likewise.
5050         * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
5051         * config/rs6000/rs6000.c (rs6000_init_machine_status,
5052         print_operand_address, output_toc, redefine_groups,
5053         rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
5054         * config/s390/s390.c (s390_init_machine_status): Likewise.
5055         * config/score/score.c (score_block_move_straight,
5056         score_block_move_loop_body): Likewise.
5057         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
5058         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
5059         * emit-rtl.c (find_auto_inc): Likewise.
5060         * gcc.c (translate_options, process_command): Likewise.
5061         * reorg.c (dbr_schedule): Likewise.
5062         * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
5063         * xcoffout.c (xcoffout_declare_function): Likewise.
5064
5065 2008-06-27  Daniel Berlin  <dberlin@dberlin.org>
5066
5067         * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
5068         ipa-pta working again.
5069
5070 2008-06-27  David Edelsohn  <edelsohn@gnu.org>
5071
5072         * config/rs6000/t-aix52: Append large data option to LDFLAGS for
5073         genautomata.
5074
5075 2008-06-27  Edmar Wienskoski  <edmar@freescale.com>
5076
5077         * config.gcc (powerpc*-*-*): Add new core e500mc.
5078         * config/rs6000/e500mc.md: New file.
5079         * config/rs6000/rs6000.c (processor_costs): Add new costs for
5080         e500mc.
5081         (rs6000_override_options): Add e500mc case to
5082         processor_target_table. Altivec and Spe options not allowed
5083         with e500mc. Add isel instruction to e500mc by
5084         default. Initialize rs6000_cost for e500mc.
5085         (rs6000_issue_rate): Set issue rate for e500mc.
5086         * config/rs6000/rs6000.h (processor_type): Add
5087         PROCESSOR_PPCE500MC.
5088         (ASM_CPU_SPEC): Add e500mc.
5089         Set TARGET_ISEL to rs6000_isel.
5090         * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
5091         (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
5092         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
5093         Include e500mc.md.
5094         * doc/invoke.texi: Add e500mc to list of cpus.
5095
5096 2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
5097
5098         PR c/34867
5099         * c-lex.c (lex_charconst): Initialize unsignedp.
5100
5101 2008-06-27  Olivier Hainque  <hainque@adacore.com>
5102
5103         * gimplify.c (gimplify_modify_expr_to_memset): Assert our
5104         documented assumptions.
5105
5106 2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>
5107
5108         * dwarf2out.c: Remove trailing white spaces.  Break long line
5109         in comments.
5110
5111 2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>
5112
5113         * libfuncs.h (LTI_synchronize): New libfunc_index.
5114         (synchronize_libfunc): Declare.
5115         * builtins.c (expand_builtin_synchronize): Consider using
5116         synchronize_libfunc before falling back on an asm blockage.
5117         * config/mips/mips.c: Include libfuncs.h
5118         (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
5119
5120 2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>
5121
5122         * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
5123         parameter.  Copy stack_reg to r11 where appropriate.
5124         (no_global_regs_above): Add gpr parameter.
5125         (rs6000_stack_info): Only add padding for SPE save area if we
5126         are saving SPE GPRs and CR.
5127         (saveres_routine_syms): New variable.
5128         (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
5129         Define.
5130         (rs6000_savres_routine_sym): New function.
5131         (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
5132         split out of...
5133         (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
5134         rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
5135         Tweak FPR out-of-line saving.
5136         (rs6000_make_savres_rtx): New function.
5137         (rs6000_use_multiple_p): New function.
5138         (rs6000_savres_strategy): New function.
5139         (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
5140         out-of-line if appropriate.
5141         * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
5142         if we are optimizing for size.
5143         (GP_SAVE_INLINE): Define.
5144         (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
5145         * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
5146         * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
5147         * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
5148         (*save_fpregs_<mode>): Add use of r11.
5149         (*restore_gpregs_<mode>): New insn.
5150         (*return_and_restore_gpregs_<mode>): New insn.
5151         (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
5152         use r11.
5153         * config/rs6000/spe.md (*save_gpregs_spe): New insn.
5154         (*restore_gpregs_spe): New insn.
5155         (*return_and_restore_gpregs_spe): New insn.
5156         * config/rs6000/predicates.md (save_world_operation): Fix check.
5157
5158 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
5159
5160         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
5161         this point, so assert that.
5162
5163 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
5164
5165         * cfganal.c: Include vec.h and vecprim.h.
5166         (compute_idf): Import from...
5167         * tree-into-ssa (compute_idf): ...here.
5168         * basic-block.h (compute_idf): Export.
5169
5170 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
5171
5172         * c-decl.c (merge_decls): Use !current_function_decl to check for
5173         extern declaration of C99 inline function being at file scope.
5174
5175 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
5176
5177         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
5178
5179 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5180
5181         * alias.c (record_alias_subset, init_alias_analysis): Fix
5182         -Wc++-compat and/or -Wcast-qual warnings.
5183         * attribs.c (lookup_attribute_spec): Likewise.
5184         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
5185         copy_bb, connect_traces,
5186         find_rarely_executed_basic_blocks_and_cr): Likewise.
5187         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
5188         note_btr_set, migrate_btr_defs): Likewise.
5189         * builtins.c (result_vector, expand_builtin_memcpy,
5190         expand_builtin_mempcpy_args, expand_builtin_strncpy,
5191         builtin_memset_read_str, expand_builtin_printf,
5192         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
5193         Likewise.
5194         * caller-save.c (mark_set_regs): Likewise.
5195         * calls.c (expand_call, emit_library_call_value_1): Likewise.
5196         * cgraph.c (cgraph_edge): Likewise.
5197         * combine.c (likely_spilled_retval_1): Likewise.
5198         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
5199         htab_counts_entry_del, get_coverage_counts): Likewise.
5200         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
5201         new_cselib_val): Likewise.
5202         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
5203         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
5204         Likewise.
5205         * df-core.c (df_compact_blocks): Likewise.
5206         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
5207         * df-scan.c (df_grow_reg_info, df_ref_create,
5208         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
5209         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
5210         df_record_entry_block_defs, df_record_exit_block_uses,
5211         df_bb_verify): Likewise.
5212         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
5213         DF_REF_EXTRACT_MODE_CONST): New.
5214         * dominance.c (get_immediate_dominator, get_dominated_by,
5215         nearest_common_dominator, root_of_dom_tree,
5216         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
5217         -Wc++-compat and/or -Wcast-qual warnings.
5218         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
5219         record_store, replace_read, check_mem_read_rtx, scan_insn,
5220         dse_step1, dse_record_singleton_alias_set): Likewise.
5221         * dwarf2asm.c (dw2_force_const_mem): Likewise.
5222
5223 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5224
5225         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
5226         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
5227         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
5228         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
5229         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
5230         add_ranges_num, add_ranges_by_labels, file_info_cmp,
5231         file_name_acquire, output_file_names, add_const_value_attribute,
5232         premark_used_types_helper, file_table_eq, file_table_hash,
5233         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
5234         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
5235         -Wcast-qual warnings.
5236         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
5237         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
5238         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
5239         gen_reg_rtx, start_sequence, init_emit): Likewise.
5240         * et-forest.c (et_new_occ, et_new_tree): Likewise.
5241         * except.c (init_eh_for_function, gen_eh_region,
5242         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
5243         arh_to_landing_pad, arh_to_label, add_action_record,
5244         add_call_site, switch_to_exception_section): Likewise.
5245         * expmed.c (synth_mult): Likewise.
5246         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
5247         store_expr): Likewise.
5248         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
5249         Likewise.
5250         * function.c (assign_stack_temp_for_type,
5251         allocate_struct_function, match_asm_constraints_1): Likewise.
5252         * gcov-io.c (gcov_allocate): Likewise.
5253         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
5254         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
5255         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
5256         record_one_set, insert_expr_in_table, insert_set_in_table,
5257         dump_hash_table, compute_hash_table_work, alloc_hash_table,
5258         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
5259         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
5260         -Wcast-qual warnings.
5261
5262 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5263
5264         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
5265         -Wcast-qual warnings.
5266         * gcc.c (process_command): Likewise.
5267         * genattrtab.c (oballoc): Use XOBNEW.
5268         (oballocvec): Define.
5269         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
5270         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
5271         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
5272         -Wc++-compat and/or -Wcast-qual warnings.
5273         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
5274         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
5275         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
5276         gen_presence_absence_set, gen_automaton, gen_regexp_el,
5277         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
5278         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
5279         add_excls, process_presence_absence_names,
5280         process_presence_absence_patterns, add_presence_absence,
5281         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
5282         get_free_state, add_arc, get_free_automata_list_el,
5283         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
5284         transform_3, cache_presence, create_ainsns, create_automata,
5285         create_state_ainsn_table, dfa_insn_code_enlarge,
5286         output_trans_func, output_min_issue_delay_func,
5287         output_dead_lock_func, output_reset_func,
5288         output_get_cpu_unit_code_func, output_dfa_start_func,
5289         expand_automata): Likewise.
5290         * genextract.c (gen_insn): Likewise.
5291         * gengtype-lex.l: Likewise.
5292         * gengtype.c (read_input_list, adjust_field_type,
5293         process_gc_options): Likewise.
5294         * genoutput.c (note_constraint): Likewise.
5295         * genpreds.c (mangle, add_constraint): Likewise.
5296         * genrecog.c (process_define_predicate, new_decision,
5297         add_to_sequence): Likewise.
5298         * gensupport.c (record_insn_name): Likewise.
5299
5300 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5301
5302         * config/i386/driver-i386.c (detect_caches_amd,
5303         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
5304         and/or -Wcast-qual warnings.
5305         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
5306         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
5307         gt_pch_save): Likewise.
5308         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
5309         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
5310         * global.c (compute_regsets): Likewise.
5311         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
5312         finish_graph_dump_file): Likewise.
5313         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
5314         unlink_bb_notes): Likewise.
5315         * integrate.c (get_hard_reg_initial_val): Likewise.
5316         * ipa-prop.c (ipa_push_func_to_list): Likewise.
5317         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
5318         * local-alloc.c (update_equiv_regs): Likewise.
5319         * loop-invariant.c (check_invariant_table_size,
5320         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
5321         Likewise.
5322         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
5323         altered_reg_used, mark_altered): Likewise.
5324         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
5325         insert_var_expansion_initialization,
5326         combine_var_copies_in_loop_exit, apply_opt_in_copies,
5327         release_var_copies): Likewise.
5328         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
5329         analyze_matrix_decl, add_allocation_site, analyze_transpose,
5330         analyze_accesses_for_phi_node, check_var_notmodified_p,
5331         check_allocation_function, find_sites_in_func,
5332         record_all_accesses_in_func, transform_access_sites,
5333         transform_allocation_sites): Likewise.
5334         * omp-low.c (new_omp_region, create_omp_child_function_name,
5335         check_omp_nesting_restrictions, check_combined_parallel,
5336         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
5337         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
5338         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
5339         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
5340         Likewise.
5341         * opts-common.c (prune_options): Likewise.
5342         * opts.c (add_input_filename, print_filtered_help,
5343         get_option_state): Likewise.
5344         * params.c (add_params): Likewise.
5345         * passes.c (set_pass_for_id, next_pass_1,
5346         do_per_function_toporder, pass_fini_dump_file): Likewise.
5347         * postreload.c (reload_cse_simplify_operands): Likewise.
5348         * predict.c (tree_predicted_by_p, tree_predict_edge,
5349         clear_bb_predictions, combine_predictions_for_bb): Likewise.
5350
5351 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5352
5353         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
5354         warnings.
5355         * recog.c (check_asm_operands, validate_change_1): Likewise.
5356         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
5357         subst_asm_stack_regs): Likewise.
5358         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
5359         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
5360         * regmove.c (reg_is_remote_constant_p): Likewise.
5361         * regrename.c (regrename_optimize, scan_rtx_reg,
5362         kill_clobbered_value, kill_set_value, kill_autoinc_value):
5363         Likewise.
5364         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
5365         regstat_compute_calls_crossed): Likewise.
5366         * reload1.c (init_reload, new_insn_chain,
5367         has_nonexceptional_receiver, reload, copy_reloads,
5368         calculate_needs_all_insns, init_elim_table): Likewise.
5369         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
5370         * rtl.c (shallow_copy_rtx_stat): Likewise.
5371         * rtlanal.c (parms_set): Likewise.
5372         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
5373         sbitmap_resize, sbitmap_vector_alloc): Likewise.
5374         * sched-ebb.c (earliest_block_with_similiar_load,
5375         add_deps_for_risky_insns): Likewise.
5376         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
5377         schedule_region): Likewise.
5378         * see.c (eq_descriptor_pre_extension,
5379         hash_descriptor_pre_extension, hash_del_pre_extension,
5380         eq_descriptor_properties, hash_descriptor_properties,
5381         hash_del_properties, see_seek_pre_extension_expr,
5382         see_initialize_data_structures, see_print_register_properties,
5383         see_print_pre_extension_expr, see_delete_merged_def_extension,
5384         see_delete_unmerged_def_extension, see_emit_use_extension,
5385         see_pre_delete_extension, see_map_extension, see_commit_changes,
5386         see_analyze_merged_def_local_prop,
5387         see_analyze_merged_def_local_prop,
5388         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
5389         see_set_prop_merged_def, see_set_prop_unmerged_def,
5390         see_set_prop_unmerged_use, see_print_one_extension,
5391         see_merge_one_use_extension, see_merge_one_def_extension,
5392         see_store_reference_and_extension, see_update_uses_relevancy,
5393         see_update_defs_relevancy): Likewise.
5394         * statistics.c (hash_statistics_hash, hash_statistics_eq,
5395         hash_statistics_free, curr_statistics_hash): Likewise.
5396         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
5397         expand_asm_operands, expand_return, case_bit_test_cmp,
5398         expand_case): Likewise.
5399         * stor-layout.c (start_record_layout): Likewise.
5400         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
5401         gt_pch_save_stringpool): Likewise.
5402         * tree-data-ref.c (hash_stmt_vertex_info,
5403         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
5404         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
5405
5406 2008-06-25  Uros Bizjak  <ubizjak@gmail.com>
5407
5408         PR target/36627
5409         * config/i386/i386.md : Change constraints of HImode and QImode
5410         immediate operands from "i" to "n".  Change SImode "ni" constraint to
5411         "i" and SImode "rmi" constraint to "g".  Remove all constraints
5412         from const0_operand and const1_operand predicated operands.
5413         (i): Change QImode and HImode attribute from "i" to "n".
5414         (*subqi_2): Change HImode operands to QImode.
5415         (*subqi_3): Ditto.
5416
5417 2008-06-25  Olivier Hainque  <hainque@adacore.com>
5418
5419         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
5420         sed substitutions.
5421
5422 2008-06-25  Richard Guenther  <rguenther@suse.de>
5423
5424         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
5425         not overflow the result type.
5426
5427 2008-06-25  Richard Guenther  <rguenther@suse.de>
5428
5429         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
5430         (vn_lookup): Likewise.
5431
5432 2008-06-25  Richard Guenther  <rguenther@suse.de>
5433
5434         PR tree-optimization/35518
5435         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
5436         * tree-sra.c (instantiate_element): Use fold_build3 to build
5437         BIT_FIELD_REFs.
5438         (try_instantiate_multiple_fields): Likewise.
5439
5440 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5441
5442         * config/rs6000/rs6000.md: Change all string instruction's clobber to
5443         be early clobbers.
5444
5445 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5446
5447         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
5448         use_backchain_to_restore_sp to true
5449         if the offset of the link register save area would go over the 32k - 1
5450         offset limit of the load
5451         instructions.
5452
5453 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
5454
5455         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
5456         anchor for the type-punning blurb.  Cross-reference "Structures
5457         unions enumerations and bit-fields implementation".  Provide a
5458         cast-through-pointer example.  Make final sentence self-contained.
5459         * doc/implement-c.texi (Structures unions enumerations and
5460         bit-fields implementation): Cross-reference the type-punning blurb
5461         in the -fstrict-aliasing documentation.
5462
5463 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5464
5465         PR middle-end/36594
5466         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
5467         the memory instead of the memory itself for the save area.
5468
5469 2008-06-24  Olivier Hainque  <hainque@adacore.com>
5470             Nicolas Roche  <roche@adacore.com>
5471
5472         * gengtype.c (srcdir_len): size_t instead of int.
5473         (get_file_realbasename): New function.  For F a filename, the real
5474         basename of F, with all the path components stripped.
5475         (get_file_srcdir_relative_path): New function.  For F a filename, the
5476         relative path to F from $(srcdir).
5477         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
5478         get_file_realbasename.  Adjust the head comment.
5479         (get_prefix_langdir_index): New function. For F a filename, return the
5480         lang_dir_names[] relative index of the language directory that is
5481         a prefix in F.
5482         (get_file_langdir): For F a filename, return the name of the language
5483         directory where F is located.
5484         (get_file_gtfilename): New function. The gt- output file name for an
5485         input filename F.
5486         (get_output_file_with_visibility): Replace in-line computations with
5487         uses of get_file_gtfilename and get_prefix_langdir_index.
5488         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
5489
5490 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
5491
5492         PR tree-optimization/36504
5493         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
5494         references without base address.
5495
5496 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
5497
5498         PR middle-end/36584
5499         * calls.c (expand_call): Increase alignment for recursive functions.
5500
5501 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
5502
5503         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
5504         (TARGET_FUNCTION_VALUE): New define.
5505         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
5506         * config/avr/avr.h (FUNCTION_VALUE): Remove.
5507
5508 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
5509
5510         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
5511         (fmod<mode>3): Ditto.
5512         (remainderxf3): Ditto.
5513         (remainder<mode>3): Ditto.
5514
5515 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
5516
5517         PR target/36533
5518         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
5519         REG is a hard register.
5520
5521         PR tree-optimization/36508
5522         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
5523         499, don't check it at all in release compilers.
5524
5525 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
5526
5527         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
5528         together with SSE_TARGET_MATH to disable insn pattern.
5529         (*fop_<MODEF:mode>_2_i387): Ditto.
5530         (*fop_<MODEF:mode>_3_i387): Ditto.
5531
5532 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
5533
5534         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
5535
5536 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
5537
5538         PR middle-end/34906
5539         * gimplify.c (gimplify_asm_expr): Check the return code of
5540         parse_output_constraint call, set function return and is_inout
5541         value if it failed.
5542
5543 2008-06-22  Ian Lance Taylor  <iant@google.com>
5544
5545         * c-lex.c (narrowest_unsigned_type): Change itk to int.
5546         (narrowest_signed_type): Likewise.
5547         * c-typeck.c (c_common_type): Change local variable mclass to enum
5548         mode_class, twice.
5549         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
5550         tcc_comparison, not the tree code itself.
5551         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
5552         (c_expand_expr): Cast modifier to enum expand_modifier.
5553         * c-common.h (C_RID_CODE): Add casts.
5554         (C_SET_RID_CODE): Define.
5555         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
5556         (c_lex_one_token): Add cast to avoid warning.
5557         (c_parser_objc_type_name): Rename local typename to type_name.
5558         (check_no_duplicate_clause): Change code parameter to enum
5559         omp_clause_code.
5560         (c_parser_omp_var_list_parens): Change kind parameter to enum
5561         omp_clause_code.
5562         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
5563         c_parser_omp_list_var_parens.
5564         (c_parser_omp_threadprivate): Likewise.
5565         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
5566         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
5567         * c-format.c (NO_FMT): Define.
5568         (printf_length_specs): Use NO_FMT.
5569         (asm_fprintf_length_specs): Likewise.
5570         (gcc_diag_length_specs): Likewise.
5571         (scanf_length_specs): Likewise.
5572         (strfmon_length_specs): Likewise.
5573         (gcc_gfc_length_specs): Likewise.
5574         (printf_flag_specs): Change 0 to STD_C89.
5575         (asm_fprintf_flag_specs): Likewise.
5576         (gcc_diag_flag_specs): Likewise.
5577         (gcc_cxxdiag_flag_specs): Likewise.
5578         (scanf_flag_specs): Likewise.
5579         (strftime_flag_specs): Likewise.
5580         (strfmon_flag_specs): Likewise.
5581         (print_char_table): Likewise.
5582         (asm_fprintf_char_table): Likewise.
5583         (gcc_diag_char_table): Likewise.
5584         (gcc_tdiag_char_table): Likewise.
5585         (gcc_cdiag_char_table): Likewise.
5586         (gcc_cxxdiag_char_table): Likewise.
5587         (gcc_gfc_char_table): Likewise.
5588         (scan_char_table): Likewise.
5589         (time_char_table): Likewis.
5590         (monetary_char_table): Likewise.
5591         * c-format.h (BADLEN): Likewise.
5592
5593 2008-06-21  Ian Lance Taylor  <iant@google.com>
5594
5595         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
5596         Define END_OF_BASE_TREE_CODES around inclusion.
5597         * tree.c (tree_code_type): New global array.
5598         (tree_code_length, tree_code_name): Likewise.
5599         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
5600         $(lang_tree_files).
5601         (all-tree.def, s-alltree): New targets.
5602         (gencheck.h, s-gencheck): Remove.
5603         (tree.o): Depend upon all-tree.def.
5604         (build/gencheck.o): Remove gencheck.h dependency.
5605         (mostlyclean): Don't remove gencheck.h.
5606         * c-common.h (enum c_tree_code): Remove.
5607         * c-lang.c (tree_code_type): Remove.
5608         (tree_code_length, tree_code_name): Remove.
5609         * gencheck.c (tree_codes): Include all-tree.def, rather than
5610         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
5611         after it is used.
5612         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
5613         than tree.def.
5614         * cp/cp-tree.h (enum cplus_tree_code): Remove.
5615         (operator_name_info): Size to MAX_TREE_CODES.
5616         (assignment_operator_name_info): Likewise.
5617         * cp/cp-lang.c (tree_code_type): Remove.
5618         (tree_code_length, tree_code_name): Remove.
5619         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
5620         (assignment_operator_name_info): Likewise.
5621         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
5622         MAX_TREE_CODES.
5623         * cp/mangle.c (write_expression): Likewise.
5624         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
5625         * fortran/f95-lang.c (tree_code_type): Remove.
5626         (tree_code_length, tree_code_name): Remove.
5627         * java/java-tree.h (enum java_tree_code): Remove.
5628         * java/lang.c (tree_code_type): Remove.
5629         (tree_code_length, tree_code_name): Remove.
5630         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
5631         * objc/objc-act.h (enum objc_tree_code): Remove.
5632         * objc/objc-lang.c (tree_code_type): Remove.
5633         (tree_code_length, tree_code_name): Remove.
5634         * objcp/objcp-lang.c (tree_code_type): Remove.
5635         (tree_code_length, tree_code_name): Remove.
5636         * ada/ada-tree.h (enum gnat_tree_code): Remove.
5637         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
5638         * ada/misc.c (tree_code_type): Remove.
5639         (tree_code_length, tree_code_name): Remove.
5640
5641 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
5642
5643         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
5644         the grand_bitmap_obstack.
5645
5646 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5647
5648         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
5649         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
5650         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
5651         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
5652         move_stmt_r, new_label_mapper): Likewise.
5653         * tree-complex.c (cvc_lookup): Likewise.
5654         * tree-dfa.c (create_function_ann): Likewise.
5655         * tree-dump.c (dump_register): Likewise.
5656         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
5657         find_phi_replacement_condition): Likewise.
5658         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
5659         tree_function_versioning): Likewise.
5660         * tree-into-ssa.c (cmp_dfsnum): Likewise.
5661         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
5662         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
5663         get_nonlocal_debug_decl, convert_nonlocal_reference,
5664         convert_nonlocal_omp_clauses, get_local_debug_decl,
5665         convert_local_reference, convert_local_omp_clauses,
5666         convert_nl_goto_reference, convert_nl_goto_receiver,
5667         convert_tramp_reference, convert_call_expr): Likewise.
5668         * tree-outof-ssa.c (contains_tree_r): Likewise.
5669         * tree-parloops.c (reduction_phi, initialize_reductions,
5670         eliminate_local_variables_1, add_field_for_reduction,
5671         add_field_for_name, create_phi_for_local_result,
5672         create_call_for_reduction_1, create_loads_for_reductions,
5673         create_stores_for_reduction, create_loads_and_stores_for_name):
5674         Likewise.
5675         * tree-phinodes.c (allocate_phi_node): Likewise.
5676         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
5677         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
5678         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
5679         * tree-ssa-coalesce.c (compare_pairs): Likewise.
5680         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
5681         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
5682         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
5683         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
5684         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
5685         vn_nary_op_insert): Likewise.
5686         * tree-ssa.c (redirect_edge_var_map_add,
5687         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
5688         * tree-vectorizer.c (vectorize_loops): Likewise.
5689         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
5690         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
5691         tree_cons_stat, build1_stat, build_variant_type_copy,
5692         decl_init_priority_lookup, decl_fini_priority_lookup,
5693         decl_priority_info, decl_restrict_base_lookup,
5694         decl_restrict_base_insert, decl_debug_expr_lookup,
5695         decl_debug_expr_insert, decl_value_expr_lookup,
5696         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
5697         type_hash_add, get_file_function_name, tree_check_failed,
5698         tree_not_check_failed, tree_range_check_failed,
5699         omp_clause_range_check_failed, build_omp_clause,
5700         build_vl_exp_stat): Likewise.
5701         * value-prof.c (gimple_histogram_value,
5702         gimple_duplicate_stmt_histograms): Likewise.
5703         * var-tracking.c (attrs_list_insert, attrs_list_copy,
5704         unshare_variable, variable_union_info_cmp_pos, variable_union,
5705         dataflow_set_different_1, dataflow_set_different_2,
5706         vt_find_locations, variable_was_changed, set_variable_part,
5707         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
5708         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
5709         section_entry_hash, object_block_entry_eq,
5710         object_block_entry_hash, create_block_symbol,
5711         initialize_cold_section_name, default_function_rodata_section,
5712         strip_reg_name, set_user_assembler_name, const_desc_eq,
5713         build_constant_desc, output_constant_def, lookup_constant_def,
5714         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
5715         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
5716         default_internal_label): Likewise.
5717         * varray.c (varray_init, varray_grow): Likewise.
5718         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
5719
5720 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
5721
5722         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
5723         operators for "test" insn.  Macroize insn using SWI mode macro.
5724         (*jcc_fused_2): Ditto.
5725         (*jcc_fused_3): Macroize insn using SWI mode macro.
5726         (*jcc_fused_4): Ditto.
5727
5728 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
5729
5730         * tree-ssa-pre.c: Fix typo in comment.
5731         (init_antic, fini_antic): Add explicit funtions for
5732         initializing and deinitializing ANTIC and AVAIL sets.
5733         (create_expression_by_pieces): Fix typo in comment.
5734         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
5735         (execute_pre): Eventually dump details about ANTIC_IN.
5736
5737 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5738
5739         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
5740         * gcc.c (translate_options, init_spec, store_arg, read_specs,
5741         add_to_obstack, file_at_path, find_a_file, execute,
5742         add_preprocessor_option, add_assembler_option, add_linker_option,
5743         process_command, insert_wrapper, do_option_spec, do_self_spec,
5744         spec_path, do_spec_1, is_directory, main, used_arg,
5745         getenv_spec_function): Likewise.
5746         * tlink.c (symbol_hash_lookup, file_hash_lookup,
5747         demangled_hash_lookup, symbol_push, file_push, frob_extension):
5748         Likewise.
5749
5750 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
5751
5752         * doc/rtl.texi: Updated subreg section.
5753
5754 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
5755
5756         PR c++/36523
5757         * cgraphunit.c (cgraph_process_new_functions): Don't clear
5758         node->needed and node->reachable.
5759         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
5760         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
5761         (expand_task_call): Don't call expand_task_copyfn.
5762         (expand_task_copyfn): Renamed to...
5763         (finalize_task_copyfn): ... this.
5764
5765 2008-06-19  Jan Hubicka  <jh@suse.cz>
5766
5767         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
5768         clobbering framepointer.
5769
5770 2008-06-19  Jan Hubicka  <jh@suse.cz>
5771
5772         * tree-optimize.c (execute_early_local_optimizations): Set
5773         cgraph_state only at first invocation.
5774
5775 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5776
5777         * system.h (-Wc++-compat): Activate as a warning, no an error.
5778
5779 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
5780
5781         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
5782         instead of "#" in insn asm template.
5783         (*jcc_fused_2): Ditto.
5784
5785 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
5786
5787         * config/i386/i386.h (ix86_tune_indices)
5788         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
5789         (TARGET_FUSE_CMP_AND_BRANCH): New define.
5790         * config/i386/i386.md (*jcc_fused_1): New insn pattern
5791         (*jcc_fused_2): Ditto.
5792         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
5793         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
5794         (print operand): Handle 'E' and 'e' code.
5795
5796 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
5797
5798         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
5799         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
5800         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
5801
5802 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
5803
5804         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
5805         node->decl.
5806         (cgraph_expand_function): Use local copy of decl.
5807         (cgraph_expand_all_functions): Remove redundant initialization of
5808         order_pos.
5809         (cgraph_optimize): Reword internal_error message.
5810
5811 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
5812
5813         * arm-protos.h (arm_return_in_memory): Remove public
5814         arm_return_in_memory() prototype.
5815         * arm.c (arm_return_in_memory): Add static prototype, add target
5816         hook macro, change definition and comments.
5817         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
5818
5819 2008-06-19  Ben Elliston  <bje@au.ibm.com>
5820
5821         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
5822         real.c: Remove references to IEEE 754R.
5823         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
5824         * doc/libgcc.texi (Decimal float library routines): Likewise.
5825
5826 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5827
5828         * targhooks.h (struct gcc_target): New member unwind_word_mode.
5829         (default_unwind_word_mode): Add prototype.
5830         * targhooks.c (default_unwind_word_mode): New function.
5831         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
5832         instead of word_mode.
5833         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
5834         (TARGET_INITIALIZER): Use it.
5835
5836         * c-common.c (handle_mode_attribute): Support "unwind_word"
5837         mode attribute.
5838         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
5839
5840         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
5841         word_mode to access SjLj_Function_Context member "data".
5842         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
5843         conversion from targetm.eh_return_filter_mode () to
5844         targetm.unwind_word_mode () if they differ.
5845
5846         * builtin-types.def (BT_UNWINDWORD): New primitive type.
5847         (BT_FN_UNWINDWORD_PTR): New function type.
5848         (BT_FN_WORD_PTR): Remove.
5849         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
5850         * except.c (expand_builtin_extend_pointer): Convert pointer to
5851         targetm.unwind_word_mode () instead of word_mode.
5852
5853         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
5854         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
5855         (spu_unwind_word_mode): New function.
5856         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
5857         (TARGET_UNWIND_WORD_MODE): Define.
5858         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
5859
5860 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5861
5862         * config/spu/spu.c (reg_align): Remove.
5863         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
5864         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
5865         (spu_split_store): Likewise.
5866
5867 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
5868
5869         * gcc/tree-vn.c: Fix typo in comment.
5870
5871 2008-06-18  Jan Hubicka  <jh@suse.cz>
5872
5873         * cgraphunit.c (cgraph_optimize): Output debug info when doing
5874         toplevel reorder too.
5875
5876 2008-06-18  Jan Hubicka  <jh@suse.cz>
5877
5878         * c-opts.c (c_common_post_options): PCH is not compatible with
5879         no-unit-at-a-time.
5880         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
5881         -fno-toplevel-reorder by default now.
5882
5883 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5884
5885         PR documentation/30739
5886         * doc/install.texi (Prerequisites): Document dependency on awk.
5887
5888 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
5889             Ian Lance Taylor  <iant@google.com>
5890
5891         PR rtl-optimization/35604
5892         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
5893         only want to change jump destinations, not eventual label comparisons.
5894
5895 2008-06-16  Jan Hubicka  <jh@suse.cz>
5896
5897         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
5898         syntax errors.
5899         (cgraph_analyze_function): Likewise.
5900
5901 2008-06-16  Jan Hubicka  <jh@suse.cz>
5902
5903         * cgraph.h (cgraph_mark_if_needed): New function.
5904         * cgraphunit.c (cgraph_mark_if_needed): New function.
5905         * c-decl.c (duplicate_decl): Use it.
5906
5907 2008-06-16  Jan Hubicka  <jh@suse.cz>
5908
5909         * cgraph.c (cgraph_add_new_function): When in expansion state, do
5910         lowering.
5911
5912 2008-06-16  Jan Hubicka  <jh@suse.cz>
5913
5914         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
5915
5916 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
5917             Kazu Hirata  <kazu@codesourcery.com>
5918             Maxim Kuvyrkov  <maxim@codesourcery.com
5919
5920         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
5921         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
5922         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
5923         EXTRA_SPEC_FUNCTIONS.
5924         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
5925         (DRIVER_SELF_SPECS): Adjust.
5926         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
5927         * config/mips/st.h, config/mips/t-st: New.
5928         * config/mips/driver-native.c, config/mips/x-native: New.
5929         * doc/invoke.texi (MIPS): Document 'native' value for -march and
5930         -mtune options.
5931
5932 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
5933
5934         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
5935         from it.
5936         (ISA_HAS_FP_CONDMOVE): New macro.
5937         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
5938         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
5939         (ISA_HAS_NMADD3_NMSUB3): New macro.
5940         * config/mips/mips.c (mips_rtx_costs): Update.
5941         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
5942         compiling for ST Loongson 2E/2F.
5943         (madd<mode>): Rename to madd4<mode>.  Update.
5944         (madd3<mode>): New pattern.
5945         (msub<mode>): Rename to msub4<mode>.  Update.
5946         (msub3<mode>): New pattern.
5947         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
5948         (nmadd3<mode>): New pattern.
5949         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
5950         (nmadd3<mode>_fastmath): New pattern.
5951         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
5952         (nmsub3<mode>): New pattern.
5953         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
5954         (nmsub3<mode>_fastmath): New pattern.
5955         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
5956
5957 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
5958
5959         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
5960         (DF_REF_INSN_INFO): New.
5961         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
5962         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
5963         with a NULL DF_REF_INSN_INFO.
5964         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
5965         DF_INSN_SET.
5966         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
5967         DF_INSN_INFO_EQ_USES): New.
5968         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
5969         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
5970         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
5971         * df-core.c: Update comment for above changes.
5972         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
5973         DF_INSN_UID_* macros.
5974         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
5975         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
5976         insn rtx.  Update all callers.
5977         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
5978         df_ref_create_structure, df_insn_refs_collect): Likewise.
5979         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
5980         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
5981         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
5982         macros to access the insn refs.
5983         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
5984         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
5985         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
5986         for accessing the refs.
5987         (try_fwprop_subst): Likewise.
5988         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
5989         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
5990         for accessing the refs.
5991         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
5992         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
5993         to look at the insn refs.
5994         (record_uses): Likewise.
5995         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
5996         function anymore.
5997         (mark_artificial_uses): Don't mark_insn for artificial refs.
5998         (mark_reg_rependencies): Likewise.
5999
6000         * doc/rtl.texi: Remove documentation of ADDRESSOF.
6001
6002 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6003
6004         * configure: Regenerate.
6005
6006 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
6007
6008         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
6009         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
6010         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
6011
6012 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
6013
6014         * config/avr/avr.c (avr_mcu_t): Add attiny167.
6015         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
6016         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
6017
6018 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
6019
6020         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
6021         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
6022         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
6023
6024 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
6025
6026         * tree-ssa-sccvn.c: Fix format of comments.
6027
6028 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
6029
6030         * cgraph.c: Remove unneeded forward declarations of eq_node()
6031         and hash_node().
6032
6033 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
6034
6035         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
6036         REG_RETVAL notes.
6037         (see_update_relevancy): Likewise.
6038         * fwprop.c (try_fwprop_subst): Likewise.
6039         * rtlanal.c (noop_move_p): Likewise.
6040         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
6041         notes to non-existing libcall blocks.
6042         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
6043         Remove orig_set.
6044         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
6045         (dead_libcall_p): Remove.
6046         (delete_trivially_dead_insns): Don't use it.
6047         * web.c (union_defs): Remove comment about keeping nops.
6048         * gcse.c (hash_scan_insn): Don't take libcall pointers.
6049         (compute_hash_table_work): Don't track libcall notes.
6050         (do_local_cprop): Don't take libcall pointers.  Don't update
6051         libcall notes.
6052         (adjust_libcall_notes): Deleted.
6053         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
6054         ever have existed in the first place).
6055         (replace_store_insn): Don't try to remove libcall notes.
6056         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
6057         (resolve_reg_notes): Don't call them.
6058         (resolve_simple_move): Likewise.
6059         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
6060         Don't remove REG_RETVAL notes.
6061         * emit-rtl.c (try_split): Don't update libcall notes.
6062         (emit_copy_of_insn_after): Dito.
6063         * cselib.c (cselib_current_insn_in_libcall): Remove.
6064         (cselib_process_insn): Don't set/clear it.
6065         (new_elt_loc_list): Don't record it.
6066         (cselib_init): Don't initialize it.
6067         * cselib.c (struct elt_loc_list): Remove in_libcall field.
6068         * loop-invariant.c (find_invariant_insn): Don't look for libcall
6069         notes.
6070         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
6071         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
6072         (init_deps): Don't initialize it.
6073         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
6074         * combine.c (delete_noop_moves): Don't update libcall notes.
6075         (can_combine_p): Remove now pointless #if 0 block.
6076         (try_combine): Remove another obsolete #if 0 block.
6077         (distribute_notes): Don't distribute libcall notes.
6078         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
6079         * dce.c (libcall_dead_p): Remove.
6080         (delete_unmarked_insns): Don't handle libcall blocks.
6081         (preserve_libcall_for_dce): Remove.
6082         (prescan_insns_for_dce): Don't special-case libcall block insns.
6083         * reload1 (reload): Don't handle libcall notes.
6084         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
6085         documentation.
6086
6087 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
6088
6089         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
6090         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
6091         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
6092
6093 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
6094
6095         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
6096         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
6097         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
6098
6099 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6100
6101         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
6102
6103 2008-06-16  Ira Rosen  <irar@il.ibm.com>
6104
6105         PR tree-optimization/36493
6106         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
6107         the arguments list. Use VECTYPE to create vector pointer.
6108         (vectorizable_store): Fail if accesses through a pointer to vectype
6109         do not alias the original memory reference operands.
6110         Call vect_create_data_ref_ptr without the removed argument.
6111         (vectorizable_load): Likewise.
6112         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
6113         removed argument.
6114
6115 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
6116
6117         PR target/36336
6118         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
6119         reg_equiv_constant.
6120
6121 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
6122
6123         * config/mips/loongson2ef.md: New file.
6124         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
6125         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
6126         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
6127         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
6128         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
6129         and loongson_2f.
6130         (loongson2ef.md): New include.
6131         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
6132         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
6133         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
6134         (loongson_gt_<mode>, loongson_extract_halfword)
6135         (loongson_insert_halfword_0, loongson_insert_halfword_2)
6136         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
6137         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
6138         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
6139         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
6140         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
6141         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
6142         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
6143         (vec_interleave_low<mode>): Define type attribute.
6144         * config/mips/mips.c (mips_ls2): New static variable.
6145         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
6146         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
6147         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
6148         Implement target scheduling hooks.
6149         (mips_multipass_dfa_lookahead): Update to handle tuning for
6150         Loongson 2E/2F.
6151         (mips_sched_init): Initialize data for Loongson scheduling.
6152         (mips_ls2_variable_issue): New static function.
6153         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
6154         Add sanity check.
6155         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
6156         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
6157         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
6158         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
6159         Handle ST Loongson 2E/2F cores.
6160         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
6161
6162 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6163
6164         * omp-low.c (extract_omp_for_data): Fix comment typo.
6165         * c.opt: Fix typo.
6166
6167 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6168
6169         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
6170         FIXME note about gcc/config.guess.
6171         * doc/options.texi (Option file format): Remove non-ASCII bytes.
6172         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
6173         * doc/cppopts.texi: Likewise.
6174         * doc/extend.texi: Likewise.
6175         * doc/gcc.texi: Likewise.
6176         * doc/gccint.texi: Likewise.
6177         * doc/gcov.texi: Likewise.
6178         * doc/gty.texi: Likewise.
6179         * doc/hostconfig.texi: Likewise.
6180         * doc/install.texi: Likewise.
6181         * doc/invoke.texi: Likewise.
6182         * doc/loop.texi: Likewise.
6183         * doc/makefile.texi: Likewise.
6184         * doc/md.texi: Likewise.
6185         * doc/passes.texi: Likewise.
6186         * doc/tm.texi: Likewise.
6187         * doc/tree-ssa.texi: Likewise.
6188         * doc/trouble.texi: Likewise.
6189
6190 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
6191             Nathan Sidwell  <nathan@codesourcery.com>
6192             Maxim Kuvyrkov  <maxim@codesourcery.com>
6193             Richard Sandiford  <rdsandiford@googlemail.com>
6194
6195         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
6196         * config/mips/mips-protos.h (mips_expand_vector_init): New.
6197         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
6198         builtins.
6199         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
6200         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
6201         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
6202         V8QImode cases.
6203         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
6204         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
6205         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
6206         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
6207         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
6208         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
6209         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
6210         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
6211         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
6212         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
6213         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
6214         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
6215         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
6216         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
6217         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
6218         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
6219         (mips_builtins): Add Loongson builtins.
6220         (mips_loongson_2ef_bdesc): New.
6221         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
6222         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
6223         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
6224         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
6225         New.
6226         (mips_expand_vector_init): New.
6227         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
6228         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
6229         if appropriate.
6230         * config/mips/mips.md: Add unspec numbers for Loongson
6231         builtins.  Include loongson.md.
6232         (MOVE64): Include Loongson vector modes.
6233         (SPLITF): Include Loongson vector modes.
6234         (HALFMODE): Handle Loongson vector modes.
6235         * config/mips/loongson.md: New.
6236         * config/mips/loongson.h: New.
6237         * config.gcc: Add loongson.h header for mips*-*-* targets.
6238         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
6239
6240 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
6241
6242         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
6243         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
6244         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
6245         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
6246         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
6247         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
6248         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
6249         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
6250         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
6251         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
6252         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
6253         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
6254         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
6255         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
6256         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
6257         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
6258         Remove use_fixproto=yes.
6259         (ia64*-*-hpux*): Remove comment about using fixproto.
6260         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
6261
6262 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6263
6264         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
6265         library rebuilds.
6266         * configure: Regenerate.
6267
6268 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
6269
6270         PR middle-end/36520
6271         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
6272         before evaluating it.
6273
6274 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
6275
6276         PR c/36507
6277         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
6278         nested inline functions.
6279         (start_decl, start_function): Don't invert DECL_EXTERNAL
6280         for nested inline functions.
6281
6282 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
6283
6284         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
6285         splits that must be made for correctness.
6286
6287 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
6288
6289         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
6290         (AVAIL_NON_MIPS16): Likewise.
6291         (mips_builtin_description): Replace target_flags with a predicate.
6292         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
6293         (dspr2_32): New availability predicates.
6294         (MIPS_BUILTIN): New macro.
6295         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
6296         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
6297         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
6298         Replace the TARGET_FLAGS parameters with AVAIL parameters.
6299         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
6300         (mips_dsp_32only_bdesc): Merge into...
6301         (mips_builtins): ...this new array.
6302         (mips_bdesc_map, mips_bdesc_arrays): Delete.
6303         (mips_init_builtins): Update after above changes.
6304         (mips_expand_builtin_1): Merge into...
6305         (mips_expand_builtin): ...here and update after above changes.
6306
6307 2008-06-12  Paul Brook  <paul@codesourcery.com>
6308
6309         * longlong.h (__arm__): Define count_leading_zeros.
6310         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
6311         (clzsi2, clzdi2): New functions.
6312         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
6313         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
6314         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
6315         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
6316         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
6317         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
6318         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
6319         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
6320         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
6321         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
6322
6323 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
6324
6325         * config/m68k/m68k.c (m68k_tune_flags): New.
6326         (override_options): Compute m68k_tune_flags.
6327         (MULL_COST, MULW_COST): Update for various variants of CFV2.
6328         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
6329
6330 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
6331
6332         PR middle-end/36506
6333         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
6334
6335 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
6336
6337         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
6338         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
6339
6340 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
6341
6342         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
6343         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
6344
6345 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
6346
6347         PR middle-end/36506
6348         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
6349         reductions.
6350
6351 2008-06-12  Richard Guenther  <rguenther@suse.de>
6352
6353         PR tree-optimization/36345
6354         * tree-flow.h (struct ptr_info_def): Align escape_mask,
6355         add memory_tag_needed flag.
6356         (may_alias_p): Declare.
6357         * tree-ssa-alias.c (may_alias_p): Export.
6358         (set_initial_properties): Use memory_tag_needed flag.
6359         (update_reference_counts): Likewise.
6360         (reset_alias_info): Reset memory_tag_needed flag.
6361         (create_name_tags): Check memory_tag_needed flag.
6362         (dump_points_to_info_for): Dump it.
6363         * tree-ssa-structalias.c (struct variable_info): Remove
6364         directly_dereferenced flag.
6365         (new_var_info): Do not initialize it.
6366         (process_constraint_1): Do not set it.
6367         (update_alias_info): Set is_dereferenced flag.
6368         (set_uids_in_ptset): Use may_alias_p.
6369         (set_used_smts): Check memory_tag_needed flag.
6370         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
6371         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
6372         memory_tag_needed flag.
6373         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
6374         from broken design.
6375
6376 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
6377
6378         * config/i386/i386.c (ix86_compute_frame_layout): Disable
6379         red zone for w64 abi.
6380         (ix86_expand_prologue): Likewise.
6381         (ix86_force_to_memory): Likewise.
6382         (ix86_free_from_memory): Likewise.
6383
6384 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
6385
6386         PR target/36425
6387         * config/rs6000/rs6000.c (rs6000_override_options): Set
6388         rs6000_isel conditionally to the absence of comand line override.
6389         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
6390         Remove duplicate rs6000_isel setting.
6391         * config/rs6000/eabispe.h: Ditto.
6392
6393 2008-06-11  Richard Guenther  <rguenther@suse.de>
6394
6395         * alias.c (get_alias_set): Use the element alias-set for arrays.
6396         (record_component_aliases): For arrays and vectors do nothing.
6397         * c-common.c (strict_aliasing_warning): Handle the cases
6398         of alias set zero explicitly.
6399         * Makefile.in (dfp.o-warn): Add -Wno-error.
6400
6401 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
6402
6403         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
6404         tune_32 tune_64.
6405         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
6406         tune_32 tune_64 to supported_defaults.  Allow values not
6407         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
6408         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
6409         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
6410         with_cpu_64 to generic for 64-bit-supporting configurations, not
6411         with_cpu.  Remove FIXMEs.
6412         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
6413         --with-arch-64, --with-tune-32, --with-tune-64): Document.
6414         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
6415         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
6416         arch_32 and arch_64.
6417
6418 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
6419             Olivier Hainque  <hainque@adacore.com>
6420
6421         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
6422         Use DECL_SIZE_UNIT to retrieve the size of the field.
6423
6424 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
6425
6426         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
6427         with function calls after declarations.  Lay out
6428         neon_float_type_node before further use.
6429
6430 2008-06-11  Richard Guenther  <rguenther@suse.de>
6431
6432         * tree-flow.h (may_point_to_global_var): Declare.
6433         * tree-ssa-alias.c (may_point_to_global_var): New function.
6434         * tree-ssa-sink.c (is_hidden_global_store): Use it.
6435
6436 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
6437
6438         * configure.ac: Teach that fido supports .debug_line.
6439         * configure: Regenerate.
6440
6441 2008-06-10  Tom Tromey  <tromey@redhat.com>
6442
6443         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
6444         debug hook.
6445
6446 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
6447
6448         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
6449         (encode_decimal64, decode_decimal64, encode_decimal128,
6450         decode_decimal128): Reverse order of 32-bit parts of value if host
6451         and target endianness differ.
6452
6453 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
6454
6455         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
6456         Avoid division by 0.
6457         (tree_mod_pow2_value_transform): Likewise.
6458         (tree_ic_transform): Likewise.
6459         (tree_stringops_transform): Likewise.
6460         (tree_mod_subtract_transform): Likewise.
6461         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
6462         (copy_edges_for_bb): Likewise.
6463         (initialize_cfun): Likewise.
6464
6465 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
6466
6467         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
6468         nonmemory_operand. Add "N" operand constraint.
6469         (*btsi): Ditto.
6470         (*jcc_btdi_mask_rex64): New instruction and split pattern.
6471         (*jcc_btsi_mask): Ditto.
6472         (*jcc_btsi_mask_1): Ditto.
6473
6474 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
6475
6476         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
6477         TYPE_CANONICAL for copied element type.
6478
6479 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
6480
6481         PR target/36473
6482         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
6483         Add m_CORE2 and m_GENERIC.
6484         * config/i386/predicates.md (bt_comparison_operator): New predicate.
6485         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
6486         (*btsi): Ditto.
6487         (*jcc_btdi_rex64): New instruction and split pattern.
6488         (*jcc_btsi): Ditto.
6489         (*jcc_btsi_1): Ditto.
6490         (*btsq): Fix Intel asm dialect operand order.
6491         (*btrq): Ditto.
6492         (*btcq): Ditto.
6493
6494 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
6495
6496         PR middle-end/36447
6497         * simplify-rtx.c (simplify_subreg): Add check for shift count
6498         greater than size.
6499
6500 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
6501
6502         * doc/md.texi: Synchronize with later constraints.md change.
6503         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
6504         with a C implementation.
6505         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
6506         MFLO handling.
6507         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
6508         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
6509         when moving to and from MD_REGNUM.
6510         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
6511         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
6512         Handle byte and halfword moves.
6513         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
6514         separately.
6515         * config/mips/constraints.md (h): Turn into NO_REGS.
6516         (l, x): Update documentation.
6517         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
6518         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
6519         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
6520         (HILO): New mode iterator.
6521         (MOVE128): Add TI.
6522         (any_div): New code iterator.
6523         (u): Extend code attribute to div and udiv.
6524         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
6525         d_operand in the splitters.  Remove redundant CONST_INT checks.
6526         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
6527         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
6528         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
6529         accordingly, using normal moves instead of unspecs to move LO into
6530         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
6531         (<u>mulsidi3): Handle expansion in C code.
6532         (<u>mulsidi3_32bit_internal): Rename to...
6533         (<u>mulsidi3_32bit): ...this.
6534         (<u>mulsidi3_32bit_r4000): Fix insn separator.
6535         (*<u>mulsidi3_64bit): Rename to...
6536         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
6537         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
6538         to set LO and HI to the multiplication result.  Use a normal move
6539         for MFLO and an unspec for MFHI.
6540         (*<u>mulsidi3_64bit_parts): Replace with...
6541         (<u>mulsidi3_64bit_hilo): ...this new instruction.
6542         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
6543         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
6544         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
6545         instead of HI.  Split the instruction into a separate multiplication
6546         and MFHI if !TARGET_FIX_R4000.
6547         (<su>muldi3_highpart): Likewise.
6548         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
6549         and the "=h" clobber.
6550         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
6551         (<u>mulditi3): New expander.
6552         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
6553         (madsi): Remove "=h" clobber.
6554         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
6555         Force the modulus result to be a GPR and split the instruction into
6556         a division followed by an MFHI after reload.
6557         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
6558         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
6559         the MIPS16 HIGH define_split.
6560         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
6561         of acc<->gpr moves to "multi".
6562         (*movdi_64bit): Replace the single "x" alternative with
6563         alternatives for moving into and out of "a".
6564         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
6565         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
6566         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
6567         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
6568         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
6569         (movti): New expander.
6570         (*movti, *movti_mips16): New insns.
6571         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
6572         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
6573         (mthi<GPR:mode>_<HILO:mode>): Likewise.
6574         * config/mips/predicates.md (fpr_operand): Delete.
6575         (d_operand): New predicate.
6576
6577 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
6578
6579         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
6580         failure on some Bourne shells.
6581         (x86_64-*-*): Ditto.
6582
6583 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
6584
6585         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
6586
6587 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
6588
6589         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
6590         (sparc-sun-solaris2*): Likewise.
6591
6592 2008-06-09  Arnaud Charlet  <charlet@adacore.com
6593
6594         * doc/install.texi: Update requirements to build the Ada compiler.
6595
6596 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
6597
6598         * df-scan.c (struct df_scan_problem_data): Remove the
6599         mw_link_pool alloc pool.
6600         (df_scan_free_internal): Don't free it.
6601         (df_scan_alloc): Don't allocate it.
6602         * df.h (struct df_link): Update comment.
6603
6604 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
6605
6606         * except.h: Correct checks for when SJLJ exceptions must be used.
6607
6608 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6609
6610         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
6611         default.
6612
6613 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
6614
6615         PR tree-optimization/36218
6616         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
6617         configure for the build system.
6618         (BUILD_LDFLAGS): Define.
6619         * configure: Regenerate.
6620         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
6621
6622 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
6623
6624         PR target/36424
6625         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
6626         * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
6627         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
6628
6629 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
6630
6631         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
6632
6633 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
6634
6635         * config.gcc (Obsolete configurations): Remove list of
6636         configurations.
6637         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
6638         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
6639         targets matched by those patterns.
6640         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
6641         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
6642         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
6643         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
6644         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
6645         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
6646         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
6647         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
6648         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
6649         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
6650         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
6651         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
6652         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
6653         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
6654         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
6655         Make code for Solaris 7 and greater unconditional for Solaris.
6656         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
6657         Remove --with-* handling.
6658         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
6659         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
6660         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
6661         LINK_OS_WINDISS_SPEC): Remove.
6662         * config/rs6000/sysv4.opt (mwindiss): Remove.
6663         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
6664         * configure: Regenerate.
6665         * doc/cpp.texi: Don't mention BeOS.
6666         * doc/extend.texi (interrupt): Don't mention MS1.
6667         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
6668         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
6669         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
6670         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
6671         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
6672         Remove.
6673         * doc/invoke.texi (MT Options): Remove.
6674         (-mwindiss): Remove.
6675         (CRIS Options): Remove cris-axis-aout references.
6676         (HPPA Options): Don't mention hppa1.1-*-pro.
6677         * doc/md.texi: (MorphoTech family): Remove.
6678         * libgcc2.c: Don't handle UWIN.
6679         * config/alpha/t-unicosmk: Remove.
6680         * config/alpha/unicosmk.h: Remove.
6681         * config/arm/kaos-arm.h: Remove.
6682         * config/arm/kaos-strongarm.h: Remove.
6683         * config/arm/strongarm-coff.h: Remove.
6684         * config/arm/strongarm-elf.h: Remove.
6685         * config/arm/strongarm-pe.h: Remove.
6686         * config/arm/t-strongarm-pe: Remove.
6687         * config/arm/t-xscale-coff: Remove.
6688         * config/arm/t-xscale-elf: Remove.
6689         * config/arm/xscale-coff.h: Remove.
6690         * config/arm/xscale-elf.h: Remove.
6691         * config/chorus.h: Remove.
6692         * config/cris/aout.h: Remove.
6693         * config/cris/aout.opt: Remove.
6694         * config/cris/t-aout: Remove.
6695         * config/i386/beos-elf.h: Remove.
6696         * config/i386/kaos-i386.h: Remove.
6697         * config/i386/ptx4-i.h: Remove.
6698         * config/i386/sco5.h: Remove.
6699         * config/i386/sco5.opt: Remove.
6700         * config/i386/sysv4-cpp.h: Remove.
6701         * config/i386/sysv5.h: Remove.
6702         * config/i386/t-beos: Remove.
6703         * config/i386/t-sco5: Remove.
6704         * config/i386/t-uwin: Remove.
6705         * config/i386/uwin.asm: Remove.
6706         * config/i386/uwin.h: Remove.
6707         * config/kaos.h: Remove.
6708         * config/mips/windiss.h: Remove.
6709         * config/mt: Remove directory.
6710         * config/pa/pa-osf.h: Remove.
6711         * config/pa/pa-pro-end.h: Remove.
6712         * config/pa/t-pro: Remove.
6713         * config/ptx4.h: Remove.
6714         * config/rs6000/beos.h: Remove.
6715         * config/rs6000/kaos-ppc.h: Remove.
6716         * config/rs6000/t-beos: Remove.
6717         * config/rs6000/windiss.h: Remove.
6718         * config/sh/kaos-sh.h: Remove.
6719         * config/sol2-6.h: Remove.
6720         * config/sparc/sol26-sld.h: Remove.
6721         * config/sparc/sysv4-only.h: Remove.
6722         * config/vax/bsd.h: Remove.
6723         * config/vax/t-memfuncs: Remove.
6724         * config/vax/ultrix.h: Remove.
6725         * config/vax/vaxv.h: Remove.
6726         * config/windiss.h: Remove.
6727
6728 2008-06-06  Uros Bizjak <ubizjak@gmail.com>
6729
6730         PR rtl-optimization/36438
6731         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
6732         for vector shifts with constant scalar shift operands.
6733
6734 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
6735
6736         * doc/invoke.texi: Document -march=xlr.
6737         * config/mips/xlr.md: New file.
6738         * config/mips/mips.md: Include it.
6739         (cpu): Add "xlr".
6740         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
6741         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
6742         (mips_rtx_cost_data): Likewise.
6743
6744 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
6745
6746         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
6747         PRE_INC and PRE_DEC cases.
6748
6749 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
6750
6751         PR rtl-optimization/36419
6752         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
6753         the emitting jump insn.
6754
6755         PR target/36362
6756         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
6757         is not bool, boolify the whole *expr_p and convert to the desired type.
6758
6759 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
6760
6761         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
6762         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
6763         Add omp_private_outer_ref hook, add another argument to
6764         omp_clause_default_ctor hook.
6765         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
6766         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
6767         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
6768         hook_tree_tree_tree_tree_null.
6769         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
6770         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
6771         * hooks.c (hook_tree_tree_tree_tree_null): New function.
6772         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
6773         * tree.def (OMP_TASK): New tree code.
6774         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
6775         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
6776         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
6777         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
6778         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
6779         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
6780         OMP_CLAUSE_COLLAPSE_EXPR): Define.
6781         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
6782         (OMP_DIRECTIVE_P): Add OMP_TASK.
6783         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
6784         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
6785         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
6786         and OMP_CLAUSE_UNTIED entries.
6787         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
6788         num_ops to 2.
6789         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
6790         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
6791         * tree-pretty-print.c (dump_omp_clause): Handle
6792         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
6793         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
6794         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
6795         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
6796         warning about unsigned iterators.  Change decl/init/cond/incr
6797         arguments to TREE_VECs, check arguments for all collapsed loops.
6798         (c_finish_omp_taskwait): New function.
6799         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
6800         ws_clauses.
6801         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
6802         default_function_array_conversion on init.  Add par_clauses argument.
6803         If decl is present in parallel's lastprivate clause, change it to
6804         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
6805         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
6806         collapse count in clauses.
6807         (c_parser_omp_for, c_parser_omp_parallel): Adjust
6808         c_parser_omp_for_loop callers.
6809         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
6810         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
6811         (c_parser_omp_clause_name): Handle collapse and untied clauses.
6812         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
6813         functions.
6814         (c_parser_omp_clause_schedule): Handle schedule(auto).
6815         Include correct location in the error message.
6816         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
6817         and PRAGMA_OMP_CLAUSE_UNTIED.
6818         (OMP_TASK_CLAUSE_MASK): Define.
6819         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
6820         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
6821         * tree-nested.c (convert_nonlocal_omp_clauses,
6822         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
6823         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
6824         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
6825         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
6826         OMP_CLAUSE_DECL.
6827         (conver_nonlocal_reference, convert_local_reference,
6828         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
6829         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
6830         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
6831         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
6832         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
6833         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
6834         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
6835         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
6836         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
6837         OMP_CLAUSE_UNTIED.
6838         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
6839         * c-common.h (c_finish_omp_taskwait): New prototype.
6840         * gimple-low.c (lower_stmt): Handle OMP_TASK.
6841         * tree-parloops.c (create_parallel_loop): Create 1 entry
6842         vectors for OMP_FOR_{INIT,COND,INCR}.
6843         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
6844         (make_edges): Handle OMP_TASK.
6845         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
6846         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
6847         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
6848         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
6849         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
6850         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
6851         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
6852         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
6853         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
6854         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
6855         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
6856         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
6857         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
6858         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
6859         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
6860         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
6861         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
6862         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
6863         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
6864         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
6865         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
6866         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
6867         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
6868         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
6869         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
6870         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
6871         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
6872         original iterator is present in lastprivate clause or if
6873         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
6874         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
6875         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
6876         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
6877         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
6878         if it is set, lookup var in outer contexts too.  Handle
6879         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
6880         to be implicitly determined firstprivate for task regions.
6881         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
6882         if it is set, lookup var in outer contexts too.  Set
6883         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
6884         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
6885         OMP_CLAUSE_UNTIED.  Take region_type as last argument
6886         instead of in_parallel and in_combined_parallel.
6887         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
6888         Adjust callers.
6889         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
6890         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
6891         (new_omp_context): Set default_kind to
6892         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
6893         (omp_region_type): New enum.
6894         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
6895         fields, add region_type.
6896         (new_omp_context): Take region_type as argument instead of is_parallel
6897         and is_combined_parallel.
6898         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
6899         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
6900         ctx->is_combined_parallel checks.
6901         (gimplify_omp_task): New function.
6902         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
6903         OMP_CLAUSE_UNTIED.
6904         * omp-low.c (extract_omp_for_data): Use schedule(static)
6905         for schedule(auto).  Handle pointer and unsigned iterators.
6906         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
6907         Add loops argument.  Extract data for collapsed OMP_FOR loops.
6908         (expand_parallel_call): Assert sched_kind isn't auto,
6909         map runtime schedule to index 3.
6910         (struct omp_for_data_loop): New type.
6911         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
6912         Add loop, loops, collapse and iter_type fields.
6913         (workshare_safe_to_combine_p): Disallow combined for if
6914         iter_type is unsigned long long.  Don't combine collapse > 1 loops
6915         unless all bounds and steps are constant.  Adjust extract_omp_for_data
6916         caller.
6917         (expand_omp_for_generic): Handle pointer, unsigned and long long
6918         iterators.  Handle collapsed OMP_FOR loops.  Adjust
6919         for struct omp_for_data changes.  If libgomp function doesn't return
6920         boolean_type_node, add comparison of the return value with 0.
6921         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
6922         pointer, unsigned and long long iterators.  Adjust for struct
6923         omp_for_data changes.
6924         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
6925         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
6926         unsigned long long.  Allocate loops array, pass it to
6927         extract_omp_for_data.  For collapse > 1 loops use always
6928         expand_omp_for_generic.
6929         (omp_context): Add sfield_map and srecord_type fields.
6930         (is_task_ctx, lookup_sfield): New functions.
6931         (use_pointer_for_field): Use is_task_ctx helper.  Change first
6932         argument's type from const_tree to tree.  Clarify comment.
6933         In OMP_TASK disallow copy-in/out sharing.
6934         (build_sender_ref): Call lookup_sfield instead of lookup_field.
6935         (install_var_field): Add mask argument.  Populate both record_type
6936         and srecord_type if needed.
6937         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
6938         in srecord_type.
6939         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
6940         and DECL_FIELD_OFFSET.
6941         (scan_sharing_clauses): Adjust install_var_field callers.  For
6942         firstprivate clauses on explicit tasks allocate the var by value in
6943         record_type unconditionally, rather than by reference.
6944         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
6945         Use is_taskreg_ctx instead of is_parallel_ctx.
6946         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
6947         (create_omp_child_function_name): Add task_copy argument, use
6948         *_omp_cpyfn* names if it is true.
6949         (create_omp_child_function): Add task_copy argument, if true create
6950         *_omp_cpyfn* helper function.
6951         (scan_omp_parallel): Adjust create_omp_child_function callers.
6952         Rename parallel_nesting_level to taskreg_nesting_level.
6953         (scan_omp_task): New function.
6954         (lower_rec_input_clauses): Don't run constructors for firstprivate
6955         explicit task vars which are initialized by *_omp_cpyfn*.
6956         Pass outer var ref to omp_clause_default_ctor hook if
6957         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
6958         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
6959         OMP_CLAUSE_REDUCTION_INIT.
6960         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
6961         avoid duplicate setting of fields.  Handle
6962         OMP_CLAUSE_PRIVATE_OUTER_REF.
6963         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
6964         copy-out if TREE_READONLY, only copy-in.
6965         (expand_task_copyfn): New function.
6966         (expand_task_call): New function.
6967         (struct omp_taskcopy_context): New type.
6968         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
6969         New functions.
6970         (lower_omp_parallel): Rename to...
6971         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
6972         Call create_task_copyfn if srecord_type is needed.  Adjust
6973         sender_decl type.
6974         (task_shared_vars): New variable.
6975         (check_omp_nesting_restrictions): Warn if work-sharing,
6976         barrier, master or ordered region is closely nested inside OMP_TASK.
6977         Add warnings for barrier if closely nested inside of work-sharing,
6978         ordered, or master region.
6979         (scan_omp_1): Call check_omp_nesting_restrictions even for
6980         GOMP_barrier calls.  Rename parallel_nesting_level to
6981         taskreg_nesting_level.  Handle OMP_TASK.
6982         (lower_lastprivate_clauses): Even if some lastprivate is found on a
6983         work-sharing construct, continue looking for them on parent parallel
6984         construct.
6985         (lower_omp_for_lastprivate): Add lastprivate clauses
6986         to the beginning of dlist rather than end.  Adjust for struct
6987         omp_for_data changes.
6988         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
6989         not after it.  Handle collapsed OMP_FOR loops, adjust for
6990         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
6991         (get_ws_args_for): Adjust extract_omp_for_data caller.
6992         (scan_omp_for): Handle collapsed OMP_FOR
6993         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
6994         (lower_omp_single_simple): If libgomp function doesn't return
6995         boolean_type_node, add comparison of the return value with 0.
6996         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
6997         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
6998         (parallel_nesting_level): Rename to...
6999         (taskreg_nesting_level): ... this.
7000         (is_taskreg_ctx): New function.
7001         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
7002         of is_parallel_ctx.
7003         (execute_lower_omp): Rename parallel_nesting_level to
7004         taskreg_nesting_level.
7005         (expand_omp_parallel): Rename to...
7006         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
7007         Call omp_task_call for OMP_TASK regions.
7008         (expand_omp): Adjust caller, handle OMP_TASK.
7009         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
7010
7011         * bitmap.c (bitmap_default_obstack_depth): New variable.
7012         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
7013         if argument is NULL and bitmap_default_obstack is already initialized.
7014         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
7015         at the end.
7016         * matrix-reorg.c (matrix_reorg): Likewise.
7017
7018 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
7019
7020         * config/i386/i386.md (*indirect_jump): Macroize using P
7021         mode iterator.  Remove !TARGET_64BIT from insn constraints.
7022         (*tablejump_1): Ditto.
7023         (*indirect_jump_rex64): Remove insn pattern.
7024         (*tablejump_1_rex64): Ditto.
7025         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
7026         and eh_return_si insn patterns.
7027
7028 2008-06-06  Richard Guenther  <rguenther@suse.de>
7029
7030         * tree-ssa-structalias.c (merge_smts_into): Remove.
7031         (find_what_p_points_to): Do not bother to compute the
7032         points-to set for pt_anything pointers.
7033         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
7034         for pt_anything pointers is ok.
7035
7036 2008-06-06  Jan Hubicka  <jh@suse.cz>
7037
7038         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
7039
7040 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7041
7042         * cgraph.c: Fix typos in comments.
7043         (cgraph_availability_names): Fix string typo.
7044         * fold-const.c: Fix typos in comments.
7045         (fold_binary): Fix typo in warning.
7046         * genautomata.c: Fix typos in comments.
7047         (check_presence_pattern_sets): Fix typo in local variable.
7048         (output_description): Fix typo in output.
7049         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
7050         * hwint.h: Likewise.
7051         * matrix-reorg.c (check_allocation_function): Likewise.
7052         * omega.c (smooth_weird_equations): Likewise.
7053         * auto-inc-dec.c: Fix typos in comments.
7054         * bb-reorder.c: Likewise.
7055         * builtins.c: Likewise.
7056         * c-common.c: Likewise.
7057         * c-cppbuiltin.c: Likewise.
7058         * c-parser.c: Likewise.
7059         * c-pretty-print.c: Likewise.
7060         * cfgcleanup.c: Likewise.
7061         * cfgexpand.c: Likewise.
7062         * cfghooks.c: Likewise.
7063         * cfglayout.c: Likewise.
7064         * cfgloopmanip.c: Likewise.
7065         * cgraphunit.c: Likewise.
7066         * coverage.c: Likewise.
7067         * dbxout.c: Likewise.
7068         * df-byte-scan.c: Likewise.
7069         * df-core.c: Likewise.
7070         * df-problems.c: Likewise.
7071         * df-scan.c: Likewise.
7072         * dfp.c: Likewise.
7073         * dominance.c: Likewise.
7074         * domwalk.c: Likewise.
7075         * dse.c: Likewise.
7076         * dwarf2out.c: Likewise.
7077         * emit-rtl.c: Likewise.
7078         * et-forest.c: Likewise.
7079         * function.c: Likewise.
7080         * function.h: Likewise.
7081         * gcc.c: Likewise.
7082         * gcov-io.c: Likewise.
7083         * gcov.c: Likewise.
7084         * gcse.c: Likewise.
7085         * genattrtab.c: Likewise.
7086         * ggc-page.c: Likewise.
7087         * gimplify.c: Likewise.
7088         * gthr-lynx.h: Likewise.
7089         * haifa-sched.c: Likewise.
7090         * ipa-cp.c: Likewise.
7091         * ipa-inline.c: Likewise.
7092         * ipa-prop.h: Likewise.
7093         * ipa-pure-const.c: Likewise.
7094         * ipa-struct-reorg.c: Likewise.
7095         * ipa-struct-reorg.h: Likewise.
7096         * ipa-type-escape.c: Likewise.
7097         * ipa.c: Likewise.
7098         * loop-doloop.c: Likewise.
7099         * mips-tfile.c: Likewise.
7100         * mkmap-flat.awk: Likewise.
7101         * mkmap-symver.awk: Likewise.
7102         * modulo-sched.c: Likewise.
7103         * omp-low.c: Likewise.
7104         * optabs.c: Likewise.
7105         * optabs.h: Likewise.
7106         * opts.c: Likewise.
7107         * passes.c: Likewise.
7108         * postreload-gcse.c: Likewise.
7109         * postreload.c: Likewise.
7110         * predict.c: Likewise.
7111         * pretty-print.h: Likewise.
7112         * profile.c: Likewise.
7113         * protoize.c: Likewise.
7114         * ra-conflict.c: Likewise.
7115         * real.c: Likewise.
7116         * recog.c: Likewise.
7117         * regclass.c: Likewise.
7118         * regs.h: Likewise.
7119         * reload.c: Likewise.
7120         * rtl-error.c: Likewise.
7121         * rtlanal.c: Likewise.
7122         * scan.h: Likewise.
7123         * sched-rgn.c: Likewise.
7124         * see.c: Likewise.
7125         * stmt.c: Likewise.
7126         * target.h: Likewise.
7127         * tree-dfa.c: Likewise.
7128         * tree-eh.c: Likewise.
7129         * tree-flow-inline.h: Likewise.
7130         * tree-inline.c: Likewise.
7131         * tree-into-ssa.c: Likewise.
7132         * tree-loop-distribution.c: Likewise.
7133         * tree-nested.c: Likewise.
7134         * tree-parloops.c: Likewise.
7135         * tree-pass.h: Likewise.
7136         * tree-pretty-print.c: Likewise.
7137         * tree-profile.c: Likewise.
7138         * tree-scalar-evolution.c: Likewise.
7139         * tree-sra.c: Likewise.
7140         * tree-ssa-alias-warnings.c: Likewise.
7141         * tree-ssa-ccp.c: Likewise.
7142         * tree-ssa-coalesce.c: Likewise.
7143         * tree-ssa-dom.c: Likewise.
7144         * tree-ssa-dse.c: Likewise.
7145         * tree-ssa-forwprop.c: Likewise.
7146         * tree-ssa-live.c: Likewise.
7147         * tree-ssa-live.h: Likewise.
7148         * tree-ssa-loop-im.c: Likewise.
7149         * tree-ssa-loop-ivopts.c: Likewise.
7150         * tree-ssa-loop-niter.c: Likewise.
7151         * tree-ssa-loop-prefetch.c: Likewise.
7152         * tree-ssa-phiopt.c: Likewise.
7153         * tree-ssa-phiprop.c: Likewise.
7154         * tree-ssa-sccvn.c: Likewise.
7155         * tree-ssa-ter.c: Likewise.
7156         * tree-ssa-threadupdate.c: Likewise.
7157         * tree-ssa.c: Likewise.
7158         * tree-vect-analyze.c: Likewise.
7159         * tree-vect-transform.c: Likewise.
7160         * tree-vectorizer.c: Likewise.
7161         * tree-vn.c: Likewise.
7162         * tree-vrp.c: Likewise.
7163         * tree.c: Likewise.
7164         * tree.def: Likewise.
7165         * tree.h: Likewise.
7166         * unwind-dw2-fde.c: Likewise.
7167         * unwind.inc: Likewise.
7168         * value-prof.c: Likewise.
7169         * vmsdbgout.c: Likewise.
7170
7171 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
7172
7173         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
7174         always place FP constants in the TOC for TARGET_POWERPC64.
7175         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
7176
7177 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
7178
7179         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
7180         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
7181         enable for TARGET_E500_DOUBLE.
7182         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
7183         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
7184         floating-point modes like integer modes for E500 double.
7185         (rs6000_legitimate_offset_address_p): Likewise.
7186         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
7187         addressing for DDmode for E500 double.
7188         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
7189         modes as using 64-bits of registers for E500 double.
7190         (spe_build_register_parallel): Do not handle DDmode or TDmode.
7191         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
7192         specially for E500 double.
7193         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
7194         TDmode for E500 double.
7195         (rs6000_gimplify_va_arg): Only handle SDmode in registers
7196         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
7197         (rs6000_split_multireg_move): Do not handle TDmode specially for
7198         E500 double.
7199         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
7200         using 64-bit registers for E500 double.
7201         (emit_frame_save): Do not handle DDmode specially for E500 double.
7202         (gen_frame_mem_offset): Likewise.
7203         (rs6000_function_value): Do not call spe_build_register_parallel
7204         for DDmode or TDmode.
7205         (rs6000_libcall_value): Likewise.
7206         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
7207         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
7208         for E500 double.
7209
7210 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
7211
7212         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
7213         in comments.
7214
7215 2008-06-04  Junjie Gu <jgu@tensilica.com>
7216
7217         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
7218         comparison for frame pointers.
7219
7220 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
7221
7222         PR target/27386
7223         * config/avr/avr.h (PUSH_ROUNDING): Remove.
7224
7225 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
7226
7227         PR target/30243
7228         * builtins.c (expand_builtin_signbit): Don't take lowpart when
7229         register is already smaller or equal to required mode.
7230
7231 2008-06-04  Xinliang David Li  <davidxl@google.com>
7232
7233         * tree-call-cdce.c: New file.
7234         (cond_dead_built_in_calls): New static variable.
7235         (input_domain): New struct.
7236         (check_pow): New function.
7237         (check_builtin_call): Ditto.
7238         (check_target_format): Ditto.
7239         (is_call_dce_candidate): Ditto.
7240         (gen_one_condition): Ditto.
7241         (gen_conditions_for_domain): Ditto.
7242         (get_domain): Ditto.
7243         (gen_conditions_for_pow_cst_base): Ditto.
7244         (gen_conditions_for_pow_int_base): Ditto.
7245         (gen_conditions_for_pow): Ditto.
7246         (get_no_error_domain): Ditto.
7247         (gen_shrink_wrap_conditions): Ditto.
7248         (shrink_wrap_one_built_in_call): Ditto.
7249         (shink_wrap_conditional_dead_built_in_calls): Ditto.
7250         (tree_call_cdce): Ditto.
7251         (gate_call_cdce): Ditto.
7252         (pass_call_cdce): New gimple pass.
7253         * passes.c: (init_optimization_passes): New pass.
7254         * tree-pass.h: New pass declaration.
7255         * opts.c (decode_options): New flag setting.
7256         * common.opt: Add -ftree-builtin-call-dce flag.
7257         * Makefile.in: Add new source file.
7258         * tempvar.def: New tv_id.
7259         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
7260
7261 2008-06-04  Richard Guenther  <rguenther@suse.de>
7262
7263         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
7264         (is_call_clobbered): Always check var_ann->call_clobbered.
7265         (mark_call_clobbered): Always set var_ann->call_clobbered.
7266         (clear_call_clobbered): Always clear var_ann->call_clobbered.
7267         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
7268         (reset_alias_info): Clear call clobbering info on MTAGs and
7269         globals as well.
7270         (set_pt_anything): Set pt_global_mem.
7271         (create_tag_raw): Adjust comment.
7272         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
7273
7274 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
7275             Maxim Kuvyrkov  <maxim@codesourcery.com>
7276
7277         * config/m68k/m68k.opt (mxgot): New option.
7278         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
7279         (m68k_output_addr_const_extra): New.
7280         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
7281         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
7282         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
7283         * doc/invoke.texi (M680x0 Options): Document -mxgot.
7284
7285 2008-06-04  Richard Guenther  <rguenther@suse.de>
7286
7287         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
7288         negative or non-representable offsets.
7289
7290 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
7291
7292         * config/i386/i386.c (ix86_gen_leave): New.
7293         (ix86_gen_pop1): Likewise.
7294         (ix86_gen_add3): Likewise.
7295         (ix86_gen_sub3): Likewise.
7296         (ix86_gen_sub3_carry): Likewise.
7297         (ix86_gen_one_cmpl2): Likewise.
7298         (ix86_gen_monitor): Likewise.
7299         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
7300         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
7301         ix86_gen_one_cmpl2 and ix86_gen_monitor.
7302         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
7303         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
7304         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
7305         (ix86_expand_epilogue): Updated.
7306         (print_operand): Handle integer register operand for 'z'.
7307         (ix86_expand_strlensi_unroll_1): Likewise.
7308         (ix86_expand_strlen): Likewise.
7309         (ix86_expand_builtin): Likewise.
7310         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
7311         mov{q}/mov{l} and add{q}/add{l}.
7312
7313 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
7314
7315         * config/i386/i386.md (P): New mode iterator.
7316         (SFmode push_operand splitter): Macroize DImode and SImode pushes
7317         using P mode iterator.
7318         (DFmode push_operand splitter): Ditto.
7319         (XFmode push_operand splitter): Ditto.
7320         (DFmode float_extend SFmode push_operand splitter): Ditto.
7321         (XFmode float_extend SFmode push_operand splitter): Do not generate
7322         SImode pushes for 64bit target.  Macroize Dimode and SImode
7323         pushes using P mode iterator.
7324         (XFmode float_extend DFmode push_operand splitter): Ditto.
7325
7326 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
7327
7328         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
7329         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
7330         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
7331         return type to int.
7332         (ix86_call_abi_override): Remove check for call_used_regs.
7333
7334 2008-06-03  Richard Guenther  <rguenther@suse.de>
7335
7336         * tree-ssa-structalias.c (find_func_aliases): Add constraints
7337         for the lhs of calls if the return type contains pointers.
7338
7339 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
7340
7341         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
7342         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
7343         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
7344         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
7345         of cfun and DEFAULT_ABI to deceide abi mode.
7346         (DEFAULT_ABI): New.
7347         (REG_PARM_STACK_SPACE): Removed.
7348         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
7349         (STACK_BOUNDARY): Use default target to deceide stack boundary.
7350         * config/i386/i386-protos.h (ix86_cfun_abi): New.
7351         (ix86_function_abi): Likewise.
7352         (ix86_function_type_abi): Likewise.
7353         (ix86_call_abi_override): Likewise.
7354         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
7355         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
7356         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
7357         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
7358         specific defines.
7359         (X86_64_REGPARM_MAX): New.
7360         (X86_64_SSE_REGPARM_MAX): New.
7361         (X64_REGPARM_MAX): New.
7362         (X64_SSE_REGPARM_MAX): New.
7363         (X86_32_REGPARM_MAX): New.
7364         (X86_32_SSE_REGPARM_MAX): New.
7365         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
7366         (ix86_function_regparm): Handle user calling abi.
7367         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
7368         by DEFAULT_ABI versus SYSV_ABI check.
7369         (ix86_reg_parm_stack_space): New.
7370         (ix86_function_type_abi): New.
7371         (ix86_call_abi_override): New.
7372         (ix86_function_abi): New.
7373         (ix86_cfun_abi): New.
7374         (init_cumulative_args): Call abi specific initialization.
7375         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
7376         (function_arg_64): Extend SSE_REGPARM_MAX check.
7377         (function_arg (): Remove TARGET_64BIT_MS_ABI.
7378         (ix86_pass_by_reference): Likewise.
7379         (ix86_function_value_regno_p): Likewise.
7380         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
7381         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
7382         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
7383         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
7384         (setup_incoming_varargs_64): Adjust regparm for call abi.
7385         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
7386         (ix86_va_start): Likewise.
7387         (ix86_gimplify_va_arg): Likewise.
7388         (ix86_expand_prologue): Likewise.
7389         (output_pic_addr_const): Likewise.
7390         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
7391         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
7392         (x86_output_mi_thunk): Likewise.
7393         (x86_function_profiler): Likewise.
7394         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
7395         (SYSV_ABI, MS_ABI): New constants.
7396         (DEFAULT_ABI): New.
7397         (init_regs): Add prototype of function in regclass.c file.
7398         (OVERRIDE_ABI_FORMAT): New.
7399         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
7400         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
7401         (OUTGOING_REG_PARM_STACK_SPACE): New.
7402         (ix86_reg_parm_stack_space): New prototype.
7403         (CUMULATIVE_ARGS): Add call_abi member.
7404         (machine_function): Add call_abi member.
7405         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
7406         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
7407
7408 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com>
7409
7410         PR target/34879
7411         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
7412         (avr_builtin_setjmp_frame_value): New function.
7413         * config/avr/avr.md (nonlocal_goto_receiver): Define.
7414         (nonlocal_goto): Define.
7415
7416 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
7417
7418         * config/mips/mips.c (mips_emit_loadgp): Return early if
7419         there is nothing do to, otherwise emit a blockage if
7420         !TARGET_EXPLICIT_RELOCS || crtl->profile.
7421         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
7422
7423 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7424
7425         * configure.ac: Drop unneeded backslash ending up in config.in.
7426         * acinclude.m4: Likewise.
7427         * config.in: Regenerate.
7428
7429 2008-05-26  Jan Hubicka  <jh@suse.cz>
7430
7431         * predict.c (maybe_hot_frequency_p): Break out of...
7432         (maybe_hot_bb_p): ... here.
7433         (maybe_hot_edge_p): New.
7434         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
7435         * basic-block.h (maybe_hot_edge_p): Declare.
7436
7437 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
7438
7439         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
7440         (*cmpfp_<mode>_cc): Ditto.
7441         (*fp_jcc_8<mode>_387): Ditto.
7442         (*fop_<MODEF:mode>_2_i387): Ditto.
7443         (*fop_<MODEF:mode>_3_i387): Ditto.
7444         (*fop_xf_2_i387): Ditto.
7445         (*fop_xf_3_i387): Ditto.
7446
7447 2008-06-02  Tomas Bily  <tbily@suse.cz>
7448
7449         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
7450
7451 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
7452
7453         * config/mips/mips.c (mips_valid_offset_p): New function.
7454         (mips_valid_lo_sum_p): Likewise.
7455         (mips_classify_address): Use them.
7456         (mips_force_address): New function.
7457         (mips_legitimize_address): Use it.
7458         * config/mips/mips.md (MOVE128): New mode iterator.
7459         (movtf): Require TARGET_64BIT.  Remove empty strings.
7460         (*movtf_internal): Rename to...
7461         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
7462         of "R" and use {,fp}{load,store} attributes instead of "multi".
7463         Use a separate define_split.
7464         (*movtf_mips16): New pattern.
7465
7466 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
7467
7468         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
7469         * config/mips/mips.c (mips_expand_before_return): New function.
7470         (mips_expand_epilogue): Call it.
7471         * config/mips/mips.md (return): Turn into a define_expand.
7472         (*return): New insn.
7473
7474 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
7475
7476         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
7477         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
7478         functions.  Do not emit uses and clobbers of CONCATs; individually
7479         use and clobber their operands.
7480         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
7481         gen_clobber, emit_use and gen_use.
7482         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
7483         (expand_builtin_return): Likewise.
7484         * cfgbuild.c (count_basic_blocks): Likewise.
7485         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
7486         * explow.c (emit_stack_restore): Likewise.
7487         * expmed.c (extract_bit_field_1): Likewise.
7488         * expr.c (convert_move, emit_move_complex_parts): Likewise.
7489         (emit_move_multi_word, store_constructor): Likewise.
7490         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
7491         (thread_prologue_and_epilogue_insns): Likewise.
7492         * lower-subreg.c (resolve_simple_move): Likewise.
7493         * optabs.c (widen_operand, expand_binop): Likewise.
7494         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
7495         * reload.c (find_reloads): Likewise.
7496         * reload1.c (eliminate_regs_in_insn): Likewise.
7497         * stmt.c (expand_nl_goto_receiver): Likewise.
7498         * config/alpha/alpha.md (builtin_longjmp): Likewise.
7499         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
7500         * config/arm/arm.c (arm_load_pic_register): Likewise.
7501         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
7502         * config/arm/arm.md (untyped_return): Likewise.
7503         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
7504         * config/avr/avr.c (expand_prologue): Likewise.
7505         * config/bfin/bfin.c (do_unlink): Likewise.
7506         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
7507         * config/cris/cris.c (cris_expand_prologue): Likewise.
7508         * config/darwin.c (machopic_indirect_data_reference): Likewise.
7509         (machopic_legitimize_pic_address): Likewise.
7510         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
7511         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
7512         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
7513         (ix86_expand_convert_uns_didf_sse): Likewise.
7514         (ix86_expand_vector_init_general): Likewise.
7515         * config/ia64/ia64.md (eh_epilogue): Likewise.
7516         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
7517         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
7518         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
7519         (config/iq2000/iq2000.c): Likewise.
7520         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
7521         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
7522         (builtin_longjmp): Likewise.
7523         * config/mn10300/mn10300.md (call, call_value): Likewise.
7524         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
7525         * config/pdp11/pdp11.md (abshi2): Likewise.
7526         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
7527         * config/s390/s390.c (s390_emit_prologue): Likewise.
7528         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
7529         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
7530         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
7531         * config/sh/sh.c (prepare_move_operands): Likewise.
7532         (output_stack_adjust, sh_expand_epilogue): Likewise.
7533         (sh_set_return_address, sh_expand_t_scc): Likewise.
7534         * config/sparc/sparc.c (load_pic_register): Likewise.
7535         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
7536         * config/spu/spu.c (spu_expand_epilogue): Likewise.
7537         * config/v850/v850.c (expand_epilogue): Likewise.
7538
7539 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
7540
7541         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
7542         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
7543         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
7544         * config/avr/avr.c (expand_prologue, expand_epilogue): Use
7545         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
7546         stack pointer register.
7547         (output_movhi): Remove code for interrupt specific writing to the
7548         stack pointer register.
7549
7550 2008-05-31  Richard Guenther  <rguenther@suse.de>
7551
7552         PR tree-optimization/34244
7553         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
7554         (tree_expr_nonzero_warnv_p): Likewise.
7555         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
7556         ssa_name_nonnegative_p.
7557         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
7558         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
7559         not tree_expr_nonzero_warnv_p.
7560
7561         PR tree-optimization/36262
7562         Revert
7563         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
7564
7565         PR tree-optimization/34244
7566         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
7567         (record_numbers_of_iterations): New function.
7568         (execute_vrp): Cache the numbers of iterations of loops.
7569         * tree-scalar-evolution.c (scev_reset_except_niters):
7570         New function.
7571         (scev_reset): Use scev_reset_except_niters.
7572         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
7573
7574 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
7575
7576         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
7577         __WORKAROUND_RETS when appropriate.
7578
7579 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
7580
7581         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
7582         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
7583         mode iterator.
7584         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
7585         *fop_df_comm_sse insn patterns using MODEF mode iterator.
7586         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
7587         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
7588         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
7589         *fop_df_1_mixed insn patterns using MODEF mode iterator.
7590         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
7591         *fop_df_1_sse insn patterns using MODEF mode iterator.
7592         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
7593         *fop_df_1_i387 insn patterns using MODEF mode iterator.
7594         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
7595         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
7596         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
7597         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
7598         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
7599         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
7600         (*fop_xf_4_i387): Use <MODE> for mode attribute.
7601         (*fop_xf_5_i387): Ditto.
7602         (*fop_xf_6_i387): Ditto.
7603
7604 2008-05-30  Richard Guenther  <rguenther@suse.de>
7605
7606         * builtins.c (build_string_literal): Avoid generating
7607         a non-gimple_val result.
7608
7609 2008-05-30  DJ Delorie  <dj@redhat.com>
7610
7611         * exec-tool.in: Use an environment variable (private) instead of a
7612         file (shared) as a semaphore, so as to not break parallel builds.
7613
7614 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
7615
7616         * optabs.c (maybe_encapsulate_block): Remove.
7617         (emit_libcall_block): Adjust accordingly.
7618         * optabs.h (maybe_encapsulate_block): Remove prototype.
7619
7620         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
7621         Don't use maybe_encapsulate_block.
7622
7623 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
7624
7625         * config/rs6000/rs6000.c (rs6000_legitimize_address,
7626         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
7627         rtx is a SYMBOL_REF before calling get_pool_constant.
7628
7629 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
7630
7631         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
7632
7633 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
7634
7635         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
7636         rather than OS names to choose INO_T_EQ definition.
7637         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
7638         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
7639
7640 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
7641
7642         PR target/36348
7643         * config/darwin-f.c: New.
7644         * config/t-darwin: Added rule to build darwin-f.o.
7645         * config.gcc: Defined new variable, fortran_target_objs.
7646         (*-*-darwin*): Set fortran_target_objs.
7647         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
7648         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
7649         * configure: Regenerated.
7650
7651 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
7652
7653         PR target/35771
7654         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
7655         canonical type if needed.
7656
7657 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
7658
7659         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
7660
7661 2008-05-29  Richard Guenther  <rguenther@suse.de>
7662
7663         PR tree-optimization/36343
7664         PR tree-optimization/36346
7665         PR tree-optimization/36347
7666         * tree-flow.h (clobber_what_p_points_to): Declare.
7667         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
7668         pointed-to variable is dereferenced is irrelevant to whether
7669         the pointer can access the pointed-to variable.
7670         (clobber_what_p_points_to): New function.
7671         * tree-ssa-alias.c (set_initial_properties): Use it.
7672         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
7673         call clobber check for NMTs.
7674
7675 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
7676
7677         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
7678         for printing gcov_type.
7679
7680 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
7681
7682         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
7683         and the eh region information.
7684         * value-prof.c (gimple_move_stmt_histograms): New function.
7685         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
7686
7687 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
7688
7689         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
7690
7691 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
7692
7693         * value-prof.c (tree_ic_transform): Print counts.
7694         * tree-profile.c (tree_gen_ic_func_profiler):
7695         Clear __gcov_indreict_call_callee variable to avoid misattribution
7696         of the profile.
7697
7698 2008-05-28  Rafael Espindola  <espindola@google.com>
7699
7700         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
7701         invalid sharing.
7702
7703 2008-05-28  Richard Guenther  <rguenther@suse.de>
7704
7705         PR tree-optimization/36339
7706         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
7707         and clobbering code out of the loop.
7708
7709 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
7710
7711         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
7712         letters defined.
7713
7714         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
7715         s390_contiguous_bitmask_p, s390_symref_operand_p,
7716         s390_check_symref_alignment, s390_reload_larl_operand,
7717         s390_reload_symref_address): New functions.
7718         (s390_branch_condition_mnemonic): Support compare and branch
7719         instructions.
7720         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
7721         and 'W' constraints.
7722         (s390_secondary_reload): Add secondary reloads for unaligned
7723         symbol refs or symbol refs to floating point or QI/TI mode
7724         integer values.
7725         (legitimate_address_p): Accept symbol references as addresses.
7726         (s390_expand_insv): Use rotate and insert selected bits
7727         instruction for insv when building for z10.
7728         (print_operand_address): Handle symbol ref addresses.
7729         (print_operand): Output modifier 'c' added for signed byte values.
7730         (s390_encode_section_info): Mark symbol refs with
7731         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
7732
7733         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
7734         (length attribute): RRF, RRR have 4 byte length.
7735         (FPALL, INTALL): New mode iterators added.
7736         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
7737         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
7738         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
7739         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
7740         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
7741         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
7742         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
7743         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
7744         instructions.
7745         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
7746         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
7747         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
7748         reload<INTALL:mode><P:mode>_toreg_z10,
7749         reload<FPALL:mode><P:mode>_tomem_z10,
7750         reload<FPALL:mode><P:mode>_toreg_z10,
7751         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
7752         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
7753         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
7754         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
7755         definition.
7756         (movmem, clrmem, cmpmem): New splitters added.
7757
7758         * config/s390/predicates.md (larl_operand): Use
7759         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
7760         SYMBOL_REF_ALIGN1_P.
7761         (s390_signed_integer_comparison,
7762         s390_unsigned_integer_comparison): New predicates.
7763
7764         * config/s390/s390-protos.h (s390_check_symref_alignment,
7765         s390_contiguous_bitmask_p, s390_reload_larl_operand,
7766         s390_reload_symref_address,
7767         s390_compare_and_branch_condition_mask): Prototypes added.
7768
7769         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
7770         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
7771         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
7772
7773 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
7774
7775         * config/s390/s390.c (z10_cost): New cost function for z10.
7776         (s390_handle_arch_option, override_options): Support -march=z10 switch.
7777         (s390_issue_rate): Adjust issue rate for z10.
7778         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
7779         (processor_flags): Add PF_Z10.
7780         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
7781         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
7782         * gcc/config.gcc: Add z10.
7783
7784 2008-05-28  Richard Guenther  <rguenther@suse.de>
7785
7786         PR tree-optimization/36291
7787         * tree-flow. h (struct gimple_df): Remove var_anns member.
7788         * tree-flow-inline.h (gimple_var_anns): Remove.
7789         (var_ann): Simplify.
7790         * tree-dfa.c (create_var_ann): Simplify.
7791         (remove_referenced_var): Clear alias info from var_anns of globals.
7792         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
7793         (delete_tree_ssa): Clear alias info from var_anns of globals.
7794         Do not free var_anns.
7795         (var_ann_eq): Remove.
7796         (var_ann_hash): Likewise.
7797
7798 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
7799
7800         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
7801         and loongson2f entries.
7802         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
7803         * config/mips/mips.h (processor_type): Add Loongson-2E
7804         and Loongson-2F entries.
7805         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
7806         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
7807         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
7808         * doc/invoke.texi (MIPS Options): Document loongson2e
7809         and loongson2f processor names.
7810
7811 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
7812
7813         PR target/35767
7814         PR target/35771
7815         * config/i386/i386.c (ix86_function_arg_boundary): Use
7816         alignment of canonical type.
7817         (ix86_expand_vector_move): Check unaligned memory access for
7818         all SSE modes.
7819
7820 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
7821
7822         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
7823         Moved to the front of file.
7824
7825 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
7826             H.J. Lu  <hongjiu.lu@intel.com>
7827
7828         * dwarf2out.c (current_fde): New.
7829         (add_cfi): Use it.
7830         (lookup_cfa:): Likewise.
7831         (dwarf2out_end_epilogue): Likewise.
7832         (dwarf2out_note_section_used): Likewise.
7833
7834 2008-05-27  Michael Matz  <matz@suse.de>
7835
7836         PR c++/27975
7837         * c.opt (Wenum-compare): New warning option.
7838         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
7839
7840 2008-05-27  Michael Matz  <matz@suse.de>
7841
7842         PR middle-end/36326
7843         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
7844         non-BLKmode types.
7845         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
7846         into memory as tail calls.
7847
7848 2008-05-27  Richard Guenther  <rguenther@suse.de>
7849
7850         PR tree-optimization/36339
7851         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
7852         pointers cause all addressable variables to be call clobbered.
7853
7854 2008-05-27  Richard Guenther  <rguenther@suse.de>
7855
7856         PR tree-optimization/36245
7857         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
7858
7859 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
7860
7861         * config/s390/s390.md: Replace all occurences of the 'm'
7862         constraint with 'RT'.
7863
7864 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
7865
7866         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
7867         definitions added.
7868         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
7869         "*movdi_64".
7870         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
7871         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
7872         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
7873
7874 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
7875
7876         * reload.c: (find_reloads): Skip alternatives according to the
7877         "enabled" attribute. Constify the constraint variable.
7878         * recog.c (get_attr_enabled): Add default implementation.
7879         (extract_insn): Set the alternative_enabled_p array
7880         in the recog_data struct.
7881         (preprocess_constraints, constrain_operands): Skip
7882         alternatives according to the "enabled" attribute
7883         * recog.h (struct recog_data): New field alternative_enabled_p.
7884         (skip_alternative): New inline function.
7885         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
7886         (record_reg_classes): Skip alternative according to the
7887         "enabled" attribute.
7888
7889         * doc/md.texi: Add documention for the "enabled" attribute.
7890
7891 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
7892
7893         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
7894         * postreload.c (reload_cse_simplify_operands): Replace 'm'
7895         constraint with TARGET_MEM_CONSTRAINT.
7896         * recog.c (asm_operand_ok, preprocess_constraints,
7897         constrain_operands): Likewise.
7898         * regclass.c (record_reg_classes): Likewise.
7899         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
7900         * reload1.c (maybe_fix_stack_asms): Likewise.
7901         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
7902         * recog.h: Adjust comment.
7903         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
7904         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
7905         * doc/md.texi: Add a note to description of 'm' constraint.
7906         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
7907
7908 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
7909
7910         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
7911         that the bitfield is of integral type before testing its precision.
7912
7913 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
7914             Sa Liu  <saliu@de.ibm.com>
7915
7916         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
7917         __modti3, __udivti3, __umodti3 and __udivmodti4.
7918         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
7919         that implement TImode mul and div functions.
7920         * config/spu/multi3.c: New. Implement __multi3.
7921         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
7922         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
7923         functions on SPU.
7924
7925 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
7926
7927         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
7928         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
7929         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
7930         tls_sysv_suffix): New mode and mode attribute iterators.
7931         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
7932         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
7933         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
7934         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
7935         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
7936         iterators.
7937
7938 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
7939
7940         PR tree-optimization/36329
7941         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
7942         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
7943         * cgraphbuild.c (initialize_inline_failed): Use the latter
7944         macro in lieu of the former.
7945         * ipa-inline.c (cgraph_mark_inline): Likewise.
7946         (cgraph_decide_inlining_of_small_function): Likewise.
7947         (cgraph_decide_inlining): Likewise.
7948         (cgraph_decide_inlining_incrementally): Likewise.
7949
7950 2008-05-26  Tristan Gingold  <gingold@adacore.com>
7951             Anatoly Sokolov  <aesok@post.ru>
7952
7953         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
7954         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
7955         * config/avr/avr.c (expand_prologue): Tune "call_prologue"
7956         optimization for 'avr6' architecture.
7957
7958 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
7959
7960         PR target/34932
7961         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
7962
7963 2008-05-26  Richard Guenther  <rguenther@suse.de>
7964
7965         * tree-ssa-sccvn.c (expr_has_constants): Declare.
7966         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
7967
7968 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
7969
7970         PR middle-end/36253
7971         * caller-save.c (insert_restore): Verify alignment of spill space.
7972         (insert_save): Likewise.
7973         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
7974         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
7975         (STACK_SLOT_ALIGNMENT): Likewise.
7976         * function.c (LOCAL_ALIGNMENT): Removed.
7977         (get_stack_local_alignment): New.
7978         (assign_stack_local): Use it.  Set alignment on stack slot.
7979         (assign_stack_temp_for_type): Use get_stack_local_alignment.
7980         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
7981         (STACK_SLOT_ALIGNMENT): New.
7982         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
7983         stack slot in XFmode.
7984
7985         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
7986
7987 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
7988
7989         PR/36321
7990         * config/i386/i386.md (allocate_stack_worker_64): Make sure
7991         argument operand in rax isn't removed.
7992
7993 2008-05-26  Richard Guenther  <rguenther@suse.de>
7994
7995         PR middle-end/36300
7996         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
7997         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
7998
7999 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
8000
8001         PR bootstrap/36331
8002         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
8003
8004 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
8005
8006         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
8007         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
8008
8009 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
8010
8011         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
8012         build a trampoline if we don't want one.
8013         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
8014         return zero for nested functions if we don't want a trampoline.
8015
8016 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
8017
8018         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
8019
8020 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
8021
8022         PR fortran/18428
8023         * c.opt: Removed undocumented option '-lang-fortran'.
8024         * c-common.h: Removed global variable 'lang_fortran'.
8025         * c-opts.c (c_common_handle_option): Removed code to handle
8026         option '-lang-fortran'. Updated includes.
8027         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
8028         definition of '__GFORTRAN__'.
8029         (define__GNUC__): Reimplemented to use BASEVER and
8030         cpp_define_formatted.
8031         (builtin_define_with_value_n): Removed.
8032         * c-incpath.h: Renamed to ...
8033         * incpath.h: ... this.
8034         * c-incpath.c: Renamed to ...
8035         * incpath.c: ... this. Updated includes.
8036         * fix-header.c: Updated includes.
8037         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
8038         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
8039         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
8040
8041 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
8042
8043         * tree.h: Update the table of flags used on tree nodes.
8044         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
8045         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
8046         (FORCED_LABEL): Add access check.
8047         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
8048         (ASM_INPUT_P): Likewise.
8049         (ASM_VOLATILE_P): Likewise.
8050         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
8051         (OMP_SECTION_LAST): Access private_flag directly.
8052         (OMP_RETURN_NOWAIT): Likewise.
8053         (OMP_PARALLEL_COMBINED): Likewise.
8054         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
8055         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
8056         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
8057         deprecated_flag directly.
8058
8059 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
8060
8061         * final.c (frame_pointer_needed): Removed.
8062         * flags.h (frame_pointer_needed): Likewise.
8063
8064         * function.h (rtl_data): Add frame_pointer_needed.
8065         (frame_pointer_needed): New.
8066
8067 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
8068
8069         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
8070
8071 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
8072
8073         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
8074         SRC is a REG.
8075
8076 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
8077
8078         * c-common.c (strip_array_types): Move function to..
8079         * tree.c: ..here.
8080         (get_inner_array_type): Delete.
8081         * c-common.h (strip_array_types): Move declaration to..
8082         * tree.h: ..here.
8083         (get_inner_array_type): Delete.
8084         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
8085         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
8086         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
8087         * config/pa/pa.c (emit_move_sequence): Likewise.
8088
8089 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
8090
8091         * config/i386/i386.md (*sse_prologue_save_insn): Set length
8092         attribute to 34.
8093
8094 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
8095
8096         * function.c: Include target hook for nonlocal_goto frame value.
8097
8098 2008-05-24  Richard Guenther  <rguenther@suse.de>
8099
8100         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
8101         variable can be only accessed through a pointer or a union.
8102
8103 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8104
8105         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
8106         * doc/extend.texi: Likewise.
8107
8108 2008-05-23  DJ Delorie  <dj@redhat.com>
8109
8110         * config/m32c/jump.md (untyped_call): Add.
8111
8112         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
8113         for A24 to PSImode.
8114         (m32c_address_cost): Detail costs for indirect offsets.
8115
8116 2008-05-23  Rafael Espindola  <espindola@google.com>
8117
8118         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
8119         if a node is a SUBREG.
8120         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
8121         is a SUBREG.
8122
8123 2008-05-23  Paul Brook  <paul@codesourcery.com>
8124             Carlos O'Donell  <carlos@codesourcery.com>
8125
8126         * doc/extend.texi: Clarify use of __attribute__((naked)).
8127         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
8128         * target.h (gcc_target): Add allocate_stack_slots_for_args.
8129         * function.c (use_register_for_decl): Use
8130         targetm.calls.allocate_stack_slots_for_args.
8131         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
8132         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
8133         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
8134
8135 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
8136
8137         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
8138
8139 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
8140
8141         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
8142         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
8143         is only rounded once.
8144
8145 2008-05-23  Richard Guenther  <rguenther@suse.de>
8146
8147         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
8148
8149 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
8150             Jakub Jelinek  <jakub@redhat.com>
8151
8152         PR target/36079
8153         * configure.ac: Handle --enable-cld.
8154         * configure: Regenerated.
8155         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
8156         * config/i386/i386.h (struct machine_function): Add needs_cld field.
8157         (ix86_current_function_needs_cld): New define.
8158         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
8159         (cld): New isns pattern.
8160         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
8161         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
8162         * config/i386/i386.opt (mcld): New option.
8163         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
8164         TARGET_CLD and ix86_current_function_needs_cld.
8165         (override_options): Use -mcld by default for 32-bit code if
8166         USE_IX86_CLD.
8167
8168         * doc/install.texi (Options specification): Document --enable-cld.
8169         * doc/invoke.texi (Machine Dependent Options)
8170         [i386 and x86-64 Options]: Add -mcld option.
8171         (Intel 386 and AMD x86-64 Options): Document -mcld option.
8172
8173 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
8174         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
8175         (return_in_memory_64): Likewise.
8176         (return_in_memory_ms_64): Likewise.
8177
8178 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8179
8180         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
8181         * builtins.c (fold_builtin_fpclassify): New.
8182         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
8183         * builtins.def (BUILT_IN_FPCLASSIFY): New.
8184         * c-common.c (handle_type_generic_attribute): Adjust to accept
8185         fixed arguments before an elipsis.
8186         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
8187         * doc/extend.texi: Document __builtin_fpclassify.
8188
8189 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
8190
8191         * omp-low.c (gate_expand_omp_ssa): Remove.
8192         (pass_expand_omp_ssa): Remove.
8193         (gate_expand_omp): Do not check for flag_openmp_ssa.
8194         * common.opt (-fopenmp-ssa): Remove.
8195         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
8196
8197 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
8198
8199         * config/sh/sh.opt (mfixed-range): New option.
8200         * config/sh/sh-protos.h (sh_fix_range): Declare.
8201         * config/sh/sh.c (sh_fix_range): New function.
8202         * config/sh/sh.h (sh_fixed_range_str): Declare.
8203         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
8204         is not empty.
8205         * doc/invoke.texi (SH Options): Document -mfixed-range.
8206
8207 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
8208
8209         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
8210         it before the redeclaration.
8211
8212 2008-05-22  Anatoly Sokolov <aesok@post.ru>
8213
8214         * config/avr/avr.c (get_sequence_length): Add new function.
8215         (expand_prologue, expand_epilogue): Remove duplicate code.
8216
8217 2008-05-22  Rafael Espindola  <espindola@google.com>
8218
8219         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
8220         sharing.
8221
8222 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
8223
8224         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
8225         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
8226
8227         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
8228         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
8229         (vect_update_misalignment_for_peel): Likewise.
8230         (vector_alignment_reachable_p): Likewise.
8231         * tree-vect-transform.c (vectorizable_load): Likewise.
8232         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
8233         (get_vectype_for_scalar_type): Pass mode of scalar_type
8234         to UNITS_PER_SIMD_WORD.
8235
8236         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
8237         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
8238         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
8239         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
8240         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
8241
8242 2008-05-22  Ira Rosen  <irar@il.ibm.com>
8243
8244         PR tree-optimization/36293
8245         * tree-vect-transform.c (vect_transform_strided_load): Don't check
8246         if the first load must be skipped because of a gap.
8247
8248 2008-05-22  Richard Guenther  <rguenther@suse.de>
8249
8250         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
8251         more cases of offset disambiguation that is possible if
8252         strict-aliasing rules apply.
8253         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
8254         for basic offset and type-based disambiguation.
8255
8256 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
8257
8258         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
8259         ix86_expand_vector_set on V16QImode for SSE4.1.
8260
8261 2008-05-21  Tom Tromey  <tromey@redhat.com>
8262
8263         * c.opt (Wimport): Mark as undocumented.
8264         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
8265         -Wno-import.
8266         (Warning Options): Likewise.
8267         * doc/cppopts.texi: Don't mention -Wimport.
8268
8269 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
8270
8271         PR tree-optimization/36287
8272         PR tree-optimization/36286
8273         * lambda-code.c (build_access_matrix): Do not use the loop->num
8274         for computing the number of induction variables: use the loop depth
8275         instead.
8276
8277 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
8278
8279         PR/36280
8280         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
8281         option -f(no-)leading-underscore.
8282
8283 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
8284
8285         * config/i386/i386.c (ix86_expand_vector_init_general): Use
8286         GET_MODE_NUNITS (mode).
8287
8288 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
8289
8290         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
8291         (-mmulhw): Add 464 to description.
8292         (-mdlmzb): Likewise.
8293         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
8294         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
8295         464fp entries.
8296         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
8297         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
8298         * config/rs6000/rs6000.md: Update comments for 464.
8299
8300 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
8301
8302         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
8303
8304 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
8305
8306         * config/i386/sse.md (vec_extractv4sf): Removed.
8307         (vec_extractv2df): Likewise.
8308         (vec_extractv2di): Likewise.
8309         (vec_extractv4si): Likewise.
8310         (vec_extractv8hi): Likewise.
8311         (vec_extractv16qi): Likewise.
8312         (vec_extract<mode>): New.
8313
8314 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
8315
8316         * config/i386/sse.md (vec_setv4sf): Removed.
8317         (vec_setv2df): Likewise.
8318         (vec_setv2di): Likewise.
8319         (vec_setv4si): Likewise.
8320         (vec_setv8hi): Likewise.
8321         (vec_setv16qi): Likewise.
8322         (vec_set<mode>): New.
8323
8324 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
8325
8326         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
8327         goto for vec_concat and vec_interleave.
8328
8329 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
8330
8331         * config/i386/sse.md (vec_initv4sf): Removed.
8332         (vec_initv2df): Likewise.
8333         (vec_initv2di): Likewise.
8334         (vec_initv4si): Likewise.
8335         (vec_initv8hi): Likewise.
8336         (vec_initv16qi): Likewise.
8337         (vec_init<mode>): New.
8338
8339 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
8340
8341         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
8342
8343 2008-05-21  Tom Tromey  <tromey@redhat.com>
8344
8345         * ggc-zone.c (lookup_page_table_if_allocated): New function.
8346         (zone_find_object_offset): Likewise.
8347         (gt_ggc_m_S): Likewise.
8348         (highest_bit): Likewise.
8349         * ggc-page.c (gt_ggc_m_S): New function.
8350         * stringpool.c (string_stack): Remove.
8351         (init_stringpool): Update.
8352         (ggc_alloc_string): Use ggc_alloc.
8353         (maybe_delete_ident): New function.
8354         (ggc_purge_stringpool): Likewise.
8355         (gt_ggc_m_S): Remove.
8356         * ggc-common.c (ggc_protect_identifiers): New global.
8357         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
8358         ggc_protect_identifiers.
8359         * ggc.h (ggc_protect_identifiers): Declare.
8360         (gt_ggc_m_S): Update.
8361         (ggc_purge_stringpool): Declare.
8362         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
8363         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
8364         special case.
8365         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
8366
8367 2008-05-21  David S. Miller  <davem@davemloft.net>
8368
8369         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
8370         tmake_file.
8371
8372 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
8373
8374         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
8375         once finished.
8376
8377 2008-05-20  David Daney  <ddaney@avtrex.com>
8378
8379         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
8380         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
8381         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
8382         UNSPEC_UPDATE_GOT_VERSION): Renumber.
8383         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
8384         (atomic_hiqi_op): New define_code_iterator.
8385         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
8386         mips_expand_compare_and_swap_12.
8387         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
8388         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
8389         (sync_<optab><mode>, sync_old_<optab><mode>,
8390         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
8391         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
8392         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
8393         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
8394         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
8395         (test_and_set_12): New insn.
8396         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
8397         sync_new_<optab><mode>, sync_old_nand<mode>,
8398         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
8399         clobber to operand 0 for SI and DI mode insns.
8400         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
8401         mips_gen_fn_4): New typedefs.
8402         (mips_gen_fn_ptrs): Define new union type.
8403         (mips_expand_compare_and_swap_12): Remove declaration.
8404         (mips_expand_atomic_qihi): Declare function.
8405         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
8406         (mips_expand_atomic_qihi): ... this.  Use new generator function
8407         parameter.
8408         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
8409         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
8410         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
8411         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
8412         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
8413         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
8414         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
8415         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
8416         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
8417         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
8418         New macros.
8419
8420 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
8421
8422         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
8423         the missing break.
8424
8425 2008-05-20  Anatoly Sokolov <aesok@post.ru>
8426
8427         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
8428         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
8429         (avr_attribute_table): Add 'OS_main' function attribute.
8430         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
8431         functions with 'OS_main' attribute.
8432
8433 2008-05-20  Richard Guenther  <rguenther@suse.de>
8434
8435         PR tree-optimization/35204
8436         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
8437         helper, split out from ...
8438         (DFS): ... here.  Make the DFS walk non-recursive.
8439
8440 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
8441             Jan Sjodin  <jan.sjodin@amd.com>
8442
8443         PR tree-optimization/36181
8444         * tree-parloops.c (loop_has_vector_phi_nodes): New.
8445         (parallelize_loops): Don't parallelize when the loop has vector
8446         phi nodes.
8447
8448 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
8449             Sebastian Pop  <sebastian.pop@amd.com>
8450
8451         * tree-loop-linear.c (gather_interchange_stats): Look in the access
8452         matrix, and never look at the tree representation of the memory
8453         accesses.
8454         (linear_transform_loops): Computes parameters and access matrices.
8455         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
8456         when fails.
8457         (access_matrix_get_index_for_parameter): New.
8458         * tree-data-ref.h (struct access_matrix): New.
8459         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
8460         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
8461         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
8462         am_vector_index_for_loop): New.
8463         (struct data_reference): Add field access_matrix.
8464         (DR_ACCESS_MATRIX): New.
8465         (compute_data_dependences_for_loop): Update declaration.
8466         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
8467         * lambda.h (lambda_vector_vec_p): Declared.
8468         * lambda-code.c: Depend on pointer-set.h.
8469         (lambda_collect_parameters_from_af, lambda_collect_parameters,
8470         av_for_af_base, av_for_af, build_access_matrix,
8471         lambda_compute_access_matrices): New.
8472         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
8473
8474 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
8475
8476         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
8477         $SOURCEDIR/include.
8478
8479 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
8480             Sebastian Pop  <sebastian.pop@amd.com>
8481
8482         PR tree-optimization/36206
8483         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
8484         FOLD_CONVERSIONS.
8485         (instantiate_scev_1): Rename flags to fold_conversions.
8486         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
8487         outeside instantiation_loop.
8488         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
8489         (evolution_function_is_affine_or_constant_p): Removed.
8490         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
8491         instantiate_scev.
8492         (analyze_siv_subscript): Pass in the loop nest number.
8493         Call evolution_function_is_affine_in_loop instead of
8494         evolution_function_is_affine_p.
8495         (analyze_overlapping_iterations): Pass in the loop nest number.
8496
8497 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
8498             Sebastian Pop  <sebastian.pop@amd.com>
8499
8500         PR tree-optimization/36206
8501         * tree-chrec.h (chrec_fold_op): New.
8502         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
8503         and other trees.
8504
8505 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
8506
8507         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
8508         (DIRS_EQ): New.
8509         (remove_duplicates): Do not set inode on non-inode systems.
8510         Use DIRS_EQ.
8511
8512 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
8513
8514         * config.gcc (tm_file): Update comments about relative pathnames.
8515
8516 2008-05-20  Richard Guenther  <rguenther@suse.de>
8517
8518         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
8519         * tree-ssa-sccvn.c (process_scc): Likewise.
8520         * tree-ssa-sink.c (execute_sink_code): Likewise.
8521         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
8522         * tree-vrp.c (process_assert_insertions): Likewise.
8523         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
8524         (perform_tree_ssa_dce): Likewise.
8525         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
8526         (dump_dominator_optimization_stats): Likewise.
8527         * tree-vectorizer.c (vectorize_loops): Likewise.
8528
8529 2008-05-20  Richard Guenther  <rguenther@suse.de>
8530
8531         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
8532
8533 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
8534
8535         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
8536         (ix86_i386elf_return_in_memory): Likewise.
8537         (ix86_i386interix_return_in_memory): Likewise.
8538         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
8539         (SUBTARGET_RETURN_IN_MEMORY): New.
8540         * config/i386/i386elf.h: Likewise.
8541         * config/i386/ptx4-i.h: Likewise.
8542         * config/i386/sol2-10.h: Likewise.
8543         * config/i386/sysv4.h: Likewise.
8544         * config/i386/vx-common.h: Likewise.
8545         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
8546         * config/i386/i386.c (ix86_return_in_memory): Made static and
8547         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
8548         (ix86_i386elf_return_in_memory): Removed.
8549         (ix86_i386interix_return_in_memory): Removed.
8550         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
8551         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
8552
8553 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
8554
8555         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
8556
8557 2008-05-19  Xinliang David Li  <davidxl@google.com>
8558
8559         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
8560         * opts.c: Ditto.
8561         * common.opt: Ditto.
8562         * doc/invoke.texi: Ditto.
8563
8564 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
8565
8566         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
8567         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
8568
8569 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
8570
8571         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
8572         sizes of operand array from 8/4 to 4/2.
8573         (ix86_expand_vector_init_general): Change size of operand array
8574         from 32 to 16.  Remove op0, op1 and half_mode.
8575
8576 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
8577
8578         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
8579         (ix86_expand_vector_init_interleave): Likewise.
8580         (ix86_expand_vector_init_general): Use them.  Assert
8581         word_mode == SImode when n_words == 4.
8582
8583 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
8584
8585         * config/i386/i386.c (ix86_secondary_reload): New static function.
8586         (TARGET_SECONDARY_RELOAD): New define.
8587         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
8588         * config/i386/i386.md (reload_outqi): Remove.
8589
8590 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8591
8592         PR middle-end/35509
8593         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
8594         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
8595         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
8596         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
8597         (fold_builtin_1): Likewise.
8598         * builtins.def (BUILT_IN_ISINF_SIGN): New.
8599         c-common.c (check_builtin_function_arguments): Handle
8600         BUILT_IN_ISINF_SIGN.
8601         * doc/extend.texi: Document __builtin_isinf_sign.
8602         * fold-const.c (operand_equal_p): Handle COND_EXPR.
8603
8604 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
8605
8606         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
8607         EH cleanup at the end of the pass, search for those that have been
8608         turned into forwarder blocks and do the cleanup on their successor.
8609
8610 2008-05-18  Richard Guenther  <rguenther@suse.de>
8611
8612         * tree-cfg.c (verify_gimple_expr): Allow conversions from
8613         pointers to sizetype and vice versa.
8614
8615 2008-05-18 Xinliang David Li   <davidxl@google.com>
8616
8617         * gcc/tree-ssa-dce.c: Coding style fix.
8618         (check_pow): Documentation comment.
8619         (check_log): Documenation comment. Coding style fix.
8620         (is_unnecessary_except_errno_call): Ditto.
8621         (gen_conditions_for_pow): Ditto.
8622         (gen_conditions_for_log): Ditto.
8623         (gen_shrink_wrap_conditions): Ditto.
8624         (shrink_wrap_one_built_in_calls): Ditto.
8625         * gcc/doc/invoke.texi: Better documentation string.
8626         * ChangeLog: Fix wrong change log entries from
8627         May 17 checkin on function call DCE.
8628
8629 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
8630
8631         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
8632
8633 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
8634
8635         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
8636         * df-problems.c (simulation routines): Fixed block comment to
8637         properly say how to add forwards scanning functions.
8638
8639 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
8640
8641         * tree-inline.c (setup_one_parameter): Remove dead code.
8642
8643 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
8644
8645         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
8646         a BIT_AND_EXPR only for an INTEGER_TYPE.
8647
8648 2008-05-17 Xinliang David Li   <davidxl@google.com>
8649
8650         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
8651         (check_pow, check_log, is_unnecessary_except_errno_call): New
8652         functions to check for eliminating math functions that are pure
8653         except for setting errno.
8654         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
8655         general condition expressions for shrink-wrapping pow/log calls.
8656         (gen_shrink_wrap_conditions): Ditto.
8657         (shrink_wrap_one_built_in_call): Ditto.
8658         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
8659         (mark_operand_necessary): If debugging, output if OP is necessary.
8660         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
8661         unnecessary.
8662         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
8663         opt level >= 2.
8664         * gcc/common.opt: New user flag -ftree-builtin-dce.
8665         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
8666
8667 2008-05-16  David S. Miller  <davem@davemloft.net>
8668
8669         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
8670         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
8671
8672 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
8673
8674         PR target/36246
8675         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
8676
8677 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
8678
8679         * ifcvt.c (dead_or_predicable): Rename
8680         df_simulate_one_insn_backwards to df_simulate_one_insn.
8681         * recog.c (peephole2_optimize): Ditto.
8682         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
8683         Ditto.
8684         * df.h: Rename df_simulate_one_insn_backwards to
8685         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
8686         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
8687         scanning of defs and uses.
8688         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
8689         (df_simulate_one_insn_forwards): Removed.
8690
8691 2008-05-16  Doug Kwan  <dougkwan@google.com>
8692
8693         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
8694         QNaN & SNaN.
8695         (real_from_string): Handle NaNs and Inf as approriate.
8696
8697 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
8698
8699         * doc/gty.texi (Source Files Containing Type Information): Note
8700         that headers should appear first in the gtfiles list.
8701
8702 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
8703
8704         * tree.def (COND_EXEC): Properly documented this code.
8705
8706 2008-05-16  Diego Novillo  <dnovillo@google.com>
8707
8708         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
8709         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
8710         the new field.
8711
8712 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
8713
8714         * tree-ssa-dse (max_stmt_uid): Removed.
8715         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
8716         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
8717         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
8718         * function.h (cfun.last_stmt_uid): New field.
8719         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
8720         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
8721         New functions.
8722         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
8723         (create_stmt_ann): Initialize the ann->uid field.
8724         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
8725         with new calls.
8726         * tree-flow.h (renumber_gimple_stmt_uids): New function.
8727
8728 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
8729
8730         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
8731         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
8732         (init_empty_tree_cfg): Call it.
8733
8734 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
8735
8736         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
8737         Update all users.
8738
8739 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
8740
8741         * doc/invoke.text (-fdump-tree-*-verbose): New option.
8742         * tree-dump.c (dump_options): New verbose option.
8743         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
8744         Add verbose dump.
8745         * tree-pass.h (TDF_VERBOSE): New dump flag.
8746         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
8747         (tree-flow.h): Added include.
8748         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
8749
8750 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
8751
8752         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
8753
8754         From Jie Zhang  <jie.zhang@analog.com>
8755         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
8756         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
8757         mcpu=bf561-none and mcpu=bf561-0.2.
8758         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
8759         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
8760         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
8761         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
8762         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
8763         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
8764         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
8765         option.
8766         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
8767         (cputype_selected): Remove.
8768         (bfin_handle_option): Don't use cputype_selected.
8769         (override_options): When no mcpu option, enable all workarounds.
8770         Don't use bfin_workarounds.
8771         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
8772         processor type.
8773         (DEFAULT_CPU_TYPE): Don't define.
8774
8775 2008-05-16  Richard Guenther  <rguenther@suse.de>
8776
8777         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
8778         on deletion of the last stmt.
8779
8780 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
8781
8782         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
8783         V8HImode for SSE2 and V16QImode for SSE4.1.
8784
8785 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
8786
8787         * cgraph.h (compute_inline_parameters): Made public.
8788         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
8789         variable_generate_summary, function_write_summary,
8790         variable_write_summary, variable_read_summary.  Added generate_summary,
8791         write_summary, read_summary.
8792         * cgraphunit.c (cgraph_process_new_functions): Changed call from
8793         pass_ipa_inline.function_generate_summary, to
8794         compute_inline_parameters.
8795         * ipa-inline.c (compute_inline_parameters): Made public and added
8796         node parameter.
8797         (compute_inline_parameters_for_current): New function.
8798         (pass_inline_param): Now calls compute_inline_parameters_for_current.
8799         (inline_generate_summary): Removed parameter and made to loop over
8800         all cgraph nodes.
8801         (pass_ipa_inline): Updated for new IPA_PASS structure.
8802         * passes.c (execute_ipa_summary_passes): Now is called once per
8803         pass rather than once per node*pass.
8804
8805 2008-05-15  Anatoly Sokolov <aesok@post.ru>
8806
8807         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
8808         avr_have_mul_p, avr_asm_only_p): Remove variables.
8809         (avr_override_options): Remove initialization of removed variables.
8810         (avr_file_start):  Convert removed variables to fields of
8811         'struct base_arch_s *avr_current_arch'.
8812         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
8813         (AVR_HAVE_MUL): (Ditto.).
8814         (AVR_HAVE_MOVW): (Ditto.).
8815         (AVR_HAVE_LPMX): (Ditto.).
8816         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
8817         avr_asm_only_p): Remove declaration.
8818
8819 2008-05-15  Diego Novillo  <dnovillo@google.com>
8820
8821         * config/arm/arm.c (arm_return_in_memory): Fix return type.
8822         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
8823
8824 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
8825
8826         PR middle-end/36194
8827         * combine.c (check_conversion): Rename back to check_promoted_subreg.
8828         Don't call record_truncated_value from here.
8829         (record_truncated_value): Turn it into a for_each_rtx callback.
8830         (record_truncated_values): New function.
8831         (combine_instructions): Call note_uses with record_truncated_values.
8832         Change name of check_conversion to check_promoted_subreg.
8833
8834 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
8835
8836         * doc/sourcebuild.texi: Document support for torture tests.
8837
8838 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
8839
8840         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
8841         to alternative 4 of operand 2.
8842
8843 2008-05-15  Richard Guenther  <rguenther@suse.de>
8844
8845         * tree-pass.h (current_pass): Declare.
8846         (get_pass_for_id): Likewise.
8847         * passes.c (passes_by_id, passes_by_id_size): New globals.
8848         (set_pass_for_id): New function.
8849         (get_pass_for_id): Likewise.
8850         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
8851         (execute_function_todo): Flush per function statistics.
8852         * toplev.c (compile_file): Init statistics.
8853         (general_init): Do early statistics initialization.
8854         (finalize): Finish statistics.
8855         * statistics.h (statistics_early_init): Declare.
8856         (statistics_init): Likewise.
8857         (statistics_fini): Likewise.
8858         (statistics_fini_pass): Likewise.
8859         (statistics_counter_event): Likewise.
8860         (statistics_histogram_event): Likewise.
8861         * statistics.c: New file.
8862         * Makefile.in (OBJS-common): Add statistics.o.
8863         (statistics.o): Add dependencies.
8864         * doc/invoke.texi (-fdump-statistics): Document.
8865
8866         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
8867         (insert): Likewise.
8868         (execute_pre): Use statistics_counter_event.
8869         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
8870         (substitute_and_fold): Increment it.  Use statistics_counter_event.
8871
8872 2008-05-15  Diego Novillo  <dnovillo@google.com>
8873
8874         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
8875
8876         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
8877         * tree-ssa-alias.c (new_type_alias): Remove references to
8878         sub-variables from comment.
8879         * tree-ssa-operands.c (swap_tree_operands): Likewise.
8880
8881 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
8882
8883         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
8884         attribute to 1 only for insertps alternative.
8885
8886 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
8887
8888         * config/bfin/bfin.md (loadbytes): New pattern.
8889         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
8890         (bfin_init_builtins): Initialize it.
8891         (bdesc_1arg): Add it.
8892
8893 2008-05-15  Sa Liu  <saliu@de.ibm.com>
8894
8895         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
8896         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
8897         * testsuite/lib/target-supports.exp: Add
8898         check_effective_target_fortran_integer_16.
8899
8900 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
8901
8902         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
8903         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
8904         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
8905         (TARGET_RETURN_IN_MEMORY): Define.
8906
8907 2008-05-15  Richard Guenther  <rguenther@suse.de>
8908
8909         PR middle-end/36244
8910         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
8911         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
8912         represent unmodifiable vars.
8913
8914 2008-05-15  Richard Guenther  <rguenther@suse.de>
8915
8916         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
8917         INDIRECT_REF and TARGET_MEM_REF.
8918         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
8919         TARGET_MEM_REF.
8920
8921 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
8922             H.J. Lu  <hongjiu.lu@intel.com>
8923
8924         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
8925         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
8926         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
8927         insn alternatives.  Add missing alternatives.
8928         (*vec_concatv2di_rex64_sse4_1): Likewise.
8929         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
8930         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
8931         Require TARGET_SSE.
8932
8933 2008-05-15  Richard Guenther  <rguenther@suse.de>
8934
8935         PR tree-optimization/36009
8936         PR tree-optimization/36204
8937         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
8938         (determine_invariantness_stmt): Record the loop a store is
8939         always executed in.
8940         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
8941         dependency.
8942
8943 2008-05-15  Richard Guenther  <rguenther@suse.de>
8944
8945         PR tree-optimization/34330
8946         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
8947         through the pointer will alias the SMT.
8948
8949 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
8950
8951         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
8952
8953 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
8954
8955         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
8956
8957 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
8958             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
8959
8960         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
8961         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
8962         (vashl_optab): New optab for vector/vector shifts.
8963         (vashr_optab): Ditto.
8964         (vlshr_optab): Ditto.
8965         (vrotl_optab): Ditto.
8966         (vrotr_optab): Ditto.
8967         (optab_subtype): New enum for optab_for_tree_code call.
8968         (optab_for_tree_code): Add enum optab_subtype argument.
8969
8970         * optabs.c (optab_for_tree_code): Take an additional argument to
8971         distinguish between a vector shift by a scalar and vector shift by
8972         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
8973         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
8974         vector shift by a vector.
8975         (expand_widen_pattern_expr): Pass additional argument to
8976         optab_for_tree_code.
8977
8978         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
8979         vrotl_optab, vrotr_optab.
8980
8981         * expr.c (expand_expr_real_1): Update calls to
8982         optab_for_tree_code to distinguish between vector shifted by a
8983         scalar and vector shifted by a vector.
8984         * tree-vectorizer.c (supportable_widening_operation): Ditto.
8985         (supportable_narrowing_operation): Ditto.
8986         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
8987         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
8988         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
8989         (vect_create_epilog_for_reduction): Ditto.
8990         (vectorizable_reduction): Ditto.
8991         (vectorizable_operation): Ditto.
8992         (vect_strided_store_supported): Ditto.
8993         (vect_strided_load_supported): Ditto.
8994         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
8995         * expmed.c (expand_shift): Ditto.
8996
8997         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
8998         scalar type.
8999         (ashr@var{m}3): Ditto.
9000         (vashl@var{m}3): Document new vector/vector shift standard name.
9001         (vashr@var{m}3): Ditto.
9002         (vlshr@var{m}3): Ditto.
9003         (vrotl@var{m}3): Ditto.
9004         (vrotr@var{m}3): Ditto.
9005
9006         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
9007         (PPERM_INVERT): Ditto.
9008         (PPERM_REVERSE): Ditto.
9009         (PPERM_REV_INV): Ditto.
9010         (PPERM_ZERO): Ditto.
9011         (PPERM_ONES): Ditto.
9012         (PPERM_SIGN): Ditto.
9013         (PPERM_INV_SIGN): Ditto.
9014         (PPERM_SRC1): Ditto.
9015         (PPERM_SRC2): Ditto.
9016
9017         * config/i386/sse.md (mulv2di3): Add SSE5 support.
9018         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
9019         allows a memory operand to be the value being added, and split it
9020         to improve vectorization.
9021         (sse5_pmacsdqh_mem): Ditto.
9022         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
9023         (sse5_mulv2div2di3_high): Ditto.
9024         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
9025         (vec_pack_trunc_v4si): Ditto.
9026         (vec_pack_trunc_v2di): Ditto.
9027         (sse5_pcmov_<mode>): Remove code that tried to use use
9028         andps/andnps instead of pcmov.
9029         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
9030         pmacsdqh instructions.
9031         (vec_widen_smult_lo_v4si): Ditto.
9032
9033         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
9034         (PPERM_INVERT): Ditto.
9035         (PPERM_REVERSE): Ditto.
9036         (PPERM_REV_INV): Ditto.
9037         (PPERM_ZERO): Ditto.
9038         (PPERM_ONES): Ditto.
9039         (PPERM_SIGN): Ditto.
9040         (PPERM_INV_SIGN): Ditto.
9041         (PPERM_SRC1): Ditto.
9042         (PPERM_SRC2): Ditto.
9043         (ix86_expand_sse_movcc): Move the SSE5 test after the if
9044         true/false tests.
9045         (ix86_expand_int_vcond): If SSE5 generate all possible integer
9046         comparisons.
9047         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
9048         says ignore whether the last reference is a memory operand.
9049
9050 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
9051             Paolo Bonzini <bonzini at gnu dot org>
9052
9053         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
9054         shift patterns.
9055
9056         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
9057         (vlshr<mode>3): Rename from vlshr<mode>3.
9058         (vashr<mode>3): Rename from vashr<mode>3.
9059         (mulv4sf3): Change the names of vector shift patterns.
9060         (mulv4si3): Ditto.
9061         (negv4sf2): Ditt.
9062
9063         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
9064         shift insns.
9065
9066         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
9067         (SI_SHLHI): Ditto.
9068         (SI_SHL): Ditto.
9069         (SI_SHLI): Ditto.
9070         (SI_ROTH): Ditto.
9071         (SI_ROTHI): Ditto.
9072         (SI_ROT): Ditto.
9073         (SI_ROTI): Ditto.
9074         (SPU_RL_0): Ditto.
9075         (SPU_RL_1): Ditto.
9076         (SPU_RL_2): Ditto.
9077         (SPU_RL_3): Ditto.
9078         (SPU_RL_4): Ditto.
9079         (SPU_RL_5): Ditto.
9080         (SPU_RL_6): Ditto.
9081         (SPU_RL_7): Ditto.
9082         (SPU_SL_0): Ditto.
9083         (SPU_SL_1): Ditto.
9084         (SPU_SL_2): Ditto.
9085         (SPU_SL_3): Ditto.
9086         (SPU_SL_4): Ditto.
9087         (SPU_SL_5): Ditto.
9088         (SPU_SL_6): Ditto.
9089         (SPU_SL_7): Ditto.
9090
9091         * config/spu/spu.md (v): New iterator macro to add v for vector types.
9092         (floatunssidf2_internal): Change vector/vector shift names.
9093         (floatunsdidf2_internal): Ditto.
9094         (mulv8hi3): Ditto.
9095         (ashrdi3): Ditto.
9096         (ashrti3): Ditto.
9097         (cgt_df): Ditto.
9098         (cgt_v2df): Ditto.
9099         (dftsv): Ditto.
9100         (vashl<mode>3): Rename from ashl<mode>3.
9101         (vashr<mode>3): Rename from ashr<mode>3.
9102         (vlshr<mode>3): Rename from lshr<mode>3.
9103         (vrotl<mode>3): Rename from rotl<mode>3.
9104
9105 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
9106
9107         PR target/36224
9108         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
9109         multiply gives the wrong value when doing widening multiplies.
9110         (vec_widen_smult_lo_v4si): Ditto.
9111
9112 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
9113
9114         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
9115         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
9116         emit_library_call_value.
9117         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
9118         * tree.h (ECF_LIBCALL_BLOCK): Removed.
9119         * calls.c (initialize_argument_information, precompute_arguments,
9120         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
9121         (precompute_arguments): Removed flags parameter.
9122         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
9123
9124 2008-05-14  Richard Guenther  <rguenther@suse.de>
9125
9126         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
9127         Make sure to register the store if the use is a PHI_NODE.
9128
9129 2008-05-14  Olivier Hainque  <hainque@adacore.com>
9130
9131         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
9132         memory if the component is to be referenced in BLKmode according
9133         to get_inner_reference.
9134
9135 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
9136
9137         * calls.c (emit_library_call_value_1): Restore code clearing
9138         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
9139
9140 2008-05-14  Olivier Hainque  <hainque@adacore.com>
9141             Nicolas Roche  <roche@adacore.com>
9142
9143         * configure.ac: Add support for a "gcc_subdir" variable in
9144         config-lang.in, to denote a subdirectory where the language/GCC
9145         integration files are to be found.
9146         * configure: Regenerate.
9147
9148 2008-05-14  Ira Rosen  <irar@il.ibm.com>
9149
9150         PR tree-optimization/36098
9151         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
9152         value for the first load in the group in case of a gap.
9153         (vect_build_slp_tree): Check that there are no gaps in loads.
9154
9155 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
9156
9157         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
9158         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
9159         expand_copysign_bit, ): Change call to emit_no_conflict_block to
9160         emit_insn and remove unneeded code to construct extra args.
9161         (emit_no_conflict_block): Removed.
9162         * optabls.h: (emit_no_conflict_block): Removed.
9163         * cse.c (cse_extended_basic_block): Remove search for
9164         REG_NO_CONFLICT note.
9165         * global.c: Removed incorrect comment added in revision 117.
9166         * expr.c (convert_move): Change call to emit_no_conflict_block to
9167         emit_insn.
9168         * recog.c: Change comments so that they do not mention
9169         REG_NO_CONFLICT.
9170         * local_alloc.c (combine_regs): Removed last parameter.
9171         (no_conflict_p): Removed.
9172         (block_alloc): Removed note, no_conflict_combined_regno and set
9173         local vars. Removed all code to process REG_NO_CONFLICT blocks.
9174         (combine_regs): Removed already_dead and code to look for
9175         REG_NO_CONFLICT notes.
9176         * lower_subreg (remove_retval_note): Removed code to look for
9177         REG_NO_CONFLICT block.
9178         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
9179         (resolve_clobber): Remove code to process libcalls that have
9180         REG_NO_CONFLICT notes.
9181         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
9182         case.
9183         * combine.c (can_combine_p, distribute_notes):  Removed
9184         REG_NO_CONFLICT case.
9185         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
9186         to emit_insns.
9187         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
9188         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
9189         Ditto.
9190         * reg-notes.def (NO_CONFLICT): Removed.
9191
9192 2008-05-14  David S. Miller  <davem@davemloft.net>
9193
9194         * config/sparc/sparc.c (sparc_profile_hook): If
9195         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
9196         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
9197         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
9198
9199 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
9200
9201         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
9202
9203 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
9204
9205         PR target/36222
9206         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
9207         and op1 expansion before vector concat to have less live pseudos.
9208
9209 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
9210
9211         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
9212         ix86_expand_vector_set if supported.
9213
9214 2008-05-13  Diego Novillo  <dnovillo@google.com>
9215             Kenneth Zadeck  <zadeck@naturalbridge.com>
9216
9217         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
9218
9219         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
9220         phinodes_print_statistics, init_ssanames, fini_ssanames,
9221         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
9222         release_ssa_name, release_defs, replace_ssa_name_symbol,
9223         ssanames_print_statistics): Move ...
9224         * tree-flow.h: ... here.
9225         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
9226         Use FN instead of cfun.
9227         (make_ssa_name_fn): Rename from make_ssa_name.
9228         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
9229         * tree-flow-inline.h (make_ssa_name): Move from
9230         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
9231         * omp-low.c (expand_omp_parallel):
9232         * tree-flow-inline.h (redirect_edge_var_map_result):
9233         * tree-ssa.c (init_tree_ssa): Add argument FN.
9234         Use it instead of cfun.  Update all users.
9235
9236 2008-05-13  Tom Tromey  <tromey@redhat.com>
9237
9238         PR preprocessor/22168:
9239         * doc/cpp.texi (Top): Update menu.
9240         (Alternatives to Wrapper #ifndef): New node.
9241         (Other Directives): Document deprecation.
9242         (Obsolete Features): Remove menu.
9243         (Assertions): Merge node into Obsolete Features.
9244         (Obsolete once-only headers): Move earlier; rename to Alternatives
9245         to Wrapper #ifndef.
9246         * doc/cppopts.texi: Update.
9247         * c.opt (Wdeprecated): Enable for C and ObjC.
9248         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
9249         (C++ Dialect Options): Move -Wno-deprecated from here to...
9250         (Warning Options): ... here.
9251
9252 2008-05-13  Richard Guenther  <rguenther@suse.de>
9253
9254         PR middle-end/36227
9255         * fold-const.c (fold_sign_changed_comparison): Do not allow
9256         changes in pointer-ness.
9257
9258 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
9259
9260         PR target/24713
9261         * config/sh/sh.c (sh_expand_prologue): Don't clear
9262         RTX_FRAME_RELATED_P for push insns.
9263
9264 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
9265
9266         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
9267
9268 2008-05-12  Anatoly Sokolov <aesok@post.ru>
9269
9270         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
9271         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
9272         Use 'machine->is_leaf' instead of 'leaf_func_p'.
9273
9274 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
9275
9276         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
9277         (*vec_concatv4sf_sse): This.
9278         (*sse2_concatv2si): Renamed to ...
9279         (*vec_concatv2si_sse2): This.
9280         (*sse1_concatv2si): Renamed to ...
9281         (*vec_concatv2si_sse): This.
9282         (*vec_concatv2di_rex): Renamed to ...
9283         (*vec_concatv2di_rex64): This.
9284         (*vec_concatv2si_sse4_1): New.
9285         (*vec_concatv2di_rex64_sse4_1): Likewise.
9286
9287 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
9288
9289         PR rtl-optimization/36111
9290         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
9291         that was created for swappable operands.
9292
9293 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
9294
9295         PR ada/36001
9296         * Makefile.in: Substitute GNATMAKE and GNATBIND.
9297         * configure.ac: Add call to ACX_PROG_GNAT.
9298
9299 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
9300
9301         * optc-gen.awk: Fix comment typo.
9302
9303 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
9304
9305         * pretty-print.c (pp_integer_with_precision): Use
9306         HOST_LONG_LONG_FORMAT.
9307
9308 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
9309
9310         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
9311
9312 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
9313
9314         * config/i386/i386.c (bdesc_ptest): Removed.
9315         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
9316         (bdesc_args): Add __builtin_ia32_ptestz128,
9317         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
9318         (ix86_init_mmx_sse_builtins): Updated.
9319         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
9320         (ix86_expand_builtin): Updated.
9321
9322 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
9323
9324         * tree-cfg.c (valid_fixed_convert_types_p): New function.
9325         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
9326
9327 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
9328
9329         * value-prof.c (interesting_stringop_to_profile): Do not
9330         return early for BUILT_IN_MEMPCPY.
9331
9332 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
9333
9334         * calls.c (expand_call): Don't use callgraph to increase
9335         preferred_stack_boundary.
9336
9337         * cgraph.h (cgraph_rtl_info): Use unsigned on
9338         preferred_incoming_stack_boundary.
9339
9340         * final.c (rest_of_clean_state): Use unsigned on
9341         preferred_stack_boundary.
9342
9343 2008-05-09  Tom Tromey  <tromey@redhat.com>
9344
9345         PR preprocessor/22231:
9346         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
9347         proceeding.
9348
9349 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
9350
9351         PR tree-optimization/36129
9352         * tree-ssa-ccp.c: Include value-prof.h.
9353         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
9354         built-in function was folded to a constant.
9355         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
9356
9357 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
9358             Sebastian Pop  <sebastian.pop@amd.com>
9359
9360         * tree-scalar-evolution.c: Document instantiate_scev.
9361         (instantiate_parameters_1): Renamed instantiate_scev_1.
9362         Don't use the same loop for instantiation_loop and evolution_loop.
9363         (instantiate_scev): New.
9364         (instantiate_parameters): Moved...
9365         (resolve_mixers): Update call to instantiate_scev_1 to pass the
9366         same loop twice.  Maintains the semantics for this function.
9367         * tree-scalar-evolution.h (instantiate_scev): Declare.
9368         (instantiate_parameters): ...here.  Now static inline.
9369         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
9370         instead of resolve_mixers.
9371
9372 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
9373
9374         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
9375
9376 2008-05-09  Tomas Bily  <tbily@suse.cz>
9377
9378         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
9379         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
9380         * tree-ssa-structalias.c (get_constraint_for): Likewise.
9381         * c-common.c (c_common_truthvalue_conversion): Likewise.
9382         * tree-object-size.c (compute_object_offset): Likewise.
9383         * tree-inline.c (estimate_num_insns_1): Likewise.
9384         * varasm.c (const_hash_1, compare_constant, copy_constant)
9385         (compute_reloc_for_constant, output_addressed_constants)
9386         (initializer_constant_valid_p): Likewise.
9387         * c-omp.c (check_omp_for_incr_expr): Likewise.
9388         * gimplify.c (gimplify_expr): Likewise.
9389         * c-typeck.c (c_finish_return): Likewise.
9390         * tree-vectorizer.c (supportable_widening_operation)
9391         (supportable_narrowing_operation): Likewise.
9392         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
9393         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
9394         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
9395         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
9396         (descr_info_loc): Likewise.
9397         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
9398         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
9399         (fold_unary): Likewise.
9400         * builtins.c (get_pointer_alignment): Likewise.
9401         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
9402         (instantiate_parameters_1): Likewise.
9403         * tree.c (expr_align, stabilize_reference): Likewise.
9404         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
9405         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
9406         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
9407         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
9408         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
9409         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
9410         Likewise.
9411         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
9412         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
9413         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
9414         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
9415         (forward_propagate_comparison)
9416         (tree_ssa_forward_propagate_single_use_vars): Likewise.
9417         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
9418         * emit-rtl.c (component_ref_for_mem_expr)
9419         (set_mem_attributes_minus_bitpos): Likewise.
9420         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
9421         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
9422         Likewise.
9423         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
9424         (build_function_call, pointer_diff, build_compound_expr)
9425         (c_finish_return): Likewise.
9426         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
9427         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
9428         Likewise.
9429         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
9430         * expr.c (is_aligning_offset): Likewise.
9431         * tree-ssa-alias.c (is_escape_site): Likewise.
9432         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
9433         (check_all_va_list_escapes): Likewise.
9434         * tree-ssa-loop-ivopts.c (determine_base_object)
9435         (determine_common_wider_type): Likewise.
9436         * dojump.c (do_jump): Likewise.
9437         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
9438         * tree-gimple.c (is_gimple_cast): Likewise.
9439         * fold-const.c (decode_field_reference, )
9440         (fold_sign_changed_comparison, fold_unary, fold_comparison)
9441         (fold_binary): Likewise.
9442         * tree-ssa-alias-warnings.c (find_alias_site_helper)
9443         (already_warned_in_frontend_p): Likewise.
9444         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
9445         * tree.c (really_constant_p, get_unwidened): Likewise.
9446         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
9447         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
9448         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
9449         Likewise.
9450         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
9451         CONVERT_EXPR_P.
9452         (CONVERT_EXPR_P): Define.
9453         (CASE_CONVERT): Define.
9454
9455 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
9456
9457         PR middle-end/36117
9458         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
9459         (delete_unmarked_insns): When deleting a call, call
9460         delete_unreachable_blocks.
9461         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
9462         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
9463
9464 2008-05-08  Richard Guenther  <rguenther@suse.de>
9465
9466         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
9467         (-ftree-salias): Likewise.
9468         (salias-max-implicit-fields): Remove param documentation.
9469         (salias-max-array-elements): Likewise.
9470         * tree-pass.h (pass_create_structure_vars): Remove.
9471         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
9472         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
9473         * tree-ssa-alias.c (create_structure_vars): Remove.
9474         (gate_structure_vars): Likewise.
9475         (pass_create_structure_vars): Likewise.
9476         (gate_build_alias): Likewise.
9477         (pass_build_alias): Adjust to run always and dump the function.
9478         * common.opt (ftree-salias): Hide.
9479         * passes.c (init_optimization_passes): Remove
9480         pass_create_structure_vars, adjust comment.
9481         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
9482         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
9483         * opts.c (decode_options): Do not set flag_tree_salias.
9484         (common_handle_option): Add OPT_ftree_salias to the backward
9485         compatibility section.
9486
9487 2008-05-08  Richard Guenther  <rguenther@suse.de>
9488
9489         * tree-flow-inline.h (var_can_have_subvars): Move ...
9490         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
9491         * tree-flow.h (var_can_have_subvars): Remove.
9492         (push_fields_onto_fieldstack): Remove.
9493         (sort_fieldstack): Likewise.
9494         (struct fieldoff): Move ...
9495         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
9496         alias_set and base_for_components fields.
9497         (sort_fieldstack): Make static.
9498         (push_fields_onto_fieldstack): Likewise.  Remove code that
9499         handles anything but RECORD_TYPEs.  Remove alias_set and
9500         base_for_components handling.
9501         (create_variable_info_for): Adjust.
9502
9503 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
9504
9505         * common.opt (Wframe-larger-than=): Shorten the help message
9506         to one line.
9507         * doc/invoke.texi (Wframe-larger-than=): Add more description.
9508
9509 2008-05-08  Rafael Espindola  <espindola@google.com>
9510
9511         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
9512         trap.
9513         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
9514         trap and that both operands are gimple values.
9515         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
9516         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
9517         is a fp operation.
9518
9519 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
9520
9521         * read-rtl.c (join_c_conditions): Return the first string if the
9522         two strings are equal.
9523
9524 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
9525
9526         * gensupport.h (pred_data): Add a "num_codes" field.
9527         (add_predicate_code): Declare.
9528         * gensupport.c (add_predicate_code): New function.
9529         (std_pred_table): Add an "allows_const_p" field.
9530         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
9531         Remove the (incomplete) list of such codes from the codes field.
9532         (init_predicate_table): Use add_predicate_code.  Add all
9533         RTX_CONST_OBJs if allows_const_p is true.
9534         * genrecog.c (process_define_predicate): Use add_predicate_code.
9535
9536 2008-05-08  David Daney  <ddaney@avtrex.com>
9537             Richard Sandiford  <rsandifo@nildram.co.uk>
9538
9539         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
9540         special case of constant zero operands.
9541         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
9542         old and new values.  Special case constant zero values.
9543         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
9544         fails.
9545         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
9546         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
9547
9548 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
9549
9550         PR target/36090
9551         * simplify-rtx.c (simplify_plus_minus): Create CONST of
9552         similar RTX_CONST_OBJ before CONST_INT.
9553
9554 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
9555
9556         * stmt.c (expand_stack_restore): Change sa mode if needed.
9557
9558 2008-05-08  Richard Guenther  <rguenther@suse.de>
9559
9560         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
9561         return type to bool.
9562         (ix86_sol10_return_in_memory): Likewise.
9563         (ix86_i386elf_return_in_memory): Likewise.
9564         (ix86_i386interix_return_in_memory): Likewise.
9565         * config/i386/i386.c (ix86_return_in_memory): Likewise.
9566         (ix86_sol10_return_in_memory): Likewise.
9567         (ix86_i386elf_return_in_memory): Likewise.
9568         (ix86_i386interix_return_in_memory): Likewise.
9569
9570 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
9571
9572         PR bootstrap/36180
9573         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
9574         fndecl argument.
9575         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
9576         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
9577         declared in front.
9578
9579 2008-05-08  Richard Guenther  <rguenther@suse.de>
9580
9581         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
9582         * tree-data-ref.h (struct dr_alias): Remove subvars field.
9583         (DR_SUBVARS): Remove.
9584         * tree-dfa.c (dump_subvars_for): Remove.
9585         (debug_subvars_for): Likewise.
9586         (dump_variable): Do not dump subvars.
9587         (remove_referenced_var): Do not remove subvars.
9588         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
9589         (lookup_subvars_for_var): Remove.
9590         (get_subvars_for_var): Likewise.
9591         (get_subvars_at): Likewise.
9592         (get_first_overlapping_subvar): Likewise.
9593         (overlap_subvar): Likewise.
9594         * tree-flow.h (subvar_t): Remove.
9595         (struct var_ann_d): Remove subvars field.
9596         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
9597         argument.  Remove special handling of SFTs.
9598         (compute_tag_properties): Likewise.
9599         (set_initial_properties): Likewise.
9600         (compute_call_clobbered): Likewise.
9601         (count_mem_refs): Likewise.
9602         (compute_memory_partitions): Likewise.
9603         (compute_flow_insensitive_aliasing): Likewise.
9604         (setup_pointers_and_addressables): Likewise.
9605         (new_type_alias): Likewise.
9606         (struct used_part): Remove.
9607         (used_portions): Likewise.
9608         (struct used_part_map): Likewise.
9609         (used_part_map_eq): Likewise.
9610         (used_part_map_hash): Likewise.
9611         (free_used_part_map): Likewise.
9612         (up_lookup): Likewise.
9613         (up_insert): Likewise.
9614         (get_or_create_used_part_for): Likewise.
9615         (create_sft): Likewise.
9616         (create_overlap_variables_for): Likewise.
9617         (find_used_portions): Likewise.
9618         (create_structure_vars): Likewise.
9619         * tree.def (STRUCT_FIELD_TAG): Remove.
9620         * tree.h (MTAG_P): Adjust.
9621         (struct tree_memory_tag): Remove base_for_components and
9622         unpartitionable flags.
9623         (struct tree_struct_field_tag): Remove.
9624         (SFT_PARENT_VAR): Likewise.
9625         (SFT_OFFSET): Likewise.
9626         (SFT_SIZE): Likewise.
9627         (SFT_NONADDRESSABLE_P): Likewise.
9628         (SFT_ALIAS_SET): Likewise.
9629         (SFT_UNPARTITIONABLE_P): Likewise.
9630         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
9631         (union tree_node): Remove sft field.
9632         * alias.c (get_alias_set): Remove special handling of SFTs.
9633         * print-tree.c (print_node): Remove handling of SFTs.
9634         * tree-dump.c (dequeue_and_dump): Likewise.
9635         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
9636         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
9637         * tree-predcom.c (set_alias_info): Do not set subvars.
9638         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
9639         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
9640         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
9641         (add_vars_for_offset): Remove.
9642         (add_virtual_operand): Remove special handling of SFTs.
9643         (add_call_clobber_ops): Likewise.
9644         (add_call_read_ops): Likewise.
9645         (get_asm_expr_operands): Likewise.
9646         (get_modify_stmt_operands): Likewise.
9647         (get_expr_operands): Likewise.
9648         (add_to_addressable_set): Likewise.
9649         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
9650         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
9651         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
9652         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
9653         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
9654         (tree_node_structure): Likewise.
9655         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
9656         handling of SFTs.
9657         (find_what_p_points_to): Likewise.
9658
9659 2008-05-08  Sa Liu  <saliu@de.ibm.com>
9660
9661         * config/spu/spu.md: Fixed subti3 pattern.
9662
9663 2008-05-08  Richard Guenther  <rguenther@suse.de>
9664
9665         PR middle-end/36154
9666         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
9667         sure to create a representative for trailing arrays for PTA.
9668
9669 2008-05-08  Richard Guenther  <rguenther@suse.de>
9670
9671         PR middle-end/36172
9672         * fold-const.c (operand_equal_p): Two objects which types
9673         differ in pointerness are not equal.
9674
9675 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
9676
9677         * calls.c (compute_argument_block_size): Add argument tree fndecl.
9678         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
9679         (emit_library_call_value_1): Add new variable fndecl initialized by
9680         NULL_TREE. It should be the decl type of orgfun, but this information
9681         seems not to be available here, so it uses the default calling abi.
9682         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
9683         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
9684         by TARGET_RETURN_IN_MEMORY.
9685         * config/i386/i386-interix.h: Likewise.
9686         * config/i386/i386.h: Likewise.
9687         * config/i386/i386elf.h: Likewise.
9688         * config/i386/ptx4-i.h: Likewise.
9689         * config/i386/sol2-10.h: Likewise.
9690         * config/i386/sysv4.h: Likewise.
9691         * config/i386/vx-common.h: Likewise.
9692         * config/cris/cris.h: Removed #if 0 clause.
9693         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
9694         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
9695         argument.
9696         (ix86_sol10_return_in_memory): Likewise.
9697         (ix86_i386elf_return_in_memory): New.
9698         (ix86_i386interix_return_in_memory): New.
9699         * config/mt/mt-protos.h (mt_return_in_memory): New.
9700         * config/mt/mt.c: Likewise.
9701         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
9702         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
9703         * config/bfin/bfin.h: Likewise.
9704         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
9705         argument.
9706         * config/bfin/bfin.c: Likewise.
9707         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
9708         * config/alpha/unicosmk.h: Likewise.
9709         * config/i386/cygming.h: Likewise.
9710         * config/iq2000/iq2000.h: Likewise.
9711         * config/mips/mips.h: Likewise.
9712         * config/mn10300/mn10300.h: Likewise.
9713         * config/rs6000/rs6000.h: Likewise.
9714         * config/score/score.h: Likewise.
9715         * config/spu/spu.h: Likewise.
9716         * config/v850/v850.h: Likewise.
9717         * defaults.h: Likewise.
9718         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
9719         * expr.c (emit_block_move): Adjust use of
9720         OUTGOING_REG_PARM_STACK_SPACE.
9721         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
9722         OUTGOING_REG_PARM_STACK_SPACE.
9723         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
9724
9725 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
9726
9727         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
9728         on OMP_RETURN for OMP_FOR.
9729
9730         PR debug/35896
9731         * dwarf2out.c (dw_expand_expr, common_check): Removed.
9732         (fortran_common): New function.
9733         (gen_variable_die): Call fortran_common instead of common_check,
9734         adjust for it returning tree instead of rtx.  Formatting.
9735
9736 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
9737
9738         PR rtl/7335
9739         PR rtl/33826
9740         * see.c (see_copy_insn): Copy new pure const attributes for new call.
9741         * c-decl.c (merge_decls): Ditto.
9742         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
9743         to RTL_CONST_OR_PURE_CALL_P.
9744         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
9745         Initialized DECL_LOOPING_CONST_PURE.
9746         (process_call_operands): Set tree_side_effects properly.
9747         * tree.h (TREE_READONLY_DECL_P): Removed.
9748         (DECL_IS_PURE): Renamed to DECL_PURE_P.
9749         (DECL_LOOPING_OR_CONST_P): New macro.
9750         (struct tree_function_decl): Added looping_const_or_pure_p.
9751         (ECF_*) Renumbered.
9752         (ECF_LOOPING_OR_CONST_P): New macro.
9753         * rtlanal.c (pure_const_p): Removed.
9754         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
9755         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
9756         to RTL_CONST_CALL_P.
9757         * ipa-pure-const.c (pure_const_state_e): Added looping field.
9758         (check_decl, check_tree, check_call, scan_function): Initialize
9759         looping.
9760         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
9761         (static_execute): Set looping true for recursive functions.
9762         Undo setting state to IPA_NEITHER for recursive functions.
9763         * cse.c (cse_insn):
9764         * ifcvt.c (noce_can_store_speculate_p): Changed
9765         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
9766         RTL_CONST_OR_PURE_CALL_P.
9767         * dse.c (scan_insn): Ditto.
9768         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
9769         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
9770         RTL_CONST_OR_PURE_CALL_P.
9771         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
9772         pure_call_p to RTL_CONST_CALL_P.
9773         * gimplify.c (gimplify_call_expr): Clear side effects for
9774         non-looping pure and constant calls.
9775         * calls.c (emit_call_1): Set rtl flags from ecf flags.
9776         (flags_from_decl_or_type): Set ecf flags from decl flags.
9777         (initialize_argument_information): Turn off
9778         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
9779         Change const to pure if callee_copies is true rather than just
9780         turning off const.
9781         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
9782         way of marking pure calls.
9783         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
9784         Remove hack that was supposed to fix pr7335 and remove old
9785         way of marking pure calls.
9786         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
9787         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
9788         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
9789         RTL_CONST_OR_PURE_CALL_P.
9790         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
9791         * loop-invariant.c (find_exits, find_invariant_bb): Changed
9792         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
9793         * sched-deps.c (schedule_analyze): Ditto.
9794         * rtl.h (struct rtx_def): Use call field, unchanging field, and
9795         return_val field of calls to represent pure and const function info.
9796         (CONST_OR_PURE_CALL_P): Deleted macro.
9797         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
9798         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
9799         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
9800         TREE_READONLY.
9801         * tree-optimize.c (execute_fixup_cfg): Added test for
9802         ECF_LOOPING_CONST_OR_PURE.
9803         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
9804         DECL_PURE_P.
9805         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
9806         effects for looping pure or const calls.
9807         (verify_gimple_expr): Added verification code.
9808         * config/alpha/alpha.c (alpha_legitimize_address,
9809         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
9810         RTL_CONST_CALL_P.
9811         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
9812         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
9813         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
9814         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
9815         RTL_CONST_OR_PURE_CALL_P.
9816         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
9817         and const calls to be deleted.
9818
9819 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
9820
9821         PR target/35714
9822         * config/i386/mmx.md (mmx_subv2sf3): New expander.
9823         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
9824         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
9825         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
9826         to handle nonimmediate operands.
9827         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
9828         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
9829         to handle nonimmediate operands.
9830         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
9831         (mmx_pmulhrwv4hi3): New expander.  Use
9832         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9833         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
9834         (sse2_umulv1siv1di3): New expander.  Use
9835         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9836         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
9837         (mmx_eq<mode>3): New expander.  Use
9838         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9839         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
9840         (mmx_uavgv8qi3): New expander.  Use
9841         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9842         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
9843         (mmx_uavgv4hi3): New expander.  Use
9844         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9845
9846         * config/i386/sse.md
9847         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
9848         to handle nonimmediate operands.
9849         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
9850         to handle nonimmediate operands.
9851         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
9852         to handle nonimmediate operands.
9853         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
9854         to handle nonimmediate operands.
9855         (sse2_unpckhpd_exp): New expander.  Use
9856         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9857         (sse2_unpcklpd_exp): New expander.  Use
9858         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9859         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
9860         to handle nonimmediate operands.
9861         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
9862         to handle nonimmediate operands.
9863         (*sse2_<plusminus_insn><mode>3): Rename from
9864         sse2_<plusminus_insn><mode>3 insn pattern.
9865         (sse2_<plusminus_insn><mode>3): New expander.  Use
9866         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9867         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
9868         (sse2_umulv2siv2di3): New expander.  Use
9869         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9870         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
9871         (sse4_1_mulv2siv2di3): New expander.  Use
9872         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9873         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
9874         (sse2_pmaddwd): New expander.  Use
9875         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9876         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
9877         (sse2_eq<mode>3): New expander.  Use
9878         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9879         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
9880         (sse4_1_eqv2di3): New expander.  Use
9881         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9882         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
9883         (sse2_uavgv16qi3): New expander.  Use
9884         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9885         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
9886         (sse2_uavgv16qi3): New expander.  Use
9887         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9888         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
9889         (sse2_uavgv8hi3): New expander.  Use
9890         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9891         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
9892         (ssse3_pmulhrswv8hi3): New expander.  Use
9893         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9894         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
9895         (ssse3_pmulhrswv4hi3): New expander.  Use
9896         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9897
9898         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
9899         (<sse>_vmmul<mode>3): Ditto.
9900         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
9901         (divv2df3): Ditto.
9902         (ssse3_pmaddubsw128): Use register_operand for operand 1.
9903         (ssse3_pmaddubsw): Ditto.
9904
9905         * config/i386/i386.c (struct_builtin_description)
9906         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
9907         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
9908         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
9909         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
9910         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
9911         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
9912         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
9913         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
9914         (ix86_fixup_binary_operands): Assert that src1
9915         and src2 must have the same mode when swapped.
9916         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
9917         and ix86_binary_operator_ok.  Do not force operands in registers
9918         when optimizing.
9919
9920 2008-05-07  Jan Hubicka  <jh@suse.cz>
9921
9922         * cgraph.c (dump_cgraph_node): Update.
9923         * cgraph.h (cgraph_local_info): Break out inline summary.
9924         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
9925         hook.
9926         * ipa-inline (inline_summary): New accestor function.
9927         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
9928         cgraph_decide_inlining, compute_inline_parameters): Update.
9929         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
9930
9931 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
9932
9933         Cleanup ColdFire scheduling support and add V4 pipeline model.
9934
9935         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
9936         (define_attr cpu): Add cfv4 value.
9937         (define_attr type, define_attr type1): Merge into a single 'type'
9938         attribute.  Update all uses.
9939         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
9940         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
9941         Update all uses.
9942         (define_attr opx_mem, define_attr opy_mem): Remove.
9943         (define_attr op_mem): Clean up, update comment.
9944         (define_attr size): Use specific values instead of general int.
9945         (define_attr guess, define_attr split): Remove.  Update all uses.
9946         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
9947         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
9948         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
9949         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
9950         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
9951         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
9952         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
9953         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
9954         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
9955         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
9956         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
9957         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
9958         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
9959         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
9960         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
9961         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
9962         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
9963         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
9964         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
9965         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
9966         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
9967         Update or set attributes.
9968         (stack_tie): New fake instruction.
9969
9970         * config/m68k/m68k.h (TUNE_CFV4): New macro.
9971         (m68k_sched_attr_size): Update declaration.
9972         (m68k_sched_attr_type2): Remove.
9973         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
9974         Declare new bypass predicates.
9975
9976         * config/m68k/m68k.c (m68k_sched_issue_rate,
9977         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
9978         implementations.
9979         (TARGET_SCHED_ISSUE_RATE,
9980         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
9981         (override_options): Handle scheduling for ColdFire V4 core.
9982         (m68k_expand_prologue): Emit stack_tie.
9983         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
9984         'OP_TYPE_FPN'.  Update all uses.
9985         (sched_guess_p): Remove.
9986         (sched_address_type): Handle symbolic addresses.
9987         (sched_get_operand): New static function.
9988         (sched_operand_type): Merge into sched_attr_op_type.
9989         (sched_attr_op_type): Handle FP registers, handle quick constants,
9990         update.
9991         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
9992         (m68k_sched_attr_size): Update.  Move logic to ...
9993         (sched_get_attr_size_int): New static function.
9994         (sched_get_opxy_mem_type): New static function.
9995         (m68k_sched_attr_op_mem): Update.
9996         (m68k_sched_attr_type2): Remove.
9997         (sched_cfv4_bypass_data): New static variable.
9998         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
9999         (m68k_sched_issue_rate): Implement scheduler hook.
10000         (struct _sched_ib: enabled_p): New field.
10001         (m68k_sched_variable_issue): Update.  Handle V4.
10002         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
10003         sched_dump_class_func_t, sched_dump_split_class,
10004         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
10005         sched_dump_dfa_class, m68k_sched_dump): Remove.
10006         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
10007         hook.
10008         (m68k_sched_init_global): Remove statisctics dumping, introduce
10009         sanity check that all instructions have pipeline reservations.  Handle
10010         ColdFire V4 core.
10011         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
10012         Handle ColdFire V4 core.
10013         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
10014         New static functions.
10015         (m68k_sched_address_bypass_p): New bypass predicate.
10016         (sched_get_indexed_address_scale): New static function.
10017         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
10018
10019         * cf.md: Update comments.
10020         (define_attr type2): Remove.  Use 'type' attribute instead.
10021         Update all uses.
10022         (cf_ib): Rename to cfv123_ib.  Update all uses.
10023         (cf_oep): Rename to cfv123_oep.  Update all uses.
10024         (cf_chr): Rename to cfv123_chr.  Update all uses.
10025         (cf_mem): Rename to cfv123_mem.  Update all uses.
10026         (cf_mac): Move to more appropriate place.
10027         (cfv123_guess): New automaton and cpu_unit.
10028         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
10029         Update uses of 'size' attribute.  Handle before reload scheduling.
10030         (cfv123_guess): New dummy reservation for unhandled instructions.
10031         (cfv4_*): Pipeline description of ColdFire V4 core.
10032         (ignore): New reservation to handle 'ignore' type.
10033
10034 2008-05-07  Ian Lance Taylor  <iant@google.com>
10035
10036         PR middle-end/36013
10037         * gimplify.c (find_single_pointer_decl_1): Don't look through
10038         indirections.
10039         (find_single_pointer_decl): Adjust comments.
10040
10041 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
10042
10043         PR middle-end/36137
10044         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
10045         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
10046
10047         PR middle-end/36106
10048         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
10049         integral type rather than floating point, then VIEW_CONVERT_EXPR
10050         to the floating point type.
10051
10052 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
10053
10054         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
10055         TFmode op0 to register.
10056
10057 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
10058
10059         * c-decl.c (grokdeclarator): Comment typo.
10060
10061 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
10062
10063         * tree-flow.h: Remove prototype for computed_goto_p.
10064         * tree-cfg.c (computed_goto_p): Make static.
10065
10066 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
10067
10068         PR target/35657
10069         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
10070         (contains_aligned_value_p): This.  Handle _Decimal128.
10071         (ix86_function_arg_boundary): Only align _Decimal128 to its
10072         natural boundary and handle it properly.
10073
10074 2008-05-06  Martin Jambor  <mjambor@suse.cz>
10075
10076         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
10077         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
10078         (ipcp_method_set_orig_node): Removed.
10079         (ipcp_cval_get_cvalue_type): Removed.
10080         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
10081         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
10082         (ipcp_cval_set_cvalue_type): Removed.
10083         (ipcp_cval_get_cvalue): Removed.
10084         (ipcp_cval_set_cvalue): Removed.
10085         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
10086         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
10087         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
10088         (ipcp_cval_meet): Renamed to ipa_lattice_meet
10089         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
10090         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
10091         (ipcp_get_ith_lattice): Changed parameters.
10092         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
10093         (ipcp_lattice_from_jfunc): Changed parameters.
10094         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
10095         (ipcp_method_cval_print): Added temporary variable info.
10096         (ipcp_redirect): Removed already unused local variable caller.
10097         (ipcp_redirect): New temporary variable orig_callee_info
10098         (ipcp_redirect): Removed newly unused local variable callee.
10099         (ipcp_redirect): Removed (a bit confusing) local variable type.
10100         (ipcp_insert_stage): Added local variable info.
10101         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
10102         renamed too
10103         (ipcp_formal_create): Removed.
10104         (ipcp_method_cval_set): Removed.
10105         (ipcp_propagate_stage): Renamed lattice variables.
10106         (ipcp_method_cval_set_cvalue_type): Removed.
10107         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
10108         (ipcp_print_all_lattices): Changed printed strings to refer to
10109         lattices rather than cvals.
10110         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
10111         (ipcp_propagate_const): Changed formal parameters.
10112         (build_const_val): Changed formal parameters.
10113         (ipcp_insert_stage): Removed useless variable cvalue
10114         (build_const_val): Changed formal parameters.
10115         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
10116         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
10117         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
10118         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
10119         (ipcp_print_func_profile_counts): Changed string from "method" to
10120         "function"
10121         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
10122         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
10123         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
10124         (ipcp_structures_print): Renamed to ipcp_print_all_structures
10125         (ipcp_profile_print): Renamed to ipcp_print_profile_data
10126         (ipcp_lat_is_const): Changed parameters and made inline.
10127         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
10128         (ipcp_redirect): Renamed to ipcp_need_redirect_p
10129         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
10130         the predicate condition directly
10131         (ipcp_propagate_stage): Added local variable args. Removed local
10132         variable callee.  (Both are mere code simplifications.)
10133         (ipcp_method_dont_insert_const): Renamed to
10134         ipcp_node_not_modifiable_p.
10135         (ipcp_node_not_modifiable_p): Made inline.
10136         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
10137         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
10138         (ipcp_print_all_lattices): Removed variable cvalue
10139         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
10140         Updated comments.
10141
10142 2008-05-06  Olivier Hainque  <hainque@adacore.com>
10143
10144         * tree-sra.c (try_instantiate_multiple_fields): Early return
10145         if field has POINTER_TYPE.
10146
10147 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
10148
10149         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
10150         by using 'q' specifier for instruction.
10151         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
10152
10153 2008-05-06  Anatoly Sokolov <aesok@post.ru>
10154
10155         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
10156         Change mode of zero_extract from QImode to HImode.
10157         (sign bit tests peepholes): (Ditto.).
10158
10159 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
10160
10161         * config/i386/mmx.md: Remove double backslashes from asm templates.
10162         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
10163         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
10164         to handle nonimmediate operands.
10165         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
10166         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
10167         to handle nonimmediate operands.
10168         (*mmx_<code>v2sf3_finite): New insn pattern.
10169         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
10170         (mmx_<code>v2sf3): New expander.  Use
10171         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10172         (mmx_<plusminus_insn><mode>3): New expander.  Use
10173         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10174         (*mmx_<plusminus_insn><mode>3): New insn pattern.
10175         (mmx_add<mode>3): Removed.
10176         (mmx_ssadd<mode>3): Ditto.
10177         (mmx_usadd<mode>3): Ditto.
10178         (mmx_sub<mode>3): Ditto.
10179         (mmx_sssub<mode>3): Ditto.
10180         (mmx_ussub<mode>3): Ditto.
10181         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
10182         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
10183         to handle nonimmediate operands.
10184         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
10185         insn pattern.
10186         (mmx_smulv4hi3_highpart): New expander.  Use
10187         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10188         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
10189         insn pattern.
10190         (mmx_umulv4hi3_highpart): New expander.  Use
10191         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10192         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
10193         (mmx_<code>v4hi3): New expander.  Use
10194         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10195         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
10196         (mmx_<code>v8qi3): New expander.  Use
10197         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10198         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
10199         (mmx_<code><mode>3): New expander.  Use
10200         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10201
10202 2008-05-05  Jan Hubicka  <jh@suse.cz>
10203
10204         PR tree-optimization/36118
10205         * passes.c (pass_init_dump_file): Fix dump header.
10206
10207 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10208
10209         PR middle-end/36141
10210         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
10211         VCE for function decls.
10212
10213 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
10214
10215         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
10216
10217 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
10218
10219         * config/i386/i386.md (sat_plusminus): New.
10220         (plusminus_insn): Likewise.
10221         (plusminus_mnemonic): Likewise.
10222         (addsub): Removed.
10223         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
10224         (*<addsub><mode>3_cc_overflow): Renamed to ...
10225         (*<plusminus_insn><mode>3_cc_overflow): This.
10226         (*<addsub>si3_zext_cc_overflow): Renamed to ...
10227         (*<plusminus_insn>si3_zext_cc_overflow): This.
10228
10229         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
10230         (<plusminus_insn><mode>3): This.
10231         (*<addsub><mode>3): Renamed to ...
10232         (*<plusminus_insn><mode>3): This.
10233         (<sse>_vm<addsub><mode>3): Renamed to ...
10234         (<sse>_vm<plusminus_insn><mode>3): This.
10235         (sse3_h<addsub>v4sf3): Renamed to ...
10236         (sse3_h<plusminus_insn>v4sf3): This.
10237         (sse3_h<addsub>v2df3): Renamed to ...
10238         (sse3_h<plusminus_insn>v2df3): This.
10239         (<plusminus_insn><mode>3): New.
10240         (*<plusminus_insn><mode>3): Likewise.
10241         (sse2_<plusminus_insn><mode>3): Likewise.
10242         (add<mode>): Removed.
10243         (*add<mode>3): Likewise.
10244         (sse2_ssadd<mode>3): Likewise.
10245         (sse2_usadd<mode>3): Likewise.
10246         (sub<mode>3): Likewise.
10247         (*sub<mode>3): Likewise.
10248         (sse2_sssub<mode>3): Likewise.
10249         (sse2_ussub<mode>3): Likewise.
10250
10251 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
10252
10253         * gthr-single.h: Add in required interface elements as per gthr.h.
10254         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
10255         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
10256         Generalize UNUSED macro.
10257         (__gthread_once): Add.
10258         (__gthread_key_create): Add.
10259         (__gthread_key_delete): Add.
10260         (__gthread_getspecific): Add.
10261         (__gthread_setspecific): Add.
10262
10263 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
10264
10265         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
10266         the same size types for the indirect reference on the rhs, then
10267         create a VCE.
10268
10269 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
10270
10271         * config/i386/i386.md
10272         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
10273         one insn template instead of template series.
10274         (*xordi_1_rex64): Ditto.
10275         (*xordi_2_rex64): Ditto.
10276
10277 2008-05-05  Ira Rosen  <irar@il.ibm.com>
10278
10279         PR tree-optimization/36119
10280         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
10281         in case of SLP.
10282
10283 2008-06-04  Jan Hubicka  <jh@suse.cz>
10284
10285         tree-optimization/36100
10286         * tree-pass.h (pass_O0_always_inline): Declare.
10287         * ipa-inline.c (inline_transform): Remove dead code.
10288         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
10289         pass_O0_always_inline): New.
10290         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
10291
10292 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
10293
10294         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
10295         mnemonic in this_param move for TARGET_64BIT.
10296
10297 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
10298
10299         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
10300         (*strmovsi_rex_1): Ditto.
10301         (*strsetsi_1): Ditto.
10302         (*strsetsi_rex_1): Ditto.
10303
10304         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
10305         adddicc expanders using SWI mode iterator.
10306
10307 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
10308
10309         PR target/36121
10310         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
10311         argument handling.
10312
10313 2008-05-04  David S. Miller  <davem@davemloft.net>
10314
10315         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
10316         (sparc*-*-linux*): Use linux.h in tm_file.
10317         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
10318         compiler defaulting to 32-bit.
10319         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
10320         no longer needed.
10321         * config/sparc/linux.h: Remove definitions now obtained
10322         properly from linux.h
10323         * config/sparc/linux64.h: Likewise.
10324         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
10325         don't want this setting for 32-bit builds in a biarch compiler.
10326         * doc/install.texi: Add sparc-linux to list of targets
10327         supporting --enable-targets=all.
10328
10329 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
10330
10331         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
10332
10333 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
10334
10335         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
10336         after V4SI_FTYPE_V8HI.
10337         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
10338         case V4SI_FTYPE_V2DF.
10339
10340 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
10341
10342         * doc/invoke.texi (max-flow-memory-locations): Removed.
10343         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
10344
10345 2008-05-03  Richard Guenther  <rguenther@suse.de>
10346
10347         PR middle-end/34973
10348         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
10349
10350 2008-05-02  David S. Miller  <davem@davemloft.net>
10351
10352         * config.gcc (need_64bit_hwint): Document libcpp dependency.
10353
10354 2008-05-02  Simon Baldwin <simonb@google.com>
10355
10356         PR bootstrap/36108
10357         * c-common.h (warn_array_subscript_range): Removed.
10358         * c-common.c (warn_array_subscript_range): Ditto.
10359         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
10360         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
10361
10362 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
10363
10364         * config/i386/i386.c (ix86_special_builtin_type): New.
10365         (bdesc_special_args): Likewise.
10366         (ix86_expand_special_args_builtin): Likewise.
10367         (ix86_init_mmx_sse_builtins): Updated.
10368         (ix86_expand_builtin): Updated.
10369         (ix86_expand_store_builtin): Removed.
10370         (ix86_expand_unop_builtin): Likewise.
10371
10372         * config/i386/mm3dnow.h (__v2sf): Moved to ...
10373         * config/i386/mmintrin.h (__v2sf): Here.
10374
10375         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
10376         const __v2sf.
10377         (_mm_loadl_pi): Likewise.
10378         (_mm_storeh_pi): Replace __v2si with __v2sf.
10379         (_mm_storel_pi): Likewise.
10380
10381         * doc/extend.texi: Correct __builtin_ia32_loadhps,
10382         __builtin_ia32_loadlps, __builtin_ia32_storehps,
10383         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
10384         __builtin_ia32_loadlpd.
10385
10386 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
10387
10388         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
10389         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
10390         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
10391         (ix86_init_mmx_sse_builtins): Updated.
10392         (ix86_expand_args_builtin): Likewise.
10393         (ix86_expand_builtin): Likewise.
10394         (ix86_expand_unop1_builtin): Renamed to ...
10395         (ix86_expand_unop_vec_merge_builtin): This.
10396
10397 2008-05-01  Jan Hubicka  <jh@suse.cz>
10398
10399         PR bootstrap/36100
10400         * ipa-inline.c (inline_generate_summary): Make static.
10401         (inline_transform): Do not call inlining at -O0; make static.
10402         * passes.c (execute_todo): Add sanity check.
10403         (execute_one_ipa_transform_pass): Execute proper flags.
10404
10405 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
10406
10407         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
10408         (DECL_NONADDRESSABLE_P): Likewise.
10409         * alias.c (record_component_aliases): Fix comment.
10410
10411 2008-05-01  Simon Baldwin <simonb@google.com>
10412
10413         * c-common.h (warn_array_subscript_range): New function.
10414         * c-common.c (warn_array_subscript_range): Ditto.
10415         * tree-vrp.c (check_array_ref): Corrected code to agree with
10416         comment, ignoring only arrays of size 0 or size 1.
10417         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
10418
10419 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
10420
10421         * config/i386/i386.c (ix86_builtin_type): Replace
10422         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
10423         (bdesc_args): Updated.
10424         (ix86_init_mmx_sse_builtins): Likewise.
10425         (ix86_expand_args_builtin): Likewise.
10426
10427         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
10428         with __v1di.
10429
10430         * doc/extend.texi: Correct __builtin_ia32_palignr.
10431
10432 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
10433
10434         PR target/36095
10435         * config/i386/i386.c (bdesc_crc32): Removed.
10436         (ix86_expand_crc32): Likewise.
10437         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
10438         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
10439         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
10440         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
10441         UINT_FTYPE_UINT_UCHAR.
10442         (bdesc_args): Updated. Add crc32 builtins.
10443         (ix86_init_mmx_sse_builtins): Updated.
10444         (ix86_expand_args_builtin): Updated to support subreg.
10445
10446         * doc/extend.texi: Correct __builtin_ia32_crc32di.
10447
10448 2008-05-01  Jan Hubicka  <jh@suse.cz>
10449
10450         * tree-pass.h (opt_pass): Add IPA_PASS.
10451         (varpool_node, cgraph_node): Forward declare.
10452         (ipa_opt_pass): Define.
10453         (pass_ipa_inline): Turn into ipa_opt_pass.
10454         (pass_apply_inline): Remove.
10455         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
10456         (apply_inline): Turn into ....
10457         (inline_transform): ... this one.
10458         (inline_generate_summary): New function.
10459         (pass_apply_inline): Remove.
10460         * function.h (ipa_opt_pass): Forward declare structure; typedef;
10461         vector.
10462         (struct function): Add ipa_transforms_to_apply.
10463         * passes.c (register_one_dump_file): Work on IPA_PASS.
10464         (init_optimization_passes): Remove pass_inline_parameters and
10465         pass_apply_inline.
10466         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
10467         (execute_one_pass) ... here; apply transforms when possible.
10468         (add_ipa_transform_pass, execute_ipa_summary_asses,
10469         execute_one_ipa_transform_pass): New.
10470         (execute_ipa_pass_list): Update for IPA_PASS type.
10471
10472 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
10473
10474         * config/i386/i386.c (ix86_builtin_type): Add
10475         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
10476         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
10477         (bdesc_args): Add SSE4a builtins.
10478         (ix86_init_mmx_sse_builtins): Updated.
10479         (ix86_expand_args_builtin): Likewise.
10480         (ix86_expand_builtin): Likewise.
10481
10482 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
10483
10484         * config/i386/i386.c (ix86_builtin_type): Add
10485         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
10486         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
10487         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
10488         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
10489         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
10490         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
10491         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
10492         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
10493         and DI_FTYPE_DI_DI_INT.
10494         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
10495         (ix86_init_mmx_sse_builtins): Updated.
10496         (ix86_expand_args_builtin): Likewise.
10497         (ix86_expand_builtin): Likewise.
10498         (ix86_expand_binop_imm_builtin): Removed.
10499
10500         * doc/extend.texi: Correct __builtin_ia32_palignr128.
10501
10502 2008-04-30  Richard Guenther  <rguenther@suse.de>
10503
10504         PR tree-optimization/32921
10505         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
10506
10507 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
10508
10509         * config/arm/arm.c (arm_unwind_emit): Use
10510         crtl->all_throwers_are_sibcalls instead of
10511         cfun->all_throwers_are_sibcalls.
10512         (arm_output_fn_unwind): Likewise.
10513         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
10514         instead of cfun->uses_pic_offset_table.
10515         (frv_expand_prologue): Likewise.
10516         (frv_frame_pointer_required): Likewise.
10517         (frv_expand_fdpic_call): Likewise.
10518         (frv_emit_movsi): Likewise.
10519         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
10520         cfun->returns_pcc_struct instead of
10521         current_function_returns_pcc_struct.
10522         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
10523         instead of cfun->calls_eh_return.
10524         (m32c_pushm_popm): Likewise.
10525         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
10526         "extern" declaration.
10527
10528 2008-04-30  Richard Guenther  <rguenther@suse.de>
10529
10530         PR tree-optimization/21636
10531         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
10532         constant address.
10533         (evaluate_stmt): Print the likely value.
10534         (ccp_visit_stmt): Avoid excessive vertical spacing.
10535
10536 2008-04-30  Rafael Espindola  <espindola@google.com>
10537
10538         * builtins.c (fold_call_expr): Return realret.
10539         * tree-ssa-threadedge.c
10540         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
10541         __builtin_object_size.
10542
10543 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
10544
10545         * gcc.c (wrapper_string): New variable.
10546         (insert_wrapper): New function.
10547         (execute): New option -wrapper.
10548         * doc/invoke.texi (Overall Options): New driver option -wrapper.
10549
10550 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
10551
10552         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
10553         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
10554         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
10555         from...
10556         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
10557         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
10558         config/rs6000/e500crtres64gprctr.asm,
10559         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
10560         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
10561         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
10562         config/rs6000/e500crtsav64gprctr.asm,
10563         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
10564         config/rs6000/e500crtsavg64gprctr.asm: New files.
10565         * config/rs6000/t-ppccomm: Add build rules for new files.
10566         (LIB2FUNCS_STATIC_EXTRA): Add new files.
10567         * config/rs6000/t-netbsd: Add build rules for new files.
10568         (LIB2FUNCS_STATIC_EXTRA): New variable.
10569         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
10570         (CRTSAVRES_DEFAULT_SPEC): Likewise.
10571         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
10572
10573 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
10574
10575         * config/i386/i386.c (ix86_builtin_type): Add
10576         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
10577         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
10578         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
10579         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
10580         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
10581         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
10582         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
10583         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
10584         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
10585         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
10586         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
10587         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
10588         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
10589         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
10590         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
10591         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
10592         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
10593         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
10594         V1DI_FTYPE_V2SI_V2SI.
10595         (bdesc_2arg): Moved to ...
10596         (bdesc_args): Here.
10597         (ix86_init_mmx_sse_builtins): Updated.
10598         (ix86_expand_args_builtin): Updated.  Take a pointer
10599         to const struct builtin_description.  Handle comparison
10600         builtin functions.
10601         (ix86_expand_sse_compare): Take a new argument for swapping operands.
10602         (ix86_expand_builtin): Updated.
10603
10604         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
10605         (ssse3_pmaddubsw128): This.
10606         (ssse3_pmaddubswv4hi3): Renamed to ...
10607         (ssse3_pmaddubsw): This.
10608
10609         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
10610         (__builtin_ia32_packssdw128): Likewise.
10611         (__builtin_ia32_packuswb128): Likewise.
10612         (__builtin_ia32_pmaddubsw): Likewise.
10613         (__builtin_ia32_pmaddubsw128): Likewise.
10614
10615 2008-04-30  Richard Guenther  <rguenther@suse.de>
10616
10617         PR tree-optimization/14847
10618         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
10619         (recognize_bits_test): Use it.
10620         (recognize_single_bit_test): Likewise.
10621
10622 2008-04-30  Martin Jambor  <mjambor@suse.cz>
10623
10624         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
10625         instead of setting number of formal parameters to zero.
10626         (ipcp_init_stage): Do not set the number of actual parameters to zero
10627         either.
10628         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
10629         which are called with variable number of arguments.
10630         (ipcp_insert_stage): Explicitely skipping all nodes which are
10631         called with variable number of arguments.
10632         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
10633         number of parameters.
10634
10635         * ipa-prop.h (struct ipa_node_params): Added flag
10636         called_with_var_arguments
10637         (ipa_set_param_count): Added.  Changed sole setter to use it.
10638         (ipa_get_param_count): Added.  All readers of param_count
10639         converted to use it instead.
10640         (ipa_set_called_with_variable_arg): Added.
10641         (ipa_is_called_with_var_arguments): Added.
10642         (ipa_get_ith_param): Added.  All readers of param_decls converted
10643         to use it instead.
10644         (ipa_set_cs_argument_count): Added, sole writer to argument_count
10645         changed to use it.
10646         (ipa_get_cs_argument_count): Added, all readers of argument_count
10647         changed to cal it.
10648         (ipa_get_ith_jump_func): Added. Accessors of jump values changed
10649         to use it.
10650
10651         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
10652         (struct ipcp_lattice): Renamed cval_type to type
10653         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
10654
10655         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
10656         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
10657         (ipcp_insert_stage): Changed the type of variable cvalue to tree
10658         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
10659         (build_const_val): Changed the type of parameter cvalue to tree
10660         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
10661         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
10662
10663         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
10664         constant
10665
10666         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
10667         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
10668         (ipa_add_method): Renamed to ipa_push_func_to_list
10669         (ipa_remove_method): Renamed to ipa_pop_func_from_list
10670         (ipa_callsite_param_count): Removed.
10671         (ipa_callsite_param_count_set): Removed.
10672         (ipa_callsite_param): Removed.
10673         (ipa_callsite_callee): Removed.
10674         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
10675         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
10676         (ipa_method_formal_count): Removed.
10677         (ipa_method_formal_count_set): Removed.
10678         (ipa_method_get_tree): Removed.
10679         (ipa_method_tree_map_create): Removed.
10680         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
10681         (ipa_create_param_decls_array): Creates the array itself
10682         (ipa_create_param_decls_array): Temporary variable info instead of
10683         a few dereferences.
10684         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
10685         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
10686         (get_type): Removed.
10687         (ipa_jf_get_info_type): Removed.
10688         (ipa_node_create): Renamed to ipa_create_node_params
10689         (ipa_free): Renamed to ipa_free_all_node_params
10690         (ipa_nodes_create): Renamed to ipa_create_all_node_params
10691         (ipa_edges_create): Renamed to ipa_create_all_edge_args
10692         (ipa_edges_free): Renamed to ipa_free_all_edge_args
10693         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
10694         (ipa_free_all_node_params): Deallocation to jump_functions moved to
10695         ipa_free_all_edge_args
10696         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
10697         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
10698         (ipa_create_methodlist_node): Removed.
10699         (ipa_methodlist_method): Removed.
10700         (ipa_methodlist_method_set): Removed.
10701         (ipa_methodlist_next_method): Removed.
10702         (ipa_methodlist_next_method_set): Removed.
10703         (ipa_method_is_modified): Removed.
10704         (ipa_method_modify_create): Removed.
10705         (ipa_method_modify_init): Temporary variable info instead of a few
10706         dereferences.
10707         (ipa_detect_param_modifications): Temporary variable info instead of
10708         a few dereferences.
10709         (ipa_compute_jump_functions): Temporary variable info instead of
10710         a few dereferences.
10711         (ipa_method_modify_set): Removed.
10712         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
10713         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
10714         than craph_node as the first parameter.
10715         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
10716         (ipa_method_modify_init): Removed.
10717         (ipa_compute_jump_functions): Added a temp variable instead of
10718         repeatadly dereferencing the cgraph_edge.aux pointer
10719         (ipa_callsite_param_set_type): Removed.
10720         (ipa_compute_jump_functions): i renamed to index and moved to
10721         an inner block
10722         (ipa_callsite_param_set_info_type_formal): Removed.
10723         (ipa_callsite_param_set_info_type): Removed.
10724         (ipa_callsite_param_map_create): Removed.
10725         (ipa_callsite_tree): Removed.
10726         (ipa_callsite_caller): Removed.
10727         (ipa_pop_func_from_list): return_method removed to return_func
10728
10729         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
10730         prefixed all values with IPA_. Changed all users.
10731         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
10732         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
10733         and FORMAL_IPATYPE IPA_PASS_THROUGH.
10734         (union parameter_info): Renamed to jump_func_value.
10735         (union jump_func_value): Renamed value to constant
10736         (struct ipa_jump_func): Renamed info_type to value
10737         (struct ipa_node): Renamed to ipa_node_params
10738         (struct ipa_node_params): Renamed ipa_arg_num to param_count
10739         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
10740         (struct ipa_node_params): Renamed ipa_mod to modified_flags
10741         (struct ipa_edge): Renamed to ipa_edge_args
10742         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
10743         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
10744         (struct ipa_methodlist): Renamed to ipa_func_list
10745         (struct ipa_func_list): method_p renamed to node, next_method
10746         renamed to next
10747         (ipa_methodlist_p): Removed, switched all users to struct pointer
10748         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
10749
10750 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
10751
10752         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
10753         (rs6000_emit_epilogue): Use backchain to restore only when we
10754         have a large frame.  Make use of frame pointer to restore if we
10755         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
10756
10757 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
10758
10759         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
10760         Add mode to zero_extract.
10761         (sign bit tests peepholes): (Ditto.).
10762
10763 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
10764
10765         * config/i386/i386.c (ix86_builtins): Replace Prescott New
10766         Instructions in comments with SSE3.
10767         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
10768         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
10769         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
10770         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
10771         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
10772         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
10773         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
10774         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
10775         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
10776         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
10777         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
10778         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
10779         (bdesc_sse_args): Renamed to ...
10780         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
10781         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
10782         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
10783         IX86_BUILTIN_FABSQ.
10784         (bdesc_1arg): Moved to ...
10785         (bdesc_args): Here.
10786         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
10787         Instructions in comments with SSE3.
10788         (ix86_expand_sse_operands_builtin): Renamed to ...
10789         (ix86_expand_args_builtin): This.  Updated.
10790         (ix86_expand_unop1_builtin): Update comments.
10791         (ix86_expand_builtin): Updated.
10792
10793 2008-04-29  Richard Guenther  <rguenther@suse.de>
10794
10795         PR tree-optimization/36078
10796         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
10797         Update virtual SSA form after cleaning up the CFG.
10798
10799 2008-04-29  Richard Guenther  <rguenther@suse.de>
10800
10801         PR middle-end/15255
10802         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
10803
10804 2008-04-29  Richard Guenther  <rguenther@suse.de>
10805
10806         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
10807         (compute_may_aliases): Do not call finalize_ref_all_pointers.
10808         (compute_flow_insensitive_aliasing): Do not treat
10809         PTR_IS_REF_ALL pointers special.
10810         (get_smt_for): Likewise.
10811         (may_alias_p): Re-structure.
10812         (is_escape_site): A ref-all pointer conversion is not an escape site.
10813         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
10814         PTR_IS_REF_ALL pointers special.
10815         * tree-ssa-structalias.h (struct alias_info): Remove
10816         ref_all_symbol_mem_tag field.
10817         (PTR_IS_REF_ALL): Remove.
10818
10819 2008-04-29  Richard Guenther  <rguenther@suse.de>
10820
10821         PR middle-end/36077
10822         * fold-const.c (extract_muldiv_1): In combining division constants
10823         make sure to never overflow.
10824
10825 2008-04-29  Nick Clifton  <nickc@redhat.com>
10826
10827         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
10828
10829 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10830
10831         PR bootstrap/35169
10832         * optc-gen.awk: Work around HP-UX/IA awk bug.
10833
10834 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
10835
10836         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
10837         2008-04-25 commit.
10838
10839 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
10840
10841         PR target/36073
10842         * config/i386/i386.md
10843         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
10844         Change operand 1 predicate to nonimmediate_operand.
10845
10846 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
10847
10848         PR debug/36060
10849         * dwarf2out.c (struct die_struct): Mark as chain_circular through
10850         die_sub field.
10851         * gengtype.c (walk_type, write_func_for_structure): Handle
10852         chain_circular.
10853         * doc/gty.texi: Document chain_circular.
10854
10855 2008-04-28  Richard Guenther  <rguenther@suse.de>
10856
10857         PR tree-optimization/36066
10858         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
10859         SCEV and loop.
10860
10861 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
10862
10863         PR target/36064
10864         * config/i386/i386.md
10865         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
10866         Use match_scratch instead of match_operand for operands 3 and 4.
10867
10868 2008-04-27  Richard Guenther  <rguenther@suse.de>
10869
10870         PR tree-optimization/18754
10871         PR tree-optimization/34223
10872         * tree-pass.h (pass_complete_unrolli): Declare.
10873         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
10874         loop size before and after unconditionally of UL_NO_GROWTH in effect.
10875         Rewrite loop into loop closed SSA form if it is not already.
10876         (tree_unroll_loops_completely): Re-structure to iterate over
10877         innermost loops with intermediate CFG cleanups.
10878         Unroll outermost loops only if requested or the code does not grow
10879         doing so.
10880         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
10881         loops are available.
10882         (tree_vectorize): Instead do so here.
10883         (tree_complete_unroll): Also unroll outermost loops.
10884         (tree_complete_unroll_inner): New function.
10885         (gate_tree_complete_unroll_inner): Likewise.
10886         (pass_complete_unrolli): New pass.
10887         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
10888         uses outside of the loop.
10889         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
10890         form if it is available.
10891         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
10892         * passes.c (init_optimization_passes): Schedule complete inner
10893         loop unrolling pass before the first CCP pass after final inlining.
10894
10895 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
10896
10897         * targhooks.h (default_emutls_var_fields,
10898         default_emutls_var_init): Declare.
10899         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
10900         * target.h (struct gcc_target): Add struct emutls member.
10901         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
10902         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
10903         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
10904         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
10905         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
10906         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
10907         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
10908         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
10909         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
10910         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
10911         emit debug information.
10912         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
10913         * varasm.c: Include targhooks.h.
10914         (emutls_object_section, emutls_tmpl_section): New.
10915         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
10916         (EMUTLS_SEPARATOR): New.
10917         (prefix_name): New.
10918         (get_emutls_object_name): New.
10919         (default_emutls_var_fields): New, broken out of ...
10920         (get_emutls_object_type): ... here.  Adjust to use target hooks.
10921         (get_emutls_init_templ_addr): Adjust to use target hooks.
10922         (emutls_decl): Adjust to use target hooks.
10923         (emutls_finish): Likewise.
10924         (default_emutls_var_init): New, broken out of ...
10925         (assemble_variable): ... here.  Adjust to use target hooks.
10926         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
10927         SECCAT_EMUTLS_TMPL.
10928         * c-common.c (handle_section_attribute): Prevent overriding
10929         sections for emulated tls with special sections.
10930         * config/i386/i386.c (x86_64_elf_select_section): Add
10931         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
10932         (x86_64_elf_unique_section): Likewise.
10933         * config/vxworks.c: Include tree.h.
10934         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
10935         (vxworks_override_options): Set TLS scheme.
10936         * doc/tm.texi (Emulated TLS): New node.
10937
10938 2008-04-26  Simon Baldwin <simonb@google.com>
10939
10940         PR c/35652
10941         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
10942         with propagated string constants.
10943
10944 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
10945
10946         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
10947         constraint for operand 2 when operand 0 is memory operand.
10948         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
10949         operand 0 is memory operand.
10950         (fix_trunc<mode>_i387_with_temp): Ditto.
10951         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
10952         operand 2 when operand 1 is memory operand.
10953         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
10954         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
10955         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
10956         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
10957         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
10958         operands 2,3 and 4 when operand 1 is memory operand.
10959         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
10960         is memory operand.
10961         (fistdi2_floor_with_temp): Ditto.
10962         (fist<mode>2_floor_with_temp): Ditto.
10963         (fistdi2_ceil_with_temp): Ditto.
10964         (fist<mode>2_ceil_with_temp): Ditto.
10965         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
10966
10967 2008-04-26  David Daney  <ddaney@avtrex.com>
10968
10969         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
10970         unspec_volitile.
10971         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
10972         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
10973         UNSPEC_UPDATE_GOT_VERSION): Renumber.
10974         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
10975         (compare_and_swap_12): New insn.
10976         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
10977         * config/mips/mips.c (mips_force_binary): New function.
10978         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
10979         (mips_expand_compare_and_swap_12): New function.
10980         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
10981
10982 2008-04-25  Jan Hubicka  <jh@suse.cz>
10983
10984         PR testsuite/35843
10985         * cfgexpand.c (pass_expand): Turn into RTL pass.
10986         * passes.c (execute_one_pass): Do pass typechecking after execution.
10987         * tree-pass.h (pass_expand): Turn into RTL pass.
10988
10989         * function.h (struct rtl_data): Move here fields
10990         accesses_prior_frames, calls_eh_return, saves_all_registers,
10991         has_nonlocal_goto, has_asm_statement, is_thunk,
10992         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
10993         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
10994         arg_pointer_save_area_init from struct function; turn into bool.
10995         (struct function): Move
10996         calls_eh_return, saves_all_registers, has_nonlocal_goto,
10997         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
10998         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
10999         tail_call_emit, arg_pointer_save_area_init
11000         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
11001         (current_function_returns_struct, current_function_returns_pcc_struct,
11002         current_function_calls_setjmp, current_function_calls_alloca,
11003         current_function_accesses_prior_frames,
11004         current_function_calls_eh_return, current_function_is_thunk,
11005         current_function_stdarg, current_function_profile,
11006         current_function_limit_stack, current_function_uses_pic_offset_table,
11007         current_function_uses_const_pool, current_function_has_nonlocal_label,
11008         current_function_saves_all_registers,
11009         current_function_has_nonlocal_goto,
11010         current_function_has_asm_statement): Remove accesor macros.
11011         * ra-conflict.c (global_conflicts): Update.
11012         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
11013         (suitable_for_tail_call_opt_p): Update.
11014         * builtins.c (expand_builtin_return_addr): Update.
11015         (expand_builtin_setjmp_setup): Update.
11016         (expand_builtin_nonlocal_goto): Update.
11017         * final.c (final_start_function): Update.
11018         (profile_function): Update.
11019         (leaf_function_p): Update.
11020         (only_leaf_regs_used): Update.
11021         * df-scan.c (df_get_exit_block_use_set): Update.
11022         * dojump.c (clear_pending_stack_adjust): Update.
11023         * tree-stdarg.c (gate_optimize_stdarg): Update.
11024         * gimple-low.c (lower_function_body): Update.
11025         * global.c (compute_regsets): Update.
11026         (global_alloc): Update.
11027         * dwarf2out.c (dwarf2out_begin_prologue): Update.
11028         * expr.c (expand_assignment): Update.
11029         * dse.c (dse_step0): Update.
11030         (dse_step1): Update.
11031         * c-decl.c (store_parm_decls): Update.
11032         * local-alloc.c (combine_regs): Update.
11033         (find_free_reg): Update.
11034         * function.c (assign_parms_augmented_arg_list): Update.
11035         (assign_parm_find_data_types): Update.
11036         (assign_parms): Update.
11037         (allocate_struct_function): Update.
11038         (expand_function_start): Update.
11039         (expand_function_end): Update.
11040         (get_arg_pointer_save_area): Update.
11041         (thread_prologue_and_epilogue_insns): Update.
11042         (rest_of_match_asm_constraints): Update.
11043         * stor-layout.c (variable_size): Update.
11044         * gcse.c (gcse_main): Update.
11045         (bypass_jumps): Update.
11046         * gimplify.c (gimplify_function_tree): Update.
11047         * calls.c (emit_call_1): Update.
11048         (expand_call): Update.
11049         * bt-load.c (compute_defs_uses_and_gen): Update.
11050         * except.c (sjlj_assign_call_site_values): Update.
11051         (sjlj_emit_function_enter): Update.
11052         (can_throw_external): Update.
11053         (set_nothrow_function_flags): Update.
11054         (expand_builtin_unwind_init): Update.
11055         (expand_eh_return): Update.
11056         (convert_to_eh_region_ranges): Update.
11057         (output_function_exception_table): Update.
11058         * emit-rtl.c (gen_tmp_stack_mem): Update.
11059         * cfgexpand.c (expand_used_vars): Update.
11060         (tree_expand_cfg): Update.
11061         * cfgcleanup.c (rest_of_handle_jump): Update.
11062         * explow.c (allocate_dynamic_stack_space): Update.
11063         * varasm.c (assemble_start_function): Update.
11064         (force_const_mem): Update.
11065         (mark_constant_pool): Update.
11066         * tree-optimize.c (tree_rest_of_compilation): Update.
11067         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
11068         * tree-cfg.c (notice_special_calls): Update.
11069         (is_ctrl_altering_stmt): Update.
11070         (tree_can_make_abnormal_goto): Update.
11071         (tree_purge_dead_abnormal_call_edges): Update.
11072         * config/alpha/predicates.md: Update.
11073         * config/alpha/alpha.c (alpha_sa_mask): Update.
11074         (alpha_sa_size): Update.
11075         (alpha_does_function_need_gp): Update.
11076         (alpha_expand_prologue): Update.
11077         (alpha_start_function): Update.
11078         (alpha_output_function_end_prologue): Update.
11079         (alpha_expand_epilogue): Update.
11080         * config/frv/frv.c (frv_stack_info): Update.
11081         (frv_expand_epilogue): Update.
11082         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
11083         (s390_register_info): Update.
11084         (s390_frame_info): Update.
11085         (s390_init_frame_layout): Update.
11086         (s390_can_eliminate): Update.
11087         (save_gprs): Update.
11088         * config/spu/spu.c (spu_split_immediate): Update.
11089         (need_to_save_reg): Update.
11090         (spu_expand_prologue): Update.
11091         (spu_expand_epilogue): Update.
11092         * config/sparc/sparc.md: Update.
11093         * config/sparc/sparc.c (eligible_for_return_delay): Update.
11094         (sparc_tls_got): Update.
11095         (legitimize_pic_address): Update.
11096         (sparc_emit_call_insn): Update.
11097         (sparc_expand_prologue): Update.
11098         (output_return): Update.
11099         (print_operand): Update.
11100         (sparc_function_ok_for_sibcall): Update.
11101         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
11102         * config/m32r/m32r.md: Update.
11103         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
11104         (m32r_compute_frame_size): Update.
11105         (m32r_expand_prologue): Update.
11106         (m32r_expand_epilogue): Update.
11107         (m32r_legitimize_pic_address): Update.
11108         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
11109         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
11110         * config/i386/i386.c (ix86_frame_pointer_required): Update.
11111         (gen_push): Update.
11112         (ix86_save_reg): Update.
11113         (ix86_compute_frame_layout): Update.
11114         (ix86_expand_prologue): Update.
11115         (ix86_expand_epilogue): Update.
11116         * config/sh/sh.c (output_stack_adjust): Update.
11117         (calc_live_regs): Update.
11118         (sh5_schedule_saves): Update.
11119         (sh_expand_prologue): Update.
11120         (sh_expand_epilogue): Update.
11121         (sh_setup_incoming_varargs): Update.
11122         (sh_allocate_initial_value): Update.
11123         (sh_get_pr_initial_val): Update.
11124         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
11125         * config/sh/sh.md (label:): Update.
11126         * config/avr/avr.c (out_movhi_mr_r): Update.
11127         * config/crx/crx.h (enum): Update.
11128         * config/xtensa/xtensa.h (along): Update.
11129         * config/stormy16/stormy16.c Update.
11130         (xstormy16_compute_stack_layout): Update.
11131         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
11132         (fr30_expand_prologue): Update.
11133         * config/cris/cris.c (cris_conditional_register_usage): Update.
11134         (cris_reg_saved_in_regsave_area): Update.
11135         (cris_initial_frame_pointer_offset): Update.
11136         (cris_simple_epilogue): Update.
11137         (cris_expand_prologue): Update.
11138         (cris_expand_epilogue): Update.
11139         (cris_expand_pic_call_address): Update.
11140         (cris_asm_output_symbol_ref): Update.
11141         (cris_asm_output_label_ref): Update.
11142         * config/cris/cris.md Update.
11143         * config/iq2000/iq2000.c (compute_frame_size): Update.
11144         (iq2000_expand_epilogue): Update.
11145         * config/mt/mt.h (save_direction): Update.
11146         * config/mn10300/mn10300.c (mn10300_function_value): Update.
11147         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
11148         (ia64_secondary_reload_class): Update.
11149         * config/m68k/m68k.c (m68k_save_reg): Update.
11150         (m68k_expand_prologue): Update.
11151         (m68k_expand_epilogue): Update.
11152         (legitimize_pic_address): Update.
11153         * config/rs6000/rs6000.c (rs6000_got_register): Update.
11154         (first_reg_to_save): Update.
11155         (first_altivec_reg_to_save): Update.
11156         (compute_vrsave_mask): Update.
11157         (compute_save_world_info): Update.
11158         (rs6000_stack_info): Update.
11159         (spe_func_has_64bit_regs_p): Update.
11160         (rs6000_ra_ever_killed): Update.
11161         (rs6000_emit_eh_reg_restore): Update.
11162         (rs6000_emit_allocate_stack): Update.
11163         (rs6000_emit_prologue): Update.
11164         (rs6000_emit_epilogue): Update.
11165         (rs6000_output_function_epilogue): Update.
11166         (output_profile_hook): Update.
11167         (rs6000_elf_declare_function_name): Update.
11168         * config/rs6000/rs6000.h (rs6000_args): Update.
11169         * config/rs6000/rs6000.md: Update.
11170         * config/mcore/mcore.c (mcore_expand_prolog): Update.
11171         * config/arc/arc.c (arc_output_function_epilogue): Update.
11172         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
11173         * config/darwin.c (machopic_function_base_name): Update.
11174         * config/score/score3.c (score3_compute_frame_size): Update.
11175         (rpush): Update.
11176         (rpop): Update.
11177         (score3_epilogue): Update.
11178         * config/score/score7.c (score7_compute_frame_size): Update.
11179         (score7_prologue): Update.
11180         (score7_epilogue): Update.
11181         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
11182         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
11183         * config/arm/arm.c (use_return_insn): Update.
11184         (require_pic_register): Update.
11185         (arm_load_pic_register): Update.
11186         (arm_compute_save_reg0_reg12_mask): Update.
11187         (arm_compute_save_reg_mask): Update.
11188         (thumb1_compute_save_reg_mask): Update.
11189         (output_return_instruction): Update.
11190         (arm_output_function_prologue): Update.
11191         (arm_output_epilogue): Update.
11192         (arm_get_frame_offsets): Update.
11193         (arm_expand_prologue): Update.
11194         (thumb_pushpop): Update.
11195         (thumb_exit): Update.
11196         (thumb1_expand_prologue): Update.
11197         (thumb1_expand_epilogue): Update.
11198         (arm_unwind_emit): Update.
11199         (arm_output_fn_unwind): Update.
11200         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
11201         * config/arm/arm.md: Update.
11202         * config/pa/pa.md: Update.
11203         * config/pa/pa.c (legitimize_pic_address): Update.
11204         (compute_frame_size): Update.
11205         (hppa_expand_prologue): Update.
11206         (hppa_expand_epilogue): Update.
11207         (borx_reg_operand): Update.
11208         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
11209         (HARD_REGNO_RENAME_OK): Update.
11210         * config/mips/mips.c (mips_global_pointer): Update.
11211         (mips_save_reg_p): Update.
11212         (mips_compute_frame_info): Update.
11213         (mips_frame_pointer_required): Update.
11214         (mips_expand_prologue): Update.
11215         (mips_expand_epilogue): Update.
11216         (mips_can_use_return_insn): Update.
11217         (mips_reorg_process_insns): Update.
11218         * config/v850/v850.c (compute_register_save_size): Update.
11219         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
11220         * config/mmix/mmix.c (along): Update.
11221         (mmix_expand_epilogue): Update.
11222         * config/bfin/bfin.c (legitimize_pic_address): Update.
11223         (must_save_p): Update.
11224         (stack_frame_needed_p): Update.
11225         (add_to_reg): Update.
11226         (bfin_expand_prologue): Update.
11227         * stmt.c (expand_asm_operands): Update.
11228         * reload1.c (reload): Update.
11229         (init_elim_table): Update.
11230
11231 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
11232
11233         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
11234
11235 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
11236
11237         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
11238         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
11239         (mov<mode>): Removed.
11240         (*movv4sf_internal): Likewise.
11241         (*movv2df_internal): Likewise.
11242
11243 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
11244
11245         * config.gcc (crx-*-elf): Remove deprecation.
11246
11247 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
11248
11249         * config/i386/cygming-crtend.c (register_frame_ctor): Register
11250         __gcc_deregister_frame with atexit.
11251         (deregister_frame_dtor): Remove.
11252
11253 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
11254             Nathan Sidwell  <nathan@codesourcery.com>
11255
11256         * config/rs6000/rs6000.opt (mspe): Remove Var property.
11257         (misel): Likewise.
11258         * config/rs6000/rs6000.h (rs6000_spe): Declare.
11259         (rs6000_isel): Likewise.
11260         * config/rs6000/rs6000.c (rs6000_spe): New variable.
11261         (rs6000_isel): New variable.
11262         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
11263
11264 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
11265
11266         PR c++/35758
11267         * c-common.c (handle_vector_size_attribute): Call
11268         lang_hooks.types.reconstruct_complex_type instead of
11269         reconstruct_complex_type.
11270         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
11271         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
11272         * langhooks.h (struct lang_hooks_for_types): Add
11273         reconstruct_complex_type hook.
11274         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
11275         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
11276
11277 2008-04-24  Richard Guenther  <rguenther@suse.de>
11278
11279         * c-common.h (check_builtin_function_arguments): Declare.
11280         * c-common.c (validate_nargs): New function.
11281         (check_builtin_function_arguments): Likewise.
11282         * c-typeck.c (build_function_call): Call
11283         check_builtin_function_arguments.
11284         * builtins.c (fold_builtin_classify): Remove error reporting code.
11285         (fold_builtin_unordered_cmp): Likewise.
11286         (fold_builtin_1): Likewise.
11287         (fold_builtin_n): Likewise.
11288
11289 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
11290
11291         PR tree-optimization/36008
11292         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
11293         the original op1, rather than delta by step.
11294
11295 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
11296             Sebastian Pop  <sebastian.pop@amd.com>
11297
11298         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
11299         eliminate_local_variables_stmt, eliminate_local_variables,
11300         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
11301         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
11302         of code delimited by two edges in the CFG.
11303         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
11304         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
11305         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate
11306         the case of parallelisation of reductions.
11307         (expr_invariant_in_region_p): New.
11308
11309         * tree-flow.h (gather_blocks_in_sese_region): Declared.
11310         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
11311
11312 2008-04-24  Ira Rosen  <irar@il.ibm.com>
11313             Richard Guenther  <rguenther@suse.de>
11314
11315         PR tree-optimization/36034
11316         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
11317         incapable of dealing with loads with gaps.
11318
11319 2008-04-24  Rafael Espindola  <espindola@google.com>
11320
11321         * tree-flow.h (vrp_evaluate_conditional): Change signature.
11322         * tree-ssa-propagate.c (fold_predicate_in): Update call to
11323         vrp_evaluate_conditional.
11324         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
11325         (vrp_evaluate_conditional): Split the cond argument.
11326         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
11327         (simplify_stmt_for_jump_threading): Update call to
11328         vrp_evaluate_conditional.
11329
11330 2008-04-24  Ira Rosen  <irar@il.ibm.com>
11331
11332         PR tree-optimization/35982
11333         * tree-vect-analyze.c (vect_check_interleaving): Check that the
11334         interleaved data-refs are of the same type.
11335
11336 2008-04-24  Danny Smith  <dannysmith@users.net>
11337
11338         * c-format.c (check_format_info_main): Use strncmp rather than a
11339         magic prefix to handle multichar length specs.
11340         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
11341         Don't prefix "I64" and "I32" with '\0'.
11342
11343 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
11344
11345         PR target/36015
11346         * config/i386/i386.c (init_cumulative_args): Don't pass anything
11347         in registers for -m32 only if stdarg_p (fntype).
11348
11349 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
11350
11351         PR rtl-optimization/36006
11352         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
11353         temp to op0 in order to avoid invalid rtx sharing.
11354
11355 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
11356
11357         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
11358         check TREE_INVARIANT.
11359         * tree-gimple.c (is_gimple_address): New.
11360         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
11361         * tree-gimple.h (is_gimple_address): New.
11362         * tree.h (decl_address_invariant_p): New.
11363         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
11364         (build_string): Likewise.
11365         (decl_address_invariant_p): New, from is_gimple_invariant_address.
11366         (tree_invariant_p_1): Likewise.
11367         (save_expr): Use it.
11368         (tree_invariant_p): New.
11369         (skip_simple_arithmetic): Use it.
11370         (stabilize_reference_1): Use it.
11371         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
11372         simplify.
11373         (build1_stat): Drop code to compute TREE_INVARIANT.
11374         (build2_stat): Drop code to compute TREE_INVARIANT.
11375         (build3_stat): Drop code to compute TREE_INVARIANT.
11376         (build4_stat): Drop code to compute TREE_INVARIANT.
11377         (build5_stat): Drop code to compute TREE_INVARIANT.
11378         (build7_stat): Drop code to compute TREE_INVARIANT.
11379         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
11380         * tree.h (struct tree_base): Remove invariant_flag.
11381         (TREE_INVARIANT): Remove.
11382         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
11383         (fold_builtin_expect): Check TREE_CONSTANT.
11384         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
11385         * c-tree.h (c_expr_to_decl): Drop third parameter.
11386         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
11387         (build_c_cast): Don't set TREE_INVARIANT.
11388         (pop_init_level): Don't set TREE_INVARIANT.
11389         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
11390         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
11391         TREE_CONSTANT.
11392         (gimplify_init_constructor): Don't set TREE_INVARIANT.
11393         (gimplify_addr_expr): Adjust comment.
11394         * tree-mudflap.c (mf_build_string):
11395         * print-tree.c (print_node): Don't print TREE_INVARIANT.
11396         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
11397         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
11398         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
11399         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
11400         * langhooks.h (struct lang_hooks): Drop third parameter from
11401         expr_to_decl.
11402
11403 2008-04-23  Richard Guenther  <rguenther@suse.de>
11404
11405         PR tree-optimization/27799
11406         PR tree-optimization/32921
11407         PR tree-optimization/32624
11408         * tree-ssa-structalias.c (merge_smts_into): Only merge the
11409         SMTs aliases and the tag itself into the solution.
11410         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
11411         merge the points-to solution back into the SMT aliases.
11412         (may_alias_p): Use alias_set_subset_of instead of
11413         aliases_conflict_p.  A pointer which points to
11414         memory with alias set zero may access any variable.
11415
11416 2008-04-23  Richard Guenther  <rguenther@suse.de>
11417
11418         * alias.c (alias_set_subset_of): Correctly handle asking
11419         if zero is a subset of an alias set with zero child.
11420         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
11421         (compute_flow_insensitive_aliasing): Correctly walk all
11422         pointers.  Do not unnecessarily union sets.
11423
11424 2008-04-23  Richard Guenther  <rguenther@suse.de>
11425
11426         PR middle-end/36021
11427         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
11428
11429 2008-04-22  Tomas Bily  <tbily@suse.cz>
11430
11431         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
11432         unreachable case.
11433         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
11434         NON_LVALUE_EXPR.
11435         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
11436         * tree-ssa-structalias.c (get_constraint_for): Likewise.
11437         * tree-inline.c (estimate_num_insns_1): Likewise.
11438         * varasm.c (const_hash_1, compare_constant, copy_constant)
11439         (compute_reloc_for_constant, output_addressed_constants): Likewise.
11440         * emit-rtl.c (component_ref_for_mem_expr)
11441         (set_mem_attributes_minus_bitpos): Likewise.
11442         * expr.c (highest_pow2_factor, expand_expr_real_1, )
11443         (is_aligning_offset): Likewise.
11444         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
11445         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
11446         * dojump.c (do_jump): Likewise.
11447         * builtins.c (get_pointer_alignment, get_memory_rtx)
11448         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
11449         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
11450
11451 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
11452
11453         PR rtl-optimization/36017
11454         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
11455         expanding the library call.
11456
11457 2008-04-22  Ian Lance Taylor  <iant@google.com>
11458
11459         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
11460         than size_in_bytes.
11461
11462 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
11463
11464         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
11465         of LR/CTR moves for Power6.
11466
11467 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
11468
11469         PR middle-end/36003
11470         * passes.c (init_optimization_passes): Remove
11471         pass_fast_rtl_byte_dce.
11472
11473 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
11474
11475         PR target/29096
11476         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
11477         builtin functions to generate faster code.
11478         (_mm_cvtpu16_ps): Ditto.
11479         (_mm_cvtpi32x2_ps): Ditto.
11480
11481 2008-04-22  Nick Clifton  <nickc@redhat.com>
11482
11483         * common.opt (ftree-loop-distribution): Add Optimization
11484         attribute.
11485
11486         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
11487         (frv_expand_builtin_va_start): Likewise.
11488
11489         * config/arm/arm.c (thumb_find_work_register): Fix location of
11490         argument register count.
11491
11492 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
11493
11494         Support scheduling for ColdFire V1 and V3 microarchitecture.
11495         Improve scheduling of multiplication instructions.
11496
11497         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
11498         (mac): New instruction attribute.
11499         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
11500         (m68k_sched_mac): New variable.
11501         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
11502         Handle cfv1 and cfv3.
11503         (max_insn_size): New static variable.
11504         (struct _sched_ib): New type.
11505         (sched_ib): New static variable.
11506         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
11507         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
11508         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
11509         Update.
11510         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
11511         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
11512         new variables.  Update.
11513         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
11514         Add modeling of cfv3 instruction buffer.  Update.
11515         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
11516         * config/m68k/m68k.h (TUNE_CFV3): New macro.
11517         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
11518         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
11519         a particular reservation applies to.
11520         (type2): Reorganize attribute values.  Rename alu to alu_reg,
11521         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
11522         to mul_l and mul_w.
11523         (cf_ib_*): Simplify description of instruction buffer.
11524         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
11525         (cf_mem): Split into cf_mem1 and cf_mem2.
11526         (cf_v2_move_??): Rename to cfv12_alu_??.
11527         (cf_v2_move_l_??): Rename to cfv12_omove_??.
11528         (cf_v2_mul_??): Remove reservations.
11529         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
11530         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
11531         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
11532         appropriate place.
11533         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
11534         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
11535         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
11536         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
11537         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
11538         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
11539         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
11540         expansions of the above reservations for instructions of sizes
11541         1, 2 and 3 words.
11542
11543 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
11544
11545         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
11546
11547 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
11548
11549         * coverage.c: Include tree-pass.h.
11550         (coverage_counter_alloc): Print da_file_name to the dump file.
11551
11552 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
11553
11554         * sbitmap.c (sbitmap_range_empty_p): New function.
11555         * sbitmap.h (sbitmap_range_empty_p): New function.
11556         * bitmap.h: Now includes obstack.h.
11557
11558 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
11559             Kenneth Zadeck  <zadeck@naturalbridge.com>
11560
11561         * dbgcnt.def (ra_byte_scan): Added.
11562         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
11563         when the last hit happens for a counter.
11564         * timevar.def (TV_DF_BYTE_LR): New variable.
11565         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
11566         * passes.c (pass_fast_rtl_byte_dce): New pass.
11567         * fwprop.c (update_df): Added mode to call df_ref_create.
11568         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
11569         DF_REF_EXTRACT_OFFSET.
11570         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
11571         DF_BYTE_LR_OUT, df_byte_lr): New macro.
11572         (df_mm): New enum.
11573         (df_ref_extract): Added mode field.
11574         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
11575         DF_REF_EXTRACT_OFFSET.
11576         (DF_REF_EXTRACT_MODE): New macro.
11577         (df_byte_lr_bb_info): New structure.
11578         (df_print_byte_regset, df_compute_accessed_bytes,
11579         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
11580         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
11581         df_byte_lr_simulate_uses,
11582         df_byte_lr_simulate_artificial_refs_at_top,
11583         df_byte_lr_simulate_artificial_refs_at_end,
11584         df_compute_accessed_bytes): New function.
11585         (df_ref_create): Add parameter.
11586         (df_byte_lr_get_bb_info): New inline function.
11587         * df-scan.c (df_ref_record, df_uses_record,
11588         df_ref_create_structure): Added mode parameter.
11589         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
11590         df_defs_record, df_uses_record, df_get_conditional_uses,
11591         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
11592         df_entry_block_defs_collect, df_exit_block_uses_collect):
11593         Added mode parameter to calls to df_ref_record, df_uses_record,
11594         df_ref_create_structure.
11595         (df_ref_equal_p, df_ref_compare): Added test for modes.
11596         (df_ref_create_structure): Added code to set mode.  Renamed
11597         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
11598         DF_REF_EXTRACT_OFFSET.
11599         * df-core.c (df_print_byte_regset): New function.
11600         * df-byte-scan.c: New file.
11601         * df-problems.c (df_rd_transfer_function): Removed unnecessary
11602         calls to BITMAP_FREE.
11603         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
11604         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
11605         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
11606         df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
11607         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
11608         df_byte_lr_local_compute, df_byte_lr_init,
11609         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
11610         df_byte_lr_transfer_function, df_byte_lr_free,
11611         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
11612         df_byte_lr_add_problem, df_byte_lr_simulate_defs,
11613         df_byte_lr_simulate_uses,
11614         df_byte_lr_simulate_artificial_refs_at_top,
11615         df_byte_lr_simulate_artificial_refs_at_end): New function.
11616         * dce.c (byte_dce_process_block): New function.
11617         (dce_process_block): au is now passed in rather than computed
11618         locally.  Changed loops that look at artificial defs to not look
11619         for conditional or partial ones, because there never are any.
11620         (fast_dce): Now is able to drive byte_dce_process_block or
11621         dce_process_block depending on the kind of dce being done.
11622         (rest_of_handle_fast_dce): Add parameter to fast_dce.
11623         (rest_of_handle_fast_byte_dce): New function.
11624         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
11625         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
11626
11627 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
11628
11629         PR fortran/35019
11630         * gcc.h: Added fortran options that take arguments to
11631         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
11632         macros.
11633
11634 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
11635
11636         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
11637         scalarization if on the LHS and not a full access.
11638
11639 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11640
11641         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
11642
11643 2008-04-18  Rafael Espindola  <espindola@google.com>
11644
11645         * tree-vrp.c (find_case_label_index): Fix the binary search.
11646         (find_case_label_range): New.
11647         (vrp_visit_switch_stmt): Use find_case_label_range.
11648         (simplify_switch_using_ranges): Use find_case_label_range.
11649
11650 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
11651
11652         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
11653         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
11654
11655 2008-04-18  Tom Tromey  <tromey@redhat.com>
11656
11657         PR libcpp/15500:
11658         * doc/cpp.texi (Implementation-defined behavior): Mention
11659         -finput-charset.
11660
11661 2008-04-18  Ian Lance Taylor  <iant@google.com>
11662
11663         * fold-const.c (pointer_may_wrap_p): New static function.
11664         (fold_comparison): Add another test for pointer overflow.  Use
11665         pointer_may_wrap_p to disable some false positives.
11666
11667 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
11668
11669         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
11670         (fname_as_string): Match updated cpp_interpret_string prototype.
11671         (fix_string_type): Support char16_t* and char32_t*.
11672         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
11673         derivative) nodes.  Register as builtin if C++0x.
11674         (c_parse_error): Support CPP_CHAR{16,32}.
11675         * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
11676         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
11677         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
11678         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
11679         CTI_CHAR32_ARRAY_TYPE>: New elements.
11680         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
11681         char32_type_node, signed_char32_type_node, char16_array_type_node,
11682         char32_array_type_node): New defines.
11683         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
11684         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
11685         (lex_string): Support CPP_STRING{16,32}, match updated
11686         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
11687         (lex_charconst): Support CPP_CHAR{16,32}.
11688         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
11689         and CPP_STRING{16,32}.
11690
11691 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
11692
11693         PR bootstrap/35457
11694         * aclocal.m4: Regenerate.
11695         * configure: Regenerate.
11696
11697 2008-04-18  Jan Hubicka  <jh@suse.cz>
11698
11699         * except.c (dw2_size_of_call_site_table,
11700         sjlj_size_of_call_site_table): Use vector API for call_site_record.
11701
11702         * cgraphbuild.c (build_cgraph_edges): Update.
11703         * tree-pass.h: Update comment.
11704         * final.c (leaf_function_p): Update.
11705         (leaf_renumber_regs): Update.
11706         (rest_of_clean_state): Update.
11707         * omp-low.c (expand_omp_parallel): Update.
11708         * ipa-reference.c (analyze_function): Update.
11709         * reorg.c (find_end_label): Update.
11710         (optimize_skip): Update.
11711         (fill_simple_delay_slots): Update.
11712         (fill_simple_delay_slots): Update.
11713         (make_return_insns): Update.
11714         (dbr_schedule): Update.
11715         * gimple-low.c (record_vars_into): Update.
11716         * cfgbuild.c (make_edges): Update.
11717         * function.c (assign_stack_local): Update.
11718         (assign_parm_adjust_stack_rtl): Update.
11719         (locate_and_pad_parm): Update.
11720         (allocate_struct_function): Do not initialize stack_alignment_needed
11721         and preferred_stack_boundary here.
11722         (stack_protect_prologue): Update.
11723         (stack_protect_epilogue): Update.
11724         (expand_function_start): Initialize stack_alignment_needed,
11725         preferred_stack_boundary and max_jumptable_ents.
11726         (expand_function_end): Update.
11727         (free_after_compilation): Do not NULLify epilogue_delay_list.
11728         * function.h (struct rtl_data): Add stack_protect_guard,
11729         stack_alignment_needed,
11730         preferred_stack_boundary, epilogue_delay_list.
11731         (struct function): Remove value_histograms, stack_alignment_needed,
11732         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
11733         last_label_uid,
11734         unexpanded_var_list, stack_protect_guard.
11735         (current_function_epilogue_delay_list): Remove.
11736         * ipa-type-escape.c (analyze_function): Update.
11737         * gimplify.c (pop_gimplify_context): Update comment.
11738         * calls.c (expand_call): Update.
11739         (emit_library_call_value_1): Update.
11740         * except.c (set_nothrow_function_flags): Update.
11741         * cfgexpand.c (get_decl_align_unit): Update.
11742         (create_stack_guard): Update.
11743         (estimated_stack_frame_size): Update.
11744         (expand_used_vars): Update.
11745         (tree_expand_cfg): Free histogram earliers, init expansion variables.
11746         * explow.c (allocate_dynamic_stack_space): Update.
11747         * tree-ssa-live.c (remove_unused_locals): Update.
11748         * varasm.c (mark_constant_pool): Update.
11749         * tree-inline.c (remap_decls): Update.
11750         (initialize_cfun): Update.
11751         (declare_return_variable): Update.
11752         (inline_forbidden_p): Update.
11753         (expand_call_inline): Update.
11754         (declare_inline_vars): Update.
11755         (tree_function_versioning): Update.
11756         * tree-flow.h (value_histograms): New.
11757         (VALUE_HISTOGRAMS): New macro.
11758         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
11759         last_label_uid.
11760         * tree-cfg.c (set_bb_for_stmt): Update.
11761         (replace_by_duplicate_decl): Update.
11762         (move_block_to_fn): Update.
11763         (new_label_mapper): Update.
11764         (dump_function_to_file): Update.
11765         * ipa-struct-reorg.c (build_data_structure): Update.
11766         * cfgrtl.c (print_rtl_with_bb): Update.
11767         * reload1.c (reload): Update.
11768         (reload): Update.
11769         * config/i386/i386.c (setup_incoming_varargs_64,
11770         ix86_compute_frame_layout): Update.
11771         * config/arc/arc.c (arc_output_function_epilogue): Update.
11772
11773 2008-04-18  Marius Strobl <marius@FreeBSD.org>
11774
11775         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
11776         for FreeBSD as well.
11777         * gthr-posix95.h: Likewise.
11778
11779 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
11780
11781         PR rtl-optimization/35838
11782         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
11783         out the byte offset of the first subreg.
11784
11785 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
11786
11787         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
11788         to split_ti instead of three separate calls with single member arrays.
11789         (subti3 splitter): Ditto.
11790         (adddi3 splitter): Ditto with split_di.
11791         (subdi3 splitter): Ditto.
11792         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
11793         two separate calls with single member arrays.  Swap match_dup
11794         operands 1 and 2 to better fit into the array.
11795         (negdi2 splitter): Ditto with split_di.
11796         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
11797         two separate calls with single member arrays.  Swap match_dup operands
11798         6 and 7 to better fit into the array.
11799
11800 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
11801
11802         * config/i386/i386.c (sse_builtin_type): New.
11803         (bdesc_sse_args): Likewise.
11804         (bdesc_sse_3arg): Removed.
11805         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
11806         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
11807         IX86_BUILTIN_ROUNDPS.
11808         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
11809         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
11810         IX86_BUILTIN_ROUNDPS.
11811         (ix86_expand_sse_4_operands_builtin): Removed.
11812         (ix86_expand_sse_operands_builtin): New.
11813         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
11814         and CODE_FOR_sse4_1_roundps.
11815         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
11816         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
11817
11818 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
11819
11820         PR target/35907
11821         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
11822         regs before frame pop when needed.  If use_backchain_to_restore_sp
11823         then load backchain into a temp reg to restore vr and vrsave.  Add
11824         code to restore vr after frame pop if possible.
11825
11826 2008-04-17  Richard Guenther  <rguenther@suse.de>
11827
11828         * tree-vn.c (expressions_equal_p): Do not check type
11829         equality or compatibility before calling operand_equal_p.
11830         * fold-const.c (operand_equal_p): Check equivalence of
11831         integer constants before bailing out due to signedness or
11832         precision differences.
11833         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
11834         spurious differences in type qualification.  Ignore types
11835         for COMPONENT_REFs at all.
11836
11837 2008-04-17  Christian Bruel  <christian.bruel@st.com>
11838
11839         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
11840         msw_skip comparison.
11841
11842 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
11843
11844         PR c/35739
11845         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
11846         reg type.
11847
11848         PR tree-optimization/35899
11849         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
11850         rather than TREE_OPERAND.
11851
11852 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
11853
11854         PR target/35944
11855         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
11856         temporary registers.  Change operand predicate to general_operand.
11857         (remainderxf3): Ditto.
11858
11859 2008-04-16  Richard Guenther  <rguenther@suse.de>
11860
11861         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
11862         * tree-affine.c (aff_combination_expand): Look through some
11863         conversions.
11864
11865 2008-04-15  Doug Kwan  <dougkwan@google.com>
11866
11867         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
11868         for hex printing.
11869         * tree-pretty-print.c (dump_generic_node): Ditto.
11870         * final.c (output_addr_const): Ditto.
11871         * dwarf2out.c (output_cfi): Ditto.
11872         * c-pretty-print.c (pp_c_integer_constant): Ditto.
11873         * print-rtl.c (print_rtx): Ditto.
11874         * print-tree.c (print_node_brief, print_node): Ditto.
11875         * c-common.c (match_case_to_enum_1): Ditto.
11876         * sched-vis.c (print_value): Ditto.
11877         * config/i386/i386.c (print_operand): Cast to long unsigned int
11878         for hex printing.
11879
11880 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
11881         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
11882         MS Windows VirtualProtect function.
11883
11884 2008-04-15  Jan Hubicka  <jh@suse.cz>
11885
11886         * gengtype.c (write_root): Param_is argument is OK.
11887         * expr.c (expand_expr_real_1): Update call of get_exception_*.
11888         * function.h: Include varray.h
11889         (rtl_eh): New stucture based on except.c one.
11890         (call_site_record): New forward declaration and vector type.
11891         * calls.c (emit_call_1): Do not call
11892         note_current_region_may_contain_throw.
11893         * except.c (eh_status): Remove cur_region, try_region since they are
11894         unused.
11895         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
11896         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
11897         sjlj_fc, sjlj_exit_after to rth_eh in function.h.
11898         Remove call_site_data_used, call_site_data_size.
11899         Turn call_site_record into vector in function.h.
11900         (note_current_region_may_contain_throw): Remove.
11901         (get_exception_pointer, get_exception_filter): Do not take struct
11902         function argument; update.
11903         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
11904         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
11905         build_post_landing_pads, dw2_build_landing_pads,
11906         sjlj_assign_call_site_values, sjlj_mark_call_sites,
11907         sjlj_emit_function_enter, sjlj_emit_function_enter,
11908         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
11909         sjlj_build_landing_pads, finish_eh_generation,
11910         remove_exception_handler_label, remove_eh_handler,
11911         maybe_remove_eh_handler, add_reachable_handler,
11912         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
11913         add_action_record, collect_one_action_chain, add_call_site,
11914         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
11915         sjlj_output_call_site_table, output_function_exception_table,
11916         * except.h (note_current_region_may_contain_throw): Remove
11917         (get_exception_pointer, get_exception_filter): Do not take struct
11918         function argument.
11919         * Makefile.in (GTFILES): Put varargs before struct function.
11920
11921 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
11922
11923         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
11924         punt for STRING_CST.
11925         (get_constraint_for): Deal with STRING_CST here instead.
11926
11927 2008-04-15  Richard Guenther  <rguenther@suse.de>
11928
11929         * tree-ssa-propagate.c (substitute_and_fold): Substitute
11930         statements in a basic-block with a backward walk.  Do not
11931         substitute into dead statements but instead remove those.
11932
11933 2008-04-15  Richard Guenther  <rguenther@suse.de>
11934
11935         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
11936         to zero, thus disable creation of SFTs.
11937
11938 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
11939
11940         * tree-predcom.c (suitable_reference_p): Return false if the
11941         reference can throw.
11942
11943 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
11944
11945         PR c/35751
11946         * c-decl.c (finish_decl): If extern or static var has variable
11947         size, set TREE_TYPE (decl) to error_mark_node.
11948
11949 2008-04-15  Rafael Espindola  <espindola@google.com>
11950
11951         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
11952         variable arg1.
11953
11954 2008-04-15  Richard Guenther  <rguenther@suse.de>
11955
11956         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
11957         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
11958         (visit_reference_op_load): Do walk vuse-vdef chains on
11959         vn_reference_lookup.
11960         (visit_reference_op_store): But do not here.
11961         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
11962         vn_reference_lookup.
11963         (vn_lookup_with_vuses): But do so here.
11964
11965 2008-04-14  Ian Lance Taylor  <iant@google.com>
11966
11967         * fold-const.c (fold_overflow_warning): Remove assertion.
11968
11969 2008-04-15  Ben Elliston  <bje@au.ibm.com>
11970
11971         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
11972         temp1 local variables.
11973
11974 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
11975
11976         PR target/35661
11977         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
11978         ".text.unlikely" section as executable.
11979
11980 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
11981
11982         * config/ia64/ia64.c (rtx_needs_barrier): Handle
11983         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
11984         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
11985         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
11986         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
11987         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
11988         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
11989
11990 2008-04-14  Ian Lance Taylor  <iant@google.com>
11991
11992         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
11993         * fold-const.c (fold_comparison): If appropriate, test
11994         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
11995         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
11996         reassociating a pointer type.
11997         * doc/invoke.texi (Optimize Options): Document that
11998         -fstrict-overflow applies to pointer wraparound.
11999
12000 2008-04-13  Jan Hubicka  <jh@suse.cz>
12001
12002         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
12003
12004 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
12005
12006         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
12007         we are going to "save the world".
12008
12009 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
12010
12011         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
12012         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
12013         operand 0 constraint, not "=".
12014
12015 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
12016
12017         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
12018
12019 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
12020
12021         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
12022         of size of positions_needed * CHAR_BIT.
12023
12024 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
12025
12026         PR middle-end/35897
12027         * dse.c (store_info): Change positions_needed to unsigned
12028         HOST_WIDE_INT.
12029         (lowpart_bitmask): New.
12030         (record_store): Cast to unsigned HOST_WIDE_INT for
12031         positions_needed.  Assert width <= size of positions_needed *
12032         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
12033         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
12034         lowpart_bitmask to set mask.
12035
12036 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
12037
12038         * config/bfin/constraints.md: New file.
12039         * config/bfin/bfin.md: Include it.
12040         (adddi3): Use satisfies_constraint functions instead of the old macros.
12041         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
12042         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
12043         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
12044         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
12045         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
12046         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
12047         EXTRA_CONSTRAINT): Delete.
12048         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
12049         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
12050         of the old macros.
12051         * config/bfin/bfin.c: Include "tm-constrs.h".
12052         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
12053         Use satisfies_constraint functions instead of the old macros.
12054         * doc/md.texi (Blackfin Constraints): Update file name reference.
12055
12056 2008-04-11  Richard Guenther  <rguenther@suse.de>
12057
12058         PR tree-optimization/35869
12059         * tree-vrp.c (execute_vrp): Move switch statement update after
12060         jump threading.  Schedule another cfg cleanup run.
12061
12062 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
12063
12064         PR c/35744
12065         * attribs.c (decl_attributes): Return early on errorneous node.
12066
12067 2008-04-10  Oleg Ryjkov  <olegr@google.com>
12068
12069         * tree.h (struct tree_base): Added a new flag default_def_flag.
12070         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
12071
12072 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
12073
12074         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
12075
12076 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12077
12078         PR target/35768
12079         * pa.md: Define mode iterator P.  Define mode attribute dwc.
12080         (dcacheflush): Update pattern to use iterator P and attribute dwc.
12081         (icacheflush): Likewise.
12082         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
12083         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
12084
12085 2008-04-11  Ben Elliston  <bje@au.ibm.com>
12086
12087         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
12088
12089 2008-04-10  Rafael Espindola  <espindola@google.com>
12090
12091         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
12092         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
12093         (extract_range_from_expr): The same.
12094
12095 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
12096
12097         * config/mips/mips.md (GPR2): New mode iterator.
12098         (seq): Add comment.
12099         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
12100         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
12101         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
12102         Rewrite these to take two modes, the mode of comparison and the
12103         mode of the destination.
12104         * config/mips/mips.c (mips_expand_scc): Instead of having
12105         paradoxical subreg as destination, expand "narrowing" scc if mode
12106         of comparison is SI and target is requested in DI mode.
12107         (mips_emit_int_order_test): Update comment.  Make mode of
12108         comparison match CMP0 rather than TARGET.  When creating inverse
12109         target use mode of TARGET.
12110
12111 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
12112
12113         * gcov-dump.c (tag_summary): Only print summaries for the first
12114         GCOV_COUNTERS_SUMMABLE counters.
12115
12116 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
12117
12118         * config/i386/i386.md (absneg): New code iterator.
12119         (absnegprefix): New code attribute.
12120         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
12121         patterns using absneg code iterator.
12122         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
12123         using absneg code iterator.
12124         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
12125         *neg<mode>2 patterns using absneg code iterator.
12126         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
12127         *negextendsfdf2 patterns using absneg code iterator.
12128         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
12129         *negextendsfxf2 patterns using absneg code iterator.
12130         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
12131         *negextendsfdf2 patterns using absneg code iterator.
12132         * config/i386/sse.md (<code><mode>2): Macroize expander from
12133         abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
12134
12135 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
12136
12137         * config/s390/s390.h: Remove the remains of the recent search
12138         & replace action of current_function_outgoing_args_size.
12139
12140 2008-04-10  Ira Rosen  <irar@il.ibm.com>
12141
12142         PR tree-optimization/35821
12143         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
12144         NEW_STMT_LIST is not NULL.
12145
12146 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
12147
12148         PR libstdc++/35597
12149         * toplev.c (process_options): Remove -ffunction-sections debugging
12150         warning.
12151
12152 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
12153
12154         PR middle-end/PR28690
12155         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
12156         than gen_rtx_fmt_ee to perform more canonicalizations.
12157
12158 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12159
12160         PR driver/35665
12161         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
12162
12163 2008-04-09  Richard Guenther  <rguenther@suse.de>
12164
12165         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
12166         (dump_function_to_file): Dump function arguments with types.
12167
12168 2008-04-08  Richard Guenther  <rguenther@suse.de>
12169
12170         * fold-const.c (fold_widened_comparison): Do not allow
12171         sign-changes that change the result.
12172
12173 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
12174
12175         PR target/35839
12176         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
12177         kinds of indirect references.
12178
12179 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
12180
12181         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
12182         GNU Fortran language string.
12183
12184 2008-04-08  Rafael Espindola  <espindola@google.com>
12185
12186         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
12187         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
12188         * tree.h (tree_call_nonnegative_warnv_p): New.
12189
12190 2008-04-08  Jan Hubicka  <jh@suse.cz>
12191
12192         * function.c (free_after_compilation): Clear out regno_reg_rtx
12193         pointer.
12194
12195 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
12196
12197         Revert
12198         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
12199
12200         PR middle-end/PR28690
12201         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
12202         same precedence as REG_POINTER and MEM_POINTER operands.
12203
12204 2008-04-08  Richard Guenther  <rguenther@suse.de>
12205
12206         PR middle-end/35834
12207         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
12208         for adding index to base.
12209
12210 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
12211
12212         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
12213         (MINGW_ENABLE_EXECUTE_STACK): New.
12214         (IN_LIBGCC2): For libgcc include windows.h file for
12215         function declarations.
12216
12217 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
12218
12219         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
12220         and tem2 if tem1 is not a REG or MULT.
12221
12222 2008-04-08  Jan Hubicka  <jh@suse.cz>
12223
12224         * function.h (incomming_args): Break out of struct function.
12225         (function_subsections): Break out of struct function.
12226         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
12227         return_rtx and hard_reg_initial_vals from struct function.
12228         Kill inl_max_label_num.
12229         (current_function_pops_args, current_function_args_info,
12230         current_function_args_size, current_function_args_size,
12231         current_function_pretend_args_size,
12232         current_function_outgoing_args_size,
12233         current_function_internal_arg_pointer, current_function_return_rtx):
12234         Kill compatibility accestor macros.
12235         * builtins.c (expand_builtin_apply_args_1): Update.
12236         (expand_builtin_next_arg): Update.
12237         * df-scan.c (df_get_call_refs): Update.
12238         * dbxout.c (dbxout_function_end): Update.
12239         * dwarf2out.c (dwarf2out_switch_text_section): Update.
12240         (output_line_info): Update.
12241         (secname_for_decl): Update.
12242         (dwarf2out_var_location): Update.
12243         * function.c (free_after_compilation): Update.
12244         (assign_parm_find_stack_rtl): Update.
12245         (assign_parms): Update.
12246         (expand_dummy_function_end): Update.
12247         (expand_function_end): Update.
12248         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
12249         (expand_call): Update.
12250         (emit_library_call_value_1): Update.
12251         (store_one_arg): Update.
12252         * varasm.c (initialize_cold_section_name): Update.
12253         (unlikely_text_section): Update.
12254         (unlikely_text_section_p): Update.
12255         (assemble_start_function): Update.
12256         (assemble_end_function): Update.
12257         (default_section_type_flags): Update.
12258         (switch_to_section): Update.
12259         * integrate.c (set_decl_abstract_flags): Update.
12260         (get_hard_reg_initial_val): Update.
12261         (has_hard_reg_initial_val): Update.
12262         (allocate_initial_values): Update.
12263         * resource.c (init_resource_info): Update.
12264         * config/alpha/alpha.c (NUM_ARGS): Update.
12265         (direct_return): Update.
12266         (alpha_va_start): Update.
12267         (alpha_sa_size): Update.
12268         (alpha_initial_elimination_offset): Update.
12269         (alpha_expand_prologue): Update.
12270         (alpha_start_function): Update.
12271         (alpha_expand_epilogue): Update.
12272         (unicosmk_initial_elimination_offset):
12273         * config/alpha/alpha.md (call expander): Update.
12274         * config/s390/s390.c (s390_register_info): Update.
12275         (s390_register_info): Update.
12276         (s390_frame_info): Update.
12277         (s390_initial_elimination_offset): Update.
12278         (s390_build_builtin_va_list): Update.
12279         (s390_va_start): Update.
12280         * config/spu/spu.c (direct_return): Update.
12281         (spu_expand_prologue): Update.
12282         (spu_initial_elimination_offset): Update.
12283         (spu_build_builtin_va_list): Update.
12284         (spu_va_start): Update.
12285         * config/sparc/sparc.c (sparc_init_modes): Update.
12286         (sparc_compute_frame_size): Update.
12287         (function_value): Update.
12288         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
12289         * config/i386/i386.md (return expander): Update.
12290         * config/i386/i386.c (ix86_va_start): Update.
12291         (ix86_can_use_return_insn_p): Update.
12292         (ix86_compute_frame_layout): Update.
12293         (ix86_expand_epilogue): Update.
12294         * config/sh/sh.c (output_stack_adjust): Update.
12295         (calc_live_regs): Update.
12296         (sh_expand_prologue): Update.
12297         (sh_builtin_saveregs): Update.
12298         (sh_va_start): Update.
12299         (initial_elimination_offset): Update.
12300         (sh_allocate_initial_value): Update.
12301         (sh_function_ok_for_sibcall): Update.
12302         (sh_get_pr_initial_val): Update.
12303         * config/sh/sh.md (return expander): Update.
12304         * config/avr/avr.c (frame_pointer_required_p): UPdate.
12305         * config/crx/crx.c (crx_compute_frame): UPdate.
12306         (crx_initial_elimination_offset): UPdate.
12307         * config/xtensa/xtensa.c (compute_frame_size): Update
12308         (xtensa_builtin_saveregs): Update.
12309         (xtensa_va_start): Update.
12310         (order_regs_for_local_alloc): Update.
12311         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
12312         (xstormy16_expand_builtin_va_start): Update.
12313         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
12314         * config/m68hc11/m68hc11.md (return expanders): Update.
12315         * config/m68hc11/m68hc11.c (expand_prologue): Update.
12316         (expand_epilogue): Update.
12317         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
12318         (cris_simple_epilogue): Update.
12319         (cris_expand_prologue): Update.
12320         (cris_expand_epilogue): Update.
12321         * config/iq2000/iq2000.c (iq2000_va_start): Update.
12322         (compute_frame_size): Update.
12323         * config/mt/mt.c (mt_compute_frame_size): Update.
12324         * config/mn10300/mn10300.c (expand_prologue): Update.
12325         (expand_epilogue): Update.
12326         (initial_offset): Update.
12327         (mn10300_builtin_saveregs):
12328         * config/mn10300/mn10300.md (return expander): Update.
12329         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
12330         (ia64_initial_elimination_offset): Update.
12331         (ia64_initial_elimination_offset): Update.
12332         (ia64_expand_prologue): Update.
12333         * config/m68k/m68k.md (return expander): Update.
12334         * config/rs6000/rs6000.c (rs6000_va_start): Update.
12335         (rs6000_stack_info): Update.
12336         * config/mcore/mcore.c (layout_mcore_frame): Update.
12337         (mcore_expand_prolog): Update.
12338         * config/arc/arc.c (arc_compute_frame_size): Update.
12339         * config/score/score3.c (score3_compute_frame_size): Update.
12340         * config/score/score7.c (score7_compute_frame_size): Update.
12341         * config/arm/arm.c (use_return_insn): Update.
12342         (thumb_find_work_register): Update.
12343         (arm_compute_save_reg_mask): Update.
12344         (arm_output_function_prologue): Update.
12345         (arm_output_epilogue): Update.
12346         (arm_size_return_regs): Update.
12347         (arm_get_frame_offsets): Update.
12348         (arm_expand_prologue): Update.
12349         (thumb_exit): Update.
12350         (thumb_unexpanded_epilogue): Update.
12351         (thumb1_output_function_prologue): Update.
12352         * config/pa/pa.md (return expander): Update.
12353         * config/pa/pa.c (compute_frame_size): Update.
12354         (hppa_builtin_saveregs): Update.
12355         * config/mips/mips.c (mips_va_start): Update.
12356         (mips16_build_function_stub): Update.
12357         (mips_compute_frame_info): Update.
12358         (mips_restore_gp): Update.
12359         (mips_output_function_prologue): Update.
12360         (mips_expand_prologue): Update.
12361         * config/v850/v850.c (compute_frame_size): Update.
12362         (expand_prologue): * config/mmix/mmix.c (along): update.
12363         (mmix_initial_elimination_offset): update.
12364         (mmix_reorg): update.
12365         (mmix_use_simple_return): update.
12366         (mmix_expand_prologue): update.
12367         (mmix_expand_epilogue): Update.
12368         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
12369         (emit_link_insn): Update.
12370
12371 2008-04-08  Anatoly Sokolov <aesok@post.ru>
12372
12373         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
12374         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
12375         instructions.
12376         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
12377         atmega103 device.
12378
12379 2008-04-07  Jan Hubicka  <jh@suse.cz>
12380
12381         * function.h (rtl): Rename to x_rtl.
12382         (crtl): New define.
12383         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
12384         frame_offset, stack_check_probe_note, arg_pointer_save_area,
12385         used_temp_slots avail_temp_slots, temp_slot_level,
12386         nonlocal_goto_handler_labels): Update accesstors.
12387         (rtl): New global variable.
12388         (struct function): Move some fileds to rtl_data.
12389         (get_arg_pointer_save_area): Update prototype.
12390         * builtins.c (expand_builtin_setjmp_receiver): Update call of
12391         get_arg_pointer_save_area.
12392         * expr.c (init_expr): Update
12393         * function.c (get_frame_size): Update
12394         (assign_stack_local): Update
12395         (expand_function_end): Update.
12396         (get_art_pointer_save_area): Update
12397         * function.h
12398         * emit-rtl.c (rtl): Declare.
12399         (regno_reg_rtx): Declare.
12400         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
12401         Update.
12402         (gen_reg_rtx): Update.
12403         * varasm.c (n_deferred_constatns): Update accestor.
12404         (init_varasm_status): Do not allocate varasm_status.
12405         (force_const_mem, get_pool_size, output_constant_pool): Update.
12406         * stmt.c (force_label_rtx): Do not use x_ prefixes.
12407         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
12408         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
12409         * sparc/sparc.h (INIT_EXPANDERS): Update.
12410         * ia64/ia64.h (INIT_EXPANDERS): Update.
12411
12412 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
12413
12414         * reload.c (push_secondary_reload): Add missing break to for loop.
12415
12416 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
12417
12418         PR middle-end/PR28690
12419         * rtlanal.c: Update copyright years.
12420         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
12421         as REG_POINTER and MEM_POINTER operands.
12422         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
12423         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
12424         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
12425         * gcse.c: Update copyright years.
12426         (pre_delete): Call gen_reg_rtx_and_attrs.
12427         (hoist_code): Likewise.
12428         (build_store_vectors): Likewise.
12429         (delete_store): Likewise.
12430         * loop-invariant.c (move_invariant_reg): Likewise.
12431         Update copyright years.
12432
12433 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
12434
12435         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
12436         control string instead of quoted.
12437
12438 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
12439
12440         * doc/rtl.texi: Rewrite of subreg section.
12441
12442 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
12443
12444         PR/35842
12445         * config/i386/i386.c (legitimize_pic_address): Add treating
12446         of dllimport SYM_REF's.
12447         (legitimize_dllimport_symbol): Add prototype.
12448
12449 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
12450
12451         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
12452         reference in constructor with non self-referential type.
12453
12454 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
12455
12456         Removal of Return with Depressed Stack Pointer support
12457         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
12458         (ECF_SP_DEPRESSED): Likewise.
12459         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
12460         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
12461         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
12462         (expand_call): Do not test ECF_SP_DEPRESSED.
12463         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
12464         * function.c (keep_stack_depressed): Delete.
12465         (handle_epilogue_set): Likewise.
12466         (update_epilogue_consts): Likewise.
12467         (emit_equiv_load): Likewise.
12468         (thread_prologue_and_epilogue_insns): Remove support for Return with
12469         Depressed Stack Pointer.
12470         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
12471
12472 2008-04-06  Richard Guenther  <rguenther@suse.de>
12473
12474         PR tree-optimization/35400
12475         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
12476         information from SSA_NAMEs.
12477
12478 2008-04-06  Anatoly Sokolov <aesok@post.ru>
12479
12480         * config/avr/avr.h (avr_mega_p): Remove declaration.
12481         (AVR_MEGA): Remove macro.
12482         * config/avr/avr.c (avr_mega_p): Remove variable.
12483         (avr_override_options): Remove inicializion of avr_mega_p.
12484         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
12485         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
12486         (avr_jump_mode): (Ditto.).
12487         (avr_output_progmem_section_asm_op): (Ditto.).
12488         (avr_asm_init_sections): (Ditto.).
12489         (avr_asm_init_sections): (Ditto.).
12490         (avr_rtx_costs): (Ditto.).
12491         * config/avr/avr.md: (Ditto.).
12492         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
12493         '__AVR_MEGA__'.
12494
12495 2008-04-06  Richard Guenther  <rguenther@suse.de>
12496
12497         PR tree-optimization/35842
12498         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
12499         is_gimple_invariant_address.
12500
12501 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
12502
12503         * gcc.c (default_compilers): Sync Fortran extensions list with
12504         that in fortran/lang-specs.h.
12505         * doc/invoke.texi: Likewise.
12506         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
12507         * dwarf2out.c (gen_compile_unit_die): Likewise.
12508
12509 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
12510
12511         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
12512
12513 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
12514
12515         PR target/12329
12516         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
12517         attribute is used for nested functions.
12518
12519 2008-04-05  Jan Hubicka  <jh@suse.cz>
12520
12521         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
12522
12523         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
12524         letter argument.
12525         (dump_files): Update.
12526         (enable_rtl_dump_file): Do not accept letter argument.
12527         * tree-pass.h (dump_file_info): Remove letter argument.
12528         * toplev.c (decode_d_option): Update -da handling.
12529         * toplev.h (enable_rtl_dump_file): Update prototype.
12530         * passes.c (register_one_dump_file): Do not accept IPA argument; work
12531         it out based on pass type.
12532         (register_dump_files_1): Likewise.
12533         (init_optimization_passes): Update register_one_dump_file calls.
12534         (execute_one_pass): Sanity check that IPA passes are called at IPA
12535         level and RTL passes at RTL level.
12536         (execute_pass_list): IPA pass can not be after or subpass of
12537         GIMPLE/RTL pass.
12538         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
12539         disallov RTL subpasses of IPA subpasses.
12540
12541 2008-04-05  Ben Elliston  <bje@au.ibm.com>
12542
12543         * tree-cfg.c (need_fake_edge_p): Return false for calls to
12544         builtins that return exactly once and do not throw. Cache call to
12545         call_expr_flags.
12546
12547 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
12548
12549         PR rtl-optimization/34916
12550         PR middle-end/35519
12551         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
12552         between instruction pairs.
12553
12554 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
12555
12556         * doc/invoke.texi: Document -mbitops for SH.
12557         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
12558         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
12559         * config/sh/sh.c (print_operand): Add %t operand code.
12560         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
12561         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
12562         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
12563         (extendqihi2): Likewise.
12564         (movqi_i): Likewise.
12565         (insv): Use bset, bclr and bst instructions for SH2A if possible.
12566         (extv): Use bld instruction for SH2A if possible.
12567         (extzv): Likewise.
12568         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
12569         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
12570         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
12571         (bset.b, bclr.b): Define peepholes.
12572         * config/sh/sh.opt (mbitops): New option.
12573
12574 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
12575
12576         PR target/35620
12577         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
12578         and view convert expression.
12579
12580 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
12581
12582         PR target/35364
12583         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
12584
12585 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
12586
12587         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
12588
12589         * config/i386/cpuid.h (bit_AES): New.
12590         (bit_PCLMUL): Likewise.
12591
12592         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
12593         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
12594         SSE2 if AES or PCLMUL is enabled.
12595         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
12596         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
12597         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
12598         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
12599         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
12600         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
12601         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
12602         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
12603         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
12604         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
12605         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
12606         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
12607         __builtin_ia32_aeskeygenassist128 and
12608         __builtin_ia32_pclmulqdq128.
12609         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
12610         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
12611         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
12612
12613         * config/i386/i386.h (TARGET_AES): New.
12614         (TARGET_PCLMUL): Likewise.
12615         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
12616
12617         * config/i386/i386.md (UNSPEC_AESENC): New.
12618         (UNSPEC_AESENCLAST): Likewise.
12619         (UNSPEC_AESDEC): Likewise.
12620         (UNSPEC_AESDECLAST): Likewise.
12621         (UNSPEC_AESIMC): Likewise.
12622         (UNSPEC_AESKEYGENASSIST): Likewise.
12623         (UNSPEC_PCLMUL): Likewise.
12624
12625         * config/i386/i386.opt (maes): New.
12626         (mpclmul): Likewise.
12627
12628         * config/i386/sse.md (aesenc): New pattern.
12629         (aesenclast): Likewise.
12630         (aesdec): Likewise.
12631         (aesdeclast): Likewise.
12632         (aesimc): Likewise.
12633         (aeskeygenassist): Likewise.
12634         (pclmulqdq): Likewise.
12635
12636         * config/i386/wmmintrin.h: New.
12637
12638         * doc/extend.texi: Document AES and PCLMUL built-in function.
12639
12640         * doc/invoke.texi: Document -maes and -mpclmul.
12641
12642 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
12643
12644         * function.c (free_after_parsing): Replace with
12645         cxx_push_function_context from C++ front-end.
12646         (allocate_struct_function): Don't call langhook.
12647         * langhooks.h (struct lang_hooks_for_functions): Delete.
12648         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
12649         member "function".
12650         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
12651         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
12652         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
12653         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
12654         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
12655         remove LANG_HOOKS_FUNCTION_INITIALIZER.
12656         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
12657
12658         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
12659         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
12660
12661 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
12662
12663         PR c/35440
12664         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
12665         for all types.
12666
12667 2008-04-04  Richard Guenther  <rguenther@suse.de>
12668
12669         PR middle-end/35823
12670         * fold-const.c (optimize_minmax_comparison): Use the correct
12671         type for the constant in the simplified comparison.
12672
12673 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
12674
12675         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
12676         Pass L2 size as "--param l2-cache-size" to the compiler.
12677         (decode_l2_cache): New function to decode L2 cache parameters using
12678         0x8000006 extended cpuid function.
12679         (detect_caches_amd): Determine parameters of L2 cache using
12680         decode_l2_caches function.
12681         (decode_caches_intel): Decode L2 cache parameters.
12682         (detect_caches_intel): Determine L2 cache parameters using
12683         decode_caches_intel and decode_l2_caches functions.
12684
12685 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
12686
12687         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
12688         secondary input reload for subword loads from the constant pool.
12689
12690 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
12691
12692         PR target/35713
12693         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
12694           constants of the appropriate size for runtime calculations.
12695
12696         PR c/35712
12697         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
12698           decimal-float literal constant zero.
12699
12700 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
12701
12702         PR c/35738
12703         * c-parser.c (c_parser_omp_atomic): Call
12704         default_function_array_conversion on the RHS.
12705
12706         PR middle-end/35818
12707         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
12708         call is_variable_sized if decl has incomplete type.
12709
12710 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
12711
12712         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
12713
12714 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
12715
12716         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
12717         iterators.
12718         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
12719         (sgt<u>): Merge sgt and sgtu into new expander.
12720         (sgt, sgtu): Remove expanders.
12721         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
12722         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
12723         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
12724         *sgtu_<mode>_mips16 into new pattern.
12725         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
12726         (sge<u>): Merge sge and sgeu into new expander.
12727         (sge, sgeu): Remove expanders.
12728         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
12729         new pattern.
12730         (*sge_<mode>, second *sge_<mode>): Remove patterns.
12731         (slt<u>): Merge slt and sltu into new expander.
12732         (slt, sltu): Remove expanders.
12733         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
12734         (*slt_<mode>, *sltu_<mode>): Remove patterns.
12735         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
12736         *sltu_<mode>_mips16 into new pattern.
12737         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
12738         (sle<u>): Merge sle and sleu into new expander.
12739         (sle, sleu): Remove expanders.
12740         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
12741         (*sle_<mode>, *sleu_<mode>): Remove patterns.
12742         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
12743         *sleu_<mode>_mips16 into new pattern.
12744         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
12745
12746 2008-04-03  Jan Hubicka  <jh@suse.cz>
12747
12748         PR tree-optimization/35795
12749         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
12750         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
12751         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
12752         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
12753         * score/score3.c (score3_output_mi_thunk): Likewise.
12754         * score/score7.c (score7_output_mi_thunk): Likewise.
12755         * mips/mips.c (mips_output_mi_thunk): Likewise.
12756
12757 2008-04-03  Richard Guenther  <rguenther@suse.de>
12758
12759         * tree-vrp.c (extract_range_from_unary_expr): Handle all
12760         conversions.  Simplify code.
12761
12762 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
12763
12764         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
12765
12766 2008-04-03  Tom Tromey  <tromey@redhat.com>
12767             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12768
12769         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
12770         * config/bfin/t-bfin-linux (generated_files): Add
12771         linux-sysroot-suffix.h.
12772         * doc/install.texi (Prerequisites): Require make 3.80.
12773         * doc/sourcebuild.texi (Front End Directory): Document new
12774         variable.
12775         * Makefile.in (generated_files): New variable.
12776         (ALL_HOST_OBJS): New variable.
12777         ($(ALL_HOST_OBJS)): New target.
12778
12779 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
12780
12781         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
12782         (remap_block): Call id->transform_lang_insert_block instead
12783         of langhook.
12784         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
12785         Set id.transform_lang_insert_block to NULL.
12786         (clone_body): Move to cp/optimize.c
12787         * tree-inline.h (struct copy_body_data): Change
12788         transform_lang_insert_block to function pointer.
12789         (copy_generic_body, copy_decl_no_change): Export.
12790         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
12791         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
12792         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
12793
12794         * c-tree.h (insert_block): Kill.
12795         * c-decl.c (insert_block): Kill.
12796
12797 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
12798
12799         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
12800         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
12801         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
12802         argument.
12803         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
12804         argument, call {push,pop}_function_context from here.
12805         * c-parser.c: Use c_{push,pop}_function_context.
12806
12807         * function.c (push_function_context_to): Move meat ...
12808         (push_function_context): ... here.  Simplify.
12809         * function.c (pop_function_context_from): Move meat ...
12810         (pop_function_context): ... here.  Simplify.
12811         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
12812         leave_nested).
12813         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
12814         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
12815         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
12816         * tree.h (push_function_context_to, pop_function_context_from): Remove.
12817
12818 2008-04-03  Ben Elliston  <bje@au.ibm.com>
12819
12820         * expmed.c (extract_force_align_mem_bit_field): Remove.
12821
12822 2008-04-03  Richard Guenther  <rguenther@suse.de>
12823
12824         PR middle-end/35800
12825         * expr.h (try_casesi): Adjust prototype.
12826         * expr.c (try_casesi): Take fallback label as extra parameter.
12827         Use that for gen_casesi if default_label is NULL.
12828         * stmt.c (expand_case): Pass fallback label to try_casesi,
12829         make sure to fill gaps with a fallback label if default_label
12830         is not present.
12831
12832 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
12833
12834         PR target/35801
12835         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
12836
12837 2008-04-03  Ben Elliston  <bje@au.ibm.com>
12838
12839         * expmed.c (extract_split_bit_field): Remove if (0) code.
12840         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
12841         (do_ds_constraint): Likewise.
12842
12843 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
12844
12845         * doc/cppopts.texi (-dU): Document.
12846         * c-common.h (flag_dump_macros): Update comment.
12847         * c-opts.c (handle_OPT_d): Handle -dU.
12848         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
12849         dump_queued_macros, cb_used_define, cb_used_undef): New.
12850         (init_pp_output): Handle -dU.
12851         (cb_line_change): Call dump_queued_macros.
12852         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
12853
12854 2008-04-02  Anatoly Sokolov <aesok@post.ru>
12855
12856         * config/avr/predicates.md (io_address_operand): New predicate.
12857         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
12858         * config/avr/avr.c (avr_io_address_p): Remove function.
12859         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
12860         'avr_io_address_p' function.
12861         (out_movhi_r_mr): (Ditto.).
12862         (out_movqi_mr_r): (Ditto.).
12863         (out_movhi_mr_r): (Ditto.).
12864         (avr_address_cost): (Ditto.).
12865
12866 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
12867
12868         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
12869         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
12870         in 32bit mode when XMM registers are available to avoid store
12871         forwarding stalls.
12872         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
12873         corresponding post-reload splitters.
12874
12875 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
12876
12877         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
12878         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
12879         __builtin_ia32_roundss.
12880         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
12881         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
12882         __builtin_ia32_roundss.
12883         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
12884         IX86_BUILTIN_SHUFPD here.
12885
12886 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
12887
12888         * config/i386/i386.md (plogic): New.
12889         (plogicprefix): Likewise.
12890
12891         * config/i386/mmx.md (mmx_<code><mode>3): New.
12892         (mmx_and<mode>3): Removed.
12893         (mmx_ior<mode>3): Likewise.
12894         (mmx_xor<mode>3): Likewise.
12895
12896         * config/i386/sse.md (<code><mode>3): New.
12897         (*<code><mode>3): Likewise.
12898         (*<code><mode>3): Likewise.
12899         (<code><mode>3): Likewise.
12900         (*sse_<code><mode>3): Likewise.
12901         (*sse2_<code><mode>3): Likewise.
12902         (<code>tf3): Likewise.
12903         (*<code>tf3): Likewise.
12904         (and<mode>3): Likewise.
12905         (*and<mode>3): Likewise.
12906         (ior<mode>3): Removed.
12907         (*ior<mode>3): Likewise.
12908         (xor<mode>3): Likewise.
12909         (*xor<mode>3): Likewise.
12910         (*and<mode>3): Likewise.
12911         (*ior<mode>3): Likewise.
12912         (*xor<mode>3): Likewise.
12913         (and<mode>3): Likewise.
12914         (*sse_and<mode>3): Likewise.
12915         (*sse2_and<mode>3): Likewise.
12916         (andtf3): Likewise.
12917         (*andtf3): Likewise.
12918         (ior<mode>3): Likewise.
12919         (*sse_ior<mode>3): Likewise.
12920         (*sse2_ior<mode>3): Likewise.
12921         (iortf3): Likewise.
12922         (*iortf3): Likewise.
12923         (xor<mode>3): Likewise.
12924         (*sse_xor<mode>3): Likewise.
12925         (*sse2_xor<mode>3): Likewise.
12926         (xortf3): Likewise.
12927         (*xortf3): Likewise.
12928
12929 2008-04-02  Richard Guenther  <rguenther@suse.de>
12930
12931         PR tree-optimization/14495
12932         PR tree-optimization/34793
12933         * tree-vrp.c (struct switch_update): New structure.
12934         (to_remove_edges, to_update_switch_stmts): New VECs.
12935         (simplify_switch_using_ranges): New function.  Remove not taken
12936         case labels and edges.
12937         (simplify_stmt_using_ranges): Call it.
12938         (identify_jump_threads): Mark edges we have queued for removal
12939         so we don't thread them.
12940         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
12941         case label vector.
12942         * tree-cfg.c (group_case_labels): Deal with missing default label.
12943         (tree_verify_flow_info): Allow missing default label.
12944         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
12945         (emit_case_nodes): Likewise.
12946         (expand_case): Do not rely on the default label to be present.
12947         * expr.c (try_casesi): Deal with NULL default_label.
12948         (do_tablejump): Likewise.
12949
12950 2008-04-02  Richard Guenther  <rguenther@suse.de>
12951
12952         PR tree-optimization/14495
12953         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
12954         SWITCH_EXPR here ...
12955         (vrp_visit_switch_stmt): ... but here (new function).
12956         (find_case_label_index): New helper function.
12957         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
12958
12959 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
12960
12961         * fwprop.c: Fix ISO-C99ism.
12962
12963 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
12964
12965         PR bootstrap/35752
12966         * Makefile.in (objdir): Set it here.
12967         * configure.ac: Not here.  Find dynamic linker characteristics.
12968         * exec-tool.in: Use them.
12969         * aclocal.m4: Regenerate.
12970         * configure: Regenerate.
12971
12972 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
12973
12974         * expr.c (expand_var): Delete it.
12975         * expr.h (expand_var): Delete prototype.
12976         * function.c (expand_function_start): Use expand_decl instead.
12977         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
12978         langhook.
12979
12980 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
12981
12982         PR rtl-optimization/35542
12983         * fwprop.c (forward_propagate_and_simplify): Replace
12984         loc_reg_mentioned_in_p with reg_mentioned_p.
12985
12986 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
12987
12988         PR rtl-optimization/35281
12989         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
12990         (propagate_rtx_1): Handle PR_HANDLE_MEM.
12991         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
12992         (varying_mem_p): Move above propagate_rtx.
12993         (all_uses_available_at): Do not check MEMs.
12994
12995 2008-04-02  Rafael Espindola  <espindola@google.com>
12996
12997         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
12998         (register_edge_assert_for_2): Split the cond argument.
12999         (register_edge_assert_for_1): Adjust for the change in
13000         register_edge_assert_for_2.
13001         (register_edge_assert_for): Split the cond argument.
13002         (find_switch_asserts): Adjust for the change in
13003         register_edge_assert_for.
13004
13005 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
13006
13007         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
13008         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
13009         offsets for 64-bit mingw.
13010         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
13011         abi for x86_64-pc-mingw.
13012
13013 2008-04-02  Richard Guenther  <rguenther@suse.de>
13014
13015         * tree-vrp.c (extract_range_from_assert): Make sure to not
13016         produce range min/max with TREE_OVERFOW set.
13017         If merging a anti-range and a range keep the anti-range if
13018         the range covers all values of the type.
13019         (register_edge_assert_for_2): Only allow sign-changing
13020         conversions in detecting canonical range checks.  Also
13021         register an assert for the unsigned name if useful.
13022
13023         PR tree-optimization/35787
13024         * tree-vrp.c (vrp_val_max): New function.
13025         (vrp_val_min): Likewise.
13026         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
13027         (vrp_val_is_min): Likewise.
13028         (supports_overflow_infinity): Use vrp_val_{min,max}.
13029         (negative_overflow_infinity): Likewise.
13030         (positive_overflow_infinity): Likewise.
13031         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
13032         (is_positive_overflow_infinity): Likewise.
13033         (is_overflow_infinity): Likewise.
13034         (avoid_overflow_infinity): Use vrp_val_{min,max} and
13035         vrp_val_is_{min,max}.
13036         (set_and_canonicalize_value_range): Canonicalize anti-ranges
13037         to ranges if possible.  Avoid empty ranges.
13038
13039 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13040
13041         PR middle-end/35705
13042         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
13043         the expression is a function address.
13044
13045 2008-04-01  George Helffrich  <george@gcc.gnu.org>
13046
13047         PR fortran/35154, fortran/23057
13048         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
13049         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
13050         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
13051         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
13052         in common.
13053         (dbxout_syms): Check for COMMON-based symbol and wrap in
13054         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
13055         in bracket for efficiency.
13056
13057         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
13058         using DW_TAG_common_block + member offset.
13059         (add_pubname_string): New function.
13060         (dw_expand_expr): New function to find block name and offset for
13061         COMMON var.
13062         (common_check): New function to check whether symbol in Fortran COMMON.
13063         (gen_variable_die): If COMMON, use DW_TAG_common_block.
13064
13065 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
13066
13067         PR c/35436
13068         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
13069
13070 2008-04-02  Ben Elliston  <bje@au.ibm.com>
13071
13072         * config/v850/v850.md (casesi): Remove if (0) code.
13073         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
13074         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
13075
13076 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
13077
13078         * config/i386/i386.md (rex64suffix): New mode attribute.
13079         (floathi<mode>2): Disable expander for SSE math.
13080         (*floathi<mode>2_1): New insn insn_and_split pattern.
13081         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
13082         corresponding post-reload splitters.
13083         (*floathi<mode>2_i387): New macroized insn pattern.
13084         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
13085         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
13086         insn_and_split pattern.
13087         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
13088         New macroized instruction patterns and corresponding post-reload
13089         splitters.
13090         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
13091         and corresponding post-reload splitters.
13092         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
13093         New macroized instruction patterns.
13094         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
13095         macroized instruction patterns and corresponding post-reload splitters.
13096         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
13097         corresponding post-reload splitters.
13098         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
13099         New macroized instruction patterns.
13100         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
13101         corresponding post-reload splitters.
13102         (*floatsi<mode>2_i387): New macroized instruction patterns.
13103
13104 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
13105
13106         * config/i386/i386.md (smaxmin): New.
13107         (umaxmin): Likewise.
13108         (maxminiprefix): Likewise.
13109         (maxminfprefix): Likewise.
13110         (<code><mode>3): Likewise.
13111         (smin<mode>3): Removed.
13112         (smax<mode>3): Likewise.
13113
13114         * config/i386/mmx.md (mmx_<code>v2sf3): New.
13115         (mmx_<code>v4hi3): Likewise.
13116         (mmx_<code>v8qi3): Likewise.
13117         (mmx_smaxv2sf3): Removed.
13118         (mmx_sminv2sf3): Likewise.
13119         (mmx_umaxv8qi3): Likewise.
13120         (mmx_smaxv4hi3): Likewise.
13121         (mmx_uminv8qi3): Likewise.
13122         (mmx_sminv4hi3): Likewise.
13123
13124         * config/i386/sse.md (<addsub><mode>3): New.
13125         (*<addsub><mode>3): Likewise.
13126         (<sse>_vm<addsub><mode>3): Likewise.
13127         (<maxmin><mode>3): Likewise.
13128         (*<maxmin><mode>3_finite): Likewise.
13129         (*<maxmin><mode>3): Likewise.
13130         (<sse>_vm<maxmin><mode>3): Likewise.
13131         (sse3_h<addsub>v4sf3): Likewise.
13132         (sse3_h<addsub>v2df3): Likewise.
13133         (<maxmin>v16qi3): Likewise.
13134         (*<maxmin>v16qi3): Likewise.
13135         (<maxmin>v8hi3): Likewise.
13136         (*<maxmin>v8hi3): Likewise.
13137         (*sse4_1_<maxmin><mode>3): Likewise.
13138         (*sse4_1_<maxmin><mode>3): Likewise.
13139         (add<mode>3): Removed.
13140         (*add<mode>3): Likewise.
13141         (<sse>_vmadd<mode>3): Likewise.
13142         (sub<mode>3): Likewise.
13143         (*sub<mode>3): Likewise.
13144         (<sse>_vmsub<mode>3): Likewise.
13145         (smin<mode>3): Likewise.
13146         (*smin<mode>3_finite): Likewise.
13147         (*smin<mode>3): Likewise.
13148         (<sse>_vmsmin<mode>3): Likewise.
13149         (smax<mode>3): Likewise.
13150         (*smax<mode>3_finite): Likewise.
13151         (*smax<mode>3): Likewise.
13152         (<sse>_vmsmax<mode>3): Likewise.
13153         (sse3_haddv4sf3): Likewise.
13154         (sse3_haddv2df3): Likewise.
13155         (sse3_hsubv4sf3): Likewise.
13156         (sse3_hsubv2df3): Likewise.
13157         (umaxv16qi3): Likewise.
13158         (*umaxv16qi3): Likewise.
13159         (smaxv8hi3): Likewise.
13160         (*smaxv8hi3): Likewise.
13161         (*sse4_1_smax<mode>3): Likewise.
13162         (*sse4_1_umax<mode>3): Likewise.
13163         (uminv16qi3): Likewise.
13164         (*uminv16qi3): Likewise.
13165         (sminv8hi3): Likewise.
13166         (*sminv8hi3): Likewise.
13167         (*sse4_1_smin<mode>3): Likewise.
13168         (*sse4_1_umin<mode>3): Likewise.
13169
13170 2008-04-01  Rafael Espindola  <espindola@google.com>
13171
13172         * tree-cfg.c (verify_expr): remove in_phi.
13173         (verify_stmt): Don't call walk_tree with verify_expr. Use
13174         is_gimple_min_invariant instead of is_gimple_val.
13175
13176 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
13177
13178         * doc/include/gpl_v3.texi: Update for manpage generation.
13179         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
13180         gpl.texi.
13181         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
13182         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
13183         gpl_v3.texi instead of gpl.texi.
13184         (gpl.pod): New.
13185
13186 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
13187
13188         PR pch/13675
13189         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
13190
13191 2008-04-01  Rafael Espindola  <espindola@google.com>
13192
13193         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
13194         (extract_code_and_val_from_cond): Use
13195         extract_code_and_val_from_cond_with_ops.
13196
13197 2008-04-01  Jan Hubicka  <jh@suse.cz>
13198
13199         * function.c (free_after_compilation): Free epilogue_delay_list.
13200         (prepare_function_start): Assert that previous compilation was freed.
13201
13202 2008-04-01  Jan Hubicka  <jh@suse.cz>
13203             Jim Wilson  <wilson@tuliptree.org>
13204             Andreas Tobler <andreast@gcc.gnu.org>
13205
13206         PR middle-end/35781
13207         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
13208         rtl.emit instead cfun->emit.
13209         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
13210         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
13211
13212 2008-04-01  Ben Elliston  <bje@au.ibm.com>
13213
13214         * doc/c-tree.texi (Function Basics): Fix grammatical error.
13215
13216 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
13217
13218         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
13219         New options
13220         (fprofile-use): Add var flag_profile_use
13221         * coverage.c (coverage_begin_output): Do not open a gcno file for
13222         output only if -ftest-coverage is set.
13223         Do not add getpwd() to gcda file path.
13224         (build_gcov_info): Check the new flag
13225         flag_profile_datafile_relative_path.
13226         (coverage_init): Use profile_data_prefix.
13227         Read profile counter only if flag_profile_use is set.
13228         * opts.c (common_handle_option): New option fprofile-use=,
13229         fprofile-dir=, fprofile-generate=.
13230         * toplev.c (profile_data_prefix): New variable definition.
13231         * toplev.h (profile_data_prefix): New declaration.
13232         * doc/invoke.tex (Option Summary, Optimization Options):
13233         Add new options.
13234
13235 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
13236
13237         * varasm.c (output_constant_pool_1): In LABEL_REF check,
13238         use tmp consistently.
13239
13240         PR target/35695
13241         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
13242         * config/ia64/ia64.c (rtx_needs_barrier): Handle
13243         UNSPEC_FR_RECIP_APPROX_RES.
13244         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
13245
13246 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
13247
13248         PR c/35750
13249         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
13250
13251 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13252
13253         PR middle-end/30186
13254         * fold-const.c (fold_indirect_ref_1): Support accessing non first
13255         element of the vector via a pointer.
13256
13257 2008-03-31  Ian Lance Taylor  <iant@google.com>
13258
13259         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
13260
13261 2008-03-31  Jan Hubicka  <jh@suse.cz>
13262
13263         * builtins.c (expand_builtin_setjmp_receiver): Update call of
13264         get_arg_pointer_save_area.
13265         * expr.c (init_expr): Just clear out rtl.expr.
13266         * function.c (free_after_compilation): Clear out whole RTL structure.
13267         (get_func_frame_size): Merge into ...
13268         (get_frame_size): ... this one.
13269         (assign_stack_local_1): Merge into ...
13270         (assign_stack_local): ... this one.
13271         (expand_function_end): Update call of get_arg_pointer_save_area.
13272         (get_art_pointer_save_area): Remove cfun argument.
13273         * function.h (emit_status): regno_pointer_align does not need length
13274         attribute. Move x_regno_reg_rtx to ...
13275         (regno_reg_rtx): ... new global array.
13276         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
13277         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
13278         apply_args_value, forced_labels, stack_pointer_delta):
13279         Update accestors.
13280         (struct varasm_status): Move here from varasm.c
13281         (struct rtl_data): New. Move here some fields from struct function.
13282         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
13283         frame_offset, stack_check_probe_note, arg_pointer_save_area,
13284         used_temp_slots avail_temp_slots, temp_slot_level,
13285         nonlocal_goto_handler_labels): Update accesstors.
13286         (rtl): New global variable.
13287         (struct function): Move some fileds to rtl_data.
13288         (get_arg_pointer_save_area): Update prototype.
13289         * emit-rtl.c (rtl): Declare.
13290         (regno_reg_rtx): Declare.
13291         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
13292         Update.
13293         (gen_reg_rtx): Update.
13294         (init_virtual_regs): Do not tate emit_status argument.
13295         (init_emit): Do not allocate emit.
13296         * varasm.c (varasm_statuc): Move to function.h.
13297         (n_deferred_constatns): Update accestor.
13298         (init_varasm_status): Do not allocate varasm_status.
13299         (force_const_mem, get_pool_size, output_constant_pool): Update.
13300         * stmt.c (force_label_rtx): Do not use x_ prefixes.
13301         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
13302
13303 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
13304
13305         PR rtl-optimization/35729
13306         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
13307         references.
13308
13309 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
13310
13311         PR target/32000
13312         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
13313         load/store if memory is unaligned.
13314         (*movti_rex64): Likewise.
13315
13316         * config/i386/predicates.md (misaligned_operand): New.
13317
13318 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
13319
13320         PR tree-opt/35431
13321         * tree-ssa-phiopt.c (conditional_replacement): Return early for
13322         complex types.
13323
13324 2008-03-31  Jan Beulich  <jbeulich@novell.com>
13325
13326         * config/ia64/constraints.md: Add 'j' constraint.
13327         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
13328         (movdi_internal): Likewise.
13329
13330 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
13331
13332         PR c/35748
13333         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
13334
13335 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
13336
13337         PR target/35757
13338         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
13339         proper error message for the third argument on blendpd and
13340         blendps.
13341
13342         * config/i386/sse.md (blendbits): New.
13343         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
13344
13345 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
13346
13347         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
13348
13349 2008-03-30  Richard Guenther  <rguenther@suse.de>
13350
13351         PR middle-end/31023
13352         * fold-const.c (fold_sign_changed_comparison): Do leave
13353         conversions to base-types alone.
13354
13355 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13356
13357         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
13358         the link register if one altivec register is be saved.
13359
13360 2008-03-30  Ben Elliston  <bje@au.ibm.com>
13361
13362         * final.c (final_scan_insn): Remove if (0) code.
13363
13364 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
13365
13366         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
13367
13368 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
13369
13370         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
13371         of V4SFmode to ix86_binary_operator_ok.
13372
13373 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
13374
13375         * config/i386/i386.c (override_options): Initialize
13376         ix86_veclib_handler to ix86_veclibabi_svml when
13377         -mveclibabi=svml is used.
13378         (ix86_veclibabi_svml): New function for SVML ABI style
13379         vectorization support.
13380         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
13381
13382 2008-03-28  Rafael Espindola  <espindola@google.com>
13383
13384         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
13385         (tree_binary_nonnegative_warnv_p): Make it public.
13386         (tree_single_nonnegative_warnv_p): Make it public.
13387         (tree_invalid_nonnegative_warnv_p): Make it public.
13388         (tree_unary_nonzero_warnv_p): Make it public.
13389         (tree_binary_nonzero_warnv_p): Make it public
13390         (tree_single_nonzero_warnv_p): Make it public.
13391         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
13392         (extract_range_from_binary_expr): Split the expr argument.
13393         (extract_range_from_unary_expr): Split the expr argument.
13394         (extract_range_from_comparison): Split the expr argument.
13395         (extract_range_from_expr): Use the new aux functions.
13396         (vrp_evaluate_conditional_warnv): Use
13397         vrp_evaluate_conditional_warnv_with_ops.
13398         * tree.h (tree_unary_nonzero_warnv_p): Declare.
13399         (tree_binary_nonzero_warnv_p): Declare.
13400         (tree_single_nonzero_warnv_p): Declare.
13401         (tree_expr_nonzero_warnv_p): Declare.
13402         (tree_unary_nonnegative_warnv_p): Declare.
13403         (tree_binary_nonnegative_warnv_p): Declare.
13404         (tree_single_nonnegative_warnv_p): Declare.
13405         (tree_invalid_nonnegative_warnv_p): Declare.
13406
13407 2008-03-28  Richard Guenther  <rguenther@suse.de>
13408
13409         PR tree-optimization/30317
13410         PR tree-optimization/30911
13411         PR tree-optimization/34793
13412         * tree-vrp.c (set_and_canonicalize_value_range): New function.
13413         (struct assert_locus_d): New member EXPR.
13414         (register_new_assert_for): Add EXPR parameter to support
13415         ASSERT_EXPR <name, expr OP limit>.
13416         (register_edge_assert_for_1): Adjust callers.
13417         (find_assert_locations): Likewise.
13418         (process_assert_insertions_for): Build condition from expression.
13419         (extract_range_from_assert): Handle ASSERT_EXPRs
13420         of the form ASSERT_EXPR <name, expr OP limit>.
13421         (register_edge_assert_for_2): New helper registering
13422         asserts for comparisons.  Recognize range tests of the form
13423         (unsigned)i - CST1 OP CST2.
13424         (register_edge_assert_for_1): Use it.
13425         (register_edge_assert_for): Likewise.
13426         (needs_overflow_infinity): Integer sub-types
13427         do not need overflow infinities.
13428         (vrp_val_is_max): The extreme values of integer sub-types
13429         are those of the base type.
13430         (vrp_val_is_min): Likewise.
13431         * tree.def (ASSERT_EXPR): Document extra allowed conditional
13432         expressions.
13433
13434 2008-03-28  Nick Clifton  <nickc@redhat.com>
13435
13436         PR target/31110
13437         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
13438         Return GENERAL_REGS for stack adjustment reloads.
13439
13440 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13441
13442         PR target/31334
13443         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
13444         const_vector when all the vectors are constant.
13445
13446 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
13447
13448         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
13449         comparisons.
13450         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
13451         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
13452         (scc_sf): New.
13453         (s<code>_sf): Use new scc_sf attribute for opcode names.
13454
13455 2008-03-27  Tom Tromey  <tromey@redhat.com>
13456
13457         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
13458         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
13459         config/spu/t-spu-elf, config/i386/t-interix,
13460         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
13461         config/i386/x-darwin, config/i386/x-mingw32,
13462         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
13463         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
13464         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
13465         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
13466         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
13467         config/rs6000/x-darwin, config/rs6000/t-rs6000,
13468         config/score/t-score-elf, config/arm/t-strongarm-pe,
13469         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
13470         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
13471         Revert automatic dependency patch.
13472
13473 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
13474
13475         PR target/35657
13476         * config/i386/i386.c (ix86_function_arg_boundary): Align
13477         decimal floating point to its natural boundary.
13478
13479 2008-03-27  Richard Guenther  <rguenther@suse.de>
13480
13481         PR middle-end/35716
13482         * fold-const.c (fold_comparison): Restrict distinct decl
13483         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
13484         solely rely on operand_equal_p.
13485
13486 2008-03-27  Richard Guenther  <rguenther@suse.de>
13487
13488         PR c/32511
13489         * c-common.c (handle_weak_attribute): Reject combination of
13490         weak and inline.
13491
13492 2008-03-27  Richard Guenther  <rguenther@suse.de>
13493
13494         PR tree-optimization/32810
13495         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
13496         conversions from DECL_INITIAL.
13497         (fold_const_aggregate_ref): Likewise from constructor elements.
13498
13499 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
13500
13501         * tree-affine.h (aff_combination_expand): Declare.
13502         (get_inner_reference_aff): Likewise.
13503         * tree-affine.c (aff_combination_expand): Split out from
13504         tree_to_aff_combination_expand.
13505         (get_inner_reference_aff): New function.
13506         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
13507         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
13508         (struct lim_aux_data): sm_done field removed.
13509         (mem_ref_loc_p, mem_ref_locs_p): New types.
13510         (struct mem_ref): Added id, stored, accesses_in_loop,
13511         indep_loop, dep_loop, indep_ref, dep_ref fields.
13512         Removed is_stored, locs and next fields.
13513         (memory_accesses): New variable.
13514         (movement_possibility): Do not allow moving statements
13515         that store to memory.
13516         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
13517         New functions.
13518         (determine_max_movement): For statements with memory references,
13519         find the outermost loop in that the reference is independent.
13520         (move_computations_stmt): Mark the virtual operands for renaming.
13521         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
13522         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
13523         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
13524         add_vop_ref_mapping, create_vop_ref_mapping_loop,
13525         create_vop_ref_mapping, analyze_memory_references,
13526         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
13527         get_all_locs_in_loop, ref_always_accessed_p,
13528         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
13529         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
13530         store_motion_loop, store_motion): New functions.
13531         (struct vop_to_refs_elt): New type.
13532         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
13533         memref_hash, memref_eq, hoist_memory_references): Rewritten.
13534         (schedule_sm): Replaced by...
13535         (execute_sm): ... this.
13536         (determine_lsm_ref, hoist_memory_references,
13537         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
13538         find_more_ref_vops, free_mem_ref, free_mem_refs,
13539         determine_lsm_loop, determine_lsm): Removed.
13540         (tree_ssa_lim_finalize): Free data structures used by store motion.
13541         (tree_ssa_lim): Call analyze_memory_references.  Use
13542         store_motion instead of determine_lsm.
13543
13544 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
13545
13546         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
13547         rename tmake_file to m68hc11/t-m68hc11.
13548         (mcore): Set inhibit_libc to true.
13549         * config.host (alpha*-dec-*vms*): Set extra_programs.
13550         (interix3*): Don't use host_xmake_file.
13551         * configure.ac: Let config.gcc override inhibit_libc.
13552         * configure: Regenerate.
13553
13554         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
13555         * config/t-openbsd-thread: Remove commented out lines.
13556
13557         * config/x-interix: Remove.
13558
13559         * config/m68hc11/t-m68hc11-gas: Rename to...
13560         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
13561
13562         * config/mcore/t-mcore: Remove T_CFLAGS.
13563         * config/mcore/t-mcore-pe: Likewise.
13564
13565 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
13566
13567         * configure.ac: Replace custom __GNU_SOURCE test with
13568         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
13569         * aclocal.m4: Regenerate.
13570         * configure: Regenerate.
13571         * config.in: Regenerate.
13572
13573 2008-03-27  Richard Guenther  <rguenther@suse.de>
13574
13575         * fold-const.c (target.h): Include.
13576         (fold_comparison): Fold comparison of addresses of decls
13577         that bind locally or of constants.  Consolidate address folding code.
13578         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
13579         results from fold_binary_to_constant.
13580         (compare_values_warnv): Likewise.
13581
13582 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
13583
13584         PR middle-end/35429
13585         * fold-const.c (fold_truthop): Check for integeral types when folding
13586         a == 0 && b == 0 and a != 0 || b != 0 .
13587
13588 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
13589
13590         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
13591
13592 2008-03-26  Andreas Schwab  <schwab@suse.de>
13593
13594         * doc/invoke.texi: Fix use of @item vs. @itemx.
13595
13596 2008-03-26  Tom Tromey  <tromey@redhat.com>
13597
13598         * Makefile.in (build/gensupport.o, build/print-rtl.o,
13599         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
13600         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
13601         build/gencodes.o, build/genconditions.o, build/genconfig.o,
13602         build/genconstants.o, build/genemit.o, build/genextract.o,
13603         build/genflags.o, build/genmddeps.o, build/genopinit.o,
13604         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
13605         options.h.
13606
13607 2008-03-26  Richard Guenther  <rguenther@suse.de>
13608
13609         Revert
13610         2008-03-26  Richard Guenther  <rguenther@suse.de>
13611
13612         * fold-const.c (target.h): Include.
13613         (fold_comparison): Fold comparison of addresses of two decls
13614         that bind locally.  Consolidate address folding code.
13615
13616 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13617
13618         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
13619         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
13620         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
13621         dconstsqrt2, dconstthird, dconste and/or dconst10.
13622         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
13623         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
13624         dconstsqrt2, dconste): Delete.
13625         (init_emit_once): Likewise.  Simplify initializing dconstm1.
13626         Constify variable.
13627         * real.c (get_real_const): New.
13628         * real.h (dconst3, dconst10, dconstm2, dconstthird,
13629         dconstsqrt2, dconste): Delete.
13630         (real_value_const, get_real_const): New.
13631
13632 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
13633
13634         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
13635
13636         * config/i386/i386.c (ix86_function_arg_boundary): Check
13637         BIGGEST_ALIGNMENT instead of 128.
13638         (setup_incoming_varargs_64): Likewise.
13639
13640 2008-03-26  Tom Tromey  <tromey@redhat.com>
13641
13642         * Makefile.in (DEPFILES): Add missing '/'.
13643
13644 2008-03-26  Richard Guenther  <rguenther@suse.de>
13645
13646         * fold-const.c (target.h): Include.
13647         (fold_comparison): Fold comparison of addresses of two decls
13648         that bind locally.  Consolidate address folding code.
13649
13650 2008-03-26  Nick Clifton  <nickc@redhat.com>
13651
13652         PR target/31232
13653         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
13654         not allow INT+INT as a legitimate addressing mode.
13655
13656 2008-03-26  Richard Guenther  <rguenther@suse.de>
13657
13658         * tree-flow.h (widen_bitfield): Remove declaration.
13659         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
13660         (widen_bitfield): Remove function.
13661         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
13662         code.
13663
13664 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13665
13666         PR target/31558
13667         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
13668         error_mark_node's.
13669
13670 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
13671
13672         PR rtl-optimization/35232
13673         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
13674         (forget_old_reloads_1, forget_marked_reloads): Don't clear
13675         reg_reloaded_call_part_clobbered here.
13676         (reload_regs_reach_end_p): New function.
13677         (reload_reg_rtx_for_input): New variable.
13678         (reload_reg_rtx_for_output): Likewise.
13679         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
13680         when reassigning a pseudo register.  Load reloadreg from
13681         reload_reg_rtx_for_input, moving the mode and register
13682         calculation to...
13683         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
13684         instead of the original when deciding whether an input reload
13685         would be a no-op or whether an output reload can be deleted.
13686         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
13687         when setting up new_spill_reg_store.  Load it from
13688         reload_reg_rtx_for_output, moving the mode and register
13689         calculation to...
13690         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
13691         instead of the original when deciding whether an output reload
13692         would be a no-op.  Do the same when modifying insn notes.
13693         Use rtx_equal_p instead of == to compare the registers.
13694         (inherit_piecemeal_p): Take a mode and two register numbers
13695         as argument.
13696         (emit_reload_insns): Clear new_spill_reg_store for every hard
13697         register in the reload register.  Remove spill registers
13698         from reg_reloaded_valid before considering whether to record
13699         inheritance information for them.  Use reload_reg_rtx_for_output
13700         instead of reg_rtx when recording output reloads.  Use
13701         reload_reg_rtx_for_input instead of reg_rtx when recording
13702         input reloads.  Set or clear reg_reloaded_call_part_clobbered
13703         at the same time as setting reg_reloaded_valid.
13704         (delete_output_reload): Add a new_reload_reg parameter and use it
13705         instead of rld[j].reg_rtx.
13706         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
13707         calls accordingly.
13708
13709 2008-03-25  Tom Tromey  <tromey@redhat.com>
13710
13711         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
13712         (build/genattr.o): Likewise.
13713         (build/genattrtab.o): Likewise.
13714         (build/gencodes.o): Likewise.
13715         (build/genconfig.o): Likewise.
13716         (build/genconstants.o): Likewise.
13717         (build/genemit.o): Likewise.
13718         (build/genextract.o): Likewise.
13719         (build/genflags.o): Likewise.
13720
13721 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
13722
13723         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
13724         instead of size_int for integer types.
13725         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
13726         to match type of MINUS_EXPR.
13727
13728 2008-03-25  Tom Tromey  <tromey@redhat.com>
13729
13730         * configure: Rebuilt.
13731         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
13732         Makefile.
13733
13734 2008-03-25  Tom Tromey  <tromey@redhat.com>
13735
13736         * config/x-solaris (host-solaris.o): Update.
13737         * config/x-linux (host-linux.o): Update.
13738         * config/x-hpux (host-hpux.o): Update.
13739         * config/x-darwin (host-darwin.o): Update.
13740         * config/v850/t-v850e (v850-c.o): Update.
13741         * config/v850/t-v850 (v850-c.o): Update.
13742         * config/t-vxworks (vxworks.o): Update.
13743         * config/t-sol2 (sol2-c.o, sol2.o): Update.
13744         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
13745         * config/spu/t-spu-elf (spu-c.o): Update.
13746         (spu.o): Remove.
13747         * config/sh/t-symbian (sh-c.o): Update.
13748         (symbian.o): Update.
13749         * config/sh/t-sh (sh-c.o): Update.
13750         * config/score/t-score-elf (score7.o, score3.o): Update.
13751         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
13752         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
13753         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
13754         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
13755         (rs6000.o): Remove.
13756         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
13757         * config/m32c/t-m32c (m32c-pragma.o): Update.
13758         * config/ia64/t-ia64 (ia64-c.o): Update.
13759         * config/i386/x-mingw32 (host-mingw32.o): Update.
13760         * config/i386/x-i386 (driver-i386.o): Update.
13761         * config/i386/x-darwin (host-i386-darwin.o): Update.
13762         * config/i386/x-cygwin (host-cygwin.o): Update.
13763         * config/i386/t-nwld (nwld.o): Update.
13764         * config/i386/t-netware (netware.o): Update.
13765         * config/i386/t-interix (winnt.o): Update.
13766         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
13767         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
13768         msformat-c.o): Update.
13769         * config/bfin/t-bfin-linux (generated_files): Add
13770         linux-sysroot-suffix.h.
13771         * config/arm/t-wince-pe (pe.o): Update.
13772         * config/arm/t-strongarm-pe (pe.o): Update.
13773         * config/arm/t-pe (pe.o): Update.
13774         * config/arm/t-arm (arm-c.o): Update.
13775         * doc/install.texi (Prerequisites): Require make 3.80.
13776         * Makefile.in: Remove .o targets.
13777         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
13778         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
13779         (simple_generated_h, simple_generated_c): Move earlier.
13780         (generated_files): New variable.
13781         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
13782         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
13783         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
13784         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
13785         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
13786         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
13787         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
13788         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
13789         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
13790         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
13791         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
13792         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
13793         (.c.o): Remove.
13794         (COMPILE.base, COMPILE): New variables.
13795         (%.o): New pattern rule.
13796         (ALL_HOST_OBJS): New variable.
13797         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
13798         (dummy-checksum.o, cc1-checksum.o): Remove.
13799         (DRIVER_SHLIB): New variable.
13800         (DRIVER_DEFINES): Use it.
13801         (gencondmd.c): Move out of build/.
13802         (s-conditions): Update.
13803         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
13804         (ALL_BUILD_OBJS): Likewise.
13805         (build/%.o): Use BUILDCOMPILE.
13806         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
13807         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
13808         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
13809         build/gencheck.o, build/gencodes.o, build/genconditions.o,
13810         build/genconfig.o, build/genconstants.o, build/genemit.o,
13811         build/genextract.o, build/genflags.o, build/genmddeps.o,
13812         build/genopinit.o, build/genoutput.o, build/genpeep.o,
13813         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
13814         build/gen-protos.o, build/scan.o, build/fix-header.o,
13815         build/scan-decls.o): Simplify.
13816         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
13817         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
13818         prefix.o, toplev.o): Reduce to variable setting.
13819         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
13820         ($(out_object_file), gcc-options.o): New targets.
13821         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
13822         * configure: Rebuilt.
13823         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
13824         * doc/sourcebuild.texi (Front End Directory): Document new variable.
13825
13826 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
13827
13828         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
13829         complain when we hit an error, return ERROR_MARK_NODE.
13830
13831 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
13832
13833         * config/sh/constraints.md (Pso, Psz): New constraints.
13834         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
13835         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
13836
13837 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
13838
13839         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
13840         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
13841
13842 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
13843
13844         * config/sh/sh.md (prefetch): Add condition for SH2A target.
13845         (prefetch_sh2a): New.
13846
13847 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
13848             Naveen.H.S  <naveen.hs@kpitcummins.com>
13849
13850         * config/sh/constraints.md (I28): New constraint.
13851         * config/sh/sh.c (broken_move): Add support for movi20s.
13852         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
13853
13854 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
13855             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
13856             Naveen.H.S  <naveen.hs@kpitcummins.com>
13857
13858         * config/sh/sh.c (SH_ATTRIBUTES): Define.
13859         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
13860         (print_operand): Handle resbank in %@ operand code.
13861         (sh_encode_section_info): New.
13862         (push_regs): Add conditions for resbank.
13863         (sh_expand_epilogue): Likewise.
13864         (sh_insert_attributes): Likewise.
13865         (sh_attribute_table): Likewise.
13866         (sh_handle_resbank_handler_attribute): New.
13867         (sh2a_handle_function_vector_handler_attribute): New.
13868         (sh2a_is_function_vector_call): New.
13869         (sh2a_get_function_vector_number): New.
13870         (sh2a_function_vector_p): New.
13871         (sh_cfun_resbank_handler_p): New.
13872         * config/sh/sh.md (calli): Emit jsr/n if possible.
13873         (calli_tbr_rel): New.
13874         (calli_pcrel): Emit jsr/n if possible.
13875         (return_i): Emit rts/n if possible.
13876         (call_valuei_tbr_rel): New.
13877         (call_valuei_pcrel): Add condition for SH2A target.
13878         (call_value): Likewise.
13879         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
13880         (sh2a_get_function_vector_number): Likewise.
13881         (sh2a_is_function_vector_call): Likewise.
13882         * doc/extend.texi: Document TBR relative addressing of SH2A.
13883         (resbank): Add description for SH2A.
13884
13885 2008-03-24  Richard Guenther  <rguenther@suse.de>
13886
13887         PR c/22371
13888         * gimplify.c (gimplify_modify_expr): For frontend type-correct
13889         pointer assignments change conversions according to middle-end rules.
13890         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
13891         * configure.ac: Include type checking in yes.
13892         * configure: Regenerate.
13893
13894 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13895
13896         * diagnostic.c (diagnostic_count_diagnostic): Delete.
13897         (diagnostic_report_diagnostic): Update. Handle ICEs here.
13898
13899 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
13900
13901         * gthr-vxworks.h (UNUSED): Define.
13902
13903 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
13904
13905         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
13906
13907 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
13908
13909         * doc/extend.texi (Function Attributes): Add missing comma in the
13910         example of the "alloc_size" attribute.
13911
13912 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
13913
13914         Revert:
13915         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
13916
13917         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
13918         32bit host.
13919
13920         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
13921
13922         PR target/35496
13923         * stor-layout.c (update_alignment_for_field): Set minimum alignment
13924         of the underlying type of a MS bitfield layout to the natural
13925         alignment of the type.
13926
13927         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
13928
13929         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
13930         to their natural alignment to avoid store forwarding stalls.
13931
13932 2008-03-22  Richard Guenther  <rguenther@suse.de>
13933
13934         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
13935         For PHI nodes verify the address is invariant.
13936         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
13937         (get_symbol_constant_value): Use is_gimple_min_invariant.
13938         (maybe_fold_stmt_indirect): Likewise.
13939
13940 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
13941
13942         PR rtl-optimization/33927
13943         * Makefile.in (dse.o): Depend on $(TM_P_H).
13944         * expr.h (extract_low_bits): Declare.
13945         * expmed.c (extract_low_bits): New function.
13946         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
13947         * dse.c: Include tm_p.h.
13948         (find_shift_sequence): Remove the read_reg argument and return the
13949         read value.  Emit the instructions instead of returning them.
13950         Iterate on new_mode rather than calculating it each time.
13951         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
13952         source to NEW_MODE and extract_low_bits to convert the shifted
13953         value to READ_MODE.
13954         (replace_read): Allow the load and store to have different mode
13955         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
13956         or extraction instructions before trying the replacement.  Update
13957         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
13958
13959 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
13960
13961         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
13962         to their natural alignment to avoid store forwarding stalls.
13963
13964 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13965
13966         PR target/27946
13967         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
13968         encouraging but not allowing gprs for input;
13969         change the input constraint to !f#r.
13970         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
13971         gprs for output;
13972         change the output constraint to !f#r.
13973
13974 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
13975
13976         PR target/13958
13977         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
13978         corresponding post-reload splitters.
13979         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
13980         when x87 FP math is selected.
13981         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
13982         New function prototype.
13983         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
13984         unreachable function to ease macroization of insn patterns.
13985
13986 2008-03-21  Martin Jambor  <mjambor@suse.cz>
13987
13988         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
13989         reference dumps if ddr is NULL or dependence is unknown.
13990
13991 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
13992
13993         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
13994         unsigned extension into account.
13995         (ATOMIC_COMPARE_AND_SWAP): Likewise.
13996         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
13997         Do computations on a scratch register.
13998
13999 2008-03-21  Richard Guenther  <rguenther@suse.de>
14000
14001         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
14002         Use is_gimple_min_invariant instead of TREE_INVARIANT.
14003         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
14004         * tree-ssa-dom.c (record_equality): Likewise.
14005         * tree-inline.c (copy_body_r): Likewise.
14006         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
14007         TREE_INVARIANT.
14008
14009 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
14010
14011         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
14012         as 'delete_unused' argument.
14013
14014 2008-03-20  Richard Guenther  <rguenther@suse.de>
14015
14016         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
14017         special casing of constant qualifiers.
14018         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
14019         care about them in general.
14020         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
14021         regardless of their type.
14022         (fold_stmt_r): Forcefully fold *& if we end up with that.
14023
14024 2008-03-20  Paul Brook  <paul@codesourcery.com>
14025
14026         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
14027         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
14028         linker flags.
14029         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
14030         definition.
14031         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
14032         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
14033
14034 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
14035
14036         * common.opt (Wmudflap): New option.
14037         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
14038         (mx_register_decls): Likewise.
14039         (mudflap_finish_file): Likewise.
14040         * doc/invoke.texi: Document -Wno-mudflap.
14041
14042 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
14043
14044         * c-format.c (replace_format_name_to_system_name): New.
14045         (cmp_attribs): New.
14046         (convert_format_name_to_system_name): New.
14047         (decode_format_attr): Add use of convert_format_name_to_system_name.
14048         (format_types_orig): Add gnu_ prefix to names.
14049         (check_format_info_main): Special treating of \0 escaped names for
14050         supporting multi-character format specifiers as I32, I64.
14051         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
14052         (gnu_target_overrides_format_attributes): New.
14053         * c-format.h: Add structure target_ovr_attr to hold
14054         system specific formatter names.
14055         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
14056         msformat-c.o file to c_target_objs and cxx_target_objs.
14057         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
14058         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
14059         (TARGET_N_FORMAT_TYPES): New.
14060         * config/i386/msformat-c.c: New.
14061         * config/i386/t-cygming: Add build rule for msformat-c.o.
14062         * doc/extend.texi: Add new format names gnu_* and ms_* and
14063         further details.
14064         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
14065
14066 2008-03-20  Ira Rosen  <irar@il.ibm.com>
14067
14068         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
14069         optimizations turned on under -O3.
14070         (ftree-vectorize): Add that the flag is turned on with -O3.
14071
14072 2008-03-20  Ben Elliston  <bje@au.ibm.com>
14073
14074         * regmove.c (try_auto_increment): Fix spelling error in comment.
14075         * final.c (final_scan_insn): Likewise.
14076
14077 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
14078
14079         PR target/14552
14080         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
14081         allocator preferences for "y" and "r" class registers.
14082         ("*mov<mode>_internal"): Ditto.
14083         ("*movv2sf_internal_rex64"): Ditto.
14084         ("*movv2sf_internal"): Ditto.
14085
14086 2008-03-19  Michael Matz  <matz@suse.de>
14087
14088         PR middle-end/35616
14089         * calls.c (expand_call): Check overlap of arguments with call
14090         address for sibcalls.
14091
14092 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
14093
14094         PR target/35496
14095         * stor-layout.c (update_alignment_for_field): Set minimum alignment
14096         of the underlying type of a MS bitfield layout to the natural
14097         alignment of the type.
14098
14099 2008-03-19  Jan Hubicka  <jh@suse.cz>
14100
14101         PR other/35094
14102         * toplev.c (decode_d_option): Handle all CPP flags.
14103         * tree-vrp.c: Update tree_pass descriptors.
14104         * regrename.c: Update tree_pass descriptors.
14105         * fwprop.c: Update tree_pass descriptors.
14106         * doc/invoke.texi: Remove documentation of dropped -d? flags.
14107         * tree-into-ssa.c: Update tree_pass descriptors.
14108         * tree-dump.c: Update tree_pass descriptors.
14109         * tree-complex.c: Update tree_pass descriptors.
14110         * tree-dump.h: Update tree_pass descriptors.
14111         * see.c: Update tree_pass descriptors.
14112         * cgraphbuild.c: Update tree_pass descriptors.
14113         * tracer.c: Update tree_pass descriptors.
14114         * tree-loop-distribution.c: Update tree_pass descriptors.
14115         * cgraph.c: Update tree_pass descriptors.
14116         * postreload-gcse.c: Update tree_pass descriptors.
14117         * postreload.c: Update tree_pass descriptors.
14118         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
14119         * tree-tailcall.c: Update tree_pass descriptors.
14120         * tree-pass.h (tree_opt_pass): Rename to ...
14121         (opt_pass) ... this one; add "type" field and remove letter field.
14122         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
14123         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
14124         all_lowering_passes): Update declaration.
14125         * ipa-cp.c: Update tree_pass descriptors.
14126         * final.c: Update tree_pass descriptors.
14127         * omp-low.c: Update tree_pass descriptors.
14128         * tree-ssa-dse.c: Update tree_pass descriptors.
14129         * ipa-reference.c: Update tree_pass descriptors.
14130         * tree-ssa-uncprop.c: Update tree_pass descriptors.
14131         * auto-inc-dec.c: Update tree_pass descriptors.
14132         * reorg.c: Update tree_pass descriptors.
14133         * cgraphunit.c: Update tree_pass descriptors.
14134         * tree-ssa-copyrename.c: Update tree_pass descriptors.
14135         * tree-ssa-ccp.c: Update tree_pass descriptors.
14136         * df-core.c: Update tree_pass descriptors.
14137         * mode-switching.c: Update tree_pass descriptors.
14138         * tree-nomudflap.c: Update tree_pass descriptors.
14139         * modulo-sched.c: Update tree_pass descriptors.
14140         * ipa-pure-const.c: Update tree_pass descriptors.
14141         * cse.c: Update tree_pass descriptors.
14142         * web.c: Update tree_pass descriptors.
14143         * tree-stdarg.c: Update tree_pass descriptors.
14144         * tree-ssa-math-opts.c: Update tree_pass descriptors.
14145         * tree-ssa-dom.c: Update tree_pass descriptors.
14146         * tree-nrv.c: Update tree_pass descriptors.
14147         * tree-ssa-alias.c: Update tree_pass descriptors.
14148         * loop-init.c: Update tree_pass descriptors.
14149         * gimple-low.c: Update tree_pass descriptors.
14150         * ipa-inline.c: Update tree_pass descriptors.
14151         * tree-ssa-sink.c: Update tree_pass descriptors.
14152         * global.c: Update tree_pass descriptors.
14153         * ifcvt.c: Update tree_pass descriptors.
14154         * jump.c: Update tree_pass descriptors.
14155         * predict.c: Update tree_pass descriptors.
14156         * tree-ssa-loop.c: Update tree_pass descriptors.
14157         * recog.c: Update tree_pass descriptors.
14158         * dse.c: Update tree_pass descriptors.
14159         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
14160         * tree-eh.c: Update tree_pass descriptors.
14161         * regmove.c: Update tree_pass descriptors.
14162         * local-alloc.c
14163         * function.c: Update tree_pass descriptors.
14164         * tree-vectorizer.c: Update tree_pass descriptors.
14165         * gcse.c: Update tree_pass descriptors.
14166         * ipa-type-escape.c: Update tree_pass descriptors.
14167         * tree-if-conv.c: Update tree_pass descriptors.
14168         * init-regs.c: Update tree_pass descriptors.
14169         * ipa.c: Update tree_pass descriptors.
14170         * tree-ssa-phiopt.c: Update tree_pass descriptors.
14171         * rtl-factoring.c: Update tree_pass descriptors.
14172         * lower-subreg.c: Update tree_pass descriptors.
14173         * bt-load.c: Update tree_pass descriptors.
14174         * tree-dfa.c: Update tree_pass descriptors.
14175         * except.c: Update tree_pass descriptors.
14176         * emit-rtl.c: Update tree_pass descriptors.
14177         * cfgexpand.c: Update tree_pass descriptors.
14178         * tree-cfgcleanup.c: Update tree_pass descriptors.
14179         * cfgcleanup.c: Update tree_pass descriptors.
14180         * tree-ssa-pre.c: Update tree_pass descriptors.
14181         * tree-sra.c: Update tree_pass descriptors.
14182         * tree-mudflap.c: Update tree_pass descriptors.
14183         * tree-ssa-copy.c: Update tree_pass descriptors.
14184         * cfglayout.c: Update tree_pass descriptors.
14185         * tree-ssa-forwprop.c: Update tree_pass descriptors.
14186         * tree-ssa-dce.c: Update tree_pass descriptors.
14187         * tree-ssa.c: Update tree_pass descriptors.
14188         * regclass.c: Update tree_pass descriptors.
14189         * integrate.c: Update tree_pass descriptors.
14190         * tree-optimize.c: Update tree_pass descriptors.
14191         * tree-ssa-phiprop.c: Update tree_pass descriptors.
14192         * tree-object-size.c: Update tree_pass descriptors.
14193         * combine.c: Update tree_pass descriptors.
14194         * tree-outof-ssa.c: Update tree_pass descriptors.
14195         * bb-reorder.c: Update tree_pass descriptors.
14196         * stack-ptr-mod.c: Update tree_pass descriptors.
14197         * var-tracking.c: Update tree_pass descriptors.
14198         * tree-profile.c: Update tree_pass descriptors.
14199         * tree-vect-generic.c: Update tree_pass descriptors.
14200         * reg-stack.c: Update tree_pass descriptors.
14201         * sched-rgn.c: Update tree_pass descriptors.
14202         * tree-ssa-structalias.c: Update tree_pass descriptors.
14203         * tree-cfg.c: Update tree_pass descriptors.
14204         * passes.c (current_pass): Update declaration.
14205         (finish_optimization_passes): Update.
14206         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
14207         (register_one_dump_file, register_dump_files_1, next_pass_1):
14208         Update arguments.
14209         (init_optimization_passes): Update handling of new types.
14210         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
14211         * ipa-struct-reorg.c: Update tree_pass descriptors.
14212         * tree-ssa-reassoc.c: Update tree_pass descriptors.
14213         * combine-stack-adj.c: Update tree_pass descriptors.
14214         * cfgrtl.c: Update tree_pass descriptors.
14215         * dce.c: Update tree_pass descriptors.
14216         * tree-ssanames.c: Update tree_pass descriptors.
14217
14218 2008-03-19  Richard Guenther  <rguenther@suse.de>
14219
14220         PR middle-end/35609
14221         * tree-ssa.c (walk_data): New structure.
14222         (warn_uninitialized_var): If not always_executed warn with "maybe"
14223         instead of "is".
14224         (execute_early_warn_uninitialized): Compute post-dominators.
14225         Initialize always_executed before processing each basic block.
14226
14227 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
14228
14229         PR target/35504
14230         * config/i386/i386.c (x86_this_parameter): Calculate correct location
14231         of "this" pointer when "regparm = N" or "fastcall" is in effect.
14232
14233 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14234
14235         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
14236
14237 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
14238
14239         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
14240         is true.
14241         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
14242         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
14243         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
14244         target after ignore has been set, and move there also the commputation
14245         of subtarget and original_target.
14246         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
14247         (LANG_HOOKS_INITIALIZER): Remove it.
14248         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
14249
14250 2008-03-18  Richard Guenther  <rguenther@suse.de>
14251
14252         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
14253         found an expression with constants, note that in the VN for the lhs.
14254         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
14255         fold them to constants if possible.  Run cleanup_cfg if done so.
14256         (execute_pre): Return todo.
14257         (do_pre): Likewise.
14258         (execute_fre): Likewise.
14259         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
14260         of constants.
14261         (get_prop_source_stmt): Look through pointer conversions.
14262
14263 2008-03-18  Jan Hubicka  <jh@suse.cz>
14264
14265         * tree-pretty-print.c: Include predict.h.
14266         (dump_generic_node): Dump predictor.
14267         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
14268         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
14269         * gimple-low.c (lower_stmt): Likewise.
14270         * expr.c (expand_expr_real): Likewise.
14271         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
14272         them.
14273         (build_predict_expr, build_predict_expr): New.
14274         * predict.h (predictor_name, build_predict_expr): Update.
14275         * c-typeck.c (c_finish_bc_stmt): Add prediction.
14276         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
14277         * predict.def (PRED_CONTINUE): Update hitrate.
14278         * tree.def (PREDICT_EXPR): Define.
14279         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
14280         do not handle BIND_EXPR.
14281         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
14282         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
14283         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
14284         operands.
14285
14286 2008-03-18  Michael Matz  <matz@suse.de>
14287
14288         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
14289
14290 2008-03-18  Richard Guenther  <rguenther@suse.de>
14291
14292         * tree-gimple.h (is_gimple_invariant_address): Declare.
14293         (is_gimple_constant): Likewise.
14294         * tree-gimple.c (is_gimple_constant): New function.
14295         (is_gimple_invariant_address): Likewise.
14296         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
14297         and is_gimple_invariant_address.
14298         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
14299         previous change.
14300         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
14301         an addressable base.
14302
14303 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
14304
14305         PR middle-end/35611
14306         * gimplify.c (gimplify_expr): Gimplify second operand of
14307         OMP_ATOMIC_LOAD.
14308
14309 2008-03-17  Richard Guenther  <rguenther@suse.de>
14310
14311         PR tree-optimization/19637
14312         * fold-const.c (fold_unary): Remove restrictions of removing
14313         intermediate pointer-conversions (P2)(P1)P0.
14314         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
14315         conversion to void pointer.
14316         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
14317
14318 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
14319
14320         PR debug/31510
14321         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
14322         emulated thread local variables.
14323
14324 2008-03-16  Richard Guenther  <rguenther@suse.de>
14325
14326         PR middle-end/35607
14327         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
14328         expand TREE_INVARIANT operations that are not gimple invariant.
14329
14330 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
14331
14332         * doc/extend.texi (Alignment): Say that the ABI controls
14333         the __alignof__ for non-strict-alignment targets rather
14334         than being a recommendation.
14335
14336 2008-03-15  Paul Brook  <paul@codesourcery.com>
14337
14338         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
14339         annotations.
14340         (arm_output_fn_unwind): Mark functions that can not be unwound.
14341
14342 2008-03-15  Paul Brook  <paul@codesourcery.com>
14343
14344         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
14345         extension instructions.
14346
14347 2008-03-15  Richard Guenther  <rguenther@suse.de>
14348
14349         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
14350         and fold constant aggregate refs.
14351         (fold_const_aggregate_ref): Handle string constants
14352         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
14353         (evaluate_stmt): Simplify now that ccp_fold folds constant
14354         aggregate refs.
14355
14356 2008-03-15  Paul Brook  <paul@codesourcery.com>
14357
14358         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
14359         (extzv): Use gen_extzv_t2.
14360         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
14361
14362 2008-03-15  Richard Guenther  <rguenther@suse.de>
14363
14364         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
14365         (fold_const_aggregate_ref): Likewise.
14366         (get_value): Return NULL if we don't have any values.
14367         (ccp_finalize): Set const_val to NULL after freeing it.
14368         * tree-flow.h (get_symbol_constant_value): Declare.
14369         (fold_const_aggregate_ref): Likewise.
14370         * tree-ssa-sccvn.c (try_to_simplify): Use them.
14371
14372 2008-03-15  Richard Guenther  <rguenther@suse.de>
14373
14374         PR middle-end/35593
14375         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
14376         to not produce negative array indices if not allowed.  Add
14377         parameter to indicate that.
14378         (maybe_fold_offset_to_component_ref): Allow negative array
14379         indices only for the first member of a structure.
14380         (maybe_fold_offset_to_reference): Allow negative array indices.
14381         (maybe_fold_stmt_addition): Likewise.
14382
14383 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
14384             Anatoly Sokolov <aesok@post.ru>
14385
14386         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
14387         (avr_arch): Add ARCH_AVR6.
14388         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
14389         (initial_elimination_offset): Initialize and use 'avr_pc_size'
14390         instead of fixed value 2.
14391         (print_operand_address): Use gs() asm specifier instead of pm().
14392         (avr_assemble_integer): (Ditto.).
14393         (avr_output_addr_vec_elt): (Ditto.).
14394         (print_operand): Handle "!" code.
14395         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
14396         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
14397         (AVR_HAVE_EIJMP_EICALL): Define.
14398         (AVR_3_BYTE_PC): Redefine.
14399         (AVR_2_BYTE_PC): (Ditto.).
14400         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
14401         (LINK_SPEC): Add atmega2560 and atmega2561.
14402         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
14403         (crtm2561.o).
14404         * config/avr/avr.md (call_insn): Use eicall instead of icall
14405         for 3 byte PC devices.
14406         (call_value_insn): (Ditto.).
14407         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
14408         (indirect_jump): Use only for for 2 byte PC devices.
14409         (*tablejump): (Ditto.).
14410         (*indirect_jump_avr6): Add insn.
14411         (*tablejump_rjmp): Don't use for 3 byte PC devices.
14412         * config/avr/libgcc.S (__prologue_saves__): Use eijmp
14413         instead of ijmp for 3 byte PC devices.
14414         (__tablejump2__): (Ditto.).
14415         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
14416         (MULITLIB_DIRNAMES): (Ditto.).
14417         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
14418
14419 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
14420
14421         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
14422         "sse2_umulsidi3".  Use V1DI mode for operand 0.
14423         ("mmx_psadbw"): Use V1DI mode for operand 0.
14424         * config/i386/i386-modes.def (V1SI): New vector mode.
14425         * config/i386/i386.c (struct builtin_description)
14426         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
14427         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
14428         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
14429         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
14430         v1di_ftype_v8qi_v8qi type.
14431         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
14432
14433         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
14434         __builtin_ia32_pmuludq]: Fix the mode of return value.
14435
14436 2008-03-15  Richard Guenther  <rguenther@suse.de>
14437
14438         PR middle-end/35595
14439         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
14440         being a PHI_NODE.
14441
14442 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
14443
14444         * doc/invoke.texi (Option Summary, Xtensa Options): Document
14445         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
14446         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
14447         unless TARGET_SERIALIZE_VOLATILE is enabled.
14448         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
14449         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
14450         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
14451
14452 2008-03-14  Richard Guenther  <rguenther@suse.de>
14453
14454         PR tree-optimization/34172
14455         * tree-flow.h (refs_may_alias_p): Declare.
14456         (get_single_def_stmt): Likewise.
14457         (get_single_def_stmt_from_phi): Likewise.
14458         (get_single_def_stmt_with_phi): Likewise.
14459         * tree-dfa.c (refs_may_alias_p): New function.
14460         (get_single_def_stmt): Likewise.
14461         (get_single_def_stmt_from_phi): Likewise.
14462         (get_single_def_stmt_with_phi): Likewise.
14463         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
14464         (vn_reference_lookup_1): New helper function.
14465         (vn_reference_lookup): Walk the virtual use-def chain to
14466         continue searching for a match if the def does not alias the
14467         reference we are looking for.
14468
14469 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
14470
14471         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
14472         archive and Perzl.  Update The Written Word listing.
14473
14474 2008-03-14  Richard Guenther  <rguenther@suse.de>
14475
14476         PR tree-optimization/34043
14477         PR tree-optimization/33989
14478         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
14479         when doing FRE.
14480         (bitmap_find_leader): Use extra argument to verify dominance
14481         relationship inside a basic-block.
14482         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
14483         (find_leader_in_sets): Adjust.
14484         (create_component_ref_by_pieces): Take extra argument for
14485         dominance check, handle lookup failures.
14486         (find_or_generate_expression): Likewise.
14487         (create_expression_by_pieces): Likewise.
14488         (insert_into_preds_of_block): Adjust.
14489         (create_value_expr_from): If asked for, verify all operands
14490         are in the blocks AVAIL_OUT set.
14491         (make_values_for_stmt): Check for SSA_NAMEs that are life
14492         over an abnormal edge.
14493         (compute_avail): Remove such check.
14494         (do_SCCVN_insertion): New function.
14495         (eliminate): If we do not find a leader suitable for replacement
14496         insert a replacement expression from SCCVN if available.
14497         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
14498         (struct vn_ssa_aux): Add needs_insertion flag.
14499         * tree-ssa-sccvn.c (may_insert): New global flag.
14500         (copy_reference_ops_from_ref): Value-number union member access
14501         based on its size, not type and member if insertion is allowed.
14502         (visit_reference_op_load): For a weak match from union type
14503         punning lookup a view-converted value and insert a SSA_NAME
14504         for that value if that is not found.
14505         (visit_use): Make dumps shorter.  Do not disallow value numbering
14506         SSA_NAMEs that are life over an abnormal edge to constants.
14507         (free_scc_vn): Release inserted SSA_NAMEs.
14508         (run_scc_vn): New flag to specify whether insertion is allowed.
14509         Process SSA_NAMEs in forward order.
14510         * tree-ssa-loop-im.c (for_each_index): Handle invariant
14511         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
14512         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
14513         pointer type to/from integral types that do not change the
14514         precision to regular conversions.
14515
14516 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
14517
14518         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
14519         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
14520         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
14521         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
14522         input arguments and the mode of return value.  Built-in functions
14523         that operate on whole 64-bit MMX register now use V1DI mode.
14524
14525 2008-03-13  Alon Dayan  <alond@il.ibm.com>
14526             Olga Golovanevsky  <olga@il.ibm.com>
14527
14528         PR tree-optimization/35041
14529         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
14530         to locate the right position in a statement.
14531
14532 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
14533
14534         PR target/34000
14535         PR target/35553
14536         * config/i386/xmmintrin.h:  Change all static inline functions to
14537         extern inline and add __gnu_inline__ attribute.
14538         * config/i386/bmintrin.h: Ditto.
14539         * config/i386/smmintrin.h: Ditto.
14540         * config/i386/tmmintrin.h: Ditto.
14541         * config/i386/mmintrin-common.h: Ditto.
14542         * config/i386/ammintrin.h: Ditto.
14543         * config/i386/emmintrin.h: Ditto.
14544         * config/i386/pmmintrin.h: Ditto.
14545         * config/i386/mmintrin.h: Ditto.
14546         * config/i386/mm3dnow.h: Ditto.
14547
14548 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
14549
14550         PR middle-end/35185
14551         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
14552         (lower_omp_2): New function.
14553         (lower_omp_1, lower_omp): Rewritten.
14554
14555 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
14556
14557         PR 35054
14558         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
14559         with the phrase "Microsoft Windows compilers".
14560         (Push/Pop Macro Pragmas): New subsection. Document
14561         #pragma push_macro and pragma pop_macro.
14562
14563 2008-03-12  Paul Brook  <paul@codesourcery.com>
14564
14565         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
14566
14567 2008-03-12  Paul Brook  <paul@codesourcery.com>
14568
14569         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
14570         (thumb2_alusi3_short): Exclude PLUS and MINUS.
14571         (thumb2_addsi_shortim): Rename ...
14572         (thumb2_addsi_short): ... to this.  Allow register operands.
14573         (thumb2_subsi_short): New pattern.
14574         (thumb2_one_cmplsi2_short,
14575         thumb2_negsi2_short): New patterns and peepholes.
14576
14577 2008-03-12  Paul Brook  <paul@codesourcery.com>
14578
14579         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
14580
14581 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
14582
14583         * config/i386/i386.md (int_cond): New code iterator.
14584         (fp_cond): Ditto.
14585         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
14586         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
14587         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
14588         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
14589         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
14590         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
14591         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
14592         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
14593
14594 2008-03-12  Paul Brook  <paul@codesourcery.com>
14595
14596         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
14597         instead of {arm,thumb}_compute_save_reg_mask.
14598         (output_return_instruction): Ditto.
14599         (thumb_unexpanded_epilogue): Ditto.
14600         (thumb1_expand_prologue): Ditto.
14601         (thumb1_output_function_prologue): Ditto.
14602         (arm_set_return_address): Ditto.
14603         (thumb_set_return_address): Ditto.
14604         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
14605         regs to achieve stack alignment.
14606         (thumb1_compute_save_reg_mask): Fix compiler warning.
14607         (arm_output_epilogue): Use offsets->saved_regs_mask.
14608         Adjust stack pointer by poping call clobered registers.
14609         (arm_expand_prologue): Use offsets->saved_regs_mask.
14610         Adjust stack pointer by pushing extra registers.
14611         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
14612
14613 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
14614
14615         PR tree-opt/35422
14616         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
14617         conversion to the operands of a multiplication.
14618
14619 2008-03-12  Richard Guenther  <rguenther@suse.de>
14620
14621         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
14622         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
14623         * timevar.def (TV_TREE_PHIPROP): Add.
14624         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
14625         pass description.  Use TV_TREE_PHIPROP.
14626         * tree-ssa-forwprop.c: Remove phiprop code.
14627
14628 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
14629
14630         PR middle-end/35549
14631         * omp-low.c (maybe_lookup_decl): Constify first argument.
14632         (use_pointer_for_field): Change last argument from bool to
14633         omp_context *.  Disallow shared copy-in/out in nested
14634         parallel if decl is shared in outer parallel too.
14635         (build_outer_var_ref, scan_sharing_clauses,
14636         lower_rec_input_clauses, lower_copyprivate_clauses,
14637         lower_send_clauses, lower_send_shared_vars): Adjust callers.
14638
14639 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
14640             Ira Rosen  <irar@il.ibm.com>
14641
14642         * tree-vectorizer.c (free_stmt_vec_info): New function.
14643         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
14644         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
14645         * tree-vectorizer.h (free_stmt_vec_info): Declare.
14646         * tree-vect-transform.c (vectorizable_conversion): Free
14647         vec_oprnds0 if it was allocated.
14648         (vect_permute_store_chain): Remove unused VECs.
14649         (vectorizable_store): Free VECs that are allocated in the..
14650         function.
14651         (vect_transform_strided_load, vectorizable_load): Likewise.
14652         (vect_remove_stores): Simplify the code.
14653         (vect_transform_loop): Move code to vect_remove_stores().
14654         Call vect_remove_stores() and free_stmt_vec_info().
14655
14656 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14657
14658         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
14659         TARGET_HPUX.  Revise comment.
14660         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
14661         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
14662         Use sr4 variant of `be' instruction when not generating PIC code.
14663         (attr_length_call): Adjust for above change.
14664
14665 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
14666
14667         * ipa-reference.c (static_execute): Remove module_statics_const and
14668         associated setting code.
14669
14670 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
14671
14672         PR target/35540
14673         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
14674         predicate for operand 1.
14675         (paritysi2_cmp): Use register_operand predicate for operand 2.
14676         Use earlyclobber modifier for operand 1.  Remove support for
14677         memory operands.
14678         (paritydi2_cmp): Use register_operand predicate for operand 3.
14679         Use earlyclobber modifier for operand 1.  Remove support for
14680         memory operands.
14681
14682 2008-03-11  Paul Brook  <paul@codesourcery.com>
14683             Vladimir Prus  <vladimir@codesourcery.com>
14684
14685         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
14686         (arm_compute_save_reg0_reg12_mask): Always
14687         check if register 11 must be saved.  Always safe hard frame pointer
14688         when frame_pointer_needeed.
14689         (arm_compute_save_reg_mask): Save IP and PC
14690         only with apcs frames.
14691         (arm_output_epilogue): Adjust Thumb2 codepath to
14692         be also invoked and work for ARM non-apcs frames.
14693         (arm_expand_prologue): Don't bother saving IP
14694         for non-apcs frame, since it's not clobbered by
14695         prologue code.  Implement non-apcs frame
14696         layout.
14697
14698 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
14699
14700         PR rtl-optimization/35281
14701         * expr.c (convert_move): Use a new pseudo for the intermediate
14702         from_mode->word_mode result.
14703
14704 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
14705
14706         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
14707         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
14708         * toplev.c (compile_file): Don't call it.
14709
14710 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
14711
14712         PR middle-end/35526
14713         * expr.c (store_expr): Call emit_block_move if the mode
14714         of "temp" RTX is BLKmode.
14715
14716 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
14717             Richard Guenther  <rguenther@suse.de>
14718
14719         PR tree-optimization/31358
14720         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
14721         the step with a NULL_TREE.
14722         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
14723         to sizetype if type is a pointer type.
14724         (add_candidate_1): Don't convert the base and step to
14725         the generic type if the orginal type is a pointer type.
14726         (add_iv_value_candidates): Use sizetype for the step
14727         if type is a pointer type.
14728         (cand_value_at): Likewise.
14729         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
14730         for pointer types.
14731         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
14732         Don't convert the tem affine to the type.
14733         (add_elt_to_tree): Use sizetype for the step if a pointer.
14734         Use POINTER_PLUS_EXPR for pointers.
14735         (aff_combination_to_tree): Use sizetype for the step if a
14736         pointer.
14737
14738 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
14739
14740         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
14741         Remove commutativity hint.
14742
14743 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
14744
14745         PR c/35438
14746         PR c/35439
14747         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
14748         errorneous type.  Check that v is a VAR_DECL.
14749
14750         PR middle-end/35099
14751         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
14752
14753 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
14754
14755         PR tree-optimization/35494
14756         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
14757         may be overriden at link and run time.
14758
14759 2008-03-10  Richard Guenther  <rguenther@suse.de>
14760
14761         PR tree-optimization/34677
14762         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
14763         (poolify_tree): Likewise.
14764         (modify_expr_template): Likewise.
14765         (poolify_modify_stmt): Likewise.
14766         (insert_fake_stores): Handle all component-ref style stores
14767         in addition to INDIRECT_REF.  Also handle complex types.
14768         Do not poolify the inserted load.
14769         (realify_fake_stores): Do not rebuild the tree but only
14770         make it a SSA_NAME copy.
14771         (init_pre): Remove initialzation of modify_expr_template.
14772         Do not allocate modify_expr_node_pool.
14773         (fini_pre): Do not free modify_expr_node_pool.
14774
14775 2008-03-10  Paul Brook  <paul@codesourcery.com>
14776
14777         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
14778         to avoid conflicts.
14779
14780 2008-03-10  Paul Brook  <paul@codesourcery.com>
14781             Mark Shinwell  <shinwell@codesourcery.com>
14782
14783         * config/arm/cortex-r4.md: New.
14784         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
14785         insn attributes.
14786         * config/arm/arm.md: Include cortex-r4.md.
14787         (insn): Add smmls, sdiv and udiv values.
14788         (generic_sched): Don't use generic scheduling for Cortex-R4.
14789         (arm_issue_rate): New function.
14790         (TARGET_SCHED_ISSUE_RATE): Define.
14791
14792 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
14793
14794         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
14795
14796 2008-03-10  Richard Guenther  <rguenther@suse.de>
14797
14798         * tree-ssa-pre.c (get_sccvn_value): Simplify.
14799         (compute_avail): Do not add stmt uses to AVAIL_OUT.
14800
14801 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
14802
14803         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
14804         Set default to true.
14805
14806 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14807
14808         * c.opt (Wsynth): Deprecate.
14809         * doc/invoke.texi (Option Summary, Warning Options): Document
14810         -Wno-format-contains-nul.
14811
14812 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
14813
14814         PR target/35496
14815         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
14816         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
14817
14818 2008-03-09  Ira Rosen  <irar@il.ibm.com>
14819
14820         * config/rs6000/rs6000.c (builtin_description): Rename vector
14821         left shift operations.
14822         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
14823         (altivec_vsl<VI_char>): Rename to ...
14824         (ashl<mode>3): ... new name.
14825         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
14826         gen_ashlv4si3.
14827         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
14828
14829 2008-03-08  Richard Guenther  <rguenther@suse.de>
14830
14831         * coverage.h (tree_coverage_counter_addr): Declare.
14832         * coverage.c (tree_coverage_counter_addr): New function.
14833         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
14834         before using again.
14835         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
14836         (tree_gen_one_value_profiler): Likewise.
14837         (tree_gen_ic_profiler): Likewise.
14838         (tree_gen_average_profiler): Likewise.
14839         (tree_gen_ior_profiler): Likewise.
14840
14841 2008-03-08  Richard Guenther  <rguenther@suse.de>
14842
14843         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
14844         (vn_binary_op_insert): Likewise.
14845         (vn_unary_op_lookup): Likewise.
14846         (vn_unary_op_insert): Likewise.
14847         (vn_nary_op_lookup): Declare.
14848         (vn_nary_op_insert): Likewise.
14849         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
14850         and binary hashes, use a single obstack for unary_op_pool
14851         and binary_op_pool.
14852         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
14853         a single struct vn_nary_op_s.  Store tree code length and
14854         a variable number of operands.
14855         (struct vn_reference_op_struct): Remove unused op2.
14856         (vn_reference_op_eq): Do not compare op2.
14857         (vn_reference_op_compute_hash): Do not compute hash of op2.
14858         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
14859         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
14860         with vn_nary_op_compute_hash.
14861         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
14862         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
14863         vn_nary_op_lookup.
14864         (vn_unary_op_insert, vn_binary_op_insert): Replace with
14865         vn_nary_op_insert.
14866         (visit_unary_op): Call nary functions.
14867         (visit_binary_op): Likewise.
14868         (process_scc): Adjust for struct vn_tables_s changes.
14869         (allocate_vn_table): Likewise.
14870         (free_vn_table): Likewise.
14871         * tree-vn.c (vn_add): Call nary functions.
14872         (vn_lookup): Likewise.
14873
14874 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
14875
14876         PR target/35498
14877         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
14878         wdst back after sync_compare_and_swapqhi_internal.
14879
14880 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
14881
14882         PR target/22152
14883         * config/i386/i386-modes.def (V1DI): New vector mode.
14884         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
14885         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
14886         (MMXMODE248): Ditto.
14887         (MMXMODE): Add V1DI mode.
14888         (mmxvecsize): Change DI mode to V1DI mode.
14889         ("mov<mode>): Use MMXMODEI8 mode iterator.
14890         ("*mov<mode>_internal_rex64"): Ditto.
14891         ("*mov<mode>_internal"): Ditto.
14892         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
14893         ("mmx_sub<mode>3"): Ditto.
14894         ("mmx_adddi3"): Remove insn pattern.
14895         ("mmx_subdi3"): Ditto.
14896         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
14897         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
14898         ("mmx_ashl<mode>3"): Ditto.
14899         ("mmx_lshrdi3"): Remove insn pattern.
14900         ("mmx_ashldi3"): Ditto.
14901         * config/i386/i386.c (classify_argument): Handle V1DImode.
14902         (function_arg_advance_32): Ditto.
14903         (function_arg_32): Ditto.
14904         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
14905         mmx_addv1di3 insn pattern.
14906         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
14907         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
14908         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
14909         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
14910         Remove definitions of built-in functions.
14911         (V1DI_type_node): New node.
14912         (v1di_ftype_v1di_int): Ditto.
14913         (v1di_ftype_v1di_v1di): Ditto.
14914         (v2si_ftype_v2si_si): Ditto.
14915         (v4hi_ftype_v4hi_di): Remove node.
14916         (v2si_ftype_v2si_di): Ditto.
14917         (ix86_init_mmx_sse_builtins): Handle V1DImode.
14918         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
14919         Redefine builtins using def_builtin_const with *_ftype_*_int node.
14920         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
14921         Add new builtins using def_builtin_const.
14922         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
14923         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
14924         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
14925         * config/i386/mmintrin.h (__v1di): New typedef.
14926         (_mm_add_si64): Cast arguments to __v1di type.
14927         (_mm_sub_si64): Ditto.
14928         (_mm_sll_pi16): Cast __count to __v4hi type.
14929         (_mm_sll_pi32): Cast __count to __v2si type.
14930         (_mm_sll_si64): Cast arguments to __v1di type.
14931         (_mm_srl_pi16): Cast __count to __v4hi type.
14932         (_mm_srl_pi32): Cast __count to __v2si type.
14933         (_mm_srl_si64): Cast arguments to __v1di type.
14934         (_mm_sra_pi16): Cast __count to __v4hi type.
14935         (_mm_sra_pi32): Cast __count to __v2si type.
14936         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
14937         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
14938         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
14939         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
14940         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
14941         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
14942         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
14943         (_mm_srai_pi32): Use __builtin_ia32_psradi.
14944         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
14945         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
14946         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
14947         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
14948
14949 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
14950
14951         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
14952
14953 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
14954
14955         PR target/35373
14956         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
14957         reg+const addressing for Altivec modes.  Don't generate reg+reg
14958         addressing for TFmode or TDmode quantities.
14959
14960 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
14961
14962         * c-common.c (vector_types_convertible_p): Call langhook
14963         instead of comptypes.
14964
14965 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
14966
14967         PR tree-opt/35402
14968         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
14969         integral and scalar float variables which have a
14970         NULL DECL_INITIAL.
14971
14972 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
14973
14974         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
14975         dwarf_register_span hook when emitting unwind information for
14976         register-to-memory saves.
14977         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
14978         (rs6000_frame_related): Remove call to spe_synthesize_frame.
14979
14980 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
14981
14982         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
14983         for the same VAR_DECL.
14984
14985 2008-03-06  Tom Tromey  <tromey@redhat.com>
14986
14987         * treelang: Delete.
14988         * doc/standards.texi (Standards): Don't mention treelang.
14989         * doc/invoke.texi (Overall Options): Don't mention treelang.
14990         * doc/install.texi (Prerequisites): Don't mention bison or
14991         treelang.
14992         (Configuration): Don't mention treelang.
14993         (Building): Likewise.
14994         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
14995
14996 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
14997
14998         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
14999         word-extractions out of a multi-word object.
15000
15001 2008-03-06  Richard Guenther  <rguenther@suse.de>
15002
15003         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
15004         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
15005         result type and precision.
15006         * expr.c (get_inner_reference): Set unsignedp based on the result
15007         type of BIT_FIELD_REF.
15008         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
15009         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
15010         (try_instantiate_multiple_fields): Likewise.  Use the correct type
15011         for BIT_FIELD_REF.
15012         (sra_build_assignment): Likewise.
15013         (sra_build_elt_assignment): Likewise.
15014         (sra_explode_bitfield_assignment): Likewise.
15015         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
15016         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
15017         set BIT_FIELD_REF_UNSIGNED.
15018         (vectorizable_load): Likewise.
15019
15020 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
15021
15022         * cse.c (cse_extended_basic_block): Invalidate artificial defs
15023         at bb start.
15024
15025 2008-03-06  Richard Guenther  <rguenther@suse.de>
15026
15027         * alias.c (struct alias_set_entry): Move has_zero_child field
15028         to pack with alias_set.
15029
15030 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
15031
15032         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
15033         32bit host.
15034
15035 2008-03-05  Ian Lance Taylor  <iant@google.com>
15036
15037         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
15038
15039 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
15040
15041         * fwprop.c (update_df): Support width and offset parameters of
15042         df_ref_create.
15043         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
15044         global_conflicts): Change DF_REF_EXTRACT to either
15045         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
15046         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
15047         * df-scan.c (df_ref_record, df_defs_record,
15048         df_ref_create_structure, df_def_record_1, df_uses_record,
15049         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
15050         df_bb_refs_collect, df_entry_block_defs_collect,
15051         df_exit_block_uses_collect): Support new width and offset fields.
15052         (ref_extract_pool): New storage pool.
15053         (df_free_ref): New function.
15054         (df_reg_chain_unlink, df_free_collection_rec,
15055         df_sort_and_compress_refs): Call df_free_ref.
15056         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
15057         of df_ref_extract.
15058         (df_ref_create_structure): Allocate df_ref_extract if offset and
15059         width fields are used.
15060         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
15061         (df_uses_record): Get offset and width from ZERO_EXTRACT
15062         and SIGN_EXTRACT.
15063         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
15064         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
15065         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
15066         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
15067         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
15068         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
15069         (df_ref_extract): New structure.
15070         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
15071         (df_ref_create): Add width and offset parameters.
15072
15073 2008-03-05  Richard Guenther  <rguenther@suse.de>
15074
15075         * tree-ssa-structalias.c (get_constraint_for_component_ref):
15076         Use ranges_overlap_p.
15077         (offset_overlaps_with_access): Rename
15078         to ranges_overlap_p and move ...
15079         * tree-flow-inline.h (ranges_overlap_p): ... here.
15080
15081         * tree.h (get_inner_reference, handled_component_p): Update
15082         comments.
15083
15084         * tree.h (record_component_aliases, get_alias_set,
15085         alias_sets_conflict_p, alias_sets_must_conflict_p,
15086         objects_must_conflict_p): Move declarations ...
15087         * alias.h (record_component_aliases, get_alias_set,
15088         alias_sets_conflict_p, alias_sets_must_conflict_p,
15089         objects_must_conflict_p): ... here.
15090         Include coretypes.h.
15091         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
15092
15093 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
15094
15095         * cfg.c: Include tree-flow.h.
15096         (remove_edge_raw): Call redirect_edge_var_map_clear.
15097         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
15098         * tree-flow-inline.h (redirect_edge_var_map_def): New.
15099         (redirect_edge_var_map_result): New.
15100         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
15101         PENDING_STMT use with redirect_edge_var_map_*.
15102         * tree-ssa.c (edge_var_maps): New definition.
15103         (redirect_edge_var_map_add): New.
15104         (redirect_edge_var_map_clear): New.
15105         (redirect_edge_var_map_dup): New.
15106         (redirect_edge_var_map_vector): New.
15107         (redirect_edge_var_map_destroy): New.
15108         (ssa_redirect_edge): Replace PENDING_STMT use with
15109         redirect_edge_var_map_*.
15110         (flush_pending_stmts): Same.
15111         (delete_tree_ssa): Destroy edge var map.
15112         * tree-flow.h (struct _edge_var_map): New.
15113         Define edge_var_map vector type.
15114         Declare redirect_edge_var_map_* prototypes.
15115         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
15116         * tree-cfg.c (reinstall_phi_args): Replace
15117         PENDING_STMT use with redirect_edge_var_map_*.
15118
15119 2008-03-05  Richard Guenther  <rguenther@suse.de>
15120
15121         PR tree-optimization/35472
15122         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
15123         whose single use_stmt has a overlapping set of loaded and
15124         stored symbols as that use_stmt might be a noop assignment then.
15125
15126 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
15127
15128         * gthr-rtems.h: Implement __gthread_mutex_destroy.
15129
15130 2008-03-05  Richard Guenther  <rguenther@suse.de>
15131
15132         PR c++/35336
15133         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
15134         should be constants.
15135         * tree-cfg.c (verify_expr): Verify it.
15136         * fold-const.c (fold_truthop): Remove code generating
15137         BIT_FIELD_REFs of structure bases.
15138         (fold_binary): Likewise.
15139         (fold_ternary): Position and size of BIT_FIELD_REFs are
15140         always host integers.
15141         (make_bit_field_ref): Remove.
15142         (optimize_bit_field_compare): Remove.
15143         (all_ones_mask_p): Remove.
15144
15145 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
15146
15147         PR gcc/33009
15148         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
15149         (split_block_and_df_analyze): New. Split basic block and rebuild
15150         dataflow.
15151         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
15152         SPLIT_BLOCK.
15153         (split_pattern_seq): Likewise.
15154         (erase_matching_seqs): Likewise.
15155         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
15156
15157 2008-03-04  Geoff Keating  <geoffk@apple.com>
15158
15159         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
15160         declaration and code.
15161         (tree_invalid_nonnegative_warnv_p): Likewise.
15162
15163 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
15164
15165         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
15166         examples.  Truncate option-names then causing overfull hbox.
15167
15168 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15169
15170         PR target/35222
15171         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
15172         on hpux10.
15173         * configure: Rebuilt.
15174
15175 2008-03-04  Rafael Espindola  <espindola@google.com>
15176
15177         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
15178         (tree_unary_nonnegative_warnv_p): New.
15179         (tree_binary_nonnegative_warnv_p): New.
15180         (tree_single_nonnegative_warnv_p): New.
15181         (tree_invalid_nonnegative_warnv_p): New.
15182         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
15183
15184 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15185
15186         PR 28322
15187         * opts.c (handle_option): Postpone 'unknown option' errors only for
15188         warning options.
15189
15190 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
15191
15192         PR target/35453
15193         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
15194         (_SIDD_XXX): This.
15195
15196 2008-03-04  Rafael Espindola  <espindola@google.com>
15197
15198         * fold-const.c (tree_unary_nonzero_warnv_p): New.
15199         (tree_binary_nonzero_warnv_p): New.
15200         (tree_single_nonzero_warnv_p): New.
15201         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
15202
15203 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
15204
15205         PR middle-end/35456
15206         * fold-const.c (fold_cond_expr_with_comparison): Prevent
15207         transformations for modes that have signed zeros.
15208         * ifcvt.c (noce_try_abs): Ditto.
15209
15210 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
15211
15212         * config/i386/i386.c (override_options): Force
15213         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
15214
15215 2008-03-04  Jan Hubicka  <jh@suse.cz>
15216
15217         PR c++/35262
15218         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
15219         in last commit.
15220
15221 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
15222
15223         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
15224         label to probe the stack.
15225
15226 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
15227
15228         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
15229         (__gthr_win32_mutex_destroy): Declare.
15230         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
15231         __gthr_win32_mutex_destroy.
15232         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
15233
15234 2008-03-03  Jan Hubicka  <jh@suse.cz>
15235
15236         PR c++/35262
15237         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
15238         aggressive on inlining cold calls.
15239
15240 2008-03-03  Richard Guenther  <rguenther@suse.de>
15241
15242         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
15243         struct copies into the expression table.
15244         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
15245         (try_to_simplify): Likewise.
15246         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
15247         integral and pointer arguments which do not change the
15248         precision to NOP_EXPRs.
15249         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
15250         VIEW_CONVERT_EXPR case.
15251
15252 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
15253
15254         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
15255         defined in a loop at depth 0 is invariant.
15256         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
15257         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
15258         be called at loop depth 0.
15259
15260 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
15261
15262         PR driver/35420
15263         * gcc.c (process_command): Update copyright notice dates.
15264         * gcov.c (print_version): Likewise.
15265         * gcov-dump.c (print_version): Likewise.
15266         * mips-tfile.c (main): Likewise.
15267         * mips-tdump.c (main): Likewise.
15268
15269 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15270
15271         PR 24924
15272         * c-common.c (flag_permissive): Delete.
15273         (constant_expression_warnings): Check flags first.
15274         (constant_expression_error): New.
15275         * c-common.h (flag_permissive): Delete.
15276         (constant_expression_error): Declare.
15277         * flags.h (flag_permissive): Declare. Update description.
15278         * diagnostic.c (pedwarn): Update.
15279         (permerror): New.
15280         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
15281         (permissive_error_kind): New.
15282         * toplev.c (flag_permissive): Define. Update description.
15283         * toplev.h (permissive_error_kind): Declare.
15284         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
15285         (pedwarn_c90): Use pedantic_warning_kind.
15286         * c-opts.c (c_common_post_options): flag_permissive does not affect
15287         flag_pedantic_errors.
15288
15289 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
15290
15291         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
15292         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
15293         __absvsi2, __absvDI2): Use unsigned arithmetic.
15294
15295 2008-03-02  Andi Kleen  <ak@suse.de>
15296             Richard Guenther  <rguenther@suse.de>
15297
15298         * struct-equiv.c: Remove file.
15299         * cfg_cleanup.c (condjump_equiv_p): Remove.
15300         * Makefile.in (OBJS-common): Remove struct-equiv.o.
15301         (struct-equiv.o): Remove rule.
15302         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
15303         insns_match_p, struct_equiv_block_eq, struct_equiv_init,
15304         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
15305
15306 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
15307
15308         * ifcvt.c (noce_process_if_block): Try to handle only the then
15309         block if the else block exists but isn't suitable.
15310
15311 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
15312
15313         PR gcc/35063
15314         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
15315         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
15316         regression from previous patch.
15317
15318 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
15319
15320         PR gcc/35063
15321         * gthr.h: Add __gthread_mutex_destroy as a function that must be
15322         implemented.
15323         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
15324         * gthr-single.h (__gthread_mutex_destroy): Likewise.
15325         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
15326         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
15327         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
15328         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
15329         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
15330         (__gthread_mutex_destroy_function): Rename to
15331         __gthread_mutex_destroy.
15332         * gthr-dce.h (__gthread_mutex_destroy): Call
15333         pthread_mutex_destroy.
15334         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
15335         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
15336         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
15337
15338 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
15339
15340         * df-scan.c (df_ref_chain_change_bb): Simplify.
15341         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
15342         set_block_for_insn if there's any change.
15343         * df.h ((df_insn_change_bb): Fix prototype.
15344         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
15345         df_insn_change_bb, don't call set_block_for_insn.
15346         * emit-rtl.c (reorder_insns): Likewise.
15347         * haifa-sched.c (move_insn): Likewise.
15348
15349 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
15350
15351         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
15352
15353 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
15354
15355         * tree-flow-inline.h (next_readonly_imm_use): Return
15356         NULL_USE_OPERAND_P after the end.
15357
15358 2008-03-01  Richard Guenther  <rguenther@suse.de>
15359
15360         PR tree-optimization/35411
15361         * tree-sra.c (sra_build_assignment): Split conversion to
15362         final type to a separate statement if we are not assigning
15363         to a register.
15364
15365 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
15366
15367         * fold-const.c (fold_convertible_p): Correct the logic to follow
15368         that in fold_convert().
15369
15370 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
15371
15372         PR c++/35315
15373         * tree-inline.c (build_duplicate_type): When we make a
15374         duplicate type, make it unique in the canonical types system.
15375
15376 2008-02-29  Tom Tromey  <tromey@redhat.com>
15377
15378         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
15379         input_file_stack_history, input_file_stack_restored): Remove.
15380         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
15381         * input.h (struct file_stack): Remove.
15382         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
15383         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
15384         Likewise.
15385         * diagnostic.h (struct diagnostic_context) <last_module>: Change
15386         type.
15387         (diagnostic_last_module_changed): Add 'map' argument.
15388         (diagnostic_set_last_function): Likewise.
15389         * diagnostic.c (undiagnostic_report_current_module): Iterate using
15390         line map, not input_file_stack.
15391         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
15392
15393 2008-02-29  Paul Brook  <paul@codesourcery.com>
15394
15395         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
15396
15397 2008-02-29  Paul Brook  <paul@codesourcery.com>
15398
15399         * config/arm/ieee754-df.S (muldf3): Use RET macros.
15400
15401 2008-02-29  Richard Guenther  <rguenther@suse.de>
15402
15403         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
15404         vn_lookup_or_add.
15405         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
15406         value for comparing for a store match.
15407         (simplify_unary_expression): Do nothing for SSA_NAMEs.
15408         (try_to_simplify): Do not do a full-blown reference lookup.
15409
15410 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
15411
15412         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
15413         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
15414
15415         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
15416
15417 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
15418
15419         * tree-loop-linear.c (try_interchange_loops): Compare memory access
15420         strides against cache sizes.
15421
15422 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
15423
15424         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
15425         constant to fpul.
15426
15427 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
15428
15429         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
15430         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
15431         is smaller than the original promoted value.
15432         (simplify_subreg): If OP is a SUBREG, try to preserve its
15433         SUBREG_PROMOTED_VAR_P information.
15434
15435 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
15436
15437         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
15438         (VN_INFO_GET): Allocate new objects on the obstack.
15439         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
15440         for rpo_numbers_temp, for consistency.
15441         (free_scc_vn): Free the obstack.
15442
15443 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
15444
15445         * doc/invoke.texi: Document -ftree-loop-distribution.
15446         * tree-loop-distribution.c: New.
15447         * tree-pass.h (pass_loop_distribution): New.
15448         * graphds.h (struct graph): Add htab_t indices.
15449         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
15450         * tree-vectorizer.c (rename_variables_in_loop): Extern.
15451         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
15452         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
15453         * tree-data-ref.c (debug_data_dependence_relations): New.
15454         (dump_data_dependence_relation): Also print data references.
15455         (free_data_ref): Extern.
15456         (same_access_functions): Moved...
15457         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
15458         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
15459         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
15460         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
15461         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
15462         (stmts_from_loop): Skip LABEL_EXPR.
15463         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
15464         New.
15465         (build_rdg): Initialize rdg->indices htab.
15466         (free_rdg, stores_from_loop, ref_base_address,
15467         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
15468         have_similar_memory_accesses_1, ref_base_address_1,
15469         remove_similar_memory_refs): New.
15470         * tree-data-ref.h: Depend on tree-chrec.h.
15471         (debug_data_dependence_relations, free_data_ref): Declared.
15472         (same_access_functions): ... here.
15473         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
15474         New.
15475         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
15476         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
15477         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
15478         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
15479         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
15480         rdg_vertex_for_stmt): Declared.
15481         (struct rdg_edge): Add level.
15482         (RDGE_LEVEL): New.
15483         (free_rdg, stores_from_loop, remove_similar_memory_refs,
15484         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
15485         Declared.
15486         (rdg_has_similar_memory_accesses): New.
15487         * tree-vect-analyze.c: Remove unused static decls.
15488         * lambda.h (dependence_level): New.
15489         * common.opt (ftree-loop-distribution): New.
15490         * tree-flow.h (mark_virtual_ops_in_bb,
15491         slpeel_tree_duplicate_loop_to_edge_cfg,
15492         rename_variables_in_loop): Declared.
15493         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
15494         (OBJS-common): Add tree-loop-distribution.o.
15495         (tree-loop-distribution.o): New rule.
15496         * tree-cfg.c (mark_virtual_ops_in_bb): New.
15497         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
15498         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
15499
15500 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
15501
15502         PR target/33963
15503         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
15504         other than structures and unions.
15505
15506 2008-02-28  Richard Guenther  <rguenther@suse.de>
15507
15508         Revert:
15509         2008-02-26  Richard Guenther  <rguenther@suse.de>
15510
15511         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
15512         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
15513         (lookup_decl_from_uid): Declare.
15514         (remove_decl_from_map): Likewise.
15515         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
15516         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
15517         (decl_for_uid_map): New global hashtable mapping DECL_UID
15518         to the decl tree.
15519         (init_ttree): Allocate it.
15520         (insert_decl_to_uid_decl_map): New helper function.
15521         (make_node_stat): Insert new decls into the map.
15522         (copy_node_stat): Likewise.
15523         (lookup_decl_from_uid): New function.
15524         (remove_decl_from_map): Likewise.
15525         (print_decl_for_uid_map_statistics): New helper.
15526         (dump_tree_statistics): Call it.
15527
15528         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
15529         (referenced_var_iterator): Adjust.
15530         (FOR_EACH_REFERENCED_VAR): Adjust.
15531         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
15532         (num_referenced_vars): Adjust.
15533         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
15534         (first_referenced_var): Remove.
15535         (end_referenced_vars_p): Likewise.
15536         (next_referenced_var): Likewise.
15537         (referenced_var_iterator_set): New helper function.
15538         * tree-dfa.c (referenced_var_lookup): Adjust.
15539         (referenced_var_check_and_insert): Likewise.
15540         (remove_referenced_var): Likewise.
15541         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
15542         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
15543         (verify_call_clobbering): Likewise.
15544         (verify_memory_partitions): Likewise.
15545         (init_tree_ssa): Allocate bitmap instead of hashtable for
15546         referenced_vars.
15547         (delete_tree_ssa): Adjust.
15548         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
15549         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
15550         (compute_tag_properties): Likewise.
15551         (set_initial_properties): Likewise.
15552         (find_partition_for): Likewise.
15553         (update_reference_counts): Likewise.
15554         (dump_may_aliases_for): Likewise.
15555         * tree-ssa-operands.c (add_virtual_operand): Likewise.
15556         (add_call_clobber_ops): Likewise.
15557         (add_call_read_ops): Likewise.
15558         (get_asm_expr_operands): Likewise.
15559         * tree-into-ssa.c (dump_decl_set): Likewise.
15560         (update_ssa): Likewise.
15561         * tree-sra.c (scan_function): Likewise.
15562         (decide_instantiations): Likewise.
15563         (scalarize_parms): Likewise.
15564         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
15565         (dsa_named_for): Likewise.
15566         * tree-ssa-structalias.c (update_alias_info): Likewise.
15567         (merge_smts_into): Likewise.
15568
15569 2008-02-27  David Daney  <ddaney@avtrex.com>
15570
15571         PR target/34409
15572         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
15573         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
15574         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
15575         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
15576         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
15577
15578 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
15579
15580         PR target/25477
15581         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
15582         (BUILT_IN_NEXTTOWARD): Remove.
15583         (BUILT_IN_NEXTTOWARDF): Ditto.
15584         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
15585         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
15586
15587 2008-02-27  Tom Tromey  <tromey@redhat.com>
15588
15589         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
15590         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
15591
15592 2008-02-27  Jan Beulich  <jbeulich@novell.com>
15593
15594         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
15595         update the respective field on newdecl.
15596
15597 2008-02-27  Revital Eres  <eres@il.ibm.com>
15598
15599         PR rtl-optimization/34999
15600         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
15601         crossing edges that ends with a call insn.
15602         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
15603         call insn and clear the EDGE_CROSSING flag of the crossing edge
15604         when fixing fallthru edges.
15605
15606 2008-02-27  Richard Guenther  <rguenther@suse.de>
15607
15608         PR middle-end/35390
15609         * fold-const.c (fold_unary): Return the correct argument,
15610         converted to the result type.
15611
15612 2008-02-27  Richard Guenther  <rguenther@suse.de>
15613
15614         PR middle-end/34971
15615         * expr.c (expand_expr_real_1): Assert on rotates that operate
15616         on partial modes.
15617         * fold-const.c (fold_binary): Use the types precision, not the
15618         bitsize of the mode if folding rotate expressions.  Build rotates
15619         only for full modes.
15620
15621 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
15622
15623         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
15624         and CPP_PRAGMA_EOL.
15625         * c-pragma.c (pragma_ns_name): New typedef.
15626         (registered_pp_pragmas): New variable.
15627         (c_pp_lookup_pragma): New function.
15628         (c_register_pragma_1): If flag_preprocess_only, do nothing
15629         for non-expanded pragmas, for expanded ones push pragma's
15630         namespace and name into registered_pp_pragmas vector.
15631         (c_invoke_pragma_handler): Register OpenMP pragmas even when
15632         flag_preprocess_only, don't register GCC pch_preprocess
15633         pragma if flag_preprocess_only.
15634         * c-opts.c (c_common_init): Call init_pragma even if
15635         flag_preprocess_only.
15636         * c-pragma.c (c_pp_lookup_pragma): New prototype.
15637         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
15638         cpp_register_pragma if flag_preprocess_only.
15639
15640 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15641
15642         PR c/28800
15643         * c-parser.c (c_parser_translation_unit): Warn for empty
15644         translation unit, not empty source file.
15645
15646 2008-02-26  Paul Brook  <paul@codesourcery.com>
15647
15648         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
15649         operand for Thumb-2.
15650         * config/arm/arm.h (reg_class): Add CORE_REGS.
15651         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
15652         (BASE_REG_CLASS): Use CORE_REGS.
15653         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
15654         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
15655         (REGNO_OK_FOR_INDEX_P): Exclude SP.
15656         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
15657         ARM_REGNO_OK_FOR_INDEX_P.
15658         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
15659         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
15660         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
15661         (ldm/stm peepholes): Ditto.
15662         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
15663         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
15664         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
15665         * config/arm/constraints.md: Enable "k" constraint on ARM.
15666
15667 2008-02-27  Ben Elliston  <bje@au.ibm.com>
15668
15669         * config/rs6000/rs6000.c: Annotate cache line size field in all
15670         instances of struct processor_costs.
15671
15672 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
15673
15674         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
15675         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
15676         jump_bypass): New counters.
15677         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
15678         * dce.c (gate_ud_dce): Same.
15679         (gate_fast_dce): Same.
15680         * dse.c (gate_dse1): New function.
15681         (gate_dse2): New function.
15682         (gate_dse): Merge results of new gate functions.
15683         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
15684         (gate_handle_jump_bypass): Add dbg_cnt.
15685         (gate_handle_gcse): Add dbg_cnt.
15686         * ifcvt.c (gate_handle_if_conversion): Same.
15687         (gate_handle_if_after_combine): Same.
15688         (gate_handle_if_after_reload): Same.
15689         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
15690
15691 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
15692
15693         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
15694         line sizes.
15695         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
15696
15697 2008-02-26  Jason Merrill  <jason@redhat.com>
15698
15699         PR c++/35315
15700         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
15701         alone if it's the naming decl for the type's main variant.
15702
15703 2008-02-26  Tom Tromey  <tromey@redhat.com>
15704
15705         * system.h (USE_MAPPED_LOCATION): Poison.
15706         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
15707         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
15708         (make_goto_expr_edges): Likewise.
15709         (remove_bb): Likewise.
15710         (execute_warn_function_return): Likewise.
15711         * basic-block.h (struct edge_def) <goto_locus>: Change type to
15712         location_t.
15713         * c-common.c (fname_decl): Remove old location code.
15714         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
15715         location code.
15716         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
15717         variant.
15718         (ASM_INPUT_SOURCE_LOCATION): Likewise.
15719         (gen_rtx_ASM_INPUT): Likewise.
15720         (gen_rtx_ASM_INPUT_loc): Likewise.
15721         (get_rtx_asm_OPERANDS): Remove.
15722         * cfglayout.c (insn_locators_alloc): Remove old location code.
15723         (set_curr_insn_source_location): Likewise.
15724         (curr_insn_locator): Likewise.
15725         * print-tree.c (print_node): Remove old location code.
15726         * tree-mudflap.c (mf_varname_tree): Remove old location code.
15727         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
15728         * cfgexpand.c (expand_gimple_cond_expr): Don't use
15729         location_from_locus.
15730         (construct_exit_block): Remove old location code.
15731         * emit-rtl.c (force_next_line_note): Remove old location code.
15732         * profile.c (branch_prob): Remove old location code.
15733         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
15734         LOC_LINE): Remove old-location variants.
15735         * langhooks.c (lhd_print_error_function): Remove old location
15736         code.
15737         * configure, config.in: Rebuilt.
15738         * configure.ac (--enable-mapped-location): Remove.
15739         * c-decl.c (c_init_decl_processing): Remove old location code.
15740         (finish_function): Likewise.
15741         * recog.c (decode_asm_operands): Remove old location code.
15742         * c-pch.c (c_common_read_pch): Remove old location code.
15743         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
15744         variants.
15745         * gimple-low.c (lower_function_body): Remove old location code.
15746         * toplev.c (unknown_location): Remove.
15747         (push_srcloc): Remove old-location variant.
15748         (process_options): Remove old location code.
15749         (lang_dependent_init): Likewise.
15750         * input.h (UNKNOWN_LOCATION): Move definition.
15751         (location_t): Undeprecate.
15752         (source_locus): Remove.
15753         (location_from_locus): Remove.
15754         (struct location_s): Remove.
15755         Remove all old-location code.
15756         (input_line, input_filename): Remove.
15757         * final.c (final_scan_insn): Remove old location code.
15758         * diagnostic.c (diagnostic_build_prefix): Remove
15759         USE_MAPPED_LOCATION test.
15760         * tree.h (gimple_stmt) <locus>: Now a location_t.
15761         (tree_exp) <locus>: Likewise.
15762         (DECL_IS_BUILTIN): Remove old-location variant.
15763         (annotate_with_file_line, annotate_with_locus): Likewise.
15764         (expr_locus, set_expr_locus): Update.
15765         * tree.c (build1_stat): Remove old location code.
15766         (last_annotated_node): Remove.
15767         (annotate_with_file_line): Remove old-location variant.
15768         (annotate_with_locus): Likewise.
15769         (expr_location): Remove old location code.
15770         (set_expr_location): Likewise.
15771         (expr_has_location): Likewise.
15772         (expr_locus): Likewise.
15773         (set_expr_locus): Likewise.
15774         (expr_filename): Don't use location_from_locus.
15775         (expr_lineno): Likewise.
15776         * rtl-error.c (location_for_asm): Remove old location code.
15777         * c-lex.c (cb_line_change): Remove old location code.
15778         (fe_file_change): Likewise.
15779         (cb_def_pragma): Likewise.
15780         (c_lex_with_flags): Likewise.
15781         * gengtype.c (do_typedef): Don't special-case location types.
15782         (define_location_structures): Remove.
15783         (main): Don't call define_location_structures.
15784         * tree-pretty-print.c (dump_implicit_edges): Remove old location
15785         code.
15786
15787 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15788
15789         PR 26264
15790         * builtins.def (BUILT_IN_STDARG_START): Remove.
15791         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
15792         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
15793         * tree-inline.c (inline_forbidden_p_1): Likewise.
15794
15795 2008-02-26  Richard Guenther  <rguenther@suse.de>
15796
15797         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
15798         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
15799         (lookup_decl_from_uid): Declare.
15800         (remove_decl_from_map): Likewise.
15801         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
15802         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
15803         (decl_for_uid_map): New global hashtable mapping DECL_UID
15804         to the decl tree.
15805         (init_ttree): Allocate it.
15806         (insert_decl_to_uid_decl_map): New helper function.
15807         (make_node_stat): Insert new decls into the map.
15808         (copy_node_stat): Likewise.
15809         (lookup_decl_from_uid): New function.
15810         (remove_decl_from_map): Likewise.
15811         (print_decl_for_uid_map_statistics): New helper.
15812         (dump_tree_statistics): Call it.
15813
15814         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
15815         (referenced_var_iterator): Adjust.
15816         (FOR_EACH_REFERENCED_VAR): Adjust.
15817         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
15818         (num_referenced_vars): Adjust.
15819         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
15820         (first_referenced_var): Remove.
15821         (end_referenced_vars_p): Likewise.
15822         (next_referenced_var): Likewise.
15823         (referenced_var_iterator_set): New helper function.
15824         * tree-dfa.c (referenced_var_lookup): Adjust.
15825         (referenced_var_check_and_insert): Likewise.
15826         (remove_referenced_var): Likewise.
15827         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
15828         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
15829         (verify_call_clobbering): Likewise.
15830         (verify_memory_partitions): Likewise.
15831         (init_tree_ssa): Allocate bitmap instead of hashtable for
15832         referenced_vars.
15833         (delete_tree_ssa): Adjust.
15834         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
15835         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
15836         (compute_tag_properties): Likewise.
15837         (set_initial_properties): Likewise.
15838         (find_partition_for): Likewise.
15839         (update_reference_counts): Likewise.
15840         (dump_may_aliases_for): Likewise.
15841         * tree-ssa-operands.c (add_virtual_operand): Likewise.
15842         (add_call_clobber_ops): Likewise.
15843         (add_call_read_ops): Likewise.
15844         (get_asm_expr_operands): Likewise.
15845         * tree-into-ssa.c (dump_decl_set): Likewise.
15846         (update_ssa): Likewise.
15847         * tree-sra.c (scan_function): Likewise.
15848         (decide_instantiations): Likewise.
15849         (scalarize_parms): Likewise.
15850         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
15851         (dsa_named_for): Likewise.
15852         * tree-ssa-structalias.c (update_alias_info): Likewise.
15853         (merge_smts_into): Likewise.
15854
15855 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15856
15857         PR 34351
15858         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
15859         * c-opts.c (c_common_handle_option): Wall enables
15860         Wvolatile-register-var.
15861         * common.opt: Move Wvolatile-register-var to...
15862         * c.opt: ...here.
15863
15864 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15865
15866         * common.opt (Wlarger-than=): New.
15867         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
15868         -Wlarger-than=.
15869         * opts.c (common_handle_option): Handle -Wlarger-than=.
15870         * optc-gen.awk: Likewise.
15871         * opth-gen.awk: Likewise.
15872         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
15873         * tree-optimize.c (tree_rest_of_compilation): Likewise.
15874
15875 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
15876
15877         * c-common.c (match_case_to_enum_1): Add appropriate
15878         OPT_W* parameter to warning.
15879         (c_do_switch_warnings): Likewise.
15880         * c-typeck.c (warning_init): Add one more parameter following
15881         'warning' function.
15882         (push_init_level): Update call to warning_init.
15883         (pop_init_level): Likewise.
15884         (add_pending_init): Likewise.
15885         (output_init_element: Likewise.
15886
15887 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15888
15889         PR 28322
15890         * toplev.c (toplev_main): If there are warnings or error, print
15891         errors for ignored options.
15892         * opts.c (ignored_options): New static variable.
15893         (postpone_unknown_option_error): New.
15894         (print_ignored_options): New.
15895         (handle_option): Postpone errors for unknown -Wno-* options.
15896         * opts.h (print_ignored_options): Declare.
15897
15898 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
15899
15900         * config/mips/mips.md (loadgp_blockage, blockage): Change type
15901         to "ghost".
15902
15903 2008-02-25  Richard Guenther  <rguenther@suse.de>
15904
15905         Revert:
15906         2008-02-25  Richard Guenther  <rguenther@suse.de>
15907
15908         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
15909         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
15910         (lookup_decl_from_uid): Declare.
15911         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
15912         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
15913         (decl_for_uid_map): New global hashtable mapping DECL_UID
15914         to the decl tree.
15915         (init_ttree): Allocate it.
15916         (insert_decl_to_uid_decl_map): New helper function.
15917         (make_node_stat): Insert new decls into the map.
15918         (copy_node_stat): Likewise.
15919         (lookup_decl_from_uid): New function.
15920         (print_decl_for_uid_map_statistics): New helper.
15921         (dump_tree_statistics): Call it.
15922
15923         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
15924         (referenced_var_iterator): Adjust.
15925         (FOR_EACH_REFERENCED_VAR): Adjust.
15926         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
15927         (num_referenced_vars): Adjust.
15928         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
15929         (first_referenced_var): Remove.
15930         (end_referenced_vars_p): Likewise.
15931         (next_referenced_var): Likewise.
15932         (referenced_var_iterator_set): New helper function.
15933         * tree-dfa.c (referenced_var_lookup): Adjust.
15934         (referenced_var_check_and_insert): Likewise.
15935         (remove_referenced_var): Likewise.
15936         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
15937         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
15938         (verify_call_clobbering): Likewise.
15939         (verify_memory_partitions): Likewise.
15940         (init_tree_ssa): Allocate bitmap instead of hashtable for
15941         referenced_vars.
15942         (delete_tree_ssa): Adjust.
15943         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
15944         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
15945         (compute_tag_properties): Likewise.
15946         (set_initial_properties): Likewise.
15947         (find_partition_for): Likewise.
15948         (update_reference_counts): Likewise.
15949         (dump_may_aliases_for): Likewise.
15950         * tree-ssa-operands.c (add_virtual_operand): Likewise.
15951         (add_call_clobber_ops): Likewise.
15952         (add_call_read_ops): Likewise.
15953         (get_asm_expr_operands): Likewise.
15954         * tree-into-ssa.c (dump_decl_set): Likewise.
15955         (update_ssa): Likewise.
15956         * tree-sra.c (scan_function): Likewise.
15957         (decide_instantiations): Likewise.
15958         (scalarize_parms): Likewise.
15959         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
15960         (dsa_named_for): Likewise.
15961         * tree-ssa-structalias.c (update_alias_info): Likewise.
15962         (merge_smts_into): Likewise.
15963
15964 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
15965
15966         PR fortran/29549
15967         * doc/invoke.texi (-fcx-limited-range): Document new option.
15968         * toplev.c (process_options): Handle -fcx-fortran-rules.
15969         * common.opt: Add documentation for -fcx-fortran-rules.
15970
15971 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
15972
15973         PR c/35162
15974         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
15975         actual behaviour and C99.
15976
15977 2008-02-26  Ben Elliston  <bje@au.ibm.com>
15978
15979         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
15980         (ASM_CPU_POWER6_SPEC): Likewise.
15981         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
15982         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
15983         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
15984
15985 2008-02-25  Richard Guenther  <rguenther@suse.de>
15986
15987         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
15988         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
15989         (lookup_decl_from_uid): Declare.
15990         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
15991         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
15992         (decl_for_uid_map): New global hashtable mapping DECL_UID
15993         to the decl tree.
15994         (init_ttree): Allocate it.
15995         (insert_decl_to_uid_decl_map): New helper function.
15996         (make_node_stat): Insert new decls into the map.
15997         (copy_node_stat): Likewise.
15998         (lookup_decl_from_uid): New function.
15999         (print_decl_for_uid_map_statistics): New helper.
16000         (dump_tree_statistics): Call it.
16001
16002         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
16003         (referenced_var_iterator): Adjust.
16004         (FOR_EACH_REFERENCED_VAR): Adjust.
16005         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
16006         (num_referenced_vars): Adjust.
16007         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
16008         (first_referenced_var): Remove.
16009         (end_referenced_vars_p): Likewise.
16010         (next_referenced_var): Likewise.
16011         (referenced_var_iterator_set): New helper function.
16012         * tree-dfa.c (referenced_var_lookup): Adjust.
16013         (referenced_var_check_and_insert): Likewise.
16014         (remove_referenced_var): Likewise.
16015         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
16016         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
16017         (verify_call_clobbering): Likewise.
16018         (verify_memory_partitions): Likewise.
16019         (init_tree_ssa): Allocate bitmap instead of hashtable for
16020         referenced_vars.
16021         (delete_tree_ssa): Adjust.
16022         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
16023         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
16024         (compute_tag_properties): Likewise.
16025         (set_initial_properties): Likewise.
16026         (find_partition_for): Likewise.
16027         (update_reference_counts): Likewise.
16028         (dump_may_aliases_for): Likewise.
16029         * tree-ssa-operands.c (add_virtual_operand): Likewise.
16030         (add_call_clobber_ops): Likewise.
16031         (add_call_read_ops): Likewise.
16032         (get_asm_expr_operands): Likewise.
16033         * tree-into-ssa.c (dump_decl_set): Likewise.
16034         (update_ssa): Likewise.
16035         * tree-sra.c (scan_function): Likewise.
16036         (decide_instantiations): Likewise.
16037         (scalarize_parms): Likewise.
16038         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
16039         (dsa_named_for): Likewise.
16040         * tree-ssa-structalias.c (update_alias_info): Likewise.
16041         (merge_smts_into): Likewise.
16042
16043 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
16044
16045         PR target/35258
16046         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
16047         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
16048         * alias.h (nonoverlapping_memrefs_p): Likewise.
16049
16050 2008-02-25  Jan Beulich  <jbeulich@novell.com>
16051
16052         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
16053         * config/i386/netware-libgcc.exp: Add __bswap?i2,
16054         __emultls_get_address, __emultls_register_common,
16055         __floatundi?f, and _Unwind_GetIPInfo.
16056         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
16057         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
16058         (gen_regparm_prefix): Likewise.
16059         (i386_nlm_encode_section_info): Sync with
16060         config/i386/winnt.c:i386_pe_encode_section_info().
16061         (i386_nlm_maybe_mangle_decl_assembler_name): New.
16062         i386_nlm_mangle_decl_assembler_name): New.
16063         (netware_override_options): New.
16064         * config/i386/netware.h (netware_override_options): Declare.
16065         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
16066         (i386_nlm_mangle_decl_assembler_name): Declare.
16067         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
16068
16069 2008-02-25  Ben Elliston  <bje@au.ibm.com>
16070
16071         PR other/32948
16072         * c-decl.c (grokdeclarator): Remove unused local variables
16073         `typedef_type' and `type_as_written'.
16074         * bb-reorder.c
16075         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
16076         unused local variable `has_hot_blocks'.
16077         (fix_crossing_conditional_branches): Remove unused local variable
16078         `prev_bb'.
16079
16080 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
16081
16082         PR middle-end/19984
16083         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
16084         using DEF_C99_BUILTIN.
16085         (BUILT_IN_NANF): Ditto.
16086         (BUILT_IN_NANL): Ditto.
16087
16088 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
16089             Revital Eres  <eres@il.ibm.com>
16090
16091         * modulo-sched.c (calculate_must_precede_follow): Address TODO
16092         regarding the order of two dependent insns in the same row.
16093
16094 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
16095
16096         * stor-layout.c (layout_decl): Do not bump the alignment of a
16097         bit-field to more than byte alignment if it is packed.
16098
16099 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
16100
16101         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
16102         e300c2 and e300c3.
16103
16104 2008-02-24  Diego Novillo  <dnovillo@google.com>
16105
16106         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
16107
16108         PR 33738
16109         * tree-vrp.c (vrp_evaluate_conditional): With
16110         -Wtype-limits, emit a warning when comparing against a
16111         constant outside the natural range of OP0's type.
16112         * c.opt (Wtype-limits): Move ...
16113         * common.opt (Wtype-limits): ... here.
16114
16115 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
16116
16117         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
16118         * config/rs6000/e300c2c3.md: New file.
16119         * config/rs6000/rs6000.c (processor_costs): Add new costs for
16120         e300c2 and e300c3.
16121         (rs6000_override_options): Add e300c2 and e300c3 cases to
16122         processor_target_table. Do not allow usage of Altivec or Spe
16123         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
16124         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
16125         * config/rs6000/rs6000.h (processor_type): Add
16126         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
16127         (ASM_CPU_SPEC): Add e300c2 and e300c3.
16128         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
16129         and ppce300c3. Include e300c2c3.md.
16130
16131 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
16132
16133         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
16134         instead of TARGET_STRICT_ALIGN.
16135
16136 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
16137
16138         * explow.c (memory_address): Assert that the generated address is
16139         valid.
16140
16141 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
16142
16143         PR target/25477
16144         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
16145         * config/darwin-ppc-ldouble-patch.def: New file.
16146         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
16147         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
16148         SUBTARGET_INIT_BUILTINS if defined.
16149         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
16150         New functions.
16151
16152 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16153
16154         PR rtl-opt/33512
16155         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
16156         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
16157
16158 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16159
16160         PR pch/35027
16161         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
16162         file" warning condtional on -Winvalid-PCH.
16163
16164 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
16165
16166         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
16167
16168 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
16169
16170         PR target/22076
16171         PR target/34256
16172         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
16173         prevent reload from using MMX registers.
16174         (*mov<mode>_internal): Ditto.
16175         (*movv2sf_internal_rex64): Ditto.
16176         (*movv2sf_internal): Ditto.
16177
16178 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16179
16180         PR documentation/31569
16181         * doc/install.texi2html: Use makeinfo --no-number-sections.
16182
16183 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
16184
16185         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
16186         ensure that we can address an entire entity > 8 bytes.  Don't
16187         generate reg+reg addressing for such data.
16188
16189 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
16190
16191         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
16192         strings when optimizing for size, unless the target cares about
16193         alignment.
16194
16195 2008-02-22  Tom Tromey  <tromey@redhat.com>
16196
16197         * regclass.c (current_pass): Remove declaration.
16198
16199 2008-02-22  Anatoly Sokolov <aesok@post.ru>
16200
16201         * config/avr/libgcc.S (__RAMPZ__): Define.
16202         (__do_copy_data): Add for devices with 128KB code memory.
16203
16204 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
16205
16206         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
16207         Use spe_abi.
16208         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
16209
16210 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
16211
16212         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
16213         GENNONACR_REGS.
16214
16215 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16216
16217         PR c/19999
16218         * c-typeck.c (build_binary_op): Warn about floating point
16219         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
16220
16221 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
16222
16223         PR target/34526
16224         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
16225         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
16226         add vrsave.
16227         (rs6000_override_options): Set altivec_abi as default, not override,
16228         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
16229         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
16230         is used; use new member spe_abi.
16231         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
16232         spe_abi and altivec_abi.
16233
16234 2008-02-22  Tomas Bily  <tbily@suse.cz>
16235
16236         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
16237
16238 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16239
16240         PR bootstrap/35273
16241         * config.build (build_file_translate): Set to `CMD //c' only if
16242         it works.
16243         * Makefile.in (build_file_translate): Improve comment.
16244
16245 2008-02-21  Jan Hubicka  <jh@suse.cz>
16246
16247         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
16248         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
16249         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
16250
16251 2008-02-21  Michael Matz  <matz@suse.de>
16252
16253         PR target/35264
16254         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
16255
16256 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
16257
16258         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
16259         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
16260         as insn constraint.
16261         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
16262         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
16263         SSE_VEC_FLOAT_MODE_P as insn constraint.
16264         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
16265         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
16266         sse4a_movntdf using MODEF mode iterator.
16267         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
16268         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
16269         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
16270         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
16271         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
16272         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
16273         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
16274
16275 2008-02-21  Richard Guenther  <rguenther@suse.de>
16276
16277         * tree.def (PAREN_EXPR): New tree code.
16278         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
16279         and PAREN_EXPR.
16280         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
16281         * expr.c (expand_expr_real_1): Likewise.
16282         * tree-inline.c (estimate_num_insns_1): Likewise.
16283         * tree-complex.c (expand_complex_move): Likewise.
16284         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
16285         as plain x.
16286
16287 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
16288
16289         PR target/35225
16290         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
16291
16292 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
16293
16294         PR target/35190
16295         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
16296
16297         * config/sh/sh.c (find_barrier): Don't go past
16298         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
16299
16300 2008-02-20  DJ Delorie  <dj@redhat.com>
16301
16302         * config/h8300/h8300.md (insv): Force source operand to be a register.
16303
16304         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
16305         as a jump, not as a plain insn.
16306
16307 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
16308
16309         * doc/invoke.texi (Warning Options): Add new option
16310         -Wframe-larger-than=.
16311         (-Wframe-larger-than): Document.
16312
16313         * flags.h (warn_frame_larger_than, frame_larger_than_size):
16314         Add declarations for new option variables.
16315
16316         * final.c (final_start_function): Check the frame size
16317         before emission and issue a Wframe-larger-than warning.
16318
16319         * opts.c (warn_frame_larger_than, frame_larger_than_size):
16320         Add definitions for new option variables.
16321         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
16322
16323         * common.opt (Wframe-larger-than=): New option.
16324
16325 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
16326
16327         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
16328         (<sse>_div<mode>3): Ditto.
16329         (<sse>_vmdiv<mode>3): Ditto.
16330         (<sse>_vmsqrt<mode>2): Ditto.
16331         (*smax<mode>3): Ditto.
16332         (sse5_frcz<mode>2): Ditto.
16333         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
16334         as insn constraint.
16335
16336 2008-02-20  Richard Guenther  <rguenther@suse.de>
16337
16338         PR middle-end/35265
16339         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
16340         be happy with INTEGRAL_TYPE_P.
16341
16342 2008-02-20  Richard Guenther  <rguenther@suse.de>
16343
16344         * fold-const.c (split_tree): Associate floatig-point expressions
16345         if flag_associative_math is set.
16346
16347 2008-02-20  Richard Guenther  <rguenther@suse.de>
16348
16349         * tree.h (fold_real_zero_addition_p): Declare.
16350         * fold-const.c (fold_real_zero_addition_p): Export.
16351         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
16352         floating-point operations with zero and one.
16353
16354 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
16355
16356         * doc/install.texi: Correct references to CFLAGS, replacing them
16357         with BOOT_CFLAGS.  Document flags used during bootstrap for
16358         target libraries.
16359
16360 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
16361
16362         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
16363         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
16364         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
16365         insn constraint.
16366         (smin<mode>3): Ditto from similar patterns.
16367         (smax<mode>3): Ditto.
16368         (*ieee_smin<mode>3): Ditto.
16369         (*ieee_smax<mode>3): Ditto.
16370         * config/i386/sse.md (sse): New mode attribute.
16371         (mov<mode>): Macroize expander from movv4sf and movv2df using
16372         SSEMODEF2P mode iterator.
16373         (<sse>_movnt<mode>): Ditto from similar patterns. Use
16374         SSE_VEC_FLOAT_MODE_P as insn constraint.
16375         (storent<mode>): Ditto.
16376         (storent<mode>): Macroize expander from storentsf and storentdf using
16377         MODEF mode iterator.
16378         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
16379         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
16380         (abs<mode>2): Ditto from similar patterns.
16381         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
16382         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
16383         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
16384         (<sse>_vmsqrt<mode>2): Ditto.
16385         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
16386         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
16387         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
16388         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
16389         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
16390         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
16391         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
16392         insn constraint.
16393         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
16394         iterator and SSE_FLOAT_MODE_P as insn constraint.
16395         (<sse>_ucomi): Ditto from similar patterns.
16396         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
16397         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
16398         SSE_VEC_FLOAT_MODE_P as insn constraint.
16399         (vcond<mode>): Ditto from similar patterns.
16400         (and<mode>3, *and<mode>3): Ditto.
16401         (<sse>_nand<mode>3): Ditto.
16402         (ior<mode>3, *ior<mode>3): Ditto.
16403         (xor<mode>3, *xor<mode>3): Ditto.
16404         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
16405         iterator and SSE_FLOAT_MODE_P as insn constraint.
16406         (*nand<mode>3): Ditto from similar patterns.
16407         (*ior<mode>3): Ditto.
16408         (*xor<mode>3): Ditto.
16409
16410 2008-02-20  Ira Rosen  <irar@il.ibm.com>
16411
16412         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
16413         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
16414         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
16415
16416 2008-02-19  Jan Hubicka  <jh@suse.cz>
16417
16418         * predict.c (tree_bb_level_predictions): Remove variable next
16419         mistakely introduced by previous commit.
16420
16421 2008-02-19  Jan Hubicka  <jh@suse.cz>
16422
16423         * predict.c (predict_paths_leading_to): Rewrite.
16424         (predict_paths_for_bb): New.
16425         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
16426
16427 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16428
16429         PR bootstrap/35218
16430         * Makefile.in (build_file_translate): New.
16431         (gcc-vers.texi): Use it for translating $(abs_srcdir).
16432         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
16433         * configure.ac (build_file_translate): Substitute it.
16434         * configure: Regenerate.
16435
16436 2008-02-19  Jan Hubicka  <jh@suse.cz>
16437
16438         PR rtl-optimization/34408
16439         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
16440         invalid sharing.
16441
16442 2008-02-19  Jan Hubicka  <jh@suse.cz>
16443
16444         PR middle-end/28779
16445         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
16446         call_expr.
16447
16448 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
16449
16450         PR Ada/35186
16451         * config/i386/i386-modes.def: Revert the last DI alignment
16452         change until Ada people can look into it.
16453
16454 2008-02-19  Nick Clifton  <nickc@redhat.com>
16455
16456         * opts.c (print_specific_help): Fix typo in --help text.
16457
16458 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
16459
16460         PR target/35239
16461         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
16462         32-bit inline asm without asm alternatives for host GCC < 3.0.
16463
16464 2008-02-19  Richard Guenther  <rguenther@suse.de>
16465
16466         PR tree-optimization/34989
16467         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
16468         Allow propagation to INDIRECT_REF if we can simplify only.
16469
16470 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16471
16472         * c-common.c (warn_for_collisions_1): Use appropriate option when
16473         warning.
16474
16475 2008-02-19  Nick Clifton  <nickc@redhat.com>
16476
16477         PR other/31349
16478         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
16479         (handle_options): Fix indentation.
16480         (print_filtered_help): If no language-specific options were
16481         displayed tell the user how to list all the options supported by
16482         the language's front-end.
16483         (print_specific_help): Fix indentation and remove duplicate line.
16484         (common_handle_option): Handle the -v option.
16485         For --help enable the display of undocumented options if the -v
16486         switch has been included on the command line.
16487         For --help= check for overlaps in the arguments between the option
16488         classes and the language names and issue a warning when they
16489         cannot be disambiguated.
16490         * c.opt (v): Pass on to the common option handler.
16491
16492 2008-02-19  Revital Eres  <eres@il.ibm.com>
16493
16494         * modulo-sched.c (sms_schedule): Change dump message when
16495         create_ddg function fails.
16496         (try_scheduling_node_in_cycle): Rename row to cycle.
16497         (print_partial_schedule): Rename CYCLE to ROW.
16498
16499 2008-02-19  Christian Bruel  <christian.bruel@st.com>
16500             Zdenek Dvorak  <ook@ucw.cz>
16501
16502         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
16503
16504 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
16505
16506         PR target/33555
16507         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
16508         (*x86_movdicc_0_m1_se): Ditto.
16509
16510 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
16511
16512         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
16513         (CMPtype): Define as __gcc_CMPtype.
16514         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
16515         (CMPtype): Define as __gcc_CMPtype.
16516
16517 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
16518
16519         Support valgrind 3.3 for --enable-checking=valgrind.
16520         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
16521         here.
16522         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
16523         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
16524         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
16525         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
16526         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
16527         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
16528         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
16529         respectively.
16530         * ggc-zone.c: Similar.
16531         * ggc-page.c: Similar.
16532
16533 2008-02-19  Paul Brook  <paul@codesourcery.com>
16534
16535         PR target/35071
16536         * config/arm/ieee754-df.S: Fix do_it typo.
16537         * config/arm/ieee754-sf.S: Fix do_it typo.
16538
16539 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
16540
16541         PR target/35189
16542         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
16543         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
16544         (OPTION_MASK_ISA_SSE_SET): Likewise.
16545         (OPTION_MASK_ISA_SSE2_SET): Likewise.
16546         (OPTION_MASK_ISA_SSE3_SET): Likewise.
16547         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
16548         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
16549         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
16550         (OPTION_MASK_ISA_SSE4_SET): Likewise.
16551         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
16552         (OPTION_MASK_ISA_SSE5_SET): Likewise.
16553         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
16554         (OPTION_MASK_ISA_MMX_UNSET): Updated.
16555         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
16556         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
16557         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
16558         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
16559         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
16560         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
16561         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
16562         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
16563         (OPTION_MASK_ISA_SSE4): Removed.
16564         (ix86_handle_option): Turn on bits in ix86_isa_flags and
16565         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
16566         (override_options): Don't turn on implied SSE/MMX bits in
16567         ix86_isa_flags.
16568
16569 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
16570
16571         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
16572         32bit host.
16573
16574 2008-02-18  Joey Ye  <joey.ye@intel.com>
16575
16576         PR middle-end/34921
16577         * tree-nested.c (insert_field_into_struct): Set type alignment
16578         to field alignment if the former is less than the latter.
16579
16580 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
16581
16582         * BASE-VER: Set to 4.4.0.
16583
16584 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16585
16586         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
16587         * doc/cfg.texi: Likewise.
16588         * doc/extend.texi: Likewise.
16589         * doc/gty.texi: Likewise.
16590         * doc/invoke.texi: Likewise.
16591         * doc/loop.texi: Likewise.
16592         * doc/md.texi: Likewise.
16593         * doc/passes.texi: Likewise.
16594         * doc/rtl.texi: Likewise.
16595         * doc/sourcebuild.texi: Likewise.
16596         * doc/tm.texi: Likewise.
16597         * doc/tree-ssa.texi: Likewise.
16598
16599 2008-02-17  Richard Guenther  <rguenther@suse.de>
16600
16601         PR middle-end/35227
16602         * tree-complex.c (init_parameter_lattice_values): Handle parameters
16603         without default definition.
16604
16605 2008-02-17  Richard Guenther  <rguenther@suse.de>
16606
16607         PR tree-optimization/35231
16608         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
16609         if A | B != 1.
16610
16611 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
16612
16613         Revert:
16614         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
16615         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
16616         libgcc_cmp_return mode.
16617
16618 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16619
16620         PR c/28368
16621         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
16622
16623 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
16624
16625         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
16626         multilibs.
16627
16628 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16629
16630         * doc/c-tree.texi: Use `@.' where appropriate.
16631         * doc/extend.texi: Likewise.
16632         * doc/install.texi: Likewise.
16633         * doc/invoke.texi: Likewise.
16634         * doc/loop.texi: Likewise.
16635         * doc/makefile.texi: Likewise.
16636         * doc/md.texi: Likewise.
16637         * doc/passes.texi: Likewise.
16638         * doc/standards.texi: Likewise.
16639         * doc/tm.texi: Likewise.
16640
16641 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
16642
16643         PR middle-end/35196
16644         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
16645         in entry_bb.
16646         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
16647         rather than in entry_bb.
16648
16649 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
16650
16651         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
16652         libgcc_cmp_return mode.
16653
16654 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
16655
16656         PR middle-end/35130
16657         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
16658         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
16659
16660 2008-02-15  Richard Guenther  <rguenther@suse.de>
16661             Zdenek Dvorak  <ook@ucw.cz>
16662
16663         PR tree-optimization/35164
16664         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
16665         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
16666         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
16667         Only propagate addresses which do not have abnormal SSA_NAMEs
16668         in their operands.
16669
16670 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
16671
16672         PR target/35088
16673         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
16674
16675 2008-02-15  Jan Hubicka  <jh@suse.cz>
16676
16677         PR middle-end/35149
16678         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
16679
16680 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
16681
16682         PR middle-end/34621
16683         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
16684         when calculating alignment_pad.
16685
16686 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
16687
16688         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
16689         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
16690         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
16691         and STACK_BOUNDARY define.
16692
16693 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
16694
16695         PR preprocessor/35061
16696         * c-pragma.c (handle_pragma_pop_macro): Check that
16697         pushed_macro_table has been allocated.
16698
16699 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
16700
16701         PR middle-end/35136
16702         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
16703         (force_gimple_operand): Likewise.
16704         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
16705         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
16706         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
16707         (find_interesting_uses_address): Check addressability and alignment
16708         of the base expression only after substituting bases of IVs into it.
16709
16710 2008-02-14  Michael Matz  <matz@suse.de>
16711
16712         PR target/34930
16713         * function.c (instantiate_virtual_regs_in_insn): Reload address
16714         before falling back to reloading the whole operand.
16715
16716 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
16717
16718         * config/s390/s390.c (s390_mainpool_start): Emit the pool
16719         before the first section switch note.
16720
16721 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16722
16723         * doc/bugreport.texi: Update copyright years.
16724         * doc/c-tree.texi: Likewise.
16725         * doc/cfg.texi: Likewise.
16726         * doc/cpp.texi: Likewise.
16727         * doc/cppinternals.texi: Likewise.
16728         * doc/fragments.texi: Likewise.
16729         * doc/frontends.texi: Likewise.
16730         * doc/gcc.texi: Likewise.
16731         * doc/gty.texi: Likewise.
16732         * doc/hostconfig.texi: Likewise.
16733         * doc/implement-c.texi: Likewise.
16734         * doc/libgcc.texi: Likewise.
16735         * doc/loop.texi: Likewise.
16736         * doc/makefile.texi: Likewise.
16737         * doc/options.texi: Likewise.
16738         * doc/passes.texi: Likewise.
16739         * doc/rtl.texi: Likewise.
16740         * doc/sourcebuild.texi: Likewise.
16741         * doc/standards.texi: Likewise.
16742         * doc/tree-ssa.texi: Likewise.
16743         * doc/trouble.texi: Likewise.
16744
16745         * doc/extend.texi: Use @: or add comma where appropriate.
16746         * doc/invoke.texi: Likewise.
16747         * doc/tm.texi: Likewise.
16748
16749 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
16750
16751         PR target/34393
16752         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
16753         to a reg.
16754
16755 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
16756
16757         * doc/md.texi (clz, ctz): Add reference.
16758         * doc/rtl.texi (clz, ctz): Likewise.
16759
16760 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16761
16762         PR other/35148
16763         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
16764         srcdir.
16765
16766 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
16767
16768         * config/s390/s390.c (struct constant_pool): New field
16769         emit_pool_after added.
16770         (s390_mainpool_start): Set the emit_pool_after flag according
16771         to the section switch notes.
16772         (s390_mainpool_finish): Consider emit_pool_after when emitting
16773         the literal pool at the end of the function.
16774         (s390_chunkify_start): Force literal pool splits at section
16775         switch notes.
16776
16777 2008-02-13  Michael Matz  <matz@suse.de>
16778
16779         PR debug/35065
16780         * var-tracking.c (clobber_variable_part): Correctly traverse the
16781         list.
16782
16783 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16784
16785         PR 29673
16786         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
16787         Add -fdump-ipa-inline.
16788         * tree-dump.c (dump_files): Remove tree-inlined dump.
16789         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
16790
16791 2008-02-12  Richard Guenther  <rguenther@suse.de>
16792
16793         PR tree-optimization/35171
16794         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
16795         default defs.
16796
16797 2008-02-12  Richard Guenther  <rguenther@suse.de>
16798
16799         PR middle-end/35163
16800         * fold-const.c (fold_widened_comparison): Use get_unwidened in
16801         value-preserving mode.  Disallow final truncation.
16802
16803 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
16804
16805         PR middle-end/35136
16806         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
16807         code from here to...
16808         (force_gimple_operand): ...here.
16809
16810 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
16811
16812         PR c++/35144
16813         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
16814         non-compatible pointers.
16815         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
16816         different FIELD_DECLs, try harder by comparing field offsets, sizes
16817         and types.
16818
16819         PR inline-asm/35160
16820         * function.c (match_asm_constraints_1): Don't replace the same input
16821         multiple times.
16822
16823 2008-02-12  Anatoly Sokolov <aesok@post.ru>
16824
16825         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
16826         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
16827         (expand_epilogue): Restore RAMPZ register.
16828         * config/avr/avr.md (RAMPZ_ADDR): New constant.
16829
16830 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
16831
16832         * config/i386/cygwin.asm: (__alloca): Correct calling
16833         convention and alignment.
16834         (__chkstk): Force 8 byte stack alignment.
16835
16836 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
16837             Richard Guenther  <rguenther@suse.de>
16838
16839         PR tree-optimization/33992
16840         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
16841         the zero we compare against.
16842
16843 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
16844
16845         PR libfortran/35063
16846         * gthr-win32.h (__gthread_mutex_destroy_function): New function
16847         to CloseHandle after unlocking to prevent accumulation of handle
16848         count.
16849
16850 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16851
16852         PR middle_end/34150
16853         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
16854         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
16855         and update LABEL_NUSES during and after reload.
16856
16857 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
16858
16859         PR middle-end/34627
16860         * combine.c (simplify_if_then_else): Make sure the comparison is
16861         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
16862
16863 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
16864
16865         PR bootstrap/35051
16866         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
16867         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
16868         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
16869         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
16870         * tree.h (get_type_static_bounds): Likewise.
16871
16872 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16873
16874         * doc/invoke.texi (Option Summary, C++ Dialect Options)
16875         (Objective-C and Objective-C++ Dialect Options, Warning Options):
16876         Make -Wfoo language annotations match what the compiler outputs.
16877
16878 2008-02-08  Sa Liu  <saliu@de.ibm.com>
16879
16880         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
16881         intrinsics spu_convts, spu_convtu, spu_convtf.
16882
16883 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
16884
16885         * doc/extend.texi (Function Attributes) <noinline>: Mention
16886         asm ("") as method to keep calls.
16887
16888 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16889
16890         PR other/32754
16891         * doc/options.texi (Options): Replace references to opts.sh with
16892         optc-gen.awk.
16893         * opts-common.c: Likewise.
16894         * optc-gen.awk: Likewise.
16895
16896 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
16897
16898         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
16899
16900 2008-02-07  Richard Henderson  <rth@redhat.com>
16901
16902         PR rtl-opt/33410
16903         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
16904         EXPR_LIST for the REG_EQUAL instead of a comparison with a
16905         funny mode.
16906
16907 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
16908
16909         PR tree-optimization/35085
16910         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
16911         for operand entry oe2 in addition to operand entry oe3 in order to
16912         expose more opportunities for vectorizer sum reduction.
16913
16914 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16915
16916         PR other/35107
16917         * Makefile.in (LIBS): Remove $(GMPLIBS).
16918         (cc1-dummy, cc1): Add $(GMPLIBS).
16919
16920 2008-02-06  Jan Hubicka  <jh@suse.cz>
16921
16922         PR target/23322
16923         * i386.md (moddf_integer): Do not produce partial memory stalls for
16924         targets where it hurts.
16925
16926 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
16927
16928         PR target/35083
16929         * optabs.c (expand_float): Do not check for decimal modes when
16930         expanding unsigned integer through signed conversion.
16931
16932 2008-02-06  Nick Clifton  <nickc@redhat.com>
16933
16934         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
16935         inside the clobber with a match_operand and duplicated operand
16936         number in the constraint.
16937         (ineqbranchsi): Delete redundant comment.
16938
16939 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
16940
16941         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
16942         builtin_define ("__USE_INIT_FINI__").
16943         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
16944         -msx multilibs.
16945         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
16946
16947 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16948
16949         PR documentation/30330
16950         * doc/invoke.texi (C++ Dialect Options)
16951         (Objective-C and Objective-C++ Dialect Options, Warning Options):
16952         For each warning option -Wfoo that allows -Wno-foo, ensure both
16953         -Wfoo and -Wno-foo are listed in the option index.  Fix index
16954         entry of -Wswitch-default, index -Wnormalized= including the
16955         `=', and -Wlarger-than-@var{len} including @var{len}.
16956
16957 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
16958
16959         * config/i386/i386.md (floatunssisf2): Use
16960         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
16961         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
16962         Macroize expander using MODEF mode iterator.
16963
16964 2008-02-05  Diego Novillo  <dnovillo@google.com>
16965
16966         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
16967
16968         PR 33738
16969         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
16970
16971 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16972
16973         PR other/35070
16974         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
16975
16976 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
16977
16978         PR target/35084
16979         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
16980         to indicate if a message should be generated.
16981         (init_cumulative_args): Updated.
16982         (function_value_32): Likewise.
16983
16984 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
16985
16986         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
16987
16988 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
16989
16990         PR target/35083
16991         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
16992         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
16993
16994 2008-02-04  Diego Novillo  <dnovillo@google.com>
16995
16996         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
16997
16998         PR 33738
16999         * tree-vrp.c (vrp_evaluate_conditional): With
17000         -Wtype-limits, emit a warning when comparing against a
17001         constant outside the natural range of OP0's type.
17002
17003 2008-02-04  Richard Guenther  <rguenther@suse.de>
17004
17005         PR middle-end/33631
17006         * expr.c (count_type_elements): Give for unions instead of
17007         guessing.
17008
17009 2008-02-04  Richard Guenther  <rguenther@suse.de>
17010
17011         PR middle-end/35043
17012         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
17013         to TYPE_DOMAINs base type instead of using bitsizetype here.
17014
17015 2008-02-03  Jason Merrill  <jason@redhat.com>
17016
17017         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
17018
17019 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17020
17021         PR other/29972
17022         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
17023         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
17024         (RS/6000 and PowerPC Options): Fix typos and markup.
17025         * doc/passes.texi (Tree-SSA passes): Likewise.
17026
17027 2008-02-02  Michael Matz  <matz@suse.de>
17028
17029         PR target/35045
17030         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
17031         from record_last_reg_set_info.
17032         (record_last_reg_set_info): Take an RTX argument, iterate over all
17033         constituent hardregs.
17034         (record_last_set_info, record_opr_changes): Change calls to
17035         new signature or to record_last_reg_set_info_regno.
17036
17037 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
17038
17039         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
17040
17041 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
17042
17043         PR rtl-optimization/34773
17044         * reg-notes.def (EQUAL): Mention significance of combination of
17045         REG_EQUAL and REG_RETVAL.
17046         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
17047         insn that has a REG_RETVAL.
17048
17049 2008-02-01  Roger Sayle  <roger@eyesopen.com>
17050
17051         PR bootstrap/33781
17052         * configure.ac (--enable-fixed-point): Disable unless explicitly
17053         requested on IRIX.
17054         * configure: Regenerate.
17055
17056 2008-02-01  Richard Guenther  <rguenther@suse.de>
17057
17058         PR other/35042
17059         * invoke.texi (-finline-limit): Remove no longer true parts
17060         of the documentation.  Note that there is no default value.
17061
17062 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
17063             Mark Mitchell  <mark@codesourcery.com>
17064             Ben Elliston  <bje@au.ibm.com>
17065
17066         PR c/29326
17067         * doc/extend.texi (Other Builtins): Document.
17068
17069 2008-01-31  Tom Browder <tom.browder@gmail.com>
17070
17071         * doc/c-tree.texi (Types): Fix grammar.
17072         (Expression trees): Ditto.
17073         * doc/passes.texi (Tree-SSA passes): Ditto.
17074
17075         * doc/configterms.texi (Configure Terms): Fix typo.
17076         * doc/cpp.texi (Common Predefined Macros): Ditto.
17077         * doc/md.texi (Machine Constraints): Ditto.
17078
17079         * doc/makefile.texi (Makefile): Add comma.
17080
17081 2008-01-31  Tom Browder  <tom.browder@gmail.com>
17082             Gerald Pfeifer  <gerald@pfeifer.com>
17083
17084         * doc/sourcebuild.texi (Front End): Remove references to CVS
17085         and CVSROOT/modules.
17086         (Texinfo Manuals): Replace reference to CVS by one to SVN.
17087         (Back End): Remove reference to CVS.
17088
17089 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
17090
17091         PR target/34900
17092         * config/mips/mips.c (gen_load_const_gp): New function, taking a
17093         comment from...
17094         (mips16_gp_pseudo_reg): ...here.
17095         * config/mips/mips.md (load_const_gp): Replace with...
17096         (load_const_gp_<mode>): ...this :P-based insn.
17097
17098 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17099
17100         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
17101         options. Minor fixes.
17102         (-std): Move reference to standards closer to where language
17103         standards are first mentioned.
17104
17105 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
17106
17107         PR rtl-optimization/34995
17108         * reload.c (alternative_allows_const_pool_ref): Take an rtx
17109         parameter and return a bool.  If the rtx parameter is nonnull,
17110         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
17111         (find_reloads): Update call accordingly.  Pass the new operand
17112         if it needed no address reloads, otherwise pass null.
17113
17114 2008-01-30  Richard Henderson  <rth@redhat.com>
17115
17116         PR c/34993
17117         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
17118         for unbounded arrays.
17119
17120 2008-01-30  Silvius Rus  <rus@google.com>
17121
17122         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
17123
17124 2008-01-30  Jan Hubicka  <jh@suse.cz>
17125
17126         PR target/34982
17127         * i386.c (init_cumulative_args): Use real function declaration when
17128         calling locally.
17129
17130 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
17131
17132         PR rtl-optimization/34998
17133         * global.c (build_insn_chain): Treat non-subreg_lowpart
17134         SUBREGs of pseudos as clobbering all the words covered by the
17135         SUBREG, not just all the bytes.
17136         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
17137         original df_ref rather than an extract parameter.
17138         (global_conflicts): Update call accordingly.
17139
17140 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
17141
17142         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
17143         the overflow check to make it easier to read.
17144         (__fixtfdi): Change the type of the ll member in union
17145         long_double to UDItype_x.
17146
17147 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
17148
17149         PR middle-end/34969
17150         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
17151         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
17152         * tree-inline.c (fold_marked_statements): Call
17153         cgraph_update_edges_for_call_stmt if folding a call statement.
17154         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
17155         debug_generic_stmt calls, reset it back afterwards.
17156
17157         PR c/35017
17158         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
17159         static decls.
17160         * c-typeck.c (build_external_ref): Don't pedwarn about
17161         static vars in current function's scope.
17162
17163 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
17164
17165         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
17166
17167 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
17168
17169         PR c/35002
17170         * ipa-struct-reorg.c: Fix spelling.
17171         * params.def: Ditto.
17172
17173 2008-01-29  Richard Guenther  <rguenther@suse.de>
17174
17175         PR middle-end/35006
17176         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
17177         field.
17178         * tree-inline.c (remap_type): Increment remapping_type_depth
17179         around remapping types.
17180         (copy_body_r): Only add referenced variables if they are referenced
17181         from code, not types.
17182
17183 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
17184
17185         PR c++/34055
17186         PR c++/34103
17187         PR c++/34219
17188         PR c++/34606
17189         PR c++/34753
17190         PR c++/34754
17191         PR c++/34755
17192         PR c++/34919
17193         PR c++/34961
17194         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
17195         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
17196
17197 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
17198
17199         PR target/34412
17200         * config/avr/avr.c (expand_prologue): Use correct QI mode frame
17201         pointer for tiny stack.
17202
17203 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
17204
17205         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
17206
17207 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
17208
17209         * config/vx-common.h: Fix typo in comment.
17210
17211 2008-01-28  Ian Lance Taylor  <iant@google.com>
17212
17213         PR c++/34862
17214         PR c++/33407
17215         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
17216         coalesce pointers if they have different DECL_NO_TBAA_P values.
17217         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
17218         between variables with different DECL_NO_TBAA_P values.
17219
17220 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
17221
17222         PR 31535
17223         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
17224         are not legitimate small data references on SPE targets.
17225
17226 2008-01-28  David Daney  <ddaney@avtrex.com>
17227
17228         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
17229
17230 2008-01-28  David Daney  <ddaney@avtrex.com>
17231
17232         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
17233
17234 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
17235
17236         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
17237         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
17238         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
17239         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
17240         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
17241         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
17242         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
17243         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
17244
17245 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
17246
17247         * basic-block.h (condjump_equiv_p): Fix comment.
17248
17249 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
17250
17251         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
17252         print_generic_stmt_indented): Fix comment.
17253
17254 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
17255
17256         * configure.ac (__stack_chk_fail): Add detecion for availability
17257         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
17258         * configure: Regenerate.
17259
17260 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
17261
17262         PR middle-end/34688
17263         * final.c (output_addr_const): Handle TRUNCATE.
17264
17265 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
17266
17267         PR target/34711
17268         * tree-ssa-loop-ivopts.c (comp_cost): New type.
17269         (zero_cost, infinite_cost): New constants.
17270         (struct cost_pair): Change type of cost to comp_cost.
17271         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
17272         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
17273         New functions.
17274         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
17275         split_address_cost, ptr_difference_cost, difference_cost,
17276         get_computation_cost_at, get_computation_cost,
17277         determine_use_iv_cost_generic, determine_use_iv_cost_address,
17278         determine_use_iv_cost_condition, determine_use_iv_costs,
17279         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
17280         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
17281         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
17282         Change type of cost to comp_cost.
17283         (determine_iv_cost): Increase cost of non-original ivs, instead
17284         of decreasing the cost of original ones.
17285         (get_address_cost): Indicate the complexity of the addressing mode
17286         in comp_cost.
17287         (try_add_cand_for): Prefer using ivs not specific to some object.
17288         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
17289
17290 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
17291             Janis Johnson  <janis187@us.ibm.com>
17292
17293         PR target/34814
17294         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
17295         (TARGET_INSTANTIATE_DECLS): Likewise.
17296         * target.h (expand_to_rtl_hook): New target hook.
17297         (instantiate_decls): Likewise.
17298         * function.c (instantiate_decl): Make non-static.  Rename to...
17299         (instantiate_decl_rtl): ... this.
17300         (instantiate_expr): Use instantiate_decl_rtl.
17301         (instantiate_decls_1): Likewise.
17302         (instantiate_decls): Likewise.
17303         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
17304         * function.h (instantiate_decl_rtl): Add prototype.
17305         * cfgexpand.c (target.h): New include.
17306         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
17307         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
17308         (TARGET_INSTANTIATE_DECLS): Likewise.
17309         (TARGET_INITIALIZER): New target hooks added.
17310         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
17311         New prototype.
17312         * config/rs6000/rs6000.c (tree-flow.h): New include.
17313         (machine_function): Add sdmode_stack_slot field.
17314         (rs6000_alloc_sdmode_stack_slot): New function.
17315         (rs6000_instantiate_decls): Likewise.
17316         (rs6000_secondary_memory_needed_rtx): Likewise.
17317         (rs6000_check_sdmode): Likewise.
17318         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
17319         (TARGET_INSTANTIATE_DECLS): Likewise.
17320         (rs6000_hard_regno_mode_ok): Allow SDmode.
17321         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
17322         (rs6000_emit_move): Handle SDmode.
17323         (function_arg_advance): Likewise.
17324         (function_arg): Likewise.
17325         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
17326         SDmode var args for 32-bit compiles.
17327         (rs6000_secondary_reload_class): Handle SDmode.
17328         (rs6000_output_function_epilogue): Likewise.
17329         (rs6000_function_value): Simplify if statement.
17330         (rs6000_libcall_value): Likewise.
17331         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
17332         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
17333         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
17334         (movsd_hardfloat): New define_insn.
17335         (movsd_softfloat): Likewise.
17336         (movsd_store): Likewise.
17337         (movsd_load): Likewise.
17338         (extendsddd2): Likewise.
17339         (extendsdtd2): Likewise.
17340         (truncddsd2): Likewise.
17341         (movdd_hardfloat64): Fixup comment.
17342         (UNSPEC_MOVSD_LOAD): New constant.
17343         (UNSPEC_MOVSD_STORE): Likewise.
17344
17345 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
17346
17347         PR c++/34965
17348         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
17349         TRUTH_XOR_EXPR.
17350         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
17351         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
17352         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
17353         and TRUTH_XOR_EXPR.
17354
17355 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
17356
17357         PR target/34794
17358         * config.gcc: Separate AIX 5.3 from AIX 6.1.
17359         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
17360         __LONGDOUBLE128 too.
17361         * config/rs6000/aix61.h: New file.
17362
17363 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
17364
17365         PR rtl-optimization/34959
17366         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
17367         popcount and parity rtxes the same mode as their operand.
17368         Truncate or extend the result to the return value's mode
17369         if necessary.
17370
17371 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
17372
17373         PR target/34981
17374         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
17375         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
17376         to GOT_VERSION_REGNUM.
17377         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
17378         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
17379         * config/mips/mips.c (mips_emit_call_insn): New function.
17380         (mips_call_tls_get_addr): Call mips_expand_call directly.
17381         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
17382         emit_call_insn.
17383         (mips16_build_call_stub): Likewise.  Return the call insn or null.
17384         (mips_expand_call): Update the call to mips16_build_call_stub
17385         accordingly and a remove redundant condition.  Assert that MIPS16
17386         stubs do not use lazy binding.  Use mips_emit_call_insn and return
17387         the call insn.
17388         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
17389         TARGET_USE_GOT.
17390         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
17391         (mips_avoid_hazard): Remove hazard_set handling.
17392         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
17393         (UNSPEC_RESTORE_GP): ...this.
17394         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
17395         (FAKE_CALL_REGNO): Rename to...
17396         (GOT_VERSION_REGNUM): ...this.
17397         (type): Add "ghost" value.  Add an associated insn reservation.
17398         (hazard_set): Remove.
17399         (exception_receiver): Rename to...
17400         (restore_gp): ...this and update the unspec identifier accordingly.
17401         (exception_receiver, nonlocal_got_receiver): New expanders.
17402         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
17403         FAKE_CALL_REGNO.  Remove hazard_set attribute.
17404         (set_got_version, update_got_version): New patterns.
17405
17406 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
17407
17408         PR target/34970
17409         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
17410
17411 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
17412
17413         PR other/31955
17414         * doc/install.texi2html: Generate gcc-vers.texi.
17415
17416 2008-01-25  DJ Delorie  <dj@redhat.com>
17417
17418         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
17419
17420 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
17421
17422         * config/c4x: Remove directory.
17423         * config.gcc (crx-*, mt-*): Mark obsolete.
17424         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
17425         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
17426         sh-*-rtemscoff*): Remove cases.
17427         * defaults.h (C4X_FLOAT_FORMAT): Remove.
17428         * real.c (encode_c4x_single, decode_c4x_single,
17429         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
17430         c4x_extended_format): Remove.
17431         * real.h (c4x_single_format, c4x_extended_format): Remove.
17432         * doc/extend.texi (interrupt, naked): Remove mention of attributes
17433         on C4x.
17434         (Pragmas): Remove comment about c4x pragmas.
17435         * doc/install.texi (c4x): Remove target-specific instructions.
17436         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
17437         * doc/md.texi (Machine Constraints): Remove C4x documentation.
17438         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
17439         refer to C4x source files as examples.
17440         (C4X_FLOAT_FORMAT): Remove documentation.
17441
17442 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
17443
17444         * config/bfin/bfin.c (override_options): Reorder tests so that
17445         flag_pic gets enabled for -msep-data.
17446
17447 2008-01-25  Richard Guenther  <rguenther@suse.de>
17448
17449         PR middle-end/32244
17450         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
17451         to its bitfield precision if required.
17452
17453 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
17454
17455         PR middle-end/33880
17456         * tree-nested.c (walk_omp_for): New function.
17457         (convert_nonlocal_reference, convert_local_reference): Call
17458         walk_omp_for on OMP_FOR.
17459         (convert_call_expr): Call walk_body on OMP_FOR's
17460         OMP_FOR_PRE_INIT_BODY.
17461
17462 2008-01-25  Richard Guenther  <rguenther@suse.de>
17463
17464         PR tree-optimization/34966
17465         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
17466         default defs and PHI_NODEs we have to insert after the
17467         defining statement.
17468
17469 2008-01-24  Nick Clifton  <nickc@redhat.com>
17470
17471         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
17472         Provide a default definition.
17473         (LIBGCC2_UNITS_PER_WORD): Likewise.
17474
17475         * config/stormy16/stormy16.c: Include df.h for the prototype
17476         for df_regs_ever_live_p.
17477         (xstormy16_expand_builtin_va_start): Convert the stack offset
17478         into a component_ref and then use POINTER_PLUS_EXPR to add it
17479         to the incoming_virtual_args_rtx.
17480         (xstormy16_gimplify_va_arg_expr): Rename to
17481         xstormy16_gimplify_va_arg_expr.
17482         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
17483         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
17484         xstormy16_gimplify_va_arg_expr.
17485         Fix up some formatting issues.
17486
17487         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
17488         Move to predicates.md.
17489         (xs_hi_general_operand): Likewise.
17490         (xs_hi_nonmemory_operand): Likewise.
17491         * config/stormy16/predicates.md:
17492         (xstormy16_carry_plus_operand): New predicate.
17493         (xs_hi_general_operand): New predicate.
17494         (xs_hi_nonmemory_operand): New predicate.
17495         * config/stormy16/stormy16-protos.h:
17496         (xstormy16_carry_plus_operand): Delete prototype.
17497         (xs_hi_general_operand): Likewise.
17498         (xs_hi_nonmemory_operand): Likewise.
17499
17500         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
17501         modifiers as they are no longer needed and they can trigger
17502         reload spill failures.
17503
17504         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
17505         with a match_operand in order to help reload.
17506
17507         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
17508         constraint with 'e' for the 8th alternative as this version of
17509         the mov.w instruction only accepts the lower 8 registers.
17510
17511 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
17512
17513         PR target/34856
17514         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
17515         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
17516         vector elements.
17517
17518 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
17519
17520         PR middle-end/33333
17521         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
17522
17523 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
17524
17525         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
17526         New functions.
17527         (remove_structure): Update allocations list before removing structure.
17528
17529 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
17530
17531         * ipa-struct-reorg.c (is_safe_cond_expr,
17532         create_new_stmts_for_cond_expr): Use integer_zerop function,
17533         that recognize not only zero-pointer, but zero-integer too.
17534
17535 2008-01-25  Ben Elliston  <bje@au.ibm.com>
17536
17537         PR other/22232
17538         * fixproto: Escape "." in sed expression that strips leading "./".
17539
17540 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
17541
17542         PR driver/34904
17543         * gcc.c (SWITCH_OK): Removed.
17544         (SWITCH_LIVE): Changed to bit.
17545         (SWITCH_FALSE): Likewise.
17546         (SWITCH_IGNORE): Likewise.
17547         (switchstr): Change live_cond to unsigned int.
17548         (process_command): Replace SWITCH_OK with 0.
17549         (do_self_spec): Likewise.
17550         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
17551         (give_switch): Likewise.
17552         (used_arg): Likewise.
17553         (do_spec_1): Set the SWITCH_IGNORE bit.
17554         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
17555         bits.  Set the SWITCH_LIVE bit.
17556
17557 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
17558
17559         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
17560
17561 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
17562
17563         PR tree-optimization/34472
17564         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
17565         parameter to a "bool *" and set *DATA to false if there is
17566         an unsafe access.  Do not delete the structure here.
17567         (check_cond_exprs): Delete it here instead.
17568         (check_cond_exprs, exclude_cold_structs): Do not increase
17569         I when removing a structure.
17570
17571 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
17572
17573         PR target/34856
17574         * config/i386/i386.c (ix86_expand_vector_init): Consider only
17575         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
17576
17577 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
17578
17579         PR middle-end/34934
17580         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
17581         a fixed vector for stack.
17582
17583 2008-01-24  Ben Elliston  <bje@au.ibm.com>
17584
17585         PR c++/25701
17586         * doc/gcc.texi (Software development): Add a direntry for g++.
17587
17588 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
17589
17590         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
17591         stale and straggling -fforce-addr comments above.
17592
17593         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
17594         define.
17595         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
17596         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
17597
17598 2008-01-23  Michael Matz  <matz@suse.de>
17599
17600         PR debug/34895
17601         * dwarf2out.c (force_type_die): Use modified_type_die instead of
17602         gen_type_die.
17603
17604 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
17605
17606         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
17607         malloc result type.
17608
17609 2008-01-23 Anatoly Sokolov <aesok@post.ru>
17610
17611         * config/avr/avr.c (avr_current_arch): New variable.
17612         (avr_arch_types): Add 'avr31' and 'avr51' entries.
17613         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
17614         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
17615         (avr_override_options): Init 'avr_current_arch'.
17616         (base_arch_s): Move from here...
17617         * config/avr/avr.h (base_arch_s): ... here. Add new members
17618         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
17619         'mega' to 'have_jmp_call'.
17620         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
17621         "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
17622         macros.
17623         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
17624         architectures.
17625         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
17626         MULTILIB_MATCHES): Ditto.
17627
17628 2008-01-23  Richard Guenther  <rguenther@suse.de>
17629
17630         PR middle-end/31529
17631         * cgraphunit.c (cgraph_reset_node): Always mark the node
17632         not reachable if it is not queued already.
17633
17634 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
17635
17636         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
17637         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
17638         (cputype_selected): New static variable.
17639         (bfin_handle_option): Set it if -mcpu is used.
17640         (override_option): Select default set of workarounds if no cpu type
17641         selected on the command line.
17642         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
17643
17644         From  Michael Frysinger  <michael.frysinger@analog.com>
17645         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
17646         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
17647
17648         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
17649         for bf547, bf523, bf524, and bf526.
17650         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
17651         bf526.
17652         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
17653         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
17654         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
17655         __ADSPBF547__ and __ADSPBF54x__ for bf547.
17656         * doc/invoke.texi (Blackfin Options): Document that
17657         -mcpu now accept bf547, bf523, bf524, and bf526.
17658
17659 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
17660
17661         PR rtl-optimization/34628
17662         * combine.c (try_combine): Stop and undo after the first combination
17663         if an autoincrement side-effect on the first insn has effectively
17664         been lost.
17665
17666 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
17667
17668         PR target/34529
17669         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
17670         Offset addresses are not valid for Altivec or paired float modes.
17671
17672 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
17673
17674         PR c++/34607
17675         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
17676         if DECL_INITIAL (decl) is error_mark_node.
17677
17678         PR c++/34914
17679         * c-common.c (handle_vector_size_attribute): Only allow
17680         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
17681         the same way as pointer, array etc. types.
17682         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
17683
17684         PR c++/34917
17685         * tree.c (build_type_attribute_qual_variant): Call
17686         build_qualified_type if attributes are equal, but quals are not.
17687
17688 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17689
17690         PR 32102
17691         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
17692         * flags.h (warn_strict_aliasing): Remove.
17693         (warn_strict_overflow): Remove.
17694         * opts.c (warn_strict_aliasing): Remove.
17695         (warn_strict_overflow): Remove.
17696         * c-opts.c (c_common_handle_option): -Wall only sets
17697         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
17698         (c_common_post_options): Give default values to -Wstrict-aliasing
17699         and -Wstrict-overflow if they are uninitialized.
17700         * common.opt (Wstrict-aliasing): Specify Var and Init.
17701         (Wstrict-overflow): Likewise.
17702
17703 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
17704
17705         PR rtl-optimization/26854
17706         PR rtl-optimization/34400
17707         PR rtl-optimization/34884
17708         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
17709         DF_RD->gen.
17710         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
17711         (df_rd_bb_info.expanded_lr_out): Deleted
17712         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
17713         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
17714         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
17715         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
17716         Removed code to allocate, initialize or free expanded_lr_out.
17717         (df_rd_bb_local_compute_process_def): Restructured to make more
17718         understandable.
17719         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
17720         sets if the sets are being trimmed.
17721
17722 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
17723
17724         PR bootstrap/32287
17725         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
17726         (as_vers): Likewise.
17727         * configure: Regenerated.
17728
17729 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17730
17731         PR middle-end/33092
17732         * tree-pass.h (pass_build_alias): New pass.
17733         * tree-ssa-alias.c (gate_build_alias): New.
17734         (pass_build_alias): New.
17735         * passes.c (init_optimization_passes): Add pass_build_alias after
17736         pass_create_structure_vars.
17737
17738 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
17739
17740         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
17741         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
17742         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
17743         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
17744         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
17745         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
17746         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
17747         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
17748         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
17749         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
17750         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
17751         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
17752         * config/s390/s390.md (FP_ALL): New mode iterator.
17753         (_d): New mode attribute.
17754         ("*signbit<mode>2>"): Changed mode of first operand.
17755         ("isinf<mode>2"): Changed mode of first operand.
17756         ("*TDC_insn"): Adaptation for DFP modes.
17757
17758 2008-01-22  Ben Elliston  <bje@au.ibm.com>
17759
17760         * tree.c (check_qualified_type): Improve function description.
17761
17762 2008-01-21  Jason Merrill  <jason@redhat.com>
17763
17764         PR c++/34196
17765         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
17766         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
17767         if it is set.
17768
17769 2008-01-21  DJ Delorie  <dj@redhat.com>
17770
17771         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
17772         return zero.
17773
17774 2008-01-21  Richard Guenther  <rguenther@suse.de>
17775
17776         PR middle-end/34856
17777         * tree-cfg.c (verify_expr): Allow all invariant expressions
17778         instead of just constant class ones as reference argument.
17779         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
17780         like any other constant.
17781         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
17782
17783 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
17784
17785         * regmove.c (fixup_match_1): Update call crossed frequencies.
17786
17787 2008-01-21  Richard Guenther  <rguenther@suse.de>
17788
17789         PR c/34885
17790         * tree-inline.c (setup_one_parameter): Deal with mismatched
17791         types using a VIEW_CONVERT_EXPR.
17792
17793 2008-01-21  Alon Dayan  <alond@il.ibm.com>
17794             Olga Golovanevsky  <olga@il.ibm.com>
17795
17796         PR tree-optimization/34701
17797         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
17798         when the structure size is not a power of 2.
17799
17800 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
17801
17802         * doc/install.texi: Add doc for --enable-checking=df.
17803
17804 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
17805
17806         PR rtl-optimization/34808
17807         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
17808
17809 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
17810
17811         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
17812         input.
17813
17814 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
17815
17816         PR rtl-optimization/26854
17817         PR rtl-optimization/34400
17818         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
17819         DF_RD->gen.
17820         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
17821         (df_rd_bb_info.expanded_lr_out): New.
17822         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
17823         * loop_iv.c (iv_analysis_loop_init): Ditto.
17824         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
17825         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
17826         Added code to allocate, initialize or free expanded_lr_out.
17827         (df_rd_bb_local_compute_process_def): Restructured to make
17828         more understandable.
17829         (df_rd_confluence_n): Add code to do nothing with fake edges and
17830         code to no apply invalidate_by_call sets if the sets are being trimmed.
17831         (df_lr_local_finalize): Renamed to df_lr_finalize.
17832         (df_live_local_finalize): Renamed to df_live_finalize.
17833
17834 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
17835
17836         PR target/34831
17837         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
17838         deciding whether to use reciprocal instructions.
17839
17840 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
17841
17842         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
17843         dwarf2out_note_section_used if cold_text_section is NULL.
17844
17845 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
17846
17847         PR gcov-profile/34610
17848         * tree-cfg.c (make_edges): Mark both outgoing edges from
17849         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
17850         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
17851         from OMP_FOR and OMP_CONTINUE outgoing edges.
17852
17853         * tree-profile.c (tree_profiling): Return early if
17854         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
17855         at the end.
17856         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
17857         from cfun to child_cfun.
17858         * function.h (struct function): Add after_tree_profile bit.
17859
17860 2008-01-19 Anatoly Sokolov <aesok@post.ru>
17861
17862         * config/avr/avr.S (_exit): Disable interrupt.
17863
17864 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
17865             Steven Bosscher  <stevenb.gcc@gmail.com>
17866
17867         PR rtl-optimization/26854
17868         PR rtl-optimization/34400
17869         * df-problems.c (df_live_scratch): New scratch bitmap.
17870         (df_live_alloc): Allocate df_live_scratch when doing df_live.
17871         (df_live_reset): Clear the proper bitmaps.
17872         (df_live_bb_local_compute): Only process the artificial defs once
17873         since the order is not important.
17874         (df_live_init): Init the df_live sets only with the variables
17875         found live by df_lr.
17876         (df_live_transfer_function): Use the df_lr sets to prune the
17877         df_live sets as they are being computed.
17878         (df_live_free): Free df_live_scratch.
17879
17880 2008-01-18  Ian Lance Taylor  <iant@google.com>
17881
17882         * common.opt: Add fmerge-debug-strings.
17883         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
17884         flag_merge_debug_strings rather than flag_merge_constants.
17885         * doc/invoke.texi (Option Summary): Mention
17886         -fmerge-debug-strings.
17887         (Debugging Options): Document -fmerge-debug-strings.
17888
17889 2008-01-18  Ian Lance Taylor  <iant@google.com>
17890
17891         PR c++/33407
17892         * tree.h (DECL_IS_OPERATOR_NEW): Define.
17893         (struct tree_function_decl): Add new field operator_new_flag.
17894         * tree-inline.c (expand_call_inline): When inlining a call to
17895         operator new, force the return value to go into a variable, and
17896         set DECL_NO_TBAA_P on that variable.
17897         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
17898
17899 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
17900
17901         PR debug/34484
17902         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
17903         DWARF2_DEBUGGING_INFO.
17904         (dwarf2out_note_section_used): Ditto.  Add prototype.
17905         (have_multiple_function_sections, text_section_used,
17906         cold_text_section_used, *cold_text_sections): Move declarations
17907         before their uses.
17908
17909 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
17910
17911         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
17912         field and add signal_ra.
17913         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
17914         assignments to frame state pc.  Move end of stack check after
17915         MD_FALLBACK_FRAME_STATE_FOR.
17916         (uw_update_context_1): Use frame state signal_regs if set, instead
17917         of checking signal_frame flag.
17918         (uw_update_context): Use frame state signal_ra if set.
17919         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
17920         * config/xtensa/linux-unwind.h: New file.
17921
17922 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
17923
17924         * modulo-sched.c (get_sched_window): Fix comment typo.
17925
17926 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
17927
17928         PR tree-optimization/34648
17929         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
17930
17931 2008-01-17  Anatoly Sokolov <aesok@post.ru>
17932
17933         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
17934         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
17935
17936 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
17937
17938         PR rtl-optimization/34400
17939         * df-core.c (df_worklist_dataflow_overeager,
17940         df_worklist_dataflow_doublequeue): New functions.
17941         (df_worklist_dataflow): Two different worklist solvers.
17942         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
17943         New param.
17944
17945 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
17946
17947         PR testsuite/34821
17948         * doc/invoke.texi: Document the dependence on pthread for fopenmp
17949         and ftree-parallelize-loops.
17950
17951 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
17952
17953         PR rtl-optimization/34826
17954         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
17955
17956 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
17957
17958         * global.c (find_reg): Mark the eh regs as used if necessary.
17959         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
17960         * ra.h (struct allocno): no_eh_reg field added.  Changed
17961         no_stack_reg type to bitfield.
17962
17963 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
17964
17965         * tree.c (substitute_in_expr): Add missing 'break'.
17966
17967 2008-01-17  Richard Guenther  <rguenther@suse.de>
17968
17969         PR tree-optimization/34825
17970         * tree-ssa-math-opts.c (is_division_by): Do not recognize
17971         x / x as division to handle.
17972
17973 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17974
17975         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
17976         "-pthread" is specified.
17977         * pa-hpux11.h (LIB_SPEC): Likewise.
17978
17979 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
17980             Peter Bergner  <bergner@vnet.ibm.com>
17981
17982         PR rtl-optimization/33796
17983         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
17984
17985 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17986
17987         PR libgfortran/34699
17988         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
17989         static links.
17990         * pa-hpux10.h (LINK_SPEC): Likewise.
17991         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
17992
17993 2008-01-16  Richard Guenther  <rguenther@suse.de>
17994
17995         PR middle-end/32628
17996         * fold-const.c (fold_convert_const_int_from_int): Do not
17997         set overflow if that occured only because of a sign extension
17998         change when converting from/to a sizetype with the same
17999         precision and signedness.
18000
18001 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
18002
18003         PR debug/34249
18004         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
18005         location address to the correct place.  Update copyright year.
18006
18007 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
18008
18009         * lambda-code.c (lambda_transform_legal_p): Handle the case of
18010         no dependences in the dependence_relations vector.
18011
18012 2008-01-16  Jan Hubicka  <jh@suse.cz>
18013
18014         PR rtl-optimization/31396
18015         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
18016         * cfg.c (dump_reg_info): Print it.
18017         * regs.h (struct reg_info_t): add freq_calls_crossed.
18018         (REG_FREQ_CALLS_CROSSED): New macro.
18019         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
18020         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
18021         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
18022         regmove_optimize): Update call crossed frequencies.
18023         * local-alloc.c (struct qty): Add freq_calls_crossed.
18024         (alloc_qty): Copute freq_calls_crossed.
18025         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
18026         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
18027         * ra.h (struct allocno): Add freq_calls_crossed.
18028
18029 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
18030
18031         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
18032         libgomp when compiling with ftree-parallelize-loops.
18033         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
18034
18035 2008-01-16  Richard Guenther  <rguenther@suse.de>
18036
18037         PR tree-optimization/34769
18038         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
18039         * tree.c (int_cst_value): Instead make this function more
18040         permissive in what it accepts as valid input.  Document this
18041         function always sign-extends the value.
18042
18043 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
18044             Richard Guenther  <rguenther@suse.de>
18045
18046         PR c/34668
18047         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
18048         (gimple_fold_indirect_ref_rhs): ... this.
18049         (gimple_fold_indirect_ref): New function with foldings
18050         that preserve lvalueness.
18051         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
18052         * tree-flow.h (gimple_fold_indirect_ref): Declare.
18053         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
18054         to fold an INDIRECT_REF, fall back to the old use of
18055         fold_indirect_ref_1.
18056
18057 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
18058
18059         * tree-data-ref.c (subscript_dependence_tester_1): Call
18060         free_conflict_function.
18061         (compute_self_dependence): Same.
18062
18063 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
18064
18065         PR debug/34249
18066         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
18067         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
18068         function global.
18069         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
18070         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
18071         for DWARF2_UNWIND_INFO targets.
18072
18073 2008-01-16  Richard Guenther  <rguenther@suse.de>
18074
18075         PR c/34768
18076         * c-typeck.c (common_pointer_type): Do not merge inconsistent
18077         type qualifiers for function types.
18078
18079 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
18080
18081         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
18082         loop_iterator li from previous commit.
18083
18084 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
18085
18086         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
18087
18088 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
18089
18090         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
18091         (parallelize_loops): Don't parallelize irreducible components.
18092
18093 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18094
18095         PR c++/24924
18096         * c-opts (c_common_post_options): Do not enable CPP
18097         flag_pedantic_errors by default.
18098
18099 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
18100
18101         PR rtl-optimization/31944
18102         * cse.c (remove_pseudo_from_table): New function.
18103         (merge_equiv_classes): Use above function to remove pseudo-registers.
18104         (invalidate): Likewise.
18105
18106 2008-01-13  Richard Guenther  <rguenther@suse.de>
18107
18108         PR middle-end/34601
18109         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
18110         instead of TYPE_MODE to deal with calls from expand_one_error_var.
18111
18112 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
18113
18114         * gcse.c (cprop_jump): Call validate_unshare_change instead of
18115         validate_change to unshare the source of the PC set.
18116
18117 2008-01-12  Jan Hubicka  <jh@suse.cz>
18118
18119         PR middle-end/32135
18120         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
18121         references above array bounds.  This might trigger bounds checks for
18122         pointers to arrays.
18123
18124 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
18125
18126         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
18127         new_replaceable_dependencies.
18128
18129 2008-01-12  Doug Kwan  <dougkwan@google.com>
18130
18131         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
18132         instead of OPT_Wreturn_type in warning due to ignored return type
18133         qualifiers.
18134         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
18135         options included in -Wextra.
18136         * c.opt: New option -Wignored_qualifiers.
18137         * doc/invoke.texi (Warning Options, -Wextra): Add new option
18138         -Wignore_qualifiers.
18139         (-Wignored-qualifiers): Document.
18140         (-Wreturn-type): Remove description of functionality now handled
18141         by -Wignored-qualifiers.
18142
18143 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
18144
18145         PR ada/33788
18146         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
18147         NOP_EXPR if it is between integral types with the same precision.
18148
18149 2008-01-12  Jan Hubicka  <jh@suse.cz>
18150
18151         PR other/28023
18152         * invoke.texi (max-inline-recursive-depth): Fix default value.
18153
18154 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
18155
18156         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
18157         correct type.
18158
18159 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
18160
18161         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
18162
18163 2008-01-11  James E. Wilson  <wilson@specifix.com>
18164
18165         PR target/26015
18166         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
18167
18168 2008-01-11  Anatoly Sokolov <aesok@post.ru>
18169
18170         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
18171         save/restore frame pointer register and don't use 'call-prologues'
18172         optimization in function with "OS_task" attribute.
18173
18174 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
18175
18176         PR middle-end/31309
18177         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
18178         when copying to memory.
18179
18180 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
18181
18182         PR rtl-optimization/30905
18183         * cfgcleanup.c: Include dce.h
18184         (crossjumps_occured): New global variable.
18185         (try_crossjump_bb): Exit loop after finding a fallthru edge.
18186         If something changed, set crossjumps_occured to true.
18187         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
18188         Don't add/remove fake edges to exit here...
18189         (cleanup_cfg): ...but do it here, when crossjumping.
18190         Run a fast DCE when successful crossjumps occured in the latest
18191         iteration of try_optimize_cfg.
18192
18193 2008-01-11  Richard Guenther  <rguenther@suse.de>
18194
18195         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
18196         (struct vn_unary_op_s): Likewise.
18197         (vn_reference_insert): Free old reference on hash collision.
18198
18199 2008-01-10  Raksit Ashok  <raksit@google.com>
18200
18201         PR rtl-optimization/27971
18202         * combine.c (find_split_point): Split PLUS expressions which are
18203         inside a MEM rtx, and whose first operand is complex.
18204
18205 2008-01-10  DJ Delorie  <dj@redhat.com>
18206
18207         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
18208         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
18209         (m32c_hard_regno_ok): Call the underlying function.
18210
18211 2008-01-10  Richard Guenther  <rguenther@suse.de>
18212
18213         PR middle-end/34683
18214         * tree-cfg.c (tree_merge_blocks): Do not go through the
18215         full-blown folding and stmt updating path if we just deal
18216         with virtual operands.
18217         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
18218         test for abnormal SSA_NAMEs.
18219
18220 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
18221
18222         PR middle-end/34641
18223         * reload.c (push_reload): Add assertions.  All constants from
18224         reg_equiv_constant should have been used for replacing the respective
18225         pseudo earlier.
18226         (find_reloads_address): Invoke find_reloads_address_part for
18227         constant taken from the reg_equiv_constant array.
18228
18229 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
18230
18231         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
18232         field (valnum) the first in the struct.  Replace bools with
18233         unit bit fields.
18234
18235 2008-01-10  Richard Guenther  <rguenther@suse.de>
18236
18237         PR tree-optimization/34651
18238         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
18239         types and ordering for masking and converting.
18240
18241 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
18242
18243         PR tree-optimization/34017
18244         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
18245         also for PHI_NODE expressions.
18246
18247 2008-01-09  Jan Hubicka  <jh@suse.cz>
18248
18249         PR tree-optimization/34708
18250         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
18251         based on number of case labels.
18252         (init_inline_once): Remove switch_cost.
18253         * tree-inline.h (eni_weights_d): Remove switch_cost.
18254
18255 2008-01-09  Richard Guenther  <rguenther@suse.de>
18256         Andrew Pinski  <andrew_pinski@playstation.sony.com>
18257
18258         PR middle-end/30132
18259         * gimplify.c (gimplify_cond_expr): Do not create an addressable
18260         temporary if an rvalue is ok or an lvalue is not required.
18261
18262 2008-01-09  Richard Guenther  <rguenther@suse.de>
18263
18264         PR middle-end/34458
18265         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
18266         adjust return type.
18267
18268 2008-01-09  Richard Guenther  <rguenther@suse.de>
18269
18270         PR middle-end/34679
18271         * tree.c (host_integerp): Check for sizetype only if the
18272         type is an integer type.
18273
18274 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
18275
18276         PR debug/26364
18277         * opts.c (decode_options): Disable inlining of functions called
18278         once if not in unit-at-a-time mode.
18279
18280 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
18281
18282         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
18283
18284 2008-01-08  Richard Guenther  <rguenther@suse.de>
18285
18286         PR middle-end/31863
18287         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
18288         out early if the result will be unused.
18289
18290 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
18291
18292         PR target/34709
18293         Revert:
18294
18295         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
18296         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
18297         for TARGET_RECIP.
18298
18299 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
18300
18301         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
18302         for vectorization tuned.
18303
18304 2008-01-08  Richard Guenther  <rguenther@suse.de>
18305
18306         PR tree-optimization/34683
18307         * tree-ssa-operands.c (operand_build_cmp): Export.
18308         * tree-ssa-operands.h (operand_build_cmp): Declare.
18309         * tree-vn.c (vuses_compare): Remove.
18310         (sort_vuses): Use operand_build_cmp.
18311         (sort_vuses_heap): Likewise.
18312         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
18313         to re-use old VEC if available.  Do not sort already sorted VUSEs.
18314         (vdefs_to_vec): Do not sort already sorted VDEFs.
18315
18316 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
18317
18318         PR middle-end/34694
18319         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
18320
18321 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
18322
18323         PR target/34702
18324         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
18325         limitations of reciprocal sequences on x86 targets.
18326
18327 2008-01-08  Richard Guenther  <rguenther@suse.de>
18328
18329         PR tree-optimization/34683
18330         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
18331
18332 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
18333
18334         PR target/34622
18335         * config/darwin.c (darwin_mergeable_string_section): Don't use
18336         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
18337
18338 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
18339
18340         PR target/34682
18341         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
18342         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
18343         predicates of op0 and op1 to register_operand.
18344         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
18345         expander using X87MODEF mode iterator.  Change predicates of
18346         op0 and op1 to register_operand.
18347         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
18348         corresponding patterns and macroize using MODEF macro.  Change
18349         predicates of op0 and op1 to register_operand and remove
18350         "m" constraint. Disparage "r" alternative with "!".
18351         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
18352         macroize using X87MODEF macro.  Change predicates of op0 and op1
18353         to register_operand and remove "m" constraint.  Disparage "r"
18354         alternative with "!".
18355         (absneg splitter with memory operands): Remove.
18356         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
18357         patterns and macroize using X87MODEF mode iterator.
18358         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
18359         Change predicate of op1 to register_operand.
18360         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
18361         for memory operands.
18362
18363 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
18364
18365         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
18366
18367 2008-01-07  Richard Guenther  <rguenther@suse.de>
18368
18369         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
18370         fields.
18371
18372 2008-01-07  Richard Guenther  <rguenther@suse.de>
18373
18374         PR tree-optimization/34683
18375         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
18376         VOPs of the needed size to save memory.  Use VEC_quick_push
18377         to save compile-time.
18378         (vdefs_to_vec): Likewise.
18379
18380 2008-01-07  Sa Liu  <saliu@de.ibm.com>
18381
18382         * config/spu/spu.md (divdf3): Genetate inline code for double
18383         division.  The implementation doesn't handle INF or NAN, therefore it
18384         only applies when -ffinite-math-only is given.
18385
18386 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
18387
18388         PR libstdc++/34680
18389         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
18390         * doc/cpp.texi ([Common Predefined Macros]): Document.
18391
18392 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
18393
18394         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
18395         order to use commutative addition instead of subtraction.
18396
18397 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
18398             Mircea Namolaru  <namolaru@il.ibm.com>
18399             Vladimir Yanovsky  <yanov@il.ibm.com>
18400             Revital Eres  <eres@il.ibm.com>
18401
18402         PR tree-optimization/34263
18403         * tree-outof-ssa.c (process_single_block_loop_latch,
18404         contains_tree_r): New functions.
18405         (analyze_edges_for_bb): Call process_single_block_loop_latch
18406         function to empty single-basic-block latch block if possible.
18407
18408 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
18409
18410         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
18411         for TARGET_RECIP.
18412         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
18413
18414 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
18415
18416         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
18417
18418 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
18419
18420         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
18421
18422 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
18423
18424         PR tree-optimization/34618
18425         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
18426         flag from T.
18427
18428 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
18429
18430         PR target/34673
18431         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
18432         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
18433         Update copyright year.
18434
18435         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
18436         Update copyright year.
18437         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
18438         using NR fixup.
18439
18440 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
18441
18442         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
18443         edge does not point to current bb before changing need_assert.
18444
18445 2008-01-04  Richard Guenther  <rguenther@suse.de>
18446
18447         PR middle-end/34029
18448         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
18449         for verifying purposes if they are is_gimple_min_invariant.
18450
18451 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
18452
18453         PR tree-optimization/34448
18454         PR tree-optimization/34465
18455         * gimplify.c (gimplify_init_constructor): Add new parameter
18456         notify_temp_creation.  Use it.
18457         (gimplify_modify_expr_rhs): Take volatiles into account when
18458         optimizing constructors.
18459         Do not optimize constructors if gimplify_init_constructor will dump to
18460         memory.
18461         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
18462         * gcc.c-torture/compile/pr34448.c: New.
18463
18464 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
18465
18466         PR gcov-profile/34609
18467         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
18468         return_slot if result is TREE_ADDRESSABLE.
18469
18470 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
18471
18472         * config/mips/mips.md (sqrt_condition): Tweak comment.
18473         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
18474
18475 2008-01-03  Tom Tromey  <tromey@redhat.com>
18476
18477         PR c/34457
18478         * c-common.c (c_type_hash): Handle VLAs.
18479
18480 2008-01-03  Jan Hubicka  <jh@suse.cz>
18481
18482         PR tree-optimization/31081
18483         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
18484         0 when inlining and not inlining to first basic block.
18485         (remap_decl): When var is initialized to 0, don't set default_def.
18486         (expand_call_inline): Set entry_bb.
18487         * tree-inline.h (copy_body_data): Add entry_bb.
18488
18489 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
18490
18491         PR c++/34619
18492         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
18493         before returning.
18494
18495         PR tree-optimization/29484
18496         * tree-inline.c (inline_forbidden_p_2): New function.
18497         (inline_forbidden_p): Disallow inlining if some static var
18498         has an address of a local LABEL_DECL in its initializer.
18499         * doc/extend.texi (Labels as Values): Document &&foo behaviour
18500         vs. inlining.
18501
18502 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
18503
18504         PR tree-optimization/34635
18505         * tree-data-ref.c (add_other_self_distances): Make sure that the
18506         evolution step is constant.
18507
18508 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
18509
18510         PR middle-end/34608
18511         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
18512
18513 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
18514
18515         * tree-sra.c (scalarize_init): Insert the generate_element_init
18516         statements after the generate_element_zero statements.
18517
18518 2008-01-02  Richard Guenther  <rguenther@suse.de>
18519
18520         PR middle-end/34093
18521         PR middle-end/31976
18522         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
18523         for very large number of operands instead of ICEing.
18524
18525 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
18526
18527         PR target/34013
18528         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
18529         while stack probing.
18530
18531 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
18532
18533         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
18534         in C++0x mode.
18535
18536 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
18537
18538         PR libmudflap/26442
18539         * tree-mudflap.c (mx_register_decls): Guard warning by
18540         !DECL_ARTIFICIAL check.
18541
18542 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
18543
18544         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
18545         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
18546         sse5_perm<mode>): Fix constraints.