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