OSDN Git Service

fix date typo
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
2             Nathan Sidwell  <nathan@codesourcery.com>
3
4         * config/rs6000/rs6000.opt (mspe): Remove Var property.
5         (misel): Likewise.
6         * config/rs6000/rs6000.h (rs6000_spe): Declare.
7         (rs6000_isel): Likewise.
8         * config/rs6000/rs6000.c (rs6000_spe): New variable.
9         (rs6000_isel): New variable.
10         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
11
12 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
13
14         PR c++/35758
15         * c-common.c (handle_vector_size_attribute): Call
16         lang_hooks.types.reconstruct_complex_type instead of
17         reconstruct_complex_type.
18         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
19         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
20         * langhooks.h (struct lang_hooks_for_types): Add
21         reconstruct_complex_type hook.
22         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
23         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
24
25 2008-04-24  Richard Guenther  <rguenther@suse.de>
26
27         * c-common.h (check_builtin_function_arguments): Declare.
28         * c-common.c (validate_nargs): New function.
29         (check_builtin_function_arguments): Likewise.
30         * c-typeck.c (build_function_call): Call
31         check_builtin_function_arguments.
32         * builtins.c (fold_builtin_classify): Remove error reporting code.
33         (fold_builtin_unordered_cmp): Likewise.
34         (fold_builtin_1): Likewise.
35         (fold_builtin_n): Likewise.
36
37 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
38
39         PR tree-optimization/36008
40         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
41         the original op1, rather than delta by step.
42
43 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
44             Sebastian Pop  <sebastian.pop@amd.com>
45
46         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
47         eliminate_local_variables_stmt, eliminate_local_variables,
48         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
49         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
50         of code delimited by two edges in the CFG.
51         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
52         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
53         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
54         the case of parallelisation of reductions.
55         (expr_invariant_in_region_p): New.
56
57         * tree-flow.h (gather_blocks_in_sese_region): Declared.
58         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
59
60 2008-04-24  Ira Rosen  <irar@il.ibm.com>
61         Richard Guenther  <rguenther@suse.de>
62
63         PR tree-optimization/36034
64         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
65         incapable of dealing with loads with gaps.
66
67 2008-04-24  Rafael Espindola  <espindola@google.com>
68
69         * tree-flow.h (vrp_evaluate_conditional): Change signature.
70         * tree-ssa-propagate.c (fold_predicate_in): Update call to
71         vrp_evaluate_conditional.
72         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
73         (vrp_evaluate_conditional): Split the cond argument.
74         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
75         (simplify_stmt_for_jump_threading): Update call to
76         vrp_evaluate_conditional.
77
78 2008-04-24  Ira Rosen  <irar@il.ibm.com>
79
80         PR tree-optimization/35982
81         * tree-vect-analyze.c (vect_check_interleaving): Check that the
82         interleaved data-refs are of the same type.
83
84 2008-04-24  Danny Smith  <dannysmith@users.net>
85
86         * c-format.c (check_format_info_main): Use strncmp rather than a magic prefix
87         to handle multichar length specs.
88         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
89         Don't prefix "I64" and "I32" with '\0'.
90
91 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
92
93         PR target/36015
94         * config/i386/i386.c (init_cumulative_args): Don't pass anything
95         in registers for -m32 only if stdarg_p (fntype).
96
97 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
98
99         PR rtl-optimization/36006
100         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
101         temp to op0 in order to avoid invalid rtx sharing.
102
103 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
104
105         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
106         check TREE_INVARIANT.
107         * tree-gimple.c (is_gimple_address): New.
108         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
109         * tree-gimple.h (is_gimple_address): New.
110         * tree.h (decl_address_invariant_p): New.
111         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
112         (build_string): Likewise.
113         (decl_address_invariant_p): New, from is_gimple_invariant_address.
114         (tree_invariant_p_1): Likewise.
115         (save_expr): Use it.
116         (tree_invariant_p): New.
117         (skip_simple_arithmetic): Use it.
118         (stabilize_reference_1): Use it.
119         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
120         simplify.
121         (build1_stat): Drop code to compute TREE_INVARIANT.
122         (build2_stat): Drop code to compute TREE_INVARIANT.
123         (build3_stat): Drop code to compute TREE_INVARIANT.
124         (build4_stat): Drop code to compute TREE_INVARIANT.
125         (build5_stat): Drop code to compute TREE_INVARIANT.
126         (build7_stat): Drop code to compute TREE_INVARIANT.
127         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
128         * tree.h (struct tree_base): Remove invariant_flag.
129         (TREE_INVARIANT): Remove.
130         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
131         (fold_builtin_expect): Check TREE_CONSTANT.
132         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
133         * c-tree.h (c_expr_to_decl): Drop third parameter.
134         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
135         (build_c_cast): Don't set TREE_INVARIANT.
136         (pop_init_level): Don't set TREE_INVARIANT.
137         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
138         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
139         TREE_CONSTANT.
140         (gimplify_init_constructor): Don't set TREE_INVARIANT.
141         (gimplify_addr_expr): Adjust comment.
142         * tree-mudflap.c (mf_build_string):
143         * print-tree.c (print_node): Don't print TREE_INVARIANT.
144         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
145         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
146         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
147         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
148         * langhooks.h (struct lang_hooks): Drop third parameter from
149         expr_to_decl.
150
151 2008-04-23  Richard Guenther  <rguenther@suse.de>
152
153         PR tree-optimization/27799
154         PR tree-optimization/32921
155         PR tree-optimization/32624
156         * tree-ssa-structalias.c (merge_smts_into): Only merge the
157         SMTs aliases and the tag itself into the solution.
158         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
159         merge the points-to solution back into the SMT aliases.
160         (may_alias_p): Use alias_set_subset_of instead of
161         aliases_conflict_p.  A pointer which points to
162         memory with alias set zero may access any variable.
163
164 2008-04-23  Richard Guenther  <rguenther@suse.de>
165
166         * alias.c (alias_set_subset_of): Correctly handle asking
167         if zero is a subset of an alias set with zero child.
168         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
169         (compute_flow_insensitive_aliasing): Correctly walk all
170         pointers.  Do not unnecessarily union sets.
171
172 2008-04-23  Richard Guenther  <rguenther@suse.de>
173
174         PR middle-end/36021
175         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
176
177 2008-04-22  Tomas Bily  <tbily@suse.cz>
178
179         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
180         unreachable case.
181         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
182         NON_LVALUE_EXPR.
183         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
184         * tree-ssa-structalias.c (get_constraint_for): Likewise.
185         * tree-inline.c (estimate_num_insns_1): Likewise.
186         * varasm.c (const_hash_1, compare_constant, copy_constant)
187         (compute_reloc_for_constant, output_addressed_constants): Likewise.
188         * emit-rtl.c (component_ref_for_mem_expr)
189         (set_mem_attributes_minus_bitpos): Likewise.
190         * expr.c (highest_pow2_factor, expand_expr_real_1, )
191         (is_aligning_offset): Likewise.
192         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
193         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
194         * dojump.c (do_jump): Likewise.
195         * builtins.c (get_pointer_alignment, get_memory_rtx)
196         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
197         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
198
199 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
200
201         PR rtl-optimization/36017
202         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
203         expanding the library call.
204
205 2008-04-22  Ian Lance Taylor  <iant@google.com>
206
207         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
208         than size_in_bytes.
209
210 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
211
212         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
213         of LR/CTR moves for Power6.
214
215 2008-04-22  Kenneth Zadeck <zadeck@naturalbridge.com>
216
217         PR middle-end/36003
218         * passes.c (init_optimization_passes): Remove
219         pass_fast_rtl_byte_dce.
220         
221 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
222
223         PR target/29096
224         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
225         builtin functions to generate faster code.
226         (_mm_cvtpu16_ps): Ditto.
227         (_mm_cvtpi32x2_ps): Ditto.
228
229 2008-04-22  Nick Clifton  <nickc@redhat.com>
230
231         * common.opt (ftree-loop-distribution): Add Optimization
232         attribute.
233
234         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
235         (frv_expand_builtin_va_start): Likewise.
236
237         * config/arm/arm.c (thumb_find_work_register): Fix location of
238         argument register count.
239
240 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
241
242         Support scheduling for ColdFire V1 and V3 microarchitecture.
243         Improve scheduling of multiplication instructions.
244
245         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
246         (mac): New instruction attribute.
247         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
248         (m68k_sched_mac): New variable.
249         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
250         Handle cfv1 and cfv3.
251         (max_insn_size): New static variable.
252         (struct _sched_ib): New type.
253         (sched_ib): New static variable.
254         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
255         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
256         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
257         Update.
258         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
259         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
260         new variables.  Update.
261         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
262         Add modeling of cfv3 instruction buffer.  Update.
263         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
264         * config/m68k/m68k.h (TUNE_CFV3): New macro.
265         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
266         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
267         a particular reservation applies to.
268         (type2): Reorganize attribute values.  Rename alu to alu_reg,
269         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
270         to mul_l and mul_w.
271         (cf_ib_*): Simplify description of instruction buffer.
272         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
273         (cf_mem): Split into cf_mem1 and cf_mem2.
274         (cf_v2_move_??): Rename to cfv12_alu_??.
275         (cf_v2_move_l_??): Rename to cfv12_omove_??.
276         (cf_v2_mul_??): Remove reservations.
277         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
278         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
279         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
280         appropriate place.
281         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
282         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
283         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
284         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
285         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
286         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
287         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
288         expansions of the above reservations for instructions of sizes
289         1, 2 and 3 words.
290
291 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
292
293         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
294
295 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
296
297         * coverage.c: Include tree-pass.h.
298         (coverage_counter_alloc): Print da_file_name to the dump file.
299
300 2008-04-21  Kenneth Zadeck <zadeck@naturalbridge.com>
301
302         * sbitmap.c (sbitmap_range_empty_p): New function.
303         * sbitmap.h (sbitmap_range_empty_p): New function.
304         * bitmap.h: Now includes obstack.h.
305
306 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
307             Kenneth Zadeck <zadeck@naturalbridge.com>
308
309         * dbgcnt.def (ra_byte_scan): Added.
310         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
311         when the last hit happens for a counter.  
312         * timevar.def (TV_DF_BYTE_LR): New variable.
313         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
314         * passes.c (pass_fast_rtl_byte_dce): New pass.
315         * fwprop.c (update_df): Added mode to call df_ref_create.
316         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
317         DF_REF_EXTRACT_OFFSET.
318         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
319         DF_BYTE_LR_OUT, df_byte_lr): New macro.
320         (df_mm): New enum.
321         (df_ref_extract): Added mode field.
322         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
323         DF_REF_EXTRACT_OFFSET.
324         (DF_REF_EXTRACT_MODE): New macro.
325         (df_byte_lr_bb_info): New structure.
326         (df_print_byte_regset, df_compute_accessed_bytes, 
327         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
328         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
329         df_byte_lr_simulate_uses,
330         df_byte_lr_simulate_artificial_refs_at_top,
331         df_byte_lr_simulate_artificial_refs_at_end,
332         df_compute_accessed_bytes): New function.
333         (df_ref_create): Add parameter.
334         (df_byte_lr_get_bb_info): New inline function.
335         * df-scan.c (df_ref_record, df_uses_record,
336         df_ref_create_structure): Added mode parameter.
337         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
338         df_defs_record, df_uses_record, df_get_conditional_uses,
339         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
340         df_entry_block_defs_collect, df_exit_block_uses_collect):
341         Added mode parameter to calls to df_ref_record, df_uses_record,
342         df_ref_create_structure.
343         (df_ref_equal_p, df_ref_compare): Added test for modes.
344         (df_ref_create_structure): Added code to set mode.  Renamed
345         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
346         DF_REF_EXTRACT_OFFSET.
347         * df-core.c (df_print_byte_regset): New function.
348         * df-byte-scan.c: New file.
349         * df-problems.c (df_rd_transfer_function): Removed unnecessary
350         calls to BITMAP_FREE.  
351         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
352         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
353         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
354         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
355         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
356         df_byte_lr_local_compute, df_byte_lr_init,
357         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
358         df_byte_lr_transfer_function, df_byte_lr_free, 
359         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
360         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
361         df_byte_lr_simulate_uses,
362         df_byte_lr_simulate_artificial_refs_at_top,
363         df_byte_lr_simulate_artificial_refs_at_end): New function.
364         * dce.c (byte_dce_process_block): New function.
365         (dce_process_block): au is now passed in rather than computed
366         locally.  Changed loops that look at artificial defs to not look
367         for conditional or partial ones, because there never are any.  
368         (fast_dce): Now is able to drive byte_dce_process_block or 
369         dce_process_block depending on the kind of dce being done.
370         (rest_of_handle_fast_dce): Add parameter to fast_dce.
371         (rest_of_handle_fast_byte_dce): New function.
372         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
373         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
374
375 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
376
377         PR fortran/35019
378         * gcc.h: Added fortran options that take arguments to
379         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
380         macros.
381
382 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
383
384         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
385         scalarization if on the LHS and not a full access.
386
387 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
388
389         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
390
391 2008-04-18  Rafael Espindola  <espindola@google.com>
392
393         * tree-vrp.c (find_case_label_index): Fix the binary search.
394         (find_case_label_range): New.
395         (vrp_visit_switch_stmt): Use find_case_label_range.
396         (simplify_switch_using_ranges): Use find_case_label_range.
397
398 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
399
400         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
401         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
402
403 2008-04-18  Tom Tromey  <tromey@redhat.com>
404
405         PR libcpp/15500:
406         * doc/cpp.texi (Implementation-defined behavior): Mention
407         -finput-charset.
408
409 2008-04-18  Ian Lance Taylor  <iant@google.com>
410
411         * fold-const.c (pointer_may_wrap_p): New static function.
412         (fold_comparison): Add another test for pointer overflow.  Use
413         pointer_may_wrap_p to disable some false positives.
414
415 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
416           
417         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
418         (fname_as_string): Match updated cpp_interpret_string prototype.
419         (fix_string_type): Support char16_t* and char32_t*.
420         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
421         derivative) nodes.  Register as builtin if C++0x.
422         (c_parse_error): Support CPP_CHAR{16,32}.
423         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
424         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
425         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
426         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
427         CTI_CHAR32_ARRAY_TYPE>: New elements.
428         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
429         char32_type_node, signed_char32_type_node, char16_array_type_node,
430         char32_array_type_node): New defines.
431         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
432         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
433         (lex_string): Support CPP_STRING{16,32}, match updated
434         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
435         (lex_charconst): Support CPP_CHAR{16,32}.
436         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
437         and CPP_STRING{16,32}.
438
439 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
440
441         PR bootstrap/35457
442         * aclocal.m4: Regenerate.
443         * configure: Regenerate.
444
445 2008-04-18  Jan Hubicka  <jh@suse.cz>
446
447         * except.c (dw2_size_of_call_site_table,
448         sjlj_size_of_call_site_table): Use vector API for call_site_record.
449
450         * cgraphbuild.c (build_cgraph_edges): Update.
451         * tree-pass.h: Update comment.
452         * final.c (leaf_function_p): Update.
453         (leaf_renumber_regs): Update.
454         (rest_of_clean_state): Update.
455         * omp-low.c (expand_omp_parallel): Update.
456         * ipa-reference.c (analyze_function): Update.
457         * reorg.c (find_end_label): Update.
458         (optimize_skip): Update.
459         (fill_simple_delay_slots): Update.
460         (fill_simple_delay_slots): Update.
461         (make_return_insns): Update.
462         (dbr_schedule): Update.
463         * gimple-low.c (record_vars_into): Update.
464         * cfgbuild.c (make_edges): Update.
465         * function.c (assign_stack_local): Update.
466         (assign_parm_adjust_stack_rtl): Update.
467         (locate_and_pad_parm): Update.
468         (allocate_struct_function): Do not initialize stack_alignment_needed
469         and preferred_stack_boundary here.
470         (stack_protect_prologue): Update.
471         (stack_protect_epilogue): Update.
472         (expand_function_start): Initialize stack_alignment_needed,
473         preferred_stack_boundary and max_jumptable_ents.
474         (expand_function_end): Update.
475         (free_after_compilation): Do not NULLify epilogue_delay_list.
476         * function.h (struct rtl_data): Add stack_protect_guard,
477         stack_alignment_needed,
478         preferred_stack_boundary, epilogue_delay_list.
479         (struct function): Remove value_histograms, stack_alignment_needed,
480         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
481         last_label_uid,
482         unexpanded_var_list, stack_protect_guard.
483         (current_function_epilogue_delay_list): Remove.
484         * ipa-type-escape.c (analyze_function): Update.
485         * gimplify.c (pop_gimplify_context): Update comment.
486         * calls.c (expand_call): Update.
487         (emit_library_call_value_1): Update.
488         * except.c (set_nothrow_function_flags): Update.
489         * cfgexpand.c (get_decl_align_unit): Update.
490         (create_stack_guard): Update.
491         (estimated_stack_frame_size): Update.
492         (expand_used_vars): Update.
493         (tree_expand_cfg): Free histogram earliers, init expansion variables.
494         * explow.c (allocate_dynamic_stack_space): Update.
495         * tree-ssa-live.c (remove_unused_locals): Update.
496         * varasm.c (mark_constant_pool): Update.
497         * tree-inline.c (remap_decls): Update.
498         (initialize_cfun): Update.
499         (declare_return_variable): Update.
500         (inline_forbidden_p): Update.
501         (expand_call_inline): Update.
502         (declare_inline_vars): Update.
503         (tree_function_versioning): Update.
504         * tree-flow.h (value_histograms): New.
505         (VALUE_HISTOGRAMS): New macro.
506         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
507         last_label_uid.
508         * tree-cfg.c (set_bb_for_stmt): Update.
509         (replace_by_duplicate_decl): Update.
510         (move_block_to_fn): Update.
511         (new_label_mapper): Update.
512         (dump_function_to_file): Update.
513         * ipa-struct-reorg.c (build_data_structure): Update.
514         * cfgrtl.c (print_rtl_with_bb): Update.
515         * reload1.c (reload): Update.
516         (reload): Update.
517         * config/i386/i386.c (setup_incoming_varargs_64,
518         ix86_compute_frame_layout): Update.
519         * config/arc/arc.c (arc_output_function_epilogue): Update.
520
521 2008-04-18  Marius Strobl <marius@FreeBSD.org>
522
523         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
524         for FreeBSD as well.
525         * gthr-posix95.h: Likewise.
526
527 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
528
529         PR rtl-optimization/35838
530         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
531         out the byte offset of the first subreg.
532
533 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
534
535         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
536         to split_ti instead of three separate calls with single member arrays.
537         (subti3 splitter): Ditto.
538         (adddi3 splitter): Ditto with split_di.
539         (subdi3 splitter): Ditto.
540         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
541         two separate calls with single member arrays.  Swap match_dup
542         operands 1 and 2 to better fit into the array.
543         (negdi2 splitter): Ditto with split_di.
544         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
545         two separate calls with single member arrays.  Swap match_dup operands
546         6 and 7 to better fit into the array.
547
548 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
549
550         * config/i386/i386.c (sse_builtin_type): New.
551         (bdesc_sse_args): Likewise.
552         (bdesc_sse_3arg): Removed.
553         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
554         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
555         IX86_BUILTIN_ROUNDPS.
556         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
557         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
558         IX86_BUILTIN_ROUNDPS.
559         (ix86_expand_sse_4_operands_builtin): Removed.
560         (ix86_expand_sse_operands_builtin): New.
561         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
562         and CODE_FOR_sse4_1_roundps.
563         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
564         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
565
566 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
567
568         PR target/35907
569         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
570         regs before frame pop when needed.  If use_backchain_to_restore_sp
571         then load backchain into a temp reg to restore vr and vrsave.  Add
572         code to restore vr after frame pop if possible.
573
574 2008-04-17  Richard Guenther  <rguenther@suse.de>
575
576         * tree-vn.c (expressions_equal_p): Do not check type
577         equality or compatibility before calling operand_equal_p.
578         * fold-const.c (operand_equal_p): Check equivalence of
579         integer constants before bailing out due to signedness or
580         precision differences.
581         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
582         spurious differences in type qualification.  Ignore types
583         for COMPONENT_REFs at all.
584
585 2008-04-17  Christian Bruel  <christian.bruel@st.com>
586
587         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
588         msw_skip comparison.
589         
590 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
591
592         PR c/35739
593         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
594         reg type.
595
596         PR tree-optimization/35899
597         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
598         rather than TREE_OPERAND.
599
600 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
601
602         PR target/35944
603         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
604         temporary registers.  Change operand predicate to general_operand.
605         (remainderxf3): Ditto.
606
607 2008-04-16  Richard Guenther  <rguenther@suse.de>
608
609         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
610         * tree-affine.c (aff_combination_expand): Look through some
611         conversions.
612
613 2008-04-15  Doug Kwan  <dougkwan@google.com>
614
615         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
616         for hex printing.
617         * tree-pretty-print.c (dump_generic_node): Ditto.
618         * final.c (output_addr_const): Ditto.
619         * dwarf2out.c (output_cfi): Ditto.
620         * c-pretty-print.c (pp_c_integer_constant): Ditto.
621         * print-rtl.c (print_rtx): Ditto.
622         * print-tree.c (print_node_brief, print_node): Ditto.
623         * c-common.c (match_case_to_enum_1): Ditto.
624         * sched-vis.c (print_value): Ditto.
625         * config/i386/i386.c (print_operand): Cast to long unsigned int
626         for hex printing.
627
628 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
629         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
630         MS Windows VirtualProtect function.
631
632 2008-04-15  Jan Hubicka  <jh@suse.cz>
633
634         * gengtype.c (write_root): Param_is argument is OK.
635         * expr.c (expand_expr_real_1): Update call of get_exception_*.
636         * function.h: Include varray.h
637         (rtl_eh): New stucture based on except.c one.
638         (call_site_record): New forward declaration and vector type.
639         * calls.c (emit_call_1): Do not call
640         note_current_region_may_contain_throw.
641         * except.c (eh_status): Remove cur_region, try_region since they are
642         unused.
643         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
644         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
645         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
646         Remove call_site_data_used, call_site_data_size.
647         Turn call_site_record into vector in function.h.
648         (note_current_region_may_contain_throw): Remove.
649         (get_exception_pointer, get_exception_filter): Do not take struct
650         function argument; update.
651         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
652         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
653         build_post_landing_pads, dw2_build_landing_pads,
654         sjlj_assign_call_site_values, sjlj_mark_call_sites,
655         sjlj_emit_function_enter, sjlj_emit_function_enter, 
656         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
657         sjlj_build_landing_pads, finish_eh_generation,
658         remove_exception_handler_label, remove_eh_handler,
659         maybe_remove_eh_handler, add_reachable_handler,
660         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
661         add_action_record, collect_one_action_chain, add_call_site,
662         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
663         sjlj_output_call_site_table, output_function_exception_table,
664         * except.h (note_current_region_may_contain_throw): Remove
665         (get_exception_pointer, get_exception_filter): Do not take struct
666         function argument.
667         * Makefile.in (GTFILES): Put varargs before struct function.
668
669 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
670
671         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
672         punt for STRING_CST.
673         (get_constraint_for): Deal with STRING_CST here instead.
674
675 2008-04-15  Richard Guenther  <rguenther@suse.de>
676
677         * tree-ssa-propagate.c (substitute_and_fold): Substitute
678         statements in a basic-block with a backward walk.  Do not
679         substitute into dead statements but instead remove those.
680
681 2008-04-15  Richard Guenther  <rguenther@suse.de>
682
683         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
684         to zero, thus disable creation of SFTs.
685
686 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
687
688         * tree-predcom.c (suitable_reference_p): Return false if the
689         reference can throw.
690
691 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
692
693         PR c/35751
694         * c-decl.c (finish_decl): If extern or static var has variable
695         size, set TREE_TYPE (decl) to error_mark_node.
696
697 2008-04-15  Rafael Espindola  <espindola@google.com>
698
699         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
700         variable arg1.
701
702 2008-04-15  Richard Guenther  <rguenther@suse.de>
703
704         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
705         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
706         (visit_reference_op_load): Do walk vuse-vdef chains on
707         vn_reference_lookup.
708         (visit_reference_op_store): But do not here.
709         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
710         vn_reference_lookup.
711         (vn_lookup_with_vuses): But do so here.
712
713 2008-04-14  Ian Lance Taylor  <iant@google.com>
714
715         * fold-const.c (fold_overflow_warning): Remove assertion.
716
717 2008-04-15  Ben Elliston  <bje@au.ibm.com>
718
719         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
720         temp1 local variables.
721
722 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
723
724         PR target/35661
725         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
726         ".text.unlikely" section as executable.
727
728 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
729
730         * config/ia64/ia64.c (rtx_needs_barrier): Handle
731         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
732         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
733         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
734         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
735         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
736         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
737
738 2008-04-14  Ian Lance Taylor  <iant@google.com>
739
740         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
741         * fold-const.c (fold_comparison): If appropriate, test
742         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
743         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
744         reassociating a pointer type.
745         * doc/invoke.texi (Optimize Options): Document that
746         -fstrict-overflow applies to pointer wraparound.
747
748 2008-04-13  Jan Hubicka  <jh@suse.cz>
749
750         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
751
752 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
753
754         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
755         we are going to "save the world".
756
757 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
758
759         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
760         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
761         operand 0 constraint, not "=".
762
763 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
764
765         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
766
767 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
768
769         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
770         of size of positions_needed * CHAR_BIT.
771
772 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
773
774         PR middle-end/35897
775         * dse.c (store_info): Change positions_needed to unsigned
776         HOST_WIDE_INT.
777         (lowpart_bitmask): New.
778         (record_store): Cast to unsigned HOST_WIDE_INT for
779         positions_needed.  Assert width <= size of positions_needed *
780         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
781         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
782         lowpart_bitmask to set mask.
783
784 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
785
786         * config/bfin/constraints.md: New file.
787         * config/bfin/bfin.md: Include it.
788         (adddi3): Use satisfies_constraint functions instead of the old macros.
789         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
790         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
791         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
792         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
793         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
794         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
795         EXTRA_CONSTRAINT): Delete.
796         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
797         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
798         of the old macros.
799         * config/bfin/bfin.c: Include "tm-constrs.h".
800         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
801         Use satisfies_constraint functions instead of the old macros.
802         * doc/md.texi (Blackfin Constraints): Update file name reference.
803
804 2008-04-11  Richard Guenther  <rguenther@suse.de>
805
806         PR tree-optimization/35869
807         * tree-vrp.c (execute_vrp): Move switch statement update after
808         jump threading.  Schedule another cfg cleanup run.
809
810 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
811
812         PR c/35744
813         * attribs.c (decl_attributes): Return early on errorneous node.
814
815 2008-04-10  Oleg Ryjkov  <olegr@google.com>
816
817         * tree.h (struct tree_base): Added a new flag default_def_flag.
818         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
819
820 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
821
822         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
823
824 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
825
826         PR target/35768
827         * pa.md: Define mode iterator P.  Define mode attribute dwc.
828         (dcacheflush): Update pattern to use iterator P and attribute dwc.
829         (icacheflush): Likewise.
830         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
831         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
832
833 2008-04-11  Ben Elliston  <bje@au.ibm.com>
834
835         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
836
837 2008-04-10  Rafael Espindola  <espindola@google.com>
838
839         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
840         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
841         (extract_range_from_expr): The same.
842
843 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
844
845         * config/mips/mips.md (GPR2): New mode iterator.
846         (seq): Add comment.
847         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
848         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
849         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
850         Rewrite these to take two modes, the mode of comparison and the
851         mode of the destination.
852         * config/mips/mips.c (mips_expand_scc): Instead of having
853         paradoxical subreg as destination, expand "narrowing" scc if mode
854         of comparison is SI and target is requested in DI mode.
855         (mips_emit_int_order_test): Update comment.  Make mode of
856         comparison match CMP0 rather than TARGET.  When creating inverse
857         target use mode of TARGET.
858
859 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
860
861         * gcov-dump.c (tag_summary): Only print summaries for the first
862         GCOV_COUNTERS_SUMMABLE counters.
863
864 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
865
866         * config/i386/i386.md (absneg): New code iterator.
867         (absnegprefix): New code attribute.
868         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
869         patterns using absneg code iterator.
870         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
871         using absneg code iterator.
872         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
873         *neg<mode>2 patterns using absneg code iterator.
874         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
875         *negextendsfdf2 patterns using absneg code iterator.
876         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
877         *negextendsfxf2 patterns using absneg code iterator.
878         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
879         *negextendsfdf2 patterns using absneg code iterator.
880         * config/i386/sse.md (<code><mode>2): Macroize expander from
881         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
882
883 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
884
885         * config/s390/s390.h: Remove the remains of the recent search
886         & replace action of current_function_outgoing_args_size.
887
888 2008-04-10  Ira Rosen  <irar@il.ibm.com>
889
890         PR tree-optimization/35821
891         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
892         NEW_STMT_LIST is not NULL.
893
894 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
895
896         PR libstdc++/35597
897         * toplev.c (process_options): Remove -ffunction-sections debugging
898         warning.
899
900 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
901
902         PR middle-end/PR28690
903         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
904         than gen_rtx_fmt_ee to perform more canonicalizations.
905
906 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
907
908         PR driver/35665
909         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
910
911 2008-04-09  Richard Guenther  <rguenther@suse.de>
912
913         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
914         (dump_function_to_file): Dump function arguments with types.
915
916 2008-04-08  Richard Guenther  <rguenther@suse.de>
917
918         * fold-const.c (fold_widened_comparison): Do not allow
919         sign-changes that change the result.
920
921 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
922
923         PR target/35839
924         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
925         kinds of indirect references.
926
927 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
928
929         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
930         GNU Fortran language string.
931
932 2008-04-08  Rafael Espindola  <espindola@google.com>
933
934         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
935         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
936         * tree.h (tree_call_nonnegative_warnv_p): New.
937
938 2008-04-08  Jan Hubicka  <jh@suse.cz>
939
940         * function.c (free_after_compilation): Clear out regno_reg_rtx
941         pointer.
942
943 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
944
945         Revert
946         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
947
948         PR middle-end/PR28690
949         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
950         same precedence as REG_POINTER and MEM_POINTER operands.
951
952 2008-04-08  Richard Guenther  <rguenther@suse.de>
953
954         PR middle-end/35834
955         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
956         for adding index to base.
957
958 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
959
960         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
961         (MINGW_ENABLE_EXECUTE_STACK): New.
962         (IN_LIBGCC2): For libgcc include windows.h file for
963         function declarations.
964
965 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
966
967         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
968         and tem2 if tem1 is not a REG or MULT.
969
970 2008-04-08  Jan Hubicka  <jh@suse.cz>
971
972         * function.h (incomming_args): Break out of struct function.
973         (function_subsections): Break out of struct function.
974         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
975         return_rtx and hard_reg_initial_vals from struct function.
976         Kill inl_max_label_num.
977         (current_function_pops_args, current_function_args_info,
978         current_function_args_size, current_function_args_size,
979         current_function_pretend_args_size,
980         current_function_outgoing_args_size,
981         current_function_internal_arg_pointer, current_function_return_rtx):
982         Kill compatibility accestor macros.
983         * builtins.c (expand_builtin_apply_args_1): Update.
984         (expand_builtin_next_arg): Update.
985         * df-scan.c (df_get_call_refs): Update.
986         * dbxout.c (dbxout_function_end): Update.
987         * dwarf2out.c (dwarf2out_switch_text_section): Update.
988         (output_line_info): Update.
989         (secname_for_decl): Update.
990         (dwarf2out_var_location): Update.
991         * function.c (free_after_compilation): Update.
992         (assign_parm_find_stack_rtl): Update.
993         (assign_parms): Update.
994         (expand_dummy_function_end): Update.
995         (expand_function_end): Update.
996         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
997         (expand_call): Update.
998         (emit_library_call_value_1): Update.
999         (store_one_arg): Update.
1000         * varasm.c (initialize_cold_section_name): Update.
1001         (unlikely_text_section): Update.
1002         (unlikely_text_section_p): Update.
1003         (assemble_start_function): Update.
1004         (assemble_end_function): Update.
1005         (default_section_type_flags): Update.
1006         (switch_to_section): Update.
1007         * integrate.c (set_decl_abstract_flags): Update.
1008         (get_hard_reg_initial_val): Update.
1009         (has_hard_reg_initial_val): Update.
1010         (allocate_initial_values): Update.
1011         * resource.c (init_resource_info): Update.
1012         * config/alpha/alpha.c (NUM_ARGS): Update.
1013         (direct_return): Update.
1014         (alpha_va_start): Update.
1015         (alpha_sa_size): Update.
1016         (alpha_initial_elimination_offset): Update.
1017         (alpha_expand_prologue): Update.
1018         (alpha_start_function): Update.
1019         (alpha_expand_epilogue): Update.
1020         (unicosmk_initial_elimination_offset):
1021         * config/alpha/alpha.md (call expander): Update.
1022         * config/s390/s390.c (s390_register_info): Update.
1023         (s390_register_info): Update.
1024         (s390_frame_info): Update.
1025         (s390_initial_elimination_offset): Update.
1026         (s390_build_builtin_va_list): Update.
1027         (s390_va_start): Update.
1028         * config/spu/spu.c (direct_return): Update.
1029         (spu_expand_prologue): Update.
1030         (spu_initial_elimination_offset): Update.
1031         (spu_build_builtin_va_list): Update.
1032         (spu_va_start): Update.
1033         * config/sparc/sparc.c (sparc_init_modes): Update.
1034         (sparc_compute_frame_size): Update.
1035         (function_value): Update.
1036         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
1037         * config/i386/i386.md (return expander): Update.
1038         * config/i386/i386.c (ix86_va_start): Update.
1039         (ix86_can_use_return_insn_p): Update.
1040         (ix86_compute_frame_layout): Update.
1041         (ix86_expand_epilogue): Update.
1042         * config/sh/sh.c (output_stack_adjust): Update.
1043         (calc_live_regs): Update.
1044         (sh_expand_prologue): Update.
1045         (sh_builtin_saveregs): Update.
1046         (sh_va_start): Update.
1047         (initial_elimination_offset): Update.
1048         (sh_allocate_initial_value): Update.
1049         (sh_function_ok_for_sibcall): Update.
1050         (sh_get_pr_initial_val): Update.
1051         * config/sh/sh.md (return expander): Update.
1052         * config/avr/avr.c (frame_pointer_required_p): UPdate.
1053         * config/crx/crx.c (crx_compute_frame): UPdate.
1054         (crx_initial_elimination_offset): UPdate.
1055         * config/xtensa/xtensa.c (compute_frame_size): Update
1056         (xtensa_builtin_saveregs): Update.
1057         (xtensa_va_start): Update.
1058         (order_regs_for_local_alloc): Update.
1059         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
1060         (xstormy16_expand_builtin_va_start): Update.
1061         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
1062         * config/m68hc11/m68hc11.md (return expanders): Update.
1063         * config/m68hc11/m68hc11.c (expand_prologue): Update.
1064         (expand_epilogue): Update.
1065         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
1066         (cris_simple_epilogue): Update.
1067         (cris_expand_prologue): Update.
1068         (cris_expand_epilogue): Update.
1069         * config/iq2000/iq2000.c (iq2000_va_start): Update.
1070         (compute_frame_size): Update.
1071         * config/mt/mt.c (mt_compute_frame_size): Update.
1072         * config/mn10300/mn10300.c (expand_prologue): Update.
1073         (expand_epilogue): Update.
1074         (initial_offset): Update.
1075         (mn10300_builtin_saveregs):
1076         * config/mn10300/mn10300.md (return expander): Update.
1077         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
1078         (ia64_initial_elimination_offset): Update.
1079         (ia64_initial_elimination_offset): Update.
1080         (ia64_expand_prologue): Update.
1081         * config/m68k/m68k.md (return expander): Update.
1082         * config/rs6000/rs6000.c (rs6000_va_start): Update.
1083         (rs6000_stack_info): Update.
1084         * config/mcore/mcore.c (layout_mcore_frame): Update.
1085         (mcore_expand_prolog): Update.
1086         * config/arc/arc.c (arc_compute_frame_size): Update.
1087         * config/score/score3.c (score3_compute_frame_size): Update.
1088         * config/score/score7.c (score7_compute_frame_size): Update.
1089         * config/arm/arm.c (use_return_insn): Update.
1090         (thumb_find_work_register): Update.
1091         (arm_compute_save_reg_mask): Update.
1092         (arm_output_function_prologue): Update.
1093         (arm_output_epilogue): Update.
1094         (arm_size_return_regs): Update.
1095         (arm_get_frame_offsets): Update.
1096         (arm_expand_prologue): Update.
1097         (thumb_exit): Update.
1098         (thumb_unexpanded_epilogue): Update.
1099         (thumb1_output_function_prologue): Update.
1100         * config/pa/pa.md (return expander): Update.
1101         * config/pa/pa.c (compute_frame_size): Update.
1102         (hppa_builtin_saveregs): Update.
1103         * config/mips/mips.c (mips_va_start): Update.
1104         (mips16_build_function_stub): Update.
1105         (mips_compute_frame_info): Update.
1106         (mips_restore_gp): Update.
1107         (mips_output_function_prologue): Update.
1108         (mips_expand_prologue): Update.
1109         * config/v850/v850.c (compute_frame_size): Update.
1110         (expand_prologue): * config/mmix/mmix.c (along): update.
1111         (mmix_initial_elimination_offset): update.
1112         (mmix_reorg): update.
1113         (mmix_use_simple_return): update.
1114         (mmix_expand_prologue): update.
1115         (mmix_expand_epilogue): Update.
1116         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
1117         (emit_link_insn): Update.
1118
1119 2008-04-08  Anatoly Sokolov <aesok@post.ru>
1120
1121         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
1122         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
1123         instructions.
1124         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
1125         atmega103 device.
1126
1127 2008-04-07  Jan Hubicka  <jh@suse.cz>
1128
1129         * function.h (rtl): Rename to x_rtl.
1130         (crtl): New define.
1131         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
1132         frame_offset, stack_check_probe_note, arg_pointer_save_area,
1133         used_temp_slots avail_temp_slots, temp_slot_level,
1134         nonlocal_goto_handler_labels): Update accesstors.
1135         (rtl): New global variable.
1136         (struct function): Move some fileds to rtl_data.
1137         (get_arg_pointer_save_area): Update prototype.
1138         * builtins.c (expand_builtin_setjmp_receiver): Update call of
1139         get_arg_pointer_save_area.
1140         * expr.c (init_expr): Update
1141         * function.c (get_frame_size): Update
1142         (assign_stack_local): Update
1143         (expand_function_end): Update.
1144         (get_art_pointer_save_area): Update
1145         * function.h 
1146         * emit-rtl.c (rtl): Declare.
1147         (regno_reg_rtx): Declare.
1148         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
1149         Update.
1150         (gen_reg_rtx): Update.
1151         * varasm.c (n_deferred_constatns): Update accestor.
1152         (init_varasm_status): Do not allocate varasm_status.
1153         (force_const_mem, get_pool_size, output_constant_pool): Update.
1154         * stmt.c (force_label_rtx): Do not use x_ prefixes.
1155         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
1156         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
1157         * sparc/sparc.h (INIT_EXPANDERS): Update.
1158         * ia64/ia64.h (INIT_EXPANDERS): Update.
1159
1160 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
1161
1162         * reload.c (push_secondary_reload): Add missing break to for loop.
1163
1164 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
1165
1166         PR middle-end/PR28690
1167         * rtlanal.c: Update copyright years.
1168         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
1169         as REG_POINTER and MEM_POINTER operands.
1170         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
1171         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
1172         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
1173         * gcse.c: Update copyright years.
1174         (pre_delete): Call gen_reg_rtx_and_attrs.
1175         (hoist_code): Likewise.
1176         (build_store_vectors): Likewise.
1177         (delete_store): Likewise.
1178         * loop-invariant.c (move_invariant_reg): Likewise.
1179         Update copyright years.
1180
1181 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
1182
1183         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
1184         control string instead of quoted.
1185
1186 2008-04-07  Kenneth Zadeck <zadeck@naturalbridge.com>
1187
1188         * doc/rtl.texi: Rewrite of subreg section.
1189
1190 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
1191
1192         PR/35842
1193         * config/i386/i386.c (legitimize_pic_address): Add treating
1194         of dllimport SYM_REF's.
1195         (legitimize_dllimport_symbol): Add prototype.
1196
1197 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
1198
1199         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
1200         reference in constructor with non self-referential type.
1201
1202 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
1203
1204         Removal of Return with Depressed Stack Pointer support
1205         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
1206         (ECF_SP_DEPRESSED): Likewise.
1207         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
1208         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
1209         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
1210         (expand_call): Do not test ECF_SP_DEPRESSED.
1211         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
1212         * function.c (keep_stack_depressed): Delete.
1213         (handle_epilogue_set): Likewise.
1214         (update_epilogue_consts): Likewise.
1215         (emit_equiv_load): Likewise.
1216         (thread_prologue_and_epilogue_insns): Remove support for Return with
1217         Depressed Stack Pointer.
1218         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
1219
1220 2008-04-06  Richard Guenther  <rguenther@suse.de>
1221
1222         PR tree-optimization/35400
1223         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
1224         information from SSA_NAMEs.
1225
1226 2008-04-06  Anatoly Sokolov <aesok@post.ru>
1227
1228         * config/avr/avr.h (avr_mega_p): Remove declaration.
1229         (AVR_MEGA): Remove macro.
1230         * config/avr/avr.c (avr_mega_p): Remove variable.
1231         (avr_override_options): Remove inicializion of avr_mega_p.
1232         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
1233         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
1234         (avr_jump_mode): (Ditto.).
1235         (avr_output_progmem_section_asm_op): (Ditto.).
1236         (avr_asm_init_sections): (Ditto.).
1237         (avr_asm_init_sections): (Ditto.).
1238         (avr_rtx_costs): (Ditto.).
1239         * config/avr/avr.md: (Ditto.).
1240         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
1241         '__AVR_MEGA__'.
1242
1243 2008-04-06  Richard Guenther  <rguenther@suse.de>
1244
1245         PR tree-optimization/35842
1246         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
1247         is_gimple_invariant_address.
1248
1249 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1250
1251         * gcc.c (default_compilers): Sync Fortran extensions list with
1252         that in fortran/lang-specs.h.
1253         * doc/invoke.texi: Likewise.
1254         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
1255         * dwarf2out.c (gen_compile_unit_die): Likewise.
1256
1257 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
1258
1259         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
1260
1261 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
1262
1263         PR target/12329
1264         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
1265         attribute is used for nested functions.
1266
1267 2008-04-05  Jan Hubicka  <jh@suse.cz>
1268
1269         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
1270
1271         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
1272         letter argument.
1273         (dump_files): Update.
1274         (enable_rtl_dump_file): Do not accept letter argument.
1275         * tree-pass.h (dump_file_info): Remove letter argument.
1276         * toplev.c (decode_d_option): Update -da handling.
1277         * toplev.h (enable_rtl_dump_file): Update prototype.
1278         * passes.c (register_one_dump_file): Do not accept IPA argument; work
1279         it out based on pass type.
1280         (register_dump_files_1): Likewise.
1281         (init_optimization_passes): Update register_one_dump_file calls.
1282         (execute_one_pass): Sanity check that IPA passes are called at IPA
1283         level and RTL passes at RTL level.
1284         (execute_pass_list): IPA pass can not be after or subpass of
1285         GIMPLE/RTL pass.
1286         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
1287         disallov RTL subpasses of IPA subpasses.
1288
1289 2008-04-05  Ben Elliston  <bje@au.ibm.com>
1290
1291         * tree-cfg.c (need_fake_edge_p): Return false for calls to
1292         builtins that return exactly once and do not throw. Cache call to
1293         call_expr_flags.
1294
1295 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
1296
1297         PR rtl-optimization/34916
1298         PR middle-end/35519
1299         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
1300         between instruction pairs.
1301
1302 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
1303
1304         * doc/invoke.texi: Document -mbitops for SH.
1305         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
1306         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
1307         * config/sh/sh.c (print_operand): Add %t operand code.
1308         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
1309         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
1310         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
1311         (extendqihi2): Likewise.
1312         (movqi_i): Likewise.
1313         (insv): Use bset, bclr and bst instructions for SH2A if possible.
1314         (extv): Use bld instruction for SH2A if possible.
1315         (extzv): Likewise.
1316         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
1317         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
1318         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
1319         (bset.b, bclr.b): Define peepholes.
1320         * config/sh/sh.opt (mbitops): New option.
1321
1322 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
1323
1324         PR target/35620
1325         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
1326         and view convert expression.
1327
1328 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
1329
1330         PR target/35364
1331         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
1332
1333 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
1334
1335         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
1336
1337         * config/i386/cpuid.h (bit_AES): New.
1338         (bit_PCLMUL): Likewise.
1339
1340         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
1341         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
1342         SSE2 if AES or PCLMUL is enabled.
1343         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
1344         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
1345         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
1346         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
1347         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
1348         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
1349         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
1350         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
1351         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
1352         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
1353         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
1354         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
1355         __builtin_ia32_aeskeygenassist128 and
1356         __builtin_ia32_pclmulqdq128.
1357         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
1358         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
1359         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
1360
1361         * config/i386/i386.h (TARGET_AES): New.
1362         (TARGET_PCLMUL): Likewise.
1363         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
1364
1365         * config/i386/i386.md (UNSPEC_AESENC): New.
1366         (UNSPEC_AESENCLAST): Likewise.
1367         (UNSPEC_AESDEC): Likewise.
1368         (UNSPEC_AESDECLAST): Likewise.
1369         (UNSPEC_AESIMC): Likewise.
1370         (UNSPEC_AESKEYGENASSIST): Likewise.
1371         (UNSPEC_PCLMUL): Likewise.
1372
1373         * config/i386/i386.opt (maes): New.
1374         (mpclmul): Likewise.
1375
1376         * config/i386/sse.md (aesenc): New pattern.
1377         (aesenclast): Likewise.
1378         (aesdec): Likewise.
1379         (aesdeclast): Likewise.
1380         (aesimc): Likewise.
1381         (aeskeygenassist): Likewise.
1382         (pclmulqdq): Likewise.
1383
1384         * config/i386/wmmintrin.h: New.
1385
1386         * doc/extend.texi: Document AES and PCLMUL built-in function.
1387
1388         * doc/invoke.texi: Document -maes and -mpclmul.
1389
1390 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
1391
1392         * function.c (free_after_parsing): Replace with
1393         cxx_push_function_context from C++ front-end.
1394         (allocate_struct_function): Don't call langhook.
1395         * langhooks.h (struct lang_hooks_for_functions): Delete.
1396         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
1397         member "function".
1398         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
1399         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
1400         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
1401         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
1402         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
1403         remove LANG_HOOKS_FUNCTION_INITIALIZER.
1404         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
1405
1406         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
1407         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
1408         
1409 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
1410
1411         PR c/35440
1412         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
1413         for all types.
1414
1415 2008-04-04  Richard Guenther  <rguenther@suse.de>
1416
1417         PR middle-end/35823
1418         * fold-const.c (optimize_minmax_comparison): Use the correct
1419         type for the constant in the simplified comparison.
1420
1421 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
1422
1423         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
1424         Pass L2 size as "--param l2-cache-size" to the compiler.
1425         (decode_l2_cache): New function to decode L2 cache parameters using
1426         0x8000006 extended cpuid function.
1427         (detect_caches_amd): Determine parameters of L2 cache using
1428         decode_l2_caches function.
1429         (decode_caches_intel): Decode L2 cache parameters.
1430         (detect_caches_intel): Determine L2 cache parameters using
1431         decode_caches_intel and decode_l2_caches functions.
1432
1433 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
1434
1435         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
1436         secondary input reload for subword loads from the constant pool.
1437
1438 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
1439
1440         PR target/35713
1441         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
1442           constants of the appropriate size for runtime calculations.
1443
1444         PR c/35712
1445         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
1446           decimal-float literal constant zero.
1447
1448 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
1449
1450         PR c/35738
1451         * c-parser.c (c_parser_omp_atomic): Call
1452         default_function_array_conversion on the RHS.
1453
1454         PR middle-end/35818
1455         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
1456         call is_variable_sized if decl has incomplete type.
1457
1458 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
1459
1460         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
1461
1462 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
1463
1464         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
1465         iterators.
1466         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
1467         (sgt<u>): Merge sgt and sgtu into new expander.
1468         (sgt, sgtu): Remove expanders.
1469         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
1470         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
1471         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
1472         *sgtu_<mode>_mips16 into new pattern.
1473         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
1474         (sge<u>): Merge sge and sgeu into new expander.
1475         (sge, sgeu): Remove expanders.
1476         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
1477         new pattern.
1478         (*sge_<mode>, second *sge_<mode>): Remove patterns.
1479         (slt<u>): Merge slt and sltu into new expander.
1480         (slt, sltu): Remove expanders.
1481         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
1482         (*slt_<mode>, *sltu_<mode>): Remove patterns.
1483         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
1484         *sltu_<mode>_mips16 into new pattern.
1485         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
1486         (sle<u>): Merge sle and sleu into new expander.
1487         (sle, sleu): Remove expanders.
1488         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
1489         (*sle_<mode>, *sleu_<mode>): Remove patterns.
1490         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
1491         *sleu_<mode>_mips16 into new pattern.
1492         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
1493
1494 2008-04-03  Jan Hubicka  <jh@suse.cz>
1495
1496         PR tree-optimization/35795
1497         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
1498         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
1499         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
1500         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
1501         * score/score3.c (score3_output_mi_thunk): Likewise.
1502         * score/score7.c (score7_output_mi_thunk): Likewise.
1503         * mips/mips.c (mips_output_mi_thunk): Likewise.
1504
1505 2008-04-03  Richard Guenther  <rguenther@suse.de>
1506
1507         * tree-vrp.c (extract_range_from_unary_expr): Handle all
1508         conversions.  Simplify code.
1509
1510 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
1511
1512         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
1513
1514 2008-04-03  Tom Tromey  <tromey@redhat.com>
1515             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1516
1517         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
1518         * config/bfin/t-bfin-linux (generated_files): Add
1519         linux-sysroot-suffix.h.
1520         * doc/install.texi (Prerequisites): Require make 3.80.
1521         * doc/sourcebuild.texi (Front End Directory): Document new
1522         variable.
1523         * Makefile.in (generated_files): New variable.
1524         (ALL_HOST_OBJS): New variable.
1525         ($(ALL_HOST_OBJS)): New target.
1526
1527 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
1528
1529         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
1530         (remap_block): Call id->transform_lang_insert_block instead
1531         of langhook.
1532         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
1533         Set id.transform_lang_insert_block to NULL.
1534         (clone_body): Move to cp/optimize.c
1535         * tree-inline.h (struct copy_body_data): Change
1536         transform_lang_insert_block to function pointer.
1537         (copy_generic_body, copy_decl_no_change): Export.
1538         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
1539         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
1540         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
1541
1542         * c-tree.h (insert_block): Kill.
1543         * c-decl.c (insert_block): Kill.
1544
1545 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
1546
1547         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
1548         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
1549         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
1550         argument.
1551         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
1552         argument, call {push,pop}_function_context from here.
1553         * c-parser.c: Use c_{push,pop}_function_context.
1554
1555         * function.c (push_function_context_to): Move meat ...
1556         (push_function_context): ... here.  Simplify.
1557         * function.c (pop_function_context_from): Move meat ...
1558         (pop_function_context): ... here.  Simplify.
1559         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
1560         leave_nested).
1561         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
1562         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
1563         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
1564         * tree.h (push_function_context_to, pop_function_context_from): Remove.
1565
1566 2008-04-03  Ben Elliston  <bje@au.ibm.com>
1567
1568         * expmed.c (extract_force_align_mem_bit_field): Remove.
1569
1570 2008-04-03  Richard Guenther  <rguenther@suse.de>
1571
1572         PR middle-end/35800
1573         * expr.h (try_casesi): Adjust prototype.
1574         * expr.c (try_casesi): Take fallback label as extra parameter.
1575         Use that for gen_casesi if default_label is NULL.
1576         * stmt.c (expand_case): Pass fallback label to try_casesi,
1577         make sure to fill gaps with a fallback label if default_label
1578         is not present.
1579
1580 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
1581
1582         PR target/35801
1583         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
1584
1585 2008-04-03  Ben Elliston  <bje@au.ibm.com>
1586
1587         * expmed.c (extract_split_bit_field): Remove if (0) code.
1588         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
1589         (do_ds_constraint): Likewise.
1590
1591 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
1592
1593         * doc/cppopts.texi (-dU): Document.
1594         * c-common.h (flag_dump_macros): Update comment.
1595         * c-opts.c (handle_OPT_d): Handle -dU.
1596         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
1597         dump_queued_macros, cb_used_define, cb_used_undef): New.
1598         (init_pp_output): Handle -dU.
1599         (cb_line_change): Call dump_queued_macros.
1600         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
1601
1602 2008-04-02  Anatoly Sokolov <aesok@post.ru>
1603
1604         * config/avr/predicates.md (io_address_operand): New predicate. 
1605         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
1606         * config/avr/avr.c (avr_io_address_p): Remove function.
1607         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
1608         'avr_io_address_p' function.
1609         (out_movhi_r_mr): (Ditto.).
1610         (out_movqi_mr_r): (Ditto.).
1611         (out_movhi_mr_r): (Ditto.).
1612         (avr_address_cost): (Ditto.).
1613
1614 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
1615
1616         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
1617         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
1618         in 32bit mode when XMM registers are available to avoid store
1619         forwarding stalls.
1620         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
1621         corresponding post-reload splitters.
1622
1623 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
1624
1625         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
1626         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
1627         __builtin_ia32_roundss.
1628         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
1629         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
1630         __builtin_ia32_roundss.
1631         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
1632         IX86_BUILTIN_SHUFPD here.
1633
1634 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
1635
1636         * config/i386/i386.md (plogic): New.
1637         (plogicprefix): Likewise.
1638
1639         * config/i386/mmx.md (mmx_<code><mode>3): New.
1640         (mmx_and<mode>3): Removed.
1641         (mmx_ior<mode>3): Likewise.
1642         (mmx_xor<mode>3): Likewise.
1643
1644         * config/i386/sse.md (<code><mode>3): New.
1645         (*<code><mode>3): Likewise.
1646         (*<code><mode>3): Likewise.
1647         (<code><mode>3): Likewise.
1648         (*sse_<code><mode>3): Likewise.
1649         (*sse2_<code><mode>3): Likewise.
1650         (<code>tf3): Likewise.
1651         (*<code>tf3): Likewise.
1652         (and<mode>3): Likewise.
1653         (*and<mode>3): Likewise.
1654         (ior<mode>3): Removed.
1655         (*ior<mode>3): Likewise.
1656         (xor<mode>3): Likewise.
1657         (*xor<mode>3): Likewise.
1658         (*and<mode>3): Likewise.
1659         (*ior<mode>3): Likewise.
1660         (*xor<mode>3): Likewise.
1661         (and<mode>3): Likewise.
1662         (*sse_and<mode>3): Likewise.
1663         (*sse2_and<mode>3): Likewise.
1664         (andtf3): Likewise.
1665         (*andtf3): Likewise.
1666         (ior<mode>3): Likewise.
1667         (*sse_ior<mode>3): Likewise.
1668         (*sse2_ior<mode>3): Likewise.
1669         (iortf3): Likewise.
1670         (*iortf3): Likewise.
1671         (xor<mode>3): Likewise.
1672         (*sse_xor<mode>3): Likewise.
1673         (*sse2_xor<mode>3): Likewise.
1674         (xortf3): Likewise.
1675         (*xortf3): Likewise.
1676
1677 2008-04-02  Richard Guenther  <rguenther@suse.de>
1678
1679         PR tree-optimization/14495
1680         PR tree-optimization/34793
1681         * tree-vrp.c (struct switch_update): New structure.
1682         (to_remove_edges, to_update_switch_stmts): New VECs.
1683         (simplify_switch_using_ranges): New function.  Remove not taken
1684         case labels and edges.
1685         (simplify_stmt_using_ranges): Call it.
1686         (identify_jump_threads): Mark edges we have queued for removal
1687         so we don't thread them.
1688         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
1689         case label vector.
1690         * tree-cfg.c (group_case_labels): Deal with missing default label.
1691         (tree_verify_flow_info): Allow missing default label.
1692         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
1693         (emit_case_nodes): Likewise.
1694         (expand_case): Do not rely on the default label to be present.
1695         * expr.c (try_casesi): Deal with NULL default_label.
1696         (do_tablejump): Likewise.
1697
1698 2008-04-02  Richard Guenther  <rguenther@suse.de>
1699
1700         PR tree-optimization/14495
1701         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
1702         SWITCH_EXPR here ...
1703         (vrp_visit_switch_stmt): ... but here (new function).
1704         (find_case_label_index): New helper function.
1705         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
1706
1707 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
1708
1709         * fwprop.c: Fix ISO-C99ism.
1710
1711 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
1712
1713         PR bootstrap/35752
1714         * Makefile.in (objdir): Set it here.
1715         * configure.ac: Not here.  Find dynamic linker characteristics.
1716         * exec-tool.in: Use them.
1717         * aclocal.m4: Regenerate.
1718         * configure: Regenerate.
1719
1720 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
1721
1722         * expr.c (expand_var): Delete it.
1723         * expr.h (expand_var): Delete prototype.
1724         * function.c (expand_function_start): Use expand_decl instead.
1725         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
1726         langhook.
1727
1728 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
1729
1730         PR rtl-optimization/35542
1731         * fwprop.c (forward_propagate_and_simplify): Replace
1732         loc_reg_mentioned_in_p with reg_mentioned_p.
1733
1734 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
1735
1736         PR rtl-optimization/35281
1737         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
1738         (propagate_rtx_1): Handle PR_HANDLE_MEM.
1739         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
1740         (varying_mem_p): Move above propagate_rtx.
1741         (all_uses_available_at): Do not check MEMs.
1742
1743 2008-04-02  Rafael Espindola  <espindola@google.com>
1744
1745         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
1746         (register_edge_assert_for_2): Split the cond argument.
1747         (register_edge_assert_for_1): Adjust for the change in
1748         register_edge_assert_for_2.
1749         (register_edge_assert_for): Split the cond argument.
1750         (find_switch_asserts): Adjust for the change in
1751         register_edge_assert_for.
1752
1753 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
1754
1755         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
1756         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
1757         offsets for 64-bit mingw.
1758         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
1759         abi for x86_64-pc-mingw.
1760
1761 2008-04-02  Richard Guenther  <rguenther@suse.de>
1762
1763         * tree-vrp.c (extract_range_from_assert): Make sure to not
1764         produce range min/max with TREE_OVERFOW set.
1765         If merging a anti-range and a range keep the anti-range if
1766         the range covers all values of the type.
1767         (register_edge_assert_for_2): Only allow sign-changing
1768         conversions in detecting canonical range checks.  Also
1769         register an assert for the unsigned name if useful.
1770
1771         PR tree-optimization/35787
1772         * tree-vrp.c (vrp_val_max): New function.
1773         (vrp_val_min): Likewise.
1774         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
1775         (vrp_val_is_min): Likewise.
1776         (supports_overflow_infinity): Use vrp_val_{min,max}.
1777         (negative_overflow_infinity): Likewise.
1778         (positive_overflow_infinity): Likewise.
1779         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
1780         (is_positive_overflow_infinity): Likewise.
1781         (is_overflow_infinity): Likewise.
1782         (avoid_overflow_infinity): Use vrp_val_{min,max} and
1783         vrp_val_is_{min,max}.
1784         (set_and_canonicalize_value_range): Canonicalize anti-ranges
1785         to ranges if possible.  Avoid empty ranges.
1786
1787 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1788
1789         PR middle-end/35705
1790         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
1791         the expression is a function address.
1792
1793 2008-04-01  George Helffrich  <george@gcc.gnu.org>
1794
1795         PR fortran/PR35154, fortran/PR23057
1796         * fortran/trans-common.c (create_common):  Add decl to function
1797         chain to preserve identifier scope in debug output.
1798
1799         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
1800         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
1801         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
1802         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
1803         in common.
1804         (dbxout_syms): Check for COMMON-based symbol and wrap in
1805         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
1806         in bracket for efficiency.
1807
1808         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
1809         using DW_TAG_common_block + member offset.
1810         (add_pubname_string): New function.
1811         (dw_expand_expr): New function to find block name and offset for
1812         COMMON var.
1813         (common_check): New function to check whether symbol in Fortran COMMON.
1814         (gen_variable_die): If COMMON, use DW_TAG_common_block.
1815
1816         * testsuite/gcc.dg/debug/pr35154.c:  New test to check that non-Fortran
1817         use of common is unchanged.
1818
1819         * testsuite/lib/gfortran-dg.exp:  New harness to compile Fortran progs
1820         with all combinations of debug options available on target.
1821         * testsuite/gfortran.dg/debug/debug.exp:  Ditto.
1822         * testsuite/gfortran.dg/debug/trivial.f:  Ditto.
1823         * testsuite/gfortran.dg/debug/pr35154-stabs.f:  New test case for
1824         .stabs functionality.
1825         * testsuite/gfortran.dg/debug/pr35154-dwarf2.f:  New test case for
1826         DWARF functionality.
1827
1828 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
1829
1830         PR c/35436
1831         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
1832
1833 2008-04-02  Ben Elliston  <bje@au.ibm.com>
1834
1835         * config/v850/v850.md (casesi): Remove if (0) code.
1836         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
1837         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
1838
1839 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
1840
1841         * config/i386/i386.md (rex64suffix): New mode attribute.
1842         (floathi<mode>2): Disable expander for SSE math.
1843         (*floathi<mode>2_1): New insn insn_and_split pattern.
1844         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
1845         corresponding post-reload splitters.
1846         (*floathi<mode>2_i387): New macroized insn pattern.
1847         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
1848         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
1849         insn_and_split pattern.
1850         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
1851         New macroized instruction patterns and corresponding post-reload
1852         splitters.
1853         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
1854         and corresponding post-reload splitters.
1855         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
1856         New macroized instruction patterns.
1857         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
1858         macroized instruction patterns and corresponding post-reload splitters.
1859         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
1860         corresponding post-reload splitters.
1861         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
1862         New macroized instruction patterns.
1863         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
1864         corresponding post-reload splitters.
1865         (*floatsi<mode>2_i387): New macroized instruction patterns.
1866
1867 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
1868
1869         * config/i386/i386.md (smaxmin): New.
1870         (umaxmin): Likewise.
1871         (maxminiprefix): Likewise.
1872         (maxminfprefix): Likewise.
1873         (<code><mode>3): Likewise.
1874         (smin<mode>3): Removed.
1875         (smax<mode>3): Likewise.
1876
1877         * config/i386/mmx.md (mmx_<code>v2sf3): New.
1878         (mmx_<code>v4hi3): Likewise.
1879         (mmx_<code>v8qi3): Likewise.
1880         (mmx_smaxv2sf3): Removed.
1881         (mmx_sminv2sf3): Likewise.
1882         (mmx_umaxv8qi3): Likewise.
1883         (mmx_smaxv4hi3): Likewise.
1884         (mmx_uminv8qi3): Likewise.
1885         (mmx_sminv4hi3): Likewise.
1886
1887         * config/i386/sse.md (<addsub><mode>3): New.
1888         (*<addsub><mode>3): Likewise.
1889         (<sse>_vm<addsub><mode>3): Likewise.
1890         (<maxmin><mode>3): Likewise.
1891         (*<maxmin><mode>3_finite): Likewise.
1892         (*<maxmin><mode>3): Likewise.
1893         (<sse>_vm<maxmin><mode>3): Likewise.
1894         (sse3_h<addsub>v4sf3): Likewise.
1895         (sse3_h<addsub>v2df3): Likewise.
1896         (<maxmin>v16qi3): Likewise.
1897         (*<maxmin>v16qi3): Likewise.
1898         (<maxmin>v8hi3): Likewise.
1899         (*<maxmin>v8hi3): Likewise.
1900         (*sse4_1_<maxmin><mode>3): Likewise.
1901         (*sse4_1_<maxmin><mode>3): Likewise.
1902         (add<mode>3): Removed.
1903         (*add<mode>3): Likewise.
1904         (<sse>_vmadd<mode>3): Likewise.
1905         (sub<mode>3): Likewise.
1906         (*sub<mode>3): Likewise.
1907         (<sse>_vmsub<mode>3): Likewise.
1908         (smin<mode>3): Likewise.
1909         (*smin<mode>3_finite): Likewise.
1910         (*smin<mode>3): Likewise.
1911         (<sse>_vmsmin<mode>3): Likewise.
1912         (smax<mode>3): Likewise.
1913         (*smax<mode>3_finite): Likewise.
1914         (*smax<mode>3): Likewise.
1915         (<sse>_vmsmax<mode>3): Likewise.
1916         (sse3_haddv4sf3): Likewise.
1917         (sse3_haddv2df3): Likewise.
1918         (sse3_hsubv4sf3): Likewise.
1919         (sse3_hsubv2df3): Likewise.
1920         (umaxv16qi3): Likewise.
1921         (*umaxv16qi3): Likewise.
1922         (smaxv8hi3): Likewise.
1923         (*smaxv8hi3): Likewise.
1924         (*sse4_1_smax<mode>3): Likewise.
1925         (*sse4_1_umax<mode>3): Likewise.
1926         (uminv16qi3): Likewise.
1927         (*uminv16qi3): Likewise.
1928         (sminv8hi3): Likewise.
1929         (*sminv8hi3): Likewise.
1930         (*sse4_1_smin<mode>3): Likewise.
1931         (*sse4_1_umin<mode>3): Likewise.
1932
1933 2008-04-01  Rafael Espindola  <espindola@google.com>
1934
1935         * tree-cfg.c (verify_expr): remove in_phi.
1936         (verify_stmt): Don't call walk_tree with verify_expr. Use
1937         is_gimple_min_invariant instead of is_gimple_val.
1938
1939 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
1940
1941         * doc/include/gpl_v3.texi: Update for manpage generation.
1942         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
1943         gpl.texi.
1944         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
1945         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
1946         gpl_v3.texi instead of gpl.texi.
1947         (gpl.pod): New.
1948
1949 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
1950
1951         PR pch/13675
1952         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
1953
1954 2008-04-01  Rafael Espindola  <espindola@google.com>
1955
1956         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
1957         (extract_code_and_val_from_cond): Use
1958         extract_code_and_val_from_cond_with_ops.
1959
1960 2008-04-01  Jan Hubicka  <jh@suse.cz>
1961
1962         * function.c (free_after_compilation): Free epilogue_delay_list.
1963         (prepare_function_start): Assert that previous compilation was freed.
1964
1965 2008-04-01  Jan Hubicka  <jh@suse.cz>
1966             Jim Wilson  <wilson@tuliptree.org>
1967             Andreas Tobler <andreast@gcc.gnu.org>
1968
1969         PR middle-end/35781
1970         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
1971         rtl.emit instead cfun->emit.
1972         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
1973         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
1974
1975 2008-04-01  Ben Elliston  <bje@au.ibm.com>
1976
1977         * doc/c-tree.texi (Function Basics): Fix grammatical error.
1978
1979 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
1980
1981         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
1982         New options
1983         (fprofile-use): Add var flag_profile_use
1984         * coverage.c (coverage_begin_output): Do not open a gcno file for
1985         output only if -ftest-coverage is set.
1986         Do not add getpwd() to gcda file path.
1987         (build_gcov_info): Check the new flag
1988         flag_profile_datafile_relative_path.
1989         (coverage_init): Use profile_data_prefix.
1990         Read profile counter only if flag_profile_use is set.
1991         * opts.c (common_handle_option): New option fprofile-use=,
1992         fprofile-dir=, fprofile-generate=.
1993         * toplev.c (profile_data_prefix): New variable definition.
1994         * toplev.h (profile_data_prefix): New declaration.
1995         * doc/invoke.tex (Option Summary, Optimization Options):
1996         Add new options.
1997
1998 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
1999
2000         * varasm.c (output_constant_pool_1): In LABEL_REF check,
2001         use tmp consistently.
2002
2003         PR target/35695
2004         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
2005         * config/ia64/ia64.c (rtx_needs_barrier): Handle
2006         UNSPEC_FR_RECIP_APPROX_RES.
2007         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
2008
2009 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
2010
2011         PR c/35750
2012         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
2013
2014 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2015
2016         PR middle-end/30186
2017         * fold-const.c (fold_indirect_ref_1): Support accessing non first
2018         element of the vector via a pointer.
2019
2020 2008-03-31  Ian Lance Taylor  <iant@google.com>
2021
2022         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
2023
2024 2008-03-31  Jan Hubicka  <jh@suse.cz>
2025
2026         * builtins.c (expand_builtin_setjmp_receiver): Update call of
2027         get_arg_pointer_save_area.
2028         * expr.c (init_expr): Just clear out rtl.expr.
2029         * function.c (free_after_compilation): Clear out whole RTL structure.
2030         (get_func_frame_size): Merge into ...
2031         (get_frame_size): ... this one.
2032         (assign_stack_local_1): Merge into ...
2033         (assign_stack_local): ... this one.
2034         (expand_function_end): Update call of get_arg_pointer_save_area.
2035         (get_art_pointer_save_area): Remove cfun argument.
2036         * function.h (emit_status): regno_pointer_align does not need length
2037         attribute. Move x_regno_reg_rtx to ...
2038         (regno_reg_rtx): ... new global array.
2039         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
2040         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
2041         apply_args_value, forced_labels, stack_pointer_delta):
2042         Update accestors.
2043         (struct varasm_status): Move here from varasm.c
2044         (struct rtl_data): New. Move here some fields from struct function.
2045         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
2046         frame_offset, stack_check_probe_note, arg_pointer_save_area,
2047         used_temp_slots avail_temp_slots, temp_slot_level,
2048         nonlocal_goto_handler_labels): Update accesstors.
2049         (rtl): New global variable.
2050         (struct function): Move some fileds to rtl_data.
2051         (get_arg_pointer_save_area): Update prototype.
2052         * emit-rtl.c (rtl): Declare.
2053         (regno_reg_rtx): Declare.
2054         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
2055         Update.
2056         (gen_reg_rtx): Update.
2057         (init_virtual_regs): Do not tate emit_status argument.
2058         (init_emit): Do not allocate emit.
2059         * varasm.c (varasm_statuc): Move to function.h.
2060         (n_deferred_constatns): Update accestor.
2061         (init_varasm_status): Do not allocate varasm_status.
2062         (force_const_mem, get_pool_size, output_constant_pool): Update.
2063         * stmt.c (force_label_rtx): Do not use x_ prefixes.
2064         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
2065
2066 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
2067
2068         PR rtl-optimization/35729
2069         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
2070         references.
2071
2072 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
2073
2074         PR target/32000
2075         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
2076         load/store if memory is unaligned.
2077         (*movti_rex64): Likewise.
2078
2079         * config/i386/predicates.md (misaligned_operand): New.
2080
2081 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
2082
2083         PR tree-opt/35431
2084         * tree-ssa-phiopt.c (conditional_replacement): Return early for
2085         complex types.
2086
2087 2008-03-31  Jan Beulich  <jbeulich@novell.com>
2088
2089         * config/ia64/constraints.md: Add 'j' constraint.
2090         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
2091         (movdi_internal): Likewise.
2092
2093 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
2094
2095         PR c/35748
2096         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
2097
2098 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
2099
2100         PR target/35757
2101         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
2102         proper error message for the third argument on blendpd and
2103         blendps.
2104
2105         * config/i386/sse.md (blendbits): New.
2106         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
2107
2108 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
2109
2110         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
2111
2112 2008-03-30  Richard Guenther  <rguenther@suse.de>
2113
2114         PR middle-end/31023
2115         * fold-const.c (fold_sign_changed_comparison): Do leave
2116         conversions to base-types alone.
2117
2118 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2119
2120         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
2121         the link register if one altivec register is be saved.
2122
2123 2008-03-30  Ben Elliston  <bje@au.ibm.com>
2124
2125         * final.c (final_scan_insn): Remove if (0) code.
2126
2127 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
2128
2129         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
2130
2131 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
2132
2133         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
2134         of V4SFmode to ix86_binary_operator_ok.
2135
2136 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
2137
2138         * config/i386/i386.c (override_options): Initialize
2139         ix86_veclib_handler to ix86_veclibabi_svml when
2140         -mveclibabi=svml is used.
2141         (ix86_veclibabi_svml): New function for SVML ABI style
2142         vectorization support.
2143         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
2144
2145 2008-03-28  Rafael Espindola  <espindola@google.com>
2146
2147         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
2148         (tree_binary_nonnegative_warnv_p): Make it public.
2149         (tree_single_nonnegative_warnv_p): Make it public.
2150         (tree_invalid_nonnegative_warnv_p): Make it public.
2151         (tree_unary_nonzero_warnv_p): Make it public.
2152         (tree_binary_nonzero_warnv_p): Make it public
2153         (tree_single_nonzero_warnv_p): Make it public.
2154         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
2155         (extract_range_from_binary_expr): Split the expr argument.
2156         (extract_range_from_unary_expr): Split the expr argument.
2157         (extract_range_from_comparison): Split the expr argument.
2158         (extract_range_from_expr): Use the new aux functions.
2159         (vrp_evaluate_conditional_warnv): Use
2160         vrp_evaluate_conditional_warnv_with_ops.
2161         * tree.h (tree_unary_nonzero_warnv_p): Declare.
2162         (tree_binary_nonzero_warnv_p): Declare.
2163         (tree_single_nonzero_warnv_p): Declare.
2164         (tree_expr_nonzero_warnv_p): Declare.
2165         (tree_unary_nonnegative_warnv_p): Declare.
2166         (tree_binary_nonnegative_warnv_p): Declare.
2167         (tree_single_nonnegative_warnv_p): Declare.
2168         (tree_invalid_nonnegative_warnv_p): Declare.
2169
2170 2008-03-28  Richard Guenther  <rguenther@suse.de>
2171
2172         PR tree-optimization/30317
2173         PR tree-optimization/30911
2174         PR tree-optimization/34793
2175         * tree-vrp.c (set_and_canonicalize_value_range): New function.
2176         (struct assert_locus_d): New member EXPR.
2177         (register_new_assert_for): Add EXPR parameter to support
2178         ASSERT_EXPR <name, expr OP limit>.
2179         (register_edge_assert_for_1): Adjust callers.
2180         (find_assert_locations): Likewise.
2181         (process_assert_insertions_for): Build condition from expression.
2182         (extract_range_from_assert): Handle ASSERT_EXPRs
2183         of the form ASSERT_EXPR <name, expr OP limit>.
2184         (register_edge_assert_for_2): New helper registering
2185         asserts for comparisons.  Recognize range tests of the form
2186         (unsigned)i - CST1 OP CST2.
2187         (register_edge_assert_for_1): Use it.
2188         (register_edge_assert_for): Likewise.
2189         (needs_overflow_infinity): Integer sub-types
2190         do not need overflow infinities.
2191         (vrp_val_is_max): The extreme values of integer sub-types
2192         are those of the base type.
2193         (vrp_val_is_min): Likewise.
2194         * tree.def (ASSERT_EXPR): Document extra allowed conditional
2195         expressions.
2196
2197 2008-03-28  Nick Clifton  <nickc@redhat.com>
2198
2199         PR target/31110
2200         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
2201         Return GENERAL_REGS for stack adjustment reloads.
2202
2203 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2204
2205         PR target/31334
2206         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
2207         const_vector when all the vectors are constant.
2208
2209 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
2210
2211         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
2212         comparisons.
2213         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
2214         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
2215         (scc_sf): New.
2216         (s<code>_sf): Use new scc_sf attribute for opcode names.
2217
2218 2008-03-27  Tom Tromey  <tromey@redhat.com>
2219
2220         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
2221         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
2222         config/spu/t-spu-elf, config/i386/t-interix,
2223         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
2224         config/i386/x-darwin, config/i386/x-mingw32,
2225         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
2226         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
2227         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
2228         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
2229         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
2230         config/rs6000/x-darwin, config/rs6000/t-rs6000,
2231         config/score/t-score-elf, config/arm/t-strongarm-pe,
2232         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
2233         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
2234         Revert automatic dependency patch.
2235
2236 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
2237
2238         PR target/35657
2239         * config/i386/i386.c (ix86_function_arg_boundary): Align
2240         decimal floating point to its natural boundary.
2241
2242 2008-03-27  Richard Guenther  <rguenther@suse.de>
2243
2244         PR middle-end/35716
2245         * fold-const.c (fold_comparison): Restrict distinct decl
2246         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
2247         solely rely on operand_equal_p.
2248
2249 2008-03-27  Richard Guenther  <rguenther@suse.de>
2250
2251         PR c/32511
2252         * c-common.c (handle_weak_attribute): Reject combination of
2253         weak and inline.
2254
2255 2008-03-27  Richard Guenther  <rguenther@suse.de>
2256
2257         PR tree-optimization/32810
2258         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
2259         conversions from DECL_INITIAL.
2260         (fold_const_aggregate_ref): Likewise from constructor elements.
2261
2262 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
2263
2264         * tree-affine.h (aff_combination_expand): Declare.
2265         (get_inner_reference_aff): Likewise.
2266         * tree-affine.c (aff_combination_expand): Split out from
2267         tree_to_aff_combination_expand.
2268         (get_inner_reference_aff): New function.
2269         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
2270         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
2271         (struct lim_aux_data): sm_done field removed.
2272         (mem_ref_loc_p, mem_ref_locs_p): New types.
2273         (struct mem_ref): Added id, stored, accesses_in_loop,
2274         indep_loop, dep_loop, indep_ref, dep_ref fields.
2275         Removed is_stored, locs and next fields.
2276         (memory_accesses): New variable.
2277         (movement_possibility): Do not allow moving statements
2278         that store to memory.
2279         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
2280         New functions.
2281         (determine_max_movement): For statements with memory references,
2282         find the outermost loop in that the reference is independent.
2283         (move_computations_stmt): Mark the virtual operands for renaming.
2284         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
2285         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
2286         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
2287         add_vop_ref_mapping, create_vop_ref_mapping_loop,
2288         create_vop_ref_mapping, analyze_memory_references,
2289         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
2290         get_all_locs_in_loop, ref_always_accessed_p,
2291         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
2292         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
2293         store_motion_loop, store_motion): New functions.
2294         (struct vop_to_refs_elt): New type.
2295         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
2296         memref_hash, memref_eq, hoist_memory_references): Rewritten.
2297         (schedule_sm): Replaced by...
2298         (execute_sm): ... this.
2299         (determine_lsm_ref, hoist_memory_references,
2300         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
2301         find_more_ref_vops, free_mem_ref, free_mem_refs,
2302         determine_lsm_loop, determine_lsm): Removed.
2303         (tree_ssa_lim_finalize): Free data structures used by store motion.
2304         (tree_ssa_lim): Call analyze_memory_references.  Use
2305         store_motion instead of determine_lsm.
2306
2307 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
2308
2309         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
2310         rename tmake_file to m68hc11/t-m68hc11.
2311         (mcore): Set inhibit_libc to true.
2312         * config.host (alpha*-dec-*vms*): Set extra_programs.
2313         (interix3*): Don't use host_xmake_file.
2314         * configure.ac: Let config.gcc override inhibit_libc.
2315         * configure: Regenerate.
2316
2317         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
2318         * config/t-openbsd-thread: Remove commented out lines.
2319         
2320         * config/x-interix: Remove.
2321
2322         * config/m68hc11/t-m68hc11-gas: Rename to...
2323         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
2324
2325         * config/mcore/t-mcore: Remove T_CFLAGS.
2326         * config/mcore/t-mcore-pe: Likewise.
2327
2328 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
2329
2330         * configure.ac: Replace custom __GNU_SOURCE test with
2331         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
2332         * aclocal.m4: Regenerate.
2333         * configure: Regenerate.
2334         * config.in: Regenerate.
2335
2336 2008-03-27  Richard Guenther  <rguenther@suse.de>
2337
2338         * fold-const.c (target.h): Include.
2339         (fold_comparison): Fold comparison of addresses of decls
2340         that bind locally or of constants.  Consolidate address folding code.
2341         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
2342         results from fold_binary_to_constant.
2343         (compare_values_warnv): Likewise.
2344
2345 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
2346
2347         PR middle-end/35429
2348         * fold-const.c (fold_truthop): Check for integeral types when folding
2349         a == 0 && b == 0 and a != 0 || b != 0 .
2350
2351 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
2352
2353         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
2354
2355 2008-03-26  Andreas Schwab  <schwab@suse.de>
2356
2357         * doc/invoke.texi: Fix use of @item vs. @itemx.
2358
2359 2008-03-26  Tom Tromey  <tromey@redhat.com>
2360
2361         * Makefile.in (build/gensupport.o, build/print-rtl.o,
2362         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
2363         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
2364         build/gencodes.o, build/genconditions.o, build/genconfig.o,
2365         build/genconstants.o, build/genemit.o, build/genextract.o,
2366         build/genflags.o, build/genmddeps.o, build/genopinit.o,
2367         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
2368         options.h.
2369
2370 2008-03-26  Richard Guenther  <rguenther@suse.de>
2371
2372         Revert
2373         2008-03-26  Richard Guenther  <rguenther@suse.de>
2374
2375         * fold-const.c (target.h): Include.
2376         (fold_comparison): Fold comparison of addresses of two decls
2377         that bind locally.  Consolidate address folding code.
2378
2379 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2380
2381         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
2382         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
2383         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
2384         dconstsqrt2, dconstthird, dconste and/or dconst10.
2385         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
2386         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
2387         dconstsqrt2, dconste): Delete.
2388         (init_emit_once): Likewise.  Simplify initializing dconstm1.
2389         Constify variable.
2390         * real.c (get_real_const): New.
2391         * real.h (dconst3, dconst10, dconstm2, dconstthird,
2392         dconstsqrt2, dconste): Delete.
2393         (real_value_const, get_real_const): New.
2394
2395 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
2396
2397         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
2398
2399         * config/i386/i386.c (ix86_function_arg_boundary): Check
2400         BIGGEST_ALIGNMENT instead of 128.
2401         (setup_incoming_varargs_64): Likewise.
2402
2403 2008-03-26  Tom Tromey  <tromey@redhat.com>
2404
2405         * Makefile.in (DEPFILES): Add missing '/'.
2406
2407 2008-03-26  Richard Guenther  <rguenther@suse.de>
2408
2409         * fold-const.c (target.h): Include.
2410         (fold_comparison): Fold comparison of addresses of two decls
2411         that bind locally.  Consolidate address folding code.
2412
2413 2008-03-26  Nick Clifton  <nickc@redhat.com>
2414
2415         PR target/31232
2416         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
2417         not allow INT+INT as a legitimate addressing mode.
2418
2419 2008-03-26  Richard Guenther  <rguenther@suse.de>
2420
2421         * tree-flow.h (widen_bitfield): Remove declaration.
2422         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
2423         (widen_bitfield): Remove function.
2424         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
2425         code.
2426
2427 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2428
2429         PR target/31558
2430         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
2431         error_mark_node's.
2432
2433 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
2434
2435         PR rtl-optimization/35232
2436         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
2437         (forget_old_reloads_1, forget_marked_reloads): Don't clear
2438         reg_reloaded_call_part_clobbered here.
2439         (reload_regs_reach_end_p): New function.
2440         (reload_reg_rtx_for_input): New variable.
2441         (reload_reg_rtx_for_output): Likewise.
2442         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
2443         when reassigning a pseudo register.  Load reloadreg from 
2444         reload_reg_rtx_for_input, moving the mode and register
2445         calculation to...
2446         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
2447         instead of the original when deciding whether an input reload
2448         would be a no-op or whether an output reload can be deleted.
2449         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
2450         when setting up new_spill_reg_store.  Load it from
2451         reload_reg_rtx_for_output, moving the mode and register
2452         calculation to...
2453         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
2454         instead of the original when deciding whether an output reload
2455         would be a no-op.  Do the same when modifying insn notes.
2456         Use rtx_equal_p instead of == to compare the registers.
2457         (inherit_piecemeal_p): Take a mode and two register numbers
2458         as argument.
2459         (emit_reload_insns): Clear new_spill_reg_store for every hard
2460         register in the reload register.  Remove spill registers
2461         from reg_reloaded_valid before considering whether to record
2462         inheritance information for them.  Use reload_reg_rtx_for_output
2463         instead of reg_rtx when recording output reloads.  Use
2464         reload_reg_rtx_for_input instead of reg_rtx when recording
2465         input reloads.  Set or clear reg_reloaded_call_part_clobbered
2466         at the same time as setting reg_reloaded_valid.
2467         (delete_output_reload): Add a new_reload_reg parameter and use it
2468         instead of rld[j].reg_rtx.
2469         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
2470         calls accordingly.
2471
2472 2008-03-25  Tom Tromey  <tromey@redhat.com>
2473
2474         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
2475         (build/genattr.o): Likewise.
2476         (build/genattrtab.o): Likewise.
2477         (build/gencodes.o): Likewise.
2478         (build/genconfig.o): Likewise.
2479         (build/genconstants.o): Likewise.
2480         (build/genemit.o): Likewise.
2481         (build/genextract.o): Likewise.
2482         (build/genflags.o): Likewise.
2483
2484 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
2485         
2486         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
2487         instead of size_int for integer types.
2488         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
2489         to match type of MINUS_EXPR.
2490         
2491 2008-03-25  Tom Tromey  <tromey@redhat.com>
2492
2493         * configure: Rebuilt.
2494         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
2495         Makefile.
2496
2497 2008-03-25  Tom Tromey  <tromey@redhat.com>
2498
2499         * config/x-solaris (host-solaris.o): Update.
2500         * config/x-linux (host-linux.o): Update.
2501         * config/x-hpux (host-hpux.o): Update.
2502         * config/x-darwin (host-darwin.o): Update.
2503         * config/v850/t-v850e (v850-c.o): Update.
2504         * config/v850/t-v850 (v850-c.o): Update.
2505         * config/t-vxworks (vxworks.o): Update.
2506         * config/t-sol2 (sol2-c.o, sol2.o): Update.
2507         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
2508         * config/spu/t-spu-elf (spu-c.o): Update.
2509         (spu.o): Remove.
2510         * config/sh/t-symbian (sh-c.o): Update.
2511         (symbian.o): Update.
2512         * config/sh/t-sh (sh-c.o): Update.
2513         * config/score/t-score-elf (score7.o, score3.o): Update.
2514         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
2515         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
2516         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
2517         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
2518         (rs6000.o): Remove.
2519         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
2520         * config/m32c/t-m32c (m32c-pragma.o): Update.
2521         * config/ia64/t-ia64 (ia64-c.o): Update.
2522         * config/i386/x-mingw32 (host-mingw32.o): Update.
2523         * config/i386/x-i386 (driver-i386.o): Update.
2524         * config/i386/x-darwin (host-i386-darwin.o): Update.
2525         * config/i386/x-cygwin (host-cygwin.o): Update.
2526         * config/i386/t-nwld (nwld.o): Update.
2527         * config/i386/t-netware (netware.o): Update.
2528         * config/i386/t-interix (winnt.o): Update.
2529         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
2530         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
2531         msformat-c.o): Update.
2532         * config/bfin/t-bfin-linux (generated_files): Add
2533         linux-sysroot-suffix.h.
2534         * config/arm/t-wince-pe (pe.o): Update.
2535         * config/arm/t-strongarm-pe (pe.o): Update.
2536         * config/arm/t-pe (pe.o): Update.
2537         * config/arm/t-arm (arm-c.o): Update.
2538         * doc/install.texi (Prerequisites): Require make 3.80.
2539         * Makefile.in: Remove .o targets.
2540         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
2541         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
2542         (simple_generated_h, simple_generated_c): Move earlier.
2543         (generated_files): New variable.
2544         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
2545         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
2546         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
2547         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
2548         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
2549         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
2550         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
2551         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
2552         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
2553         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
2554         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
2555         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
2556         (.c.o): Remove.
2557         (COMPILE.base, COMPILE): New variables.
2558         (%.o): New pattern rule.
2559         (ALL_HOST_OBJS): New variable.
2560         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
2561         (dummy-checksum.o, cc1-checksum.o): Remove.
2562         (DRIVER_SHLIB): New variable.
2563         (DRIVER_DEFINES): Use it.
2564         (gencondmd.c): Move out of build/.
2565         (s-conditions): Update.
2566         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
2567         (ALL_BUILD_OBJS): Likewise.
2568         (build/%.o): Use BUILDCOMPILE.
2569         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
2570         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
2571         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
2572         build/gencheck.o, build/gencodes.o, build/genconditions.o,
2573         build/genconfig.o, build/genconstants.o, build/genemit.o,
2574         build/genextract.o, build/genflags.o, build/genmddeps.o,
2575         build/genopinit.o, build/genoutput.o, build/genpeep.o,
2576         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
2577         build/gen-protos.o, build/scan.o, build/fix-header.o,
2578         build/scan-decls.o): Simplify.
2579         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
2580         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
2581         prefix.o, toplev.o): Reduce to variable setting.
2582         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
2583         ($(out_object_file), gcc-options.o): New targets.
2584         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
2585         * configure: Rebuilt.
2586         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
2587         * doc/sourcebuild.texi (Front End Directory): Document new variable.
2588
2589 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
2590
2591         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
2592         complain when we hit an error, return ERROR_MARK_NODE.
2593
2594 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
2595
2596         * config/sh/constraints.md (Pso, Psz): New constraints.
2597         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
2598         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
2599
2600 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
2601
2602         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
2603         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
2604
2605 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
2606
2607         * config/sh/sh.md (prefetch): Add condition for SH2A target.
2608         (prefetch_sh2a): New.   
2609
2610 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
2611             Naveen.H.S  <naveen.hs@kpitcummins.com>
2612
2613         * config/sh/constraints.md (I28): New constraint.
2614         * config/sh/sh.c (broken_move): Add support for movi20s.
2615         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
2616
2617 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
2618             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
2619             Naveen.H.S  <naveen.hs@kpitcummins.com>
2620
2621         * config/sh/sh.c (SH_ATTRIBUTES): Define.
2622         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
2623         (print_operand): Handle resbank in %@ operand code.
2624         (sh_encode_section_info): New.
2625         (push_regs): Add conditions for resbank.
2626         (sh_expand_epilogue): Likewise.
2627         (sh_insert_attributes): Likewise.
2628         (sh_attribute_table): Likewise.
2629         (sh_handle_resbank_handler_attribute): New.
2630         (sh2a_handle_function_vector_handler_attribute): New.
2631         (sh2a_is_function_vector_call): New.
2632         (sh2a_get_function_vector_number): New.
2633         (sh2a_function_vector_p): New.
2634         (sh_cfun_resbank_handler_p): New.
2635         * config/sh/sh.md (calli): Emit jsr/n if possible.
2636         (calli_tbr_rel): New.
2637         (calli_pcrel): Emit jsr/n if possible.
2638         (return_i): Emit rts/n if possible.
2639         (call_valuei_tbr_rel): New.
2640         (call_valuei_pcrel): Add condition for SH2A target.
2641         (call_value): Likewise.
2642         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
2643         (sh2a_get_function_vector_number): Likewise.
2644         (sh2a_is_function_vector_call): Likewise.
2645         * doc/extend.texi: Document TBR relative addressing of SH2A.
2646         (resbank): Add description for SH2A.
2647
2648 2008-03-24  Richard Guenther  <rguenther@suse.de>
2649
2650         PR c/22371
2651         * gimplify.c (gimplify_modify_expr): For frontend type-correct
2652         pointer assignments change conversions according to middle-end rules.
2653         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
2654         * configure.ac: Include type checking in yes.
2655         * configure: Regenerate.
2656
2657 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2658
2659         * diagnostic.c (diagnostic_count_diagnostic): Delete.
2660         (diagnostic_report_diagnostic): Update. Handle ICEs here.
2661         
2662 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
2663
2664         * gthr-vxworks.h (UNUSED): Define.
2665
2666 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
2667
2668         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
2669
2670 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
2671
2672         * doc/extend.texi (Function Attributes): Add missing comma in the
2673         example of the "alloc_size" attribute.
2674         
2675 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
2676
2677         Revert:
2678         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
2679
2680         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
2681         32bit host.
2682
2683         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
2684
2685         PR target/35496
2686         * stor-layout.c (update_alignment_for_field): Set minimum alignment
2687         of the underlying type of a MS bitfield layout to the natural
2688         alignment of the type.
2689
2690         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
2691
2692         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
2693         to their natural alignment to avoid store forwarding stalls.
2694
2695 2008-03-22  Richard Guenther  <rguenther@suse.de>
2696
2697         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
2698         For PHI nodes verify the address is invariant.
2699         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
2700         (get_symbol_constant_value): Use is_gimple_min_invariant.
2701         (maybe_fold_stmt_indirect): Likewise.
2702
2703 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
2704
2705         PR rtl-optimization/33927
2706         * Makefile.in (dse.o): Depend on $(TM_P_H).
2707         * expr.h (extract_low_bits): Declare.
2708         * expmed.c (extract_low_bits): New function.
2709         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
2710         * dse.c: Include tm_p.h.
2711         (find_shift_sequence): Remove the read_reg argument and return the
2712         read value.  Emit the instructions instead of returning them.
2713         Iterate on new_mode rather than calculating it each time.
2714         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
2715         source to NEW_MODE and extract_low_bits to convert the shifted
2716         value to READ_MODE.
2717         (replace_read): Allow the load and store to have different mode
2718         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
2719         or extraction instructions before trying the replacement.  Update
2720         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
2721
2722 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
2723
2724         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
2725         to their natural alignment to avoid store forwarding stalls.
2726
2727 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2728
2729         PR target/27946
2730         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
2731         encouraging but not allowing gprs for input;
2732         change the input constraint to !f#r.
2733         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
2734         gprs for output;
2735         change the output constraint to !f#r.
2736
2737 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
2738
2739         PR target/13958
2740         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
2741         corresponding post-reload splitters.
2742         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
2743         when x87 FP math is selected.
2744         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
2745         New function prototype.
2746         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
2747         unreachable function to ease macroization of insn patterns.
2748
2749 2008-03-21  Martin Jambor  <mjambor@suse.cz>
2750
2751         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
2752         reference dumps if ddr is NULL or dependence is unknown.
2753
2754 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
2755
2756         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
2757         unsigned extension into account.
2758         (ATOMIC_COMPARE_AND_SWAP): Likewise.
2759         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
2760         Do computations on a scratch register.
2761
2762 2008-03-21  Richard Guenther  <rguenther@suse.de>
2763
2764         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
2765         Use is_gimple_min_invariant instead of TREE_INVARIANT.
2766         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
2767         * tree-ssa-dom.c (record_equality): Likewise.
2768         * tree-inline.c (copy_body_r): Likewise.
2769         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
2770         TREE_INVARIANT.
2771
2772 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
2773
2774         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
2775         as 'delete_unused' argument.
2776
2777 2008-03-20  Richard Guenther  <rguenther@suse.de>
2778
2779         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
2780         special casing of constant qualifiers.
2781         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
2782         care about them in general.
2783         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
2784         regardless of their type.
2785         (fold_stmt_r): Forcefully fold *& if we end up with that.
2786
2787 2008-03-20  Paul Brook  <paul@codesourcery.com>
2788
2789         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
2790         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
2791         linker flags.
2792         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
2793         definition.
2794         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
2795         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
2796
2797 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
2798
2799         * common.opt (Wmudflap): New option.
2800         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
2801         (mx_register_decls): Likewise.
2802         (mudflap_finish_file): Likewise.
2803         * doc/invoke.texi: Document -Wno-mudflap.
2804
2805 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
2806
2807         * c-format.c (replace_format_name_to_system_name): New.
2808         (cmp_attribs): New.
2809         (convert_format_name_to_system_name): New.
2810         (decode_format_attr): Add use of convert_format_name_to_system_name.
2811         (format_types_orig): Add gnu_ prefix to names.
2812         (check_format_info_main): Special treating of \0 escaped names for
2813         supporting multi-character format specifiers as I32, I64.
2814         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
2815         (gnu_target_overrides_format_attributes): New.
2816         * c-format.h: Add structure target_ovr_attr to hold
2817         system specific formatter names.
2818         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
2819         msformat-c.o file to c_target_objs and cxx_target_objs.
2820         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
2821         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
2822         (TARGET_N_FORMAT_TYPES): New.
2823         * config/i386/msformat-c.c: New.
2824         * config/i386/t-cygming: Add build rule for msformat-c.o.
2825         * doc/extend.texi: Add new format names gnu_* and ms_* and
2826         further details.
2827         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
2828
2829 2008-03-20  Ira Rosen  <irar@il.ibm.com>
2830
2831         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
2832         optimizations turned on under -O3.
2833         (ftree-vectorize): Add that the flag is turned on with -O3.
2834
2835 2008-03-20  Ben Elliston  <bje@au.ibm.com>
2836
2837         * regmove.c (try_auto_increment): Fix spelling error in comment.
2838         * final.c (final_scan_insn): Likewise.
2839
2840 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
2841
2842         PR target/14552
2843         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
2844         allocator preferences for "y" and "r" class registers.
2845         ("*mov<mode>_internal"): Ditto.
2846         ("*movv2sf_internal_rex64"): Ditto.
2847         ("*movv2sf_internal"): Ditto.
2848
2849 2008-03-19  Michael Matz  <matz@suse.de>
2850
2851         PR middle-end/35616
2852         * calls.c (expand_call): Check overlap of arguments with call
2853         address for sibcalls.
2854
2855 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
2856
2857         PR target/35496
2858         * stor-layout.c (update_alignment_for_field): Set minimum alignment
2859         of the underlying type of a MS bitfield layout to the natural
2860         alignment of the type.
2861
2862 2008-03-19  Jan Hubicka  <jh@suse.cz>
2863
2864         PR other/35094
2865         * toplev.c (decode_d_option): Handle all CPP flags.
2866         * tree-vrp.c: Update tree_pass descriptors.
2867         * regrename.c: Update tree_pass descriptors.
2868         * fwprop.c: Update tree_pass descriptors.
2869         * doc/invoke.texi: Remove documentation of dropped -d? flags.
2870         * tree-into-ssa.c: Update tree_pass descriptors.
2871         * tree-dump.c: Update tree_pass descriptors.
2872         * tree-complex.c: Update tree_pass descriptors.
2873         * tree-dump.h: Update tree_pass descriptors.
2874         * see.c: Update tree_pass descriptors.
2875         * cgraphbuild.c: Update tree_pass descriptors.
2876         * tracer.c: Update tree_pass descriptors.
2877         * tree-loop-distribution.c: Update tree_pass descriptors.
2878         * cgraph.c: Update tree_pass descriptors.
2879         * postreload-gcse.c: Update tree_pass descriptors.
2880         * postreload.c: Update tree_pass descriptors.
2881         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
2882         * tree-tailcall.c: Update tree_pass descriptors.
2883         * tree-pass.h (tree_opt_pass): Rename to ...
2884         (opt_pass) ... this one; add "type" field and remove letter field.
2885         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
2886         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
2887         all_lowering_passes): Update declaration.
2888         * ipa-cp.c: Update tree_pass descriptors.
2889         * final.c: Update tree_pass descriptors.
2890         * omp-low.c: Update tree_pass descriptors.
2891         * tree-ssa-dse.c: Update tree_pass descriptors.
2892         * ipa-reference.c: Update tree_pass descriptors.
2893         * tree-ssa-uncprop.c: Update tree_pass descriptors.
2894         * auto-inc-dec.c: Update tree_pass descriptors.
2895         * reorg.c: Update tree_pass descriptors.
2896         * cgraphunit.c: Update tree_pass descriptors.
2897         * tree-ssa-copyrename.c: Update tree_pass descriptors.
2898         * tree-ssa-ccp.c: Update tree_pass descriptors.
2899         * df-core.c: Update tree_pass descriptors.
2900         * mode-switching.c: Update tree_pass descriptors.
2901         * tree-nomudflap.c: Update tree_pass descriptors.
2902         * modulo-sched.c: Update tree_pass descriptors.
2903         * ipa-pure-const.c: Update tree_pass descriptors.
2904         * cse.c: Update tree_pass descriptors.
2905         * web.c: Update tree_pass descriptors.
2906         * tree-stdarg.c: Update tree_pass descriptors.
2907         * tree-ssa-math-opts.c: Update tree_pass descriptors.
2908         * tree-ssa-dom.c: Update tree_pass descriptors.
2909         * tree-nrv.c: Update tree_pass descriptors.
2910         * tree-ssa-alias.c: Update tree_pass descriptors.
2911         * loop-init.c: Update tree_pass descriptors.
2912         * gimple-low.c: Update tree_pass descriptors.
2913         * ipa-inline.c: Update tree_pass descriptors.
2914         * tree-ssa-sink.c: Update tree_pass descriptors.
2915         * global.c: Update tree_pass descriptors.
2916         * ifcvt.c: Update tree_pass descriptors.
2917         * jump.c: Update tree_pass descriptors.
2918         * predict.c: Update tree_pass descriptors.
2919         * tree-ssa-loop.c: Update tree_pass descriptors.
2920         * recog.c: Update tree_pass descriptors.
2921         * dse.c: Update tree_pass descriptors.
2922         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
2923         * tree-eh.c: Update tree_pass descriptors.
2924         * regmove.c: Update tree_pass descriptors.
2925         * local-alloc.c
2926         * function.c: Update tree_pass descriptors.
2927         * tree-vectorizer.c: Update tree_pass descriptors.
2928         * gcse.c: Update tree_pass descriptors.
2929         * ipa-type-escape.c: Update tree_pass descriptors.
2930         * tree-if-conv.c: Update tree_pass descriptors.
2931         * init-regs.c: Update tree_pass descriptors.
2932         * ipa.c: Update tree_pass descriptors.
2933         * tree-ssa-phiopt.c: Update tree_pass descriptors.
2934         * rtl-factoring.c: Update tree_pass descriptors.
2935         * lower-subreg.c: Update tree_pass descriptors.
2936         * bt-load.c: Update tree_pass descriptors.
2937         * tree-dfa.c: Update tree_pass descriptors.
2938         * except.c: Update tree_pass descriptors.
2939         * emit-rtl.c: Update tree_pass descriptors.
2940         * cfgexpand.c: Update tree_pass descriptors.
2941         * tree-cfgcleanup.c: Update tree_pass descriptors.
2942         * cfgcleanup.c: Update tree_pass descriptors.
2943         * tree-ssa-pre.c: Update tree_pass descriptors.
2944         * tree-sra.c: Update tree_pass descriptors.
2945         * tree-mudflap.c: Update tree_pass descriptors.
2946         * tree-ssa-copy.c: Update tree_pass descriptors.
2947         * cfglayout.c: Update tree_pass descriptors.
2948         * tree-ssa-forwprop.c: Update tree_pass descriptors.
2949         * tree-ssa-dce.c: Update tree_pass descriptors.
2950         * tree-ssa.c: Update tree_pass descriptors.
2951         * regclass.c: Update tree_pass descriptors.
2952         * integrate.c: Update tree_pass descriptors.
2953         * tree-optimize.c: Update tree_pass descriptors.
2954         * tree-ssa-phiprop.c: Update tree_pass descriptors.
2955         * tree-object-size.c: Update tree_pass descriptors.
2956         * combine.c: Update tree_pass descriptors.
2957         * tree-outof-ssa.c: Update tree_pass descriptors.
2958         * bb-reorder.c: Update tree_pass descriptors.
2959         * stack-ptr-mod.c: Update tree_pass descriptors.
2960         * var-tracking.c: Update tree_pass descriptors.
2961         * tree-profile.c: Update tree_pass descriptors.
2962         * tree-vect-generic.c: Update tree_pass descriptors.
2963         * reg-stack.c: Update tree_pass descriptors.
2964         * sched-rgn.c: Update tree_pass descriptors.
2965         * tree-ssa-structalias.c: Update tree_pass descriptors.
2966         * tree-cfg.c: Update tree_pass descriptors.
2967         * passes.c (current_pass): Update declaration.
2968         (finish_optimization_passes): Update.
2969         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
2970         (register_one_dump_file, register_dump_files_1, next_pass_1):
2971         Update arguments.
2972         (init_optimization_passes): Update handling of new types.
2973         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
2974         * ipa-struct-reorg.c: Update tree_pass descriptors.
2975         * tree-ssa-reassoc.c: Update tree_pass descriptors.
2976         * combine-stack-adj.c: Update tree_pass descriptors.
2977         * cfgrtl.c: Update tree_pass descriptors.
2978         * dce.c: Update tree_pass descriptors.
2979         * tree-ssanames.c: Update tree_pass descriptors.
2980
2981 2008-03-19  Richard Guenther  <rguenther@suse.de>
2982
2983         PR middle-end/35609
2984         * tree-ssa.c (walk_data): New structure.
2985         (warn_uninitialized_var): If not always_executed warn with "maybe"
2986         instead of "is".
2987         (execute_early_warn_uninitialized): Compute post-dominators.
2988         Initialize always_executed before processing each basic block.
2989
2990 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
2991
2992         PR target/35504
2993         * config/i386/i386.c (x86_this_parameter): Calculate correct location
2994         of "this" pointer when "regparm = N" or "fastcall" is in effect.
2995
2996 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2997
2998         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
2999
3000 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
3001
3002         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
3003         is true.
3004         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
3005         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
3006         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
3007         target after ignore has been set, and move there also the commputation
3008         of subtarget and original_target.
3009         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
3010         (LANG_HOOKS_INITIALIZER): Remove it.
3011         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
3012
3013 2008-03-18  Richard Guenther  <rguenther@suse.de>
3014
3015         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
3016         found an expression with constants, note that in the VN for the lhs.
3017         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
3018         fold them to constants if possible.  Run cleanup_cfg if done so.
3019         (execute_pre): Return todo.
3020         (do_pre): Likewise.
3021         (execute_fre): Likewise.
3022         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
3023         of constants.
3024         (get_prop_source_stmt): Look through pointer conversions.
3025
3026 2008-03-18  Jan Hubicka  <jh@suse.cz>
3027
3028         * tree-pretty-print.c: Include predict.h.
3029         (dump_generic_node): Dump predictor.
3030         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
3031         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
3032         * gimple-low.c (lower_stmt): Likewise.
3033         * expr.c (expand_expr_real): Likewise.
3034         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
3035         them.
3036         (build_predict_expr, build_predict_expr): New.
3037         * predict.h (predictor_name, build_predict_expr): Update.
3038         * c-typeck.c (c_finish_bc_stmt): Add prediction.
3039         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
3040         * predict.def (PRED_CONTINUE): Update hitrate.
3041         * tree.def (PREDICT_EXPR): Define.
3042         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
3043         do not handle BIND_EXPR.
3044         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
3045         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
3046         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
3047         operands.
3048
3049 2008-03-18  Michael Matz  <matz@suse.de>
3050
3051         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
3052
3053 2008-03-18  Richard Guenther  <rguenther@suse.de>
3054
3055         * tree-gimple.h (is_gimple_invariant_address): Declare.
3056         (is_gimple_constant): Likewise.
3057         * tree-gimple.c (is_gimple_constant): New function.
3058         (is_gimple_invariant_address): Likewise.
3059         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
3060         and is_gimple_invariant_address.
3061         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
3062         previous change.
3063         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
3064         an addressable base.
3065
3066 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
3067
3068         PR middle-end/35611
3069         * gimplify.c (gimplify_expr): Gimplify second operand of
3070         OMP_ATOMIC_LOAD.
3071
3072 2008-03-17  Richard Guenther  <rguenther@suse.de>
3073
3074         PR tree-optimization/19637
3075         * fold-const.c (fold_unary): Remove restrictions of removing
3076         intermediate pointer-conversions (P2)(P1)P0.
3077         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
3078         conversion to void pointer.
3079         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
3080
3081 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
3082
3083         PR debug/31510
3084         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
3085         emulated thread local variables.
3086
3087 2008-03-16  Richard Guenther  <rguenther@suse.de>
3088
3089         PR middle-end/35607
3090         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
3091         expand TREE_INVARIANT operations that are not gimple invariant.
3092
3093 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
3094
3095         * doc/extend.texi (Alignment): Say that the ABI controls
3096         the __alignof__ for non-strict-alignment targets rather
3097         than being a recommendation.
3098
3099 2008-03-15  Paul Brook  <paul@codesourcery.com>
3100
3101         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
3102         annotations.
3103         (arm_output_fn_unwind): Mark functions that can not be unwound.
3104
3105 2008-03-15  Paul Brook  <paul@codesourcery.com>
3106
3107         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
3108         extension instructions.
3109
3110 2008-03-15  Richard Guenther  <rguenther@suse.de>
3111
3112         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
3113         and fold constant aggregate refs.
3114         (fold_const_aggregate_ref): Handle string constants
3115         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
3116         (evaluate_stmt): Simplify now that ccp_fold folds constant
3117         aggregate refs.
3118
3119 2008-03-15  Paul Brook  <paul@codesourcery.com>
3120
3121         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
3122         (extzv): Use gen_extzv_t2.
3123         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
3124
3125 2008-03-15  Richard Guenther  <rguenther@suse.de>
3126
3127         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
3128         (fold_const_aggregate_ref): Likewise.
3129         (get_value): Return NULL if we don't have any values.
3130         (ccp_finalize): Set const_val to NULL after freeing it.
3131         * tree-flow.h (get_symbol_constant_value): Declare.
3132         (fold_const_aggregate_ref): Likewise.
3133         * tree-ssa-sccvn.c (try_to_simplify): Use them.
3134
3135 2008-03-15  Richard Guenther  <rguenther@suse.de>
3136
3137         PR middle-end/35593
3138         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
3139         to not produce negative array indices if not allowed.  Add
3140         parameter to indicate that.
3141         (maybe_fold_offset_to_component_ref): Allow negative array
3142         indices only for the first member of a structure.
3143         (maybe_fold_offset_to_reference): Allow negative array indices.
3144         (maybe_fold_stmt_addition): Likewise.
3145
3146 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
3147             Anatoly Sokolov <aesok@post.ru>
3148
3149         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
3150         (avr_arch): Add ARCH_AVR6.
3151         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
3152         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
3153         instead of fixed value 2.
3154         (print_operand_address): Use gs() asm specifier instead of pm().
3155         (avr_assemble_integer): (Ditto.).
3156         (avr_output_addr_vec_elt): (Ditto.).
3157         (print_operand): Handle "!" code.
3158         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
3159         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
3160         (AVR_HAVE_EIJMP_EICALL): Define.
3161         (AVR_3_BYTE_PC): Redefine.
3162         (AVR_2_BYTE_PC): (Ditto.).
3163         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
3164         (LINK_SPEC): Add atmega2560 and atmega2561.
3165         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
3166         (crtm2561.o).
3167         * config/avr/avr.md (call_insn): Use eicall instead of icall 
3168         for 3 byte PC devices.
3169         (call_value_insn): (Ditto.).
3170         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
3171         (indirect_jump): Use only for for 2 byte PC devices.
3172         (*tablejump): (Ditto.).
3173         (*indirect_jump_avr6): Add insn.
3174         (*tablejump_rjmp): Don't use for 3 byte PC devices.
3175         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
3176         instead of ijmp for 3 byte PC devices.
3177         (__tablejump2__): (Ditto.).
3178         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
3179         (MULITLIB_DIRNAMES): (Ditto.). 
3180         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
3181
3182 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
3183
3184         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
3185         "sse2_umulsidi3".  Use V1DI mode for operand 0.
3186         ("mmx_psadbw"): Use V1DI mode for operand 0.
3187         * config/i386/i386-modes.def (V1SI): New vector mode.
3188         * config/i386/i386.c (struct builtin_description)
3189         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
3190         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
3191         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
3192         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
3193         v1di_ftype_v8qi_v8qi type.
3194         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
3195
3196         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
3197         __builtin_ia32_pmuludq]: Fix the mode of return value.
3198
3199 2008-03-15  Richard Guenther  <rguenther@suse.de>
3200
3201         PR middle-end/35595
3202         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
3203         being a PHI_NODE.
3204
3205 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
3206         
3207         * doc/invoke.texi (Option Summary, Xtensa Options): Document
3208         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
3209         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
3210         unless TARGET_SERIALIZE_VOLATILE is enabled.
3211         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
3212         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
3213         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
3214
3215 2008-03-14  Richard Guenther  <rguenther@suse.de>
3216
3217         PR tree-optimization/34172
3218         * tree-flow.h (refs_may_alias_p): Declare.
3219         (get_single_def_stmt): Likewise.
3220         (get_single_def_stmt_from_phi): Likewise.
3221         (get_single_def_stmt_with_phi): Likewise.
3222         * tree-dfa.c (refs_may_alias_p): New function.
3223         (get_single_def_stmt): Likewise.
3224         (get_single_def_stmt_from_phi): Likewise.
3225         (get_single_def_stmt_with_phi): Likewise.
3226         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
3227         (vn_reference_lookup_1): New helper function.
3228         (vn_reference_lookup): Walk the virtual use-def chain to
3229         continue searching for a match if the def does not alias the
3230         reference we are looking for.
3231
3232 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
3233
3234         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
3235         archive and Perzl.  Update The Written Word listing.
3236
3237 2008-03-14  Richard Guenther  <rguenther@suse.de>
3238
3239         PR tree-optimization/34043
3240         PR tree-optimization/33989
3241         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
3242         when doing FRE.
3243         (bitmap_find_leader): Use extra argument to verify dominance
3244         relationship inside a basic-block.
3245         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
3246         (find_leader_in_sets): Adjust.
3247         (create_component_ref_by_pieces): Take extra argument for
3248         dominance check, handle lookup failures.
3249         (find_or_generate_expression): Likewise.
3250         (create_expression_by_pieces): Likewise.
3251         (insert_into_preds_of_block): Adjust.
3252         (create_value_expr_from): If asked for, verify all operands
3253         are in the blocks AVAIL_OUT set.
3254         (make_values_for_stmt): Check for SSA_NAMEs that are life
3255         over an abnormal edge.
3256         (compute_avail): Remove such check.
3257         (do_SCCVN_insertion): New function.
3258         (eliminate): If we do not find a leader suitable for replacement
3259         insert a replacement expression from SCCVN if available.
3260         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
3261         (struct vn_ssa_aux): Add needs_insertion flag.
3262         * tree-ssa-sccvn.c (may_insert): New global flag.
3263         (copy_reference_ops_from_ref): Value-number union member access
3264         based on its size, not type and member if insertion is allowed.
3265         (visit_reference_op_load): For a weak match from union type
3266         punning lookup a view-converted value and insert a SSA_NAME
3267         for that value if that is not found.
3268         (visit_use): Make dumps shorter.  Do not disallow value numbering
3269         SSA_NAMEs that are life over an abnormal edge to constants.
3270         (free_scc_vn): Release inserted SSA_NAMEs.
3271         (run_scc_vn): New flag to specify whether insertion is allowed.
3272         Process SSA_NAMEs in forward order.
3273         * tree-ssa-loop-im.c (for_each_index): Handle invariant
3274         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
3275         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
3276         pointer type to/from integral types that do not change the
3277         precision to regular conversions.
3278
3279 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
3280
3281         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
3282         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
3283         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
3284         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
3285         input arguments and the mode of return value.  Built-in functions
3286         that operate on whole 64-bit MMX register now use V1DI mode.
3287
3288 2008-03-13  Alon Dayan  <alond@il.ibm.com>
3289             Olga Golovanevsky  <olga@il.ibm.com>
3290
3291         PR tree-optimization/35041
3292         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
3293         to locate the right position in a statement.
3294
3295 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
3296
3297         PR target/34000
3298         PR target/35553
3299         * config/i386/xmmintrin.h:  Change all static inline functions to
3300         extern inline and add __gnu_inline__ attribute.
3301         * config/i386/bmintrin.h: Ditto.
3302         * config/i386/smmintrin.h: Ditto.
3303         * config/i386/tmmintrin.h: Ditto.
3304         * config/i386/mmintrin-common.h: Ditto.
3305         * config/i386/ammintrin.h: Ditto.
3306         * config/i386/emmintrin.h: Ditto.
3307         * config/i386/pmmintrin.h: Ditto.
3308         * config/i386/mmintrin.h: Ditto.
3309         * config/i386/mm3dnow.h: Ditto.
3310
3311 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
3312
3313         PR middle-end/35185
3314         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
3315         (lower_omp_2): New function.
3316         (lower_omp_1, lower_omp): Rewritten.
3317
3318 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
3319
3320         PR 35054
3321         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
3322         with the phrase "Microsoft Windows compilers".
3323         (Push/Pop Macro Pragmas): New subsection. Document
3324         #pragma push_macro and pragma pop_macro.
3325
3326 2008-03-12  Paul Brook  <paul@codesourcery.com>
3327
3328         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
3329
3330 2008-03-12  Paul Brook  <paul@codesourcery.com>
3331
3332         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
3333         (thumb2_alusi3_short): Exclude PLUS and MINUS.
3334         (thumb2_addsi_shortim): Rename ...
3335         (thumb2_addsi_short): ... to this.  Allow register operands.
3336         (thumb2_subsi_short): New pattern.
3337         (thumb2_one_cmplsi2_short,
3338         thumb2_negsi2_short): New patterns and peepholes.
3339
3340 2008-03-12  Paul Brook  <paul@codesourcery.com>
3341
3342         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
3343
3344 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
3345
3346         * config/i386/i386.md (int_cond): New code iterator.
3347         (fp_cond): Ditto.
3348         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
3349         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
3350         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
3351         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
3352         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
3353         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
3354         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
3355         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
3356
3357 2008-03-12  Paul Brook  <paul@codesourcery.com>
3358
3359         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
3360         instead of {arm,thumb}_compute_save_reg_mask.
3361         (output_return_instruction): Ditto.
3362         (thumb_unexpanded_epilogue): Ditto.
3363         (thumb1_expand_prologue): Ditto.
3364         (thumb1_output_function_prologue): Ditto.
3365         (arm_set_return_address): Ditto.
3366         (thumb_set_return_address): Ditto.
3367         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
3368         regs to achieve stack alignment.
3369         (thumb1_compute_save_reg_mask): Fix compiler warning.
3370         (arm_output_epilogue): Use offsets->saved_regs_mask.
3371         Adjust stack pointer by poping call clobered registers.
3372         (arm_expand_prologue): Use offsets->saved_regs_mask.
3373         Adjust stack pointer by pushing extra registers.
3374         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
3375
3376 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
3377
3378         PR tree-opt/35422
3379         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
3380         conversion to the operands of a multiplication.
3381
3382 2008-03-12  Richard Guenther  <rguenther@suse.de>
3383
3384         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
3385         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
3386         * timevar.def (TV_TREE_PHIPROP): Add.
3387         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
3388         pass description.  Use TV_TREE_PHIPROP.
3389         * tree-ssa-forwprop.c: Remove phiprop code.
3390
3391 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
3392
3393         PR middle-end/35549
3394         * omp-low.c (maybe_lookup_decl): Constify first argument.
3395         (use_pointer_for_field): Change last argument from bool to
3396         omp_context *.  Disallow shared copy-in/out in nested
3397         parallel if decl is shared in outer parallel too.
3398         (build_outer_var_ref, scan_sharing_clauses,
3399         lower_rec_input_clauses, lower_copyprivate_clauses,
3400         lower_send_clauses, lower_send_shared_vars): Adjust callers.
3401
3402 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
3403             Ira Rosen  <irar@il.ibm.com>