OSDN Git Service

2008-08-18 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-08-18  Richard Guenther  <rguenther@suse.de>
2
3         * tree-sra.c (generate_element_init_1): Deal with NULL constructor
4         element index.
5         (scalarize_init): If we failed to generate some initializers
6         do not generate zeros for not instantiated members.  Instead
7         rely on the copy out.
8         * tree-ssa-operands.c (get_addr_dereference_operands): Warn
9         about missing flow-sensitive alias info only if we have
10         aliases computed.
11
12 2008-08-17  Nick Clifton  <nickc@redhat.com>
13
14         * doc/extend.texi (Function Attributes): Fix typo in description
15         if hot function attribute.
16
17 2008-08-17  Daniel Jacobowitz  <dan@codesourcery.com>
18             Richard Sandiford  <rdsandiford@googlemail.com>
19
20         * doc/install.texi (--with-mips-plt): Document.
21         * doc/invoke.texi (-mplt, -mno-plt): Document.
22         * config.gcc (mips*-*-*): Add mips-plt to supported_defaults
23         and handle ${with_mips_plt}.
24         * config/mips/mips.opt (mplt): New option.
25         * config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
26         (TARGET_ABICALLS_PIC2): Likewise.
27         (TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
28         (OPTION_DEFAULT_SPECS): Add a mips-plt entry.
29         (ASM_SPEC): Use !mabi=* instead of !mabi*.
30         (MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
31         to decide whether to output ".option picX" directives.
32         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
33         Pass -call_nonpic rather than -KPIC for -mplt.
34         (BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
35         on the command line.  Also remove it when -mabi=64 is used without
36         -msym32.
37         * config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
38         * config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
39         TARGET_ABICALLS_PIC0.
40         (mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
41         TARGET_ABICALLS.
42         (mips16_build_function_stub): Only output ".option pic" directives
43         and PIC stubs if TARGET_ABICALLS_PIC2.  Call through $25 instead of $1.
44         (mips16_build_call_stub): Fix comment and remove redundant
45         ".set at"/"set .noat" directives.
46         (mips_function_rodata_section): Use the default behaviour for
47         TARGET_ABSOLUTE_ABICALLS.
48         (mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
49         (mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
50         (mips_restore_gp): Do nothing if the current function doesn't use
51         a global pointer.
52         (mips_expand_prologue): Only save $gp if the current function uses it.
53         Use a normal move for TARGET_ABICALLS_PIC0.
54         (mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.
55
56 2008-08-17  Richard Sandiford  <rdsandiford@googlemail.com>
57
58         * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest
59         of function when handling GLOBAL_POINTER_REGNUM.
60
61 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
62
63         PR ada/20548
64         * common.opt (-fstack-check): Do not declare the variable here.
65         (-fstack-check=): New option variant.
66         * doc/invoke.texi (Code Gen Options): Document it.
67         * expr.h (STACK_OLD_CHECK_PROTECT): New macro.
68         (STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used.
69         (STACK_CHECK_STATIC_BUILTIN): New macro.
70         * doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN.
71         * opts.c: Include expr.h.
72         (common_handle_option) <OPT_fold_stack_check_>: New case.
73         <OPT_fstack_check>: Likewise.
74         * calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT
75         consistently in the test for variable-sized types.  Adjust for
76         new behaviour of flag_stack_check.
77         * explow.c: Include except.h.
78         (allocate_dynamic_stack_space): Do not take into account
79         STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking.
80         * function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test
81         for variable-sized parameters.  Treat all parameters whose size is
82         greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic
83         stack checking is enabled.
84         * gimplify.c (gimplify_decl_expr): Treat non-static objects whose
85         size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized
86         if generic stack checking is enabled.
87         (expand_function_end): Adjust for new behaviour of flag_stack_check.
88         * reload1.c (reload): Likewise.
89         * stmt.c (expand_decl): Assert that all automatic variables have
90         fixed size at this point and remove dead code.
91         * flags.h (stack_check_type): New enumeration type.
92         (flag_stack_check): Declare.
93         * toplev.c (flag_stack_check): New global variable.
94         * Makefile.in (opts.o): Add dependency on EXPR_H.
95         (explow.o): Add dependency on except.h.
96
97 2008-08-16  Andy Hutchinson  <hutchinsonandy@aim.com>
98
99         * config/avr/avr.c (avr_override_options): Reduce value of 
100         PARAM_INLINE_CALL_COST.
101
102 2008-08-15  Eric Botcazou  <ebotcazou@adacore.com>
103
104         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: When converting
105         to BLKmode, try to fetch an inner memory reference.  Use 'mode' in
106         lieu of TYPE_MODE (type) throughout.
107
108 2008-08-15  Joseph Myers  <joseph@codesourcery.com>
109
110         * config/arm/arm.c (add_minipool_backward_ref): Check for
111         8-byte-aligned entries in second case of forcing insertion after a
112         particular entry.  Change third case to avoid inserting
113         non-8-byte-aligned entries before 8-byte-aligned ones.
114
115 2008-08-15  Richard Guenther  <rguenther@suse.de>
116
117         * tree-ssa-ccp.c (maybe_fold_offset_to_reference): Do not
118         strip components for unknown size accesses.
119
120 2008-08-15  Wolfgang Gellerich  <gellerich@de.ibm.com>
121
122         * config/s390/2097.md New file.
123         * config/s390/s390.md ("z10prop" attribute): Define none,
124         z10_super, z10_super_E1, z10_super_A1, z10_super_c,
125         z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
126         z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
127         possible values and apply them to insns as appropriate.
128         ("type" attribute): Removed itof and added ftrunctf,ftruncdf,
129         ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
130         fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
131         fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible
132         values.
133         ("bfp" mode attribute): Removed.  Every occurence replaced
134         with <mode>.
135         * config/s390/s390.c (struct "z10_cost"): Updated entries.
136         * config/s390/2084.md (insn_reservation "x_itof"): Updated
137           type attribute.
138
139 2008-08-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
140
141         PR c/28152
142         * c-parser.c (c_lex_one_token): Do not store the canonical spelling
143         for keywords.
144         
145 2008-08-14  Dorit Nuzman  <dorit@il.ibm.com>
146
147         * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an
148         additional argument. Support reduction when duplication is needed due
149         to data-types of different sizes in the loop.
150         (get_initial_def_for_induction): Fix printout.
151         (vect_get_vec_def_for_stmt_copy): Support case where the
152         vec_stmt_for_operand is a phi node.
153         (vectorizable_reduction): Support reduction when duplication is needed 
154         due to data-types of different sizes in the loop.
155         (vectorizable_call): Remove restriction to not vectorize in case we 
156         have data-types of different sizes in the loop.
157         (vectorizable_conversion): Likewise.
158         (vectorizable_operation): Likewise.
159         (vectorizable_type_demotion): Likewise.
160         (vectorizable_type_promotion): Likewise.
161         (vectorizable_induction): Add restriction to not vectorize in case 
162         we have data-types of different sizes in the loop.
163
164 2008-08-14  Christophe Saout  <christophe@saout.de>
165             Uros Bizjak  <ubizjak@gmail.com>
166
167         PR target/37101
168         * config/i386/sse.md (vec_concatv2di): Remove movlps alternative.
169         (*vec_concatv2di_rex64_sse4_1): Ditto.
170         (*vec_concatv2di_rex64_sse): Ditto.
171
172 2008-08-14  Jakub Jelinek  <jakub@redhat.com>
173
174         PR middle-end/37103
175         * fold-const.c (fold_widened_comparison): Do not allow
176         sign changes that change the result even if shorter type
177         is wider than arg1_unw's type.
178
179 2008-08-13  Kazu Hirata  <kazu@codesourcery.com>
180
181         * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c:
182         Skip if the multilib testing specifies -march that does not
183         agree with the one specified in the testcase.
184
185 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
186
187         * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or
188         zero extend SImode values being converted to TFmode before passing
189         to libcalls.
190
191 2008-08-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
192
193         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
194         __PPU__ when targeting the Cell/B.E. PPU processor.
195
196 2008-08-13  Eric Botcazou  <ebotcazou@adacore.com>
197
198         * gimple.h (gimple_call_set_chain): Accept SSA variables.
199         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>:
200         Rematerialize the static chain, if any.
201         * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the
202         static chain.
203
204 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
205
206         * dwarf2out.c (dwarf_stack_op_name): Remove prototype.
207         (new_loc_descr): Likewise.
208         (add_loc_descr): Likewise.
209         (size_of_loc_descr): Likewise.
210         (size_of_locs): Likewise.
211         (output_loc_operands): Likewise.
212         (output_loc_sequence): Likewise.
213         (new_reg_loc_descr): New.
214         (build_cfa_loc): Use it.
215         (build_cfa_aligned_loc): Likewise.
216         (one_reg_loc_descriptor): Likewise.
217         (based_loc_descr): Likewise.
218
219 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
220
221         PR 30551
222         * doc/invoke.texi (Wmain): Update.
223         * c-decl.c (start_decl): warn_main is only 0 or 1.
224         (start_function): Likewise. Fix formatting.
225         (finish_function): Delete redundant warning.
226         * c.opt (Wmain): Add Var(warn_main) and Init(-1).
227         * c-opts (c_common_handle_option): -Wall only has effect if
228         warn_main is uninitialized. OPT_Wmain is automatically
229         handled. -pedantic also enables Wmain.
230         (c_common_post_options): Handle all logic for Wmain here.
231         * c-common.c (warn_main): Delete.
232         (check_main_parameter_types): Make pedwarns conditional on
233         OPT_Wmain.
234         * c-common.h (warn_main): Delete.
235
236 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
237
238         PR middle-end/36701
239         * expr.c (emit_group_store): Allocate stack temp with the
240         largest alignment when copying from register to stack.
241
242 2008-08-13  Richard Guenther  <rguenther@suse.de>
243
244         * tree.h (maybe_fold_offset_to_address): Declare.
245         * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit.
246         (ccp_fold): Handle pointer conversions the same as fold_stmt.
247         Likewise for POINTER_PLUS_EXPR.
248         (maybe_fold_offset_to_reference): Enable disabled code.
249         (maybe_fold_offset_to_address): New function.
250         (fold_stmt_r): Use it.
251         (fold_gimple_assign): Likewise.
252         * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address.
253         (gimplify_expr): Likewise.
254
255 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
256
257         * toplev.h (pedwarn_at): Fix declaration.
258         
259 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
260
261         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
262         LINK_SPEC): Use %R in -Y P argument.
263
264 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
265
266         PR c/15236
267         * diagnostic.c (pedwarn_at): New.
268         * toplev.h (pedwarn_at): Declare.
269         * c-tree.h (build_enumerator): Update declaration.
270         * c-decl.c (finish_enum): Update comment.
271         (build_enumerator): Take a location parameter. Give a pedwarn but do
272         not perform any conversion.
273         * c-parser.c (c_parser_enum_specifier): Set correct location for
274         enumerator.
275
276 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
277
278         PR 35635
279         * c-common.c (conversion_warning): Use a switch. Ignore boolean
280         expressions except for conversions to signed:1 bitfields. Handle
281         COND_EXPR with constant operands.
282         
283 2008-08-13  Richard Guenther  <rguenther@suse.de>
284
285         PR tree-optimization/15255
286         * tree-ssa-reassoc.c (linearize_expr_tree): Declare.
287         (struct oecount_s): New struct and VEC types.
288         (cvec): New global.
289         (oecount_hash): New function.
290         (oecount_eq): Likewise.
291         (oecount_cmp): Likewise.
292         (zero_one_operation): New function.
293         (build_and_add_sum): Likewise.
294         (undistribute_ops_list): Perform un-distribution of multiplication
295         and division on the chain of summands.
296         (should_break_up_subtract): Also break up subtracts for factors.
297         (reassociate_bb): Delete dead visited statements.
298         Call undistribute_ops_list.  Re-sort and optimize if it did something.
299         * passes.c (init_optimization_passes): Move DSE before
300         reassociation.
301         * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle
302         PHI nodes.
303
304 2008-08-12  Janis Johnson  <janis187@us.ibm.com>
305
306         * doc/invoke.texi (-fipa-pta): Say the option is experimental.
307
308         * doc/invoke.texi: Revert unintended checkin.
309
310 2008-08-12  Nathan Froyd  <froydnj@codesourcery.com>
311
312         PR libgomp/26165
313         * gcc.c (include_spec_function): Tweak call to find_a_file.
314
315 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
316
317         PR middle-end/37014
318         * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
319         and TRUTH_ORIF_EXPR.
320         * dojump.c (do_jump): Likewise.
321
322         PR tree-optimization/37084
323         * tree-inline.c (copy_bb): Call gimple_regimplify_operands
324         if id->regimplify, don't assume stmt is a cast assignment.
325
326 2008-08-12  Anatoly Sokolov  <aesok@post.ru>
327
328         * final.c (final_scan_insn): Use app_enable/app_disable functions.
329
330 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
331
332         PR bootstrap/37097
333         * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced
334         by last change.
335
336 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
337
338         * defaults.h (TARGET_FLOAT_FORMAT): Remove.
339         (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove.
340
341         * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove.
342         * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove.
343         * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove.
344         * config/score/score.h (TARGET_FLOAT_FORMAT): Remove.
345         * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove.
346
347         * doc/tm.texi (Storage Layout): Remove documentation for
348         TARGET_FLOAT_FORMAT.
349
350         * simplify-rtx.c (simplify_binary_operation_1): Replace
351         TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks.
352
353 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
354
355         * real.h (struct real_format): New member has_sign_dependent_rounding.
356         * real.c (ieee_single_format, mips_single_format, motorola_single_format,
357         spu_single_format, ieee_double_format, mips_double_format,
358         motorola_double_format, ieee_extended_motorola_format,
359         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
360         ieee_extended_intel_96_round_53_format, ibm_extended_format,
361         mips_extended_format, ieee_quad_format, mips_quad_format,
362         vax_f_format, vax_d_format, vax_g_format): Initialize it.
363         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
364
365         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
366         MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
367         * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
368         MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
369         (ROUND_TOWARDS_ZERO): Likewise.
370
371         * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion.
372         (FLOAT_MODE_FORMAT): New macro.
373         (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ...
374         (MODE_COMPOSITE_P): ... this new macro.
375         (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
376         MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros.
377         * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode.
378
379         * flags.h: Include "real.h".
380
381         * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of
382         REAL_MODE_FORMAT_COMPOSITE_P.
383         * simplify-rtx.c (simplify_const_binary_operation): Likewise.
384
385         * doc/tm.texi (Storage Layout): Remove documentation of
386         MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
387         MODE_HAS_SIGN_DEPENDENT_ROUNDING.  Update documentation of
388         ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify
389         they only apply to libgcc2.a.
390
391 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
392
393         * config/spu/float_disf.c: New file.
394         * config/spu/float_unsdisf.c: New file.
395         * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them.
396         (LIB2FUNCS_EXCLUDE): Define.
397
398 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
399             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
400
401         * real.h (struct real_format): New member round_towards_zero.
402         * real.c (round_for_format): Respect fmt->round_towards_zero.
403         (ieee_single_format, mips_single_format, motorola_single_format,
404         spu_single_format, ieee_double_format, mips_double_format,
405         motorola_double_format, ieee_extended_motorola_format,
406         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
407         ieee_extended_intel_96_round_53_format, ibm_extended_format,
408         mips_extended_format, ieee_quad_format, mips_quad_format,
409         vax_f_format, vax_d_format, vax_g_format): Initialize it.
410         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
411
412         * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of
413         real_format to choose rounding mode when calling MPFR functions.
414         (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise.
415         (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise.
416
417         * real.h (real_to_decimal_for_mode): Add prototype.
418         * real.c (real_to_decimal_for_mode): Renames old real_to_decimal.
419         Respect target rounding mode when generating decimal representation.
420         (real_to_decimal): New stub for backwards compatibility.
421         * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use
422         real_to_decimal_for_mode instead of real_to_decimal.
423
424         * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New.
425
426 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
427             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
428
429         * real.c (spu_single_format): New variable.
430         * real.h (spu_single_format): Declare.
431
432         * config/spu/spu.c (spu_override_options): Install SFmode format.
433         (spu_split_immediate): Use integer mode to operate on pieces of
434         floating-point values in all cases.
435
436         * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New.
437         ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND.
438         ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE.
439
440 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
441
442         * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA.
443
444 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
445
446         * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define.
447
448 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
449
450         PR c++/36688
451         * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY
452         on the VAR_DECL instead of TYPE_READONLY on its type.
453
454 2008-08-12  Ira Rosen  <irar@il.ibm.com>
455
456         * tree-vectorizer.c: Depend on langhooks.h.
457         (supportable_widening_operation): Add two arguments. Support double
458         type conversions.
459         (supportable_narrowing_operation): Likewise.
460         * tree-vectorizer.h (supportable_widening_operation): Add two 
461         arguments.
462         (supportable_narrowing_operation): Likewise.
463         * tree-vect-patterns.c (vect_recog_widen_mult_pattern) : Call
464         supportable_widening_operation with correct arguments.
465         * tree-vect-transform.c (vectorizable_conversion): Likewise.
466         (vectorizable_type_demotion): Support double type conversions.
467         (vectorizable_type_promotion): Likewise.
468         * Makefile.in (tree-vectorizer.o): Depend on langhooks.h.
469
470 2008-08-11  Michael Matz  <matz@suse.de>
471
472         * i386/i386.c (override_options): Move initialisation from
473         flag_schedule_insns_after_reload to here from ...
474         (optimization_options): ... here.
475
476 2008-08-11  Jakub Jelinek  <jakub@redhat.com>
477
478         PR rtl-optimization/36998
479         * dwarf2out.c (compute_barrier_args_size_1,
480         compute_barrier_args_size): Temporarily remove assertions.
481
482 2008-08-10  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
483
484         PR middle-end/20644
485         * tree-ssa.c (struct walk_data): Add new flag
486         warn_possibly_uninitialized.
487         (warn_uninitialized_var): Use it.
488         (warn_uninitialized_vars): New.
489         (execute_early_warn_uninitialized): Call it.
490         (execute_late_warn_uninitialized): Likewise.
491
492 2008-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
493
494         PR middle-end/36238
495         * reload1.c (gen_reload): Guard calls to get_secondary_mem
496         for memory subregs.
497
498 2008-08-09  Jan Hubicka  <jh@suse.cz>
499
500         PR target/37055
501         * optabs.c (maybe_emit_unop_insn): Remove produced code if
502         expansion failed.
503         (expand_fix): Be prepared for expansion to fail.
504         (expand_sfix_optab): Remove instructions if expansion failed.
505
506 2008-08-09  Anatoly Sokolov  <aesok@post.ru>
507
508         * config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to
509         avr31 architecture.
510         * config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.).
511         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
512
513 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
514
515         * config.gcc (mips*-*-linux*, mips64*-*-linux*): Add
516         mips/t-libgcc-mips16 to tmake_file.
517         * config/mips/mips-protos.h (mips_call_type): New enum.
518         (mips_pic_base_register, mips_got_load): Declare.
519         (mips_restore_gp): Take an rtx argument.
520         (mips_use_pic_fn_addr_reg_p): Declare.
521         (mips_expand_call): Replace the sibcall_p argument with
522         a mips_call_type argument.  Add a lazy_p parameter.
523         (mips_split_call): Declare.
524         * config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro.
525         (MIPS16_PIC_TEMP): Likewise.
526         (reg_class): Delete M16_NA_REGS.
527         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
528         (SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros.
529         (mips_split_hi_p): Declare.
530         * config/mips/mips.c (mips_split_hi_p): New array.
531         (mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS.
532         (mips_got_symbol_type_p): New function.
533         (mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P.
534         (mips16_stub_function_p): New function.
535         (mips16_local_function_p): Likewise.
536         (mips_use_pic_fn_addr_reg_p): Likewise.
537         (mips_cannot_force_const_mem): Return false for HIGHs.
538         Extend CONST_INT and symbolic handling to MIPS16, using
539         mips_symbol_insns to check that the base symbol type is a
540         legitimate constant.  Reject GOT-based constants if
541         TARGET_MIPS16_PCREL_LOADS.
542         (mips_const_insns): Check targetm.cannot_force_const_mem when
543         decomposing a symbolic base and a large offset.
544         (mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters.
545         When calling a function that needs $25 from MIPS16 code,
546         move the target address into $25 separately and add a USE
547         to the call insn.
548         (mips16_gp_pseudo_reg): Insert the initializer immediately
549         before the first real insn.
550         (mips_pic_base_register, mips_got_load): New functions.
551         (mips_split_symbol): Generalize the name of the LO_SUM_OUT
552         parameter to LOW_OUT.  Say that it can be any valid SET_SRC
553         when splitting a load-address operation.  Split SYMBOL_GOT_DISP
554         constants and highs of SYMBOL_GOT_PAGE_OFST constants.
555         (mips_call_tls_get_addr): Update the call to mips_expand_call,
556         also passing NULL_RTX rather than const0_rtx as the aux argument.
557         (mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p
558         instead of TARGET_EXPLICIT_RELOCS.
559         (mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P.
560         (mips_load_call_address): Replace the sibcall_p argument with
561         a mips_call_type argument.  Use mips_got_load.
562         (mips16_local_alias): New structure.
563         (mips16_local_aliases): New variable.
564         (mips16_local_aliases_hash): New function.
565         (mips16_local_aliases_eq): Likewise.
566         (mips16_local_alias): Likewise.
567         (mips16_stub_function): Likewise.
568         (mips16_build_function_stub): Create a local alias for the target
569         function.  Handle TARGET_ABICALLS.  For PIC abicalls, emit a
570         .cpload directive and an R_MIPS_NONE relocation for the target
571         function, then load the alias rather than the function itself.
572         Wrap the non-PIC abicalls version in ".option pic0/.option pic2".
573         (mips16_copy_fpr_return_value): Use mips16_stub_function and
574         mips_expand_call.  Set SYMBOL_REF_BIND_NOW on the symbol.
575         (mips16_build_call_stub): Replace the FN parameter with an
576         FN_PTR parameter.  Force the address into a register if it
577         isn't a call_insn_operand; don't rely on the caller to do this.
578         If a call to a locally-defined and locally-binding MIPS16
579         function must be made indirectly, redirect the call to the
580         function's local alias.  Use mips16_stub_function_p,
581         mips16_stub_function, mips_expand_call and use_reg.
582         Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols.
583         Use explicit %hi and %lo accesses where possible.
584         Use MIPS_CALL to generate the correct code form of a
585         jal instruction.  Add clobbers of $18 instead of uses.
586         Update the call to mips_emit_call_insn.
587         (mips_expand_call): Replace the SIBCALL_P argument with a
588         mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value.
589         Take a LAZY_P parameter.  Call mips16_build_call_stub first,
590         allowing it to modify the call address.  Update the calls to
591         mips_load_call_address and mips_emit_call_insn.
592         (mips_split_call): New function.
593         (mips_init_relocs): Clear mips_split_hi_p.  Only use %gp_rel if
594         !TARGET_MIPS16.  Split SYMBOL_GOT_DISP, and the high parts of
595         SYMBOL_GOT_PAGE_OFST, for MIPS16 code.
596         (mips_global_pointer): Check mips16_cfun_returns_in_fpr_p.
597         (mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM
598         if TARGET_MIPS16.
599         (mips_cprestore_slot): New function.
600         (mips_restore_gp): Take a TEMP parameter.  Handle TARGET_MIPS16
601         and use mips_cprestore_slot.
602         (mips_output_function_prologue): Handle TARGET_MIPS16 for
603         LOADGP_OLDABI.
604         (mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16,
605         then use a copygp_mips16 instruction to set up $28.
606         (mips_expand_prologue): Initialize the cprestore slot for MIPS16 too.
607         (mips16_lay_out_constants): Call split_all_insns_noflow.
608         (mips_reorg_process_insns): Explicitly set all_noreorder_p to
609         false if TARGET_MIPS16.
610         (mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16.
611         (mips_output_mi_thunk): Use mips_got_symbol_type_p.  Use the
612         mips_dangerous_for_la25_p approach for MIPS16 PIC calls too.
613         (mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for
614         MIPS16 code.  Allow MIPS16 o32 PIC.
615         (mips_override_options): Allow MIPS16 o32 PIC.
616         * config/mips/mips.md: Lower CONST_GP_P moves into register moves
617         after reload if TARGET_USE_GOT.
618         (UNSPEC_COPYGP): New constant.
619         (length): Use a default length of 8 for MIPS16 GOT loads.
620         (*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT.
621         (*got_page<mode>): Check mips_split_hi_p.
622         (*got_disp<mode>, *got_page<mode>): Use mips_got_load.
623         (unspec_got<mode>, unspec_call<mode>): New expanders.
624         (load_got<mode>, load_call<mode>): Remove the length attributes.
625         Use a got attribute instead of a type attribute.
626         (copygp_mips16): New insn.
627         (restore_gp): Add a scratch clobber and pass it to mips_restore_gp.
628         (load_call<mode>): Use a "d" constraint instead of an "r" constraint.
629         (sibcall, sibcall_value, call, call_value): Update the calls
630         to mips_expand_call.
631         (call_internal, call_value_internal): Use mips_split_call.
632         (call_value_multiple_internal): Likewise.
633         (call_split): Move after call_internal (the insn it is split from).
634         (call_internal_direct, call_value_internal_direct): Turn into
635         define_insn_and_splits.  Split if TARGET_SPLIT_CALLS.
636         (call_direct_split, call_value_direct_split): New patterns.
637         * config/mips/constraints.md (c): Handle TARGET_MIPS16 first
638         and use M16_REGS instead of M16_NA_REGS.
639         * config/mips/predicates.md (const_call_insn_operand): Replace
640         the TARGET_ABSOLUTE_ABICALLS-based check with a more general
641         mips_use_pic_fn_addr_reg_p check.
642         (move_operand): Reject HIGHs if mips_split_hi_p.
643         * config/mips/mips16.S: Assembly as empty if the ABI is not suitable.
644         (__mips16_floatunsisf): Inline __mips16_floatsisf.
645         (CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25.
646         * config/mips/libgcc-mips16.ver: New file.
647         * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add
648         $(srcdir)/config/mips/libgcc-mips16.ver.
649
650 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
651
652         * config/mips/mips.c (mips_unspec_address_offset): Move earlier in file.
653         (mips_unspec_address, mips_unspec_offset_high): Likewise.
654         (mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise.
655         (mips16_cfun_returns_in_fpr_p): Likewise.
656
657 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
658
659         * config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary.
660         * config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2
661         rather than 4 to PC.
662
663 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
664
665         * config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
666         (FUNCTION_PROFILER): Save the static chain pointer into $2
667         beforehand and restore it aftewards.
668         (TRAMPOLINE_TEMPLATE): Adjust accordingly.  Load the target
669         address directly into $25 and call the function through $25;
670         do not clobber $3.  Pad the DImode version to cover the space
671         left by the deleted $25 <- $3 move.
672         (TRAMPOLINE_SIZE): Adjust the size of the SImode version after
673         the removal of the $25 <- $3 move.
674         (INITIALIZE_TRAMPOLINE): Update offsets accordingly.
675         * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
676
677 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
678             Daniel Jacobowitz  <dan@codesourcery.com>
679
680         * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete.
681         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete.
682         (ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete.
683         * config/mips/mips.c (mips_start_function_definition): New function.
684         (mips_end_function_definition): Likewise.
685         (mips_output_function_prologue): Use mips_start_function_definition.
686         (mips_output_function_epilogue): Use mips_end_function_definition.
687         (build_mips16_function_stub): Use mips_start_function_definition
688         and mips_end_function_definition.
689         (build_mips16_call_stub): Likewise.
690
691 2008-08-09  Richard Guenther  <rguenther@suse.de>
692
693         * gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
694         * gimple.h (gimple_call_fn): Adjust comment.
695         (gimple_call_set_fndecl): New function.
696         (gimple_call_fndecl): Adjust for GIMPLE_CALL no
697         longer having bare FUNCTION_DECL operand.
698         (gimple_call_return_type): Likewise.
699         * tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL.
700
701         * value-prof.c (gimple_divmod_fixed_value): Do not emit labels.
702         (gimple_mod_pow2): Likewise.
703         (gimple_mod_subtract): Likewise.
704         (gimple_ic): Likewise.
705         (gimple_stringop_fixed_value): Likewise.
706         (gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no
707         longer having bare FUNCTION_DECL operand.
708         * ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl.
709         * omp-low.c (optimize_omp_library_calls): Likewise.
710         * cgraphunit.c (update_call_expr): Likewise.
711         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
712         (execute_convert_to_rsqrt): Likewise.
713         * cfgexpand.c (gimple_to_tree): Simplify.
714         (release_stmt_tree): Fix for GIMPLE_CALL no longer having
715         bare FUNCTION_DECL operand.
716         * tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type.
717         (convert_gimple_call): Use gimple_call_fndecl.
718         * c-common.c (c_warn_unused_result): Likewise.
719
720 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
721
722         PR c/17880
723         * c-typeck.c (digest_init): Call verify_sequence_points from here.
724         (c_finish_return): Likewise.
725         (c_start_case): Likewise.
726         * c-common.c (warn_for_collisions_1): Use explicit location in
727         warning.
728         * c-parser.c (c_parser_condition): New. Call
729         verify_sequence_points.
730         (c_parser_paren_condition): Call c_parser_condition.
731         (c_parser_for_statement): Call c_parser_condition.
732
733 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
734
735         PR 36901
736         * diagnostic.def (DK_PEDWARN, DK_PERMERROR): New.  
737         * diagnostic.c (pedantic_warning_kind, permissive_error_kind):
738         Moved from diagnostic.h
739         (diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and
740         DK_PERMERROR.
741         (emit_diagnostic): New.
742         (warning0, pedwarn0): Delete.
743         (warning, warning_at, pedwarn, permerror): Return bool.  
744         * diagnostic.h (pedantic_warning_kind, permissive_error_kind):
745         Moved to diagnostic.c.
746         (struct diagnostic_context): Use correct type for
747         classify_diagnostic.
748         (diagnostic_report_diagnostic): Update declaration.
749         (emit_diagnostic): Declare.
750         * errors.c (warning): Return bool.  
751         * errors.h (warning): Update declaration.
752         * toplev.h (warning0, pedwarn0): Delete.
753         (warning, warning_at, pedwarn, permerror): Return bool.
754         * c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN.
755         * c-decl.c (locate_old_decl): Delete 'diag' argument. Always use
756         inform. Update all calls.
757         (diagnose_mismatched_decls): Check return value of warning/pedwarn
758         before giving informative note.
759         (implicit_decl_warning): Likewise.  
760         * c-typeck.c (build_function_call): Likewise.  
761         * tree-sssa.c (warn_uninit): Likewise.  
762         * builtins.c (gimplify_va_arg_expr): Likewise.
763
764 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
765
766         PR 7651
767         * doc/invoke.texi (-Wextra): Move warning from here...
768         (-Wuninitialized): ... to here.
769         
770 2008-08-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
771
772         PR 28875
773         * flags.h (set_Wunused): Delete
774         * toplev.c (process_options): Handle Wunused flags here.
775         * opts.c (maybe_warn_unused_parameter): Delete.
776         (common_handle_option): Replace set_Wunused by warn_unused.
777         (set_Wextra): Do not handle Wunused-parameter here.
778         (set_Wunused): Delete.
779         * c-opts.c (c_common_handle_option): Replace set_Wunused by
780         warn_unused.
781         * common.opt (Wunused): Add Var and Init.
782         (Wunused-function): Likewise.
783         (Wunused-label): Likewise.
784         (Wunused-parameter): Likewise.
785         (Wunused-value): Likewise.
786         (Wunused-variable): Likewise.
787         
788 2008-08-08  Peter Bergner  <bergner@vnet.ibm.com>
789
790         * doc/invoke.texi: Add cpu_type power7.
791         * config.in (HAVE_AS_VSX): New.
792         * config.gcc: Add cpu_type power7.
793         * configure.ac (HAVE_AS_VSX): Check for assembler support of the
794         VSX instructions.
795         * configure: Regenerate.
796         * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to
797         power5.
798         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define.
799         (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7.
800         (EXTRA_SPECS): Add asm_cpu_power7 spec string.
801
802 2008-08-08  Dorit Nuzman  <dorit@il.ibm.com>
803
804         * tree-vect-transform.c (vectorizable_conversion): Pass the integral
805         type to vectorize.builtin_conversion.
806         (vectorizable_conversion): Likewise.
807         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes
808         integral type as input.
809         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
810         FIX_TRUNC_EXPR.
811         (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS
812         and ALTIVEC_BUILTIN_VCTSXS.
813         (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix
814         formatting. 
815
816 2008-08-08  Richard Guenther  <rguenther@suse.de>
817
818         * tree-ssa-ccp.c (likely_value): Calls are not all varying.
819         (surely_varying_stmt_p): Calls are varying only if they are
820         non-builtin and not indirect or have no result.
821         (ccp_fold): Re-instantiate code before the tuples merge.
822
823 2008-08-08  Richard Guenther  <rguenther@suse.de>
824
825         PR tree-optimization/37056
826         * gimple.h (gimple_assign_rhs_class): New helper function.
827         * tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle
828         unary operations properly.
829
830 2008-08-07  Jan Hubicka  <jh@suse.cz>
831
832         * i386.h (ix86_size_cost): Declare.
833         (ix86_cur_cost): New function macro.
834         * i386.md (peepholes expanding size and splitters): Predicate by
835         optimize_insn_for_speed_p.
836         (peepholes reduce size and splitters): Predicate by
837         optimize_insn_for_size_p.
838         * i386.c (ix86_size_cost): Rename from ...
839         (size_cost): This one.
840         (override_options): Update.
841         (decide_alg): Likewise.
842         (ix86_expand_clear): Use RTL profile.
843         (ix86_pad_returns): Use RTL profile.
844
845 2008-08-07  Jan Hubicka  <jh@suse.cz>
846
847         * recog.c (split_all_insns): Set RTL profile
848         (peephole2_optimize): Likewise.
849         * function.c (thread_prologue_and_epilogue_insns): Likewise.
850         * combine.c (combine_instructions): Likewise.
851
852 2008-08-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
853
854         * c-common.c (c_common_reswords): Also warn about keyword "bool".
855
856 2008-08-07  Bob Wilson  <bob.wilson@acm.org>
857         
858         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming
859         value in a6 after the set_frame_ptr insn.
860         
861 2008-08-07  Richard Henderson  <rth@redhat.com>
862
863         PR debug/37033
864         * gcc.c (cpp_options): Pass along -g*.
865
866 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
867
868         * config/arm/arm.c (output_move_neon): Update comment describing
869         big-endian vector layout.
870         (arm_assemble_integer): Do not handle big-endian NEON vectors
871         specially.
872         * config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>,
873         neon_vget_lane<mode>_sext_internal,
874         neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust
875         element indices for big-endian.
876
877 2008-08-07  Richard Henderson  <rth@redhat.com>
878
879         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New.
880         * configure, config.in: Rebuild.
881         * debug.h (dwarf2out_do_cfi_asm): Declare.
882         * c-cppbuiltin.c (c_cpp_builtins): Use it.
883         * dwarf2out.c (dwarf2out_do_cfi_asm): New.
884         (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info,
885         dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it.
886
887 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
888
889         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
890         movv2si_internal): Combine into mov<mode>_internal.
891         (movv2si_internal_2): Remove.
892
893 2008-08-07  Jan Hubicka  <jh@suse.cz>
894
895         PR target/37048
896         * i386.md (single stringop patterns): Enable unconditionally. 
897
898 2008-08-07  H.J. Lu  <hongjiu.lu@intel.com>
899
900         PR target/36992
901         * config/i386/emmintrin.h (_mm_move_epi64): Use
902         __builtin_ia32_movq128.
903
904         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128.
905         (bdesc_args): Add IX86_BUILTIN_MOVQ128.
906
907         * config/i386/sse.md (sse2_movq128): New.
908
909         * doc/extend.texi: Document __builtin_ia32_movq128.
910
911 2008-08-07  Richard Guenther  <rguenther@suse.de>
912
913         PR middle-end/37042
914         * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all
915         pointers can access anything.
916
917 2008-08-06  Jan Hubicka  <jh@suse.cz>
918
919         * optabs.c (emit_unop_insn): Break out to ...
920         (maybe_emit_unop_insn): ... this one.
921         (expand_sfix_optab): Use maybe variant.
922         * optabs.h (maybe_emit_unop_insn): Declare.
923
924         * i386.md (mov0 patterns): Enable by default.
925         (FP conversion expanders): Disable expansion of code expanding
926         sequences when instruction should be optimized for size.
927         (single strinop patterns): Enable when optimizing for size.
928         (string expanders): Disable expanding of code expanding sequences
929         when optimizning instruction for size.
930         * i386.c (ix86_expand_vector_move_misalign): Do code size optimization
931         per BB basis.
932         (ix86_fp_comparison_sahf_cost): Likewise.
933         (ix86_expand_branch): Likewise.
934         (ix86_expand_ashl_const): Likewise.
935         (ix86_split_ashl): Likewise.
936         (ix86_expand_strlen): Likewise.
937         (ix86_emit_fp_unordered_jump): Likewie.
938
939 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
940
941         * c-common.c: Fix typo.
942         (c_common_reswords): Activate more C++ keyword warnings.
943
944         * matrix-reorg.c (compute_offset): Avoid C++ keywords.
945
946 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
947
948         PR 26785
949         * diagnostic.c (permerror_at): New.
950         * toplev.h (permerror_at): Declare.
951         
952 2008-08-06  Victor Kaplansky  <victork@il.ibm.com>
953             Ira Rosen  <irar@il.ibm.com>
954
955         * tree-vect-transform.c (vect_model_simple_cost): Return
956         immediately if stmt is pure SLP.
957         (vect_model_store_cost): Ditto.
958         (vect_model_load_cost): Ditto.
959         (vectorizable_store): Remove PURE_SLP check before call
960         to vect_model_store_cost.
961         (vect_model_store_cost): When checking whether stmt describe
962         strided access, add a check that it is not slp_node.
963
964 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
965
966         PR 8715
967         * c-common.c (warn_for_sign_compare): New. Handle separately the
968         case that 'constant' is zero.
969         * c-typeck.c (build_binary_op): Move code to c-common.c
970         
971 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
972
973         * config/alpha/alpha.c (alpha_preferred_reload_class,
974         alpha_secondary_reload, alpha_emit_set_const_1, function_value,
975         alpha_output_mi_thunk_osf): Avoid C++ keywords.
976         * config/arm/arm.c (output_move_vfp, output_move_neon): Likewise.
977         * config/arm/arm.md: Likewise.
978         * config/avr/avr-protos.h (preferred_reload_class,
979         test_hard_reg_class, avr_simplify_comparison_p,
980         out_shift_with_cnt, class_max_nregs): Likewise.
981         * config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p,
982         output_movqi, output_movhi, output_movsisf, out_shift_with_cnt,
983         preferred_reload_class, test_hard_reg_class): Likewise.
984         * config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok,
985         bfin_memory_move_cost, bfin_secondary_reload,
986         bfin_output_mi_thunk): Likewise.
987         * config/crx/crx.c (crx_secondary_reload_class,
988         crx_memory_move_cost): Likewise.
989         * config/frv/frv-protos.h (frv_secondary_reload_class,
990         frv_class_likely_spilled_p, frv_class_max_nregs): Likewise.
991         * config/frv/frv.c (frv_override_options, frv_alloc_temp_reg,
992         frv_secondary_reload_class, frv_class_likely_spilled_p,
993         frv_class_max_nregs): Likewise.
994         * config/h8300/h8300.c (h8300_classify_operand,
995         h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count):
996         Likewise.
997         * config/i386/winnt.c (i386_pe_declare_function_type): Likewise.
998         * config/ia64/ia64.c (ia64_preferred_reload_class,
999         ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise.
1000         * config/iq2000/iq2000.c (gen_int_relational): Likewise.
1001         * config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare):
1002         Likewise.
1003         * config/m68hc11/m68hc11.c (preferred_reload_class,
1004         m68hc11_memory_move_cost): Likewise.
1005         * config/mcore/mcore.c (mcore_secondary_reload_class,
1006         mcore_reload_class): Likewise.
1007         * config/mips/mips.c (mips_hard_regno_mode_ok_p,
1008         mips_class_max_nregs, mips_cannot_change_mode_class,
1009         mips_preferred_reload_class, mips_secondary_reload_class,
1010         mips_output_mi_thunk): Likewise.
1011         * config/mmix/mmix.c (mmix_preferred_reload_class,
1012         mmix_preferred_output_reload_class, mmix_secondary_reload_class):
1013         Likewise.
1014         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
1015         Likewise.
1016         * config/pa/pa.c (pa_secondary_reload, pa_combine_instructions,
1017         pa_can_combine_p, pa_cannot_change_mode_class): Likewise.
1018         * config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
1019         * config/rs6000/rs6000.c (paired_expand_vector_init,
1020         rs6000_secondary_reload_class, rs6000_output_mi_thunk,
1021         compare_section_name, rs6000_memory_move_cost): Likewise.
1022         * config/s390/s390.c (s390_emit_compare_and_swap,
1023         s390_preferred_reload_class, s390_secondary_reload,
1024         legitimize_pic_address, legitimize_tls_address,
1025         legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic,
1026         s390_class_max_nregs): Likewise.
1027         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
1028         * config/s390/s390.md: Likewise.
1029         * config/score/score-protos.h (score_secondary_reload_class,
1030         score_preferred_reload_class): Likewise.
1031         * config/score/score.c (score_preferred_reload_class,
1032         score_secondary_reload_class): Likewise.
1033         * config/score/score3.c (score3_output_mi_thunk,
1034         score3_preferred_reload_class, score3_secondary_reload_class,
1035         score3_hard_regno_mode_ok): Likewise.
1036         * config/score/score3.h (score3_preferred_reload_class,
1037         score3_secondary_reload_class): Likewise.
1038         * config/score/score7.c (score7_output_mi_thunk,
1039         score7_preferred_reload_class, score7_secondary_reload_class,
1040         score7_hard_regno_mode_ok): Likewise.
1041         * config/score/score7.h (score7_preferred_reload_class,
1042         score7_secondary_reload_class): Likewise.
1043         * config/sh/sh.c (prepare_move_operands, output_far_jump,
1044         output_branchy_insn, add_constant, gen_block_redirect,
1045         sh_insn_length_adjustment, sh_cannot_change_mode_class,
1046         sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload):
1047         Likewise.
1048         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
1049         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
1050         xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
1051         xstormy16_preferred_reload_class): Likewise.
1052         * config/xtensa/xtensa.c (xtensa_expand_compare_and_swap,
1053         xtensa_expand_atomic, override_options,
1054         xtensa_preferred_reload_class, xtensa_secondary_reload_class):
1055         Likewise.
1056         * reorg.c (try_merge_delay_insns): Likewise.
1057         * tree.c (merge_dllimport_decl_attributes): Likewise.
1058
1059         * config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA.
1060
1061 2008-08-06  Michael Matz  <matz@suse.de>
1062
1063         * Makefile.in (write_entries_to_file): Quote words.
1064         * gengtype.c: (read_input_line): Skip over leading white-space.
1065
1066 2008-08-06  Marc Gauthier  <marc@tensilica.com>
1067
1068         * config.gcc: Match more processor names for Xtensa.
1069         * configure.ac: Likewise.
1070         * doc/install.texi (Specific): Likewise.
1071         * configure: Regenerate.
1072
1073 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1074
1075         * builtins.c (expand_builtin_profile_func): Avoid C++ keywords.
1076         * calls.c (avoid_likely_spilled_reg): Likewise.
1077         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
1078         * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise.
1079         * config/i386/i386.c (ix86_expand_special_args_builtin,
1080         ix86_secondary_reload): Likewise.
1081         * except.c (struct eh_region, gen_eh_region_catch,
1082         remove_unreachable_regions, duplicate_eh_regions,
1083         assign_filter_values, build_post_landing_pads,
1084         sjlj_find_directly_reachable_regions, remove_eh_handler,
1085         reachable_next_level, foreach_reachable_handler,
1086         can_throw_internal_1, can_throw_external_1,
1087         collect_one_action_chain): Likewise.
1088         * expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise.
1089         * fold-const.c (twoval_comparison_p, eval_subst): Likewise.
1090         * function.c (update_temp_slot_address, instantiate_new_reg,
1091         instantiate_virtual_regs_in_rtx,
1092         instantiate_virtual_regs_in_insn): Likewise.
1093         * gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise.
1094         * gimplify.c (gimplify_call_expr, gimplify_init_constructor,
1095         gimplify_cleanup_point_expr): Likewise.
1096         * ipa-cp.c (ipcp_lattice_changed): Likewise.
1097         * passes.c (next_pass_1): Likewise.
1098         * print-tree.c (print_node_brief, print_node): Likewise.
1099         * profile.c (branch_prob): Likewise.
1100         * tree-dump.c (dump_register): Likewise.
1101         * tree-eh.c (replace_goto_queue_cond_clause, lower_catch):
1102         Likewise.
1103         * tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks,
1104         copy_statement_list, remap_gimple_op_r, copy_tree_body_r,
1105         copy_edges_for_bb, copy_cfg_body, copy_tree_r,
1106         copy_arguments_for_versioning, copy_static_chain): Likewise.
1107         * tree-into-ssa.c (names_replaced_by, add_to_repl_tbl,
1108         add_new_name_mapping, register_new_name_mapping): Likewise.
1109         * tree-mudflap.c (mf_xform_derefs): Likewise.
1110         * tree-predcom.c (struct chain, dump_chain, replace_ref_with,
1111         get_init_expr, combine_chains): Likewise.
1112         * tree-pretty-print.c (dump_generic_node): Likewise.
1113         * tree-ssa-structalias.c (create_variable_info_for): Likewise.
1114         * tree-vrp.c (simplify_cond_using_ranges): Likewise.
1115         * tree.c (substitute_in_expr, iterative_hash_expr): Likewise.
1116         * value-prof.c (gimple_duplicate_stmt_histograms): Likewise.
1117
1118 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
1119
1120         PR middle-end/37010
1121         * calls.c (expand_call): Use the biggest preferred stack
1122         boundary.
1123
1124 2008-08-06  Michael Matz  <matz@suse.de>
1125
1126         PR target/36613
1127         * reload.c (push_reload): Merge in,out,in_reg,out_reg members
1128         for reused reload, instead of overwriting them.
1129
1130 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
1131
1132         PR middle-end/37009
1133         * cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary
1134         for incoming stack boundary.
1135
1136         * function.c (assign_parm_find_entry_rtl): Update
1137         parm_stack_boundary.
1138
1139         * function.h (rtl_data): Add parm_stack_boundary.
1140
1141         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Check
1142         parm_stack_boundary for incoming stack boundary.
1143
1144 2008-08-06  Joseph Myers  <joseph@codesourcery.com>
1145
1146         * jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset
1147         for unrepresentable subregs or treat them as equal to other regs
1148         or subregs with the same register number.
1149
1150 2008-08-06  Aldy Hernandez  <aldyh@redhat.com>
1151
1152         PR middle-end/35432
1153         * gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types
1154         if want_value.
1155
1156 2008-08-06  Jan Hubicka  <jh@suse.cz>
1157
1158         * predict.c (maybe_hot_frequency_p): When profile is absent, all
1159         frequencies might be hot.
1160
1161 2008-08-06  Andreas Krebbel  <krebbel1@de.ibm.com>
1162
1163         * reload.c (find_reloads): Force constants into literal pool
1164         also if they are wrapped in a SUBREG.
1165
1166 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
1167
1168         PR target/35659
1169         * haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ...
1170         * sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here.
1171         Don't allow predicated instructions for data speculation.
1172         * sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move
1173         declaration.
1174
1175 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
1176
1177         * haifa-sched.c (extend_global): Split to extend_global_data and
1178         extend_region_data.  Update all uses.
1179         (extend_all): Rename to extend_block_data.
1180
1181 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
1182
1183         * sched-rgn.c (new_ready): Check if instruction can be
1184         speculatively scheduled before attempting speculation.
1185         (debug_rgn_dependencies): Remove wrongful assert.
1186
1187 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
1188
1189         * config/xtensa/t-xtensa: Remove dependency for gt-xtensa.h.
1190         
1191 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
1192         
1193         * config/xtensa/xtensa.c (xtensa_va_start): Unshare valist.
1194         (xtensa_gimplify_va_arg_expr): Unshare valist, orig_ndx, ndx, array,
1195         va_size, and type_size.
1196         
1197 2008-08-04  Jason Merrill  <jason@redhat.com>
1198
1199         PR c++/37016
1200         * tree-ssa.c (useless_type_conversion_p_1): Call langhook
1201         if TYPE_STRUCTURAL_EQUALITY_P is true for both types.
1202
1203 2008-08-05  Richard Henderson  <rth@redhat.com>
1204
1205         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Check .cfi_personality.
1206         * configure: Rebuild.
1207
1208 2008-08-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1209
1210         PR tree-opt/37024
1211         * tree-tailcall.c (process_assignment): Use gimple_assign_cast_p
1212         instead of IS_CONVERT_EXPR_CODE_P for seeing if the assignment
1213         is a conversion.
1214
1215 2008-08-05  Richard Henderson  <rth@redhat.com>
1216
1217         * Makefile.in (c-cppbuiltin.o): Depend on debug.h.
1218         * c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM.
1219         * doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it.
1220         * common.opt (fdwarf2-cfi-asm): New.
1221         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): New.
1222         * config.in, configure: Rebuild.
1223         * dwarf2asm.c (dw2_asm_output_data_raw): New.
1224         (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw): New.
1225         (dw2_force_const_mem): Externalize.
1226         * dwarf2asm.h: Update.
1227         * dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't
1228         generate a real label.
1229         (output_cfi_directive): New.
1230         (add_fde_cfi): If flag_dwarf2_cfi_asm, use it.
1231         (output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm.
1232         (dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality,
1233         and .cfi_lsda.
1234         (dwarf2out_end_epilogue): Emit .cfi_endproc.
1235         (output_loc_operands_raw, output_loc_sequence_raw): New.
1236         (output_cfa_loc_raw): New.
1237         
1238 2008-08-05  Paul Brook  <paul@codesourcery.com>
1239
1240         * doc/invoke.texi: Document new ARM -mfpu= and -mcpu= options.
1241         * config/arm/arm.c (all_fpus): Add vfpv3 and vfpv3-d16.
1242         (fp_model_for_fpu): Add entry for FPUTYPE_VFP3D16.
1243         (arm_file_start): Add FPUTYPE_VFP3D16.  Rename vfp3 to vfpv3.
1244         * config/arm/arm.h (TARGET_VFPD32): Define.
1245         (TARGET_VFP3): Use TARGET_VFPD32.
1246         (fputype): Add FPUTYPE_VFP3D16.
1247         (LAST_VFP_REGNUM): Use TARGET_VFPD32.
1248         * config/arm/constraints.md ("w"): Use TARGET_VFPD32.
1249         * config/arm/arm-cores.def: Add cortex-r4f.
1250         * config/arm/arm-tune.md: Regenerate.
1251
1252 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1253
1254         * config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus.
1255         Reword some comments throughout the file.
1256
1257         (MFC_MIN_DMA_LIST_ELEMENTS): New define.
1258         (MFC_MAX_DMA_LIST_ELEMENTS): Likewise.
1259         (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of MFC_MIN_DMA_LIST_ELEMENTS.
1260         (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of MFC_MAX_DMA_LIST_ELEMENTS.
1261
1262         (MFC_START_ENABLE): Remove PPU-only define.
1263         (MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise.
1264         (MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise.
1265
1266         (MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants.
1267         (MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise.
1268         (MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise.
1269         (MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise.
1270         (MFC_GETB_CMD, MFC_GETF_CMD): Likewise.
1271         (MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise.
1272         (MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise.
1273
1274         (MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines.
1275         (MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise.
1276         (mfc_sdcrt, mfc_sdcrtst): Likewise.
1277         (mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise.
1278
1279         (spu_read_machine_status): Fix typo.
1280
1281 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1282
1283         * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized
1284         SUBREG of multi-word hard register.
1285         * config/spu/spu.c (valid_subreg): Likewise.
1286         (adjust_operand): Handle SUBREGs of multi-word hard registers.
1287
1288 2008-08-04  Richard Guenther  <rguenther@suse.de>
1289
1290         * tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add
1291         the candidate with the stripped base if that base is different
1292         from the original base even for offset zero.
1293
1294 2008-08-04  Richard Guenther  <rguenther@suse.de>
1295
1296         PR middle-end/36691
1297         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly
1298         check for no_overflow.
1299
1300 2008-08-04  Richard Guenther  <rguenther@suse.de>
1301
1302         * tree-vect-transform.c (vectorizable_call): Fix tuplification.
1303
1304 2008-08-04  Paul Brook  <paul@codesourcery.com>
1305
1306         * cofig/arm/arm.c (thumb_core_reg_alloc_order): New.
1307         (arm_order_regs_for_local_alloc): New function.
1308         * config/arm/arm-protos.h (arm_order_regs_for_local_alloc): Add
1309         prototype.
1310         * config/arm/arm.h (ORDER_REGS_FOR_LOCAL_ALLOC): Define.
1311
1312 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
1313
1314         PR target/37012
1315         * config/i386/i386.c (ix86_expand_prologue): Use UNITS_PER_WORD
1316         instead of STACK_BOUNDARY / BITS_PER_UNIT to align stack.
1317         (ix86_expand_epilogue): Likewise.
1318
1319 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
1320
1321         * config/i386/i386.c (ix86_compute_frame_layout): Fix a typo
1322         in comments.
1323
1324 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
1325
1326         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x
1327         to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES.
1328         (*movv2sf_internal_rex64): Ditto.
1329
1330 2008-08-03  Jan Hubicka  <jh@suse.cz>
1331
1332         * optabs.c (expand_binop, expand_builtin_pow, expand_builtin_powi,
1333         expand_builtin_strcat): Upse optimize_insn_for_speed predicate.
1334         * expmed.c (expand_smod_pow2): Likewise.
1335
1336 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
1337
1338         PR target/36992
1339         * config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
1340         alternative 0 of operand 1.
1341         (*vec_concatv2di_rex64_sse): Ditto.
1342         (*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
1343         of operand 1.
1344         (*sse2_storeq_rex64): Penalize allocation of "r" registers.
1345         * config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation
1346         of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
1347         (*movv2sf_internal_rex64): Ditto.
1348
1349 2008-08-02  Richard Guenther  <rguenther@suse.de>
1350
1351         PR target/35252
1352         * config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators.
1353         (ssedoublesizemode): New mode attribute.
1354         (sse_shufps): Call gen_sse_shufps_v4sf.
1355         (sse_shufps_1): Macroize.
1356         (sse2_shufpd): Call gen_Sse_shufpd_v2df.
1357         (sse2_shufpd_1): Macroize.
1358         (vec_extract_odd, vec_extract_even): New expanders.
1359         (vec_interleave_highv4sf, vec_interleave_lowv4sf,
1360         vec_interleave_highv2df, vec_interleave_lowv2df): Likewise.
1361         * i386.c (ix86_expand_vector_init_one_nonzero): Call
1362         gen_sse_shufps_v4sf instead of gen_sse_shufps_1.
1363         (ix86_expand_vector_set): Likewise.
1364         (ix86_expand_reduc_v4sf): Likewise.
1365
1366 2008-08-01  Doug Kwan  <dougkwan@google.com>
1367
1368         * matrix-reorg.c: Re-enable all code.
1369         (struct malloc_call_data): Change CALL_STMT to gimple type.
1370         (collect_data_for_malloc_call): Tuplify.
1371         (struct access_site_info): Change STMT to gimple type.
1372         (struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT,
1373         and MALLOC_FOR_LEVEL to gimple and gimple pointer type.
1374         (struct free_info): Change STMT to gimple type.
1375         (struct matrix_access_phi_node):  Change PHI to gimple type.
1376         (get_inner_of_cast_expr): Remove.
1377         (may_flatten_matrices_1): Tuplify.
1378         (may_flatten_matrices): Ditto.
1379         (mark_min_matrix_escape_level): Ditto.
1380         (ssa_accessed_in_tree): Refactor statement RHS related code into ...
1381         (ssa_accessed_in_call_rhs): New
1382         (ssa_accessed_in_assign_rhs): New
1383         (record_access_alloc_site_info): Tuplify.
1384         (add_allocation_site): Ditto.
1385         (analyze_matrix_allocation_site): Ditto.
1386         (analyze_transpose): Ditto.
1387         (get_index_from_offset): Ditto.
1388         (update_type_size): Ditto.
1389         (analyze_accesses_for_call_expr): Tuplify and renamed into ...
1390         (analyze_accesses_for_call_stmt): New. Also handle LHS of a call.
1391         (analyze_accesses_for_phi_node): Tuplify.
1392         (analyze_accesses_for_modify_stmt): Tuplify and renamed into ...
1393         (analyze_accesses_for_assign_stmt): Remove code for handling call LHS.
1394         (analyze_matrix_accesses): Tuplify.
1395         (check_var_data): New call-back type for check_var_notmodified_p.
1396         (check_var_notmodified_p): Tuplify and use call-back struct to
1397         return statement found.
1398         (can_calculate_expr_before_stmt): Factor out statement related code
1399         into ...
1400         (can_calculate_stmt_before_stmt): New.
1401         (check_allocation_function): Tuplify.
1402         (find_sites_in_func): Ditto.
1403         (record_all_accesses_in_func): Ditto.
1404         (transform_access_sites): Ditto.
1405         (transform_allocation_sites): Ditto.
1406         (matrix_reorg): Re-enable.
1407         (gate_matrix_reorg): Re-enable.
1408
1409 2008-08-01  Jakub Jelinek  <jakub@redhat.com>
1410
1411         * dwarf2out.c (compute_barrier_args_size): Set barrier_args_size
1412         for labels for which it hasn't been set yet.  If it has been set,
1413         stop walking insns and continue with next worklist item.
1414         (dwarf2out_stack_adjust): Don't call compute_barrier_args_size
1415         if the only BARRIER is at the very end of a function.
1416
1417 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
1418
1419         * cfgexpand.c (expand_stack_alignment): Assert that
1420         stack_realign_drap and drap_rtx must match.
1421
1422         * function.c (instantiate_new_reg): If DRAP is used to realign
1423         stack, replace virtual_incoming_args_rtx with internal arg
1424         pointer.
1425
1426 2008-08-01  Richard Guenther  <rguenther@suse.de>
1427
1428         * tree-ssa-pre.c (fini_pre): Take in_fre parameter.  Free
1429         loop information only if we initialized it.
1430         (execute_pre): Call fini_pre with in_fre.
1431         * tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump
1432         if we do not unroll because we hit max-completely-peeled-insns.
1433         Use our estimation for consistency, do allow shrinking.
1434
1435 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
1436
1437         * config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY
1438         with MIN_STACK_BOUNDARY.
1439         (ix86_update_stack_boundary): Likewise.
1440         (ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of
1441         STACK_BOUNDARY.
1442
1443         * config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ...
1444         (MIN_STACK_BOUNDARY): This.
1445
1446 2008-08-01  Richard Guenther  <rguenther@suse.de>
1447
1448         PR middle-end/36997
1449         * gimplify.c (gimplify_call_expr): Set error_mark_node on GS_ERROR.
1450
1451 2008-08-01  Richard Guenther  <rguenther@suse.de>
1452
1453         PR tree-optimization/36988
1454         * tree-ssa-ccp.c (ccp_fold): Conversions of constants only
1455         do not matter if that doesn't change volatile qualification.
1456
1457 2008-08-01  Paolo Bonzini  <bonzini@gnu.org>
1458
1459         * configure.ac: Do not generate libada-mk.  Do not subst
1460         host_cc_for_libada.
1461         * libada-mk.in: Remove.
1462         * Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars.
1463         * configure: Regenerate.
1464
1465 2008-08-01  Basile Starynkevitch  <basile@starynkevitch.net>
1466
1467         * tree-pass.h: Added comment about not dumping passes with name
1468         starting with star in struct opt_pass.
1469         * passes.c (register_dump_files_1): Don't do dump for a pass with
1470         name starting with star.
1471         * doc/passes.texi (Pass manager): Mention pass names and special
1472         meaning of star prefix to avoid dump.
1473
1474 2008-07-31  Adam Nemet  <anemet@caviumnetworks.com>
1475
1476         * config.gcc (mipsisa64r2*-*-linux*): New configuration.  Set ISA
1477         to MIPS64r2.
1478         * config/mips/mips.h (GENERATE_MIPS16E): Update comment.
1479         (ISA_MIPS64R2): New macro.
1480         (TARGET_CPU_CPP_BUILTINS, MULTILIB_ISA_DEFAULT): Handle it.
1481         (ISA_HAS_64BIT_REGS, ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE,
1482         ISA_HAS_8CC, ISA_HAS_FP4, ISA_HAS_PAIRED_SINGLE,
1483         ISA_HAS_MADD_MSUB, ISA_HAS_NMADD4_NMSUB4, ISA_HAS_CLZ_CLO,
1484         ISA_HAS_ROR, ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX, ISA_HAS_SEB_SEH,
1485         ISA_HAS_EXT_INS, ISA_HAS_MXHC1, ISA_HAS_HILO_INTERLOCKS,
1486         ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Return true for ISA_MIPS64R2.
1487         (MIPS_ISA_LEVEL_SPEC, ASM_SPEC, LINK_SPEC): Handle -mips64r2.
1488         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF):
1489         Move up to keep list alphabetically sorted.
1490         (TUNE_20KC, TUNE_24K, TUNE_74K, TUNE_LOONGSON_2EF): Likewise.
1491         * config/mips/mips.c (mips_cpu_info_table): Add default MIPS64r2
1492         processor.
1493         * doc/invoke.texi (MIPS Options): Add -mips64r2.
1494         (-march=@var{arch}): Add mips64r2.
1495
1496 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
1497
1498         * config/i386/darwin.h (MAIN_STACK_BOUNDARY): Define to 128.
1499
1500 2008-07-31  Steve Ellcey  <sje@cup.hp.com>
1501
1502         * expr.c (expand_assignment): Check for complete type.
1503
1504 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
1505
1506         PR debug/36977
1507         * cfgexpand.c (expand_stack_alignment): Set stack_realign_tried.
1508
1509         * dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried
1510         for stack alignment.
1511
1512         * function.h (rtl_data): Add stack_realign_tried.  Update comments.
1513
1514 2008-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
1515
1516         * config/sh/sh.c (sh_canonical_va_list_type): Remove.
1517         (TARGET_CANONICAL_VA_LIST_TYPE): Remove.
1518
1519 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
1520
1521         PR rtl-optimization/36419
1522         * dwarf2out.c (barrier_args_size): New variable.
1523         (compute_barrier_args_size, compute_barrier_args_size_1): New
1524         functions.
1525         (dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size
1526         if not called yet in the current function, use barrier_args_size
1527         array to find the new args_size value.
1528         (dwarf2out_frame_debug): Free and clear barrier_args_size.
1529
1530 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
1531
1532         PR debug/36980
1533         * dwarf2out.c (dwarf2out_frame_debug_expr): Move rule 17 before
1534         rule 19.
1535
1536 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
1537
1538         PR debug/36976
1539         * dwarf2out.c (dwarf2out_args_size_adjust): New.
1540         (dwarf2out_stack_adjust): Use it.
1541         (dwarf2out_frame_debug_expr): Likewise.
1542
1543 2008-07-31  Richard Guenther  <rguenther@suse.de>
1544
1545         PR tree-optimization/36978
1546         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Do not fold
1547         the generated condition.
1548
1549 2008-07-31  Richard Guenther  <rguenther@suse.de>
1550
1551         * passes.c (init_optimization_passes): Always call
1552         pass_early_warn_uninitialized.
1553         * opts.c (decode_options): Do not warn about -Wuninitialized at -O0.
1554         * doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0.
1555         * doc/passes.texi (Warn for uninitialized variables): Adjust.
1556
1557 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
1558
1559         PR c/36970
1560         * builtins.c (maybe_emit_free_warning): New function.
1561         (expand_builtin): Process BUILT_IN_FREE even at -O0.  Call
1562         maybe_emit_free_warning for BUILT_IN_FREE.
1563
1564         PR debug/36278
1565         * dwarf2out.c (get_context_die): New function.
1566         (force_decl_die, force_type_die): Use it.
1567         (dwarf2out_imported_module_or_decl): Likewise.  If base_type_die
1568         returns NULL, force generation of DW_TAG_typedef and put that into
1569         DW_AT_import.
1570
1571         PR preprocessor/36649
1572         * c-pch.c (c_common_read_pch): Save and restore
1573         line_table->trace_includes across PCH restore.
1574
1575 2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>
1576
1577         PR ada/36554
1578         * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.
1579
1580 2008-07-30  Rafael Avila de Espindola  <espindola@google.com>
1581
1582         PR 36974
1583         * final.c (call_from_call_insn): Handle COND_EXEC.
1584
1585 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
1586
1587         * builtins.c (std_gimplify_va_arg_expr): Replace
1588         PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT.
1589         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
1590
1591 2008-07-30  Joey Ye  <joey.ye@intel.com>
1592             H.J. Lu  <hongjiu.lu@intel.com>
1593
1594         * builtins.c (expand_builtin_setjmp_receiver): Replace
1595         virtual_incoming_args_rtx with crtl->args.internal_arg_pointer.
1596         (expand_builtin_apply_args_1): Likewise.
1597         (expand_builtin_longjmp): Need DRAP for stack alignment.
1598         (expand_builtin_apply): Likewise.
1599
1600         * caller-save.c (setup_save_areas): Call assign_stack_local_1
1601         instead of assign_stack_local to allow alignment reduction.
1602
1603         * calls.c (emit_call_1): Need DRAP for stack alignment if
1604         return pops.
1605         (expand_call): Replace virtual_incoming_args_rtx with
1606         crtl->args.internal_arg_pointer.
1607         * stmt.c (expand_nl_goto_receiver): Likewise.
1608
1609         * cfgexpand.c (get_decl_align_unit): Estimate stack variable
1610         alignment and store to stack_alignment_estimated and
1611         max_used_stack_slot_alignment.
1612         (expand_one_var): Likewise.
1613         (expand_stack_alignment): New function.
1614         (tree_expand_cfg): Initialize max_used_stack_slot_alignment
1615         and stack_alignment_estimated fields in rtl_data.  Call
1616         expand_stack_alignment at end.
1617
1618         * defaults.h (INCOMING_STACK_BOUNDARY): New.
1619         (MAX_STACK_ALIGNMENT): Likewise.
1620         (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise.
1621         (SUPPORTS_STACK_ALIGNMENT): Likewise.
1622
1623         * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for
1624         stack alignment when generating virtual registers.
1625
1626         * function.c (assign_stack_local): Renamed to ...
1627         (assign_stack_local_1): This.  Add a parameter to indicate
1628         if it is OK to reduce alignment.
1629         (assign_stack_local): Use it.
1630         (instantiate_new_reg): Instantiate virtual incoming args rtx
1631         to vDRAP if stack realignment and DRAP is needed.
1632         (assign_parms): Collect parameter/return type alignment and
1633         contribute to stack_alignment_estimated.
1634         (locate_and_pad_parm): Likewise.
1635         (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx
1636         with crtl->args.internal_arg_pointer.
1637
1638         * function.h (rtl_data): Add new field drap_reg,
1639         max_used_stack_slot_alignment, stack_alignment_estimated,
1640         stack_realign_needed, need_drap, stack_realign_processed and
1641         stack_realign_finalized.
1642         (stack_realign_fp): New macro.
1643         (stack_realign_drap): Likewise.
1644
1645         * global.c (compute_regsets): Frame pointer is needed when
1646         stack is realigned.  Can eliminate frame pointer when stack is
1647         realigned and dynamic realigned argument pointer isn't used.
1648
1649         * reload1.c (update_eliminables):  Frame pointer is needed
1650         when stack is realigned.
1651         (init_elim_table): Can eliminate frame pointer when stack is
1652         realigned and dynamic realigned argument pointer isn't used.
1653
1654         * rtl.h (assign_stack_local_1): Declare new funtion.
1655
1656         * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New.
1657         (TARGET_GET_DRAP_RTX): Likewise.
1658         (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and
1659         TARGET_GET_DRAP_RTX.
1660
1661         * target.h (gcc_target): Add update_stack_boundary and get_drap_rtx.
1662
1663         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
1664         STACK_BOUNDARY with MAX_STACK_ALIGNMENT.
1665
1666 2008-07-30  Xuepeng Guo  <xuepeng.guo@intel.com>
1667             H.J. Lu  <hongjiu.lu@intel.com>
1668
1669         * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg,
1670         vdrap_reg, stack_realign and drap_reg_saved.
1671         (add_cfi): Don't allow redefining CFA when DRAP is used.
1672         (reg_save): Handle stack alignment.
1673         (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack
1674         alignment.  Don't generate DWARF information for (set fp sp)
1675         when DRAP is used.
1676         (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg
1677         to INVALID_REGNUM.
1678         (int_loc_descriptor): Move prototype forward.  Also define if
1679         DWARF2_UNWIND_INFO is true.
1680         (output_cfa_loc): Handle DW_CFA_expression.
1681         (build_cfa_aligned_loc): New.
1682         (based_loc_descr): Update assert for stack realign.  For local
1683         variables, use sp+offset when stack is aligned without drap and
1684         fp+offset when stack is aligned with drap.  For arguments, use
1685         cfa+offset when drap is used to align stack.
1686
1687 2008-07-30  Joey Ye  <joey.ye@intel.com>
1688             H.J. Lu  <hongjiu.lu@intel.com>
1689
1690         * config/i386/i386.c (ix86_force_align_arg_pointer_string):
1691         Break long line.
1692         (ix86_gen_andsp): New.
1693         (ix86_user_incoming_stack_boundary): Likewise.
1694         (ix86_default_incoming_stack_boundary): Likewise.
1695         (ix86_incoming_stack_boundary): Likewise.
1696         (ix86_can_eliminate): Likewise.
1697         (find_drap_reg): Likewise.
1698         (ix86_update_stack_boundary): Likewise.
1699         (ix86_get_drap_rtx): Likewise.
1700         (ix86_finalize_stack_realign_flags): Likewise.
1701         (TARGET_UPDATE_STACK_BOUNDARY): Likewise.
1702         (TARGET_GET_DRAP_RTX): Likewise.
1703         (override_options): Overide option value for new options.
1704         (ix86_function_ok_for_sibcall): Remove check for
1705         force_align_arg_pointer.
1706         (ix86_handle_cconv_attribute): Likewise.
1707         (ix86_function_regparm): Likewise.
1708         (setup_incoming_varargs_64): Don't set stack_alignment_needed here.
1709         (ix86_va_start): Replace virtual_incoming_args_rtx with
1710         crtl->args.internal_arg_pointer.
1711         (ix86_select_alt_pic_regnum): Check DRAP register.
1712         (ix86_save_reg): Replace force_align_arg_pointer with drap_reg.
1713         (ix86_compute_frame_layout): Compute frame layout wrt stack
1714         realignment.
1715         (ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx.
1716         (ix86_expand_prologue): Decide if stack realignment is needed
1717         and generate prologue code accordingly.
1718         (ix86_expand_epilogue): Generate epilogue code wrt stack
1719         realignment is really needed or not.
1720         
1721         * config/i386/i386.h (MAIN_STACK_BOUNDARY): New.
1722         (ABI_STACK_BOUNDARY): Likewise.
1723         (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise.
1724         (STACK_REALIGN_DEFAULT): Likewise.
1725         (INCOMING_STACK_BOUNDARY): Likewise.
1726         (MAX_STACK_ALIGNMENT): Likewise.
1727         (ix86_incoming_stack_boundary): Likewise.
1728         (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed.
1729         (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG.
1730         (CAN_ELIMINATE): Defined with ix86_can_eliminate.
1731         (machine_function): Remove force_align_arg_pointer.
1732
1733         * config/i386/i386.md (BX_REG): New.
1734         (R13_REG): Likewise.
1735
1736         * config/i386/i386.opt (mforce_drap): New.
1737         (mincoming-stack-boundary): Likewise.
1738         (mstackrealign): Add Init(-1).
1739
1740         * config/i386/i386-protos.h (ix86_can_eliminate): New
1741
1742 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
1743
1744         * doc/extend.texi: Update force_align_arg_pointer.
1745
1746         * doc/invoke.texi: Document -mincoming-stack-boundary.  Update
1747         -mstackrealign.
1748
1749         * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro.
1750         (INCOMING_STACK_BOUNDARY): Likewise.
1751         (TARGET_UPDATE_STACK_BOUNDARY): New target hook.
1752         (TARGET_GET_DRAP_RTX): Likewise.
1753
1754 2008-07-30  Andreas Schwab  <schwab@suse.de>
1755
1756         PR rtl-optimization/36929
1757         * dse.c (replace_inc_dec): Use emit_insn_before instead of
1758         add_insn_before and fix argument order.
1759         (replace_inc_dec_mem): Handle NULL rtx.
1760
1761 2008-07-30  Andrew Jenner  <andrew@codesourcery.com>
1762
1763         * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
1764         function.
1765         (arm_compute_initial_elimination_offset): Use it.
1766         (arm_compute_save_reg_mask): Include static chain save slot when
1767         calculating alignment.
1768         (arm_get_frame_offsets): Ditto.
1769         (thumb1_compute_save_reg_mask): Ensure we have a low register saved
1770         that we can use to decrement the stack when the stack decrement
1771         could be too big for an immediate value in a single insn.
1772         (thumb1_expand_prologue): Avoid using r12 for stack decrement.
1773
1774 2008-07-30  Richard Guenther  <rguenther@suse.de>
1775
1776         PR tree-optimization/36967
1777         * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p.
1778         Release defs of statements we remove.
1779
1780 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
1781
1782         * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
1783         instead of NULL_RTVEC.
1784
1785 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
1786
1787         PR target/35866
1788
1789         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
1790         vector modes.
1791
1792 2008-07-30  Rafael Avila de Espindola  <espindola@google.com>
1793
1794         * final.c (call_from_call_insn): New.
1795         (final_scan_insn): Call assemble_external on FUNCTION_DECLs.
1796
1797 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
1798
1799         * configure.ac: Substitute ADA_CFLAGS.
1800         * configure: Regenerate.
1801         * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files.
1802         * Makefile.in: Remove mention of X_* variables.
1803         * config/pa/x-ada-hpux10: Remove.
1804         * config/pa/x-ada: Remove.
1805
1806         * doc/fragments.texi: Update.
1807
1808 2008-07-30  Olivier Hainque  <hainque@adacore.com>
1809
1810         * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
1811         * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
1812         __dso_handle explicitly here.
1813
1814 2008-07-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1815
1816         PR 34389
1817         * c-typeck.c (build_binary_op): Encapsulate code into...
1818         * c-common.c (shorten_binary_op): ...this new function.
1819         (conversion_warning): Use the new function. Handle non-negative
1820         constant in bitwise-and.
1821         * c-common.h (shorten_binary_op): Declare.
1822
1823 2008-07-30  Olivier Hainque  <hainque@adacore.com>
1824
1825         * scan.c (make_sstring_space): Add explicit conversions of
1826         allocator's return value.
1827         * fix-header.c (recognized_function): Likewise.
1828
1829 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1830
1831         * doc/cpp.texi: Update to GFDL 1.2.
1832         * doc/gcc.texi: Do not list GPL as Invariant Section.
1833         * doc/gccint.texi: Likewise.  Update copyright years.
1834         * doc/install.texi: Update copyright years.
1835
1836 2008-07-30  Alan Modra  <amodra@bigpond.net.au>
1837
1838         PR target/36955
1839         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
1840         a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.
1841
1842 2008-07-29  Jan Hubicka  <jh@suse.cz>
1843
1844         * c-decl.c (merge_decls): Do not handle DECL_INLINE.
1845         (grokdeclarator): Likewise.
1846         * langhooks.c (lhd_warn_unused_global_decl): Use
1847         DECL_DECLARED_INLINE_P.
1848         * print-tree.c (print_node): Remove DECL_INLINE check.
1849
1850 2008-07-29  Richard Guenther  <rguenther@suse.de>
1851
1852         PR tree-optimization/36945
1853         * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
1854         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
1855         Record invariant addresses un-decomposed.
1856         (copy_reference_ops_from_call): Record reference call
1857         arguments properly.  Simplify.
1858         * tree-ssa-pre.c (create_component_ref_by_pieces_1): New
1859         helper split out from ...
1860         (create_component_ref_by_pieces): ... here.  Simplify.
1861         Prepare for recursive invocation for call arguments.
1862         (create_expression_by_pieces): Adjust call to
1863         create_component_ref_by_pieces.
1864         (compute_avail): Process operand 2 of reference ops.
1865
1866 2008-07-29  Richard Guenther  <rguenther@suse.de>
1867
1868         * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for OBJ_TYPE_REF.
1869
1870 2008-07-29  Jakub Jelinek  <jakub@redhat.com>
1871
1872         * c-format.c (check_format_types): Revert unwanted checkin.
1873
1874 2008-07-29  Jan Hubicka  <jh@suse.cz>
1875
1876         * flags.h (flag_really_no_inline): Remove.
1877         * cgraph.c (cgraph_function_possibly_inlined_p): Simplify.
1878         * toplev.c (flag_really_no_inline): Remove.
1879         * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline.
1880         * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline.
1881         (cgraph_decide_inlining_incrementally): Likewise.
1882         (compute_inline_parameters): Likewise.
1883         * opts.c (decode_options): Simplify.
1884         * c-opts.c (c_common_post_options): Do not set flag_no_inline.
1885         * common.opt (finline): Initialize to 1.
1886         * tree-inline.c (inlinable_function_p): Check flag_no_inline.
1887
1888 2008-07-29  Jan Hubicka  <jh@suse.cz>
1889
1890         * predict.c (always_optimize_for_size_p): New function.
1891         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
1892         optimize_edge_for_size_p, optimize_edge_for_speed_p,
1893         optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
1894         functions.
1895         (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
1896         * function.c (prepare_function_start): Set default profile.
1897         * function.h (rtl_data): Add maybe_hot_insn_p.
1898         * cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
1899         (construct_exit_block): Likewise.
1900         (tree_expand_cfg): Likewise.
1901         * basic-block.h
1902         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
1903         optimize_edge_for_size_p, optimize_edge_for_speed_p,
1904         optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
1905         (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
1906         Declare.
1907
1908 2008-07-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1909
1910         PR 34985
1911         * c-decl.c (merge_decls): Merge USED flags.
1912
1913 2008-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
1914
1915         * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
1916         valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit,
1917         next_stack, lab_false and lab_over trees.
1918
1919 2008-07-28  Richard Guenther  <rguenther@suse.de>
1920
1921         PR tree-optimization/36957
1922         * tree-flow.h (tree_ssa_useless_type_conversion): Remove.
1923         (useless_type_conversion_p): Remove.
1924         (types_compatible_p): Remove.
1925         * gimple.h (tree_ssa_useless_type_conversion): Declare.
1926         (useless_type_conversion_p): Declare.
1927         (types_compatible_p): Declare.
1928         (gimple_expr_type): Return the base type only if it is
1929         trivially convertible to the subtype.
1930
1931 2008-07-28  Andreas Tobler  <a.tobler@schweiz.org>
1932
1933         * configure.ac: Use the m4_do macro to concatenate the warnings into
1934         one string in ACX_PROG_CC_WARNING_OPTS,
1935         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and ACX_PROG_CC_WARNINGS_ARE_ERRORS.
1936         * configure: Regenerate.
1937
1938 2008-07-28  Richard Guenther  <rguenther@suse.de>
1939
1940         * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code.
1941         (insert_fake_stores): Remove.
1942         (realify_fake_stores): Likewise.
1943         (execute_pre): Remove dead code.
1944         * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary case.
1945         (find_func_aliases): Deal with it here instead.
1946         Re-enable gcc_unreachable call.
1947
1948 2008-07-28  Richard Guenther  <rguenther@suse.de>
1949
1950         Merge from gimple-tuples-branch.
1951
1952         * ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
1953         * gimple.def: New file.
1954         * gsstruct.def: Likewise.
1955         * gimple-iterator.c: Likewise.
1956         * gimple-pretty-print.c: Likewise.
1957         * tree-gimple.c: Removed.  Merged into ...
1958         * gimple.c: ... here.  New file.
1959         * tree-gimple.h: Removed.  Merged into ...
1960         * gimple.h: ... here.  New file.
1961
1962         * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
1963         * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
1964         --enable-checking=gimple flag.
1965         * config.in: Likewise.
1966         * configure: Regenerated.
1967
1968         * tree-ssa-operands.h: Tuplified.
1969         * tree-vrp.c: Likewise.
1970         * tree-loop-linear.c: Likewise.
1971         * tree-into-ssa.c: Likewise.
1972         * tree-ssa-loop-im.c: Likewise.
1973         * tree-dump.c: Likewise.
1974         * tree-complex.c: Likewise.
1975         * cgraphbuild.c: Likewise.
1976         * tree-ssa-threadupdate.c: Likewise.
1977         * tree-ssa-loop-niter.c: Likewise.
1978         * tree-pretty-print.c: Likewise.
1979         * tracer.c: Likewise.
1980         * gengtype.c: Likewise.
1981         * tree-loop-distribution.c: Likewise.
1982         * tree-ssa-loop-unswitch.c: Likewise.
1983         * cgraph.c: Likewise.
1984         * cgraph.h: Likewise.
1985         * tree-ssa-loop-manip.c: Likewise.
1986         * value-prof.c: Likewise.
1987         * tree-ssa-loop-ch.c: Likewise.
1988         * tree-tailcall.c: Likewise.
1989         * value-prof.h: Likewise.
1990         * tree.c: Likewise.
1991         * tree.h: Likewise.
1992         * tree-pass.h: Likewise.
1993         * ipa-cp.c: Likewise.
1994         * tree-scalar-evolution.c: Likewise.
1995         * tree-scalar-evolution.h: Likewise.
1996         * target.h: Likewise.
1997         * lambda-mat.c: Likewise.
1998         * tree-phinodes.c: Likewise.
1999         * diagnostic.h: Likewise.
2000         * builtins.c: Likewise.
2001         * tree-ssa-alias-warnings.c: Likewise.
2002         * cfghooks.c: Likewise.
2003         * fold-const.c: Likewise.
2004         * cfghooks.h: Likewise.
2005         * omp-low.c: Likewise.
2006         * tree-ssa-dse.c: Likewise.
2007         * ipa-reference.c: Likewise.
2008         * tree-ssa-uncprop.c: Likewise.
2009         * toplev.c: Likewise.
2010         * tree-gimple.c: Likewise.
2011         * tree-gimple.h: Likewise.
2012         * tree-chrec.c: Likewise.
2013         * tree-chrec.h: Likewise.
2014         * tree-ssa-sccvn.c: Likewise.
2015         * tree-ssa-sccvn.h: Likewise.
2016         * cgraphunit.c: Likewise.
2017         * tree-ssa-copyrename.c: Likewise.
2018         * tree-ssa-ccp.c: Likewise.
2019         * tree-ssa-loop-ivopts.c: Likewise.
2020         * tree-nomudflap.c: Likewise.
2021         * tree-call-cdce.c: Likewise.
2022         * ipa-pure-const.c: Likewise.
2023         * c-format.c: Likewise.
2024         * tree-stdarg.c: Likewise.
2025         * tree-ssa-math-opts.c: Likewise.
2026         * tree-ssa-dom.c: Likewise.
2027         * tree-nrv.c: Likewise.
2028         * tree-ssa-propagate.c: Likewise.
2029         * ipa-utils.c: Likewise.
2030         * tree-ssa-propagate.h: Likewise.
2031         * tree-ssa-alias.c: Likewise.
2032         * gimple-low.c: Likewise.
2033         * tree-ssa-sink.c: Likewise.
2034         * ipa-inline.c: Likewise.
2035         * c-semantics.c: Likewise.
2036         * dwarf2out.c: Likewise.
2037         * expr.c: Likewise.
2038         * tree-ssa-loop-ivcanon.c: Likewise.
2039         * predict.c: Likewise.
2040         * tree-ssa-loop.c: Likewise.
2041         * tree-parloops.c: Likewise.
2042         * tree-ssa-address.c: Likewise.
2043         * tree-ssa-ifcombine.c: Likewise.
2044         * matrix-reorg.c: Likewise.
2045         * c-decl.c: Likewise.
2046         * tree-eh.c: Likewise.
2047         * c-pretty-print.c: Likewise.
2048         * lambda-trans.c: Likewise.
2049         * function.c: Likewise.
2050         * langhooks.c: Likewise.
2051         * ebitmap.h: Likewise.
2052         * tree-vectorizer.c: Likewise.
2053         * function.h: Likewise.
2054         * langhooks.h: Likewise.
2055         * tree-vectorizer.h: Likewise.
2056         * ipa-type-escape.c: Likewise.
2057         * ipa-type-escape.h: Likewise.
2058         * domwalk.c: Likewise.
2059         * tree-if-conv.c: Likewise.
2060         * profile.c: Likewise.
2061         * domwalk.h: Likewise.
2062         * tree-data-ref.c: Likewise.
2063         * tree-data-ref.h: Likewise.
2064         * tree-flow-inline.h: Likewise.
2065         * tree-affine.c: Likewise.
2066         * tree-vect-analyze.c: Likewise.
2067         * c-typeck.c: Likewise.
2068         * gimplify.c: Likewise.
2069         * coretypes.h: Likewise.
2070         * tree-ssa-phiopt.c: Likewise.
2071         * calls.c: Likewise.
2072         * tree-ssa-coalesce.c: Likewise.
2073         * tree.def: Likewise.
2074         * tree-dfa.c: Likewise.
2075         * except.c: Likewise.
2076         * except.h: Likewise.
2077         * cfgexpand.c: Likewise.
2078         * tree-cfgcleanup.c: Likewise.
2079         * tree-ssa-pre.c: Likewise.
2080         * tree-ssa-live.c: Likewise.
2081         * tree-sra.c: Likewise.
2082         * tree-ssa-live.h: Likewise.
2083         * tree-predcom.c: Likewise.
2084         * lambda.h: Likewise.
2085         * tree-mudflap.c: Likewise.
2086         * ipa-prop.c: Likewise.
2087         * print-tree.c: Likewise.
2088         * tree-ssa-copy.c: Likewise.
2089         * ipa-prop.h: Likewise.
2090         * tree-ssa-forwprop.c: Likewise.
2091         * ggc-page.c: Likewise.
2092         * c-omp.c: Likewise.
2093         * tree-ssa-dce.c: Likewise.
2094         * tree-vect-patterns.c: Likewise.
2095         * tree-ssa-ter.c: Likewise.
2096         * tree-nested.c: Likewise.
2097         * tree-ssa.c: Likewise.
2098         * lambda-code.c: Likewise.
2099         * tree-ssa-loop-prefetch.c: Likewise.
2100         * tree-inline.c: Likewise.
2101         * tree-inline.h: Likewise.
2102         * tree-iterator.c: Likewise.
2103         * tree-optimize.c: Likewise.
2104         * tree-ssa-phiprop.c: Likewise.
2105         * tree-vect-transform.c: Likewise.
2106         * tree-object-size.c: Likewise.
2107         * tree-outof-ssa.c: Likewise.
2108         * cfgloop.c: Likewise.
2109         * system.h: Likewise.
2110         * tree-profile.c: Likewise.
2111         * cfgloop.h: Likewise.
2112         * c-gimplify.c: Likewise.
2113         * c-common.c: Likewise.
2114         * tree-vect-generic.c: Likewise.
2115         * tree-flow.h: Likewise.
2116         * c-common.h: Likewise.
2117         * basic-block.h: Likewise.
2118         * tree-ssa-structalias.c: Likewise.
2119         * tree-switch-conversion.c: Likewise.
2120         * tree-ssa-structalias.h: Likewise.
2121         * tree-cfg.c: Likewise.
2122         * passes.c: Likewise.
2123         * ipa-struct-reorg.c: Likewise.
2124         * ipa-struct-reorg.h: Likewise.
2125         * tree-ssa-reassoc.c: Likewise.
2126         * cfgrtl.c: Likewise.
2127         * varpool.c: Likewise.
2128         * stmt.c: Likewise.
2129         * tree-ssanames.c: Likewise.
2130         * tree-ssa-threadedge.c: Likewise.
2131         * langhooks-def.h: Likewise.
2132         * tree-ssa-operands.c: Likewise.
2133         * config/alpha/alpha.c: Likewise.
2134         * config/frv/frv.c: Likewise.
2135         * config/s390/s390.c: Likewise.
2136         * config/m32c/m32c.c: Likewise.
2137         * config/m32c/m32c-protos.h: Likewise.
2138         * config/spu/spu.c: Likewise.
2139         * config/sparc/sparc.c: Likewise.
2140         * config/i386/i386.c: Likewise.
2141         * config/sh/sh.c: Likewise.
2142         * config/xtensa/xtensa.c: Likewise.
2143         * config/stormy16/stormy16.c: Likewise.
2144         * config/ia64/ia64.c: Likewise.
2145         * config/rs6000/rs6000.c: Likewise.
2146         * config/pa/pa.c: Likewise.
2147         * config/mips/mips.c: Likewise.
2148
2149 2008-07-28  Simon Baldwin  <simonb@google.com>
2150
2151         * c-pragma.c (handle_pragma_message): New function.
2152         (init_pragma): Register handle_pragma_message.
2153         * doc/extend.texi (Diagnostic Pragmas): Added #pragma message
2154         documentation.
2155
2156 2008-07-27  Victor Kaplansky  <victork@il.ibm.com>
2157
2158         PR tree-optimization/35252
2159         * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
2160         REALPART_EXPR to be considered as same load operation.
2161
2162 2008-07-27  Eric Botcazou  <ebotcazou@adacore.com>
2163
2164         PR tree-optimization/36830
2165         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
2166         (expressions_equal_p): Return false if only one operand is null.
2167
2168 2008-07-26  Gerald Pfeifer  <gerald@pfeifer.com>
2169
2170         * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
2171         version requirements.
2172
2173 2008-07-26  Olivier Hainque  <hainque@adacore.com>
2174
2175         * collect2.c (symkind): New enum.  Symbol kinds we care about.
2176         (is_ctor_dtor): Return symkind instead of int.  Adjust prototype,
2177         code and head comment accordingly.
2178         (scan_prog_file): Use symkind names instead of bare integers.
2179
2180 2008-07-25  Jan Hubicka  <jh@suse.cz>
2181
2182         * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on
2183         DECL_INLINE.
2184         * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
2185         (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
2186         * dojump.c (clear_pending_stack_adjust): Likewise.
2187         * print-tree.c (print_node): Ignore DECL_INLINE.
2188         * tree-inline.c (inlinable_function_p): Likewise.
2189
2190 2008-07-25  Michael Meissner  <gnu@the-meissners.org>
2191
2192         * doc/extend.texi (hot attribute): Document that the hot attribute
2193         turns on -O3 for some ports.
2194         (cold attribute): Document that the cold attribute turns on -Os
2195         for some ports
2196
2197         * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
2198         reflect function specific option support.
2199
2200         * target.h (struct target_option_hooks): Add fields to say whether
2201         the cold attribute implies -Os and the hot attribute implies -O3.
2202
2203         * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
2204         By default, do not turn on -Os for cold functions.
2205         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
2206         not turn on -O3 for hot functions.
2207
2208         * c-common.c (handle_hot_attribute): Use target hook to determine
2209         if hot functions should enable -O3.
2210         (handle_cold_attribute): Use target hook to determine if cold
2211         functions should enable -Os.
2212
2213         * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
2214         (override_options): Move disable scheduling to
2215         optimization_options.
2216         (optimization_options): Disable scheduling here, not
2217         override_options.
2218         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
2219         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
2220
2221         * config/ia64/ia64.c (ia64_override_options): Move setting
2222         scheduling flags to ia64_optimization_options.
2223         (ia64_optimization_options): Disable scheduling options here, and
2224         not in ia64_override_options.
2225         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
2226         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
2227
2228 2008-07-25  H.J. Lu  <hongjiu.lu@intel.com>
2229
2230         PR target/36936
2231         * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
2232
2233 2008-07-25  Martin Jambor  <mjambor@suse.cz>
2234
2235         PR tree-optimization/36926
2236         * ipa-prop.c (ipa_analyze_call_uses): Call
2237         ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
2238
2239 2008-07-25  Joseph Myers  <joseph@codesourcery.com>
2240
2241         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
2242         movv2si_internal): Add mem = reg alternative.
2243
2244 2008-07-25  Andreas Tobler  <a.tobler@schweiz.org>
2245
2246         PR bootstrap/36918
2247         * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
2248         DEFAULT_PCC_STRUCT_RETURN to 127.
2249
2250 2008-07-24  Jan Hubicka  <jh@suse.cz>
2251
2252         * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
2253         (build_cgraph_edges): Likewise.
2254         * cgraph.c (cgraph_node): Do not update assembler hash.
2255         (cgraph_remove_node): Drop non-unit-at-a-time code.
2256         * tree-pass.h (pass_O0_always_inline): Remove.
2257         * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
2258         * toplev.c (process_options): Flag unit-at-a-time does not imply
2259         no section anchors.
2260         * cgraphunit.c: Update comments.
2261         (decide_is_function_needed): Drop non-unit-at-a-time mode.
2262         (cgraph_assemble_pending_functions): Remove.
2263         (cgraph_reset_node): Drop non-unit-at-a-time code.
2264         (cgraph_finalize_function): Likewise.
2265         (cgraph_analyze_function): Likewise.
2266         (cgraph_finalize_compilation_unit): Likewise.
2267         (cgraph_expand_function): Likewise.
2268         (cgraph_optimize): Likesise.
2269         (save_inline_function_body): Likewise.
2270         * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
2271         * tree-ssa-alias.c (maybe_be_aliased): Likewise.
2272         * ipa-inline.c: Update comments.
2273         (enum inlining_mode): remove INLINE_SPEED.
2274         (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
2275         (cgraph_mark_inline_edge): Likewise.
2276         (try_inline): Likewise.
2277         (cgraph_decide_inlining_incrementally): Likewise.
2278         (cgraph_gate_inlining): Remove.
2279         (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
2280         (cgraph_gate_early_inlining): Likewise.
2281         (gate_inline_passes): Remove.
2282         (pass_inline_parameters, pass_ipa_inline): Remove gates.
2283         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
2284         pass_O0_always_inline): Remove.
2285         * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
2286         * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
2287         * opts.c (no_unit_at_a_time_default): Remove.
2288         (decode_options): Remove flag_unit_at_a_time reset and warning.
2289         * opts.h (no_unit_at_a_time_default): Remove.
2290         * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
2291         early in GNU dialect.
2292         (merge_decls): Update comment; drop unit-at-a-time check.
2293         (finish_decl): Likewise.
2294         (grok_declaration): Remove flag_inline_trees code.
2295         (finish_functions): Return on function returning non-void on all
2296         statics.
2297         * ipa-tye-escape.c (gate_type_escape_vars): Remove.
2298         * cfgexpand.c (expand_one_static_var): Remove.
2299         (expand_one_var): Remove expand_one_static_var call.
2300         (expand_used_vars_for_block): Remove flag_unit_a_time check.
2301         * c-opts.c (c_common_post_options): Remove flag_inline_trees code
2302         and flag_unit_at_a-time compatibility checks.
2303         * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
2304         * tree-inline.c (flag_inline_trees): Remove.
2305         (inlinable_function_p): Don't check it.
2306         (expand_call_inline): Remove non-unit-at-a-time code.
2307         * tree-inline.h (flag_inline_trees): Remove.
2308         * tree-optimize.c (execute_early_local_optimizations): Remove
2309         unit-at-a-time checks.
2310         (tree_rest_of_compilation): Likewise.
2311         * combine.c (setup_incoming_promotions): Likewise.
2312         * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
2313         * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
2314         * passes.c (pass_inline_parameters): Update comments; remove
2315         O0_alwaysinline pass.
2316         (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
2317         (execute_one_pass): Likewise.
2318         * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
2319         (ix86_function_sseregparm): Likewise.
2320         * arm.c (arm_function_in_section_p): Likewise.
2321         * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
2322         * varpool.c: Update comments.
2323         (decide_is_variable_needed): Remove unit-at-a-time checks.
2324         (varpool_finalize_decl): Likewise.
2325
2326 2008-07-24  Kaz Kojima  <kkojima@gcc.gnu.org>
2327
2328         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
2329         to 2 instead of -1.
2330         (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal to 2.
2331
2332 2008-07-24  Kai Tietz  <kai.tietz@onevision.com>
2333
2334         * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
2335         imp symbol extension.
2336
2337         2008-07-23  Ian Lance Taylor  <iant@google.com>
2338
2339         * tree-vrp.c (infer_value_range): Ignore asm statements when
2340         looking for memory accesses for -fdelete-null-pointer-checks.
2341
2342 2008-07-24  Ben Elliston  <bje@au.ibm.com>
2343
2344         * config/spu/spu-c.c (__vector_keyword): New variable.
2345         (vector_keyword): Likewise.
2346         (spu_categorize_keyword): New function.
2347         (spu_macro_to_expand): Likewise.
2348         (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
2349         compiling an ISO C dialect.
2350
2351 2008-07-24  Ben Elliston  <bje@au.ibm.com>
2352
2353         * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
2354         conventional usage.
2355
2356 2008-07-23  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2357
2358         * configure: Regenerate.
2359         * configure.ac: Require texinfo 4.7.
2360         * doc/install.texi: Document texinfo 4.7 requirement.
2361
2362 2008-07-23  Martin Jambor  <mjambor@suse.cz>
2363
2364         * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
2365         rather than for DECL_SAVED_TREE.
2366         * ipa-prop.c: Include diagnostic.h.
2367         (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
2368         thoroughly.
2369         (ipa_detect_param_modifications): Function rewritten from scratch.
2370         (ipa_compute_jump_functions): Changed accesses to modification flags.
2371         (ipa_free_node_params_substructures): Update flags destruction.
2372         (ipa_node_duplication_hook): Update flags duplication.
2373         (ipa_print_all_params_modified): Updated flag access.
2374         * ipa-prop.h (struct ipa_param_flags): New structure.
2375         (struct ipa_node_params): New field modification_analysis_done,
2376         modified_flags changed into param_flags.
2377         (ipa_is_ith_param_modified): Changed to use new flags.
2378         * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
2379
2380         * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
2381         ipa-cp.c and split into two functions.
2382         (ipa_print_node_jump_functions): New function.
2383         (compute_scalar_jump_functions): New function.
2384         (type_like_member_ptr_p): New function.
2385         (compute_pass_through_member_ptrs): New function.
2386         (fill_member_ptr_cst_jump_function): New function.
2387         (determine_cst_member_ptr): New function.
2388         (compute_cst_member_ptr_arguments): New function.
2389         (ipa_compute_jump_functions): Complete rewrite.
2390         * ipa-prop.h (enum jump_func_type): Make explicit that we depend
2391         on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
2392         (struct ipa_member_ptr_cst): New structure.
2393         (union jump_func_value): New field member_cst.
2394         * ipa-cp.c (ipcp_lat_is_insertable): New function.
2395         (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
2396         jump function types.
2397         (ipcp_print_all_lattices): Slight fprintf rearrangement.
2398         (ipcp_print_all_structures): Call ipa_print_all_jump_functions
2399         instead of ipcp_print_all_jump_functions.
2400         (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
2401         only for replacable scalars.
2402
2403         * doc/invoke.texi (Optimize options): Add description of
2404         -findirect-inlining.
2405         * common.opt (flag_indirect_inlining): New flag.
2406         * opts.c (decode_options): Set flag_indirect_inlining when
2407         optimize >= 3.
2408
2409         * ipa-inline.c: Include ipa-prop.h.
2410         (inline_indirect_intraprocedural_analysis): New function.
2411         (inline_generate_summary): Allocate parameter and argument info
2412         structures, call inline_indirect_intraprocedural_analysis on each
2413         node when doing indirect inlining and deallocate indirect inlining
2414         data structures in the end.
2415         * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
2416         (free_all_ipa_structures_after_iinln): New function.
2417         (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be
2418         done.
2419         * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
2420
2421         * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
2422         (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
2423         of computing the frequency separately.
2424         (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
2425         of computing the frequency separately.
2426         * ipa-cp.c (ipcp_print_all_structures): Replace a call to
2427         ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
2428         * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
2429         (ipa_get_stmt_member_ptr_load_param): New function.
2430         (ipa_is_ssa_with_stmt_def): New function.
2431         (ipa_note_param_call): New function.
2432         (ipa_analyze_call_uses): New function.
2433         (ipa_analyze_stmt_uses): New function.
2434         (ipa_analyze_params_uses): New function.
2435         (ipa_free_node_params_substructures): Also free the param_calls linked
2436         list.
2437         (ipa_node_duplication_hook): Also duplicate the param_calls linked list.
2438         (ipa_print_node_param_flags): New function.
2439         (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
2440         (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
2441         * ipa-prop.h (struct ipa_param_flags): New field called.
2442         (struct ipa_param_call_note): New structure.
2443         (struct ipa_node_params): New fields param_calls and
2444         uses_analysis_done.
2445         (ipa_is_ith_param_called): New function.
2446         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
2447         ipa_analyze_params_uses and dump parameter flags.
2448
2449         * ipa-inline.c (cgraph_decide_recursive_inlining): Call
2450         ipa_propagate_indirect_call_infos if performing indirect inlining,
2451         pass a new parameter new_edges to it.
2452         (add_new_edges_to_heap): New fucntion.
2453         (cgraph_decide_inlining_of_small_functions): New vector
2454         new_indirect_edges for newly found indirect edges , call
2455         ipa_propagate_indirect_call_infos after inlining.
2456         (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
2457         inlining if performing indirect inlining.  Call
2458         free_all_ipa_structures_after_iinln when doing so too.
2459         (inline_generate_summary): Do not call
2460         free_all_ipa_structures_after_iinln here.
2461         * ipa-prop.c (update_jump_functions_after_inlining): New function.
2462         (print_edge_addition_message): New function.
2463         (update_call_notes_after_inlining): New function.
2464         (propagate_info_to_inlined_callees): New function.
2465         (ipa_propagate_indirect_call_infos): New function.
2466         * ipa-prop.h: Include cgraph.h
2467         (struct ipa_param_call_note): Fields reordered, new field processed.
2468         * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
2469         flag indirect_call.
2470         * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
2471         rediscovered call statements.
2472         * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
2473         (dump_cgraph_node): Dump also the indirect_call flag.
2474         (cgraph_clone_edge): Copy also the indirect_call flag.
2475         * tree-inline.c (copy_bb): Do not check for fndecls from call
2476         expressions, check for edge availability when moving clones.
2477         (get_indirect_callee_fndecl): New function.
2478         (expand_call_inline): If callee declaration is not apprent from
2479         the statement, try calling get_indirect_callee_fndecl.  Do not
2480         issue warnings or call sorry when not inlinings an indirect edge.
2481         * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
2482
2483         * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
2484         bit more frandly to matching.
2485         * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
2486         * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
2487         * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
2488
2489 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
2490
2491         PR 36907
2492         * opth-gen.awk: Suppress function specific features when building
2493         target libraries.
2494         * optc-gen.awk: Ditto.
2495
2496 2008-07-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2497
2498         PR 35058
2499         * diagnostic.c (pedwarn): Add opt parameter.
2500         (pedwarn0): New.
2501         * c-tree.h (pedwarn_init): Add opt parameter.
2502         (pedwarn_c90): Likewise.
2503         (pedwarn_c99): Likewise.
2504         * c-errors.c (pedwarn_c99): Likewise.
2505         (pedwarn_c90): Likewise.
2506         * toplev.h (pedwarn): Update declaration.
2507         (pedwarn0): Declare.
2508         * c-lex.c: All calls to pedwarn changed.
2509         * builtins.c: All calls to pedwarn changed.
2510         * toplev.c: All calls to pedwarn changed.
2511         * c-decl.c: All calls to pedwarn changed.
2512         * c-typeck.c: All calls to pedwarn changed.
2513         * c-common.c: All calls to pedwarn changed.
2514         * c-parser.c: All calls to pedwarn changed.
2515
2516 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
2517             Karthik Kumar  <karthikkumar@gmail.com>
2518
2519         * attribs.c (file scope): Include c-common.h.
2520         (decl_attributes): Add support for #pragma GCC optimize and
2521         #pragma GCC option.
2522
2523         * targhooks.c (default_can_inline_p): New function that is the
2524         default for the TARGET_CAN_INLINE_P target hook.
2525
2526         * targhooks.h (default_can_inline_p): Add declaration.
2527
2528         * tree.c (cl_optimization_node): New static tree for building
2529         OPTIMIZATION_NODE tree.
2530         (cl_target_option_node): New static tree for building
2531         TARGET_OPTION_NODE tree.
2532         (cl_option_hash_table): New hash table for hashing
2533         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
2534         (cl_option_hash_hash): New function to provide the hash value for
2535         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
2536         (cl_option_hash_eq): New function to provide an equality test for
2537         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
2538         (tree_code_size): Add support for OPTIMIZATION_NODE and
2539         TARGET_OPTION_NODE trees.
2540         (tree_code_structure): Add support for OPTIMIZATION_NODE and
2541         TARGET_OPTION_NODE trees.
2542         (build_optimization_node): Build a tree that has all of the
2543         current optimization options.
2544         (build_target_option_node): Build a tree that has the target
2545         options that might be changed on a per function basis.
2546
2547         * tree.h (file scope): Include options.h.
2548         (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
2549         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
2550         (TREE_OPTIMIZATION): Ditto.
2551         (TREE_TARGET_SPECIFIC): Ditto.
2552         (struct tree_function_decl): Add fields for remembering the
2553         current optimization options and target specific options.
2554         (struct tree_optimization_option): New tree variant that remembers
2555         the optimization options.
2556         (struct tree_target_option): New tree variant that remembers the
2557         target specific flags that might change for compiling a particular
2558         function.
2559         (union tree_node): Include tree_optimization_option and
2560         tree_target_option fields.
2561         (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
2562         TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
2563         TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
2564         TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
2565         TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
2566         optimization and target options.
2567         (optimization_default_node): New macro to refer to global_trees
2568         field.
2569         (optimization_current_node): Ditto.
2570         (optimization_cold_node): Ditto.
2571         (optimization_hot_node): Ditto.
2572         (target_option_default_node): Ditto.
2573         (target_option_current_node): Ditto.
2574         (current_option_pragma): Ditto.
2575         (current_optimize_pragma): Ditto.
2576
2577         * target.h (struct gcc_target): Add valid_option_attribute_p,
2578         target_option_save, target_option_restore, target_option_print,
2579         target_option_pragma_parse, and can_inline_p hooks.
2580
2581         * toplev.h (parse_optimize_options): Add declaration.
2582         (fast_math_flags_struct_set_p): Ditto.
2583
2584         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
2585         adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
2586         optimize is used.
2587
2588         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
2589         tree_can_inline_p hook to see if one function can inline another.
2590         (cgraph_decide_inlining): Ditto.
2591         (cgraph_decide_inlining_incrementally): Ditto.
2592
2593         * opts.c (decode_options): Add support for running multiple times
2594         to allow functions with different target or optimization options
2595         than was specified on the command line.
2596         (fast_math_flags_struct_set_p): New function that is similar to
2597         fast_math_flags_set_p, except it uses the values in the
2598         cl_optimization structure instead of global variables.
2599
2600         * optc-gen.awk: Add support for TargetSave to allow a back end to
2601         declare new fields that need to be saved when using function
2602         specific options.  Include flags.h and target.h in the options.c
2603         source.  Add support for Save to indicate which options can be set
2604         for individual functions.  Generate cl_optimize_save,
2605         cl_optimize_restore, cl_optimize_print, cl_target_option_save,
2606         cl_target_option_restore, cl_target_option_print functions to
2607         allow functions to use different optimization or target options.
2608
2609         * opt-functions.awk (var_type_struct): Return the type used for
2610         storing the field in a structure.
2611
2612         * opth-gen.awk: Add support for TargetSave to allow a back end to
2613         declare new fields that need to be saved when using function
2614         specific options.  Add support for Save to indicate which options
2615         can be set for individual functions.  Only generate one extern for
2616         Mask fields.  Generate cl_optimization and cl_target_option
2617         structures to remember optimization and target options.
2618
2619         * treestruct.def (TS_OPTIMIZATION): Add support for garbage
2620         collecting new tree nodes.
2621         (TS_TARGET_OPTION): Ditto.
2622
2623         * c-decl.c (merge_decls): Merge function specific target and
2624         optimization options.
2625
2626         * function.c (invoke_set_current_function_hook): If the function
2627         uses different optimization options, change the global variables
2628         to reflect this.
2629
2630         * coretypes.h (struct cl_optimization): Add forward reference.
2631         (struct cl_target_option): Ditto.
2632
2633         * c-pragma.c (option_stack): New static vector to remember the
2634         current #pragma GCC option stack.
2635         (handle_pragma_option): New function to support #pragma GCC option
2636         to change target options.
2637         (optimize_stack): New static vector to remember the current
2638         #pragma GCC optimize stack.
2639         (handle_pragma_optimize): New function to support #pragma GCC
2640         optimize to change optimization options.
2641         (init_pragma): Add support for #pragma GCC optimize and #pragma
2642         GCC option.
2643
2644         * tree.def (OPTIMIZATION_NODE): New tree code for remembering
2645         optimization options.
2646         (TARGET_OPTION_NODE): New tree code for remembering certain target
2647         options.
2648
2649         * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
2650         TARGET_OPTION_NODE trees.
2651
2652         * common.opt (-O): Add Optimization flag.
2653         (-Os): Ditto.
2654         (-fmath-errno): Ditto.
2655         (-falign-functions): Add UInteger flag to make sure flag gets full
2656         int in cl_optimization structure.
2657         (-falign-jumps): Ditto.
2658         (-falign-labels): Ditto.
2659         (-falign-loops): Ditto.
2660         (-fsched-stalled-insns): Ditto.
2661         (-fsched-stalled-insns-dep): Ditto.
2662
2663         * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
2664         definition.
2665         (TARGET_OPTION_SAVE): Ditto.
2666         (TARGET_OPTION_RESTORE): Ditto.
2667         (TARGET_OPTION_PRINT): Ditto.
2668         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
2669         (TARGET_CAN_INLINE_P): Ditto.
2670         (TARGET_INITIALIZER): Add new hooks.
2671
2672         * tree-inline.c (tree_can_inline_p): New function to determine
2673         whether one function can inline another.  Check if the functions
2674         use compatible optimization options, and also call the backend
2675         can_inline_p hook.
2676
2677         * tree-inline.h (tree_can_inline_p): Add declaration.
2678
2679         * c-common.c (c_common_attribute): Add support for option and
2680         optimize attributes.
2681         (handle_option_attribute): Add support for the option attribute to
2682         allow the user to specify different target options for compiling a
2683         specific function.
2684         (handle_optimize_attribute): Add support for the optimize
2685         attribute to allow the user to specify different optimization
2686         options for compiling a specific function.
2687         (handle_hot_attribute): Turn on -O3 optimization for this one
2688         function if it isn't the default optimization level.
2689         (handle_cold_attribute): Turn on -Os optimization for this one
2690         function if it insn't the default optimization.
2691         (const_char_p): New const char * typedef.
2692         (optimize_args): New static vector to remember the optimization
2693         arguments.
2694         (parse_optimize_options): New function to set up the optimization
2695         arguments from either the optimize attribute or #pragma GCC optimize.
2696
2697         * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
2698         (builtin_define_std): Ditto.
2699
2700         * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
2701         Add t-i386 Makefile fragment to add i386-c.o and i386.o dependencies.
2702         (x86_64-*-*): Ditto.
2703
2704         * Makefile.in (TREE_H): Add options.h.
2705         (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
2706
2707         * doc/extend.texi (option attribute): Document new attribute.
2708         (optimize attribute): Ditto.
2709         (hot attribute): Document hot attribute sets -O3.
2710         (cold attribute): Document cold attribute sets -Os.
2711         (#pragma GCC option): Document new pragma.
2712         (#pragma GCC optimize): Ditto.
2713
2714         * doc/options.texi (TargetSave): Document TargetSave syntax.
2715         (UInteger): Document UInteger must be used for certain flags.
2716         (Save): Document Save option to create target specific options
2717         that can be saved/restored on a function specific context.
2718
2719         * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new macro.
2720         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
2721
2722         * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new hook.
2723         (TARGET_OPTION_SAVE): Ditto.
2724         (TARGET_OPTION_RESTORE): Ditto.
2725         (TARGET_OPTION_PRINT): Ditto.
2726         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
2727         (TARGET_CAN_INLINE_P): Ditto.
2728
2729         * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
2730         -mfpmath=sse,387.
2731         (-mfpmath=both): Ditto.
2732
2733 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
2734             Karthik Kumar  <karthikkumar@gmail.com>
2735
2736         * config/i386/i386.h (TARGET_ABM): Move switch into ix86_isa_flags.
2737         (TARGET_POPCNT): Ditto.
2738         (TARGET_SAHF): Ditto.
2739         (TARGET_AES): Ditto.
2740         (TARGET_PCLMUL): Ditto.
2741         (TARGET_CMPXCHG16B): Ditto.
2742         (TARGET_RECIP): Move switch into target_flags.
2743         (TARGET_FUSED_MADD): Ditto.
2744         (ix86_arch_features): Make an unsigned char type.
2745         (ix86_tune_features): Ditto.
2746         (OVERRIDE_OPTIONS): Add bool argument to override_options call.
2747         (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
2748         (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
2749
2750         * config/i386/i386.opt (arch): New TargetSave field to define
2751         fields that need to be saved for function specific option support.
2752         (tune): Ditto.
2753         (fpmath): Ditto.
2754         (branch_cost): Ditto.
2755         (ix86_isa_flags_explicit): Ditto.
2756         (tune_defaulted): Ditto.
2757         (arch_specified): Ditto.
2758         (-m128-long-double): Add Save flag to save option for target
2759         specific option support.
2760         (-m80387): Ditto.
2761         (-maccumulate-outgoing-args): Ditto.
2762         (-malign-double): Ditto.
2763         (-malign-stringops): Ditto.
2764         (-mfancy-math-387): Ditto.
2765         (-mhard-float): Ditto.
2766         (-mieee-fp): Ditto.
2767         (-minline-all-stringops): Ditto.
2768         (-minline-stringops-dynamically): Ditto.
2769         (-mms-bitfields): Ditto.
2770         (-mno-align-stringops): Ditto.
2771         (-mno-fancy-math-387): Ditto.
2772         (-mno-push-args): Ditto.
2773         (-mno-red-zone): Ditto.
2774         (-mpush-args): Ditto.
2775         (-mred-zone): Ditto.
2776         (-mrtd): Ditto.
2777         (-msseregparm): Ditto.
2778         (-mstack-arg-probe): Ditto.
2779         (-m32): Ditto.
2780         (-m64): Ditto.
2781         (-mmmx): Ditto.
2782         (-m3dnow): Ditto.
2783         (-m3dnowa): Ditto.
2784         (-msse): Ditto.
2785         (-msse2): Ditto.
2786         (-msse3): Ditto.
2787         (-msse4.1): Ditto.
2788         (-msse4.2): Ditto.
2789         (-msse4): Ditto.
2790         (-mno-sse4): Ditto.
2791         (-msse4a): Ditto.
2792         (-msse5): Ditto.
2793         (-mrecip): Move flag into target_flags.
2794         (-mcld): Ditto.
2795         (-mno-fused-madd): Ditto.
2796         (-mfused-madd): Ditto.
2797         (-mabm): Move flag into ix86_isa_flags.
2798         (-mcx16): Ditto.
2799         (-mpopcnt): Ditto.
2800         (-msahf): Ditto.
2801         (-maes): Ditto.
2802         (-mpclmul): Ditto.
2803
2804         * config/i386/i386-c.c: New file for #pragma support.
2805         (ix86_target_macros_internal): New function to #define or #undef
2806         target macros based when the user uses the #pragma GCC option to
2807         change target options.
2808         (ix86_pragma_option_parse): New function to add #pragma GCC option
2809         support.
2810         (ix86_target_macros): Move defining the target macros here from
2811         TARGET_CPU_CPP_BUILTINS in i386.h.
2812         (ix86_register_pragmas): Register the #pragma GCC option hook.  If
2813         defined, initialize any subtarget #pragmas.
2814
2815         * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
2816         REGISTER_TARGET_PRAGMAS.
2817
2818         * config/i386/t-i386: New file for x86 dependencies.
2819         (i386.o): Make dependencies mirror the include files used.
2820         (i386-c.o): New file, add dependencies.
2821
2822         * config/i386/i386-protos.h (override_options): Add bool argument.
2823         (ix86_valid_option_attribute_tree): Add declaration.
2824         (ix86_target_macros): Ditto.
2825         (ix86_register_macros): Ditto.
2826
2827         * config/i386/i386.c (ix86_tune_features): Move initialization of
2828         the target masks to initial_ix86_tune_features to allow functions
2829         to have different target options.  Make type unsigned char,
2830         instead of unsigned int.
2831         (initial_ix86_tune_features): New static vector to hold processor
2832         masks for the tune variables.
2833         (ix86_arch_features): Move initialization of the target masks to
2834         initial_ix86_arch_features to allow functions to have different
2835         target options.  Make type unsigned char, instead of unsigned int.
2836         (initial_ix86_arch_features): New static vector to hold processor
2837         masks for the arch variables.
2838         (enum ix86_function_specific_strings): New enum to describe the
2839         string options used for attribute((option(...))).
2840         (ix86_target_string): New function to return a string that
2841         describes the target options.
2842         (ix86_debug_options): New function to print the current options in
2843         the debugger.
2844         (ix86_function_specific_save): New function hook to save the
2845         function specific global variables in the cl_target_option structure.
2846         (ix86_function_specific_restore): New function hook to restore the
2847         function specific variables from the cl_target_option structure to
2848         the global variables.
2849         (ix86_function_specific_print): New function hook to print the
2850         target specific options in the cl_target_option structure.
2851         (ix86_valid_option_attribute_p): New function hook to validate
2852         attribute((option(...))) arguments.
2853         (ix86_valid_option_attribute_tree): New function that is common
2854         code between attribute((option(...))) and #pragma GCC option
2855         support that parses the options and returns a tree holding the options.
2856         (ix86_valid_option_attribute_inner_p): New helper function for
2857         ix86_valid_option_attribute_tree.
2858         (ix86_can_inline_p): New function hook to decide if one function
2859         can inline another on a target specific basis.
2860         (ix86_set_current_function); New function hook to switch target
2861         options if the user used attribute((option(...))) or #pragma GCC
2862         option.
2863         (ix86_tune_defaulted): Move to static file scope from
2864         override_options.
2865         (ix86_arch_specified): Ditto.
2866         (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
2867         ix86_isa_flags.
2868         (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
2869         (OPTION_MASK_ISA_ABM_SET): Ditto.
2870         (OPTION_MASK_ISA_POPCNT_SET): Ditto.
2871         (OPTION_MASK_ISA_CX16_SET): Ditto.
2872         (OPTION_MASK_ISA_SAHF_SET): Ditto.
2873         (OPTION_MASK_ISA_AES_UNSET): Ditto.
2874         (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
2875         (OPTION_MASK_ISA_ABM_UNSET): Ditto.
2876         (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
2877         (OPTION_MASK_ISA_CX16_UNSET): Ditto.
2878         (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
2879         (struct ptt): Move to static file scope from override_options.
2880         (processor_target_table): Ditto.
2881         (cpu_names): Ditto.
2882         (ix86_handle_option): Add support for options that are now isa options.
2883         (override_options): Add support for declaring functions that
2884         support different target options than were specified on the
2885         command line.  Move struct ptt, processor_target_table, cpu_names,
2886         ix86_tune_defaulted, ix86_arch_specified to static file scope.
2887         Add bool argument.  Fix up error messages so the appropriate error
2888         is given for either command line or attribute.
2889         (ix86_previous_fndecl): New static to remember previous function
2890         declaration to see if we need to change target options.
2891         (ix86_builtins_isa): New array to record the ISA of each builtin
2892         function.
2893         (def_builtin): Always create the builtin function, even if the
2894         current ISA doesn't support it.
2895         (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
2896         tests for those builtins.
2897         (ix86_init_builtins): Remove TARGET_MMX test for calling
2898         ix86_init_mmx_sse_builtins.
2899         (ix86_expand_builtin): If the current ISA doesn't support a given
2900         builtin, signal an error.
2901         (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
2902         (TARGET_SET_CURRENT_FUNCTION): Ditto.
2903         (TARGET_OPTION_SAVE): Ditto.
2904         (TARGET_OPTION_RESTORE): Ditto.
2905         (TARGET_OPTION_PRINT): Ditto.
2906         (TARGET_CAN_INLINE_P): Ditto.
2907
2908 2008-07-22  Rafael Avila de Espindola  <espindola@google.com>
2909
2910         * c-typeck.c (build_external_ref): Don't call assemble_external.
2911         * final.c (output_operand): Call assemble_external.
2912
2913 2008-07-21  DJ Delorie  <dj@redhat.com>
2914
2915         * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
2916         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
2917
2918 2008-07-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2919
2920         * config/spu/spu.md ("div<mode>3"): Convert into expander, move
2921         original insn and splitter contents into ...
2922         ("*div<mode>3_fast"): ... this new pattern.  Enable only if
2923         flag_unsafe_math_optimizations.  Add dummy scratch register.
2924         ("*div<mode>3_adjusted"): New insn and splitter.  Enable only if
2925         !flag_unsafe_math_optimizations.  Returns number with next
2926         highest magnitude if this is still less or equal to the true
2927         quotient in magnitude.
2928
2929 2008-07-21  Rafael Avila de Espindola  <espindola@google.com>
2930
2931         * Makefile.in: Replace toplev.h with TOPLEV_H.
2932         * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
2933         * c-lex.c (fe_file_change): Don't set in_system_header.
2934         * c-parser.c (c_token): Remove in_system_header.
2935         (c_lex_one_token): Don't set in_system_header.
2936         (c_parser_set_source_position_from_token): Don't set in_system_header.
2937         * diagnostic.c (diagnostic_report_diagnostic): Use location from
2938         diagnostic_info.
2939         (warning_at): New.
2940         * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
2941         * flags.h (in_system_header): Remove.
2942         * function.c (saved_in_system_header): Remove.
2943         (push_cfun): Don't set in_system_header.
2944         (pop_cfun): Don't set in_system_header.
2945         (push_struct_function): Don't set in_system_header.
2946         * input.h (expanded_location): Add sysp.
2947         (in_system_header_at): New.
2948         (in_system_header): New.
2949         * toplev.c (in_system_header): Remove.
2950         * toplev.h: Include input.h
2951         (warning_at): New.
2952         * tree-cfg.c (execute_warn_function_return): Call warning_at.
2953         * tree-ssa.c (warn_uninit): Call warning_at.
2954         (warn_uninitialized_var): Update calls to warn_uninit.
2955         (warn_uninitialized_phi): Update calls to warn_uninit.
2956         * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
2957         (expand_location): Initialize xloc.sysp.
2958         * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
2959         (tree_decl_with_vis): Remove in_system_header_flag.
2960
2961 2008-07-21  Andreas Krebbel  <krebbel1@de.ibm.com>
2962
2963         PR target/36822
2964         * recog.c (asm_operand_ok): Change the order of the extra
2965         memory constraint checks.
2966
2967 2008-07-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2968
2969         PR tree-opt/36879
2970         * tree-switch-conversion.c (build_one_array): Call
2971         varpool_mark_needed_node and varpool_finalize_decl
2972         instead of assemble_variable.
2973
2974 2008-07-19  Jan Hubicka  <jh@suse.cz>
2975
2976         * cgraph.c (cgraph_add_new_function): Do early local passes.
2977         * tree-nrv.c (gate_pass_return_slot): New gate.
2978         (pass_nrv): Add the gate.
2979         * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
2980         functions.
2981         (coalesce_ssa_name): Coalesce SSA names.
2982         * tree-ssa-live.c (remove_unused_locals): Be more conservative when
2983         not optimizing so unused user vars remains visible.
2984         * common.opt (flag_tree_ter): Always enable by default.
2985         * tree-ssa-ter.c: Include flags.h
2986         (is_replaceable_p): Check that locations match; when aliasing is missing
2987         be conservative about loads.
2988         * tree-optimize.c (gate_init_datastructures): Remove.
2989         (pass_init_datastructures): New.
2990         * passes.c: Reorder passes so we always go into SSA.
2991
2992 2008-07-19  Jan Hubicka  <jh@suse.cz>
2993
2994         * doc/extend.texi (flatten attribute): Remove note about unit-at-a-time
2995         * doc/invoke.texi (--combine): Likewise.
2996         (-finline-functions-called-once): Update levels when enabled.
2997         (-funit-at-a-time): Document new behaviour.
2998         (-ftoplevel-reorder): Document that it is enabled -O0 and imply
2999         -fno-section-anchors when disabled explicitly.
3000         (inline params): They are not ignored now.
3001         (precompiled headers): Remove unit-at-a-time as being incompatible.
3002         * opts.c (decode_options): Handle unit-at-a-time as alias;
3003         imply -fno-section-anchors when toplevel reorder is disabled
3004         explicitly.
3005         * common.opt (ftoplevel-reorder): Set default value to 2.
3006         (funit-at-a-time): Set default value to 1.
3007         * config/rs6000/rs6000.c (optimization_options): Set section anchors
3008         to 2.
3009
3010 2008-07-19  Jan Hubicka  <jh@suse.cz>
3011
3012         * builtins.c (expand_builtin_int_roundingfn,
3013         expand_builtin_int_roundingfn_2): Do not take subtarget argument;
3014         it is not useful.
3015
3016 2008-07-19  Richard Guenther  <rguenther@suse.de>
3017
3018         PR bootstrap/36864
3019         * tree-ssa-sccvn.h (get_constant_value_id): Declare.
3020         * tree-ssa-sccvn.c (get_constant_value_id): New function.
3021         * tree-ssa-pre.c (get_expr_value_id): For newly created
3022         constant value-ids make sure to add the expression to its
3023         expression-set.
3024
3025 2008-07-19  Jakub Jelinek  <jakub@redhat.com>
3026
3027         PR middle-end/36877
3028         * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
3029         return value of the builtin is ignored.
3030
3031 2008-07-19  Olivier Hainque  <hainque@adacore.com>
3032
3033         * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
3034         bits, a C conformant malloc implementation has to provide.
3035         * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
3036
3037 2008-07-19  Joseph Myers  <joseph@codesourcery.com>
3038
3039         PR target/36780
3040         PR target/36827
3041         * reload.c (find_reloads_subreg_address): Only reload address if
3042         reloaded == 0, not for reloaded != 1.
3043
3044         Revert:
3045         2008-07-16  Joseph Myers  <joseph@codesourcery.com>
3046         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
3047         (m32c_legitimate_address_p): Handle "++rii" addresses created by
3048         m32c_legitimize_reload_address.
3049
3050         2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
3051         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
3052         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
3053
3054 2008-07-19  Olivier Hainque  <hainque@adacore.com>
3055
3056         * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
3057         argument, saying whether nested array are to be collapsed
3058         into a single array type DIE with multiple subscripts.
3059         (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
3060         issues, centralize the nested array types collapsing control and
3061         disable the transformation for Ada.
3062
3063 2008-07-18  Uros Bizjak  <ubizjak@gmail.com>
3064
3065         PR target/36786
3066         * config/i386/i386.md (x86_64_shift_adj_1): Rename from
3067         x86_64_shift_adj.
3068         (x86_64_shift_adj_2): New expander.
3069         (x86_64_shift_adj_3): Ditto.
3070         * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
3071         to split TImode operands.
3072         (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
3073         (ix86_split_lshr): Ditto.
3074
3075 2008-07-18  Kris Van Hees  <kris.van.hees@oracle.com>
3076
3077         * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
3078         and __CHAR32_TYPE__.
3079         * c-typeck.c (digest_init): Support char16_t and char32_t.
3080         (set_nonincremental_init_from_string): Idem.
3081
3082 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
3083
3084         PR middle-end/36859
3085         * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
3086         PREFERRED_STACK_BOUNDARY.
3087         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
3088
3089 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
3090
3091         PR middle-end/36858
3092         * function.c (locate_and_pad_parm): Cap boundary earlier.
3093
3094 2008-07-17  Julian Brown  <julian@codesourcery.com>
3095
3096         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
3097         no-op for targets which don't use DLLs.
3098
3099 2008-07-17  Martin Jambor  <mjambor@suse.cz>
3100
3101         * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
3102         that nodes are relevant by examining the node->analyzed flag.
3103         (ipcp_init_stage): Check which nodes are relevant, assert that the
3104         relevant ones are also required.
3105         (ipcp_propagate_stage): Check on the side arrays are properly
3106         allocated.
3107         (ipcp_print_all_jump_functions): Make sure not to touch any node
3108         that is not analyzed or an edge that does not have a corresponding
3109         entry in the on-the-side vectors.
3110         (ipcp_function_scale_print): Likewise.
3111         (ipcp_update_callgraph): Check that the node is relevant.
3112         (ipcp_insert_stage): Check that the node is relevant.  Check there is
3113         an info for every node and edge.
3114         * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
3115         (ipa_print_all_tree_maps): Likewise and a new variable info.
3116         (ipa_print_all_params_modified): Likewise.
3117         * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
3118
3119 2008-07-17  Roman Zippel <zippel@linux-m68k.org>
3120
3121         PR target/25343
3122         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
3123
3124 2008-07-17  Paolo Bonzini  <bonzini@gnu.org>
3125
3126         PR rtl-optimization/36753
3127         * fwprop.c (use_killed_between): Don't shortcut
3128         single-definition global registers.
3129
3130 2008-07-16  Jan Hubicka  <jh@suse.cz>
3131
3132         * cgraph.h (varpool_empty_needed_queue): Declare.
3133         * cgraphunit.c (output_in_order): Mark all variables as needed;
3134         empty the queue.
3135         * varpool.c (varpool_assemble_node): Update debug queue.
3136         (varpool_assemble_pending_decls): Don't do it here.
3137         (varpool_empty_needed_queue):  New function.
3138
3139 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3140
3141         * recog.c (peephole2_optimize): Fix formatting.
3142
3143 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3144
3145         * c-pch.c (get_ident): Avoid C++ keywords.
3146         * combine-stack-adj.c (single_set_for_csa): Likewise.
3147         * final.c (asm_insn_count, final_scan_insn, alter_subreg,
3148         output_asm_insn): Likewise.
3149         * reload.c (push_secondary_reload, find_reusable_reload,
3150         push_reload, combine_reloads, find_reloads,
3151         debug_reload_to_stream): Likewise.
3152         * reload.h (struct reload): Likewise.
3153         * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
3154         allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
3155         emit_output_reload_insns): Likewise.
3156         * targhooks.c (default_secondary_reload): Likewise.
3157         * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
3158
3159 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3160
3161         * recog.c (validate_change_1, validate_change,
3162         validate_unshare_change, validate_replace_rtx_1, struct
3163         funny_match, constrain_operands, peephole2_optimize): Avoid C++
3164         keywords.
3165         * reload.c (push_secondary_reload, secondary_reload_class,
3166         scratch_reload_class, find_valid_class, find_reusable_reload,
3167         push_reload, find_dummy_reload, find_reloads_address_1,
3168         find_reloads_address_part, find_equiv_reg): Likewise.
3169         * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
3170         choose_reload_regs): Likewise.
3171         * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
3172         Likewise.
3173         * rtlhooks.c (gen_lowpart_if_possible): Likewise.
3174         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
3175         * sched-rgn.c (concat_INSN_LIST): Likewise.
3176         * stor-layout.c (mode_for_size, mode_for_size_tree,
3177         smallest_mode_for_size): Likewise.
3178
3179 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3180
3181         * cfg.c (dump_reg_info): Avoid C++ keywords.
3182         * dwarf2asm.c (dw2_force_const_mem,
3183         dw2_asm_output_encoded_addr_rtx): Likewise.
3184         * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
3185         * expmed.c (expand_shift): Likewise.
3186         * global.c (find_reg): Likewise.
3187         * graph.c (draw_edge): Likewise.
3188         * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
3189         * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
3190         widen_clz, widen_bswap, expand_parity, expand_unop,
3191         emit_cmp_and_jump_insn_1): Likewise.
3192         * postreload.c (reload_cse_simplify_operands): Likewise.
3193         * ra.h (add_neighbor): Likewise.
3194         * reg-stack.c (remove_regno_note, change_stack): Likewise.
3195         * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
3196         record_reg_classes, copy_cost, record_address_regs,
3197         invalid_mode_change_p): Likewise.
3198         * regrename.c (regrename_optimize, scan_rtx_reg,
3199         dump_def_use_chain, find_oldest_value_reg,
3200         replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
3201
3202 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
3203
3204         * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
3205         MASK_POWERPC64 for power4 in previous commit.
3206
3207 2008-07-16  Olivier Hainque  <hainque@adacore.com>
3208
3209         * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
3210         instead of bare conversion to cast const-ness away.
3211
3212 2008-07-16  Anatoly Sokolov  <aesok@post.ru>
3213
3214         * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
3215         XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
3216         * config/xtensa/xtensa.c (xtensa_function_value): New function.
3217         (TARGET_FUNCTION_VALUE): Define.
3218
3219 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
3220
3221         * config/rs6000/rs6000.c (processor_target_table): Add
3222         MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
3223
3224 2008-07-16  Joseph Myers  <joseph@codesourcery.com>
3225
3226         PR target/36827
3227         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
3228         (m32c_legitimate_address_p): Handle "++rii" addresses created by
3229         m32c_legitimize_reload_address.
3230
3231 2007-07-16  Rafael Avila de Espindola  <espindola@google.com>
3232
3233         * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
3234         DECL_IN_SYSTEM_HEADER in sync.
3235
3236 2008-07-15  Daniel Berlin  <dberlin@dberlin.org>
3237
3238         * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
3239         * tree-ssa-pre.c (pre_expr_eq): Ditto
3240         (get_constant_for_value_id): Take a type as an argument.
3241         (fully_constant_expression): Pass in type.
3242         (find_or_generate_expression): Short circuit constant case.
3243         (create_expression_by_pieces): Remove special casing of
3244         pointer_plus.
3245         (do_regular_insertion): Short circuit constant case.
3246         (do_partial_partial_insertion): Ditto.
3247
3248 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
3249
3250         PR target/36782
3251         * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
3252
3253 2008-07-15  Bob Wilson  <bob.wilson@acm.org>
3254
3255         * config/xtensa/libgcc-xtensa.ver: New file.
3256         * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
3257
3258 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3259
3260         * df-problems.c (df_set_note): Avoid C++ keywords.
3261         * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
3262         * dse.c (record_store, remove_useless_values): Likewise.
3263         * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
3264         gen_reg_rtx_offset, operand_subword, change_address_1,
3265         change_address, adjust_address_1, offset_address,
3266         widen_memory_access, emit_copy_of_insn_after): Likewise.
3267         * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
3268         * fwprop.c (should_replace_address, propagate_rtx_1,
3269         propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
3270         Likewise.
3271         * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
3272         gcse_emit_move_after, update_ld_motion_stores): Likewise.
3273         * lcm.c (compute_insert_delete, pre_edge_lcm,
3274         compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
3275         * lower-subreg.c (resolve_reg_notes): Likewise.
3276         * mode-switching.c (optimize_mode_switching): Likewise.
3277
3278 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3279
3280         * bt-load.c (add_btr_def, migrate_btr_def,
3281         branch_target_load_optimize): Avoid C++ keywords.
3282         * caller-save.c (insert_restore, insert_save, insert_one_insn):
3283         Likewise.
3284         * combine.c (subst, simplify_set, make_extraction,
3285         make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
3286         * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
3287         fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
3288
3289 2008-07-15  Richard Guenther  <rguenther@suse.de>
3290
3291         PR middle-end/36369
3292         * c-common.c (strict_aliasing_warning): Do not warn for
3293         TYPE_REF_CAN_ALIAS_ALL pointers.
3294         (c_common_get_alias_set): may_alias types are not special.
3295         * tree.c (build_pointer_type_for_mode): Look up the may_alias
3296         attribute and set can_ref_all accordingly.
3297         (build_reference_type_for_mode): Likewise.
3298         * doc/extend.texi (may_alias): Clarify.
3299
3300 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
3301
3302         PR target/36780
3303         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
3304         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
3305
3306 2008-07-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3307
3308         PR target/31568
3309         * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
3310         gcc_assert, instead call output_operand_lossage.
3311
3312 2008-07-15  Kai Tietz  <kai.tietz@onevision.com>
3313
3314         * builtins.c (std_canonical_va_list): Treat structure based
3315         va_list types.
3316
3317 2008-07-15  Ben Elliston  <bje@au.ibm.com>
3318
3319         * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
3320
3321 2007-07-14  Rafael Avila de Espindola  <espindola@google.com>
3322
3323         * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
3324         is set.
3325
3326 2008-07-14  Jan Hubicka  <jh@suse.cz>
3327
3328         * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
3329         * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
3330         fix predicates and constraints.
3331         * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
3332         * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
3333
3334 2008-07-14  Doug Kwan  <dougkwan@google.com>
3335
3336         * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
3337         additional option file arm/eabi.opt.
3338         * config/arm/eabi.h (File): New configuration file for EABI targets.
3339         * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
3340         SUBSUBTARGET_EXTRA_SPECS.
3341         (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
3342         * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
3343         from STARTFILE_SPEC so that it can be referenced in an override.
3344         (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
3345         (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
3346         can be referenced in an override.
3347         (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
3348         * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
3349         so that it can be referenced in an override.
3350         (LINK_SPEC): Use BPABI_LINK_SPEC.
3351         * config/arm/eabi.opt (File): New.
3352
3353 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3354
3355         * Makefile.in (TARGET_DEF_H): Add targhooks.h.
3356         (FIXED_VALUE_H): New variable.
3357         (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
3358         input.h, fixed-value.h.
3359         (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
3360         (BASIC_BLOCK_H): Use $(BITMAP_H).
3361         (FUNCTION_H): Add varray.h.
3362         (IPA_REFERENCE_H): Use $(BITMAP_H).
3363         (CGRAPH_H): Add $(BASIC_BLOCK_H).
3364         (DF_H): Use $(BITMAP_H).
3365         (GGC_H): Add statistics.h.
3366         (INSN_ADDR_H): New.
3367         (INSN_ATTR_H): Use it.
3368         (SYSTEM_H): Add safe-ctype.h, filenames.h.
3369         (INPUT_H): New.
3370         (SYMTAB_H): Add $(OBSTACK_H).
3371         (CPP_INTERNAL_H): New.
3372         (TREE_DUMP_H): Add tree-pass.h.
3373         (TREE_FLOW_H): Use $(BITMAP_H)
3374         (PRETTY_PRINT_H): Use $(INPUT_H).
3375         (EBITMAP_H): Rename from typo-ed EBIMAP_H.
3376         (GSTAB_H): New.
3377         (BITMAP_H): New.
3378         (many object files): Fix lots of header dependencies throughout.
3379
3380 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3381
3382         * Makefile.in (write_entries_to_file, write_entries_to_file_split):
3383         New macros.
3384         (s-gtyp-input): Use them to write tmp-gi.list.
3385         (echo_to_gi.list): Remove.
3386
3387 2008-07-14  Richard Guenther  <rguenther@suse.de>
3388
3389         * tree-ssa-sccvn.c (pre_info): Remove.
3390         (switch_to_PRE_table): Likewise.
3391         (free_scc_vn): Do not clear&