OSDN Git Service

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