OSDN Git Service

* tree.c (build_function_type_skip_args, build_function_decl_skip_args):
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-08-29  Jan Hubicka  <jh@suse.cz>
2
3         * tree.c (build_function_type_skip_args, build_function_decl_skip_args):
4         New functions.
5         * tree.h (build_function_type_skip_args, build_function_decl_skip_args):
6         Declare.
7         * gimple.c (giple_copy_call_skip_args): New function.
8         (giple_copy_call_skip_args): Declare.
9
10         * cgraph.h (cgraph_function_versioning): Add skip_args arugmnet
11         * ipa-cp.c (ipcp_node_not_modifiable_p): Rename to ...
12         (ipcp_node_modifiable_p): ... this one; use tree_versionable_function_p.
13         (ipcp_create_replace_map): Improve debug output.
14         (ipcp_need_redirect_p): Return false when not clonning.
15         (ipcp_update_callgraph): Skip args.
16         (ipcp_insert_stage): UPdate call of !ipcp_node_modifiable_p;
17         skip args.
18         * cgraphunit.c (cgraph_function_versioning): Add skip_args argument.
19         (save_inline_function_body): Update call of tree_function_versioning.
20         * ipa-prop.c (ipa_edge_removal_hook): Do not ICE on unanalyzed nodes.
21         * tree-inline.c (copy_arguments_for_versioning): Add skip_args argument.
22         (tree_function_versioning): Likewise.
23         * tree-inline.h (tree_function_versioning): Update prototype.
24
25 2008-08-29  Jan Hubicka  <jh@suse.cz>
26
27         * loop-unswitch.c (unswitch_single_loop): Use optimize_loop_for_speed_p.
28         * tree-ssa-threadupdate.c (mark_threaded_blocks): Use optimize_function_for_size_p.
29         * tracer.c (ignore_bb_p): Use optimize_bb_for_size_p.
30         * postreload-gcse.c (eliminate_partially_redundant_load): Use optimize_bb_for_size_p.
31         * value-prof.c (gimple_divmod_fixed_value_transform,
32         gimple_mod_pow2_value_transform, gimple_mod_subtract_transform,
33         gimple_stringops_transform): Use optimize_bb_for_size_p.
34         * ipa-cp.c (ipcp_insert_stage): Use optimize_function_for_size_p.
35         * final.c (compute_alignments): Use optimize_function_for_size_p.
36         * builtins.c (fold_builtin_cabs): Use optimize_function_for_speed_p.
37         (fold_builtin_strcpy, fold_builtin_fputs): Use
38         optimize_function_for_size_p.
39         * fold-const.c (tree_swap_operands_p): Use optimize_function_for_size_p.
40         * recog.c (relax_delay_slots): Likewise.
41         * tree-ssa-math-opts.c (replace_reciprocal): Use optimize_bb_for_speed_p.
42         (execute_cse_reciprocals): Use optimize_bb_for_size_p.
43         * ipa-inline.c (cgraph_decide_recursive_inlining): Use
44         optimize_function_for_size_p.
45         (cgraph_decide_inlining_of_small_function): Use
46         optimize_function_for_size_p.
47         * global.c (find_reg): Use optimize_function_for_size_p.
48         * opts.c (decode_options): Do not clear flag_tree_ch, flag_inline_functions,
49         flag_unswitch_loops, flag_unroll_loops, flag_unroll_all_loops and
50         flag_prefetch_loop_arrays. Those can work it out from profile.
51         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Use
52         optimize_loop_for_speed_p.
53         * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p): Constify
54         argument.
55         (optimize_loop_nest_for_size_p, optimize_loop_nest_for_speed_p): New.
56         * tree-parloops.c (parallelize_loops): Use optimize_loop_for_size_p.
57         * tree-eh.c (decide_copy_try_finally): Use optimize_function_for_size_p.
58         * local-alloc.c (block_alloc): Pass BB pointer.
59         (find_free_reg): Add BB pointer, use optimize_bb_for_size_p.
60         * gcse.c (gcse_main): Use optimize_function_for_size_p.
61         * loop-unroll.c (decide_unrolling_and_peeling): Use optimize_loop_for_size_p.
62         (decide_peel_completely): Likewise.
63         * tree-vect-analyze.c (vect_mark_for_runtime_alias_test): Use
64         optimize_loop_for_size_p.
65         (vect_enhance_data_refs_alignment): Likewise.
66         * tree-ssa-coalesce.c (coalesce_cost): Add optimize_for_size argument.
67         (coalesce_cost_bb, coalesce_cost_edge, create_outofssa_var_map): Update call.
68         * cfgcleanup.c (outgoing_edges_match): Use optimize_bb_for_speed_p.
69         (try_crossjump_bb): Use optimize_bb_for_size_p.
70         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
71         optimize_loop_for_speed_p.
72         * bb-reorder.c (find_traces_1_round): Likewise.
73         (copy_bb): Use optimize_bb_for_speed_p.
74         (duplicate_computed_gotos): Likewise.
75         * basic-block.h (optimize_loop_nest_for_size_p,
76         optimize_loop_nest_for_speed_p): New.
77         * stmt.c (expand_case): Use optimize_insn_for_size_p.
78
79 2008-08-29  Tristan Gingold  <gingold@adacore.com>
80
81         * gcov.c (main): Call expandargv.
82
83 2008-08-29  Jan Hubicka  <jh@suse.cz>
84
85         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Check that loop
86         is not cold.
87         * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
88         Constify arguments.
89         (optimize_loop_for_size_p, optimize_loop_for_speed_p): New functions.
90         * basic-block.h (optimize_bb_for_size_p, optimize_bb_for_speed_p):
91         Constify.
92         (optimize_loop_for_size_p, optimize_loop_for_speed_p): Declare.
93
94 2008-08-29  Jan Hubicka  <jh@suse.cz>
95
96         * tree-pass.h (pass_strip_predict_hints): Declare.
97         * predict.c (strip_builtin_expect): Rename to ...
98         (strip_predict_hints): ... this one; strip also GIMPLE_PREDICT.
99         (tree_bb_level_predictions): Do not remove GIMPLE_PREDICT.
100         (tree_estimate_probability): Do not strip builtin_expect.
101         (pass_strip_predict_hints): New pass.
102         * tree-inline.c (expand_call_inline): When inlining cold function, predict
103         it as unlikely.
104         * passes.c (init_optimization_passes): Add pass_strip_predict_hints.
105
106 2008-08-29  Richard Guenther  <rguenther@suse.de>
107
108         PR tree-optimization/37207
109         * tree-vrp.c (extract_range_from_binary_expr): Also try
110         to constant fold if only one of the operands is a constant.
111
112 2008-08-29  Nick Clifton  <nickc@redhat.com>
113
114         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Treat LABEL_REFs in
115         the same way as SYMBOL_REFs.
116
117 2008-08-28  Bob Wilson  <bob.wilson@acm.org>
118
119         * config/xtensa/xtensa.md (<u>mulsidi3): Use a temporary register.
120
121 2008-08-28  Adam Nemet  <anemet@caviumnetworks.com>
122
123         * config/mips/mips.h (ISA_HAS_BBIT): New macro.
124         * config/mips/mips.md (branch_likely): Remove const.  Fix
125         comment formatting.
126         (define_delay for type "branch"): Change to only apply for branch
127         with likely variant.
128         (define_delay for type "branch" and "branch_likely" no).  New delay
129         definition.
130         (equality_op): New code iterator.
131         (bbv, bbinv): New code attributes.
132         (*branch_bit<bbv><mode>, *branch_bit<bbv><mode>_inverted): New
133         patterns.
134
135 2008-08-28  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
136             Andrew Pinski  <pinskia@gcc.gnu.org>
137
138         PR 18050
139         * c-common.c (verify_tree): Fix handling of ADDR_EXPR.
140
141 2008-08-28  Paolo Carlini  <paolo.carlini@oracle.com>
142
143         * gtrh-posix.h: Fix uses of _POSIX_TIMEOUTS per the normal Posix
144         rule that a symbolic constant must be defined and >= 0 for the
145         corresponding facility to be present at compile-time.
146         * gthr-posix.c: Likewise.
147
148 2008-08-28  Adam Nemet  <anemet@caviumnetworks.com>
149
150         * config/mips/mips.h (ISA_HAS_DMUL3): New macro.
151         * config/mips/mips.md (D): New mode attribute.
152         (mulsi3, muldi3): Merge it into ...
153         (mul<mode>3): ... new template.  Use _mul3 ending for 3-op
154         patterns.
155         (muldi3_mul3): New pattern.
156         (mulsi3_mult3): Rename to mulsi3_mul3.
157
158 2008-08-28  Jan Hubicka  <jh@suse.cz>
159
160         * expmed.c (store_bit_field_1): Be prepared for movstrict expander
161         to fail.
162         * predict.c (always_optimize_for_size_p): Rename to ...
163         (optimize_function_for_size): ... this one; make extern.
164         (optimize_function_for_speed_p): New.
165         (optimize_bb_for_size_p, optimize_bb_for_size_p,
166         optimize_edge_for_size_p,optimize_edge_for_size_p,
167         optimize_insn_for_size_p, optimize_insn_for_size_p): Update.
168         * basic-block.h (optimize_function_for_size_p,
169         optimize_function_for_speed_p): Declare.
170         * i386.md (optimize_size checks): Replace them by appropriate
171         predicate.
172         (standard_80387_constant_p, ix86_compute_frame_layout,
173         ix86_expand_epilogue, ix86_decompose_address,
174         print_operand, emit_i387_cw_initialization,
175         inline_memory_move_cost, ix86_pad_returns,
176         ix86_reorg): Replace optimize_size checks.
177
178 2008-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
179
180         * rtl.h (simplify_subreg_regno): Declare.
181         * rtlanal.c (simplify_subreg_regno): New function, split out from...
182         * simplify-rtx.c (simplify_subreg): ...here.
183         * reload.c (find_reloads): Use simplify_subreg_regno instead of
184         subreg_offset_representable_p.
185
186 2008-08-28  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
187
188         PR c/30949
189         * c-typeck.c (convert_for_assignment): Give a note describing what
190         was passed and what was expected.
191
192 2008-08-28  Joey Ye  <joey.ye@intel.com>
193
194         * doc/extend.texi: Document AVX built-in functions.
195         * doc/invoke.texi: Document -mavx.
196
197 2008-08-28  H.J. Lu  <hongjiu.lu@intel.com>
198             Joey Ye  <joey.ye@intel.com>
199             Xuepeng Guo  <xuepeng.guo@intel.com>
200
201         * config.gcc (extra_headers): Add gmmintrin.h for x86 and x86-64.
202
203         * config/i386/cpuid.h (bit_FMA): New.
204         (bit_XSAVE): Likewise.
205         (bit_OSXSAVE): Likewise.
206         (bit_AVX): Likewise.
207
208         * config/i386/gas.h (ASM_OUTPUT_OPCODE): Undefine before
209         define.  Use ASM_OUTPUT_AVX_PREFIX.
210
211         * config/i386/gmmintrin.h: New.
212
213         * config/i386/i386.c (x86_64_reg_class): Add X86_64_AVX_CLASS.
214         (OPTION_MASK_ISA_AVX_SET): New.
215         (OPTION_MASK_ISA_FMA_SET): Likewise.
216         (OPTION_MASK_ISA_AVX_UNSET): Likewise.
217         (OPTION_MASK_ISA_FMA_SET): Likewise.
218         (OPTION_MASK_ISA_SSE4_2_UNSET): Updated.
219         (ix86_handle_option): Handle OPT_mavx and OPT_mfma.
220         (pta_flags): Add PTA_AVX and PTA_FMA.
221         (override_options): Handle PTA_AVX and PTA_FMA.
222         (init_cumulative_args): Handle warn_avx.
223         (classify_argument): Return 0 for COImode and OImode.  Return
224         1 and X86_64_AVX_CLASS for 256bit vector types.
225         (examine_argument): Handle X86_64_AVX_CLASS.
226         (construct_container): Likewise.
227         (function_arg_advance_32): Pass OImode and 256bit vector types
228         in AVX register.
229         (function_arg_advance_64): Take a new argument to indicate if a
230         parameter is named.  Handle 256bit vector types.  Return
231         immediately for unnamed 256bit vector mode parameters.
232         (function_arg_advance): Updated.
233         (function_arg_32): Add comments for TImode.  Handle OImode
234         and 256bit vector types.
235         (function_arg_64): Take a new argument to indicate if a
236         parameter is named.  Handle 256bit vector types.  Return NULL
237         for unnamed 256bit vector mode parameters.
238         (function_arg): Updated.
239         (setup_incoming_varargs_64): Support
240         AVX encoding for *sse_prologue_save_insn.
241         (ix86_gimplify_va_arg): Handle 256bit vector mode parameters.
242         (standard_sse_constant_p): Return -2 for all 1s if SSE2 isn't
243         enabled.  For all 1s in 256bit vector modes, return 3 if AVX is
244         enabled, otherwise return -3.
245         (standard_sse_constant_opcode): Handle AVX and 256bit vector
246         modes.
247         (print_reg): Support AVX registers.  Handle 'x' and 't'.
248         Handle 'd' to duplicate the operand.
249         (print_operand): Likewise.  Also support AVX vector compare
250         instructions.
251         (output_387_binary_op): Support AVX.
252         (output_fp_compare): Likewise.
253         (ix86_expand_vector_move_misalign): Likewise.
254         (ix86_attr_length_vex_default): New.
255         (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
256         IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
257         IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
258         IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
259         IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_BLENDPD256,
260         IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
261         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DIVPD256,
262         IX86_BUILTIN_DIVPS256, IX86_BUILTIN_DPPS256,
263         IX86_BUILTIN_HADDPD256, IX86_BUILTIN_HADDPS256,
264         IX86_BUILTIN_HSUBPD256, IX86_BUILTIN_HSUBPS256,
265         IX86_BUILTIN_MAXPD256, IX86_BUILTIN_MAXPS256,
266         IX86_BUILTIN_MINPD256, IX86_BUILTIN_MINPS256,
267         IX86_BUILTIN_MULPD256, IX86_BUILTIN_MULPS256,
268         IX86_BUILTIN_ORPD256, IX86_BUILTIN_ORPS256,
269         IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
270         IX86_BUILTIN_SUBPD256, IX86_BUILTIN_SUBPS256,
271         IX86_BUILTIN_XORPD256, IX86_BUILTIN_XORPS256,
272         IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
273         IX86_BUILTIN_CMPPS, IX86_BUILTIN_CMPPD256,
274         IX86_BUILTIN_CMPPS256, IX86_BUILTIN_CVTDQ2PD256,
275         IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
276         IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
277         IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
278         IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_EXTRACTF128PD256,
279         IX86_BUILTIN_EXTRACTF128PS256, IX86_BUILTIN_EXTRACTF128SI256,
280         IX86_BUILTIN_VZEROALL, IX86_BUILTIN_VZEROUPPER,
281         IX86_BUILTIN_VZEROUPPER_REX64, IX86_BUILTIN_VPERMILVARPD,
282         IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
283         IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_VPERMILPD,
284         IX86_BUILTIN_VPERMILPS, IX86_BUILTIN_VPERMILPD256,
285         IX86_BUILTIN_VPERMILPS256, IX86_BUILTIN_VPERMIL2PD,
286         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256,
287         IX86_BUILTIN_VPERMIL2PS256, IX86_BUILTIN_VPERM2F128PD256,
288         IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
289         IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
290         IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
291         IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_VINSERTF128PD256,
292         IX86_BUILTIN_VINSERTF128PS256, IX86_BUILTIN_VINSERTF128SI256,
293         IX86_BUILTIN_LOADUPD256, IX86_BUILTIN_LOADUPS256,
294         IX86_BUILTIN_STOREUPD256, IX86_BUILTIN_STOREUPS256,
295         IX86_BUILTIN_LDDQU256, IX86_BUILTIN_LOADDQU256,
296         IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_MASKLOADPD,
297         IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKSTOREPD,
298         IX86_BUILTIN_MASKSTOREPS, IX86_BUILTIN_MASKLOADPD256,
299         IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKSTOREPD256,
300         IX86_BUILTIN_MASKSTOREPS256, IX86_BUILTIN_MOVSHDUP256,
301         IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
302         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
303         IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
304         IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
305         IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
306         IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
307         IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
308         IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
309         IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
310         IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
311         IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
312         IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
313         IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
314         IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
315         IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
316         IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
317         IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
318         IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256
319         and IX86_BUILTIN_MOVMSKPS256,
320         (ix86_special_builtin_type): Add V32QI_FTYPE_PCCHAR,
321         V8SF_FTYPE_PCV4SF, V8SF_FTYPE_PCFLOAT, V4DF_FTYPE_PCV2DF,
322         V4DF_FTYPE_PCDOUBLE, V8SF_FTYPE_PCV8SF_V8SF,
323         V4DF_FTYPE_PCV4DF_V4DF, V4SF_FTYPE_PCV4SF_V4SF,
324         V2DF_FTYPE_PCV2DF_V2DF, VOID_FTYPE_PCHAR_V32QI,
325         VOID_FTYPE_PFLOAT_V8SF, VOID_FTYPE_PDOUBLE_V4DF,
326         VOID_FTYPE_PV8SF_V8SF_V8SF, VOID_FTYPE_PV4DF_V4DF_V4DF,
327         VOID_FTYPE_PV4SF_V4SF_V4SF and VOID_FTYPE_PV2DF_V2DF_V2DF,
328         (ix86_builtin_type): Add INT_FTYPE_V8SF_V8SF_PTEST,
329         INT_FTYPE_V4DI_V4DI_PTEST, INT_FTYPE_V4DF_V4DF_PTEST,
330         INT_FTYPE_V4SF_V4SF_PTEST, INT_FTYPE_V2DF_V2DF_PTEST,
331         INT_FTYPE_V8SF, INT_FTYPE_V4DF, V8SI_FTYPE_V8SF, V8SI_FTYPE_V4SI,
332         V8SF_FTYPE_V8SF, V8SF_FTYPE_V8SI, V8SF_FTYPE_V4SF,
333         V4SI_FTYPE_V8SI, V4SI_FTYPE_V4DF, V4DF_FTYPE_V4DF,
334         V4DF_FTYPE_V4SI, V4DF_FTYPE_V4SF, V4DF_FTYPE_V2DF,
335         V4SF_FTYPE_V4DF, V4SF_FTYPE_V8SF, V2DF_FTYPE_V4DF,
336         V8SF_FTYPE_V8SF_V8SF, V8SF_FTYPE_V8SF_V8SI,
337         V4DF_FTYPE_V4DF_V4DF, V4DF_FTYPE_V4DF_V4DI,
338         V4SF_FTYPE_V4SF_V4SI, V2DF_FTYPE_V2DF_V2DI,
339         V8SF_FTYPE_V8SF_INT, V4SI_FTYPE_V8SI_INT, V4SF_FTYPE_V8SF_INT,
340         V2DF_FTYPE_V4DF_INT, V4DF_FTYPE_V4DF_INT,
341         V8SF_FTYPE_V8SF_V8SF_V8SF, V4DF_FTYPE_V4DF_V4DF_V4DF,
342         V8SI_FTYPE_V8SI_V8SI_INT, V8SF_FTYPE_V8SF_V8SF_INT,
343         V4DF_FTYPE_V4DF_V4DF_INT, V4DF_FTYPE_V4DF_V2DF_INT,
344         V8SF_FTYPE_V8SF_V8SF_V8SI_INT, V4DF_FTYPE_V4DF_V4DF_V4DI_INT,
345         V4SF_FTYPE_V4SF_V4SF_V4SI_INT and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
346         (bdesc_special_args): Add IX86_BUILTIN_VZEROALL,
347         IX86_BUILTIN_VZEROUPPER. IX86_BUILTIN_VZEROUPPER_REX64,
348         IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
349         IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
350         IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_LOADUPD256,
351         IX86_BUILTIN_LOADUPS256, IX86_BUILTIN_STOREUPD256,
352         IX86_BUILTIN_STOREUPS256, IX86_BUILTIN_LOADDQU256,
353         IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_LDDQU256,
354         IX86_BUILTIN_MASKLOADPD, IX86_BUILTIN_MASKLOADPS,
355         IX86_BUILTIN_MASKLOADPD256, IX86_BUILTIN_MASKLOADPS256,
356         IX86_BUILTIN_MASKSTOREPD, IX86_BUILTIN_MASKSTOREPS,
357         IX86_BUILTIN_MASKSTOREPD256 and IX86_BUILTIN_MASKSTOREPS256.
358         (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
359         IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
360         IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
361         IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
362         IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_DIVPD256,
363         IX86_BUILTIN_DIVPS256, IX86_BUILTIN_HADDPD256,
364         IX86_BUILTIN_HSUBPS256, IX86_BUILTIN_HSUBPD256,
365         IX86_BUILTIN_HADDPS256, IX86_BUILTIN_MAXPD256,
366         IX86_BUILTIN_MAXPS256, IX86_BUILTIN_MINPD256,
367         IX86_BUILTIN_MINPS256, IX86_BUILTIN_MULPD256,
368         IX86_BUILTIN_MULPS256, IX86_BUILTIN_ORPD256,
369         IX86_BUILTIN_ORPS256, IX86_BUILTIN_SUBPD256,
370         IX86_BUILTIN_SUBPS256, IX86_BUILTIN_XORPD256,
371         IX86_BUILTIN_XORPS256, IX86_BUILTIN_VPERMILVARPD,
372         IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
373         IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_BLENDPD256,
374         IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
375         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DPPS256,
376         IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
377         IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
378         IX86_BUILTIN_CMPPS,
379         IX86_BUILTIN_CMPPD256,IX86_BUILTIN_CMPPS256,
380         IX86_BUILTIN_EXTRACTF128PD256, IX86_BUILTIN_EXTRACTF128PS256,
381         IX86_BUILTIN_EXTRACTF128SI256, IX86_BUILTIN_CVTDQ2PD256,
382         IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
383         IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
384         IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
385         IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_VPERM2F128PD256,
386         IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
387         IX86_BUILTIN_VPERMILPD, IX86_BUILTIN_VPERMILPS,
388         IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
389         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMILPS,
390         IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
391         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
392         IX86_BUILTIN_VPERMIL2PD256, IX86_BUILTIN_VPERMIL2PS256,
393         IX86_BUILTIN_VINSERTF128PD256, IX86_BUILTIN_VINSERTF128PS256,
394         IX86_BUILTIN_VINSERTF128SI256, IX86_BUILTIN_MOVSHDUP256,
395         IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
396         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
397         IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
398         IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
399         IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
400         IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
401         IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
402         IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
403         IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
404         IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
405         IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
406         IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
407         IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
408         IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
409         IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
410         IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
411         IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
412         IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256 and
413         IX86_BUILTIN_MOVMSKPS256.
414         (ix86_init_mmx_sse_builtins): Support AVX builtins.
415         (ix86_expand_args_builtin): Likewise.
416         (ix86_expand_special_args_builtin): Likewise.
417         (ix86_hard_regno_mode_ok): Handle AVX modes.
418         (ix86_expand_vector_init_duplicate): Likewise.
419         (ix86_expand_vector_init_one_nonzero): Likewise.
420         (ix86_expand_vector_init_one_var): Likewise.
421         (ix86_expand_vector_init_concat): Likewise.
422         (ix86_expand_vector_init_general): Likewise.
423         (ix86_expand_vector_set): Likewise.
424         (ix86_vector_mode_supported_p): Likewise.
425         (x86_extended_reg_mentioned_p): Check INSN_P before using
426         PATTERN.
427
428         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
429         OPTION_MASK_ISA_AVX and OPTION_MASK_ISA_FMA.
430
431         * config/i386/i386.h (TARGET_AVX): New.
432         (TARGET_FMA): Likewise.
433         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AVX and TARGET_FMA.
434         (BIGGEST_ALIGNMENT): Set to 256 for TARGET_AVX.
435         (VALID_AVX256_REG_MODE): New.
436         (AVX256_VEC_FLOAT_MODE_P): Likewise.
437         (AVX_FLOAT_MODE_P): Likewise.
438         (AVX128_VEC_FLOAT_MODE_P): Likewise.
439         (AVX256_VEC_FLOAT_MODE_P): Likewise.
440         (AVX_VEC_FLOAT_MODE_P): Likewise.
441         (ASM_OUTPUT_AVX_PREFIX): Likewise.
442         (ASM_OUTPUT_OPCODE): Likewise.
443         (UNITS_PER_SIMD_WORD): Add a FIXME for 32byte vectorizer
444         support.
445         (SSE_REG_MODE_P): Allow 256bit vector modes.
446         (ix86_args): Add a warn_avx field.
447
448         * config/i386/i386.md (UNSPEC_PCMP): New.
449         (UNSPEC_VPERMIL): Likewise.
450         (UNSPEC_VPERMIL2): Likewise.
451         (UNSPEC_VPERMIL2F128): Likewise.
452         (UNSPEC_MASKLOAD): Likewise.
453         (UNSPEC_MASKSTORE): Likewise.
454         (UNSPEC_CAST): Likewise.
455         (UNSPEC_VTESTP): Likewise.
456         (UNSPECV_VZEROALL): Likewise.
457         (UNSPECV_VZEROUPPER): Likewise.
458         (XMM0_REG): Likewise.
459         (XMM1_REG): Likewise.
460         (XMM2_REG): Likewise.
461         (XMM3_REG): Likewise.
462         (XMM4_REG): Likewise.
463         (XMM5_REG): Likewise.
464         (XMM6_REG): Likewise.
465         (XMM8_REG): Likewise.
466         (XMM9_REG): Likewise.
467         (XMM10_REG): Likewise.
468         (XMM11_REG): Likewise.
469         (XMM12_REG): Likewise.
470         (XMM13_REG): Likewise.
471         (XMM14_REG): Likewise.
472         (XMM15_REG): Likewise.
473         (prefix): Likewise.
474         (prefix_vex_imm8): Likewise.
475         (prefix_vex_w): Likewise.
476         (length_vex): Likewise.
477         (maxmin): Likewise.
478         (movoi): Likewise.
479         (*avx_ashlti3): Likewise.
480         (*avx_lshrti3): Likewise.
481         (*avx_setcc<mode>): Likewise.
482         (*fop_<mode>_comm_mixed_avx): Likewise.
483         (*fop_<mode>_comm_avx): Likewise.
484         (*fop_<mode>_1_mixed_avx): Likewise.
485         (*fop_<mode>_1_avx): Likewise.
486         (*avx_<code><mode>3): Likewise.
487         (*avx_ieee_smin<mode>3): Likewise.
488         (*avx_ieee_smax<mode>3): Likewise.
489         (mode): Add OI, V8SF and V4DF.
490         (length): Support VEX prefix.
491         (*cmpfp_i_mixed): Set prefix attribute.
492         (*cmpfp_i_sse): Likewise.
493         (*cmpfp_iu_mixed): Likewise.
494         (*cmpfp_iu_sse): Likewise.
495         (*movsi_1): Support AVX.
496         (*movdi_2): Likewise.
497         (*movdi_1_rex64): Likewise.
498         (*movti_internal): Likewise.
499         (*movti_rex64): Likewise.
500         (*movsf_1): Likewise.
501         (*movdf_nointeger): Likewise.
502         (*movdf_integer_rex64): Likewise.
503         (*movtf_internal): Likewise.
504         (zero_extendsidi2_32): Likewise.
505         (zero_extendsidi2_rex64): Likewise.
506         (*extendsfdf2_mixed): Likewise.
507         (*extendsfdf2_sse): Likewise.
508         (*truncdfsf_fast_mixed): Likewise.
509         (*truncdfsf_fast_sse): Likewise.
510         (*truncdfsf_mixed): Likewise.
511         (fix_trunc<mode>di_sse): Likewise.
512         (fix_trunc<mode>si_sse): Likewise.
513         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
514         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
515         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
516         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
517         (*rcpsf2_sse): Likewise.
518         (*rsqrtsf2_sse): Likewise.
519         (*sqrt<mode>2_sse): Likewise.
520         (sse4_1_round<mode>2): Likewise.
521         (*sse_prologue_save_insn): Disallow REX prefix for AVX.
522         Support AVX.  Set length attribute properly for AVX.
523
524         * config/i386/i386-modes.def (VECTOR_MODES (INT, 32)): New.
525         (VECTOR_MODES (FLOAT, 32)): Likewise.
526         (VECTOR_MODE (INT, DI, 8)): Likewise.
527         (VECTOR_MODE (INT, HI, 32)): Likewise.
528         (VECTOR_MODE (INT, QI, 64)): Likewise.
529         (VECTOR_MODE (FLOAT, DF, 8)): Likewise.
530         (VECTOR_MODE (FLOAT, SF, 16)): Likewise.
531         (VECTOR_MODE (INT, DI, 4)): Removed.
532         (VECTOR_MODE (INT, SI, 8)): Likewise.
533         (VECTOR_MODE (INT, HI, 16)): Likewise.
534         (VECTOR_MODE (INT, QI, 32)): Likewise.
535         (VECTOR_MODE (FLOAT, SF, 8)): Likewise.
536         (INT_MODE (OI, 32)): Likewise.
537
538         * config/i386/i386.opt (mavx): New.
539         (mfma): Likewise.
540
541         * config/i386/i386-protos.h (ix86_attr_length_vex_default): New.
542
543         * config/i386/mmx.md (*mov<mode>_internal_rex64): Support AVX.
544         (*mov<mode>_internal_avx): New.
545         (*movv2sf_internal_rex64_avx): Likewise.
546         (*movv2sf_internal_avx): Likewise.
547
548         * config/i386/predicates.md (const_4_to_5_operand): New.
549         (const_6_to_7_operand): Likewise.
550         (const_8_to_11_operand): Likewise.
551         (const_12_to_15_operand): Likewise.
552         (avx_comparison_float_operator): Likewise.
553
554         * config/i386/sse.md (AVX256MODEI): New.
555         (AVX256MODE): Likewise.
556         (AVXMODEQI): Likewise.
557         (AVXMODE): Likewise.
558         (AVX256MODEF2P): Likewise.
559         (AVX256MODE2P): Likewise.
560         (AVX256MODE4P): Likewise.
561         (AVX256MODE8P): Likewise.
562         (AVXMODEF2P): Likewise.
563         (AVXMODEF4P): Likewise.
564         (AVXMODEDCVTDQ2PS): Likewise.
565         (AVXMODEDCVTPS2DQ): Likewise.
566         (avxvecmode): Likewise.
567         (avxvecpsmode): Likewise.
568         (avxhalfvecmode): Likewise.
569         (avxscalarmode): Likewise.
570         (avxcvtvecmode): Likewise.
571         (avxpermvecmode): Likewise.
572         (avxmodesuffixf2c): Likewise.
573         (avxmodesuffixp): Likewise.
574         (avxmodesuffixs): Likewise.
575         (avxmodesuffix): Likewise.
576         (vpermilbits): Likewise.
577         (pinsrbits): Likewise.
578         (mov<mode>): Likewise.
579         (*mov<mode>_internal): Likewise.
580         (push<mode>1): Likewise.
581         (movmisalign<mode>): Likewise.
582         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Likewise.
583         (avx_movdqu<avxmodesuffix>): Likewise.
584         (avx_lddqu<avxmodesuffix>): Likewise.
585         (<plusminus_insn><mode>3): Likewise.
586         (*avx_<plusminus_insn><mode>3): Likewise.
587         (*avx_vm<plusminus_insn><mode>3): Likewise.
588         (mul<mode>3): Likewise.
589         (*avx_mul<mode>3): Likewise.
590         (*avx_vmmul<mode>3): Likewise.
591         (divv8sf3): Likewise.
592         (divv4df3): Likewise.
593         (avx_div<mode>3): Likewise.
594         (*avx_div<mode>3): Likewise.
595         (*avx_vmdiv<mode>3): Likewise.
596         (avx_rcpv8sf2): Likewise.
597         (*avx_vmrcpv4sf2): Likewise.
598         (sqrtv8sf2): Likewise.
599         (avx_sqrtv8sf2): Likewise.
600         (*avx_vmsqrt<mode>2): Likewise.
601         (rsqrtv8sf2): Likewise.
602         (avx_rsqrtv8sf2): Likewise.
603         (*avx_vmrsqrtv4sf2): Likewise.
604         (<code><mode>3): Likewise.
605         (*avx_<code><mode>3_finite): Likewise.
606         (*avx_<code><mode>3): Likewise.
607         (*avx_vm<code><mode>3): Likewise.
608         (*avx_ieee_smin<mode>3): Likewise.
609         (*avx_ieee_smax<mode>3): Likewise.
610         (avx_addsubv8sf3): Likewise.
611         (avx_addsubv4df3): Likewise.
612         (*avx_addsubv4sf3): Likewise.
613         (*avx_addsubv2df3): Likewise.
614         (avx_h<plusminus_insn>v4df3): Likewise.
615         (avx_h<plusminus_insn>v8sf3): Likewise.
616         (*avx_h<plusminus_insn>v4sf3): Likewise.
617         (*avx_h<plusminus_insn>v2df3): Likewise.
618         (avx_cmpp<avxmodesuffixf2c><mode>3): Likewise.
619         (avx_cmps<ssemodesuffixf2c><mode>3): Likewise.
620         (*avx_maskcmp<mode>3): Likewise.
621         (avx_nand<mode>3): Likewise.
622         (*avx_<code><mode>3): Likewise.
623         (*avx_nand<mode>3): Likewise.
624         (*avx_<code><mode>3): Likewise.
625         (*avx_cvtsi2ss): Likewise.
626         (*avx_cvtsi2ssq): Likewise.
627         (*avx_cvtsi2sd): Likewise.
628         (*avx_cvtsi2sdq): Likewise.
629         (*avx_cvtsd2ss): Likewise.
630         (avx_cvtss2sd): Likewise.
631         (avx_cvtdq2ps<avxmodesuffix>): Likewise.
632         (avx_cvtps2dq<avxmodesuffix>): Likewise.
633         (avx_cvttps2dq<avxmodesuffix>): Likewise.
634         (*avx_cvtsi2sd): Likewise.
635         (*avx_cvtsi2sdq): Likewise.
636         (avx_cvtdq2pd256): Likewise.
637         (avx_cvtpd2dq256): Likewise.
638         (avx_cvttpd2dq256): Likewise.
639         (*avx_cvtsd2ss): Likewise.
640         (*avx_cvtss2sd): Likewise.
641         (avx_cvtpd2ps256): Likewise.
642         (avx_cvtps2pd256): Likewise.
643         (*avx_movhlps): Likewise.
644         (*avx_movlhps): Likewise.
645         (avx_unpckhps256): Likewise.
646         (*avx_unpckhps): Likewise.
647         (avx_unpcklps256): Likewise.
648         (*avx_unpcklps): Likewise.
649         (avx_movshdup256): Likewise.
650         (avx_movsldup256): Likewise.
651         (avx_shufps256): Likewise.
652         (avx_shufps256_1): Likewise.
653         (*avx_shufps_<mode>): Likewise.
654         (*avx_loadhps): Likewise.
655         (*avx_storelps): Likewise.
656         (*avx_loadlps): Likewise.
657         (*avx_movss): Likewise.
658         (*vec_dupv4sf_avx): Likewise.
659         (*vec_concatv2sf_avx): Likewise.
660         (*vec_concatv4sf_avx): Likewise.
661         (*vec_setv4sf_0_avx): Likewise.
662         (*vec_setv4sf_avx): Likewise.
663         (*avx_insertps): Likewise.
664         (avx_vextractf128<mode>): Likewise.
665         (vec_extract_lo_<mode>): Likewise.
666         (vec_extract_hi_<mode>): Likewise.
667         (vec_extract_lo_<mode>): Likewise.
668         (vec_extract_hi_<mode>): Likewise.
669         (vec_extract_lo_v16hi): Likewise.
670         (vec_extract_hi_v16hi): Likewise.
671         (vec_extract_lo_v32qi): Likewise.
672         (vec_extract_hi_v32qi): Likewise.
673         (avx_unpckhpd256): Likewise.
674         (*avx_unpckhpd): Likewise.
675         (avx_movddup256): Likewise.
676         (*avx_movddup): Likewise.
677         (avx_unpcklpd256): Likewise.
678         (*avx_unpcklpd): Likewise.
679         (avx_shufpd256): Likewise.
680         (avx_shufpd256_1): Likewise.
681         (*avx_punpckhqdq): Likewise.
682         (*avx_punpcklqdq): Likewise.
683         (*avx_shufpd_<mode>): Likewise.
684         (*avx_storehpd): Likewise.
685         (*avx_loadhpd): Likewise.
686         (*avx_loadlpd): Likewise.
687         (*avx_movsd): Likewise.
688         (*vec_concatv2df_avx): Likewise.
689         (*avx_<plusminus_insn><mode>3): Likewise.
690         (*avx_<plusminus_insn><mode>3): Likewise.
691         (*avx_mulv8hi3): Likewise.
692         (*avxv8hi3_highpart): Likewise.
693         (*avx_umulv8hi3_highpart): Likewise.
694         (*avx_umulv2siv2di3): Likewise.
695         (*avx_mulv2siv2di3): Likewise.
696         (*avx_pmaddwd): Likewise.
697         (*avx_mulv4si3): Likewise.
698         (*avx_ashr<mode>3): Likewise.
699         (*avx_lshr<mode>3): Likewise.
700         (*avx_ashl<mode>3): Likewise.
701         (*avx_<code><mode>3): Likewise.
702         (*avx_eq<mode>3): Likewise.
703         (*avx_gt<mode>3): Likewise.
704         (*avx_nand<mode>3): Likewise.
705         (*avx_nand<mode>3): Likewise.
706         (*avx_<code><mode>3): Likewise.
707         (*avx_<code><mode>3): Likewise.
708         (*avx_packsswb): Likewise.
709         (*avx_packssdw): Likewise.
710         (*avx_packuswb): Likewise.
711         (*avx_punpckhbw): Likewise.
712         (*avx_punpcklbw): Likewise.
713         (*avx_punpckhwd): Likewise.
714         (*avx_punpcklwd): Likewise.
715         (*avx_punpckhdq): Likewise.
716         (*avx_punpckldq): Likewise.
717         (*avx_pinsr<avxmodesuffixs>): Likewise.
718         (*avx_pinsrq): Likewise.
719         (*avx_loadld): Likewise.
720         (*vec_extractv2di_1_rex64_avx): Likewise.
721         (*vec_extractv2di_1_avx): Likewise.
722         (*vec_dupv2di_avx): Likewise.
723         (*vec_concatv2si_avx): Likewise.
724         (*vec_concatv4si_1_avx): Likewise.
725         (*vec_concatv2di_avx): Likewise.
726         (*vec_concatv2di_rex64_avx): Likewise.
727         (*avx_uavgv16qi3): Likewise.
728         (*avx_uavgv8hi3): Likewise.
729         (*avx_psadbw): Likewise.
730         (avx_movmskp<avxmodesuffixf2c>256): Likewise.
731         (*avx_phaddwv8hi3): Likewise.
732         (*avx_phadddv4si3): Likewise.
733         (*avx_phaddswv8hi3): Likewise.
734         (*avx_phsubwv8hi3): Likewise.
735         (*avx_phsubdv4si3): Likewise.
736         (*avx_phsubswv8hi3): Likewise.
737         (*avx_pmaddubsw128): Likewise.
738         (*avx_pmulhrswv8hi3): Likewise.
739         (*avx_pshufbv16qi3): Likewise.
740         (*avx_psign<mode>3): Likewise.
741         (*avx_palignrti): Likewise.
742         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
743         (avx_blendvp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
744         (avx_dpp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
745         (*avx_mpsadbw): Likewise.
746         (*avx_packusdw): Likewise.
747         (*avx_pblendvb): Likewise.
748         (*avx_pblendw): Likewise.
749         (avx_vtestp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
750         (avx_ptest256): Likewise.
751         (avx_roundp<avxmodesuffixf2c>256): Likewise.
752         (*avx_rounds<ssemodesuffixf2c>): Likewise.
753         (*avx_aesenc): Likewise.
754         (*avx_aesenclast): Likewise.
755         (*avx_aesdec): Likewise.
756         (*avx_aesdeclast): Likewise.
757         (avx_vzeroupper): Likewise.
758         (avx_vzeroupper_rex64): Likewise.
759         (avx_vpermil<mode>): Likewise.
760         (avx_vpermilvar<mode>3): Likewise.
761         (avx_vpermil2<mode>3): Likewise.
762         (avx_vperm2f128<mode>3): Likewise.
763         (avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>): Likewise.
764         (avx_vbroadcastss256): Likewise.
765         (avx_vbroadcastf128_p<avxmodesuffixf2c>256): Likewise.
766         (avx_vinsertf128<mode>): Likewise.
767         (vec_set_lo_<mode>): Likewise.
768         (vec_set_hi_<mode>): Likewise.
769         (vec_set_lo_<mode>): Likewise.
770         (vec_set_hi_<mode>): Likewise.
771         (vec_set_lo_v16hi): Likewise.
772         (vec_set_hi_v16hi): Likewise.
773         (vec_set_lo_v32qi): Likewise.
774         (vec_set_hi_v32qi): Likewise.
775         (avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
776         (avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>): Likewise.
777         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
778         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Likewise.
779         (vec_init<mode>): Likewise.
780         (*vec_concat<mode>_avx): Likewise.
781         (blendbits): Support V8SF and V4DF.
782         (sse2_movq128): Support AVX.
783         (<sse>_movnt<mode>): Likewise.
784         (sse2_movntv2di): Likewise.
785         (sse_rcpv4sf2): Likewise.
786         (sse_sqrtv4sf2): Likewise.
787         (sse_rsqrtv4sf2): Likewise.
788         (<sse>_comi): Likewise.
789         (<sse>_ucomi): Likewise.
790         (sse_cvtss2si): Likewise.
791         (sse_cvtss2si_2): Likewise.
792         (sse_cvtss2siq): Likewise.
793         (sse_cvtss2siq_2): Likewise.
794         (sse_cvttss2si): Likewise.
795         (sse_cvttss2siq): Likewise.
796         (sse2_cvtsd2si): Likewise.
797         (sse2_cvtsd2si_2): Likewise.
798         (sse2_cvtsd2siq): Likewise.
799         (sse2_cvtsd2siq_2): Likewise.
800         (sse2_cvttsd2si): Likewise.
801         (sse2_cvttsd2siq): Likewise.
802         (sse2_cvtdq2pd): Likewise.
803         (*sse2_cvtpd2dq): Likewise.
804         (*sse2_cvttpd2dq): Likewise.
805         (*sse2_cvtpd2ps): Likewise.
806         (sse2_cvtps2pd): Likewise.
807         (sse3_movshdup): Likewise.
808         (sse3_movsldup): Likewise.
809         (sse_storehps): Likewise.
810         (*sse4_1_extractps): Likewise.
811         (sse2_storelpd): Likewise.
812         (vec_dupv2df_sse3): Likewise.
813         (*vec_concatv2df_sse3): Likewise.
814         (*sse4_1_pextrb): Likewise.
815         (*sse4_1_pextrb_memory): Likewise.
816         (*sse2_pextrw): Likewise.
817         (*sse4_1_pextrw_memory): Likewise.
818         (*sse4_1_pextrd): Likewise.
819         (*sse4_1_pextrq): Likewise.
820         (sse2_pshufd_1): Likewise.
821         (sse2_pshuflw_1): Likewise.
822         (sse2_pshufhw_1): Likewise.
823         (*sse2_storeq_rex64): Likewise.
824         (*vec_dupv4si): Likewise.
825         (<sse>_movmskp<ssemodesuffixf2c>): Likewise.
826         (sse2_pmovmskb): Likewise.
827         (*sse2_maskmovdqu): Likewise.
828         (*sse2_maskmovdqu_rex64): Likewise.
829         (sse_ldmxcsr): Likewise.
830         (sse_stmxcsr): Likewise.
831         (abs<mode>2): Likewise.
832         (sse4_1_movntdqa): Likewise.
833         (sse4_1_phminposuw): Likewise.
834         (sse4_1_extendv8qiv8hi2): Likewise.
835         (*sse4_1_extendv8qiv8hi2): Likewise.
836         (sse4_1_extendv4qiv4si2): Likewise.
837         (*sse4_1_extendv4qiv4si2): Likewise.
838         (sse4_1_extendv2qiv2di2): Likewise.
839         (*sse4_1_extendv2qiv2di2): Likewise.
840         (sse4_1_extendv4hiv4si2): Likewise.
841         (*sse4_1_extendv4hiv4si2): Likewise.
842         (sse4_1_extendv2hiv2di2): Likewise.
843         (*sse4_1_extendv2hiv2di2): Likewise.
844         (sse4_1_extendv2siv2di2): Likewise.
845         (*sse4_1_extendv2siv2di2): Likewise.
846         (sse4_1_zero_extendv8qiv8hi2): Likewise.
847         (*sse4_1_zero_extendv8qiv8hi2): Likewise.
848         (sse4_1_zero_extendv4qiv4si2): Likewise.
849         (*sse4_1_zero_extendv4qiv4si2): Likewise.
850         (sse4_1_zero_extendv2qiv2di2): Likewise.
851         (*sse4_1_zero_extendv2qiv2di2): Likewise.
852         (sse4_1_zero_extendv4hiv4si2): Likewise.
853         (*sse4_1_zero_extendv4hiv4si2): Likewise.
854         (sse4_1_zero_extendv2hiv2di2): Likewise.
855         (*sse4_1_zero_extendv2hiv2di2): Likewise.
856         (sse4_1_zero_extendv2siv2di2): Likewise.
857         (*sse4_1_zero_extendv2siv2di2): Likewise.
858         (sse4_1_ptest): Likewise.
859         (sse4_1_roundp<ssemodesuffixf2c>): Likewise.
860         (sse4_2_pcmpestri): Likewise.
861         (sse4_2_pcmpestrm): Likewise.
862         (sse4_2_pcmpistri): Likewise.
863         (sse4_2_pcmpistrm): Likewise.
864         (aesimc): Likewise.
865         (aeskeygenassist): Likewise.
866
867 2008-08-28  Uros Bizjak  <ubizjak@gmail.com>
868
869         * config/i386/predicates.md (vzeroall_operation): New.
870
871         * config/i386/sse.md (avx_vzeroall): New.
872         (*avx_vzeroall): Likewise.
873
874 2008-08-28  Paul Brook  <paul@codesourcery.com>
875             Mark Shinwell  <shinwell@codesourcery.com>
876             Richard Earnshaw  <richard.earnshaw@arm.com>
877
878         * config/arm/arm.c (TARGET_MAX_ANCHOR_OFFSET): New.
879         (TARGET_MIN_ANCHOR_OFFSET): New.
880         (arm_override_options): Set correct anchor ranges for Thumb-1
881         and Thumb-2 if required.
882         (legitimize_pic_address): Handle case involving a TLS symbol
883         reference with an addend.
884         (arm_optimization_options): Enable section anchors at -O1 and
885         above.
886         * config/arm/arm.h (OPTIMIZATION_OPTIONS): New.
887         * config/arm/arm-protos.h (arm_optimization_options): New.
888
889 2008-08-28  Nick Clifton  <nickc@redhat.com>
890
891         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Define.
892         * config/stormy16/stormy16.md (zero_extendqihi2): Fix length
893         attribute.
894
895         * config/v850/v850.h (IRA_COVER_CLASSES): Define.
896         * config/v850/v850.md (return): Remove frame size restriction.  
897
898         * config/mcore/mcore.h (IRA_COVER_CLASSES): Define.
899
900         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Define.
901
902         * config/fr30/fr30.h (IRA_COVER_CLASSES): Define.
903
904         * config/m32r/m32r.h (IRA_COVER_CLASSES): Define.
905
906 2008-08-28  Paul Brook  <paul@codesourcery.com>
907
908         * config/arm/vfp11.md: Update license notice.
909         * config/arm/cortex-r4.md: Ditto.
910
911 2008-08-28  Richard Guenther  <rguenther@suse.de>
912
913         PR tree-optimization/37207
914         * tree-ssa-ifcombine.c (recognize_single_bit_test): Fix
915         tuplification bug.
916
917 2008-08-28  Dodji Seketeli  <dodji@redhat.com>
918
919         PR c++/36741
920         * tree.c (int_fits_type_p): Don't forget unsigned integers
921           of type sizetype which higher end word equals -1.
922
923 2008-08-28  Ira Rosen  <irar@il.ibm.com>
924
925         * target.h (struct vectorize): Add new target builtin.
926         * tree-vectorizer.c (destroy_loop_vec_info): Call 
927         vect_free_slp_instance instead of vect_free_slp_node.
928         * tree-vectorizer.h (enum slp_load_perm_type): New.
929         (struct _slp_instance): Add new fields.
930         (SLP_INSTANCE_LOAD_PERMUTATION): New.
931         (SLP_INSTANCE_LOADS): New.
932         (vect_free_slp_tree): Remove.
933         (vect_free_slp_instance): Declare.        
934         (SLP_TREE_LOADS_PERM_TYPE, TARG_VEC_PERMUTE_COST): New.
935         (vectorizable_load): Add argument.
936         (vect_transform_slp_perm_load): New.
937         * tree-vect-analyze.c (vect_analyze_operations): Add an argument to 
938         vectorizable_load.
939         (vect_get_place_in_interleaving_chain): New function.
940         (vect_free_slp_tree): Make static.
941         (vect_free_slp_instance): New function.
942         (vect_build_slp_tree): Add new arguments. Allow load permutations and 
943         collect the load location in the interleaving chain.
944         (vect_supported_slp_permutation_p): New function.
945         (vect_supported_load_permutation_p): Likewise.
946         (vect_analyze_slp_instance): In case of loads permutation, call
947         vect_supported_load_permutation_p to check that the permutation is 
948         supported.
949         * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM): New.
950         * tree-vect-transform.c (vect_transform_stmt): Add new argument.
951         (vect_create_mask_and_perm): New function.
952         (vect_get_mask_element, vect_transform_slp_perm_load): Likewise.
953         (vectorizable_load): Add an argument. Don't keep the created vectors  
954         statements in the node if permutation is required. Call 
955         vect_transform_slp_perm_load to generate the permutation.
956         (vect_transform_stmt): Add new argument. Call vectorizable_load with 
957         additional argument.
958         (vect_schedule_slp_instance): In case of loads permutation, allocate  
959         vectorized statements structure for all the related SLP nodes. Call 
960         vect_transform_stmt with addditional argument.
961         (vect_transform_loop): Call vect_transform_stmt with correct arguments. 
962         * config/spu/spu.c (spu_builtin_vec_perm): New. 
963         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
964         * config/spu/spu.h (TARG_VEC_PERMUTE_COS): Define.
965         * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): New.
966         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
967
968 2008-08-28  Chris Fairles  <chris.fairles@gmail.com>
969
970         * gthr-posix.h (__gthread_create,  __gthread_join, __gthread_detach,
971         __gthread_mutex_timed_lock, __gthread_recursive_mutex_timed_lock,
972         __gthread_cond_signal, __gthread_cond_timedwait,
973         __gthread_cond_timedwait_recursive): New functions.
974         * gthr-posix.c (pthread_mutex_timedlock, pthread_cond_timedwait):
975         Likewise.
976         * gthr.h: Comment on defining __GTHREADS_CXX0X macro in conforming
977         thread interfaces.
978
979 2008-08-28  Richard Guenther  <rguenther@suse.de>
980
981         PR middle-end/37005
982         * fold-const.c (maybe_canonicalize_comparison_1): Require
983         undefined overflow only for canonicalizing A +- CST cmp CST.
984         Make sure to not generate new constants that are not inside
985         their TYPE_MIN/MAX_VALUE range.
986         (maybe_canonicalize_comparison): Remove undefined overflow
987         checking from here.
988         (fold_binary): Remove now duplicate folding.
989
990 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
991
992         * c-typeck.c (convert_for_assignment): Adjust WARN_FOR_ASSIGNMENT
993         use not updated in the last change.
994
995 2008-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
996
997         * config/sh/sh.h (REG_CLASS_CONTENTS): Drop fr32 from FPUL_REGS.
998         (IRA_COVER_CLASSES): Add FPUL_REGS.
999
1000 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1001
1002         PR 37217
1003         * c-common.c (conversion_warning): Check for null operands.
1004
1005 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1006
1007         PR c/31673
1008         * c-decl.c (check_for_loop_decls): Improve error message. Give
1009         hint.
1010
1011 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1012
1013         PR c/37186
1014         * c-typeck.c (WARN_FOR_ASSIGNMENT): Add OPT parameter.
1015         (convert_for_assignment): Pass corrent OPT_W* parameter to
1016         WARN_FOR_ASSIGNMENT.
1017
1018 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
1019
1020         PR c++/35321
1021         * c-common.c (fold_offsetof_1): Handle TARGET_EXPR like CALL_EXPR.
1022
1023 2008-08-27  Paul Brook  <paul@codesourcery.com>
1024
1025         * config.gcc: Loosen checks for arm uclinux eabi targets.
1026
1027 2008-08-27  Paul Brook  <paul@codesourcery.com>
1028
1029         * config/arm/t-arm-coff (LIB1ASMFUNCS): Add missing undescrore on
1030         _clzsi2.
1031         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
1032
1033 2008-08-26  Douglas Gregor  <doug.gregor@gmail.com>
1034
1035         * c-common.c (do_switch_warnings): Look through the CONST_DECLs in
1036         the enumerators of an ENUMERAL_TYPE.
1037         * dbxout.c (dbxout_type): Ditto.
1038
1039 2008-08-26  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1040
1041         PR rtl-opt/37219
1042         * fwprop.c (fwprop): Check that the loop_father is the outer loop.
1043         (fwprop_addr): Check that the loop_father is not the outer loop.
1044
1045 2008-08-26  Paul Brook  <paul@codesourcery.com>
1046
1047         * config/arm/vfp.md: Document fmul{s,d} and fmac{s,d} types.
1048         Remove documentation entry for fmul type.
1049         Use fmuls to annotate single-precision multiplication patterns,
1050         fmuld to annotate double-precision multiplication patterns,
1051         fmacs to annotate single-precision multiply-accumulate patterns
1052         and fmacd to annotate double-precision multiply-accumulate patterns.
1053         * config/arm/vfp11.md: Update reservations accordingly.
1054         * config/arm/arm.md: Note that certain values of the "type"
1055         attribute are documented in vfp.md.
1056         * config/arm/arm1020e.md: Remove out of date duplicate comment.
1057         (v10_cvt): Use new fmul types.
1058
1059 2008-08-26  Paul Brook   <paul@codesourcery.com>
1060
1061         * config/arm/vfp.md: Move pipeline description for VFP11 to...
1062         * config/arm/vfp11.md: ...here.  New.
1063         * config/arm/arm.md: Include vfp11.md.
1064
1065 2008-08-26  Hans-Peter Nilsson  <hp@axis.com>
1066
1067         * opts.c (decode_options) [!IRA_COVER_CLASSES]: Add missing
1068         parameter to inform call.
1069
1070 2008-08-26  Jeff Law  <law@redhat.com>
1071
1072         * mn10300.md (movqi, movhi): Split i->d*a case into two cases to
1073         avoid the possibility of getting DATA_OR_ADDRESS_REGS as the
1074         preferred class when copying a constant into a partial word register.
1075
1076 2008-08-26  Ben Elliston  <bje@au.ibm.com>
1077
1078         * rtlanal.c: Fix uses of "it's" with "its" where appropriate.
1079         * cp/typeck.c: Likewise.
1080         * cp/tree.c: Likewise.
1081         * gimple-low.c: Likewise.
1082         * jump.c: Likewise.
1083
1084 2008-08-26  Vladimir Makarov  <vmakarov@redhat.com>
1085
1086         * ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
1087         ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.
1088
1089         * doc/passes.texi: Describe IRA.
1090
1091         * doc/tm.texi (IRA_COVER_CLASSES,
1092         IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.
1093
1094         * doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
1095         (-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
1096         -fira-propagate-cost, -fno-ira-share-save-slots,
1097         -fno-ira-share-spill-slots, -fira-verbose): Describe new options.
1098
1099         * flags.h (ira_algorithm): New enumeration.
1100         (flag_ira_algorithm, flag_ira_verbose): New external variable
1101         declarations.
1102
1103         * postreload.c (gate_handle_postreload): Don't do post reload
1104         optimizations unless the reload is completed.
1105
1106         * reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
1107         IRA.
1108
1109         * tree-pass.h (pass_ira): New external variable declaration.
1110
1111         * reload.h: Add 2008 to the Copyright.
1112     
1113         * cfgloopanal.c: Include params.h.
1114         (estimate_reg_pressure_cost): Decrease cost for IRA optimization
1115         mode.
1116     
1117         * params.h (IRA_MAX_LOOPS_NUM): New macro.
1118
1119         * toplev.c (ira.h): New include.
1120         (flag_ira_algorithm, flag_ira_verbose): New external variables.
1121         (backend_init_target): Call ira_init.
1122         (backend_init): Call ira_init_once.
1123         (finalize): Call finish_ira_once.
1124
1125         * toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
1126         flag_ira_share_save_slots, flag_ira_share_spill_slots): New
1127         external variables.
1128
1129         * regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
1130         may_move_out_cost): New external variable declarations.
1131         (move_table): New typedef.
1132     
1133         * caller-save.c: Include headers output.h and ira.h.
1134         (no_caller_save_reg_set): New global variable.
1135         (save_slots_num, save_slots): New variables.
1136         (reg_save_code, reg_restore_code, add_stored_regs): Add
1137         prototypes.
1138         (init_caller_save): Set up no_caller_save_reg_set.
1139         (init_save_areas): Reset save_slots_num.
1140         (saved_hard_reg): New structure.
1141         (hard_reg_map, saved_regs_num, all_saved_regs): New variables.
1142         (initiate_saved_hard_regs, new_saved_hard_reg,
1143         finish_saved_hard_regs, saved_hard_reg_compare_func): New
1144         functions.
1145         (setup_save_areas): Add code for sharing stack slots.
1146         (all_blocks): New variable.
1147         (save_call_clobbered_regs): Process pseudo-register too.
1148         (mark_set_regs): Process pseudo-register too.
1149         (insert_one_insn): Put the insn after bb note in a empty basic
1150         block.  Add insn check.
1151     
1152         * global.c (eliminable_regset): Make it external.
1153         (mark_elimination): Use DF_LR_IN for IRA.
1154         (pseudo_for_reload_consideration_p): New.
1155         (build_insn_chain): Make it external.  Don't ignore spilled
1156         pseudos for IRA.  Use pseudo_for_reload_consideration_p.
1157         (gate_handle_global_alloc): New function.
1158         (pass_global_alloc): Add the gate function.
1159
1160         * opts.c (decode_options): Set up flag_ira.  Print the warning for
1161         -fira.
1162         (common_handle_option): Process -fira-algorithm and -fira-verbose.
1163
1164         * timevar.def (TV_IRA, TV_RELOAD): New passes.
1165
1166         * regmove.c (regmove_optimize): Don't do replacement of output for
1167         IRA.
1168
1169         * hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
1170         New external variable declarations.
1171
1172         * local-alloc.c (update_equiv_regs): Make it external.  Return
1173         true if jump label rebuilding should be done.  Rescan new_insn for
1174         notes.
1175         (gate_handle_local_alloc): New function.
1176         (pass_local_alloc): Add the gate function.
1177
1178         * alias.c (value_addr_p, stack_addr_p): New functions.
1179         (nonoverlapping_memrefs_p): Use them for IRA.
1180
1181         * common.opt (fira, fira-algorithm, fira-coalesce,
1182         fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
1183         fira-verbose): New options.
1184
1185         * regclass.c (reg_class_subclasses, contains_reg_of_mode,
1186         move_cost, may_move_in_cost, may_move_out_cost): Make the
1187         variables external.
1188         (move_table): Remove typedef.
1189         (init_move_cost): Make it external.
1190         (allocate_reg_info, resize_reg_info, setup_reg_classes): New
1191         functions.
1192
1193         * rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
1194         setup_reg_classes): New function prototypes.
1195         (eliminable_regset): New external variable declaration.
1196         (build_insn_chain, update_equiv_regs): New function prototypes.
1197     
1198         * Makefile.in (IRA_INT_H): New definition.
1199         (OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
1200         ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
1201         (reload1.o, toplev.o): Add dependence on ira.h.
1202         (cfgloopanal.o): Add PARAMS_H.
1203         (caller-save.o): Add dependence on output.h and ira.h.
1204         (ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
1205         ira-emit.o, ira-lives.o): New entries.
1206
1207         * passes.c (pass_ira): New pass.
1208
1209         * params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.
1210
1211         * reload1.c (ira.h): Include the header.
1212         (changed_allocation_pseudos): New bitmap.
1213         (init_reload): Initiate the bitmap.
1214         (compute_use_by_pseudos): Permits spilled registers in FROM.
1215         (temp_pseudo_reg_arr): New variable.
1216         (reload): Allocate and free temp_pseudo_reg_arr.  Sort pseudos for
1217         IRA.  Call alter_reg with the additional parameter.  Don't clear
1218         spilled_pseudos for IRA.  Restore original insn chain for IRA.
1219         Clear changed_allocation_pseudos at the end of reload.
1220         (calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
1221         (hard_regno_to_pseudo_regno): New variable.
1222         (count_pseudo): Check spilled pseudos.  Set up
1223         hard_regno_to_pseudo_regno.
1224         (count_spilled_pseudo): Check spilled pseudos. Update
1225         hard_regno_to_pseudo_regno.
1226         (find_reg): Use better_spill_reload_regno_p.  Check
1227         hard_regno_to_pseudo_regno.
1228         (alter_reg): Set up spilled_pseudos.  Add a new parameter.  Add
1229         code for IRA.
1230         (eliminate_regs_1): Use additional parameter for alter_reg.
1231         (finish_spills): Set up pseudo_previous_regs only for spilled
1232         pseudos.  Call reassign_pseudos once for all spilled pseudos, pass
1233         more arguments.  Don't clear live_throughout and dead_or_set for
1234         spilled pseudos.  Use additional parameter for alter_reg.  Call
1235         mark_allocation_change.  Set up changed_allocation_pseudos.
1236         Remove sanity check.
1237         (emit_input_reload_insns, delete_output_reload): Use additional
1238         parameter for alter_reg.  Call mark_allocation_change.
1239         (substitute, gen_reload_chain_without_interm_reg_p): New
1240         functions.
1241         (reloads_conflict): Use gen_reload_chain_without_interm_reg_p.
1242     
1243         * testsuite/gcc.dg/20080410-1.c: New file.
1244         
1245         * config/s390/s390.h (IRA_COVER_CLASSES,
1246         IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.
1247
1248         * config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.
1249
1250         * config/i386/i386.h (IRA_COVER_CLASSES): Ditto.
1251
1252         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
1253
1254         * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
1255
1256         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
1257     
1258         * config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.
1259     
1260         2008-08-24  Jeff Law  <law@redhat.com>
1261         * ira.c (setup_reg_class_intersect_union): Prefer smallest class
1262         when ignoring unavailable registers.
1263
1264         2008-08-24  Jeff Law  <law@redhat.com>
1265         * ira-color.c (coalesced_pseudo_reg_slot_compare): Check
1266         FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
1267         * ira.c (setup_eliminable_regset): Check stack_realign_needed.
1268         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.
1269
1270         2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com>
1271         * ira-build.c (allocno_range_compare_func): Stabilize sort.
1272
1273         2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com>
1274         * config/avr/avr.h (IRA_COVER_CLASSES): New macro.
1275         * reload1.c (find_reg): Process registers in register allocation order.
1276
1277         2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
1278         * toplev.c (backend_init_target): Move ira_init call from
1279         here...
1280         (lang_dependent_init_target): ...to here.
1281
1282         2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
1283         * ira.c (setup_class_subset_and_memory_move_costs): Don't
1284         calculate memory move costs for NO_REGS.
1285
1286         2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org>
1287         * ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
1288         STACK_REGS is defined.
1289
1290         2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
1291         * config/spu/spu.h (IRA_COVER_CLASSES): New macro.
1292
1293         2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com>
1294         * config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.
1295
1296         2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org>
1297         * config/sh/sh.h (IRA_COVER_CLASSES): Define.
1298         * config/sh/sh.md (movsicc_true+3): Check if emit returns a
1299         barrier.
1300
1301 2008-08-26  Victor Kaplansky  <victork@il.ibm.com>
1302             Dorit Nuzman  <dorit@il.ibm.com>
1303
1304         * gcc/config/spu/spu.md (vec_extract_evenv4si,
1305         vec_extract_evenv4sf, vec_extract_evenv8hi,
1306         vec_extract_evenv16qi, vec_extract_oddv4si,
1307         vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
1308         vec_interleave_highv4sf, vec_interleave_lowv4sf,
1309         vec_interleave_highv4si, vec_interleave_lowv4si,
1310         vec_interleave_highv8hi, vec_interleave_lowv8hi,
1311         vec_interleave_highv16qi, vec_interleave_lowv16qi,
1312         vec_pack_trunc_v8hi, vec_pack_trunc_v4si): Implement.S
1313
1314 2008-08-25  Janis Johnson  <janis187@us.ibm.com>
1315
1316         PR target/36756
1317         * config/rs6000/rs6000.c (optimization_options): Don't default to
1318         section anchors without toplevel reorder.
1319
1320 2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1321
1322         * config/spu/spu_mfcio.h (mfc_begin_critical_section): New function.
1323         (mfc_end_critical_section): Likewise.
1324
1325 2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1326
1327         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Propagate
1328         all type qualifiers from element type to vector type.
1329
1330 2008-08-25  David Daney  <ddaney@avtrex.com>
1331
1332         * config/mips/mips.md (immediate_insn): Move up in file, fix
1333         comment typo, reformat.
1334         (fetchop_bit, atomic_hiqi_op memory_barrier,
1335         sync_compare_and_swap<mode>, compare_and_swap_12, sync_add<mode>,
1336         sync_<optab><mode>, sync_<optab>_12, sync_old_<optab><mode>,
1337         sync_old_<optab>_12, sync_new_<optab><mode>, sync_new_<optab>_12,
1338         sync_nand<mode>, sync_nand_12, sync_old_nand<mode>,
1339         sync_old_nand_12, sync_new_nand<mode>, sync_new_nand_12,
1340         sync_sub<mode>, sync_old_add<mode>, sync_old_sub<mode>,
1341         sync_new_add<mode>, sync_new_sub<mode>, sync_<optab><mode>,
1342         sync_old_<optab><mode>, sync_new_<optab><mode>, sync_nand<mode>,
1343         sync_old_nand<mode>, sync_new_nand<mode>,
1344         sync_lock_test_and_set<mode>, sync_lock_test_and_set<mode>,
1345         test_and_set_12): Moved to sync.md.
1346         (sync.md): Include.
1347         * config/mips/sync.md: New file.
1348
1349 2008-08-25  Richard Henderson  <rth@redhat.com>
1350
1351         * dwarf2out.c (def_cfa_1): Don't scale by DWARF_CIE_DATA_ALIGNMENT.
1352         (regsave): Likewise.
1353         (lookup_cfa_1): Don't rescale by DWARF_CIE_DATA_ALIGNMENT.
1354         (output_cfi_directive): Likewise.
1355         (div_data_align): New.
1356         (output_cfi): Use it.
1357
1358 2008-08-24  Adam Nemet  <anemet@caviumnetworks.com>
1359
1360         * config.gcc (mips64*-*-linux*): Handle mips64octeon*-*-linux*.
1361         * config/mips/mips.h (enum processor_type): Add PROCESSOR_OCTEON.
1362         (TARGET_OCTEON): New macro.
1363         (TARGET_CPU_CPP_BUILTINS): Define __OCTEON__ for Octeon.
1364         (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC): Handle -march=octeon.
1365         (ISA_HAS_POP): New macro.
1366         * config/mips/driver-native.c (host_detect_local_cpu): Handle
1367         Octeon.
1368         * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
1369         Handle Octeon.
1370         * config/mips/mips.md (cpu): Add octeon.
1371         (type): Add pop attribute value.
1372         (popcount<mode>2): New pattern.
1373         * doc/invoke.texi (-march=@var{arch}): Add octeon.
1374
1375 2008-08-24  Jan Hubicka  <jh@suse.cz>
1376
1377         * doc/invoke.texi (-fipa-cp-clone): New option.
1378         (-fipa-cp): Update docs.
1379         (--param ipcp-unit-growth):New.
1380         * ipa-cp.c: Include fibheap.h, params.h
1381         (ipcp_initialize_node_lattices): When not cloning, all externally
1382         visible functions are bottom.
1383         (ipcp_need_redirect_p): Accept clones.
1384         (ipcp_insert_stage): Use cost driven heuristics.
1385         (max_count, dead_nodes): New static vars.
1386         (ipcp_need_original_clone_p, ipcp_estimate_cloning_cost,
1387         ipcp_const_param_count): New functions.
1388         * common.opt (ipa-cp-clone): New command line option.
1389         * params.def (ipcp-unit-growth): New.
1390
1391 2008-08-24  Jan Hubicka  <jh@suse.cz>
1392
1393         * tree-inline.c (tree_function_versioning): Look harder
1394         for referenced vars.
1395
1396 2008-08-24  Razya Ladelsky  <razya@il.ibm.com>
1397
1398         PR tree-optimization/37185
1399         * matrix-reorg.c (transform_access_sites): Update changed stmt.
1400
1401 2008-08-23  Jan Hubicka  <jh@suse.cz>
1402
1403         * ipa-cp.c (ipcp_analyze_node): New function.
1404         (ipcp_update_cloned_node): Use it.
1405         (ipcp_init_stage): Likewise.
1406         * ipa-inline.c (function_insertion_hook_holder): New static var.
1407         (analyze_function): Break out from ....
1408         (inline_generate_summary): Here; register insertion hook.
1409         (cgraph_decide_inlining): Remove hook.
1410         (add_new_function): New function.
1411
1412 2008-08-23  Jan Hubicka  <jh@suse.cz>
1413
1414         * opts.c (decode_options): Revert accidental change enabling ipa-cp.
1415
1416 2008-08-23  Jan Hubicka  <jh@suse.cz>
1417
1418         * ipa-cp.c (constant_val_insert): Remove.
1419         (ipcp_propagate_one_const): Remove.
1420         (ipcp_create_replace_map): Always insert replacements to the map.
1421         (ipcp_insert_stage): Do not try to insert statements by hand.
1422         * tree-inline.c (insert_init_stmt): Break out from ...
1423         (setup_one_parameter): ... here; allow NULL BB pointer.
1424         (tree_function_versioning): Use setup_one_parameter to process
1425         replacement map.
1426
1427 2008-08-23  Jan Hubicka  <jh@suse.cz>
1428
1429         * tree.c (decl_address_ip_invariant_p): New function.
1430         * tree.h (decl_address_ip_invariant_p): Declare.
1431         * gimple.c (strip_invariant_refs): Break out from ...
1432         (is_gimple_invariant_address): ... here
1433         (is_gimple_ip_invariant_address): New function.
1434         (is_gimple_ip_invariant): New function.
1435         * gimple.h (is_gimple_ip_invariant_address, is_gimple_ip_invariant):
1436         Declare.
1437
1438         * ipa-cp.c (ipcp_lat_is_const): Remove handling of IPA_CONST_VALUE_REF.
1439         (ipcp_lat_is_insertable): All constants are insertable.
1440         (ipcp_lattice_from_jfunc, ipcp_print_all_lattices): Remove handling of
1441         IPA_CONST_VALUE_REF.
1442         (ipcp_initialize_node_lattices): Propagate all types of operands.
1443         (build_const_val): Do not handle IPA_CONST_VALUE_REF.
1444         (ipcp_create_replace_map): Reformat.
1445         (ipcp_need_redirect_p): Simplify.
1446         (ipcp_insert_stage): Check that argument is used before clonning.
1447         * ipa-prop.c (ipa_print_node_jump_functions): Do not handle IPA_CONST_REF.
1448         (compute_scalar_jump_functions): Simplify using is_gimple_ip_invariat.
1449         (determine_cst_member_ptr): Keep wrapping ADDR_EXPR of members.
1450         (update_call_notes_after_inlining): Expect ADDR_EXPR in operand.
1451         * ipa-prop.h (jump_func_type): Remove IPA_CONST_REF.
1452         (jump_func_type): Remove IPA_CONST_VALUE_REF.
1453         * tree-inline.c (tree_function_versioning): Add variables referenced by
1454         replacing trees.
1455
1456 2008-08-23  Jan Hubicka  <jh@suse.cz>
1457
1458         PR target/37094
1459         * i386.c (standard_80387_constant_p): Use optimize_size.
1460
1461 2008-08-23  Ira Rosen  <irar@il.ibm.com>
1462
1463         PR tree-optimization/37161
1464         * tree-vectorizer.h (vect_get_smallest_scalar_type): Declare.
1465         * tree-vect-analyze.c (vect_get_smallest_scalar_type): New function.
1466         (vect_determine_vectorization_factor): Move the scalar type
1467         retrieval to vect_get_smallest_scalar_type.
1468         (vect_build_slp_tree): Call vect_get_smallest_scalar_type to get
1469         scalar type. Remove redundant computation.
1470         * tree-vect-transform.c (vect_get_constant_vectors): Add argument.
1471         (vect_get_slp_defs): Take the type of RHS into account if
1472         necessary by calling vect_get_smallest_scalar_type. Call
1473         vect_get_constant_vectors with additional argument.
1474
1475 2008-08-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1476
1477         PR 35648
1478         * doc/invoke.texi (Wwrite-strings): Clarify description.
1479         
1480 2008-08-23  Ira Rosen  <irar@il.ibm.com>
1481
1482         PR tree-optimization/37174
1483         * tree-vect-analyze.c (vect_get_and_check_slp_defs): Check that the
1484         def stmt is a part of the loop before accessing its stmt_vec_info.
1485
1486 2008-08-22  Anatoly Sokolov  <aesok@post.ru>
1487
1488         PR target/11259
1489         * config/avr/avr.md (UNSPEC_SWAP): New constants.
1490         (*swap): New insn pattern.
1491         (*ashlqi3): Rename from ashlqi3 insn pattern.
1492         (ashlqi3): New expanders.
1493         (*lshrqi3): Rename from lshrqi3 insn pattern.
1494         (lshrqi3): New expanders.       
1495         (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, lshrqi3_const4,
1496         lshrqi3_const5, lshrqi3_const6): New splitters.
1497         (andi, ashlqi3_l_const4, ashlqi3_l_const5, ashlqi3_l_const6,
1498         lshrqi3_l_const4, lshrqi3_l_const5, lshrqi3_l_const6): Define
1499         peephole2 patterns.
1500
1501 2008-08-22  Richard Guenther  <rguenther@suse.de>
1502
1503         PR tree-optimization/37078
1504         * tree-vrp.c (extract_range_from_unary_expr): Avoid generating
1505         [+INF, +INF] ranges.
1506
1507 2008-08-22  Richard Guenther  <rguenther@suse.de>
1508
1509         PR tree-optimization/37143
1510         * tree-vect-transform.c (vect_create_cond_for_align_checks): Build
1511         a conversion statement instead of a copy.
1512
1513 2008-08-22  Uros Bizjak  <ubizjak@gmail.com>
1514
1515         PR target/37184
1516         * config/i386/i386.c (ix86_match_ccmode): Handle CCAmode,
1517         CCCmode, CCOmode and CCSmode destination modes.
1518
1519         PR target/37191
1520         * config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers
1521         from different units in a single alternative.
1522         (*vec_extractv2sf_1): Ditto.
1523         (*vec_extractv2si_0): Ditto.
1524         (*vec_extractv2si_1): Ditto.
1525         * config/i386/sse.md (sse2_storehpd): Ditto.
1526         (sse2_storelpd): Ditto.
1527         (sse2_loadhpd): Ditto.
1528         (sse2_loadlpd): Ditto.
1529
1530         PR target/37197
1531         * config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints.
1532         (popcountsi2): Ditto.
1533         (clzdi2_abm): Ditto.
1534         (popcountdi2): Ditto.
1535         (clzhi2_abm): Ditto.
1536         (popcounthi2): Ditto.
1537
1538 2008-08-22  Richard Guenther  <rguenther@suse.de>
1539
1540         PR middle-end/36548
1541         PR middle-end/37125
1542         * fold-const.c (extract_muldiv_1): Optimize (X * C1) % C2 only
1543         if the multiplication does not overflow.
1544
1545 2008-08-21  Nathan Sidwell  <nathan@codesourcery.com>
1546
1547         * c-ppoutput.c (init_pp_output): Initialize src_line to 1.
1548
1549 2008-08-21  Richard Henderson  <rth@redhat.com>
1550
1551         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Remove
1552         spurrious comma from test.
1553         * configure: Rebuild.
1554
1555 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1556
1557         PR 30457
1558         * builtins.c (fold_builtin_next_arg): Add warning about undefined
1559         behaviour.
1560         
1561 2008-08-21  Aldy Hernandez  <aldyh@redhat.com>
1562
1563         * c-tree.h (grokfield): New argument.
1564         * c-decl.c (grokfield): Handle new location argument.
1565         * c-parser.c (c_parser_struct_declaration): Pass location to
1566         grokfield.
1567
1568 2008-08-21  Richard Guenther  <rguenther@suse.de>
1569
1570         * tree-ssa-ccp.c (ccp_fold): Fold VIEW_CONVERT_EXPRs of constants.
1571
1572 2008-08-21  Jan Hubicka  <jh@suse.cz>
1573
1574         * cgraph.c (first_cgraph_function_insertion_hook): New variable.
1575         (cgraph_add_function_insertion_hook,
1576         cgraph_remove_function_insertion_hook,
1577         cgraph_call_function_insertion_hooks): New functions.
1578         * cgraph.h (cgraph_add_function_insertion_hook,
1579         cgraph_remove_function_insertion_hook,
1580         cgraph_call_function_insertion_hooks): Declare.
1581         * ipa-reference.c (function_insertion_hook_holder): New variable.
1582         (check_operand, look_for_address_of): When checking late, do not care
1583         about module bitmaps.
1584         (add_new_function): New function.
1585         (generate_summary): Register hooks; zero module bitmaps.
1586         (propagate): Unregister hooks.
1587         * ipa-pure-const.c (function_insertion_hook_holder): New variable.
1588         (add_new_function): New function.
1589         (generate_summary): Register hook.
1590         (propagate): Remove hook.
1591
1592         * ipa-cp.c (ipcp_need_redirect_p): Fix to not be constant 0.
1593
1594         * tree-pass.h (pass_ipa_cp): Make ipa_opt_pass.
1595         * ipa-cp.c (ipcp_update_cloned_node): New function.
1596         (build_const_val): Handle functions correctly; bring type logic
1597         into sync with tree-inline.c
1598         (ipcp_init_stage):  Take care of computing stuff needed by
1599         indirect inlining; update clones.
1600         (ipcp_generate_summary): Break out of ipcp_driver.
1601         (ipcp_driver): Do only execution and transformation.
1602         (pass_ipa_cp): Make IPA_PASS.
1603         * tree-ssa-ccp.c (fold_stmt_r): Check type before trying to fold
1604         offset to address.
1605         * ipa-inline.c (inline_indirect_intraprocedural_analysis): When doing
1606         ipcp, some info is already available.
1607         * ipa-prop.c (ipa_count_arguments): Grow edge lists as needed.
1608         * tree-inline.c (remap_ssa_name): Unshare expression.
1609
1610 2008-08-21  Richard Guenther  <rguenther@suse.de>
1611
1612         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
1613         a PHI ask VN if it is already available.
1614         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
1615         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
1616
1617 2008-08-21  Richard Guenther  <rguenther@suse.de>
1618
1619         PR middle-end/36817
1620         * tree-chrec.c (chrec_apply): Always call chrec_fold_plus which
1621         makes sure to produce a result of the correct type.
1622
1623 2008-08-21  Jan Hubicka  <jh@suse.cz>
1624         Backport from LTO branch:
1625
1626         2008-05-05  Kenneth Zadeck <zadeck@naturalbridge.com>
1627                     Jan Hubicka  <jh@suse.cz>
1628         
1629         * ipa-pure-const.c
1630         (init_state, finish_state, set_function_state, generate_summary):
1631         New functions.
1632         (scan_stmt): Renamed from scan_function.  Changed to keep state in
1633         local static vars rather than cgraph aux field.
1634         (propagate): Renamed from static_execute. Changed to keep state in
1635         local static vars rather than cgraph aux field.
1636         (pass_ipa_pure_const): Changed from SIMPLE_IPA_PASS to IPA_PASS.
1637         * tree-pass.h (pass_ipa_pure_const): Turn into IPA_PASS.
1638
1639         2008-07-15  Kenneth Zadeck <zadeck@naturalbridge.com>
1640
1641         * tree-pass.h (pass_ipa_reference): Make into ipa_opt_pass.
1642         * ipa-reference.c (init_function_info, generate_summary, 
1643         propagate): New functions.
1644         (analyze_function):  Call init_function_info.
1645         (static_execute): Stripped into generate_summary and propagate.
1646         (pass_ipa_reference): Made into ipa_opt_pass.
1647
1648 2008-08-21  Richard Guenther  <rguenther@suse.de>
1649
1650         PR tree-optimization/37181
1651         * tree-vrp.c (extract_range_from_binary_expr): Check for NULL
1652         folding result.
1653         (extract_range_from_unary_expr): Likewise.
1654
1655 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1656
1657         * diagnostic.c (pedwarn_at): Rename as pedwarn.
1658         (pedwarn): Delete.
1659         * toplev.h (pedwarn_at): Likewise.
1660         * builtins.c: Update all calls to pedwarn.
1661         * c-lex.c: Likewise.
1662         * toplev.c: Likewise.
1663         * c-tree.h: Likewise.
1664         * c-decl.c: Likewise.
1665         * c-errors.c: Likewise.
1666         * c-typeck.c: Likewise.
1667         * c-common.c: Likewise.
1668         * c-parser.c: Likewise.
1669
1670 2008-08-20  Joseph Myers  <joseph@codesourcery.com>
1671
1672         PR target/31070
1673         * config/sparc/sparc.c (function_arg_slotno): Handle structure
1674         with MODE_VECTOR_INT mode.
1675
1676 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1677
1678         PR middle-end/179
1679         * tree-ssa.c (warn_uninit): Do not warn for variables that can be
1680         initialized outside the current module.
1681         (warn_uninitialized_var): Ignore left-hand side when walking the
1682         trees. Ignore address expressions. Examine VUSE operands in gimple
1683         statements with a variable declaration on the right-hand side.
1684
1685 2008-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
1686
1687         PR bootstrap/37155
1688         * rtlanal.c (subreg_offset_representable_p): Revert last change.
1689
1690 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1691
1692         PR 35701
1693         * c-common.c (conversion_warning): Do not warn if applying bit-and
1694         operator to unsigned constant that fits in the target type.
1695
1696 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1697
1698         PR c++/35602
1699         * c-common.c (conversion_warning): Do not warn for artificial
1700         expressions.
1701
1702 2008-08-20  Richard Guenther  <rguenther@suse.de>
1703
1704         * tree-vrp.c (op_with_constant_singleton_value_range): New function.
1705         (extract_range_from_binary_expr): Fall back to constant propagation.
1706         (extract_range_from_unary_expr): Likewise.
1707
1708 2008-08-20  Richard Guenther  <rguenther@suse.de>
1709
1710         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Do not mess
1711         with TREE_THIS_VOLATILE on shared nodes.
1712         (fold_stmt_r): Likewise.
1713
1714 2008-08-20  Jakub Jelinek  <jakub@redhat.com>
1715
1716         PR c/37171
1717         * c-parser.c (c_parser_attributes): For keywords use canonical
1718         spelling for attr_name.
1719
1720 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1721
1722         * value-prof.c (check_counter): Revert wrong call to error.
1723         
1724 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1725
1726         * profile.c: Update calls to inform.
1727         * value-prof.c: Update calls to inform.
1728         
1729 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1730
1731         * diagnostic.c (inform): Add an explicit location_t parameter.
1732         * toplev.h (inform): Update declaration.
1733         * builtins.c: Update all calls to inform.
1734         * c-common.c: Likewise.
1735         * c-decl.c: Likewise.
1736         * c-opts.c: Likewise.
1737         * c-pch.c: Likewise.
1738         * c-pragma.c: Likewise.
1739         * c-typeck.c: Likewise.
1740         * coverage.c: Likewise.
1741         * opts.c: Likewise.
1742         * toplev.c: Likewise.
1743         * tree-cfg.c: Likewise.
1744         * tree-ssa.c: Likewise.
1745
1746 2008-08-20  H.J. Lu  <hongjiu.lu@intel.com>
1747
1748         PR target/37169
1749         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): In
1750         V2DI mode, for SSE4.1, use movq instead of vector set if the
1751         second element is zero and inter-unit moves are OK.
1752
1753 2008-08-20  Richard Guenther  <rguenther@suse.de>
1754
1755         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): More
1756         properly handle conversion/copy chains after tuplification.
1757
1758 2008-08-20  Richard Guenther  <rguenther@suse.de>
1759
1760         * passes.c (init_optimization_passes): Move the second
1761         forwprop pass before alias computation.  Remove the second
1762         DCE pass.  Remove the first dominator and phi copy/const
1763         prop passes.
1764
1765 2008-08-20  Nick Clifton  <nickc@redhat.com>
1766
1767         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Always test for assembler
1768         support of this feature.  Do not assume that a sufficiently new
1769         assembler will support the feature regardless of the target type.
1770         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
1771         * configure: Regenerate.
1772
1773 2008-08-20  Richard Guenther  <rguenther@suse.de>
1774
1775         * tree-vrp.c (found_in_subgraph): Remove.
1776         (live): New global static.
1777         (live_on_edge): New function.
1778         (blocks_visited): Remove.
1779         (register_edge_assert_for_2): Use live_on_edge.
1780         (find_conditional_asserts): Remove code dealing with
1781         found_in_subgraph.  Do not walk the CFG.
1782         (find_switch_asserts): Likewise.
1783         (find_assert_locations_1): Renamed from find_assert_locations.
1784         Move finding assert locations for conditional and switch
1785         statements first.  Update live bitmap.  Do not walk the CFG.
1786         (find_assert_locations): New function.
1787         (insert_range_assertions): Remove entry of CFG walk.
1788         Adjust call to find_assert_locations.
1789         * tree-ssa-pre.c (do_regular_insertion): Ignore critical edges
1790         that only can appear because of fake exit edges but assert we
1791         never try to insert on those.
1792         (fini_pre): Do not remove fake exit edges here...
1793         (execute_pre): ...but here, before committing edge inserts.
1794
1795 2008-08-19  Richard Guenther  <rguenther@suse.de>
1796
1797         * passes.c (init_optimization_passes): Exchange store-ccp
1798         with a ccp pass.
1799
1800 2008-08-19  Rafael Espindola  <espindola@google.com>
1801
1802         * varasm.c (weak_decls): Move earlier in the file.
1803         (assemble_external): Add weak decls to the weak_decls list.
1804         (declare_weak): Don't add decls to the weak_decls list.
1805
1806 2008-08-19  H.J. Lu  <hongjiu.lu@intel.com>
1807
1808         PR target/37157
1809         * config/i386/sse.md (sse2_punpckhqdq, sse2_punpcklqdq): Moved
1810         before (sse2_shufpd_<mode>).
1811
1812 2008-08-19  Jakub Jelinek  <jakub@redhat.com>
1813
1814         PR debug/37156
1815         * pretty-print.c (pp_base_format): Deal with recursive BLOCK trees.
1816         * tree.c (block_nonartificial_location): Likewise.
1817
1818 2008-08-19  Richard Guenther  <rguenther@suse.de>
1819
1820         PR tree-optimization/35972
1821         PR tree-optimization/23094
1822         * tree-ssa-sccvn.h (vn_reference_lookup_pieces): Add maywalk
1823         parameter.
1824         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
1825         handle MISALIGNED_INDIRECT_REF.
1826         (get_ref_from_reference_ops): New helper.
1827         (vn_reference_lookup_pieces): Walk the use-def chain using the
1828         alias-oracle if requested.
1829         * tree-ssa-pre.c (phi_translate_1): Do reference lookup with
1830         walking the use-def chain.
1831         (compute_avail): But not here.
1832         (create_component_ref_by_pieces_1): Properly handle
1833         MISALIGNED_INDIRECT_REF.
1834         (do_regular_insertion): Handle fully redundant
1835         expressions after PHI-translation also for SSA_NAME values, not
1836         only constants.  Correctly use edoubleprime for that.
1837
1838 2008-08-19  Ira Rosen  <irar@il.ibm.com>
1839
1840         * tree-vectorizer.c (supportable_widening_operation): Support
1841         multi-step conversion, return the number of steps in such conversion
1842         and the required intermediate types.
1843         (supportable_narrowing_operation): Likewise.
1844         * tree-vectorizer.h (vect_pow2): New function.
1845         (supportable_widening_operation): Change argument types.
1846         (supportable_narrowing_operation): Likewise.
1847         (vectorizable_type_promotion): Add an argument.
1848         (vectorizable_type_demotion): Likewise.
1849         * tree-vect-analyze.c (vect_analyze_operations): Call 
1850         vectorizable_type_promotion and vectorizable_type_demotion with
1851         additional argument.
1852         (vect_get_and_check_slp_defs): Detect patterns.
1853         (vect_build_slp_tree): Add an argument, don't fail in case of multiple
1854         types. 
1855         (vect_analyze_slp_instance): Don't fail in case of multiple types. Call
1856         vect_build_slp_tree with correct arguments. Calculate unrolling factor
1857         according to the smallest type in the loop.
1858         (vect_detect_hybrid_slp_stmts): Include statements from patterns.
1859         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call 
1860         supportable_widening_operation with correct arguments. 
1861         * tree-vect-transform.c (vect_get_slp_defs): Allocate output vector 
1862         operands lists according to the number of vector statements in left
1863         or right node, if exists.
1864         (vect_gen_widened_results_half): Remove unused argument.
1865         (vectorizable_conversion): Call supportable_widening_operation, 
1866         supportable_narrowing_operation, and vect_gen_widened_results_half
1867         with correct arguments. 
1868         (vectorizable_assignment): Change documentation, support multiple
1869         types in SLP. 
1870         (vectorizable_operation): Likewise.
1871         (vect_get_loop_based_defs): New function.
1872         (vect_create_vectorized_demotion_stmts): Likewise.
1873         (vectorizable_type_demotion): Support loop-aware SLP and general
1874         multi-step conversion. Call vect_get_loop_based_defs and
1875         vect_create_vectorized_demotion_stmts for transformation.
1876         (vect_create_vectorized_promotion_stmts): New function.
1877         (vectorizable_type_promotion): Support loop-aware SLP and general
1878         multi-step conversion. Call vect_create_vectorized_promotion_stmts
1879         for transformation.     
1880         (vectorizable_store): Change documentation, support multiple
1881         types in SLP. 
1882         (vectorizable_load): Likewise.
1883         (vect_transform_stmt): Pass SLP_NODE to 
1884         vectorizable_type_promotion and vectorizable_type_demotion.
1885         (vect_schedule_slp_instance): Move here the calculation of number
1886         of vectorized statements for each node from...
1887         (vect_schedule_slp): ... here.
1888         (vect_transform_loop): Call vect_schedule_slp without the last
1889         argument.
1890
1891 2008-08-19  Dorit Nuzman  <dorit@il.ibm.com>
1892
1893         PR bootstrap/37152
1894         * tree-vect-transform.c (vect_create_epilog_for_reduction): Change = 
1895         to == in assert statement.
1896         (vectorizable_reduction): Fix typo.
1897
1898 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
1899
1900         PR bootstrap/37153
1901         * value-prof.c (check_counter): Dereference pointer to overall
1902         count when printing it.
1903
1904 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
1905
1906         * profile.h: Really add it.
1907
1908 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
1909
1910         * mcf.c: Really add it.
1911
1912 2008-08-18  Paul Yuan  <yingbo.com@gmail.com>
1913             Vinodha Ramasamy  <vinodha@google.com>
1914
1915         * cgraph.c (cgraph_edge): Handle inconsistent counts when setting
1916         count_scale.
1917         * value-prof.c (check_counter): Fix the counter if
1918         flag_profile_correction is true.
1919         (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
1920         tree_mod_subtract_transform):
1921         Follow check_counter parameter change.
1922         * common.opt (fprofile-correction): New option.
1923         * mcf.c: New file.
1924         * profile.h: Likewise.
1925         * profile.c (edge_info, EDGE_INFO): Moved to new file profile.h.
1926         (sum_edge_counts, is_edge_inconsistent, correct_negative_edge_counts,
1927         is_inconsistent, set_bb_counts, read_profile_edge_counts): New
1928         functions.
1929         (compute_branch_probabilities): Refactored. Invokes mcf_smooth_cfg if
1930         flag_profile_correction is set.
1931
1932 2008-08-18  Richard Sandiford  <rdsandiford@googlemail.com>
1933
1934         * rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
1935
1936 2008-08-18  Tomas Bily  <tbily@suse.cz>
1937
1938         * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P.
1939         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Use
1940         CONVERT_EXPR_P.
1941         * tree-data-ref.c (split_constant_offset_1): Likewise.
1942         * tree-inline.c (estimate_operator_cost): Use CASE_CONVERT.
1943         * tree-sra.c (sra_walk_expr): Likewise.
1944         * matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise.
1945         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
1946         * gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P.
1947         * tree-ssa-structalias.c (find_func_aliases, find_func_aliases):
1948         Likewise.
1949         * gimple.c (gimple_assign_unary_nop_p): Likewise.
1950         * tree-vect-transform.c (vectorizable_type_demotion)
1951         (vectorizable_type_promotion): Likewise.
1952         * tree-inline.c (expand_call_inline): 
1953         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
1954         (forward_propagate_addr_expr_1, forward_propagate_comparison)
1955         (tree_ssa_forward_propagate_single_use_vars): Likewise.
1956         * expr.c (expand_expr_real_1): Likewise.
1957         * tree-ssa-dom.c (hashable_expr_equal_p, iterative_hash_hashable_expr)
1958         (gimple_assign_unary_useless_conversion_p): Likewise.
1959         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
1960         * tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise.
1961         * fold-const.c (fold_unary): Likewise.
1962         * tree.h (CONVERT_EXPR_P): Likewise.
1963         * tree.c (simple_cst_equal, iterative_hash_expr): Likewise.
1964         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
1965         * tree-vrp.c: 
1966         (register_edge_assert_for_2, extract_range_from_unary_expr)
1967         (register_edge_assert_for_1): Likewise.
1968         
1969 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1970
1971         * real.h (dconst_e, dconst_third, dconst_sqrt2, dconst_e_ptr,
1972         dconst_third_ptr, dconst_sqrt2_ptr): Declare.
1973         (enum real_value_const): Delete.
1974         (get_real_const): Delete.
1975         * real.c (get_real_const): Delete.
1976         (dconst_e_ptr): Define.
1977         (dconst_third_ptr): Define.
1978         (dconst_sqrt2_ptr): Define.
1979         * builtins.c: Update all callers.
1980
1981 2008-08-18  Richard Guenther  <rguenther@suse.de>
1982
1983         * tree-ssa-reassoc.c (reassociate_bb): Properly reset the
1984         statement iterator after statement removal.
1985
1986 2008-08-18  Andreas Tobler  <a.tobler@schweiz.org>
1987
1988         * config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.
1989         (detect_processor_freebsd): Likewise.
1990         (host_detect_local_cpu): Call newly added functions for FreeBSD.
1991
1992 2008-08-18  Richard Guenther  <rguenther@suse.de>
1993
1994         * tree-cfg.c (verify_types_in_gimple_assign): Verify copies
1995         and loads have the correct types.
1996
1997 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1998
1999         PR cpp/7263
2000         * c-opts.c (cpp_opts): Remove static.
2001         * c-parser.c (cpp_opts): Declare it extern.
2002         (disable_extension_diagnostics): Handle cpp options.
2003         (enable_extension_diagnostics): Likewise.
2004
2005 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2006
2007         * diagnostics.c (permerror_at): Rename as permerror.
2008         (permerror): Delete.
2009         * toplev.h: Likewise.
2010
2011 2008-08-18  Richard Guenther  <rguenther@suse.de>
2012
2013         * passes.c (init_optimization_passes): Remove cleanup_cfg1,
2014         sdse1 and addressables2 passes.  Replace dce1 with cddce1.
2015         Move call_cdce before build_alias.  Move copyrename2,
2016         cunrolli and ccp2 beafore build_alias.  Re-add addressable2
2017         right after final inlining.
2018         * tree-cfg.c (build_gimple_cfg): Do not dump function here.
2019         (pass_build_cfg): But instead via TODO_dump_func.
2020
2021 2008-08-18  Richard Guenther  <rguenther@suse.de>
2022
2023         * tree-sra.c (generate_element_init_1): Deal with NULL constructor
2024         element index.
2025         (scalarize_init): If we failed to generate some initializers
2026         do not generate zeros for not instantiated members.  Instead
2027         rely on the copy out.
2028         * tree-ssa-operands.c (get_addr_dereference_operands): Warn
2029         about missing flow-sensitive alias info only if we have
2030         aliases computed.
2031
2032 2008-08-17  Nick Clifton  <nickc@redhat.com>
2033
2034         * doc/extend.texi (Function Attributes): Fix typo in description
2035         if hot function attribute.
2036
2037 2008-08-17  Daniel Jacobowitz  <dan@codesourcery.com>
2038             Richard Sandiford  <rdsandiford@googlemail.com>
2039
2040         * doc/install.texi (--with-mips-plt): Document.
2041         * doc/invoke.texi (-mplt, -mno-plt): Document.
2042         * config.gcc (mips*-*-*): Add mips-plt to supported_defaults
2043         and handle ${with_mips_plt}.
2044         * config/mips/mips.opt (mplt): New option.
2045         * config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
2046         (TARGET_ABICALLS_PIC2): Likewise.
2047         (TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
2048         (OPTION_DEFAULT_SPECS): Add a mips-plt entry.
2049         (ASM_SPEC): Use !mabi=* instead of !mabi*.
2050         (MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
2051         to decide whether to output ".option picX" directives.
2052         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
2053         Pass -call_nonpic rather than -KPIC for -mplt.
2054         (BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
2055         on the command line.  Also remove it when -mabi=64 is used without
2056         -msym32.
2057         * config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
2058         * config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
2059         TARGET_ABICALLS_PIC0.
2060         (mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
2061         TARGET_ABICALLS.
2062         (mips16_build_function_stub): Only output ".option pic" directives
2063         and PIC stubs if TARGET_ABICALLS_PIC2.  Call through $25 instead of $1.
2064         (mips16_build_call_stub): Fix comment and remove redundant
2065         ".set at"/"set .noat" directives.
2066         (mips_function_rodata_section): Use the default behaviour for
2067         TARGET_ABSOLUTE_ABICALLS.
2068         (mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
2069         (mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
2070         (mips_restore_gp): Do nothing if the current function doesn't use
2071         a global pointer.
2072         (mips_expand_prologue): Only save $gp if the current function uses it.
2073         Use a normal move for TARGET_ABICALLS_PIC0.
2074         (mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.
2075
2076 2008-08-17  Richard Sandiford  <rdsandiford@googlemail.com>
2077
2078         * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest
2079         of function when handling GLOBAL_POINTER_REGNUM.
2080
2081 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
2082
2083         PR ada/20548
2084         * common.opt (-fstack-check): Do not declare the variable here.
2085         (-fstack-check=): New option variant.
2086         * doc/invoke.texi (Code Gen Options): Document it.
2087         * expr.h (STACK_OLD_CHECK_PROTECT): New macro.
2088         (STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used.
2089         (STACK_CHECK_STATIC_BUILTIN): New macro.
2090         * doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN.
2091         * opts.c: Include expr.h.
2092         (common_handle_option) <OPT_fold_stack_check_>: New case.
2093         <OPT_fstack_check>: Likewise.
2094         * calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT
2095         consistently in the test for variable-sized types.  Adjust for
2096         new behaviour of flag_stack_check.
2097         * explow.c: Include except.h.
2098         (allocate_dynamic_stack_space): Do not take into account
2099         STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking.
2100         * function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test
2101         for variable-sized parameters.  Treat all parameters whose size is
2102         greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic
2103         stack checking is enabled.
2104         * gimplify.c (gimplify_decl_expr): Treat non-static objects whose
2105         size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized
2106         if generic stack checking is enabled.
2107         (expand_function_end): Adjust for new behaviour of flag_stack_check.
2108         * reload1.c (reload): Likewise.
2109         * stmt.c (expand_decl): Assert that all automatic variables have
2110         fixed size at this point and remove dead code.
2111         * flags.h (stack_check_type): New enumeration type.
2112         (flag_stack_check): Declare.
2113         * toplev.c (flag_stack_check): New global variable.
2114         * Makefile.in (opts.o): Add dependency on EXPR_H.
2115         (explow.o): Add dependency on except.h.
2116
2117 2008-08-16  Andy Hutchinson  <hutchinsonandy@aim.com>
2118
2119         * config/avr/avr.c (avr_override_options): Reduce value of 
2120         PARAM_INLINE_CALL_COST.
2121
2122 2008-08-15  Eric Botcazou  <ebotcazou@adacore.com>
2123
2124         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: When converting
2125         to BLKmode, try to fetch an inner memory reference.  Use 'mode' in
2126         lieu of TYPE_MODE (type) throughout.
2127
2128 2008-08-15  Joseph Myers  <joseph@codesourcery.com>
2129
2130         * config/arm/arm.c (add_minipool_backward_ref): Check for
2131         8-byte-aligned entries in second case of forcing insertion after a
2132         particular entry.  Change third case to avoid inserting
2133         non-8-byte-aligned entries before 8-byte-aligned ones.
2134
2135 2008-08-15  Richard Guenther  <rguenther@suse.de>
2136
2137         * tree-ssa-ccp.c (maybe_fold_offset_to_reference): Do not
2138         strip components for unknown size accesses.
2139
2140 2008-08-15  Wolfgang Gellerich  <gellerich@de.ibm.com>
2141
2142         * config/s390/2097.md New file.
2143         * config/s390/s390.md ("z10prop" attribute): Define none,
2144         z10_super, z10_super_E1, z10_super_A1, z10_super_c,
2145         z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
2146         z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
2147         possible values and apply them to insns as appropriate.
2148         ("type" attribute): Removed itof and added ftrunctf,ftruncdf,
2149         ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
2150         fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
2151         fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible
2152         values.
2153         ("bfp" mode attribute): Removed.  Every occurence replaced
2154         with <mode>.
2155         * config/s390/s390.c (struct "z10_cost"): Updated entries.
2156         * config/s390/2084.md (insn_reservation "x_itof"): Updated
2157           type attribute.
2158
2159 2008-08-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2160
2161         PR c/28152
2162         * c-parser.c (c_lex_one_token): Do not store the canonical spelling
2163         for keywords.
2164         
2165 2008-08-14  Dorit Nuzman  <dorit@il.ibm.com>
2166
2167         * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an
2168         additional argument. Support reduction when duplication is needed due
2169         to data-types of different sizes in the loop.
2170         (get_initial_def_for_induction): Fix printout.
2171         (vect_get_vec_def_for_stmt_copy): Support case where the
2172         vec_stmt_for_operand is a phi node.
2173         (vectorizable_reduction): Support reduction when duplication is needed 
2174         due to data-types of different sizes in the loop.
2175         (vectorizable_call): Remove restriction to not vectorize in case we 
2176         have data-types of different sizes in the loop.
2177         (vectorizable_conversion): Likewise.
2178         (vectorizable_operation): Likewise.
2179         (vectorizable_type_demotion): Likewise.
2180         (vectorizable_type_promotion): Likewise.
2181         (vectorizable_induction): Add restriction to not vectorize in case 
2182         we have data-types of different sizes in the loop.
2183
2184 2008-08-14  Christophe Saout  <christophe@saout.de>
2185             Uros Bizjak  <ubizjak@gmail.com>
2186
2187         PR target/37101
2188         * config/i386/sse.md (vec_concatv2di): Remove movlps alternative.
2189         (*vec_concatv2di_rex64_sse4_1): Ditto.
2190         (*vec_concatv2di_rex64_sse): Ditto.
2191
2192 2008-08-14  Jakub Jelinek  <jakub@redhat.com>
2193
2194         PR middle-end/37103
2195         * fold-const.c (fold_widened_comparison): Do not allow
2196         sign changes that change the result even if shorter type
2197         is wider than arg1_unw's type.
2198
2199 2008-08-13  Kazu Hirata  <kazu@codesourcery.com>
2200
2201         * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c:
2202         Skip if the multilib testing specifies -march that does not
2203         agree with the one specified in the testcase.
2204
2205 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
2206
2207         * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or
2208         zero extend SImode values being converted to TFmode before passing
2209         to libcalls.
2210
2211 2008-08-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2212
2213         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
2214         __PPU__ when targeting the Cell/B.E. PPU processor.
2215
2216 2008-08-13  Eric Botcazou  <ebotcazou@adacore.com>
2217
2218         * gimple.h (gimple_call_set_chain): Accept SSA variables.
2219         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>:
2220         Rematerialize the static chain, if any.
2221         * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the
2222         static chain.
2223
2224 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
2225
2226         * dwarf2out.c (dwarf_stack_op_name): Remove prototype.
2227         (new_loc_descr): Likewise.
2228         (add_loc_descr): Likewise.
2229         (size_of_loc_descr): Likewise.
2230         (size_of_locs): Likewise.
2231         (output_loc_operands): Likewise.
2232         (output_loc_sequence): Likewise.
2233         (new_reg_loc_descr): New.
2234         (build_cfa_loc): Use it.
2235         (build_cfa_aligned_loc): Likewise.
2236         (one_reg_loc_descriptor): Likewise.
2237         (based_loc_descr): Likewise.
2238
2239 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2240
2241         PR 30551
2242         * doc/invoke.texi (Wmain): Update.
2243         * c-decl.c (start_decl): warn_main is only 0 or 1.
2244         (start_function): Likewise. Fix formatting.
2245         (finish_function): Delete redundant warning.
2246         * c.opt (Wmain): Add Var(warn_main) and Init(-1).
2247         * c-opts (c_common_handle_option): -Wall only has effect if
2248         warn_main is uninitialized. OPT_Wmain is automatically
2249         handled. -pedantic also enables Wmain.
2250         (c_common_post_options): Handle all logic for Wmain here.
2251         * c-common.c (warn_main): Delete.
2252         (check_main_parameter_types): Make pedwarns conditional on
2253         OPT_Wmain.
2254         * c-common.h (warn_main): Delete.
2255
2256 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
2257
2258         PR middle-end/36701
2259         * expr.c (emit_group_store): Allocate stack temp with the
2260         largest alignment when copying from register to stack.
2261
2262 2008-08-13  Richard Guenther  <rguenther@suse.de>
2263
2264         * tree.h (maybe_fold_offset_to_address): Declare.
2265         * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit.
2266         (ccp_fold): Handle pointer conversions the same as fold_stmt.
2267         Likewise for POINTER_PLUS_EXPR.
2268         (maybe_fold_offset_to_reference): Enable disabled code.
2269         (maybe_fold_offset_to_address): New function.
2270         (fold_stmt_r): Use it.
2271         (fold_gimple_assign): Likewise.
2272         * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address.
2273         (gimplify_expr): Likewise.
2274
2275 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2276
2277         * toplev.h (pedwarn_at): Fix declaration.
2278         
2279 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
2280
2281         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
2282         LINK_SPEC): Use %R in -Y P argument.
2283
2284 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2285
2286         PR c/15236
2287         * diagnostic.c (pedwarn_at): New.
2288         * toplev.h (pedwarn_at): Declare.
2289         * c-tree.h (build_enumerator): Update declaration.
2290         * c-decl.c (finish_enum): Update comment.
2291         (build_enumerator): Take a location parameter. Give a pedwarn but do
2292         not perform any conversion.
2293         * c-parser.c (c_parser_enum_specifier): Set correct location for
2294         enumerator.
2295
2296 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2297
2298         PR 35635
2299         * c-common.c (conversion_warning): Use a switch. Ignore boolean
2300         expressions except for conversions to signed:1 bitfields. Handle
2301         COND_EXPR with constant operands.
2302         
2303 2008-08-13  Richard Guenther  <rguenther@suse.de>
2304
2305         PR tree-optimization/15255
2306         * tree-ssa-reassoc.c (linearize_expr_tree): Declare.
2307         (struct oecount_s): New struct and VEC types.
2308         (cvec): New global.
2309         (oecount_hash): New function.
2310         (oecount_eq): Likewise.
2311         (oecount_cmp): Likewise.
2312         (zero_one_operation): New function.
2313         (build_and_add_sum): Likewise.
2314         (undistribute_ops_list): Perform un-distribution of multiplication
2315         and division on the chain of summands.
2316         (should_break_up_subtract): Also break up subtracts for factors.
2317         (reassociate_bb): Delete dead visited statements.
2318         Call undistribute_ops_list.  Re-sort and optimize if it did something.
2319         * passes.c (init_optimization_passes): Move DSE before
2320         reassociation.
2321         * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle
2322         PHI nodes.
2323
2324 2008-08-12  Janis Johnson  <janis187@us.ibm.com>
2325
2326         * doc/invoke.texi (-fipa-pta): Say the option is experimental.
2327
2328         * doc/invoke.texi: Revert unintended checkin.
2329
2330 2008-08-12  Nathan Froyd  <froydnj@codesourcery.com>
2331
2332         PR libgomp/26165
2333         * gcc.c (include_spec_function): Tweak call to find_a_file.
2334
2335 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
2336
2337         PR middle-end/37014
2338         * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
2339         and TRUTH_ORIF_EXPR.
2340         * dojump.c (do_jump): Likewise.
2341
2342         PR tree-optimization/37084
2343         * tree-inline.c (copy_bb): Call gimple_regimplify_operands
2344         if id->regimplify, don't assume stmt is a cast assignment.
2345
2346 2008-08-12  Anatoly Sokolov  <aesok@post.ru>
2347
2348         * final.c (final_scan_insn): Use app_enable/app_disable functions.
2349
2350 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2351
2352         PR bootstrap/37097
2353         * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced
2354         by last change.
2355
2356 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2357
2358         * defaults.h (TARGET_FLOAT_FORMAT): Remove.
2359         (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove.
2360
2361         * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove.
2362         * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove.
2363         * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove.
2364         * config/score/score.h (TARGET_FLOAT_FORMAT): Remove.
2365         * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove.
2366
2367         * doc/tm.texi (Storage Layout): Remove documentation for
2368         TARGET_FLOAT_FORMAT.
2369
2370         * simplify-rtx.c (simplify_binary_operation_1): Replace
2371         TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks.
2372
2373 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2374
2375         * real.h (struct real_format): New member has_sign_dependent_rounding.
2376         * real.c (ieee_single_format, mips_single_format, motorola_single_format,
2377         spu_single_format, ieee_double_format, mips_double_format,
2378         motorola_double_format, ieee_extended_motorola_format,
2379         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
2380         ieee_extended_intel_96_round_53_format, ibm_extended_format,
2381         mips_extended_format, ieee_quad_format, mips_quad_format,
2382         vax_f_format, vax_d_format, vax_g_format): Initialize it.
2383         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
2384
2385         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
2386         MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
2387         * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
2388         MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
2389         (ROUND_TOWARDS_ZERO): Likewise.
2390
2391         * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion.
2392         (FLOAT_MODE_FORMAT): New macro.
2393         (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ...
2394         (MODE_COMPOSITE_P): ... this new macro.
2395         (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
2396         MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros.
2397         * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode.
2398
2399         * flags.h: Include "real.h".
2400
2401         * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of
2402         REAL_MODE_FORMAT_COMPOSITE_P.
2403         * simplify-rtx.c (simplify_const_binary_operation): Likewise.
2404
2405         * doc/tm.texi (Storage Layout): Remove documentation of
2406         MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
2407         MODE_HAS_SIGN_DEPENDENT_ROUNDING.  Update documentation of
2408         ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify
2409         they only apply to libgcc2.a.
2410
2411 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2412
2413         * config/spu/float_disf.c: New file.
2414         * config/spu/float_unsdisf.c: New file.
2415         * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them.
2416         (LIB2FUNCS_EXCLUDE): Define.
2417
2418 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2419             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2420
2421         * real.h (struct real_format): New member round_towards_zero.
2422         * real.c (round_for_format): Respect fmt->round_towards_zero.
2423         (ieee_single_format, mips_single_format, motorola_single_format,
2424         spu_single_format, ieee_double_format, mips_double_format,
2425         motorola_double_format, ieee_extended_motorola_format,
2426         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
2427         ieee_extended_intel_96_round_53_format, ibm_extended_format,
2428         mips_extended_format, ieee_quad_format, mips_quad_format,
2429         vax_f_format, vax_d_format, vax_g_format): Initialize it.
2430         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
2431
2432         * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of
2433         real_format to choose rounding mode when calling MPFR functions.
2434         (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise.
2435         (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise.
2436
2437         * real.h (real_to_decimal_for_mode): Add prototype.
2438         * real.c (real_to_decimal_for_mode): Renames old real_to_decimal.
2439         Respect target rounding mode when generating decimal representation.
2440         (real_to_decimal): New stub for backwards compatibility.
2441         * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use
2442         real_to_decimal_for_mode instead of real_to_decimal.
2443
2444         * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New.
2445
2446 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2447             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2448
2449         * real.c (spu_single_format): New variable.
2450         * real.h (spu_single_format): Declare.
2451
2452         * config/spu/spu.c (spu_override_options): Install SFmode format.
2453         (spu_split_immediate): Use integer mode to operate on pieces of
2454         floating-point values in all cases.
2455
2456         * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New.
2457         ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND.
2458         ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE.
2459
2460 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2461
2462         * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA.
2463
2464 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2465
2466         * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define.
2467
2468 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
2469
2470         PR c++/36688
2471         * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY
2472         on the VAR_DECL instead of TYPE_READONLY on its type.
2473
2474 2008-08-12  Ira Rosen  <irar@il.ibm.com>
2475
2476         * tree-vectorizer.c: Depend on langhooks.h.
2477         (supportable_widening_operation): Add two arguments. Support double
2478         type conversions.
2479         (supportable_narrowing_operation): Likewise.
2480         * tree-vectorizer.h (supportable_widening_operation): Add two 
2481         arguments.
2482         (supportable_narrowing_operation): Likewise.
2483         * tree-vect-patterns.c (vect_recog_widen_mult_pattern) : Call
2484         supportable_widening_operation with correct arguments.
2485         * tree-vect-transform.c (vectorizable_conversion): Likewise.
2486         (vectorizable_type_demotion): Support double type conversions.
2487         (vectorizable_type_promotion): Likewise.
2488         * Makefile.in (tree-vectorizer.o): Depend on langhooks.h.
2489
2490 2008-08-11  Michael Matz  <matz@suse.de>
2491
2492         * i386/i386.c (override_options): Move initialisation from
2493         flag_schedule_insns_after_reload to here from ...
2494         (optimization_options): ... here.
2495
2496 2008-08-11  Jakub Jelinek  <jakub@redhat.com>
2497
2498         PR rtl-optimization/36998
2499         * dwarf2out.c (compute_barrier_args_size_1,
2500         compute_barrier_args_size): Temporarily remove assertions.
2501
2502 2008-08-10  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2503
2504         PR middle-end/20644
2505         * tree-ssa.c (struct walk_data): Add new flag
2506         warn_possibly_uninitialized.
2507         (warn_uninitialized_var): Use it.
2508         (warn_uninitialized_vars): New.
2509         (execute_early_warn_uninitialized): Call it.
2510         (execute_late_warn_uninitialized): Likewise.
2511
2512 2008-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2513
2514         PR middle-end/36238
2515         * reload1.c (gen_reload): Guard calls to get_secondary_mem
2516         for memory subregs.
2517
2518 2008-08-09  Jan Hubicka  <jh@suse.cz>
2519
2520         PR target/37055
2521         * optabs.c (maybe_emit_unop_insn): Remove produced code if
2522         expansion failed.
2523         (expand_fix): Be prepared for expansion to fail.
2524         (expand_sfix_optab): Remove instructions if expansion failed.
2525
2526 2008-08-09  Anatoly Sokolov  <aesok@post.ru>
2527
2528         * config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to
2529         avr31 architecture.
2530         * config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.).
2531         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
2532
2533 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
2534
2535         * config.gcc (mips*-*-linux*, mips64*-*-linux*): Add
2536         mips/t-libgcc-mips16 to tmake_file.
2537         * config/mips/mips-protos.h (mips_call_type): New enum.
2538         (mips_pic_base_register, mips_got_load): Declare.
2539         (mips_restore_gp): Take an rtx argument.
2540         (mips_use_pic_fn_addr_reg_p): Declare.
2541         (mips_expand_call): Replace the sibcall_p argument with
2542         a mips_call_type argument.  Add a lazy_p parameter.
2543         (mips_split_call): Declare.
2544         * config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro.
2545         (MIPS16_PIC_TEMP): Likewise.
2546         (reg_class): Delete M16_NA_REGS.
2547         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
2548         (SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros.
2549         (mips_split_hi_p): Declare.
2550         * config/mips/mips.c (mips_split_hi_p): New array.
2551         (mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS.
2552         (mips_got_symbol_type_p): New function.
2553         (mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P.
2554         (mips16_stub_function_p): New function.
2555         (mips16_local_function_p): Likewise.
2556         (mips_use_pic_fn_addr_reg_p): Likewise.
2557         (mips_cannot_force_const_mem): Return false for HIGHs.
2558         Extend CONST_INT and symbolic handling to MIPS16, using
2559         mips_symbol_insns to check that the base symbol type is a
2560         legitimate constant.  Reject GOT-based constants if
2561         TARGET_MIPS16_PCREL_LOADS.
2562         (mips_const_insns): Check targetm.cannot_force_const_mem when
2563         decomposing a symbolic base and a large offset.
2564         (mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters.
2565         When calling a function that needs $25 from MIPS16 code,
2566         move the target address into $25 separately and add a USE
2567         to the call insn.
2568         (mips16_gp_pseudo_reg): Insert the initializer immediately
2569         before the first real insn.
2570         (mips_pic_base_register, mips_got_load): New functions.
2571         (mips_split_symbol): Generalize the name of the LO_SUM_OUT
2572         parameter to LOW_OUT.  Say that it can be any valid SET_SRC
2573         when splitting a load-address operation.  Split SYMBOL_GOT_DISP
2574         constants and highs of SYMBOL_GOT_PAGE_OFST constants.
2575         (mips_call_tls_get_addr): Update the call to mips_expand_call,
2576         also passing NULL_RTX rather than const0_rtx as the aux argument.
2577         (mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p
2578         instead of TARGET_EXPLICIT_RELOCS.
2579         (mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P.
2580         (mips_load_call_address): Replace the sibcall_p argument with
2581         a mips_call_type argument.  Use mips_got_load.
2582         (mips16_local_alias): New structure.
2583         (mips16_local_aliases): New variable.
2584         (mips16_local_aliases_hash): New function.
2585         (mips16_local_aliases_eq): Likewise.
2586         (mips16_local_alias): Likewise.
2587         (mips16_stub_function): Likewise.
2588         (mips16_build_function_stub): Create a local alias for the target
2589         function.  Handle TARGET_ABICALLS.  For PIC abicalls, emit a
2590         .cpload directive and an R_MIPS_NONE relocation for the target
2591         function, then load the alias rather than the function itself.
2592         Wrap the non-PIC abicalls version in ".option pic0/.option pic2".
2593         (mips16_copy_fpr_return_value): Use mips16_stub_function and
2594         mips_expand_call.  Set SYMBOL_REF_BIND_NOW on the symbol.
2595         (mips16_build_call_stub): Replace the FN parameter with an
2596         FN_PTR parameter.  Force the address into a register if it
2597         isn't a call_insn_operand; don't rely on the caller to do this.
2598         If a call to a locally-defined and locally-binding MIPS16
2599         function must be made indirectly, redirect the call to the
2600         function's local alias.  Use mips16_stub_function_p,
2601         mips16_stub_function, mips_expand_call and use_reg.
2602         Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols.
2603         Use explicit %hi and %lo accesses where possible.
2604         Use MIPS_CALL to generate the correct code form of a
2605         jal instruction.  Add clobbers of $18 instead of uses.
2606         Update the call to mips_emit_call_insn.
2607         (mips_expand_call): Replace the SIBCALL_P argument with a
2608         mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value.
2609         Take a LAZY_P parameter.  Call mips16_build_call_stub first,
2610         allowing it to modify the call address.  Update the calls to
2611         mips_load_call_address and mips_emit_call_insn.
2612         (mips_split_call): New function.
2613         (mips_init_relocs): Clear mips_split_hi_p.  Only use %gp_rel if
2614         !TARGET_MIPS16.  Split SYMBOL_GOT_DISP, and the high parts of
2615         SYMBOL_GOT_PAGE_OFST, for MIPS16 code.
2616         (mips_global_pointer): Check mips16_cfun_returns_in_fpr_p.
2617         (mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM
2618         if TARGET_MIPS16.
2619         (mips_cprestore_slot): New function.
2620         (mips_restore_gp): Take a TEMP parameter.  Handle TARGET_MIPS16
2621         and use mips_cprestore_slot.
2622         (mips_output_function_prologue): Handle TARGET_MIPS16 for
2623         LOADGP_OLDABI.
2624         (mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16,
2625         then use a copygp_mips16 instruction to set up $28.
2626         (mips_expand_prologue): Initialize the cprestore slot for MIPS16 too.
2627         (mips16_lay_out_constants): Call split_all_insns_noflow.
2628         (mips_reorg_process_insns): Explicitly set all_noreorder_p to
2629         false if TARGET_MIPS16.
2630         (mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16.
2631         (mips_output_mi_thunk): Use mips_got_symbol_type_p.  Use the
2632         mips_dangerous_for_la25_p approach for MIPS16 PIC calls too.
2633         (mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for
2634         MIPS16 code.  Allow MIPS16 o32 PIC.
2635         (mips_override_options): Allow MIPS16 o32 PIC.
2636         * config/mips/mips.md: Lower CONST_GP_P moves into register moves
2637         after reload if TARGET_USE_GOT.
2638         (UNSPEC_COPYGP): New constant.
2639         (length): Use a default length of 8 for MIPS16 GOT loads.
2640         (*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT.
2641         (*got_page<mode>): Check mips_split_hi_p.
2642         (*got_disp<mode>, *got_page<mode>): Use mips_got_load.
2643         (unspec_got<mode>, unspec_call<mode>): New expanders.
2644         (load_got<mode>, load_call<mode>): Remove the length attributes.
2645         Use a got attribute instead of a type attribute.
2646         (copygp_mips16): New insn.
2647         (restore_gp): Add a scratch clobber and pass it to mips_restore_gp.
2648         (load_call<mode>): Use a "d" constraint instead of an "r" constraint.
2649         (sibcall, sibcall_value, call, call_value): Update the calls
2650         to mips_expand_call.
2651         (call_internal, call_value_internal): Use mips_split_call.
2652         (call_value_multiple_internal): Likewise.
2653         (call_split): Move after call_internal (the insn it is split from).
2654         (call_internal_direct, call_value_internal_direct): Turn into
2655         define_insn_and_splits.  Split if TARGET_SPLIT_CALLS.
2656         (call_direct_split, call_value_direct_split): New patterns.
2657         * config/mips/constraints.md (c): Handle TARGET_MIPS16 first
2658         and use M16_REGS instead of M16_NA_REGS.
2659         * config/mips/predicates.md (const_call_insn_operand): Replace
2660         the TARGET_ABSOLUTE_ABICALLS-based check with a more general
2661         mips_use_pic_fn_addr_reg_p check.
2662         (move_operand): Reject HIGHs if mips_split_hi_p.
2663         * config/mips/mips16.S: Assembly as empty if the ABI is not suitable.
2664         (__mips16_floatunsisf): Inline __mips16_floatsisf.
2665         (CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25.
2666         * config/mips/libgcc-mips16.ver: New file.
2667         * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add
2668         $(srcdir)/config/mips/libgcc-mips16.ver.
2669
2670 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
2671
2672         * config/mips/mips.c (mips_unspec_address_offset): Move earlier in file.
2673         (mips_unspec_address, mips_unspec_offset_high): Likewise.
2674         (mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise.
2675         (mips16_cfun_returns_in_fpr_p): Likewise.
2676
2677 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
2678
2679         * config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary.
2680         * config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2
2681         rather than 4 to PC.
2682
2683 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
2684
2685         * config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
2686         (FUNCTION_PROFILER): Save the static chain pointer into $2
2687         beforehand and restore it aftewards.
2688         (TRAMPOLINE_TEMPLATE): Adjust accordingly.  Load the target
2689         address directly into $25 and call the function through $25;
2690         do not clobber $3.  Pad the DImode version to cover the space
2691         left by the deleted $25 <- $3 move.
2692         (TRAMPOLINE_SIZE): Adjust the size of the SImode version after
2693         the removal of the $25 <- $3 move.
2694         (INITIALIZE_TRAMPOLINE): Update offsets accordingly.
2695         * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
2696
2697 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
2698             Daniel Jacobowitz  <dan@codesourcery.com>
2699
2700         * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete.
2701         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete.
2702         (ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete.
2703         * config/mips/mips.c (mips_start_function_definition): New function.
2704         (mips_end_function_definition): Likewise.
2705         (mips_output_function_prologue): Use mips_start_function_definition.
2706         (mips_output_function_epilogue): Use mips_end_function_definition.
2707         (build_mips16_function_stub): Use mips_start_function_definition
2708         and mips_end_function_definition.
2709         (build_mips16_call_stub): Likewise.
2710
2711 2008-08-09  Richard Guenther  <rguenther@suse.de>
2712
2713         * gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
2714         * gimple.h (gimple_call_fn): Adjust comment.
2715         (gimple_call_set_fndecl): New function.
2716         (gimple_call_fndecl): Adjust for GIMPLE_CALL no
2717         longer having bare FUNCTION_DECL operand.
2718         (gimple_call_return_type): Likewise.
2719         * tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL.
2720
2721         * value-prof.c (gimple_divmod_fixed_value): Do not emit labels.
2722         (gimple_mod_pow2): Likewise.
2723         (gimple_mod_subtract): Likewise.
2724         (gimple_ic): Likewise.
2725         (gimple_stringop_fixed_value): Likewise.
2726         (gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no
2727         longer having bare FUNCTION_DECL operand.
2728         * ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl.
2729         * omp-low.c (optimize_omp_library_calls): Likewise.
2730         * cgraphunit.c (update_call_expr): Likewise.
2731         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
2732         (execute_convert_to_rsqrt): Likewise.
2733         * cfgexpand.c (gimple_to_tree): Simplify.
2734         (release_stmt_tree): Fix for GIMPLE_CALL no longer having
2735         bare FUNCTION_DECL operand.
2736         * tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type.
2737         (convert_gimple_call): Use gimple_call_fndecl.
2738         * c-common.c (c_warn_unused_result): Likewise.
2739
2740 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2741
2742         PR c/17880
2743         * c-typeck.c (digest_init): Call verify_sequence_points from here.
2744         (c_finish_return): Likewise.
2745         (c_start_case): Likewise.
2746         * c-common.c (warn_for_collisions_1): Use explicit location in
2747         warning.
2748         * c-parser.c (c_parser_condition): New. Call
2749         verify_sequence_points.
2750         (c_parser_paren_condition): Call c_parser_condition.
2751         (c_parser_for_statement): Call c_parser_condition.
2752
2753 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2754
2755         PR 36901
2756         * diagnostic.def (DK_PEDWARN, DK_PERMERROR): New.  
2757         * diagnostic.c (pedantic_warning_kind, permissive_error_kind):
2758         Moved from diagnostic.h
2759         (diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and
2760         DK_PERMERROR.
2761         (emit_diagnostic): New.
2762         (warning0, pedwarn0): Delete.
2763         (warning, warning_at, pedwarn, permerror): Return bool.  
2764         * diagnostic.h (pedantic_warning_kind, permissive_error_kind):
2765         Moved to diagnostic.c.
2766         (struct diagnostic_context): Use correct type for
2767         classify_diagnostic.
2768         (diagnostic_report_diagnostic): Update declaration.
2769         (emit_diagnostic): Declare.
2770         * errors.c (warning): Return bool.  
2771         * errors.h (warning): Update declaration.
2772         * toplev.h (warning0, pedwarn0): Delete.
2773         (warning, warning_at, pedwarn, permerror): Return bool.
2774         * c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN.
2775         * c-decl.c (locate_old_decl): Delete 'diag' argument. Always use
2776         inform. Update all calls.
2777         (diagnose_mismatched_decls): Check return value of warning/pedwarn
2778         before giving informative note.
2779         (implicit_decl_warning): Likewise.  
2780         * c-typeck.c (build_function_call): Likewise.  
2781         * tree-sssa.c (warn_uninit): Likewise.  
2782         * builtins.c (gimplify_va_arg_expr): Likewise.
2783
2784 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2785
2786         PR 7651
2787         * doc/invoke.texi (-Wextra): Move warning from here...
2788         (-Wuninitialized): ... to here.
2789         
2790 2008-08-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2791
2792         PR 28875
2793         * flags.h (set_Wunused): Delete
2794         * toplev.c (process_options): Handle Wunused flags here.
2795         * opts.c (maybe_warn_unused_parameter): Delete.
2796         (common_handle_option): Replace set_Wunused by warn_unused.
2797         (set_Wextra): Do not handle Wunused-parameter here.
2798         (set_Wunused): Delete.
2799         * c-opts.c (c_common_handle_option): Replace set_Wunused by
2800         warn_unused.
2801         * common.opt (Wunused): Add Var and Init.
2802         (Wunused-function): Likewise.
2803         (Wunused-label): Likewise.
2804         (Wunused-parameter): Likewise.
2805         (Wunused-value): Likewise.
2806         (Wunused-variable): Likewise.
2807         
2808 2008-08-08  Peter Bergner  <bergner@vnet.ibm.com>
2809
2810         * doc/invoke.texi: Add cpu_type power7.
2811         * config.in (HAVE_AS_VSX): New.
2812         * config.gcc: Add cpu_type power7.
2813         * configure.ac (HAVE_AS_VSX): Check for assembler support of the
2814         VSX instructions.
2815         * configure: Regenerate.
2816         * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to
2817         power5.
2818         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define.
2819         (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7.
2820         (EXTRA_SPECS): Add asm_cpu_power7 spec string.
2821
2822 2008-08-08  Dorit Nuzman  <dorit@il.ibm.com>
2823
2824         * tree-vect-transform.c (vectorizable_conversion): Pass the integral
2825         type to vectorize.builtin_conversion.
2826         (vectorizable_conversion): Likewise.
2827         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes
2828         integral type as input.
2829         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
2830         FIX_TRUNC_EXPR.
2831         (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS
2832         and ALTIVEC_BUILTIN_VCTSXS.
2833         (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix
2834         formatting. 
2835
2836 2008-08-08  Richard Guenther  <rguenther@suse.de>
2837
2838         * tree-ssa-ccp.c (likely_value): Calls are not all varying.
2839         (surely_varying_stmt_p): Calls are varying only if they are
2840         non-builtin and not indirect or have no result.
2841         (ccp_fold): Re-instantiate code before the tuples merge.
2842
2843 2008-08-08  Richard Guenther  <rguenther@suse.de>
2844
2845         PR tree-optimization/37056
2846         * gimple.h (gimple_assign_rhs_class): New helper function.
2847         * tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle
2848         unary operations properly.
2849
2850 2008-08-07  Jan Hubicka  <jh@suse.cz>
2851
2852         * i386.h (ix86_size_cost): Declare.
2853         (ix86_cur_cost): New function macro.
2854         * i386.md (peepholes expanding size and splitters): Predicate by
2855         optimize_insn_for_speed_p.
2856         (peepholes reduce size and splitters): Predicate by
2857         optimize_insn_for_size_p.
2858         * i386.c (ix86_size_cost): Rename from ...
2859         (size_cost): This one.
2860         (override_options): Update.
2861         (decide_alg): Likewise.
2862         (ix86_expand_clear): Use RTL profile.
2863         (ix86_pad_returns): Use RTL profile.
2864
2865 2008-08-07  Jan Hubicka  <jh@suse.cz>
2866
2867         * recog.c (split_all_insns): Set RTL profile
2868         (peephole2_optimize): Likewise.
2869         * function.c (thread_prologue_and_epilogue_insns): Likewise.
2870         * combine.c (combine_instructions): Likewise.
2871
2872 2008-08-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2873
2874         * c-common.c (c_common_reswords): Also warn about keyword "bool".
2875
2876 2008-08-07  Bob Wilson  <bob.wilson@acm.org>
2877         
2878         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming
2879         value in a6 after the set_frame_ptr insn.
2880         
2881 2008-08-07  Richard Henderson  <rth@redhat.com>
2882
2883         PR debug/37033
2884         * gcc.c (cpp_options): Pass along -g*.
2885
2886 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
2887
2888         * config/arm/arm.c (output_move_neon): Update comment describing
2889         big-endian vector layout.
2890         (arm_assemble_integer): Do not handle big-endian NEON vectors
2891         specially.
2892         * config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>,
2893         neon_vget_lane<mode>_sext_internal,
2894         neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust
2895         element indices for big-endian.
2896
2897 2008-08-07  Richard Henderson  <rth@redhat.com>
2898
2899         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New.
2900         * configure, config.in: Rebuild.
2901         * debug.h (dwarf2out_do_cfi_asm): Declare.
2902         * c-cppbuiltin.c (c_cpp_builtins): Use it.
2903         * dwarf2out.c (dwarf2out_do_cfi_asm): New.
2904         (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info,
2905         dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it.
2906
2907 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
2908
2909         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
2910         movv2si_internal): Combine into mov<mode>_internal.
2911         (movv2si_internal_2): Remove.
2912
2913 2008-08-07  Jan Hubicka  <jh@suse.cz>
2914
2915         PR target/37048
2916         * i386.md (single stringop patterns): Enable unconditionally. 
2917
2918 2008-08-07  H.J. Lu  <hongjiu.lu@intel.com>
2919
2920         PR target/36992
2921         * config/i386/emmintrin.h (_mm_move_epi64): Use
2922         __builtin_ia32_movq128.
2923
2924         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128.
2925         (bdesc_args): Add IX86_BUILTIN_MOVQ128.
2926
2927         * config/i386/sse.md (sse2_movq128): New.
2928
2929         * doc/extend.texi: Document __builtin_ia32_movq128.
2930
2931 2008-08-07  Richard Guenther  <rguenther@suse.de>
2932
2933         PR middle-end/37042
2934         * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all
2935         pointers can access anything.
2936
2937 2008-08-06  Jan Hubicka  <jh@suse.cz>
2938
2939         * optabs.c (emit_unop_insn): Break out to ...
2940         (maybe_emit_unop_insn): ... this one.
2941         (expand_sfix_optab): Use maybe variant.
2942         * optabs.h (maybe_emit_unop_insn): Declare.
2943
2944         * i386.md (mov0 patterns): Enable by default.
2945         (FP conversion expanders): Disable expansion of code expanding
2946         sequences when instruction should be optimized for size.
2947         (single strinop patterns): Enable when optimizing for size.
2948         (string expanders): Disable expanding of code expanding sequences
2949         when optimizning instruction for size.
2950         * i386.c (ix86_expand_vector_move_misalign): Do code size optimization
2951         per BB basis.
2952         (ix86_fp_comparison_sahf_cost): Likewise.
2953         (ix86_expand_branch): Likewise.
2954         (ix86_expand_ashl_const): Likewise.
2955         (ix86_split_ashl): Likewise.
2956         (ix86_expand_strlen): Likewise.
2957         (ix86_emit_fp_unordered_jump): Likewie.
2958
2959 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2960
2961         * c-common.c: Fix typo.
2962         (c_common_reswords): Activate more C++ keyword warnings.
2963
2964         * matrix-reorg.c (compute_offset): Avoid C++ keywords.
2965
2966 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2967
2968         PR 26785
2969         * diagnostic.c (permerror_at): New.
2970         * toplev.h (permerror_at): Declare.
2971         
2972 2008-08-06  Victor Kaplansky  <victork@il.ibm.com>
2973             Ira Rosen  <irar@il.ibm.com>
2974
2975         * tree-vect-transform.c (vect_model_simple_cost): Return
2976         immediately if stmt is pure SLP.
2977         (vect_model_store_cost): Ditto.
2978         (vect_model_load_cost): Ditto.
2979         (vectorizable_store): Remove PURE_SLP check before call
2980         to vect_model_store_cost.
2981         (vect_model_store_cost): When checking whether stmt describe
2982         strided access, add a check that it is not slp_node.
2983
2984 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2985
2986         PR 8715
2987         * c-common.c (warn_for_sign_compare): New. Handle separately the
2988         case that 'constant' is zero.
2989         * c-typeck.c (build_binary_op): Move code to c-common.c
2990         
2991 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2992
2993         * config/alpha/alpha.c (alpha_preferred_reload_class,
2994         alpha_secondary_reload, alpha_emit_set_const_1, function_value,
2995         alpha_output_mi_thunk_osf): Avoid C++ keywords.
2996         * config/arm/arm.c (output_move_vfp, output_move_neon): Likewise.
2997         * config/arm/arm.md: Likewise.
2998         * config/avr/avr-protos.h (preferred_reload_class,
2999         test_hard_reg_class, avr_simplify_comparison_p,
3000         out_shift_with_cnt, class_max_nregs): Likewise.
3001         * config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p,
3002         output_movqi, output_movhi, output_movsisf, out_shift_with_cnt,
3003         preferred_reload_class, test_hard_reg_class): Likewise.
3004         * config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok,
3005         bfin_memory_move_cost, bfin_secondary_reload,
3006         bfin_output_mi_thunk): Likewise.
3007         * config/crx/crx.c (crx_secondary_reload_class,
3008         crx_memory_move_cost): Likewise.
3009         * config/frv/frv-protos.h (frv_secondary_reload_class,
3010         frv_class_likely_spilled_p, frv_class_max_nregs): Likewise.
3011         * config/frv/frv.c (frv_override_options, frv_alloc_temp_reg,
3012         frv_secondary_reload_class, frv_class_likely_spilled_p,
3013         frv_class_max_nregs): Likewise.
3014         * config/h8300/h8300.c (h8300_classify_operand,
3015         h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count):
3016         Likewise.
3017         * config/i386/winnt.c (i386_pe_declare_function_type): Likewise.
3018         * config/ia64/ia64.c (ia64_preferred_reload_class,
3019         ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise.
3020         * config/iq2000/iq2000.c (gen_int_relational): Likewise.
3021         * config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare):
3022         Likewise.
3023         * config/m68hc11/m68hc11.c (preferred_reload_class,
3024         m68hc11_memory_move_cost): Likewise.
3025         * config/mcore/mcore.c (mcore_secondary_reload_class,
3026         mcore_reload_class): Likewise.
3027         * config/mips/mips.c (mips_hard_regno_mode_ok_p,
3028         mips_class_max_nregs, mips_cannot_change_mode_class,
3029         mips_preferred_reload_class, mips_secondary_reload_class,
3030         mips_output_mi_thunk): Likewise.
3031         * config/mmix/mmix.c (mmix_preferred_reload_class,
3032         mmix_preferred_output_reload_class, mmix_secondary_reload_class):
3033         Likewise.
3034         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
3035         Likewise.
3036         * config/pa/pa.c (pa_secondary_reload, pa_combine_instructions,
3037         pa_can_combine_p, pa_cannot_change_mode_class): Likewise.
3038         * config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
3039         * config/rs6000/rs6000.c (paired_expand_vector_init,
3040         rs6000_secondary_reload_class, rs6000_output_mi_thunk,
3041         compare_section_name, rs6000_memory_move_cost): Likewise.
3042         * config/s390/s390.c (s390_emit_compare_and_swap,
3043         s390_preferred_reload_class, s390_secondary_reload,
3044         legitimize_pic_address, legitimize_tls_address,
3045         legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic,
3046         s390_class_max_nregs): Likewise.
3047         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
3048         * config/s390/s390.md: Likewise.
3049         * config/score/score-protos.h (score_secondary_reload_class,
3050         score_preferred_reload_class): Likewise.
3051         * config/score/score.c (score_preferred_reload_class,
3052         score_secondary_reload_class): Likewise.
3053         * config/score/score3.c (score3_output_mi_thunk,
3054         score3_preferred_reload_class, score3_secondary_reload_class,
3055         score3_hard_regno_mode_ok): Likewise.
3056         * config/score/score3.h (score3_preferred_reload_class,
3057         score3_secondary_reload_class): Likewise.
3058         * config/score/score7.c (score7_output_mi_thunk,
3059         score7_preferred_reload_class, score7_secondary_reload_class,
3060         score7_hard_regno_mode_ok): Likewise.
3061         * config/score/score7.h (score7_preferred_reload_class,
3062         score7_secondary_reload_class): Likewise.
3063         * config/sh/sh.c (prepare_move_operands, output_far_jump,
3064         output_branchy_insn, add_constant, gen_block_redirect,
3065         sh_insn_length_adjustment, sh_cannot_change_mode_class,
3066         sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload):
3067         Likewise.
3068         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
3069         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
3070         xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
3071         xstormy16_preferred_reload_class): Likewise.
3072         * config/xtensa/xtensa.c (xtensa_expand_compare_and_swap,
3073         xtensa_expand_atomic, override_options,
3074         xtensa_preferred_reload_class, xtensa_secondary_reload_class):
3075         Likewise.
3076         * reorg.c (try_merge_delay_insns): Likewise.
3077         * tree.c (merge_dllimport_decl_attributes): Likewise.
3078
3079         * config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA.
3080
3081 2008-08-06  Michael Matz  <matz@suse.de>
3082
3083         * Makefile.in (write_entries_to_file): Quote words.
3084         * gengtype.c: (read_input_line): Skip over leading white-space.
3085
3086 2008-08-06  Marc Gauthier  <marc@tensilica.com>
3087
3088         * config.gcc: Match more processor names for Xtensa.
3089         * configure.ac: Likewise.
3090         * doc/install.texi (Specific): Likewise.
3091         * configure: Regenerate.
3092
3093 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3094
3095         * builtins.c (expand_builtin_profile_func): Avoid C++ keywords.
3096         * calls.c (avoid_likely_spilled_reg): Likewise.
3097         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
3098         * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise.
3099         * config/i386/i386.c (ix86_expand_special_args_builtin,
3100         ix86_secondary_reload): Likewise.
3101         * except.c (struct eh_region, gen_eh_region_catch,
3102         remove_unreachable_regions, duplicate_eh_regions,
3103         assign_filter_values, build_post_landing_pads,
3104         sjlj_find_directly_reachable_regions, remove_eh_handler,
3105         reachable_next_level, foreach_reachable_handler,
3106         can_throw_internal_1, can_throw_external_1,
3107         collect_one_action_chain): Likewise.
3108         * expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise.
3109         * fold-const.c (twoval_comparison_p, eval_subst): Likewise.
3110         * function.c (update_temp_slot_address, instantiate_new_reg,
3111         instantiate_virtual_regs_in_rtx,
3112         instantiate_virtual_regs_in_insn): Likewise.
3113         * gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise.
3114         * gimplify.c (gimplify_call_expr, gimplify_init_constructor,
3115         gimplify_cleanup_point_expr): Likewise.
3116         * ipa-cp.c (ipcp_lattice_changed): Likewise.
3117         * passes.c (next_pass_1): Likewise.
3118         * print-tree.c (print_node_brief, print_node): Likewise.
3119         * profile.c (branch_prob): Likewise.
3120         * tree-dump.c (dump_register): Likewise.
3121         * tree-eh.c (replace_goto_queue_cond_clause, lower_catch):
3122         Likewise.
3123         * tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks,
3124         copy_statement_list, remap_gimple_op_r, copy_tree_body_r,
3125         copy_edges_for_bb, copy_cfg_body, copy_tree_r,
3126         copy_arguments_for_versioning, copy_static_chain): Likewise.
3127         * tree-into-ssa.c (names_replaced_by, add_to_repl_tbl,
3128         add_new_name_mapping, register_new_name_mapping): Likewise.
3129         * tree-mudflap.c (mf_xform_derefs): Likewise.
3130         * tree-predcom.c (struct chain, dump_chain, replace_ref_with,
3131         get_init_expr, combine_chains): Likewise.
3132         * tree-pretty-print.c (dump_generic_node): Likewise.
3133         * tree-ssa-structalias.c (create_variable_info_for): Likewise.
3134         * tree-vrp.c (simplify_cond_using_ranges): Likewise.
3135         * tree.c (substitute_in_expr, iterative_hash_expr): Likewise.
3136         * value-prof.c (gimple_duplicate_stmt_histograms): Likewise.
3137
3138 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
3139
3140         PR middle-end/37010
3141         * calls.c (expand_call): Use the biggest preferred stack
3142         boundary.
3143
3144 2008-08-06  Michael Matz  <matz@suse.de>
3145
3146         PR target/36613
3147         * reload.c (push_reload): Merge in,out,in_reg,out_reg members
3148         for reused reload, instead of overwriting them.
3149
3150 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
3151
3152         PR middle-end/37009
3153         * cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary
3154         for incoming stack boundary.
3155
3156         * function.c (assign_parm_find_entry_rtl): Update
3157         parm_stack_boundary.
3158
3159         * function.h (rtl_data): Add parm_stack_boundary.
3160
3161         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Check
3162         parm_stack_boundary for incoming stack boundary.
3163
3164 2008-08-06  Joseph Myers  <joseph@codesourcery.com>
3165
3166         * jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset
3167         for unrepresentable subregs or treat them as equal to other regs
3168         or subregs with the same register number.
3169
3170 2008-08-06  Aldy Hernandez  <aldyh@redhat.com>
3171
3172         PR middle-end/35432
3173         * gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types
3174         if want_value.
3175
3176 2008-08-06  Jan Hubicka  <jh@suse.cz>
3177
3178         * predict.c (maybe_hot_frequency_p): When profile is absent, all
3179         frequencies might be hot.
3180
3181 2008-08-06  Andreas Krebbel  <krebbel1@de.ibm.com>
3182
3183         * reload.c (find_reloads): Force constants into literal pool
3184         also if they are wrapped in a SUBREG.
3185
3186 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3187
3188         PR target/35659
3189         * haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ...
3190         * sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here.
3191         Don't allow predicated instructions for data speculation.
3192         * sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move
3193         declaration.
3194
3195 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3196
3197         * haifa-sched.c (extend_global): Split to extend_global_data and
3198         extend_region_data.  Update all uses.
3199         (extend_all): Rename to extend_block_data.
3200
3201 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3202
3203         * sched-rgn.c (new_ready): Check if instruction can be
3204         speculatively scheduled before attempting speculation.
3205         (debug_rgn_dependencies): Remove wrongful assert.
3206
3207 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
3208
3209         * config/xtensa/t-xtensa: Remove dependency for gt-xtensa.h.
3210         
3211 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
3212         
3213         * config/xtensa/xtensa.c (xtensa_va_start): Unshare valist.
3214         (xtensa_gimplify_va_arg_expr): Unshare valist, orig_ndx, ndx, array,
3215         va_size, and type_size.
3216         
3217 2008-08-04  Jason Merrill  <jason@redhat.com>
3218
3219         PR c++/37016
3220         * tree-ssa.c (useless_type_conversion_p_1): Call langhook
3221         if TYPE_STRUCTURAL_EQUALITY_P is true for both types.
3222
3223 2008-08-05  Richard Henderson  <rth@redhat.com>
3224
3225         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Check .cfi_personality.
3226         * configure: Rebuild.
3227
3228 2008-08-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3229
3230         PR tree-opt/37024
3231         * tree-tailcall.c (process_assignment): Use gimple_assign_cast_p
3232         instead of IS_CONVERT_EXPR_CODE_P for seeing if the assignment
3233         is a conversion.
3234
3235 2008-08-05  Richard Henderson  <rth@redhat.com>
3236
3237         * Makefile.in (c-cppbuiltin.o): Depend on debug.h.
3238         * c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM.
3239         * doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it.
3240         * common.opt (fdwarf2-cfi-asm): New.
3241         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): New.
3242         * config.in, configure: Rebuild.
3243         * dwarf2asm.c (dw2_asm_output_data_raw): New.
3244         (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw): New.
3245         (dw2_force_const_mem): Externalize.
3246         * dwarf2asm.h: Update.
3247         * dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't
3248         generate a real label.
3249         (output_cfi_directive): New.
3250         (add_fde_cfi): If flag_dwarf2_cfi_asm, use it.
3251         (output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm.
3252         (dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality,
3253         and .cfi_lsda.
3254         (dwarf2out_end_epilogue): Emit .cfi_endproc.
3255         (output_loc_operands_raw, output_loc_sequence_raw): New.
3256         (output_cfa_loc_raw): New.
3257         
3258 2008-08-05  Paul Brook  <paul@codesourcery.com>
3259
3260         * doc/invoke.texi: Document new ARM -mfpu= and -mcpu= options.
3261         * config/arm/arm.c (all_fpus): Add vfpv3 and vfpv3-d16.
3262         (fp_model_for_fpu): Add entry for FPUTYPE_VFP3D16.
3263         (arm_file_start): Add FPUTYPE_VFP3D16.  Rename vfp3 to vfpv3.
3264         * config/arm/arm.h (TARGET_VFPD32): Define.
3265         (TARGET_VFP3): Use TARGET_VFPD32.
3266         (fputype): Add FPUTYPE_VFP3D16.
3267         (LAST_VFP_REGNUM): Use TARGET_VFPD32.
3268         * config/arm/constraints.md ("w"): Use TARGET_VFPD32.
3269         * config/arm/arm-cores.def: Add cortex-r4f.
3270         * config/arm/arm-tune.md: Regenerate.
3271
3272 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3273
3274         * config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus.
3275         Reword some comments throughout the file.
3276
3277         (MFC_MIN_DMA_LIST_ELEMENTS): New define.
3278         (MFC_MAX_DMA_LIST_ELEMENTS): Likewise.
3279         (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of MFC_MIN_DMA_LIST_ELEMENTS.
3280         (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of MFC_MAX_DMA_LIST_ELEMENTS.
3281
3282         (MFC_START_ENABLE): Remove PPU-only define.
3283         (MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise.
3284         (MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise.
3285
3286         (MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants.
3287         (MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise.
3288         (MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise.
3289         (MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise.
3290         (MFC_GETB_CMD, MFC_GETF_CMD): Likewise.
3291         (MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise.
3292         (MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise.
3293
3294         (MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines.
3295         (MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise.
3296         (mfc_sdcrt, mfc_sdcrtst): Likewise.
3297         (mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise.
3298
3299         (spu_read_machine_status): Fix typo.
3300
3301 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3302
3303         * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized
3304         SUBREG of multi-word hard register.
3305         * config/spu/spu.c (valid_subreg): Likewise.
3306         (adjust_operand): Handle SUBREGs of multi-word hard registers.
3307
3308 2008-08-04  Richard Guenther  <rguenther@suse.de>
3309
3310         * tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add
3311         the candidate with the stripped base if that base is different
3312         from the original base even for offset zero.
3313
3314 2008-08-04  Richard Guenther  <rguenther@suse.de>
3315
3316         PR middle-end/36691
3317         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly
3318         check for no_overflow.
3319
3320 2008-08-04  Richard Guenther  <rguenther@suse.de>
3321
3322         * tree-vect-transform.c (vectorizable_call): Fix tuplification.
3323
3324 2008-08-04  Paul Brook  <paul@codesourcery.com>
3325
3326         * cofig/arm/arm.c (thumb_core_reg_alloc_order): New.
3327         (arm_order_regs_for_local_alloc): New function.
3328         * config/arm/arm-protos.h (arm_order_regs_for_local_alloc): Add
3329         prototype.
3330         * config/arm/arm.h (ORDER_REGS_FOR_LOCAL_ALLOC): Define.
3331
3332 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
3333
3334         PR target/37012
3335         * config/i386/i386.c (ix86_expand_prologue): Use UNITS_PER_WORD
3336         instead of STACK_BOUNDARY / BITS_PER_UNIT to align stack.
3337         (ix86_expand_epilogue): Likewise.
3338
3339 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
3340
3341         * config/i386/i386.c (ix86_compute_frame_layout): Fix a typo
3342         in comments.
3343
3344 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
3345
3346         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x
3347         to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES.
3348         (*movv2sf_internal_rex64): Ditto.
3349
3350 2008-08-03  Jan Hubicka  <jh@suse.cz>
3351
3352         * optabs.c (expand_binop, expand_builtin_pow, expand_builtin_powi,
3353         expand_builtin_strcat): Upse optimize_insn_for_speed predicate.
3354         * expmed.c (expand_smod_pow2): Likewise.
3355
3356 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
3357
3358         PR target/36992
3359         * config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
3360         alternative 0 of operand 1.
3361         (*vec_concatv2di_rex64_sse): Ditto.
3362         (*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
3363         of operand 1.
3364         (*sse2_storeq_rex64): Penalize allocation of "r" registers.
3365         * config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation
3366         of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
3367         (*movv2sf_internal_rex64): Ditto.
3368
3369 2008-08-02  Richard Guenther  <rguenther@suse.de>
3370
3371         PR target/35252
3372         * config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators.
3373         (ssedoublesizemode): New mode attribute.
3374         (sse_shufps): Call gen_sse_shufps_v4sf.
3375         (sse_shufps_1): Macroize.
3376         (sse2_shufpd): Call gen_Sse_shufpd_v2df.
3377         (sse2_shufpd_1): Macroize.
3378         (vec_extract_odd, vec_extract_even): New expanders.
3379         (vec_interleave_highv4sf, vec_interleave_lowv4sf,
3380         vec_interleave_highv2df, vec_interleave_lowv2df): Likewise.
3381         * i386.c (ix86_expand_vector_init_one_nonzero): Call
3382         gen_sse_shufps_v4sf instead of gen_sse_shufps_1.
3383         (ix86_expand_vector_set): Likewise.
3384         (ix86_expand_reduc_v4sf): Likewise.
3385
3386 2008-08-01  Doug Kwan  <dougkwan@google.com>
3387
3388         * matrix-reorg.c: Re-enable all code.
3389         (struct malloc_call_data): Change CALL_STMT to gimple type.
3390         (collect_data_for_malloc_call): Tuplify.
3391         (struct access_site_info): Change STMT to gimple type.
3392         (struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT,
3393         and MALLOC_FOR_LEVEL to gimple and gimple pointer type.
3394         (struct free_info): Change STMT to gimple type.
3395         (struct matrix_access_phi_node):  Change PHI to gimple type.
3396         (get_inner_of_cast_expr): Remove.
3397         (may_flatten_matrices_1): Tuplify.
3398         (may_flatten_matrices): Ditto.
3399         (mark_min_matrix_escape_level): Ditto.
3400         (ssa_accessed_in_tree): Refactor statement RHS related code into ...
3401         (ssa_accessed_in_call_rhs): New
3402         (ssa_accessed_in_assign_rhs): New
3403         (record_access_alloc_site_info): Tuplify.
3404         (add_allocation_site): Ditto.
3405         (analyze_matrix_allocation_site): Ditto.
3406         (analyze_transpose): Ditto.
3407         (get_index_from_offset): Ditto.
3408         (update_type_size): Ditto.
3409         (analyze_accesses_for_call_expr): Tuplify and renamed into ...
3410         (analyze_accesses_for_call_stmt): New. Also handle LHS of a call.
3411         (analyze_accesses_for_phi_node): Tuplify.
3412         (analyze_accesses_for_modify_stmt): Tuplify and renamed into ...
3413         (analyze_accesses_for_assign_stmt): Remove code for handling call LHS.
3414         (analyze_matrix_accesses): Tuplify.
3415         (check_var_data): New call-back type for check_var_notmodified_p.
3416         (check_var_notmodified_p): Tuplify and use call-back struct to
3417         return statement found.
3418         (can_calculate_expr_before_stmt): Factor out statement related code
3419         into ...
3420         (can_calculate_stmt_before_stmt): New.
3421         (check_allocation_function): Tuplify.
3422         (find_sites_in_func): Ditto.
3423         (record_all_accesses_in_func): Ditto.
3424         (transform_access_sites): Ditto.
3425         (transform_allocation_sites): Ditto.
3426         (matrix_reorg): Re-enable.
3427         (gate_matrix_reorg): Re-enable.
3428
3429 2008-08-01  Jakub Jelinek  <jakub@redhat.com>
3430
3431         * dwarf2out.c (compute_barrier_args_size): Set barrier_args_size
3432         for labels for which it hasn't been set yet.  If it has been set,
3433         stop walking insns and continue with next worklist item.
3434         (dwarf2out_stack_adjust): Don't call compute_barrier_args_size
3435         if the only BARRIER is at the very end of a function.
3436
3437 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
3438
3439         * cfgexpand.c (expand_stack_alignment): Assert that
3440         stack_realign_drap and drap_rtx must match.
3441
3442         * function.c (instantiate_new_reg): If DRAP is used to realign
3443         stack, replace virtual_incoming_args_rtx with internal arg
3444         pointer.
3445
3446 2008-08-01  Richard Guenther  <rguenther@suse.de>
3447
3448         * tree-ssa-pre.c (fini_pre): Take in_fre parameter.  Free
3449         loop information only if we initialized it.
3450         (execute_pre): Call fini_pre with in_fre.
3451         * tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump
3452         if we do not unroll because we hit max-completely-peeled-insns.
3453         Use our estimation for consistency, do allow shrinking.
3454
3455 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
3456
3457         * config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY
3458         with MIN_STACK_BOUNDARY.
3459         (ix86_update_stack_boundary): Likewise.
3460         (ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of
3461         STACK_BOUNDARY.
3462
3463         * config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ...
3464         (MIN_STACK_BOUNDARY): This.
3465
3466 2008-08-01  Richard Guenther  <rguenther@suse.de>
3467
3468         PR middle-end/36997
3469         * gimplify.c (gimplify_call_expr): Set error_mark_node on GS_ERROR.
3470
3471 2008-08-01  Richard Guenther  <rguenther@suse.de>
3472
3473         PR tree-optimization/36988
3474         * tree-ssa-ccp.c (ccp_fold): Conversions of constants only
3475         do not matter if that doesn't change volatile qualification.
3476
3477 2008-08-01  Paolo Bonzini  <bonzini@gnu.org>
3478
3479         * configure.ac: Do not generate libada-mk.  Do not subst
3480         host_cc_for_libada.
3481         * libada-mk.in: Remove.
3482         * Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars.
3483         * configure: Regenerate.
3484
3485 2008-08-01  Basile Starynkevitch  <basile@starynkevitch.net>
3486
3487         * tree-pass.h: Added comment about not dumping passes with name
3488         starting with star in struct opt_pass.
3489         * passes.c (register_dump_files_1): Don't do dump for a pass with
3490         name starting with star.
3491         * doc/passes.texi (Pass manager): Mention pass names and special
3492         meaning of star prefix to avoid dump.
3493
3494 2008-07-31  Adam Nemet  <anemet@caviumnetworks.com>
3495
3496         * config.gcc (mipsisa64r2*-*-linux*): New configuration.  Set ISA
3497         to MIPS64r2.
3498         * config/mips/mips.h (GENERATE_MIPS16E): Update comment.
3499         (ISA_MIPS64R2): New macro.
3500         (TARGET_CPU_CPP_BUILTINS, MULTILIB_ISA_DEFAULT): Handle it.
3501         (ISA_HAS_64BIT_REGS, ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE,
3502         ISA_HAS_8CC, ISA_HAS_FP4, ISA_HAS_PAIRED_SINGLE,
3503         ISA_HAS_MADD_MSUB, ISA_HAS_NMADD4_NMSUB4, ISA_HAS_CLZ_CLO,
3504         ISA_HAS_ROR, ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX, ISA_HAS_SEB_SEH,
3505         ISA_HAS_EXT_INS, ISA_HAS_MXHC1, ISA_HAS_HILO_INTERLOCKS,
3506         ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Return true for ISA_MIPS64R2.
3507         (MIPS_ISA_LEVEL_SPEC, ASM_SPEC, LINK_SPEC): Handle -mips64r2.
3508         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF):
3509         Move up to keep list alphabetically sorted.
3510         (TUNE_20KC, TUNE_24K, TUNE_74K, TUNE_LOONGSON_2EF): Likewise.
3511         * config/mips/mips.c (mips_cpu_info_table): Add default MIPS64r2
3512         processor.
3513         * doc/invoke.texi (MIPS Options): Add -mips64r2.
3514         (-march=@var{arch}): Add mips64r2.
3515
3516 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
3517
3518         * config/i386/darwin.h (MAIN_STACK_BOUNDARY): Define to 128.
3519
3520 2008-07-31  Steve Ellcey  <sje@cup.hp.com>
3521
3522         * expr.c (expand_assignment): Check for complete type.
3523
3524 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
3525
3526         PR debug/36977
3527         * cfgexpand.c (expand_stack_alignment): Set stack_realign_tried.
3528
3529         * dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried
3530         for stack alignment.
3531
3532         * function.h (rtl_data): Add stack_realign_tried.  Update comments.
3533
3534 2008-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
3535
3536         * config/sh/sh.c (sh_canonical_va_list_type): Remove.
3537         (TARGET_CANONICAL_VA_LIST_TYPE): Remove.
3538
3539 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
3540
3541         PR rtl-optimization/36419
3542         * dwarf2out.c (barrier_args_size): New variable.
3543         (compute_barrier_args_size, compute_barrier_args_size_1): New
3544         functions.
3545         (dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size
3546         if not called yet in the current function, use barrier_args_size
3547         array to find the new args_size value.
3548         (dwarf2out_frame_debug): Free and clear barrier_args_size.
3549
3550 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
3551
3552         PR debug/36980
3553         * dwarf2out.c (dwarf2out_frame_debug_expr): Move rule 17 before
3554         rule 19.
3555
3556 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
3557
3558         PR debug/36976
3559         * dwarf2out.c (dwarf2out_args_size_adjust): New.
3560         (dwarf2out_stack_adjust): Use it.
3561         (dwarf2out_frame_debug_expr): Likewise.
3562
3563 2008-07-31  Richard Guenther  <rguenther@suse.de>
3564
3565         PR tree-optimization/36978
3566         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Do not fold
3567         the generated condition.
3568
3569 2008-07-31  Richard Guenther  <rguenther@suse.de>
3570
3571         * passes.c (init_optimization_passes): Always call
3572         pass_early_warn_uninitialized.
3573         * opts.c (decode_options): Do not warn about -Wuninitialized at -O0.
3574         * doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0.
3575         * doc/passes.texi (Warn for uninitialized variables): Adjust.
3576
3577 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
3578
3579         PR c/36970
3580         * builtins.c (maybe_emit_free_warning): New function.
3581         (expand_builtin): Process BUILT_IN_FREE even at -O0.  Call
3582         maybe_emit_free_warning for BUILT_IN_FREE.
3583
3584         PR debug/36278
3585         * dwarf2out.c (get_context_die): New function.
3586         (force_decl_die, force_type_die): Use it.
3587         (dwarf2out_imported_module_or_decl): Likewise.  If base_type_die
3588         returns NULL, force generation of DW_TAG_typedef and put that into
3589         DW_AT_import.
3590
3591         PR preprocessor/36649
3592         * c-pch.c (c_common_read_pch): Save and restore
3593         line_table->trace_includes across PCH restore.
3594
3595 2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>
3596
3597         PR ada/36554
3598         * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.
3599
3600 2008-07-30  Rafael Avila de Espindola  <espindola@google.com>
3601
3602         PR 36974
3603         * final.c (call_from_call_insn): Handle COND_EXEC.
3604
3605 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
3606
3607         * builtins.c (std_gimplify_va_arg_expr): Replace
3608         PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT.
3609         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
3610
3611 2008-07-30  Joey Ye  <joey.ye@intel.com>
3612             H.J. Lu  <hongjiu.lu@intel.com>
3613
3614         * builtins.c (expand_builtin_setjmp_receiver): Replace
3615         virtual_incoming_args_rtx with crtl->args.internal_arg_pointer.
3616         (expand_builtin_apply_args_1): Likewise.
3617         (expand_builtin_longjmp): Need DRAP for stack alignment.
3618         (expand_builtin_apply): Likewise.
3619
3620         * caller-save.c (setup_save_areas): Call assign_stack_local_1
3621         instead of assign_stack_local to allow alignment reduction.
3622
3623         * calls.c (emit_call_1): Need DRAP for stack alignment if
3624         return pops.
3625         (expand_call): Replace virtual_incoming_args_rtx with
3626         crtl->args.internal_arg_pointer.
3627         * stmt.c (expand_nl_goto_receiver): Likewise.
3628
3629         * cfgexpand.c (get_decl_align_unit): Estimate stack variable
3630         alignment and store to stack_alignment_estimated and
3631         max_used_stack_slot_alignment.
3632         (expand_one_var): Likewise.
3633         (expand_stack_alignment): New function.
3634         (tree_expand_cfg): Initialize max_used_stack_slot_alignment
3635         and stack_alignment_estimated fields in rtl_data.  Call
3636         expand_stack_alignment at end.
3637
3638         * defaults.h (INCOMING_STACK_BOUNDARY): New.
3639         (MAX_STACK_ALIGNMENT): Likewise.
3640         (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise.
3641         (SUPPORTS_STACK_ALIGNMENT): Likewise.
3642
3643         * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for
3644         stack alignment when generating virtual registers.
3645
3646         * function.c (assign_stack_local): Renamed to ...
3647         (assign_stack_local_1): This.  Add a parameter to indicate
3648         if it is OK to reduce alignment.
3649         (assign_stack_local): Use it.
3650         (instantiate_new_reg): Instantiate virtual incoming args rtx
3651         to vDRAP if stack realignment and DRAP is needed.
3652         (assign_parms): Collect parameter/return type alignment and
3653         contribute to stack_alignment_estimated.
3654         (locate_and_pad_parm): Likewise.
3655         (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx
3656         with crtl->args.internal_arg_pointer.
3657
3658         * function.h (rtl_data): Add new field drap_reg,
3659         max_used_stack_slot_alignment, stack_alignment_estimated,
3660         stack_realign_needed, need_drap, stack_realign_processed and
3661         stack_realign_finalized.
3662         (stack_realign_fp): New macro.
3663         (stack_realign_drap): Likewise.
3664
3665         * global.c (compute_regsets): Frame pointer is needed when
3666         stack is realigned.  Can eliminate frame pointer when stack is
3667         realigned and dynamic realigned argument pointer isn't used.
3668
3669         * reload1.c (update_eliminables):  Frame pointer is needed
3670         when stack is realigned.
3671         (init_elim_table): Can eliminate frame pointer when stack is
3672         realigned and dynamic realigned argument pointer isn't used.
3673
3674         * rtl.h (assign_stack_local_1): Declare new funtion.
3675
3676         * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New.
3677         (TARGET_GET_DRAP_RTX): Likewise.
3678         (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and
3679         TARGET_GET_DRAP_RTX.
3680
3681         * target.h (gcc_target): Add update_stack_boundary and get_drap_rtx.
3682
3683         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
3684         STACK_BOUNDARY with MAX_STACK_ALIGNMENT.
3685
3686 2008-07-30  Xuepeng Guo  <xuepeng.guo@intel.com>
3687             H.J. Lu  <hongjiu.lu@intel.com>
3688
3689         * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg,
3690         vdrap_reg, stack_realign and drap_reg_saved.
3691         (add_cfi): Don't allow redefining CFA when DRAP is used.
3692         (reg_save): Handle stack alignment.
3693         (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack
3694         alignment.  Don't generate DWARF information for (set fp sp)
3695         when DRAP is used.
3696         (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg
3697         to INVALID_REGNUM.
3698         (int_loc_descriptor): Move prototype forward.  Also define if
3699         DWARF2_UNWIND_INFO is true.
3700         (output_cfa_loc): Handle DW_CFA_expression.
3701         (build_cfa_aligned_loc): New.
3702         (based_loc_descr): Update assert for stack realign.  For local
3703         variables, use sp+offset when stack is aligned without drap and
3704         fp+offset when stack is aligned with drap.  For arguments, use
3705         cfa+offset when drap is used to align stack.
3706
3707 2008-07-30  Joey Ye  <joey.ye@intel.com>
3708             H.J. Lu  <hongjiu.lu@intel.com>
3709
3710         * config/i386/i386.c (ix86_force_align_arg_pointer_string):
3711         Break long line.
3712         (ix86_gen_andsp): New.
3713         (ix86_user_incoming_stack_boundary): Likewise.
3714         (ix86_default_incoming_stack_boundary): Likewise.
3715         (ix86_incoming_stack_boundary): Likewise.
3716         (ix86_can_eliminate): Likewise.
3717         (find_drap_reg): Likewise.
3718         (ix86_update_stack_boundary): Likewise.
3719         (ix86_get_drap_rtx): Likewise.
3720         (ix86_finalize_stack_realign_flags): Likewise.
3721         (TARGET_UPDATE_STACK_BOUNDARY): Likewise.
3722         (TARGET_GET_DRAP_RTX): Likewise.
3723         (override_options): Overide option value for new options.
3724         (ix86_function_ok_for_sibcall): Remove check for
3725         force_align_arg_pointer.
3726         (ix86_handle_cconv_attribute): Likewise.
3727         (ix86_function_regparm): Likewise.
3728         (setup_incoming_varargs_64): Don't set stack_alignment_needed here.
3729         (ix86_va_start): Replace virtual_incoming_args_rtx with
3730         crtl->args.internal_arg_pointer.
3731         (ix86_select_alt_pic_regnum): Check DRAP register.
3732         (ix86_save_reg): Replace force_align_arg_pointer with drap_reg.
3733         (ix86_compute_frame_layout): Compute frame layout wrt stack
3734         realignment.
3735         (ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx.
3736         (ix86_expand_prologue): Decide if stack realignment is needed
3737         and generate prologue code accordingly.
3738         (ix86_expand_epilogue): Generate epilogue code wrt stack
3739         realignment is really needed or not.
3740         
3741         * config/i386/i386.h (MAIN_STACK_BOUNDARY): New.
3742         (ABI_STACK_BOUNDARY): Likewise.
3743         (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise.
3744         (STACK_REALIGN_DEFAULT): Likewise.
3745         (INCOMING_STACK_BOUNDARY): Likewise.
3746         (MAX_STACK_ALIGNMENT): Likewise.
3747         (ix86_incoming_stack_boundary): Likewise.
3748         (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed.
3749         (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG.
3750         (CAN_ELIMINATE): Defined with ix86_can_eliminate.
3751         (machine_function): Remove force_align_arg_pointer.
3752
3753         * config/i386/i386.md (BX_REG): New.
3754         (R13_REG): Likewise.
3755
3756         * config/i386/i386.opt (mforce_drap): New.
3757         (mincoming-stack-boundary): Likewise.
3758         (mstackrealign): Add Init(-1).
3759
3760         * config/i386/i386-protos.h (ix86_can_eliminate): New
3761
3762 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
3763
3764         * doc/extend.texi: Update force_align_arg_pointer.
3765
3766         * doc/invoke.texi: Document -mincoming-stack-boundary.  Update
3767         -mstackrealign.
3768
3769         * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro.
3770         (INCOMING_STACK_BOUNDARY): Likewise.
3771         (TARGET_UPDATE_STACK_BOUNDARY): New target hook.
3772         (TARGET_GET_DRAP_RTX): Likewise.
3773
3774 2008-07-30  Andreas Schwab  <schwab@suse.de>
3775
3776         PR rtl-optimization/36929
3777         * dse.c (replace_inc_dec): Use emit_insn_before instead of
3778         add_insn_before and fix argument order.
3779         (replace_inc_dec_mem): Handle NULL rtx.
3780
3781 2008-07-30  Andrew Jenner  <andrew@codesourcery.com>
3782
3783         * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
3784         function.
3785         (arm_compute_initial_elimination_offset): Use it.
3786         (arm_compute_save_reg_mask): Include static chain save slot when
3787         calculating alignment.
3788         (arm_get_frame_offsets): Ditto.
3789         (thumb1_compute_save_reg_mask): Ensure we have a low register saved
3790         that we can use to decrement the stack when the stack decrement
3791         could be too big for an immediate value in a single insn.
3792         (thumb1_expand_prologue): Avoid using r12 for stack decrement.
3793
3794 2008-07-30  Richard Guenther  <rguenther@suse.de>
3795
3796         PR tree-optimization/36967
3797         * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p.
3798         Release defs of statements we remove.
3799
3800 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
3801
3802         * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
3803         instead of NULL_RTVEC.
3804
3805 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
3806
3807         PR target/35866
3808
3809         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
3810         vector modes.
3811
3812 2008-07-30  Rafael Avila de Espindola  <espindola@google.com>
3813
3814         * final.c (call_from_call_insn): New.
3815         (final_scan_insn): Call assemble_external on FUNCTION_DECLs.
3816
3817 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
3818
3819         * configure.ac: Substitute ADA_CFLAGS.
3820         * configure: Regenerate.
3821         * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files.
3822         * Makefile.in: Remove mention of X_* variables.
3823         * config/pa/x-ada-hpux10: Remove.
3824         * config/pa/x-ada: Remove.
3825
3826         * doc/fragments.texi: Update.
3827
3828 2008-07-30  Olivier Hainque  <hainque@adacore.com>
3829
3830         * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
3831         * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
3832         __dso_handle explicitly here.
3833
3834 2008-07-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3835
3836         PR 34389
3837         * c-typeck.c (build_binary_op): Encapsulate code into...
3838         * c-common.c (shorten_binary_op): ...this new function.
3839         (conversion_warning): Use the new function. Handle non-negative
3840         constant in bitwise-and.
3841         * c-common.h (shorten_binary_op): Declare.
3842
3843 2008-07-30  Olivier Hainque  <hainque@adacore.com>
3844
3845         * scan.c (make_sstring_space): Add explicit conversions of
3846         allocator's return value.
3847         * fix-header.c (recognized_function): Likewise.
3848
3849 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3850
3851         * doc/cpp.texi: Update to GFDL 1.2.
3852         * doc/gcc.texi: Do not list GPL as Invariant Section.
3853         * doc/gccint.texi: Likewise.  Update copyright years.
3854         * doc/install.texi: Update copyright years.
3855
3856 2008-07-30  Alan Modra  <amodra@bigpond.net.au>
3857
3858         PR target/36955
3859         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
3860         a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.
3861
3862 2008-07-29  Jan Hubicka  <jh@suse.cz>
3863
3864         * c-decl.c (merge_decls): Do not handle DECL_INLINE.
3865         (grokdeclarator): Likewise.
3866         * langhooks.c (lhd_warn_unused_global_decl): Use
3867         DECL_DECLARED_INLINE_P.
3868         * print-tree.c (print_node): Remove DECL_INLINE check.
3869
3870 2008-07-29  Richard Guenther  <rguenther@suse.de>
3871
3872         PR tree-optimization/36945
3873         * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
3874         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
3875         Record invariant addresses un-decomposed.
3876         (copy_reference_ops_from_call): Record reference call
3877         arguments properly.  Simplify.
3878         * tree-ssa-pre.c (create_component_ref_by_pieces_1): New
3879         helper split out from ...
3880         (create_component_ref_by_pieces): ... here.  Simplify.
3881         Prepare for recursive invocation for call arguments.
3882         (create_expression_by_pieces): Adjust call to
3883         create_component_ref_by_pieces.
3884         (compute_avail): Process operand 2 of reference ops.
3885
3886 2008-07-29  Richard Guenther  <rguenther@suse.de>
3887
3888         * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for OBJ_TYPE_REF.
3889
3890 2008-07-29  Jakub Jelinek  <jakub@redhat.com>
3891
3892         * c-format.c (check_format_types): Revert unwanted checkin.
3893
3894 2008-07-29  Jan Hubicka  <jh@suse.cz>
3895
3896         * flags.h (flag_really_no_inline): Remove.
3897         * cgraph.c (cgraph_function_possibly_inlined_p): Simplify.
3898         * toplev.c (flag_really_no_inline): Remove.
3899         * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline.
3900         * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline.
3901         (cgraph_decide_inlining_incrementally): Likewise.
3902         (compute_inline_parameters): Likewise.
3903         * opts.c (decode_options): Simplify.
3904         * c-opts.c (c_common_post_options): Do not set flag_no_inline.
3905         * common.opt (finline): Initialize to 1.
3906         * tree-inline.c (inlinable_function_p): Check flag_no_inline.
3907
3908 2008-07-29  Jan Hubicka  <jh@suse.cz>
3909
3910         * predict.c (always_optimize_for_size_p): New function.
3911         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
3912         optimize_edge_for_size_p, optimize_edge_for_speed_p,
3913         optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
3914         functions.
3915         (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
3916         * function.c (prepare_function_start): Set default profile.
3917         * function.h (rtl_data): Add maybe_hot_insn_p.
3918         * cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
3919         (construct_exit_block): Likewise.
3920         (tree_expand_cfg): Likewise.
3921         * basic-block.h
3922         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
3923         optimize_edge_for_size_p, optimize_edge_for_speed_p,
3924         optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
3925         (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
3926         Declare.
3927
3928 2008-07-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3929
3930         PR 34985
3931         * c-decl.c (merge_decls): Merge USED flags.
3932
3933 2008-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
3934
3935         * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
3936         valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit,
3937         next_stack, lab_false and lab_over trees.
3938
3939 2008-07-28  Richard Guenther  <rguenther@suse.de>
3940
3941         PR tree-optimization/36957
3942         * tree-flow.h (tree_ssa_useless_type_conversion): Remove.
3943         (useless_type_conversion_p): Remove.
3944         (types_compatible_p): Remove.
3945         * gimple.h (tree_ssa_useless_type_conversion): Declare.
3946         (useless_type_conversion_p): Declare.
3947         (types_compatible_p): Declare.
3948         (gimple_expr_type): Return the base type only if it is
3949         trivially convertible to the subtype.
3950
3951 2008-07-28  Andreas Tobler  <a.tobler@schweiz.org>
3952
3953         * configure.ac: Use the m4_do macro to concatenate the warnings into
3954         one string in ACX_PROG_CC_WARNING_OPTS,
3955         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and ACX_PROG_CC_WARNINGS_ARE_ERRORS.
3956         * configure: Regenerate.
3957
3958 2008-07-28  Richard Guenther  <rguenther@suse.de>
3959
3960         * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code.
3961         (insert_fake_stores): Remove.
3962         (realify_fake_stores): Likewise.
3963         (execute_pre): Remove dead code.
3964         * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary case.
3965         (find_func_aliases): Deal with it here instead.
3966         Re-enable gcc_unreachable call.
3967
3968 2008-07-28  Richard Guenther  <rguenther@suse.de>
3969
3970         Merge from gimple-tuples-branch.
3971
3972         * ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
3973         * gimple.def: New file.
3974         * gsstruct.def: Likewise.
3975         * gimple-iterator.c: Likewise.
3976         * gimple-pretty-print.c: Likewise.
3977         * tree-gimple.c: Removed.  Merged into ...
3978         * gimple.c: ... here.  New file.
3979         * tree-gimple.h: Removed.  Merged into ...
3980         * gimple.h: ... here.  New file.
3981
3982         * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
3983         * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
3984         --enable-checking=gimple flag.
3985         * config.in: Likewise.
3986         * configure: Regenerated.
3987
3988         * tree-ssa-operands.h: Tuplified.
3989         * tree-vrp.c: Likewise.
3990         * tree-loop-linear.c: Likewise.
3991         * tree-into-ssa.c: Likewise.
3992         * tree-ssa-loop-im.c: Likewise.
3993         * tree-dump.c: Likewise.
3994         * tree-complex.c: Likewise.
3995         * cgraphbuild.c: Likewise.
3996         * tree-ssa-threadupdate.c: Likewise.
3997         * tree-ssa-loop-niter.c: Likewise.
3998         * tree-pretty-print.c: Likewise.
3999         * tracer.c: Likewise.
4000         * gengtype.c: Likewise.
4001         * tree-loop-distribution.c: Likewise.
4002         * tree-ssa-loop-unswitch.c: Likewise.
4003         * cgraph.c: Likewise.
4004         * cgraph.h: Likewise.
4005         * tree-ssa-loop-manip.c: Likewise.
4006         * value-prof.c: Likewise.
4007         * tree-ssa-loop-ch.c: Likewise.
4008         * tree-tailcall.c: Likewise.
4009         * value-prof.h: Likewise.
4010         * tree.c: Likewise.
4011         * tree.h: Likewise.
4012         * tree-pass.h: Likewise.
4013         * ipa-cp.c: Likewise.
4014         * tree-scalar-evolution.c: Likewise.
4015         * tree-scalar-evolution.h: Likewise.
4016         * target.h: Likewise.
4017         * lambda-mat.c: Likewise.
4018         * tree-phinodes.c: Likewise.
4019         * diagnostic.h: Likewise.
4020         * builtins.c: Likewise.
4021         * tree-ssa-alias-warnings.c: Likewise.
4022         * cfghooks.c: Likewise.
4023         * fold-const.c: Likewise.
4024         * cfghooks.h: Likewise.
4025         * omp-low.c: Likewise.
4026         * tree-ssa-dse.c: Likewise.
4027         * ipa-reference.c: Likewise.
4028         * tree-ssa-uncprop.c: Likewise.
4029         * toplev.c: Likewise.
4030         * tree-gimple.c: Likewise.
4031         * tree-gimple.h: Likewise.
4032         * tree-chrec.c: Likewise.
4033         * tree-chrec.h: Likewise.
4034         * tree-ssa-sccvn.c: Likewise.
4035         * tree-ssa-sccvn.h: Likewise.
4036         * cgraphunit.c: Likewise.
4037         * tree-ssa-copyrename.c: Likewise.
4038         * tree-ssa-ccp.c: Likewise.
4039         * tree-ssa-loop-ivopts.c: Likewise.
4040         * tree-nomudflap.c: Likewise.
4041         * tree-call-cdce.c: Likewise.
4042         * ipa-pure-const.c: Likewise.
4043         * c-format.c: Likewise.
4044         * tree-stdarg.c: Likewise.
4045         * tree-ssa-math-opts.c: Likewise.
4046         * tree-ssa-dom.c: Likewise.
4047         * tree-nrv.c: Likewise.
4048         * tree-ssa-propagate.c: Likewise.
4049         * ipa-utils.c: Likewise.
4050         * tree-ssa-propagate.h: Likewise.
4051         * tree-ssa-alias.c: Likewise.
4052         * gimple-low.c: Likewise.
4053         * tree-ssa-sink.c: Likewise.
4054         * ipa-inline.c: Likewise.
4055         * c-semantics.c: Likewise.
4056         * dwarf2out.c: Likewise.
4057         * expr.c: Likewise.
4058         * tree-ssa-loop-ivcanon.c: Likewise.
4059         * predict.c: Likewise.
4060         * tree-ssa-loop.c: Likewise.
4061         * tree-parloops.c: Likewise.
4062         * tree-ssa-address.c: Likewise.
4063         * tree-ssa-ifcombine.c: Likewise.
4064         * matrix-reorg.c: Likewise.
4065         * c-decl.c: Likewise.
4066         * tree-eh.c: Likewise.
4067         * c-pretty-print.c: Likewise.
4068         * lambda-trans.c: Likewise.
4069         * function.c: Likewise.
4070         * langhooks.c: Likewise.
4071         * ebitmap.h: Likewise.
4072         * tree-vectorizer.c: Likewise.
4073         * function.h: Likewise.
4074         * langhooks.h: Likewise.
4075         * tree-vectorizer.h: Likewise.
4076         * ipa-type-escape.c: Likewise.
4077         * ipa-type-escape.h: Likewise.
4078         * domwalk.c: Likewise.
4079         * tree-if-conv.c: Likewise.
4080         * profile.c: Likewise.
4081         * domwalk.h: Likewise.
4082         * tree-data-ref.c: Likewise.
4083         * tree-data-ref.h: Likewise.
4084         * tree-flow-inline.h: Likewise.
4085         * tree-affine.c: Likewise.
4086         * tree-vect-analyze.c: Likewise.
4087         * c-typeck.c: Likewise.
4088         * gimplify.c: Likewise.
4089         * coretypes.h: Likewise.
4090         * tree-ssa-phiopt.c: Likewise.
4091         * calls.c: Likewise.
4092         * tree-ssa-coalesce.c: Likewise.
4093         * tree.def: Likewise.
4094         * tree-dfa.c: Likewise.
4095         * except.c: Likewise.
4096         * except.h: Likewise.
4097         * cfgexpand.c: Likewise.
4098         * tree-cfgcleanup.c: Likewise.
4099         * tree-ssa-pre.c: Likewise.
4100         * tree-ssa-live.c: Likewise.
4101         * tree-sra.c: Likewise.
4102         * tree-ssa-live.h: Likewise.
4103         * tree-predcom.c: Likewise.
4104         * lambda.h: Likewise.
4105         * tree-mudflap.c: Likewise.
4106         * ipa-prop.c: Likewise.
4107         * print-tree.c: Likewise.
4108         * tree-ssa-copy.c: Likewise.
4109         * ipa-prop.h: Likewise.
4110         * tree-ssa-forwprop.c: Likewise.
4111         * ggc-page.c: Likewise.
4112         * c-omp.c: Likewise.
4113         * tree-ssa-dce.c: Likewise.
4114         * tree-vect-patterns.c: Likewise.
4115         * tree-ssa-ter.c: Likewise.
4116         * tree-nested.c: Likewise.
4117         * tree-ssa.c: Likewise.
4118         * lambda-code.c: Likewise.
4119         * tree-ssa-loop-prefetch.c: Likewise.
4120         * tree-inline.c: Likewise.
4121         * tree-inline.h: Likewise.
4122         * tree-iterator.c: Likewise.
4123         * tree-optimize.c: Likewise.
4124         * tree-ssa-phiprop.c: Likewise.
4125         * tree-vect-transform.c: Likewise.
4126         * tree-object-size.c: Likewise.
4127         * tree-outof-ssa.c: Likewise.
4128         * cfgloop.c: Likewise.
4129         * system.h: Likewise.
4130         * tree-profile.c: Likewise.
4131         * cfgloop.h: Likewise.
4132         * c-gimplify.c: Likewise.
4133         * c-common.c: Likewise.
4134         * tree-vect-generic.c: Likewise.
4135         * tree-flow.h: Likewise.
4136         * c-common.h: Likewise.
4137         * basic-block.h: Likewise.
4138         * tree-ssa-structalias.c: Likewise.
4139         * tree-switch-conversion.c: Likewise.
4140         * tree-ssa-structalias.h: Likewise.
4141         * tree-cfg.c: Likewise.
4142         * passes.c: Likewise.
4143         * ipa-struct-reorg.c: Likewise.
4144         * ipa-struct-reorg.h: Likewise.
4145         * tree-ssa-reassoc.c: Likewise.
4146         * cfgrtl.c: Likewise.
4147         * varpool.c: Likewise.
4148         * stmt.c: Likewise.
4149         * tree-ssanames.c: Likewise.
4150         * tree-ssa-threadedge.c: Likewise.
4151         * langhooks-def.h: Likewise.
4152         * tree-ssa-operands.c: Likewise.
4153         * config/alpha/alpha.c: Likewise.
4154         * config/frv/frv.c: Likewise.
4155         * config/s390/s390.c: Likewise.
4156         * config/m32c/m32c.c: Likewise.
4157         * config/m32c/m32c-protos.h: Likewise.
4158         * config/spu/spu.c: Likewise.
4159         * config/sparc/sparc.c: Likewise.
4160         * config/i386/i386.c: Likewise.
4161         * config/sh/sh.c: Likewise.
4162         * config/xtensa/xtensa.c: Likewise.
4163         * config/stormy16/stormy16.c: Likewise.
4164         * config/ia64/ia64.c: Likewise.
4165         * config/rs6000/rs6000.c: Likewise.
4166         * config/pa/pa.c: Likewise.
4167         * config/mips/mips.c: Likewise.
4168
4169 2008-07-28  Simon Baldwin  <simonb@google.com>
4170
4171         * c-pragma.c (handle_pragma_message): New function.
4172         (init_pragma): Register handle_pragma_message.
4173         * doc/extend.texi (Diagnostic Pragmas): Added #pragma message
4174         documentation.
4175
4176 2008-07-27  Victor Kaplansky  <victork@il.ibm.com>
4177
4178         PR tree-optimization/35252
4179         * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
4180         REALPART_EXPR to be considered as same load operation.
4181
4182 2008-07-27  Eric Botcazou  <ebotcazou@adacore.com>
4183
4184         PR tree-optimization/36830
4185         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
4186         (expressions_equal_p): Return false if only one operand is null.
4187
4188 2008-07-26  Gerald Pfeifer  <gerald@pfeifer.com>
4189
4190         * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
4191         version requirements.
4192
4193 2008-07-26  Olivier Hainque  <hainque@adacore.com>
4194
4195         * collect2.c (symkind): New enum.  Symbol kinds we care about.
4196         (is_ctor_dtor): Return symkind instead of int.  Adjust prototype,
4197         code and head comment accordingly.
4198         (scan_prog_file): Use symkind names instead of bare integers.
4199
4200 2008-07-25  Jan Hubicka  <jh@suse.cz>
4201
4202         * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on
4203         DECL_INLINE.
4204         * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
4205         (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
4206         * dojump.c (clear_pending_stack_adjust): Likewise.
4207         * print-tree.c (print_node): Ignore DECL_INLINE.
4208         * tree-inline.c (inlinable_function_p): Likewise.
4209
4210 2008-07-25  Michael Meissner  <gnu@the-meissners.org>
4211
4212         * doc/extend.texi (hot attribute): Document that the hot attribute
4213         turns on -O3 for some ports.
4214         (cold attribute): Document that the cold attribute turns on -Os
4215         for some ports
4216
4217         * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
4218         reflect function specific option support.
4219
4220         * target.h (struct target_option_hooks): Add fields to say whether
4221         the cold attribute implies -Os and the hot attribute implies -O3.
4222
4223         * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
4224         By default, do not turn on -Os for cold functions.
4225         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
4226         not turn on -O3 for hot functions.
4227
4228         * c-common.c (handle_hot_attribute): Use target hook to determine
4229         if hot functions should enable -O3.
4230         (handle_cold_attribute): Use target hook to determine if cold
4231         functions should enable -Os.
4232
4233         * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
4234         (override_options): Move disable scheduling to
4235         optimization_options.
4236         (optimization_options): Disable scheduling here, not
4237         override_options.
4238         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
4239         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
4240
4241         * config/ia64/ia64.c (ia64_override_options): Move setting
4242         scheduling flags to ia64_optimization_options.
4243         (ia64_optimization_options): Disable scheduling options here, and
4244         not in ia64_override_options.
4245         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
4246         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
4247
4248 2008-07-25  H.J. Lu  <hongjiu.lu@intel.com>
4249
4250         PR target/36936
4251         * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
4252
4253 2008-07-25  Martin Jambor  <mjambor@suse.cz>
4254
4255         PR tree-optimization/36926
4256         * ipa-prop.c (ipa_analyze_call_uses): Call
4257         ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
4258
4259 2008-07-25  Joseph Myers  <joseph@codesourcery.com>
4260
4261         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
4262         movv2si_internal): Add mem = reg alternative.
4263
4264 2008-07-25  Andreas Tobler  <a.tobler@schweiz.org>
4265
4266         PR bootstrap/36918
4267         * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
4268         DEFAULT_PCC_STRUCT_RETURN to 127.
4269
4270 2008-07-24  Jan Hubicka  <jh@suse.cz>
4271
4272         * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
4273         (build_cgraph_edges): Likewise.
4274         * cgraph.c (cgraph_node): Do not update assembler hash.
4275         (cgraph_remove_node): Drop non-unit-at-a-time code.
4276         * tree-pass.h (pass_O0_always_inline): Remove.
4277         * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
4278         * toplev.c (process_options): Flag unit-at-a-time does not imply
4279         no section anchors.
4280         * cgraphunit.c: Update comments.
4281         (decide_is_function_needed): Drop non-unit-at-a-time mode.
4282         (cgraph_assemble_pending_functions): Remove.
4283         (cgraph_reset_node): Drop non-unit-at-a-time code.
4284         (cgraph_finalize_function): Likewise.
4285         (cgraph_analyze_function): Likewise.
4286         (cgraph_finalize_compilation_unit): Likewise.
4287         (cgraph_expand_function): Likewise.
4288         (cgraph_optimize): Likesise.
4289         (save_inline_function_body): Likewise.
4290         * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
4291         * tree-ssa-alias.c (maybe_be_aliased): Likewise.
4292         * ipa-inline.c: Update comments.
4293         (enum inlining_mode): remove INLINE_SPEED.
4294         (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
4295         (cgraph_mark_inline_edge): Likewise.
4296         (try_inline): Likewise.
4297         (cgraph_decide_inlining_incrementally): Likewise.
4298         (cgraph_gate_inlining): Remove.
4299         (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
4300         (cgraph_gate_early_inlining): Likewise.
4301         (gate_inline_passes): Remove.
4302         (pass_inline_parameters, pass_ipa_inline): Remove gates.
4303         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
4304         pass_O0_always_inline): Remove.
4305         * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
4306         * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
4307         * opts.c (no_unit_at_a_time_default): Remove.
4308         (decode_options): Remove flag_unit_at_a_time reset and warning.
4309         * opts.h (no_unit_at_a_time_default): Remove.
4310         * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
4311         early in GNU dialect.
4312         (merge_decls): Update comment; drop unit-at-a-time check.
4313         (finish_decl): Likewise.
4314         (grok_declaration): Remove flag_inline_trees code.
4315         (finish_functions): Return on function returning non-void on all
4316         statics.
4317         * ipa-tye-escape.c (gate_type_escape_vars): Remove.
4318         * cfgexpand.c (expand_one_static_var): Remove.
4319         (expand_one_var): Remove expand_one_static_var call.
4320         (expand_used_vars_for_block): Remove flag_unit_a_time check.
4321         * c-opts.c (c_common_post_options): Remove flag_inline_trees code
4322         and flag_unit_at_a-time compatibility checks.
4323         * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
4324         * tree-inline.c (flag_inline_trees): Remove.
4325         (inlinable_function_p): Don't check it.
4326         (expand_call_inline): Remove non-unit-at-a-time code.
4327         * tree-inline.h (flag_inline_trees): Remove.
4328         * tree-optimize.c (execute_early_local_optimizations): Remove
4329         unit-at-a-time checks.
4330         (tree_rest_of_compilation): Likewise.
4331         * combine.c (setup_incoming_promotions): Likewise.
4332         * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
4333         * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
4334         * passes.c (pass_inline_parameters): Update comments; remove
4335         O0_alwaysinline pass.
4336         (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
4337         (execute_one_pass): Likewise.
4338         * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
4339         (ix86_function_sseregparm): Likewise.
4340         * arm.c (arm_function_in_section_p): Likewise.
4341         * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
4342         * varpool.c: Update comments.
4343         (decide_is_variable_needed): Remove unit-at-a-time checks.
4344         (varpool_finalize_decl): Likewise.
4345
4346 2008-07-24  Kaz Kojima  <kkojima@gcc.gnu.org>
4347
4348         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
4349         to 2 instead of -1.
4350         (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal to 2.
4351
4352 2008-07-24  Kai Tietz  <kai.tietz@onevision.com>
4353
4354         * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
4355         imp symbol extension.
4356
4357         2008-07-23  Ian Lance Taylor  <iant@google.com>
4358
4359         * tree-vrp.c (infer_value_range): Ignore asm statements when
4360         looking for memory accesses for -fdelete-null-pointer-checks.
4361
4362 2008-07-24  Ben Elliston  <bje@au.ibm.com>
4363
4364         * config/spu/spu-c.c (__vector_keyword): New variable.
4365         (vector_keyword): Likewise.
4366         (spu_categorize_keyword): New function.
4367         (spu_macro_to_expand): Likewise.
4368         (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
4369         compiling an ISO C dialect.
4370
4371 2008-07-24  Ben Elliston  <bje@au.ibm.com>
4372
4373         * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
4374         conventional usage.
4375
4376 2008-07-23  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
4377
4378         * configure: Regenerate.
4379         * configure.ac: Require texinfo 4.7.
4380         * doc/install.texi: Document texinfo 4.7 requirement.
4381
4382 2008-07-23  Martin Jambor  <mjambor@suse.cz>
4383
4384         * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
4385         rather than for DECL_SAVED_TREE.
4386         * ipa-prop.c: Include diagnostic.h.
4387         (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
4388         thoroughly.
4389         (ipa_detect_param_modifications): Function rewritten from scratch.
4390         (ipa_compute_jump_functions): Changed accesses to modification flags.
4391         (ipa_free_node_params_substructures): Update flags destruction.
4392         (ipa_node_duplication_hook): Update flags duplication.
4393         (ipa_print_all_params_modified): Updated flag access.
4394         * ipa-prop.h (struct ipa_param_flags): New structure.
4395         (struct ipa_node_params): New field modification_analysis_done,
4396         modified_flags changed into param_flags.
4397         (ipa_is_ith_param_modified): Changed to use new flags.
4398         * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
4399
4400         * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
4401         ipa-cp.c and split into two functions.
4402         (ipa_print_node_jump_functions): New function.
4403         (compute_scalar_jump_functions): New function.
4404         (type_like_member_ptr_p): New function.
4405         (compute_pass_through_member_ptrs): New function.
4406         (fill_member_ptr_cst_jump_function): New function.
4407         (determine_cst_member_ptr): New function.
4408         (compute_cst_member_ptr_arguments): New function.
4409         (ipa_compute_jump_functions): Complete rewrite.
4410         * ipa-prop.h (enum jump_func_type): Make explicit that we depend
4411         on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
4412         (struct ipa_member_ptr_cst): New structure.
4413         (union jump_func_value): New field member_cst.
4414         * ipa-cp.c (ipcp_lat_is_insertable): New function.
4415         (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
4416         jump function types.
4417         (ipcp_print_all_lattices): Slight fprintf rearrangement.
4418         (ipcp_print_all_structures): Call ipa_print_all_jump_functions
4419         instead of ipcp_print_all_jump_functions.
4420         (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
4421         only for replacable scalars.
4422
4423         * doc/invoke.texi (Optimize options): Add description of
4424         -findirect-inlining.
4425         * common.opt (flag_indirect_inlining): New flag.
4426         * opts.c (decode_options): Set flag_indirect_inlining when
4427         optimize >= 3.
4428
4429         * ipa-inline.c: Include ipa-prop.h.
4430         (inline_indirect_intraprocedural_analysis): New function.
4431         (inline_generate_summary): Allocate parameter and argument info
4432         structures, call inline_indirect_intraprocedural_analysis on each
4433         node when doing indirect inlining and deallocate indirect inlining
4434         data structures in the end.
4435         * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
4436         (free_all_ipa_structures_after_iinln): New function.
4437         (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be
4438         done.
4439         * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
4440
4441         * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
4442         (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
4443         of computing the frequency separately.
4444         (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
4445         of computing the frequency separately.
4446         * ipa-cp.c (ipcp_print_all_structures): Replace a call to
4447         ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
4448         * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
4449         (ipa_get_stmt_member_ptr_load_param): New function.
4450         (ipa_is_ssa_with_stmt_def): New function.
4451         (ipa_note_param_call): New function.
4452         (ipa_analyze_call_uses): New function.
4453         (ipa_analyze_stmt_uses): New function.
4454         (ipa_analyze_params_uses): New function.
4455         (ipa_free_node_params_substructures): Also free the param_calls linked
4456         list.
4457         (ipa_node_duplication_hook): Also duplicate the param_calls linked list.
4458         (ipa_print_node_param_flags): New function.
4459         (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
4460         (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
4461         * ipa-prop.h (struct ipa_param_flags): New field called.
4462         (struct ipa_param_call_note): New structure.
4463         (struct ipa_node_params): New fields param_calls and
4464         uses_analysis_done.
4465         (ipa_is_ith_param_called): New function.
4466         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
4467         ipa_analyze_params_uses and dump parameter flags.
4468
4469         * ipa-inline.c (cgraph_decide_recursive_inlining): Call
4470         ipa_propagate_indirect_call_infos if performing indirect inlining,
4471         pass a new parameter new_edges to it.
4472         (add_new_edges_to_heap): New fucntion.
4473         (cgraph_decide_inlining_of_small_functions): New vector
4474         new_indirect_edges for newly found indirect edges , call
4475         ipa_propagate_indirect_call_infos after inlining.
4476         (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
4477         inlining if performing indirect inlining.  Call
4478         free_all_ipa_structures_after_iinln when doing so too.
4479         (inline_generate_summary): Do not call
4480         free_all_ipa_structures_after_iinln here.
4481         * ipa-prop.c (update_jump_functions_after_inlining): New function.
4482         (print_edge_addition_message): New function.
4483         (update_call_notes_after_inlining): New function.
4484         (propagate_info_to_inlined_callees): New function.
4485         (ipa_propagate_indirect_call_infos): New function.
4486         * ipa-prop.h: Include cgraph.h
4487         (struct ipa_param_call_note): Fields reordered, new field processed.
4488         * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
4489         flag indirect_call.
4490         * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
4491         rediscovered call statements.
4492         * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
4493         (dump_cgraph_node): Dump also the indirect_call flag.
4494         (cgraph_clone_edge): Copy also the indirect_call flag.
4495         * tree-inline.c (copy_bb): Do not check for fndecls from call
4496         expressions, check for edge availability when moving clones.
4497         (get_indirect_callee_fndecl): New function.
4498         (expand_call_inline): If callee declaration is not apprent from
4499         the statement, try calling get_indirect_callee_fndecl.  Do not
4500         issue warnings or call sorry when not inlinings an indirect edge.
4501         * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
4502
4503         * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
4504         bit more frandly to matching.
4505         * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
4506         * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
4507         * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
4508
4509 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
4510
4511         PR 36907
4512         * opth-gen.awk: Suppress function specific features when building
4513         target libraries.
4514         * optc-gen.awk: Ditto.
4515
4516 2008-07-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4517
4518         PR 35058
4519         * diagnostic.c (pedwarn): Add opt parameter.
4520         (pedwarn0): New.
4521         * c-tree.h (pedwarn_init): Add opt parameter.
4522         (pedwarn_c90): Likewise.
4523         (pedwarn_c99): Likewise.
4524         * c-errors.c (pedwarn_c99): Likewise.
4525         (pedwarn_c90): Likewise.
4526         * toplev.h (pedwarn): Update declaration.
4527         (pedwarn0): Declare.
4528         * c-lex.c: All calls to pedwarn changed.
4529         * builtins.c: All calls to pedwarn changed.
4530         * toplev.c: All calls to pedwarn changed.
4531         * c-decl.c: All calls to pedwarn changed.
4532         * c-typeck.c: All calls to pedwarn changed.
4533         * c-common.c: All calls to pedwarn changed.
4534         * c-parser.c: All calls to pedwarn changed.
4535
4536 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
4537             Karthik Kumar  <karthikkumar@gmail.com>
4538
4539         * attribs.c (file scope): Include c-common.h.
4540         (decl_attributes): Add support for #pragma GCC optimize and
4541         #pragma GCC option.
4542
4543         * targhooks.c (default_can_inline_p): New function that is the
4544         default for the TARGET_CAN_INLINE_P target hook.
4545
4546         * targhooks.h (default_can_inline_p): Add declaration.
4547
4548         * tree.c (cl_optimization_node): New static tree for building
4549         OPTIMIZATION_NODE tree.
4550         (cl_target_option_node): New static tree for building
4551         TARGET_OPTION_NODE tree.
4552         (cl_option_hash_table): New hash table for hashing
4553         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
4554         (cl_option_hash_hash): New function to provide the hash value for
4555         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
4556         (cl_option_hash_eq): New function to provide an equality test for
4557         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
4558         (tree_code_size): Add support for OPTIMIZATION_NODE and
4559         TARGET_OPTION_NODE trees.
4560         (tree_code_structure): Add support for OPTIMIZATION_NODE and
4561         TARGET_OPTION_NODE trees.
4562         (build_optimization_node): Build a tree that has all of the
4563         current optimization options.
4564         (build_target_option_node): Build a tree that has the target
4565         options that might be changed on a per function basis.
4566
4567         * tree.h (file scope): Include options.h.
4568         (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
4569         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
4570         (TREE_OPTIMIZATION): Ditto.
4571         (TREE_TARGET_SPECIFIC): Ditto.
4572         (struct tree_function_decl): Add fields for remembering the
4573         current optimization options and target specific options.
4574         (struct tree_optimization_option): New tree variant that remembers
4575         the optimization options.
4576         (struct tree_target_option): New tree variant that remembers the
4577         target specific flags that might change for compiling a particular
4578         function.
4579         (union tree_node): Include tree_optimization_option and
4580         tree_target_option fields.
4581         (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
4582         TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
4583         TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
4584         TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
4585         TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
4586         optimization and target options.
4587         (optimization_default_node): New macro to refer to global_trees
4588         field.
4589         (optimization_current_node): Ditto.
4590         (optimization_cold_node): Ditto.
4591         (optimization_hot_node): Ditto.
4592         (target_option_default_node): Ditto.
4593         (target_option_current_node): Ditto.
4594         (current_option_pragma): Ditto.
4595         (current_optimize_pragma): Ditto.
4596
4597         * target.h (struct gcc_target): Add valid_option_attribute_p,
4598         target_option_save, target_option_restore, target_option_print,
4599         target_option_pragma_parse, and can_inline_p hooks.
4600
4601         * toplev.h (parse_optimize_options): Add declaration.
4602         (fast_math_flags_struct_set_p): Ditto.
4603
4604         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
4605         adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
4606         optimize is used.
4607
4608         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
4609         tree_can_inline_p hook to see if one function can inline another.
4610         (cgraph_decide_inlining): Ditto.
4611         (cgraph_decide_inlining_incrementally): Ditto.
4612
4613         * opts.c (decode_options): Add support for running multiple times
4614         to allow functions with different target or optimization options
4615         than was specified on the command line.
4616         (fast_math_flags_struct_set_p): New function that is similar to
4617         fast_math_flags_set_p, except it uses the values in the
4618         cl_optimization structure instead of global variables.
4619
4620         * optc-gen.awk: Add support for TargetSave to allow a back end to
4621         declare new fields that need to be saved when using function
4622         specific options.  Include flags.h and target.h in the options.c
4623         source.  Add support for Save to indicate which options can be set
4624         for individual functions.  Generate cl_optimize_save,
4625         cl_optimize_restore, cl_optimize_print, cl_target_option_save,
4626         cl_target_option_restore, cl_target_option_print functions to
4627         allow functions to use different optimization or target options.
4628
4629         * opt-functions.awk (var_type_struct): Return the type used for
4630         storing the field in a structure.
4631
4632         * opth-gen.awk: Add support for TargetSave to allow a back end to
4633         declare new fields that need to be saved when using function
4634         specific options.  Add support for Save to indicate which options
4635         can be set for individual functions.  Only generate one extern for
4636         Mask fields.  Generate cl_optimization and cl_target_option
4637         structures to remember optimization and target options.
4638
4639         * treestruct.def (TS_OPTIMIZATION): Add support for garbage
4640         collecting new tree nodes.
4641         (TS_TARGET_OPTION): Ditto.
4642
4643         * c-decl.c (merge_decls): Merge function specific target and
4644         optimization options.
4645
4646         * function.c (invoke_set_current_function_hook): If the function
4647         uses different optimization options, change the global variables
4648         to reflect this.
4649
4650         * coretypes.h (struct cl_optimization): Add forward reference.
4651         (struct cl_target_option): Ditto.
4652
4653         * c-pragma.c (option_stack): New static vector to remember the
4654         current #pragma GCC option stack.
4655         (handle_pragma_option): New function to support #pragma GCC option
4656         to change target options.
4657         (optimize_stack): New static vector to remember the current
4658         #pragma GCC optimize stack.
4659         (handle_pragma_optimize): New function to support #pragma GCC
4660         optimize to change optimization options.
4661         (init_pragma): Add support for #pragma GCC optimize and #pragma
4662         GCC option.
4663
4664         * tree.def (OPTIMIZATION_NODE): New tree code for remembering
4665         optimization options.
4666         (TARGET_OPTION_NODE): New tree code for remembering certain target
4667         options.
4668
4669         * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
4670         TARGET_OPTION_NODE trees.
4671
4672         * common.opt (-O): Add Optimization flag.
4673         (-Os): Ditto.
4674         (-fmath-errno): Ditto.
4675         (-falign-functions): Add UInteger flag to make sure flag gets full
4676         int in cl_optimization structure.
4677         (-falign-jumps): Ditto.
4678         (-falign-labels): Ditto.
4679         (-falign-loops): Ditto.
4680         (-fsched-stalled-insns): Ditto.
4681         (-fsched-stalled-insns-dep): Ditto.
4682
4683         * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
4684         definition.
4685         (TARGET_OPTION_SAVE): Ditto.
4686         (TARGET_OPTION_RESTORE): Ditto.
4687         (TARGET_OPTION_PRINT): Ditto.
4688         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
4689         (TARGET_CAN_INLINE_P): Ditto.
4690         (TARGET_INITIALIZER): Add new hooks.
4691
4692         * tree-inline.c (tree_can_inline_p): New function to determine
4693         whether one function can inline another.  Check if the functions
4694         use compatible optimization options, and also call the backend
4695         can_inline_p hook.
4696
4697         * tree-inline.h (tree_can_inline_p): Add declaration.
4698
4699         * c-common.c (c_common_attribute): Add support for option and
4700         optimize attributes.
4701         (handle_option_attribute): Add support for the option attribute to
4702         allow the user to specify different target options for compiling a
4703         specific function.
4704         (handle_optimize_attribute): Add support for the optimize
4705         attribute to allow the user to specify different optimization
4706         options for compiling a specific function.
4707         (handle_hot_attribute): Turn on -O3 optimization for this one
4708         function if it isn't the default optimization level.
4709         (handle_cold_attribute): Turn on -Os optimization for this one
4710         function if it insn't the default optimization.
4711         (const_char_p): New const char * typedef.
4712         (optimize_args): New static vector to remember the optimization
4713         arguments.
4714         (parse_optimize_options): New function to set up the optimization
4715         arguments from either the optimize attribute or #pragma GCC optimize.
4716
4717         * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
4718         (builtin_define_std): Ditto.
4719
4720         * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
4721         Add t-i386 Makefile fragment to add i386-c.o and i386.o dependencies.
4722         (x86_64-*-*): Ditto.
4723
4724         * Makefile.in (TREE_H): Add options.h.
4725         (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
4726
4727         * doc/extend.texi (option attribute): Document new attribute.
4728         (optimize attribute): Ditto.
4729         (hot attribute): Document hot attribute sets -O3.
4730         (cold attribute): Document cold attribute sets -Os.
4731         (#pragma GCC option): Document new pragma.
4732         (#pragma GCC optimize): Ditto.
4733
4734         * doc/options.texi (TargetSave): Document TargetSave syntax.
4735         (UInteger): Document UInteger must be used for certain flags.
4736         (Save): Document Save option to create target specific options
4737         that can be saved/restored on a function specific context.
4738
4739         * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new macro.
4740         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
4741
4742         * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new hook.
4743         (TARGET_OPTION_SAVE): Ditto.
4744         (TARGET_OPTION_RESTORE): Ditto.
4745         (TARGET_OPTION_PRINT): Ditto.
4746         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
4747         (TARGET_CAN_INLINE_P): Ditto.
4748
4749         * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
4750         -mfpmath=sse,387.
4751         (-mfpmath=both): Ditto.
4752
4753 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
4754             Karthik Kumar  <karthikkumar@gmail.com>
4755
4756         * config/i386/i386.h (TARGET_ABM): Move switch into ix86_isa_flags.
4757         (TARGET_POPCNT): Ditto.
4758         (TARGET_SAHF): Ditto.
4759         (TARGET_AES): Ditto.
4760         (TARGET_PCLMUL): Ditto.
4761         (TARGET_CMPXCHG16B): Ditto.
4762         (TARGET_RECIP): Move switch into target_flags.
4763         (TARGET_FUSED_MADD): Ditto.
4764         (ix86_arch_features): Make an unsigned char type.
4765         (ix86_tune_features): Ditto.
4766         (OVERRIDE_OPTIONS): Add bool argument to override_options call.
4767         (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
4768         (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
4769
4770         * config/i386/i386.opt (arch): New TargetSave field to define
4771         fields that need to be saved for function specific option support.
4772         (tune): Ditto.
4773         (fpmath): Ditto.
4774         (branch_cost): Ditto.
4775         (ix86_isa_flags_explicit): Ditto.
4776         (tune_defaulted): Ditto.
4777         (arch_specified): Ditto.
4778         (-m128-long-double): Add Save flag to save option for target
4779         specific option support.
4780         (-m80387): Ditto.
4781         (-maccumulate-outgoing-args): Ditto.
4782         (-malign-double): Ditto.
4783         (-malign-stringops): Ditto.
4784         (-mfancy-math-387): Ditto.
4785         (-mhard-float): Ditto.
4786         (-mieee-fp): Ditto.
4787         (-minline-all-stringops): Ditto.
4788         (-minline-stringops-dynamically): Ditto.
4789         (-mms-bitfields): Ditto.
4790         (-mno-align-stringops): Ditto.
4791         (-mno-fancy-math-387): Ditto.
4792         (-mno-push-args): Ditto.
4793         (-mno-red-zone): Ditto.
4794         (-mpush-args): Ditto.
4795         (-mred-zone): Ditto.
4796         (-mrtd): Ditto.
4797         (-msseregparm): Ditto.
4798         (-mstack-arg-probe): Ditto.
4799         (-m32): Ditto.
4800         (-m64): Ditto.
4801         (-mmmx): Ditto.
4802         (-m3dnow): Ditto.
4803         (-m3dnowa): Ditto.
4804         (-msse): Ditto.
4805         (-msse2): Ditto.
4806         (-msse3): Ditto.
4807         (-msse4.1): Ditto.
4808         (-msse4.2): Ditto.
4809         (-msse4): Ditto.
4810         (-mno-sse4): Ditto.
4811         (-msse4a): Ditto.
4812         (-msse5): Ditto.
4813         (-mrecip): Move flag into target_flags.
4814         (-mcld): Ditto.
4815         (-mno-fused-madd): Ditto.
4816         (-mfused-madd): Ditto.
4817         (-mabm): Move flag into ix86_isa_flags.
4818         (-mcx16): Ditto.
4819         (-mpopcnt): Ditto.
4820         (-msahf): Ditto.
4821         (-maes): Ditto.
4822         (-mpclmul): Ditto.
4823
4824         * config/i386/i386-c.c: New file for #pragma support.
4825         (ix86_target_macros_internal): New function to #define or #undef
4826         target macros based when the user uses the #pragma GCC option to
4827         change target options.
4828         (ix86_pragma_option_parse): New function to add #pragma GCC option
4829         support.
4830         (ix86_target_macros): Move defining the target macros here from
4831         TARGET_CPU_CPP_BUILTINS in i386.h.
4832         (ix86_register_pragmas): Register the #pragma GCC option hook.  If
4833         defined, initialize any subtarget #pragmas.
4834
4835         * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
4836         REGISTER_TARGET_PRAGMAS.
4837
4838         * config/i386/t-i386: New file for x86 dependencies.
4839         (i386.o): Make dependencies mirror the include files used.
4840         (i386-c.o): New file, add dependencies.
4841
4842         * config/i386/i386-protos.h (override_options): Add bool argument.
4843         (ix86_valid_option_attribute_tree): Add declaration.
4844         (ix86_target_macros): Ditto.
4845         (ix86_register_macros): Ditto.
4846
4847         * config/i386/i386.c (ix86_tune_features): Move initialization of
4848         the target masks to initial_ix86_tune_features to allow functions
4849         to have different target options.  Make type unsigned char,
4850         instead of unsigned int.
4851         (initial_ix86_tune_features): New static vector to hold processor
4852         masks for the tune variables.
4853         (ix86_arch_features): Move initialization of the target masks to
4854         initial_ix86_arch_features to allow functions to have different
4855         target options.  Make type unsigned char, instead of unsigned int.
4856         (initial_ix86_arch_features): New static vector to hold processor
4857         masks for the arch variables.
4858         (enum ix86_function_specific_strings): New enum to describe the
4859         string options used for attribute((option(...))).
4860         (ix86_target_string): New function to return a string that
4861         describes the target options.
4862         (ix86_debug_options): New function to print the current options in
4863         the debugger.
4864         (ix86_function_specific_save): New function hook to save the
4865         function specific global variables in the cl_target_option structure.
4866         (ix86_function_specific_restore): New function hook to restore the
4867         function specific variables from the cl_target_option structure to
4868         the global variables.
4869         (ix86_function_specific_print): New function hook to print the
4870         target specific options in the cl_target_option structure.
4871         (ix86_valid_option_attribute_p): New function hook to validate
4872         attribute((option(...))) arguments.
4873         (ix86_valid_option_attribute_tree): New function that is common
4874         code between attribute((option(...))) and #pragma GCC option
4875         support that parses the options and returns a tree holding the options.
4876         (ix86_valid_option_attribute_inner_p): New helper function for
4877         ix86_valid_option_attribute_tree.
4878         (ix86_can_inline_p): New function hook to decide if one function
4879         can inline another on a target specific basis.
4880         (ix86_set_current_function); New function hook to switch target
4881         options if the user used attribute((option(...))) or #pragma GCC
4882         option.
4883         (ix86_tune_defaulted): Move to static file scope from
4884         override_options.
4885         (ix86_arch_specified): Ditto.
4886         (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
4887         ix86_isa_flags.
4888         (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
4889         (OPTION_MASK_ISA_ABM_SET): Ditto.
4890         (OPTION_MASK_ISA_POPCNT_SET): Ditto.
4891         (OPTION_MASK_ISA_CX16_SET): Ditto.
4892         (OPTION_MASK_ISA_SAHF_SET): Ditto.
4893         (OPTION_MASK_ISA_AES_UNSET): Ditto.
4894         (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
4895         (OPTION_MASK_ISA_ABM_UNSET): Ditto.
4896         (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
4897         (OPTION_MASK_ISA_CX16_UNSET): Ditto.
4898         (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
4899         (struct ptt): Move to static file scope from override_options.
4900         (processor_target_table): Ditto.
4901         (cpu_names): Ditto.
4902         (ix86_handle_option): Add support for options that are now isa options.
4903         (override_options): Add support for declaring functions that
4904         support different target options than were specified on the
4905         command line.  Move struct ptt, processor_target_table, cpu_names,
4906         ix86_tune_defaulted, ix86_arch_specified to static file scope.
4907         Add bool argument.  Fix up error messages so the appropriate error
4908         is given for either command line or attribute.
4909         (ix86_previous_fndecl): New static to remember previous function
4910         declaration to see if we need to change target options.
4911         (ix86_builtins_isa): New array to record the ISA of each builtin
4912         function.
4913         (def_builtin): Always create the builtin function, even if the
4914         current ISA doesn't support it.
4915         (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
4916         tests for those builtins.
4917         (ix86_init_builtins): Remove TARGET_MMX test for calling
4918         ix86_init_mmx_sse_builtins.
4919         (ix86_expand_builtin): If the current ISA doesn't support a given
4920         builtin, signal an error.
4921         (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
4922         (TARGET_SET_CURRENT_FUNCTION): Ditto.
4923         (TARGET_OPTION_SAVE): Ditto.
4924         (TARGET_OPTION_RESTORE): Ditto.
4925         (TARGET_OPTION_PRINT): Ditto.
4926         (TARGET_CAN_INLINE_P): Ditto.
4927
4928 2008-07-22  Rafael Avila de Espindola  <espindola@google.com>
4929
4930         * c-typeck.c (build_external_ref): Don't call assemble_external.
4931         * final.c (output_operand): Call assemble_external.
4932
4933 2008-07-21  DJ Delorie  <dj@redhat.com>
4934
4935         * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
4936         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
4937
4938 2008-07-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4939
4940         * config/spu/spu.md ("div<mode>3"): Convert into expander, move
4941         original insn and splitter contents into ...
4942         ("*div<mode>3_fast"): ... this new pattern.  Enable only if
4943         flag_unsafe_math_optimizations.  Add dummy scratch register.
4944         ("*div<mode>3_adjusted"): New insn and splitter.  Enable only if
4945         !flag_unsafe_math_optimizations.  Returns number with next
4946         highest magnitude if this is still less or equal to the true
4947         quotient in magnitude.
4948
4949 2008-07-21  Rafael Avila de Espindola  <espindola@google.com>
4950
4951         * Makefile.in: Replace toplev.h with TOPLEV_H.
4952         * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
4953         * c-lex.c (fe_file_change): Don't set in_system_header.
4954         * c-parser.c (c_token): Remove in_system_header.
4955         (c_lex_one_token): Don't set in_system_header.
4956         (c_parser_set_source_position_from_token): Don't set in_system_header.
4957         * diagnostic.c (diagnostic_report_diagnostic): Use location from
4958         diagnostic_info.
4959         (warning_at): New.
4960         * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
4961         * flags.h (in_system_header): Remove.
4962         * function.c (saved_in_system_header): Remove.
4963         (push_cfun): Don't set in_system_header.
4964         (pop_cfun): Don't set in_system_header.
4965         (push_struct_function): Don't set in_system_header.
4966         * input.h (expanded_location): Add sysp.
4967         (in_system_header_at): New.
4968         (in_system_header): New.
4969         * toplev.c (in_system_header): Remove.
4970         * toplev.h: Include input.h
4971         (warning_at): New.
4972         * tree-cfg.c (execute_warn_function_return): Call warning_at.
4973         * tree-ssa.c (warn_uninit): Call warning_at.
4974         (warn_uninitialized_var): Update calls to warn_uninit.
4975         (warn_uninitialized_phi): Update calls to warn_uninit.
4976         * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
4977         (expand_location): Initialize xloc.sysp.
4978         * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
4979         (tree_decl_with_vis): Remove in_system_header_flag.
4980
4981 2008-07-21  Andreas Krebbel  <krebbel1@de.ibm.com>
4982
4983         PR target/36822
4984         * recog.c (asm_operand_ok): Change the order of the extra
4985         memory constraint checks.
4986
4987 2008-07-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4988
4989         PR tree-opt/36879
4990         * tree-switch-conversion.c (build_one_array): Call
4991         varpool_mark_needed_node and varpool_finalize_decl
4992         instead of assemble_variable.
4993
4994 2008-07-19  Jan Hubicka  <jh@suse.cz>
4995
4996         * cgraph.c (cgraph_add_new_function): Do early local passes.
4997         * tree-nrv.c (gate_pass_return_slot): New gate.
4998         (pass_nrv): Add the gate.
4999         * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
5000         functions.
5001         (coalesce_ssa_name): Coalesce SSA names.
5002         * tree-ssa-live.c (remove_unused_locals): Be more conservative when
5003         not optimizing so unused user vars remains visible.
5004         * common.opt (flag_tree_ter): Always enable by default.
5005         * tree-ssa-ter.c: Include flags.h
5006         (is_replaceable_p): Check that locations match; when aliasing is missing
5007         be conservative about loads.
5008         * tree-optimize.c (gate_init_datastructures): Remove.
5009         (pass_init_datastructures): New.
5010         * passes.c: Reorder passes so we always go into SSA.
5011
5012 2008-07-19  Jan Hubicka  <jh@suse.cz>
5013
5014         * doc/extend.texi (flatten attribute): Remove note about unit-at-a-time
5015         * doc/invoke.texi (--combine): Likewise.
5016         (-finline-functions-called-once): Update levels when enabled.
5017         (-funit-at-a-time): Document new behaviour.
5018         (-ftoplevel-reorder): Document that it is enabled -O0 and imply
5019         -fno-section-anchors when disabled explicitly.
5020         (inline params): They are not ignored now.
5021         (precompiled headers): Remove unit-at-a-time as being incompatible.
5022         * opts.c (decode_options): Handle unit-at-a-time as alias;
5023         imply -fno-section-anchors when toplevel reorder is disabled
5024         explicitly.
5025         * common.opt (ftoplevel-reorder): Set default value to 2.
5026         (funit-at-a-time): Set default value to 1.
5027         * config/rs6000/rs6000.c (optimization_options): Set section anchors
5028         to 2.
5029
5030 2008-07-19  Jan Hubicka  <jh@suse.cz>
5031
5032         * builtins.c (expand_builtin_int_roundingfn,
5033         expand_builtin_int_roundingfn_2): Do not take subtarget argument;
5034         it is not useful.
5035
5036 2008-07-19  Richard Guenther  <rguenther@suse.de>
5037
5038         PR bootstrap/36864
5039         * tree-ssa-sccvn.h (get_constant_value_id): Declare.
5040         * tree-ssa-sccvn.c (get_constant_value_id): New function.
5041         * tree-ssa-pre.c (get_expr_value_id): For newly created
5042         constant value-ids make sure to add the expression to its
5043         expression-set.
5044
5045 2008-07-19  Jakub Jelinek  <jakub@redhat.com>
5046
5047         PR middle-end/36877
5048         * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
5049         return value of the builtin is ignored.
5050
5051 2008-07-19  Olivier Hainque  <hainque@adacore.com>
5052
5053         * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
5054         bits, a C conformant malloc implementation has to provide.
5055         * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
5056
5057 2008-07-19  Joseph Myers  <joseph@codesourcery.com>
5058
5059         PR target/36780
5060         PR target/36827
5061         * reload.c (find_reloads_subreg_address): Only reload address if
5062         reloaded == 0, not for reloaded != 1.
5063
5064         Revert:
5065         2008-07-16  Joseph Myers  <joseph@codesourcery.com>
5066         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
5067         (m32c_legitimate_address_p): Handle "++rii" addresses created by
5068         m32c_legitimize_reload_address.
5069
5070         2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5071         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
5072         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
5073
5074 2008-07-19  Olivier Hainque  <hainque@adacore.com>
5075
5076         * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
5077         argument, saying whether nested array are to be collapsed
5078         into a single array type DIE with multiple subscripts.
5079         (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
5080         issues, centralize the nested array types collapsing control and
5081         disable the transformation for Ada.
5082
5083 2008-07-18  Uros Bizjak  <ubizjak@gmail.com>
5084
5085         PR target/36786
5086         * config/i386/i386.md (x86_64_shift_adj_1): Rename from
5087         x86_64_shift_adj.
5088         (x86_64_shift_adj_2): New expander.
5089         (x86_64_shift_adj_3): Ditto.
5090         * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
5091         to split TImode operands.
5092         (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
5093         (ix86_split_lshr): Ditto.
5094
5095 2008-07-18  Kris Van Hees  <kris.van.hees@oracle.com>
5096
5097         * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
5098         and __CHAR32_TYPE__.
5099         * c-typeck.c (digest_init): Support char16_t and char32_t.
5100         (set_nonincremental_init_from_string): Idem.
5101
5102 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
5103
5104         PR middle-end/36859
5105         * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
5106         PREFERRED_STACK_BOUNDARY.
5107         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
5108
5109 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
5110
5111         PR middle-end/36858
5112         * function.c (locate_and_pad_parm): Cap boundary earlier.
5113
5114 2008-07-17  Julian Brown  <julian@codesourcery.com>
5115
5116         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
5117         no-op for targets which don't use DLLs.
5118
5119 2008-07-17  Martin Jambor  <mjambor@suse.cz>
5120
5121         * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
5122         that nodes are relevant by examining the node->analyzed flag.
5123         (ipcp_init_stage): Check which nodes are relevant, assert that the
5124         relevant ones are also required.
5125         (ipcp_propagate_stage): Check on the side arrays are properly
5126         allocated.
5127         (ipcp_print_all_jump_functions): Make sure not to touch any node
5128         that is not analyzed or an edge that does not have a corresponding
5129         entry in the on-the-side vectors.
5130         (ipcp_function_scale_print): Likewise.
5131         (ipcp_update_callgraph): Check that the node is relevant.
5132         (ipcp_insert_stage): Check that the node is relevant.  Check there is
5133         an info for every node and edge.
5134         * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
5135         (ipa_print_all_tree_maps): Likewise and a new variable info.
5136         (ipa_print_all_params_modified): Likewise.
5137         * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
5138
5139 2008-07-17  Roman Zippel <zippel@linux-m68k.org>
5140
5141         PR target/25343
5142         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
5143
5144 2008-07-17  Paolo Bonzini  <bonzini@gnu.org>
5145
5146         PR rtl-optimization/36753
5147         * fwprop.c (use_killed_between): Don't shortcut
5148         single-definition global registers.
5149
5150 2008-07-16  Jan Hubicka  <jh@suse.cz>
5151
5152         * cgraph.h (varpool_empty_needed_queue): Declare.
5153         * cgraphunit.c (output_in_order): Mark all variables as needed;
5154         empty the queue.
5155         * varpool.c (varpool_assemble_node): Update debug queue.
5156         (varpool_assemble_pending_decls): Don't do it here.
5157         (varpool_empty_needed_queue):  New function.
5158
5159 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5160
5161         * recog.c (peephole2_optimize): Fix formatting.
5162
5163 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5164
5165         * c-pch.c (get_ident): Avoid C++ keywords.
5166         * combine-stack-adj.c (single_set_for_csa): Likewise.
5167         * final.c (asm_insn_count, final_scan_insn, alter_subreg,
5168         output_asm_insn): Likewise.
5169         * reload.c (push_secondary_reload, find_reusable_reload,
5170         push_reload, combine_reloads, find_reloads,
5171         debug_reload_to_stream): Likewise.
5172         * reload.h (struct reload): Likewise.
5173         * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
5174         allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
5175         emit_output_reload_insns): Likewise.
5176         * targhooks.c (default_secondary_reload): Likewise.
5177         * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
5178
5179 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5180
5181         * recog.c (validate_change_1, validate_change,
5182         validate_unshare_change, validate_replace_rtx_1, struct
5183         funny_match, constrain_operands, peephole2_optimize): Avoid C++
5184         keywords.
5185         * reload.c (push_secondary_reload, secondary_reload_class,
5186         scratch_reload_class, find_valid_class, find_reusable_reload,
5187         push_reload, find_dummy_reload, find_reloads_address_1,
5188         find_reloads_address_part, find_equiv_reg): Likewise.
5189         * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
5190         choose_reload_regs): Likewise.
5191         * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
5192         Likewise.
5193         * rtlhooks.c (gen_lowpart_if_possible): Likewise.
5194         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
5195         * sched-rgn.c (concat_INSN_LIST): Likewise.
5196         * stor-layout.c (mode_for_size, mode_for_size_tree,
5197         smallest_mode_for_size): Likewise.
5198
5199 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5200
5201         * cfg.c (dump_reg_info): Avoid C++ keywords.
5202         * dwarf2asm.c (dw2_force_const_mem,
5203         dw2_asm_output_encoded_addr_rtx): Likewise.
5204         * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
5205         * expmed.c (expand_shift): Likewise.
5206         * global.c (find_reg): Likewise.
5207         * graph.c (draw_edge): Likewise.
5208         * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
5209         * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
5210         widen_clz, widen_bswap, expand_parity, expand_unop,
5211         emit_cmp_and_jump_insn_1): Likewise.
5212         * postreload.c (reload_cse_simplify_operands): Likewise.
5213         * ra.h (add_neighbor): Likewise.
5214         * reg-stack.c (remove_regno_note, change_stack): Likewise.
5215         * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
5216         record_reg_classes, copy_cost, record_address_regs,
5217         invalid_mode_change_p): Likewise.
5218         * regrename.c (regrename_optimize, scan_rtx_reg,
5219         dump_def_use_chain, find_oldest_value_reg,
5220         replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
5221
5222 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
5223
5224         * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
5225         MASK_POWERPC64 for power4 in previous commit.
5226
5227 2008-07-16  Olivier Hainque  <hainque@adacore.com>
5228
5229         * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
5230         instead of bare conversion to cast const-ness away.
5231
5232 2008-07-16  Anatoly Sokolov  <aesok@post.ru>
5233
5234         * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
5235         XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
5236         * config/xtensa/xtensa.c (xtensa_function_value): New function.
5237         (TARGET_FUNCTION_VALUE): Define.
5238
5239 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
5240
5241         * config/rs6000/rs6000.c (processor_target_table): Add
5242         MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
5243
5244 2008-07-16  Joseph Myers  <joseph@codesourcery.com>
5245
5246         PR target/36827
5247         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
5248         (m32c_legitimate_address_p): Handle "++rii" addresses created by
5249         m32c_legitimize_reload_address.
5250
5251 2007-07-16  Rafael Avila de Espindola  <espindola@google.com>
5252
5253         * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
5254         DECL_IN_SYSTEM_HEADER in sync.
5255
5256 2008-07-15  Daniel Berlin  <dberlin@dberlin.org>
5257
5258         * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
5259         * tree-ssa-pre.c (pre_expr_eq): Ditto
5260         (get_constant_for_value_id): Take a type as an argument.
5261         (fully_constant_expression): Pass in type.
5262         (find_or_generate_expression): Short circuit constant case.
5263         (create_expression_by_pieces): Remove special casing of
5264         pointer_plus.
5265         (do_regular_insertion): Short circuit constant case.
5266         (do_partial_partial_insertion): Ditto.
5267
5268 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5269
5270         PR target/36782
5271         * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
5272
5273 2008-07-15  Bob Wilson  <bob.wilson@acm.org>
5274
5275         * config/xtensa/libgcc-xtensa.ver: New file.
5276         * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
5277
5278 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5279
5280         * df-problems.c (df_set_note): Avoid C++ keywords.
5281         * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
5282         * dse.c (record_store, remove_useless_values): Likewise.
5283         * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
5284         gen_reg_rtx_offset, operand_subword, change_address_1,
5285         change_address, adjust_address_1, offset_address,
5286         widen_memory_access, emit_copy_of_insn_after): Likewise.
5287         * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
5288         * fwprop.c (should_replace_address, propagate_rtx_1,
5289         propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
5290         Likewise.
5291         * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
5292         gcse_emit_move_after, update_ld_motion_stores): Likewise.
5293         * lcm.c (compute_insert_delete, pre_edge_lcm,
5294         compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
5295         * lower-subreg.c (resolve_reg_notes): Likewise.
5296         * mode-switching.c (optimize_mode_switching): Likewise.
5297
5298 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5299
5300         * bt-load.c (add_btr_def, migrate_btr_def,
5301         branch_target_load_optimize): Avoid C++ keywords.
5302         * caller-save.c (insert_restore, insert_save, insert_one_insn):
5303         Likewise.
5304         * combine.c (subst, simplify_set, make_extraction,
5305         make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
5306         * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
5307         fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
5308
5309 2008-07-15  Richard Guenther  <rguenther@suse.de>
5310
5311         PR middle-end/36369
5312         * c-common.c (strict_aliasing_warning): Do not warn for
5313         TYPE_REF_CAN_ALIAS_ALL pointers.
5314         (c_common_get_alias_set): may_alias types are not special.
5315         * tree.c (build_pointer_type_for_mode): Look up the may_alias
5316         attribute and set can_ref_all accordingly.
5317         (build_reference_type_for_mode): Likewise.
5318         * doc/extend.texi (may_alias): Clarify.
5319
5320 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5321
5322         PR target/36780
5323         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
5324         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
5325
5326 2008-07-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5327
5328         PR target/31568
5329         * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
5330         gcc_assert, instead call output_operand_lossage.
5331
5332 2008-07-15  Kai Tietz  <kai.tietz@onevision.com>
5333
5334         * builtins.c (std_canonical_va_list): Treat structure based
5335         va_list types.
5336
5337 2008-07-15  Ben Elliston  <bje@au.ibm.com>
5338
5339         * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
5340
5341 2007-07-14  Rafael Avila de Espindola  <espindola@google.com>
5342
5343         * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
5344         is set.
5345
5346 2008-07-14  Jan Hubicka  <jh@suse.cz>
5347
5348         * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
5349         * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
5350         fix predicates and constraints.
5351         * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
5352         * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
5353
5354 2008-07-14  Doug Kwan  <dougkwan@google.com>
5355
5356         * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
5357         additional option file arm/eabi.opt.
5358         * config/arm/eabi.h (File): New configuration file for EABI targets.
5359         * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
5360         SUBSUBTARGET_EXTRA_SPECS.
5361         (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
5362         * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
5363         from STARTFILE_SPEC so that it can be referenced in an override.
5364         (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
5365         (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
5366         can be referenced in an override.
5367         (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
5368         * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
5369         so that it can be referenced in an override.
5370         (LINK_SPEC): Use BPABI_LINK_SPEC.
5371         * config/arm/eabi.opt (File): New.
5372
5373 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5374
5375         * Makefile.in (TARGET_DEF_H): Add targhooks.h.
5376         (FIXED_VALUE_H): New variable.
5377         (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
5378         input.h, fixed-value.h.
5379         (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
5380         (BASIC_BLOCK_H): Use $(BITMAP_H).
5381         (FUNCTION_H): Add varray.h.
5382         (IPA_REFERENCE_H): Use $(BITMAP_H).
5383         (CGRAPH_H): Add $(BASIC_BLOCK_H).
5384         (DF_H): Use $(BITMAP_H).
5385         (GGC_H): Add statistics.h.
5386         (INSN_ADDR_H): New.
5387         (INSN_ATTR_H): Use it.
5388         (SYSTEM_H): Add safe-ctype.h, filenames.h.
5389         (INPUT_H): New.
5390         (SYMTAB_H): Add $(OBSTACK_H).
5391         (CPP_INTERNAL_H): New.
5392         (TREE_DUMP_H): Add tree-pass.h.
5393         (TREE_FLOW_H): Use $(BITMAP_H)
5394         (PRETTY_PRINT_H): Use $(INPUT_H).
5395         (EBITMAP_H): Rename from typo-ed EBIMAP_H.
5396         (GSTAB_H): New.
5397         (BITMAP_H): New.
5398         (many object files): Fix lots of header dependencies throughout.
5399
5400 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5401
5402         * Makefile.in (write_entries_to_file, write_entries_to_file_split):
5403         New macros.
5404         (s-gtyp-input): Use them to write tmp-gi.list.
5405         (echo_to_gi.list): Remove.
5406
5407 2008-07-14  Richard Guenther  <rguenther@suse.de>
5408
5409         * tree-ssa-sccvn.c (pre_info): Remove.
5410         (switch_to_PRE_table): Likewise.
5411         (free_scc_vn): Do not clear SSA_NAME_VALUE.  Do not free pre_info.
5412         (set_hashtable_value_ids): Do not create value-ids for the
5413         optimistic tables.
5414         (run_scc_vn): Remove double test.  Remove bogus special-case
5415         in value-number printing.
5416         * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
5417         * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
5418         SSA_NAME_VALUE.
5419         * tree-flow-inline.h (get_value_handle): Remove.
5420         * tree-flow.h (get_value_handle): Remove.
5421
5422 2008-07-14  Martin Jambor  <mjambor@suse.cz>
5423
5424         * tree-switch-conversion.c (gen_inbound_check): Make sure the type
5425         in which we generate arithmetics is not a subrange.
5426
5427 2008-07-14  Martin Jambor  <mjambor@suse.cz>
5428
5429         * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
5430
5431 2008-07-14  Richard Guenther  <rguenther@suse.de>
5432
5433         * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
5434
5435 2008-07-14  Andreas Krebbel  <krebbel1@de.ibm.com>
5436
5437         PR target/36745
5438         * config/s390/s390.c: (s390_secondary_reload): Add a secondary
5439         reload for symbol refs moved to r0 with -fPIC.
5440         (legitimize_pic_address): Use the target register as temporary
5441         reg if possible.
5442         (emit_symbolic_move): Adjust comment.
5443         * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
5444         New expanders.
5445
5446 2008-07-14  Ben Elliston  <bje@au.ibm.com>
5447
5448         * c-common.h (C_CPP_HASHNODE): New macro.
5449         * coretypes.h (struct cpp_token): Forward declare.
5450         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
5451         the context-sensitive keyword method.
5452         * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
5453         __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
5454         expand_bool_pixel): New.
5455         (altivec_categorize_keyword): New function.
5456         (init_vector_keywords): New function.
5457         (rs6000_macro_to_expand): Likewise.
5458         (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
5459         compiling an ISO C dialect.
5460
5461 2008-07-13  Daniel Berlin  <dberlin@dberlin.org>
5462
5463         * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
5464         (create_expression_by_pieces): Fix typo.
5465         (do_regular_insertion): Use debug counter here too.
5466
5467 2008-07-14  Hans-Peter Nilsson  <hp@axis.com>
5468
5469         PR target/35492.
5470         * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
5471         CONST_OK_FOR_LETTER_P.  All port-local users changed.
5472         (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
5473         implement Kp matching power-of-two.
5474         (CONSTRAINT_LEN): Define to match.
5475         * config/cris/cris.md: Replace all use of constraint K with Kc.
5476         ("*btst*): Use Kp for operand 0 of last alternative.
5477
5478 2008-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5479
5480         PR testsuite/36440
5481         * tree-call-cdce.c (check_target_format): Accept MIPS single, double
5482         and quad formats.
5483
5484 2008-07-13  Jan Hubicka  <jh@suse.cz>
5485
5486         * tree.c (decl_assembler_name_equal): Expect assembler name of decl
5487         to be mangled too.
5488
5489 2008-07-13  Richard Guenther  <rguenther@suse.de>
5490
5491         PR middle-end/36811
5492         * langhooks.c (lhd_print_error_function): Deal with recursive
5493         BLOCK trees.
5494
5495 2008-07-12  Jan Hubicka  <jh@suse.cz>
5496
5497         * cgraph.c (assembler_name_hash): New static var.
5498         (hash_node_by_assembler_name, eq_assembler_name): New.
5499         (cgraph_node_for_asm): Use hashtable.
5500         (cgraph_remove_node): Maintain hashtable.
5501         (change_decl_assembler_name): Sanity check that names are not changing
5502         after aliasing was processed.
5503         * cgraph.h (varpoon_node): Add next GGC marker.
5504         * tree.c (decl_assembler_name_equal): Constify.
5505         (decl_assembler_name_hash): New.
5506         * tree.h (decl_assembler_name_equal): Constify.
5507         (decl_assembler_name_hash): Update.
5508
5509 2008-07-12  David Daney  <ddaney@avtrex.com>
5510
5511         * config/mips/driver-native.c (host_detect_local_cpu): Handle
5512         sb1 and r5000 cpus.
5513
5514 2008-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
5515
5516         * doc/md.texi: Document the MIPS "v" constraint.
5517         * config/mips/mips.h (reg_class): Revert last change.
5518         (REG_CLASS_NAMES): Likewise.
5519         (REG_CLASS_CONTENTS): Likewise.
5520         * config/mips/mips.c (mips_regno_to_class): Likewise.
5521         * config/mips/constraints.md (v): Likewise, but add documentation.
5522         Add a comment to say that this constraint should not be used in
5523         gcc code.
5524
5525 2008-07-11  DJ Delorie  <dj@redhat.com>
5526
5527         * config/h8300/h8300.md (length): Fix branch offset limit.
5528
5529 2008-07-11  Anatoly Sokolov  <aesok@post.ru>
5530
5531         * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
5532         * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
5533         (avr_hard_regno_scratch_ok): New function.
5534         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
5535         * config/avr/avr.md (all peepholes that request a scratch register):
5536         Remove avr_peep2_scratch_safe use.
5537
5538 2008-07-11  Tom Tromey  <tromey@redhat.com>
5539             Ian Lance Taylor  <iant@google.com>
5540
5541         * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
5542         (struct c_common_resword): Define.
5543         (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
5544         (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
5545         (c_common_reswords, num_c_common_reswords): Declare.
5546         * c-common.c (c_common_reswords): New global const array.
5547         (num_c_common_reswords): New const int.
5548         * c-parser.c (struct resword, reswords): Don't define.
5549         (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
5550         (c_parse_init): Clarify mask code.  Use c_common_reswords rather
5551         than reswords.  If warning about C++ keywords, give them a special
5552         RID code.
5553         (c_lex_one_token): Warn about C++ keywords.  Call
5554         objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
5555         (c_parser_external_declaration): Look for RID_xxx rather than
5556         RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
5557         (c_parser_statement_after_labels): Likewise.
5558         (c_parser_objc_class_instance_variables): Likewise.
5559         (c_parser_objc_class_declaration): Likewise.
5560         (c_parser_objc_try_catch_statement): Likewise.
5561         * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
5562         (declspecs_add_type): Likewise.
5563
5564 2008-07-11  Angelo Graziosi  <angelo.graziosi@alice.it>
5565
5566         * ggc-page.c (alloc_page):
5567         Substituting xmalloc, xcalloc with
5568         XNEWVEC and XCNEWVAR macros which add the
5569         needed casts.
5570
5571 2008-07-11  Richard Guenther  <rguenther@suse.de>
5572
5573         PR tree-optimization/36765
5574         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
5575         aliases from HEAP vars to SMTs.
5576
5577 2008-07-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5578
5579         * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
5580         * configure.ac (loose_warn): Move -Wc++-compat from here...
5581         (strict_warn): ...to here.
5582         * configure: Regenerate.
5583
5584 2008-07-10  Joseph Myers  <joseph@codesourcery.com>
5585
5586         * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
5587         i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
5588         m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
5589         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
5590         excluding more specific h8300-*-* and sh-*-* targets.
5591
5592 2008-07-10  Daniel Berlin  <dberlin@dberlin.org>
5593
5594         * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
5595         (eliminate): Ditto.
5596         (execute_pre): Call loop_optimizer_finalize in early exit.
5597
5598 2008-07-10  Jakub Jelinek  <jakub@redhat.com>
5599
5600         PR middle-end/36790
5601         * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
5602         uids in the bitmap, not just VAR_DECL uids.
5603
5604         PR rtl-optimization/36419
5605         * combine-stack-adj.c (adjust_frame_related_expr): New function.
5606         (combine_stack_adjustments_for_block): Call it if needed.  Delete
5607         correct insn.
5608         * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
5609         DW_CFA_GNU_args_size if CSA pass merged some adjustments into
5610         prologue sp adjustment.
5611
5612 2008-07-10  Peter Maydell  <pmaydell@chiark.greenend.org.uk>
5613
5614         PR other/28322
5615         * opts.c (print_ignored_options): Report postponed diagnostics for
5616         unknown -Wno-* options as warnings, not errors.
5617         (postpone_unknown_option_error): Renamed to...
5618         (postpone_unknown_option_warning): ... this.
5619
5620 2008-07-09  Doug Kwan  <dougkwan@google.com>
5621
5622         Revert:
5623         2008-07-08  Doug Kwan  <dougkwan@google.com>
5624
5625         * config/arm/arm.opt (mandroid): New option.
5626         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
5627         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
5628         (CC1_SPEC): Same.
5629         (CC1PLUS_SPEC): Same.
5630         (LIB_SPEC): Same.
5631         (STARTFILE_SPEC): Same.
5632         (ENDFILE_SPEC): Same.
5633         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
5634         used.
5635
5636 2008-07-09  Richard Sandiford  <rdsandiford@googlemail.com>
5637
5638         PR target/35802
5639         * config/mips/mips.h (reg_class): Remove V1_REG.
5640         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
5641         * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
5642         instead of V1_REGS.
5643         (mips_get_tp): New function.
5644         (mips_legitimize_tls_address): Use it.
5645         * config/mips/constraints.md (v): Delete.
5646         * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
5647         (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
5648         After reload, split into a move and ...
5649         (*tls_get_tp_<mode>_split): ...this new instruction.
5650
5651 2008-07-09  David Daney  <ddaney@avtrex.com>
5652
5653         * config/mips/driver-native.c: Include coretypes.h and tm.h.
5654
5655 2008-07-09  Jakub Jelinek  <jakub@redhat.com>
5656
5657         * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
5658         (push_gimplify_context): Don't allocate temp_htab nor c itself here.
5659         Add c argument.
5660         (pop_gimplify_context): Check c->temp_htab instead of optimize whether
5661         htab_delete should be called.  Don't free c.
5662         (lookup_tmp_var): Create temp_htab lazily.
5663         (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
5664         gimplify_body, force_gimple_operand): Adjust push_gimplify_context
5665         callers.
5666         * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
5667         lower_omp_ordered, lower_omp_critical, lower_omp_for,
5668         create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
5669         * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
5670         * tree-sra.c (generate_element_init): Likewise.
5671         * tree-mudflap.c (execute_mudflap_function_ops,
5672         execute_mudflap_function_decls): Likewise.
5673         * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
5674         * tree-gimple.h (struct gimplify_ctx): New type.
5675         (push_gimplify_context): Adjust prototype.
5676
5677 2008-07-09  Daniel Berlin  <dberlin@dberlin.org>
5678
5679         * tree-ssa-pre.c (phi_translate_1): Update placement of
5680         add_to_value calls.
5681
5682 2008-07-09  Anatoly Sokolov  <aesok@post.ru>
5683
5684         * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
5685         * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
5686         (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
5687         * targhooks.c (default_hard_regno_scratch_ok): New function.
5688         * targhooks.h (default_hard_regno_scratch_ok): Declare function.
5689         * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
5690         * recog.c:  Include "target.h".
5691         (peep2_find_free_register): Add check for global regs. Add target
5692         specific check.
5693         * Makefile.in (recog.o): Depend on target.h.
5694
5695 2008-07-09  Kaz Kojima  <kkojima@gcc.gnu.org>
5696
5697         * config/sh/sh.c (sh_canonical_va_list_type): New.
5698         (TARGET_CANONICAL_VA_LIST_TYPE): Define.
5699
5700 2008-07-09  Raksit Ashok <raksit@google.com>
5701
5702         * doc/invoke.texi (Option Summary): Mention new option
5703         -Wdisallowed-function-list=...
5704         (Warning Options): Document -Wdisallowed-function-list=...
5705         * common.opt (Wdisallowed-function-list=): New flag.
5706         * flags.h (warn_disallowed_functions): External definition of new
5707         boolean warning flag.
5708         (warn_if_disallowed_function_p): Declare new function.
5709         * opts.c (warning_disallowed_functions): New static variable.
5710         (warn_disallowed_functions): New boolean warning flag.
5711         (warn_if_disallowed_function_p): New function.
5712         (add_comma_separated_to_vector): Rename
5713         add_instrument_functions_exclude_list to this.
5714         (common_handle_option): Handle new option. Rename calls to
5715         add_instrument_functions_exclude_list into calls to
5716         add_comma_separated_to_vector.
5717         * c-parser.c (c_parser_postfix_expression_after_primary): New warning
5718         based on flag warn_disallowed_functions.
5719
5720 2008-07-09  Christian Bruel  <christian.bruel@st.com>
5721
5722         * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
5723          instead of get_attr_length.
5724
5725 2008-07-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5726
5727         * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
5728         keywords.
5729         * genemit.c (gen_insn): Likewise.
5730         * gengtype.c (note_def_vec): Likewise.
5731         * gengtype.h (note_def_vec): Likewise.
5732         * genoutput.c (struct data, output_insn_data, process_template,
5733         gen_expand, gen_split, note_constraint): Likewise.
5734         * genrecog.c (new_decision, add_to_sequence, factor_tests,
5735         make_insn_sequence): Likewise.
5736         * gensupport.c (record_insn_name): Likewise.
5737
5738 2008-07-08  Doug Kwan  <dougkwan@google.com>
5739
5740         * config/arm/arm.opt (mandroid): New option.
5741         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
5742         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
5743         (CC1_SPEC): Same.
5744         (CC1PLUS_SPEC): Same.
5745         (LIB_SPEC): Same.
5746         (STARTFILE_SPEC): Same.
5747         (ENDFILE_SPEC): Same.
5748         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
5749         used.
5750
5751 2008-07-08  Raksit Ashok  <raksit@google.com>
5752
5753         * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
5754         (set_storage_via_setmem): Fix expected_align parameter.
5755         * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
5756         missing from the list.
5757         * doc/md.texi (movmem): Explicitly state that expected alignment is
5758         to be expressed in bytes.
5759         (setmem): Explicitly state that expected alignment is to be expressed
5760         in bytes.
5761
5762 2008-07-08  Joseph Myers  <joseph@codesourcery.com>
5763
5764         * reload.c (find_reloads_subreg_address): Do not require validity
5765         of address in original mode before reloading address.
5766
5767 2008-07-07  Tianwei Sheng  <tianweis@google.com>
5768
5769         * df-core.c (df_remove_problem): Adjust the access to avoid out of
5770         bounds array access.
5771
5772 2008-07-08  Jakub Jelinek  <jakub@redhat.com>
5773
5774         * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
5775
5776 2008-07-05  Daniel Berlin  <dberlin@dberlin.org>
5777
5778         Fix PR tree-optimization/23455
5779         Fix PR tree-optimization/35286
5780         Fix PR tree-optimization/35287
5781         * Makefile.in (OBJS-common): Remove tree-vn.o.
5782         (tree-vn.o): Remove.
5783         * dbgcnt.def: Add treepre_insert debug counter.
5784         * gcc/tree-flow.h (add_to_value): Updated for other changes.
5785         (debug_value_expressions): Ditto.
5786         (print_value_expressions): Ditto.
5787         * tree-pretty-print.c (dump_generic_node): Updated for
5788         VALUE_HANDLE removal.
5789         * tree-ssa-dom.c (record_equality): Ditto.
5790         (cprop_operand): Ditto.
5791         (lookup_avail_expr): Ditto.
5792         * tree-ssa-threadedge.c
5793         (record_temporary_equivalences_from_stmts_at_dest): Ditto.
5794         (simplify_control_stmt_condition): Ditto.
5795         * tree.c (tree_code_size): Ditto.
5796         (tree_node_structure): Ditto.
5797         (iterative_hash_expr): Ditto.
5798         * tree.def: Ditto.
5799         * tree.h (VALUE_HANDLE_ID): Ditto.
5800         (VALUE_HANDLE_EXPR_SET): Ditto.
5801         (struct tree_value_handle): Ditto.
5802         (union tree_node): Ditto.
5803         * treestruct.def: Ditto.
5804         * tree-vn.c: Removed.
5805         * tree-ssa-pre.c: Rewritten entirely.
5806         * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
5807         (constant_value_ids): Ditto.
5808         (vn_nary_op_t): Moved to header.
5809         (vn_phi_t): Ditto.
5810         (vn_reference_op_t): Ditto
5811         (vn_reference_t): Ditto.
5812         (next_value_id): New variable.
5813         (VN_INFO): Add an assert.
5814         (vn_constant_eq): New function.
5815         (vn_constant_hash): Ditto.
5816         (get_or_alloc_constant_value_id): Ditto.
5817         (value_id_constant_p): Ditto.
5818         (vn_reference_compute_hash): De-staticify.
5819         (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
5820         Disable some code with a FIXME.  Remove VALUE_HANDLE use.
5821         (valueize_refs): Update opcode if it changes from ssa name to constant.
5822         (vn_reference_lookup_1): Add new argument.
5823         (vn_reference_lookup):  Ditto.
5824         (vn_reference_lookup_pieces): New function.
5825         (vn_reference_insert): Add return type. Modify to deal with value ids.
5826         (vn_reference_insert_pieces):  New function.
5827         (vn_nary_op_compute_hash): De-staticify.
5828         (vn_nary_op_eq): Ditto.
5829         (vn_nary_op_lookup_pieces): New function.
5830         (vn_nary_op_lookup): Add new argument.
5831         (vn_nary_op_insert_pieces): New function.
5832         (vn_nary_op_insert): Add return type. Modify to deal with value ids.
5833         (vn_phi_insert): Ditto.
5834         (visit_unary_op): Update for callee changes.
5835         (visit_binary_op): Ditto.
5836         (visit_reference_op_load): Ditto.
5837         (visit_reference_op_store): Ditto.
5838         (init_scc_vn): Init next_value_id, constant_to_value_id and
5839         constant_value_ids.
5840         (free_scc_vn): Free them.
5841         (set_hashtable_value_ids): New function.
5842         (run_scc_vn): Use it.
5843         (get_max_value_id): New function.
5844         (get_next_value_id): Ditto.
5845         (expressions_equal_p): Moved from tree-vn.c
5846         (sort_vuses): Ditto.
5847         (sort_vuses_heap): Ditto.
5848         * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
5849         above).
5850         * tree.c (iterative_hash_hashval_t): Made non-static
5851         * tree.h (iterative_hash_hashval_t): Declare it.
5852
5853 2008-07-08  Martin Jambor  <mjambor@suse.cz>
5854
5855         * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
5856         instead of ipa_create_node_params.
5857         (ipcp_driver): Allocate infos with ipa_check_create_node_params and
5858         ipa_check_create_edge_args, free them with
5859         free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
5860
5861         * ipa-prop.c: Include flags.h and tree-inline.h.
5862         (ipa_node_params_vector): New variable.
5863         (ipa_edge_args_vector): New variable.
5864         (edge_removal_hook_holder): New variable.
5865         (node_removal_hook_holder): New variable.
5866         (edge_duplication_hook_holder): New variable.
5867         (node_duplication_hook_holder): New variable.
5868         (ipa_detect_param_modifications): Check for presence of modified flags.
5869         (ipa_compute_jump_functions): Check for presence of jump functions.
5870         (ipa_free_edge_args_substructures): New function.
5871         (ipa_create_node_params): Removed.
5872         (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
5873         (ipa_free_node_params_substructures): New function.
5874         (ipa_free_all_node_params): Changed to deallocate the on-the-side
5875         vector.
5876         (ipa_edge_removal_hook): New function.
5877         (ipa_node_removal_hook): New function.
5878         (duplicate_array): New function.
5879         (ipa_edge_duplication_hook): New function.
5880         (ipa_node_duplication_hook): New function.
5881         (ipa_register_cgraph_hooks): New function.
5882         (ipa_unregister_cgraph_hooks): New function.
5883         (free_all_ipa_structures_after_ipa_cp): New function.
5884
5885         * ipa-prop.h: Include vec.h.
5886         (ipa_node_params_t): New typedef with vector types for it.
5887         (ipa_edge_args_t):  New typedef with vector types for it.
5888         (IPA_NODE_REF): Changed to access an on-the-side vector.
5889         (IPA_EDGE_REF): Changed to access an on-the-side vector.
5890         (ipa_check_create_node_params): New function.
5891         (ipa_check_create_edge_args): New function.
5892
5893         * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h.  Converted
5894         all users.
5895
5896 2008-07-07  Tom Tromey  <tromey@redhat.com>
5897
5898         * configure, config.in: Rebuilt.
5899         * configure.ac: Don't check for scandir or alphasort.
5900
5901 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
5902
5903         * config/arm/arm.c (arm_init_neon_builtins): Register built-in
5904         types immediately after creating them.
5905
5906 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
5907
5908         * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
5909
5910 2008-07-07  Fernando Pereira <fernando@cs.ucla.edu>
5911
5912         * tree-ssa-structalias.c (compute_points_to_sets): Add call to
5913         dump_constraint_graph.
5914         (dump_constraint_edge): New function.
5915         (dump_constraint_graph): New function.
5916         (debug_constraint_graph): New function.
5917         (dump_constraint): Removed useless comparison.
5918         * tree-ssa-structalias.h (dump_constraint_edge): Declare.
5919         (dump_constraint_graph): Declare.
5920         (debug_constraint_graph): Declare.
5921         * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
5922
5923 2008-07-07  Kai Tietz  <kai.tietz@onevision.com>
5924
5925         * config/i386/i386.c (is_va_list_char_pointer): New.
5926         (ix86_va_start): Replace compare with ms_va_list_type_node
5927         by is_va_list_char_pointer.
5928         (ix86_gimplify_va_arg): Likewise.
5929
5930 2008-07-07  Martin Jambor  <mjambor@suse.cz>
5931
5932         * cgraph.c (cgraph_edge_max_uid): New variable.
5933         (struct cgraph_edge_hook_list): New type.
5934         (struct cgraph_node_hook_list): New type.
5935         (struct cgraph_2edge_hook_list): New type.
5936         (struct cgraph_2node_hook_list): New type.
5937         (first_cgraph_edge_removal_hook): New variable.
5938         (first_cgraph_node_removal_hook): New variable.
5939         (first_cgraph_edge_duplicated_hook): New variable.
5940         (first_cgraph_node_duplicated_hook): New variable.
5941         (cgraph_add_edge_removal_hook): New function.
5942         (cgraph_remove_edge_removal_hook): New function.
5943         (cgraph_call_edge_removal_hooks):  New function.
5944         (cgraph_add_node_removal_hook):  New function.
5945         (cgraph_remove_node_removal_hook):  New function.
5946         (cgraph_call_node_removal_hooks):  New function.
5947         (cgraph_add_edge_duplication_hook):  New function.
5948         (cgraph_remove_edge_duplication_hook):  New function.
5949         (cgraph_call_edge_duplication_hooks):  New function.
5950         (cgraph_add_node_duplication_hook):  New function.
5951         (cgraph_remove_node_duplication_hook):  New function.
5952         (cgraph_call_node_duplication_hooks):  New function.
5953         (cgraph_create_edge): Assign to edge uid.
5954         (cgraph_remove_edge): Call edge removal hooks.
5955         (cgraph_node_remove_callees): Call edge removal hooks.
5956         (cgraph_node_remove_callers): Call edge removal hooks.
5957         (cgraph_remove_node): Call node removal hooks.
5958         (cgraph_clone_edge): Call edge duplication hooks.
5959         (cgraph_clone_node): Call node duplication hooks.
5960
5961         * cgraph.h (cgraph_edge): New field uid.
5962         (cgraph_edge_hook): New type.
5963         (cgraph_node_hook): New type.
5964         (cgraph_2edge_hook): New type.
5965         (cgraph_2node_hook): New type.
5966
5967 2008-07-07  Andreas Tobler  <a.tobler@schweiz.org>
5968
5969         * config.in: Regenerate.
5970
5971 2008-07-07  Vladimir Prus  <vladimir@codesourcery.com>
5972
5973         * gcc.c (print_sysroot): New.
5974         (option_map, display_help, process_command): Handle the
5975         -print-sysroot option.
5976         (main): Print the sysroot if requested.
5977         * doc/invoke.texi (Debugging Options): Document -print-sysroot.
5978
5979 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5980
5981         PR target/34780
5982         * unwind-pe.h (size_of_encoded_value): add attribute unused.
5983
5984 2008-07-07  Daniel Jacobowitz  <dan@codesourcery.com>
5985
5986         * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
5987         (assign_parm_setup_block_p): Also check mode of entry_parm.
5988
5989 2008-07-07  Richard Guenther  <rguenther@suse.de>
5990
5991         * tree-ssa-structalias.h (set_used_smts): Remove.
5992         * tree-ssa-structalias.c (used_smts): Likewise.
5993         (set_used_smts): Likewise.
5994         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
5995         call to set_used_smts.
5996
5997 2008-07-07  Richard Guenther  <rguenther@suse.de>
5998
5999         * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
6000         (new_var_info): Set it to false.
6001         (solution_set_add): Correctly handle pointers outside a var and
6002         inside a field.
6003         (type_safe): Treat variables with is_full_var properly.
6004         (do_sd_constraint): Likewise.
6005         (do_ds_constraint): Likewise.
6006         (process_constraint): Remove zeroing offset for !use_field_sensitive.
6007         (get_constraint_for_ptr_offset): New function.
6008         (get_constraint_for_component_ref): For addresses at least include
6009         the last field of the variable.  Handle is_full_vars properly.
6010         (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
6011         (handle_ptr_arith): Remove.
6012         (find_func_aliases): Simplify assignment handling.
6013         (create_function_info_for): For parameter and result varinfos set
6014         is_full_var flag.
6015         (create_variable_info_for): Set is_full_var flag whenever we
6016         just created a single varinfo for a decl.
6017         (init_alias_vars): Initialize use_field_sensitive from
6018         max-fields-for-field-sensitive parameter.
6019
6020 2008-07-07  Richard Guenther  <rguenther@suse.de>
6021
6022         PR tree-optimization/36713
6023         * tree-flow-inline.h (is_call_used): New function.
6024         * tree-nrv.c (dest_safe_for_nrv_p): Use it.
6025         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
6026         * tree-outof-ssa.c (create_temp): Set call-used flag if required.
6027
6028 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
6029
6030         * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
6031
6032 2008-07-07  Mark Shinwell  <shinwell@codesourcery.com>
6033
6034         * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
6035
6036 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
6037             Nathan Sidwell  <nathan@codesourcery.com>
6038
6039         * config.gcc (m68k-*-linux*): Add with_arch.  Add sysroot-suffix.h
6040         to tm_file.  Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
6041         tmake_file.
6042         * config/m68k/t-linux: New.
6043         * doc/install.texi: Document m68k-*-linux is now multilibbed by
6044         default.
6045
6046 2008-07-07  Nathan Sidwell  <nathan@codesourcery.com>
6047
6048         * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
6049         * config/m68k/m68k-devices.def: Remove multilibs that only differ
6050         by MAC/EMAC.
6051
6052 2008-07-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6053
6054         * gcc.c (execute): Fix -Wc++-compat warning.
6055
6056 2008-07-06  H.J. Lu  <hongjiu.lu@intel.com>
6057
6058         PR target/36720
6059         * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
6060         constant for little endian.
6061
6062 2008-07-06  Richard Sandiford  <rdsandiford@googlemail.com>
6063
6064         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
6065         mips_base_mips16 instead of TARGET_MIPS16.
6066         (mips_base_mips16): Declare.
6067         * config/mips/mips.c (mips_base_mips16): Make global.
6068         (was_mips16_p): Remove GTY marker.
6069         (was_mips16_pch_p): New variable.
6070         (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
6071         (mips_override_options): Force to non-MIPS16 mode initially.
6072         Do not complain about MIPS16 PIC incompatibilities here.
6073         Only allow -mgpopt if -mexplicit-relocs is in force for
6074         non-MIPS16 code.
6075
6076 2008-07-06  Andreas Tobler  <a.tobler@schweiz.org>
6077
6078         * configure.ac: Check for caddr_t, define to char * if not defined.
6079         * configure: Regenerate.
6080         * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
6081         (mmap_gt_pch_use_address): Likewise.
6082         * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
6083
6084 2008-07-06  Richard Guenther  <rguenther@suse.de>
6085
6086         * tree-ssa-structalias.c (struct variable_info): Remove has_union.
6087         (new_var_info): Deal with it.
6088         (solution_set_add): Likewise.
6089         (bitpos_of_field): Make signed, fix.
6090         (struct fieldoff): Remove type and decl fields.  Make size field
6091         unsigned HOST_WIDE_INT.  Add has_unknown_size and may_have_pointers
6092         flags.
6093         (fieldoff_compare): Deal with it.
6094         (push_fields_onto_fieldstack): Remove has_union argument, glob
6095         adjacent non-pointer fields together.
6096         (create_function_info_for): Do not set has_union.
6097         (create_variable_info_for): Simplify.
6098
6099 2008-07-06  Kai Tietz  <kai.tietz@onevision.com>
6100
6101         * config.gcc (extra_headers): Add cross-stdarg.h for target
6102         x86_64-*-* and i?86-*-*.
6103         * config/i386/cross-stdarg.h: New.
6104         * builtins.c (std_fn_abi_va_list): New.
6105         (std_canonical_va_list_type): New.
6106         (stabilize_va_list): Replace va_list_type_node use by
6107         mtarget.canonical_va_list_type.
6108         (gimplify_va_arg_expr): Likewise.
6109         (expand_builtin_va_copy): Replace va_list_type_node use by
6110         mtarget.fn_abi_va_list.
6111         * tree-sra.c (is_va_list_type): New helper.
6112         (decl_can_be_decomposed_p): Replace
6113         va_list_type_node use by is_va_list_type.
6114         * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
6115         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
6116         * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
6117         * config/i386/i386-protos.h (ix86_get_valist_type): New.
6118         (ix86_enum_va_list): New.
6119         * config/i386/i386.c (sysv_va_list_type_node): New.
6120         (ms_va_list_type_node): New.
6121         (ix86_function_type_abi): Remove sorry.
6122         (ix86_build_builtin_va_list_abi): New.
6123         (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
6124         for 64-bit targets.
6125         (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
6126         (ix86_init_builtins_va_builtins_abi): New.
6127         (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
6128         for 64-bit targets.
6129         (ix86_handle_abi_attribute): New.
6130         (attribute_spec): Add sysv_abi and ms_abi.
6131         (ix86_fn_abi_va_list): New.
6132         (ix86_canonical_va_list_type): New.
6133         (ix86_enum_va_list): New.
6134         (TARGET_FN_ABI_VA_LIST): New.
6135         (TARGET_CANONICAL_VA_LIST_TYPE): New.
6136         * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
6137         * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
6138         (TARGET_CANONICAL_VA_LIST_TYPE): New.
6139         (TARGET_ENUM_VA_LIST): New.
6140         * expr.h (std_fn_abi_va_list): New.
6141         (std_canonical_va_list_type): New.
6142         * target-def.h (TARGET_FN_ABI_VA_LIST): New.
6143         (TARGET_CANONICAL_VA_LIST_TYPE): New.
6144         (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
6145         TARGET_CANONICAL_VA_LIST_TYPE.
6146         * target.h (struct gcc_target): Add fn_abi_va_list hook
6147         and canonical_va_list_type hook.
6148
6149 2008-07-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6150
6151         * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
6152         integral and pointer types.
6153
6154 2008-07-04  Roger Sayle  <roger@eyesopen.com>
6155
6156         * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
6157         the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
6158
6159 2008-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
6160
6161         PR target/36684
6162         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
6163
6164 2008-07-04  Jakub Jelinek  <jakub@redhat.com>
6165
6166         * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
6167         build_gimple_modify_stmt.
6168         (build_arrays, gen_inbound_check): Likewise.  Force RHS to be
6169         gimple operand.  Use fold_build* instead of build*.
6170
6171 2008-07-04  Richard Guenther  <rguenther@suse.de>
6172
6173         * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
6174         (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
6175         properly to compute the reachability set if we do field-sensitive PTA.
6176         * invoke.texi (max-fields-for-field-sensitive): Document default.
6177         * opts.c (decode_options): Set max-fields-for-field-sensitive to
6178         100 for optimize >= 2.
6179
6180 2008-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6181
6182         * ggc-zone.c (lookup_page_table_if_allocated,
6183         set_page_table_entry, zone_find_object_size, alloc_small_page,
6184         alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
6185         new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
6186         -Wc++-compat and/or -Wcast-qual warnings.
6187
6188 2008-07-04  Alan Modra  <amodra@bigpond.net.au>
6189
6190         PR target/36634
6191         * config/rs6000/rs6000.md (call, call_value): Don't arrange for
6192         pic_offset_table_rtx to be marked as used here.
6193         (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
6194         TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
6195         (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
6196         (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
6197         !TARGET_SECURE_PLT.
6198
6199 2008-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6200
6201         * alloc-pool.c (hash_descriptor, eq_descriptor,
6202         alloc_pool_descriptor): Fix -Wc++-compat warnings.
6203         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
6204         Likewise.
6205         * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
6206         loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
6207         final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
6208         * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
6209         Likewise.
6210
6211 2008-07-03  Eric Botcazou  <ebotcazou@adacore.com>
6212
6213         * tree-flow.h (loop_only_exit_p): Declare.
6214         * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
6215         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
6216         the number of iterations if it is constant.  Otherwise, if this is the
6217         only possible exit of the loop, use the conservative estimate on the
6218         number of iterations of the entire loop if available.
6219
6220 2008-07-03  Richard Sandiford  <rdsandiford@googlemail.com>
6221
6222         * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
6223         * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
6224         Add synchronization functions.
6225         * config/sync.c: New file.
6226         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
6227         (LIBGCC_SYNC_CFLAGS): Likewise.
6228
6229 2008-07-03  Uros Bizjak  <ubizjak@gmail.com>
6230
6231         PR target/36710
6232         * config/i386/i386.md (mode): Add TF to "mode" attribute.
6233         (*pushtf_sse): New insn pattern.
6234         (pushtf splitters): New splitters.
6235
6236 2008-07-03  Michael Meissner  <gnu@the-meissners.org>
6237
6238         PR middle-end/35736
6239         * predict.c (build_predict_expr): Use void_type_node for the tree
6240         type, instead of NULL_TREE.
6241
6242 2008-07-03  H.J. Lu  <hongjiu.lu@intel.com>
6243
6244         * config/i386/i386.c (contains_aligned_value_p): Return true
6245         for TCmode.
6246         (ix86_data_alignment): Align TCmode to 128bits.
6247         (ix86_local_alignment): Likewise.
6248
6249 2008-07-03  Andrew Haley  <aph@redhat.com>
6250
6251         PR bootstrap/33304
6252         * vec.h (VEC_TA): New.
6253         (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
6254         DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
6255         * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
6256         (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
6257         (C_COMMON_FIXED_TYPES): Remove first arg.
6258         (C_COMMON_FIXED_MODE_TYPES): Likewise.
6259         * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
6260         MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
6261         not to use empty macro arguments.
6262
6263 2008-07-02  Joseph Myers  <joseph@codesourcery.com>
6264
6265         * config/alpha/vms_tramp.asm, config/arm/crti.asm,
6266         config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
6267         config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
6268         config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
6269         config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
6270         config/i386/sol2-gc1.asm, config/ia64/crti.asm,
6271         config/ia64/crtn.asm, config/m68hc11/larith.asm,
6272         config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
6273         config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
6274         config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
6275         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
6276         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
6277         config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
6278         config/rs6000/e500crtres64gpr.asm,
6279         config/rs6000/e500crtres64gprctr.asm,
6280         config/rs6000/e500crtrest32gpr.asm,
6281         config/rs6000/e500crtrest64gpr.asm,
6282         config/rs6000/e500crtresx32gpr.asm,
6283         config/rs6000/e500crtresx64gpr.asm,
6284         config/rs6000/e500crtsav32gpr.asm,
6285         config/rs6000/e500crtsav64gpr.asm,
6286         config/rs6000/e500crtsav64gprctr.asm,
6287         config/rs6000/e500crtsavg32gpr.asm,
6288         config/rs6000/e500crtsavg64gpr.asm,
6289         config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
6290         config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
6291         config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
6292         config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
6293         config/sparc/sol2-cn.asm: Remove .file directives.
6294
6295 2008-07-02  Richard Sandiford  <rdsandiford@googlemail.com>
6296
6297         * resource.c (mark_referenced_resources): Look inside
6298         UNSPEC_VOLATILEs and ASM_INPUTs.
6299
6300 2008-07-02  Ian Lance Taylor  <iant@google.com>
6301
6302         * rtlanal.c (add_reg_note): New function.
6303         * rtl.h (add_reg_note): Declare.
6304         * auto-inc-dec.c (attempt_change): Use add_reg_note.
6305         * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
6306         * builtins.c (expand_builtin_longjmp): Likewise.
6307         (expand_builtin_nonlocal_goto): Likewise.
6308         * calls.c (emit_call_1, expand_call): Likewise.
6309         * cfgexpand.c (add_reg_br_prob_note): Likewise.
6310         * cfglayout.c (fixup_reorder_chain): Likewise.
6311         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
6312         (commit_one_edge_insertion): Likewise.
6313         * combine.c (move_deaths, distribute_notes): Likewise.
6314         * df-problems.c (df_set_note): Likewise.
6315         * emit-rtl.c (link_cc0_insns, try_split): Likewise.
6316         (set_unique_reg_note): Likewise.
6317         (emit_copy_of_insn_after): Likewise.
6318         * expr.c (expand_expr_real): Likewise.
6319         * gcse.c (add_label_notes): Likewise.
6320         * haifa-sched.c (create_check_block_twin): Likewise.
6321         * jump.c (mark_jump_label_1): Likewise.
6322         * loop-doloop.c (add_test, doloop_modify): Likewise.
6323         * loop-unswitch.c (compare_and_jump_seq): Likewise.
6324         * lower-subreg.c (move_eh_region_note): Likewise.
6325         * optabs.c (emit_libcall_block): Likewise.
6326         * predict.c (predict_insn): Likewise.
6327         (combine_predictions_for_insn): Likewise.
6328         * recog.c (peephole2_optimize): Likewise.
6329         * regmove.c (try_auto_increment): Likewise.
6330         * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
6331         * reload.c (find_reloads): Likewise.
6332         * reload1.c (fixup_eh_region_note): Likewise.
6333         (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
6334         * reorg.c (delete_prior_computation): Likewise.
6335         (delete_computation, dbr_schedule): Likewise.
6336         * config/pa/pa.c (legitimize_pic_address): Likewise.
6337         * config/sh/sh.c (sh_reorg): Likewise.
6338
6339 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
6340
6341         PR target/36669
6342         * config/libgcc-glibc.ver: Add %exclude.
6343         * config/m32r/libgcc-glibc.ver: Likwise.
6344         * config/s390/libgcc-glibc.ver: Likwise.
6345         * config/sh/libgcc-glibc.ver: Likwise.
6346         * config/sparc/libgcc-sparc-glibc.ver: Likwise.
6347
6348         * config/i386/libgcc-glibc.ver: New.
6349
6350         * config/i386/libgcc-x86_64-glibc.ver: Removed.
6351
6352 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
6353
6354         * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
6355         from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
6356         i[34567]86-*-linux*, x86_64-*-linux*.  Add
6357         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
6358         i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
6359         x86_64-*-linux*.  Add i386/t-linux to tmake_file for
6360         i[34567]86-*-linux*, x86_64-*-linux*.
6361
6362         * libgcc-std.ver: Add empty GCC_4.4.0.
6363
6364         * mkmap-symver.awk: Support multiple versions per symbol.
6365
6366         * config/i386/i386.c (ix86_init_builtins): Always define
6367         __builtin_fabsq and __builtin_copysignq with fallbacks.
6368         (ix86_expand_builtin): Emit normal call for __builtin_fabsq
6369         and __builtin_copysignq if SSE2 isn't available.
6370
6371         * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
6372         (LIBGCC2_TF_CEXT): Likwise.
6373         (TF_SIZE): Likwise.
6374
6375         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
6376
6377         * config/i386/sfp-machine.h: Moved to libgcc.
6378
6379         * config/i386/sfp-machine.h: New.
6380         * config/i386/t-linux: Likwise.
6381
6382         * config/i386/t-darwin: Remove softfp_wrap_start and
6383         softfp_wrap_end.
6384         * config/i386/t-darwin64: Likewise.
6385
6386         * config/i386/t-fprules-softfp64: Renamed to ...
6387         * config/i386/t-fprules-softfp: This.
6388
6389         * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
6390         and softfp_wrap_end.
6391
6392 2008-07-02  Jason Merrill  <jason@redhat.com>
6393
6394         * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
6395
6396         * tree.c (ctor_to_list): New fn.
6397         * tree.h: Declare it.
6398         (CONSTRUCTOR_ELT): New macro.
6399         (CONSTRUCTOR_NELTS): New macro.
6400
6401 2008-07-02  Richard Guenther  <rguenther@suse.de>
6402
6403         * tree-ssa-structalias.c (struct variable_info): Reorder
6404         to fill padding on 64bit hosts.  Make collapsed_to an int.
6405         (get_varinfo_fc): Deal with that.
6406         (new_var_info): Likewise.
6407         (collapse_rest_of_var): Likewise.
6408
6409 2008-07-02  Joshua Sumali  <jsumali@redhat.com>
6410
6411         * doc/install.texi (--enable-java-home): Document.
6412         (--enable-aot-compile-rpm): Likewise.
6413         (--with-arch-directory): Likewise.
6414         (--with-os-directory): Likewise.
6415         (--with-origin-name): Likewise.
6416         (--with-arch-suffix): Likewise.
6417         (--with-jvm-root-dir): Likewise.
6418         (--with-jvm-jar-dir): Likewise.
6419         (--with-python-dir): Likewise.
6420
6421 2008-07-02  Richard Guenther  <rguenther@suse.de>
6422
6423         * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
6424         from decls explicitly.  Merge operand checking from tuples.
6425
6426 2008-07-02  Martin Jambor  <mjambor@suse.cz>
6427
6428         * tree-switch-conversion.c: Included timevar.h which I forgot before.
6429
6430 2008-07-02  Martin Jambor  <mjambor@suse.cz>
6431
6432         * tree-switch-conversion.c: Included timevar.h
6433         (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
6434
6435         * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
6436
6437 2008-07-02  Martin Jambor  <mjambor@suse.cz>
6438
6439         * tree-switch-conversion.c: Corrected various comments and
6440         whitespace issues
6441         (build_constructors): Fixed minor formatting mistakes.
6442
6443         * invoke.texi (Optimize Options): Corrected the
6444         switch-conversion-max-branch-ratio parameter.
6445
6446 2008-07-02  Mark Shinwell  <shinwell@codesourcery.com>
6447
6448         * final.c (asm_insn_count): Return zero for an empty asm body.
6449
6450 2008-07-02  Richard Guenther  <rguenther@suse.de>
6451
6452         * bitmap.h (bitmap_set_bit): Return bool.
6453         (bitmap_clear_bit): Likewise.
6454         * bitmap.c (bitmap_set_bit): Return if the bit changed.  Only
6455         write to the bitmap if it would.
6456         (bitmap_clear_bit): Likewise.
6457         * tree-ssa-structalias.c (add_implicit_graph_edge): Use
6458         bitmap_set_bit return value.
6459         (add_pred_graph_edge): Likewise.
6460         (add_graph_edge): Likewise.
6461         (do_sd_constraint): Likewise.
6462         (do_ds_constraint): Likewise.
6463
6464 2008-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6465
6466         * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
6467         Fix -Wc++-compat and/or -Wcast-qual warnings.
6468         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
6469         gen_regparm_prefix): Likewise.
6470         * vmsdbgout.c (write_modbeg, lookup_filename,
6471         vmsdbgout_source_line, vmsdbgout_init): Likewise.
6472
6473 2008-07-02  Danny Smith  <dannysmith@users.sourceforge.net>
6474
6475         * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
6476         defaults.h definition apply.
6477
6478 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
6479
6480         * function.c (assign_parm_remove_parallels): New.
6481         (assign_parm_setup_block_p): Do not return true for non-BLKmode
6482         PARALLELs.
6483         (assign_parm_setup_block): Do not handle them.
6484         (assign_parm_setup_reg, assign_parm_setup_stack): Call
6485         assign_parm_remove_parallels.
6486
6487 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
6488
6489         * c-typeck.c (convert_for_assignment): Use
6490         vector_targets_convertible_p.
6491         * c-common.c (vector_targets_convertible_p): New.
6492         * c-common.h (vector_targets_convertible_p): New prototype.
6493         * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
6494         opaque_p_V2SI_type_node.
6495
6496 2008-07-01  Steve Ellcey  <sje@cup.hp.com>
6497
6498         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
6499         RFmode constants.
6500
6501 2008-07-01  Uros Bizjak  <ubizjak@gmail.com>
6502
6503         * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
6504         TFmode constants via two element DImode vector for hosts with
6505         HOST_BITS_PER_WIDE_INT < 64.
6506         (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
6507         also for HOST_BITS_PER_WIDE_INT < 64.
6508
6509 2008-07-01  Richard Guenther  <rguenther@suse.de>
6510
6511         PR tree-optimization/36666
6512         * tree-ssa-structalias.c (get_constraint_for_1): Declare.
6513         (get_constraint_exp_from_ssa_var): Split into ...
6514         (get_constraint_exp_for_temp): ... this ...
6515         (get_constraint_for_ssa_var): ... and that.
6516         Return constraint expressions for all touched sub-fields
6517         if the results address is not taken.
6518         (process_constraint): Remove assertion that aggregate
6519         assignments do not happen at this place.
6520         (get_constraint_for_component_ref): Add address_p argument.
6521         Return constraint expressions for all touched sub-fields
6522         if the results address is not taken.
6523         (do_deref): Use get_constraint_exp_for_temp.
6524         (get_constraint_for_1): Rename from ...
6525         (get_constraint_for): ... this.  Add the old function as wrapper.
6526         (do_structure_copy): Use get_constraint_for_1.
6527
6528 2008-07-01  Martin Jambor  <mjambor@suse.cz>
6529
6530         * Makefile.in (tree-switch-conversion.o): Add.
6531         (OBJS-common): Add tree-swtch-conversion.o.
6532         * passes.c (init_optimization_passes): Add pass_convert_switch.
6533         * tree-pass.h: (pass_convert_switch): Add.
6534         * tree-switch-conversion.c: New file.
6535         * gcc.dg/tree-ssa/cswtch.c: New testcase.
6536         * common.opt (ftree-cswtch): New option.
6537         * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
6538         * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
6539         * opts.c (decode_options): Set flag_tree_switch_conversion when
6540         optimization level is >= 2.
6541         * doc/invoke.texi (Optimize Options): Added description of
6542         -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
6543
6544 2008-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6545
6546         * config/darwin-driver.c (darwin_default_min_version): Fix
6547         -Wc++-compat warnings.
6548
6549 2008-06-30  Uros Bizjak  <ubizjak@gmail.com>
6550
6551         * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
6552         of operand 0.
6553
6554 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
6555
6556         * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
6557
6558 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
6559
6560         PR rtl-optimization/34744
6561         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
6562         (df_scan_free_internal): Free data structures not
6563         allocated in storage pools.
6564         (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
6565         (df_refs_add_to_chains): Use df_scan_free_ref_vec and
6566         df_scan_free_mws_vec.
6567         * dse.c (dse_step6): Free offset_map_p and offset_map_n
6568         unconditionally.
6569
6570 2008-06-30  H.J. Lu  <hongjiu.lu@intel.com>
6571
6572         * config/i386/i386.c (contains_aligned_value_p): Return true
6573         for __float128.
6574         (ix86_function_arg_boundary): Return its natural boundary
6575         for __float128.
6576         (return_in_memory_32): Don't check TDmode.
6577         (ix86_split_to_parts): Support splitting into 4 parts and
6578         support TFmode for 32bit target.
6579         (ix86_split_long_move): Support splitting into 4 parts.
6580         (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
6581         for SSE2.
6582         (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
6583         (ix86_init_builtins): Here.
6584         (ix86_scalar_mode_supported_p): Always return true for TFmode.
6585         (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
6586         'q' and 'w', respectively.
6587
6588         * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
6589         TARGET_64BIT.
6590         (movtf_internal): Likewise.
6591         (<code>tf2): Likewise.
6592         (*absnegtf2_sse): Likewise.
6593         (copysign<mode>3): Likewise.
6594         (copysign<mode>3_const): Likewise.
6595         (copysign<mode>3_var): Likewise.
6596         (define_split UNSPEC_COPYSIGN): Likewise.
6597         * config/i386/sse.md (*nandtf3): Likewise.
6598         (<code>tf3): Likewise.
6599         (*<code>tf3): Likewise.
6600
6601 2008-06-30  Joey Ye  <joey.ye@intel.com>
6602             H.J. Lu  <hongjiu.lu@intel.com>
6603
6604         * global.c (compute_regsets): Set frame_pointer_needed here.
6605         * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
6606
6607 2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
6608
6609         * doc/install.texi (specific): Expand Windows build notes.
6610
6611 2008-06-30  Ira Rosen  <irar@il.ibm.com>
6612
6613         PR tree-optimization/36648
6614         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
6615         number of prolog iterations by step. Fix the comment.
6616
6617 2008-06-30  Richard Guenther  <rguenther@suse.de>
6618
6619         PR middle-end/36671
6620         * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
6621         handle calls from ECF_MALLOC functions.
6622         (handle_pure_call): ECF_MALLOC functions do not return
6623         call-used memory.
6624         (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
6625
6626 2008-06-29  Andreas Schwab  <schwab@suse.de>
6627
6628         * config/m68k/m68k.c (print_operand): Always print a float
6629         constant in hex.
6630         * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
6631         (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
6632         Remove macros.
6633
6634         * config/rs6000/x-linux64: Remove never used file.
6635
6636 2008-06-29  Richard Guenther  <rguenther@suse.de>
6637
6638         * tree-ssa-structalias.h (compute_points_to_sets): Adjust
6639         prototype.
6640         (struct alias_info): Move ...
6641         * tree-ssa-alias.c: ... here.
6642         (update_alias_info): Declare.
6643         (compute_may_aliases): Call it.
6644         (update_alias_info): New function.
6645         * tree-ssa-structalias.c (update_alias_info): Move ...
6646         * tree-ssa-alias.c (update_alias_info_1): ... here.
6647         * tree-ssa-structalias.c (process_constraint_1): Remove
6648         unused from_call argument.  Rename to ...
6649         (process_constraint): ... this.  Delete old wrapper.
6650         (make_constraint_to): Adjust callers.
6651         (handle_const_call): Likewise.
6652         (handle_pure_call): Likewise.
6653         (init_base_vars): Likewise.
6654         (handle_lhs_call): Likewise.  Remove unnecessary constraint.
6655         (find_func_aliases): We don't need structure copies for
6656         complex types.
6657         (make_constraint_from_anything): Remove.
6658         (create_variable_info_for): For globals make constraints
6659         from escaped, not from anything.
6660         (compute_points_to_sets): Do not call update_alias_info.
6661         (ipa_pta_execute): Use make_constraint_from.
6662
6663 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6664
6665         * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
6666         (bitmap.o-warn, dominance.o-warn): New.
6667         * configure.ac (cxx_compat_warn): Delete.
6668         (loose_warn): Add -Wcast-qual and -Wc++-compat.
6669         * system.h: Remove #pragma diagnostic for -Wcast-qual and
6670         -Wc++-compat.
6671         * configure: Regenerate.
6672
6673         * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
6674         warnings.
6675
6676 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6677
6678         * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
6679         * df-scan.c (df_notes_rescan): Likewise.
6680         * ggc-page.c (set_page_table_entry): Likewise.
6681         * intl.c (gcc_gettext_width): Likewise.
6682         * varasm.c (get_unnamed_section, get_noswitch_section,
6683         get_section): Likewise.
6684
6685 2008-06-28  Andrew Jenner  <andrew@codesourcery.com>
6686
6687         * regrename.c (build_def_use): Don't copy RTX.
6688
6689 2008-06-28  Sandra Loosemore  <sandra@codesourcery.com>
6690
6691         * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
6692         (Type Attributes): Fix nesting of @table and @subsection.  Adjust
6693         punctuation.  Use @ref instead of @xref.
6694         (Function Names): Remove stray @display/@end display.
6695         (C++ Attributes): Use @ref instead of @xref.
6696         (Deprecated Features): Fix punctuation around @xref.
6697         (Backwards Compatibility): Likewise.
6698         * doc/rtl.texi (Incdec): Remove stray @table/@end table.
6699
6700 2008-06-28  Joseph Myers  <joseph@codesourcery.com>
6701
6702         * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
6703         constants for E500 double.
6704
6705 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6706
6707         * doc/rtl.texi (const_vector): Document const_fixed as legitimate
6708         element type of const_vector.
6709
6710 2008-06-28  Uros Bizjak  <ubizjak@gmail.com>
6711
6712         * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
6713         Remove FLAGS_REG clobber from expander pattern.
6714         (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
6715         (anddi3, andsi3, andhi3, andqi3): Ditto.
6716         (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
6717         (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
6718         (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
6719         (ashlsi3, ashlhi3, ashlqi3): Ditto.
6720         (ashrsi3, ashrhi3, ashrqi3): Ditto.
6721         (lshrsi3, lshrhi3, lshrqi3): Ditto.
6722         (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
6723         (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
6724
6725 2008-06-28  Richard Guenther  <rguenther@suse.de>
6726
6727         * tree-ssa-structalias.c (callused_id, var_callused,
6728         callused_tree): Add.
6729         (handle_pure_call): New function.
6730         (find_func_aliases): Call it.
6731         (find_what_p_points_to): Handle the call-used set.
6732         (clobber_what_escaped): Likewise.
6733         (compute_call_used_vars): New function.
6734         (init_base_vars): Init the call-used variable.
6735         (do_sd_constraint): Do not propagate the solution from CALLUSED
6736         but use CALLUSED as a placeholder.
6737         (solve_graph): Likewise.
6738         * tree-flow-inline.h (gimple_call_used_vars): New function.
6739         * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
6740         (compute_call_used_vars): Declare.
6741         * tree-ssa-alias.c (set_initial_properties): Call
6742         compute_call_used_vars.
6743         (reset_alias_info): Clear call-used variables.
6744         (add_call_clobber_ops): Assert we are not called for const/pure
6745         functions.  Remove handling of them.
6746         (add_call_read_ops): Handle pure functions by adding the
6747         call-used set of variables as VUSEs.
6748         * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
6749         (delete_tree_ssa): Free it.
6750         * tree-dfa.c (remove_referenced_var): Clear the var from the
6751         call-used bitmap.
6752
6753 2008-06-28  Kai Tietz  <kai.tietz@onevision.com>
6754
6755         * tree.c (build_varargs_function_type_list): New.
6756         (build_function_type_list_1): New.
6757         (build_function_type_list): Use build_function_type_list_1.
6758         * tree.h (build_varargs_function_type_list): New.
6759
6760 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6761
6762         PR target/34856
6763         * config/spu/spu.c (spu_builtin_splats): Do not generate
6764         invalid CONST_VECTOR expressions.
6765         (spu_expand_vector_init): Likewise.
6766
6767 2008-06-28  Richard Sandiford  <rdsandiford@googlemail.com>
6768
6769         * optabs.c (libfunc_decls): New variable.
6770         (libfunc_decl_hash, libfunc_decl_eq): New functions.
6771         (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
6772         for the same function twice.
6773
6774 2008-06-27  Uros Bizjak  <ubizjak@gmail.com>
6775
6776         * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
6777         ix86_expand_binary_operator directly.
6778         (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
6779         for operand 2.
6780         (*ashrti3_1): Ditto.
6781         (*lshrti3_1): Ditto.
6782         (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
6783         (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
6784         using only one splitter.  Conditionaly execute splitter before or
6785         after peephole2 pass.
6786         (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
6787         (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
6788         Use only one alternative in asm template.
6789         (x86_64_shld): Compress operand 2 constraints. Use only one alternative
6790         in asm template.
6791         (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
6792         "J" operand constraint for operand 2.
6793         (*ashldi3_cconly_rex64): Ditto.
6794         (*ashrdi3_cmp_rex64): Ditto.
6795         (*ashrdi3_cconly_rex64): Ditto.
6796         (*lshrdi3_cmp_rex64): Ditto.
6797         (*lshrdi3_cconly_rex64): Ditto.
6798         * config/i386/predicates.md (const_1_to_63_operand): New predicate.
6799         * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
6800         (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
6801         gen_x86_shrd_1.
6802
6803 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
6804
6805         * gimplify.c (omp_is_private): Don't return true if decl is not
6806         already private on #pragma omp for or #pragma omp parallel for.
6807
6808         PR debug/36617
6809         * tree-cfg.c (struct move_stmt_d): Replace block field with
6810         orig_block and new_block fields.
6811         (move_stmt_r): Only set TREE_BLOCK to p->new_block if
6812         if it used to be NULL, p->orig_block or if p->orig_block is NULL.
6813         (move_block_to_fn): Replace vars_map and new_label_map arguments
6814         with struct move_stmt_d pointer.
6815         (replace_block_vars_by_duplicates): New function.
6816         (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
6817         move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
6818         all subblocks of ORIG_BLOCK to the new function.  Call
6819         replace_block_vars_by_duplicates.
6820         * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
6821         * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
6822         BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
6823         Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
6824         (expand_omp): Temporarily set input_location to the location of
6825         region's controlling stmt.
6826         (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
6827         BIND_EXPR, push ctx->block_vars and gimplification vars into
6828         the BIND_EXPR and its block's BLOCK_VARS instead of directly
6829         into dest function.
6830         (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
6831         there are any BLOCK_VARS.
6832         (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
6833         OMP_PARALLEL or OMP_TASK stmt.
6834         (lower_omp): Save and restore input_location around the lower_omp_1
6835         call.
6836
6837 2008-06-27  Richard Guenther  <rguenther@suse.de>
6838
6839         PR tree-optimization/36400
6840         PR tree-optimization/36373
6841         PR tree-optimization/36344
6842         * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
6843         var_nonlocal, nonlocal_tree, nonlocal_id): New globals
6844         (update_alias_info): Remove call clobbering code.
6845         (make_constraint_to): New helper function.
6846         (make_escape_constraint): Likewise.
6847         (handle_rhs_call): Use it on all pointer containing arguments.
6848         Also mark the static chain escaped.
6849         (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
6850         instead of ANYTHING.
6851         (make_constraint_from): New helper split out from ...
6852         (make_constraint_from_anything): ... here.
6853         (find_func_aliases): Add constraints for escape sites.
6854         (intra_create_variable_infos): Make constraints from NONLOCAL
6855         for parameters.
6856         (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
6857         as ANYTHING.
6858         (clobber_what_p_points_to): Remove.
6859         (clobber_what_escaped): New function.
6860         (init_base_vars): Init NONLOCAL and ESCAPED.
6861         (do_sd_constraint): Do not propagate the solution from ESCAPED
6862         but use ESCAPED as a placeholder.
6863         (solve_graph): Likewise.
6864         * tree-flow.h (clobber_what_p_points_to): Remove.
6865         (clobber_what_escaped): Declare.
6866         * tree-ssa-alias.c (set_initial_properties): Call it.
6867         Remove code clobbering escaped pointers.
6868
6869 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
6870
6871         * function.c (allocate_struct_function): Only allocate a unique
6872         funcdef_no if the decl is nonzero.
6873
6874 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
6875
6876         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
6877         * config/mips/mips.c (mips_split_const_insns): New function.
6878         * config/mips/mips.md (move_type): New attribute.
6879         (mode): Move attribute definition earlier in file.  Add "TI" and "TF".
6880         (dword_mode): New attribute.
6881         (type): Avoid long line.  Map "move_type"s to "type"s,
6882         choosing "multi" for doubleword moves if appropriate.
6883         Swap MTC/MFC comments to match their declaration order.
6884         (extended_mips16): Default to "yes" if "move_type" is "sll0",
6885         "type" is "branch" or "jal" is "direct".
6886         (length): Handle "extended_mips16" first.  Make the default
6887         "0" for "ghost" instructions.  Set the length from "move_type".
6888         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
6889         of "type", with "sll0" for the register alternative.  Remove the
6890         "extended_mips16" attribute.
6891         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
6892         of "type", with "shift_shift" for the register alternative.
6893         Remove the "length" attribute.
6894         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
6895         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
6896         of "type", with "andi" for the register alternative.
6897         (*zero_extendqihi2): Likewise.
6898         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
6899         of "andi" instead of a "type" of "arith".
6900         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
6901         instead of "type".
6902         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
6903         (mov_<store>r, *mov<mode>_ra): Likewise.
6904         (extendsidi2): Use "move_type" instead of "type", with "move"
6905         for the register alternative.
6906         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
6907         of "type", with "signext" for the register alternative.
6908         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
6909         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
6910         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
6911         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
6912         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
6913         (unnamed branch insn): Likewise.
6914         (*movdi_gp32_fp64): Fold into...
6915         (*movdi_32bit): ...here.
6916         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
6917         (*movdf_hardfloat): ...this new pattern.
6918         (*movdf_softfloat): Remove redundant FPR alternatives.
6919         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
6920         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
6921         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
6922         the "move" attribute.
6923         (*movdi_32bit): Use "move_type" instead of "type" and remove the
6924         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
6925         and "store" for COP loads and stores.
6926         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
6927         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
6928         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
6929         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
6930         (*movtf_mips16, *movv2sf): Likewise.
6931         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
6932         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
6933         (mfhc1<mode>): Use "move_type" instead of "move".
6934         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
6935         (loadgp_blockage): Remove the "length" attribute.
6936         (blockage, set_got_version, update_got_version): Likewise.
6937         (call_internal): Remove the "extended_mips16" attribute.
6938         (call_value_internal, call_value_multiple_internal): Likewise.
6939         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
6940         instead of "move".
6941         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
6942         the "length" attribute.
6943
6944 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6945
6946         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
6947         -Wcast-qual warnings.
6948         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
6949         handle_pragma_pop_macro): Likewise.
6950         * collect2.c (resolve_lib_name): Likewise.
6951         * config/arc/arc.c (arc_init): Likewise.
6952         * config/arm/arm.c (neon_builtin_compare,
6953         locate_neon_builtin_icode): Likewise.
6954         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
6955         * config/bfin/bfin.c (bfin_init_machine_status,
6956         bfin_optimize_loop): Likewise.
6957         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
6958         * config/cris/cris.c (cris_init_expanders): Likewise.
6959         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
6960         * config/darwin.c (machopic_indirection_eq,
6961         machopic_indirection_name, machopic_output_indirection): Likewise.
6962         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
6963         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
6964         frv_optimize_membar): Likewise.
6965         * config/i386/cygwin.h (mingw_scan,
6966         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
6967         * config/i386/cygwin1.c (mingw_scan): Likewise.
6968         * config/i386/i386.c (machopic_output_stub): Likewise.
6969         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
6970         i386_pe_unique_section): Likewise.
6971         * config/ia64/ia64.c (ia64_init_machine_status,
6972         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
6973         Likewise.
6974         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
6975         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
6976         * config/m68k/m68k.c (m68k_handle_option,
6977         m68k_sched_md_init_global): Likewise.
6978         * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
6979         mcore_unique_section): Likewise.
6980         * config/mips/mips.c (mips_block_move_straight,
6981         mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
6982         Likewise.
6983         * config/mmix/mmix.c (mmix_init_machine_status,
6984         mmix_encode_section_info): Likewise.
6985         * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
6986         * config/rs6000/rs6000.c (rs6000_init_machine_status,
6987         print_operand_address, output_toc, redefine_groups,
6988         rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
6989         * config/s390/s390.c (s390_init_machine_status): Likewise.
6990         * config/score/score.c (score_block_move_straight,
6991         score_block_move_loop_body): Likewise.
6992         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
6993         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
6994         * emit-rtl.c (find_auto_inc): Likewise.
6995         * gcc.c (translate_options, process_command): Likewise.
6996         * reorg.c (dbr_schedule): Likewise.
6997         * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
6998         * xcoffout.c (xcoffout_declare_function): Likewise.
6999
7000 2008-06-27  Daniel Berlin  <dberlin@dberlin.org>
7001
7002         * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
7003         ipa-pta working again.
7004
7005 2008-06-27  David Edelsohn  <edelsohn@gnu.org>
7006
7007         * config/rs6000/t-aix52: Append large data option to LDFLAGS for
7008         genautomata.
7009
7010 2008-06-27  Edmar Wienskoski  <edmar@freescale.com>
7011
7012         * config.gcc (powerpc*-*-*): Add new core e500mc.
7013         * config/rs6000/e500mc.md: New file.
7014         * config/rs6000/rs6000.c (processor_costs): Add new costs for
7015         e500mc.
7016         (rs6000_override_options): Add e500mc case to
7017         processor_target_table. Altivec and Spe options not allowed
7018         with e500mc. Add isel instruction to e500mc by
7019         default. Initialize rs6000_cost for e500mc.
7020         (rs6000_issue_rate): Set issue rate for e500mc.
7021         * config/rs6000/rs6000.h (processor_type): Add
7022         PROCESSOR_PPCE500MC.
7023         (ASM_CPU_SPEC): Add e500mc.
7024         Set TARGET_ISEL to rs6000_isel.
7025         * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
7026         (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
7027         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
7028         Include e500mc.md.
7029         * doc/invoke.texi: Add e500mc to list of cpus.
7030
7031 2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7032
7033         PR c/34867
7034         * c-lex.c (lex_charconst): Initialize unsignedp.
7035
7036 2008-06-27  Olivier Hainque  <hainque@adacore.com>
7037
7038         * gimplify.c (gimplify_modify_expr_to_memset): Assert our
7039         documented assumptions.
7040
7041 2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>
7042
7043         * dwarf2out.c: Remove trailing white spaces.  Break long line
7044         in comments.
7045
7046 2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>
7047
7048         * libfuncs.h (LTI_synchronize): New libfunc_index.
7049         (synchronize_libfunc): Declare.
7050         * builtins.c (expand_builtin_synchronize): Consider using
7051         synchronize_libfunc before falling back on an asm blockage.
7052         * config/mips/mips.c: Include libfuncs.h
7053         (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
7054
7055 2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>
7056
7057         * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
7058         parameter.  Copy stack_reg to r11 where appropriate.
7059         (no_global_regs_above): Add gpr parameter.
7060         (rs6000_stack_info): Only add padding for SPE save area if we
7061         are saving SPE GPRs and CR.
7062         (saveres_routine_syms): New variable.
7063         (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
7064         Define.
7065         (rs6000_savres_routine_sym): New function.
7066         (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
7067         split out of...
7068         (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
7069         rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
7070         Tweak FPR out-of-line saving.
7071         (rs6000_make_savres_rtx): New function.
7072         (rs6000_use_multiple_p): New function.
7073         (rs6000_savres_strategy): New function.
7074         (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
7075         out-of-line if appropriate.
7076         * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
7077         if we are optimizing for size.
7078         (GP_SAVE_INLINE): Define.
7079         (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
7080         * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
7081         * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
7082         * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
7083         (*save_fpregs_<mode>): Add use of r11.
7084         (*restore_gpregs_<mode>): New insn.
7085         (*return_and_restore_gpregs_<mode>): New insn.
7086         (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
7087         use r11.
7088         * config/rs6000/spe.md (*save_gpregs_spe): New insn.
7089         (*restore_gpregs_spe): New insn.
7090         (*return_and_restore_gpregs_spe): New insn.
7091         * config/rs6000/predicates.md (save_world_operation): Fix check.
7092
7093 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
7094
7095         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
7096         this point, so assert that.
7097
7098 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
7099
7100         * cfganal.c: Include vec.h and vecprim.h.
7101         (compute_idf): Import from...
7102         * tree-into-ssa (compute_idf): ...here.
7103         * basic-block.h (compute_idf): Export.
7104
7105 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
7106
7107         * c-decl.c (merge_decls): Use !current_function_decl to check for
7108         extern declaration of C99 inline function being at file scope.
7109
7110 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
7111
7112         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
7113
7114 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7115
7116         * alias.c (record_alias_subset, init_alias_analysis): Fix
7117         -Wc++-compat and/or -Wcast-qual warnings.
7118         * attribs.c (lookup_attribute_spec): Likewise.
7119         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
7120         copy_bb, connect_traces,
7121         find_rarely_executed_basic_blocks_and_cr): Likewise.
7122         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
7123         note_btr_set, migrate_btr_defs): Likewise.
7124         * builtins.c (result_vector, expand_builtin_memcpy,
7125         expand_builtin_mempcpy_args, expand_builtin_strncpy,
7126         builtin_memset_read_str, expand_builtin_printf,
7127         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
7128         Likewise.
7129         * caller-save.c (mark_set_regs): Likewise.
7130         * calls.c (expand_call, emit_library_call_value_1): Likewise.
7131         * cgraph.c (cgraph_edge): Likewise.
7132         * combine.c (likely_spilled_retval_1): Likewise.
7133         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
7134         htab_counts_entry_del, get_coverage_counts): Likewise.
7135         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
7136         new_cselib_val): Likewise.
7137         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
7138         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
7139         Likewise.
7140         * df-core.c (df_compact_blocks): Likewise.
7141         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
7142         * df-scan.c (df_grow_reg_info, df_ref_create,
7143         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
7144         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
7145         df_record_entry_block_defs, df_record_exit_block_uses,
7146         df_bb_verify): Likewise.
7147         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
7148         DF_REF_EXTRACT_MODE_CONST): New.
7149         * dominance.c (get_immediate_dominator, get_dominated_by,
7150         nearest_common_dominator, root_of_dom_tree,
7151         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
7152         -Wc++-compat and/or -Wcast-qual warnings.
7153         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
7154         record_store, replace_read, check_mem_read_rtx, scan_insn,
7155         dse_step1, dse_record_singleton_alias_set): Likewise.
7156         * dwarf2asm.c (dw2_force_const_mem): Likewise.
7157
7158 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7159
7160         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
7161         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
7162         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
7163         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
7164         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
7165         add_ranges_num, add_ranges_by_labels, file_info_cmp,
7166         file_name_acquire, output_file_names, add_const_value_attribute,
7167         premark_used_types_helper, file_table_eq, file_table_hash,
7168         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
7169         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
7170         -Wcast-qual warnings.
7171         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
7172         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
7173         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
7174         gen_reg_rtx, start_sequence, init_emit): Likewise.
7175         * et-forest.c (et_new_occ, et_new_tree): Likewise.
7176         * except.c (init_eh_for_function, gen_eh_region,
7177         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
7178         arh_to_landing_pad, arh_to_label, add_action_record,
7179         add_call_site, switch_to_exception_section): Likewise.
7180         * expmed.c (synth_mult): Likewise.
7181         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
7182         store_expr): Likewise.
7183         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
7184         Likewise.
7185         * function.c (assign_stack_temp_for_type,
7186         allocate_struct_function, match_asm_constraints_1): Likewise.
7187         * gcov-io.c (gcov_allocate): Likewise.
7188         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
7189         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
7190         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
7191         record_one_set, insert_expr_in_table, insert_set_in_table,
7192         dump_hash_table, compute_hash_table_work, alloc_hash_table,
7193         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
7194         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
7195         -Wcast-qual warnings.
7196
7197 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7198
7199         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
7200         -Wcast-qual warnings.
7201         * gcc.c (process_command): Likewise.
7202         * genattrtab.c (oballoc): Use XOBNEW.
7203         (oballocvec): Define.
7204         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
7205         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
7206         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
7207         -Wc++-compat and/or -Wcast-qual warnings.
7208         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
7209         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
7210         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
7211         gen_presence_absence_set, gen_automaton, gen_regexp_el,
7212         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
7213         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
7214         add_excls, process_presence_absence_names,
7215         process_presence_absence_patterns, add_presence_absence,
7216         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
7217         get_free_state, add_arc, get_free_automata_list_el,
7218         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
7219         transform_3, cache_presence, create_ainsns, create_automata,
7220         create_state_ainsn_table, dfa_insn_code_enlarge,
7221         output_trans_func, output_min_issue_delay_func,
7222         output_dead_lock_func, output_reset_func,
7223         output_get_cpu_unit_code_func, output_dfa_start_func,
7224         expand_automata): Likewise.
7225         * genextract.c (gen_insn): Likewise.
7226         * gengtype-lex.l: Likewise.
7227         * gengtype.c (read_input_list, adjust_field_type,
7228         process_gc_options): Likewise.
7229         * genoutput.c (note_constraint): Likewise.
7230         * genpreds.c (mangle, add_constraint): Likewise.
7231         * genrecog.c (process_define_predicate, new_decision,
7232         add_to_sequence): Likewise.
7233         * gensupport.c (record_insn_name): Likewise.
7234
7235 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7236
7237         * config/i386/driver-i386.c (detect_caches_amd,
7238         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
7239         and/or -Wcast-qual warnings.
7240         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
7241         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
7242         gt_pch_save): Likewise.
7243         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
7244         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
7245         * global.c (compute_regsets): Likewise.
7246         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
7247         finish_graph_dump_file): Likewise.
7248         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
7249         unlink_bb_notes): Likewise.
7250         * integrate.c (get_hard_reg_initial_val): Likewise.
7251         * ipa-prop.c (ipa_push_func_to_list): Likewise.
7252         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
7253         * local-alloc.c (update_equiv_regs): Likewise.
7254         * loop-invariant.c (check_invariant_table_size,
7255         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
7256         Likewise.
7257         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
7258         altered_reg_used, mark_altered): Likewise.
7259         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
7260         insert_var_expansion_initialization,
7261         combine_var_copies_in_loop_exit, apply_opt_in_copies,
7262         release_var_copies): Likewise.
7263         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
7264         analyze_matrix_decl, add_allocation_site, analyze_transpose,
7265         analyze_accesses_for_phi_node, check_var_notmodified_p,
7266         check_allocation_function, find_sites_in_func,
7267         record_all_accesses_in_func, transform_access_sites,
7268         transform_allocation_sites): Likewise.
7269         * omp-low.c (new_omp_region, create_omp_child_function_name,
7270         check_omp_nesting_restrictions, check_combined_parallel,
7271         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
7272         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
7273         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
7274         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
7275         Likewise.
7276         * opts-common.c (prune_options): Likewise.
7277         * opts.c (add_input_filename, print_filtered_help,
7278         get_option_state): Likewise.
7279         * params.c (add_params): Likewise.
7280         * passes.c (set_pass_for_id, next_pass_1,
7281         do_per_function_toporder, pass_fini_dump_file): Likewise.
7282         * postreload.c (reload_cse_simplify_operands): Likewise.
7283         * predict.c (tree_predicted_by_p, tree_predict_edge,
7284         clear_bb_predictions, combine_predictions_for_bb): Likewise.
7285
7286 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7287
7288         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
7289         warnings.
7290         * recog.c (check_asm_operands, validate_change_1): Likewise.
7291         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
7292         subst_asm_stack_regs): Likewise.
7293         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
7294         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
7295         * regmove.c (reg_is_remote_constant_p): Likewise.
7296         * regrename.c (regrename_optimize, scan_rtx_reg,
7297         kill_clobbered_value, kill_set_value, kill_autoinc_value):
7298         Likewise.
7299         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
7300         regstat_compute_calls_crossed): Likewise.
7301         * reload1.c (init_reload, new_insn_chain,
7302         has_nonexceptional_receiver, reload, copy_reloads,
7303         calculate_needs_all_insns, init_elim_table): Likewise.
7304         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
7305         * rtl.c (shallow_copy_rtx_stat): Likewise.
7306         * rtlanal.c (parms_set): Likewise.
7307         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
7308         sbitmap_resize, sbitmap_vector_alloc): Likewise.
7309         * sched-ebb.c (earliest_block_with_similiar_load,
7310         add_deps_for_risky_insns): Likewise.
7311         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
7312         schedule_region): Likewise.
7313         * see.c (eq_descriptor_pre_extension,
7314         hash_descriptor_pre_extension, hash_del_pre_extension,
7315         eq_descriptor_properties, hash_descriptor_properties,
7316         hash_del_properties, see_seek_pre_extension_expr,
7317         see_initialize_data_structures, see_print_register_properties,
7318         see_print_pre_extension_expr, see_delete_merged_def_extension,
7319         see_delete_unmerged_def_extension, see_emit_use_extension,
7320         see_pre_delete_extension, see_map_extension, see_commit_changes,
7321         see_analyze_merged_def_local_prop,
7322         see_analyze_merged_def_local_prop,
7323         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
7324         see_set_prop_merged_def, see_set_prop_unmerged_def,
7325         see_set_prop_unmerged_use, see_print_one_extension,
7326         see_merge_one_use_extension, see_merge_one_def_extension,
7327         see_store_reference_and_extension, see_update_uses_relevancy,
7328         see_update_defs_relevancy): Likewise.
7329         * statistics.c (hash_statistics_hash, hash_statistics_eq,
7330         hash_statistics_free, curr_statistics_hash): Likewise.
7331         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
7332         expand_asm_operands, expand_return, case_bit_test_cmp,
7333         expand_case): Likewise.
7334         * stor-layout.c (start_record_layout): Likewise.
7335         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
7336         gt_pch_save_stringpool): Likewise.
7337         * tree-data-ref.c (hash_stmt_vertex_info,
7338         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
7339         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
7340
7341 2008-06-25  Uros Bizjak  <ubizjak@gmail.com>
7342
7343         PR target/36627
7344         * config/i386/i386.md : Change constraints of HImode and QImode
7345         immediate operands from "i" to "n".  Change SImode "ni" constraint to
7346         "i" and SImode "rmi" constraint to "g".  Remove all constraints
7347         from const0_operand and const1_operand predicated operands.
7348         (i): Change QImode and HImode attribute from "i" to "n".
7349         (*subqi_2): Change HImode operands to QImode.
7350         (*subqi_3): Ditto.
7351
7352 2008-06-25  Olivier Hainque  <hainque@adacore.com>
7353
7354         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
7355         sed substitutions.
7356
7357 2008-06-25  Richard Guenther  <rguenther@suse.de>
7358
7359         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
7360         not overflow the result type.
7361
7362 2008-06-25  Richard Guenther  <rguenther@suse.de>
7363
7364         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
7365         (vn_lookup): Likewise.
7366
7367 2008-06-25  Richard Guenther  <rguenther@suse.de>
7368
7369         PR tree-optimization/35518
7370         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
7371         * tree-sra.c (instantiate_element): Use fold_build3 to build
7372         BIT_FIELD_REFs.
7373         (try_instantiate_multiple_fields): Likewise.
7374
7375 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7376
7377         * config/rs6000/rs6000.md: Change all string instruction's clobber to
7378         be early clobbers.
7379
7380 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7381
7382         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
7383         use_backchain_to_restore_sp to true
7384         if the offset of the link register save area would go over the 32k - 1
7385         offset limit of the load
7386         instructions.
7387
7388 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
7389
7390         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
7391         anchor for the type-punning blurb.  Cross-reference "Structures
7392         unions enumerations and bit-fields implementation".  Provide a
7393         cast-through-pointer example.  Make final sentence self-contained.
7394         * doc/implement-c.texi (Structures unions enumerations and
7395         bit-fields implementation): Cross-reference the type-punning blurb
7396         in the -fstrict-aliasing documentation.
7397
7398 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7399
7400         PR middle-end/36594
7401         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
7402         the memory instead of the memory itself for the save area.
7403
7404 2008-06-24  Olivier Hainque  <hainque@adacore.com>
7405             Nicolas Roche  <roche@adacore.com>
7406
7407         * gengtype.c (srcdir_len): size_t instead of int.
7408         (get_file_realbasename): New function.  For F a filename, the real
7409         basename of F, with all the path components stripped.
7410         (get_file_srcdir_relative_path): New function.  For F a filename, the
7411         relative path to F from $(srcdir).
7412         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
7413         get_file_realbasename.  Adjust the head comment.
7414         (get_prefix_langdir_index): New function. For F a filename, return the
7415         lang_dir_names[] relative index of the language directory that is
7416         a prefix in F.
7417         (get_file_langdir): For F a filename, return the name of the language
7418         directory where F is located.
7419         (get_file_gtfilename): New function. The gt- output file name for an
7420         input filename F.
7421         (get_output_file_with_visibility): Replace in-line computations with
7422         uses of get_file_gtfilename and get_prefix_langdir_index.
7423         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
7424
7425 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
7426
7427         PR tree-optimization/36504
7428         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
7429         references without base address.
7430
7431 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
7432
7433         PR middle-end/36584
7434         * calls.c (expand_call): Increase alignment for recursive functions.
7435
7436 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
7437
7438         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
7439         (TARGET_FUNCTION_VALUE): New define.
7440         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
7441         * config/avr/avr.h (FUNCTION_VALUE): Remove.
7442
7443 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
7444
7445         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
7446         (fmod<mode>3): Ditto.
7447         (remainderxf3): Ditto.
7448         (remainder<mode>3): Ditto.
7449
7450 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
7451
7452         PR target/36533
7453         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
7454         REG is a hard register.
7455
7456         PR tree-optimization/36508
7457         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
7458         499, don't check it at all in release compilers.
7459
7460 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
7461
7462         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
7463         together with SSE_TARGET_MATH to disable insn pattern.
7464         (*fop_<MODEF:mode>_2_i387): Ditto.
7465         (*fop_<MODEF:mode>_3_i387): Ditto.
7466
7467 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
7468
7469         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
7470
7471 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7472
7473         PR middle-end/34906
7474         * gimplify.c (gimplify_asm_expr): Check the return code of
7475         parse_output_constraint call, set function return and is_inout
7476         value if it failed.
7477
7478 2008-06-22  Ian Lance Taylor  <iant@google.com>
7479
7480         * c-lex.c (narrowest_unsigned_type): Change itk to int.
7481         (narrowest_signed_type): Likewise.
7482         * c-typeck.c (c_common_type): Change local variable mclass to enum
7483         mode_class, twice.
7484         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
7485         tcc_comparison, not the tree code itself.
7486         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
7487         (c_expand_expr): Cast modifier to enum expand_modifier.
7488         * c-common.h (C_RID_CODE): Add casts.
7489         (C_SET_RID_CODE): Define.
7490         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
7491         (c_lex_one_token): Add cast to avoid warning.
7492         (c_parser_objc_type_name): Rename local typename to type_name.
7493         (check_no_duplicate_clause): Change code parameter to enum
7494         omp_clause_code.
7495         (c_parser_omp_var_list_parens): Change kind parameter to enum
7496         omp_clause_code.
7497         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
7498         c_parser_omp_list_var_parens.
7499         (c_parser_omp_threadprivate): Likewise.
7500         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
7501         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
7502         * c-format.c (NO_FMT): Define.
7503         (printf_length_specs): Use NO_FMT.
7504         (asm_fprintf_length_specs): Likewise.
7505         (gcc_diag_length_specs): Likewise.
7506         (scanf_length_specs): Likewise.
7507         (strfmon_length_specs): Likewise.
7508         (gcc_gfc_length_specs): Likewise.
7509         (printf_flag_specs): Change 0 to STD_C89.
7510         (asm_fprintf_flag_specs): Likewise.
7511         (gcc_diag_flag_specs): Likewise.
7512         (gcc_cxxdiag_flag_specs): Likewise.
7513         (scanf_flag_specs): Likewise.
7514         (strftime_flag_specs): Likewise.
7515         (strfmon_flag_specs): Likewise.
7516         (print_char_table): Likewise.
7517         (asm_fprintf_char_table): Likewise.
7518         (gcc_diag_char_table): Likewise.
7519         (gcc_tdiag_char_table): Likewise.
7520         (gcc_cdiag_char_table): Likewise.
7521         (gcc_cxxdiag_char_table): Likewise.
7522         (gcc_gfc_char_table): Likewise.
7523         (scan_char_table): Likewise.
7524         (time_char_table): Likewis.
7525         (monetary_char_table): Likewise.
7526         * c-format.h (BADLEN): Likewise.
7527
7528 2008-06-21  Ian Lance Taylor  <iant@google.com>
7529
7530         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
7531         Define END_OF_BASE_TREE_CODES around inclusion.
7532         * tree.c (tree_code_type): New global array.
7533         (tree_code_length, tree_code_name): Likewise.
7534         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
7535         $(lang_tree_files).
7536         (all-tree.def, s-alltree): New targets.
7537         (gencheck.h, s-gencheck): Remove.
7538         (tree.o): Depend upon all-tree.def.
7539         (build/gencheck.o): Remove gencheck.h dependency.
7540         (mostlyclean): Don't remove gencheck.h.
7541         * c-common.h (enum c_tree_code): Remove.
7542         * c-lang.c (tree_code_type): Remove.
7543         (tree_code_length, tree_code_name): Remove.
7544         * gencheck.c (tree_codes): Include all-tree.def, rather than
7545         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
7546         after it is used.
7547         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
7548         than tree.def.
7549         * cp/cp-tree.h (enum cplus_tree_code): Remove.
7550         (operator_name_info): Size to MAX_TREE_CODES.
7551         (assignment_operator_name_info): Likewise.
7552         * cp/cp-lang.c (tree_code_type): Remove.
7553         (tree_code_length, tree_code_name): Remove.
7554         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
7555         (assignment_operator_name_info): Likewise.
7556         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
7557         MAX_TREE_CODES.
7558         * cp/mangle.c (write_expression): Likewise.
7559         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
7560         * fortran/f95-lang.c (tree_code_type): Remove.
7561         (tree_code_length, tree_code_name): Remove.
7562         * java/java-tree.h (enum java_tree_code): Remove.
7563         * java/lang.c (tree_code_type): Remove.
7564         (tree_code_length, tree_code_name): Remove.
7565         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
7566         * objc/objc-act.h (enum objc_tree_code): Remove.
7567         * objc/objc-lang.c (tree_code_type): Remove.
7568         (tree_code_length, tree_code_name): Remove.
7569         * objcp/objcp-lang.c (tree_code_type): Remove.
7570         (tree_code_length, tree_code_name): Remove.
7571         * ada/ada-tree.h (enum gnat_tree_code): Remove.
7572         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
7573         * ada/misc.c (tree_code_type): Remove.
7574         (tree_code_length, tree_code_name): Remove.
7575
7576 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
7577
7578         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
7579         the grand_bitmap_obstack.
7580
7581 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7582
7583         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
7584         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
7585         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
7586         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
7587         move_stmt_r, new_label_mapper): Likewise.
7588         * tree-complex.c (cvc_lookup): Likewise.
7589         * tree-dfa.c (create_function_ann): Likewise.
7590         * tree-dump.c (dump_register): Likewise.
7591         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
7592         find_phi_replacement_condition): Likewise.
7593         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
7594         tree_function_versioning): Likewise.
7595         * tree-into-ssa.c (cmp_dfsnum): Likewise.
7596         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
7597         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
7598         get_nonlocal_debug_decl, convert_nonlocal_reference,
7599         convert_nonlocal_omp_clauses, get_local_debug_decl,
7600         convert_local_reference, convert_local_omp_clauses,
7601         convert_nl_goto_reference, convert_nl_goto_receiver,
7602         convert_tramp_reference, convert_call_expr): Likewise.
7603         * tree-outof-ssa.c (contains_tree_r): Likewise.
7604         * tree-parloops.c (reduction_phi, initialize_reductions,
7605         eliminate_local_variables_1, add_field_for_reduction,
7606         add_field_for_name, create_phi_for_local_result,
7607         create_call_for_reduction_1, create_loads_for_reductions,
7608         create_stores_for_reduction, create_loads_and_stores_for_name):
7609         Likewise.
7610         * tree-phinodes.c (allocate_phi_node): Likewise.
7611         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
7612         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
7613         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
7614         * tree-ssa-coalesce.c (compare_pairs): Likewise.
7615         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
7616         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
7617         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
7618         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
7619         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
7620         vn_nary_op_insert): Likewise.
7621         * tree-ssa.c (redirect_edge_var_map_add,
7622         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
7623         * tree-vectorizer.c (vectorize_loops): Likewise.
7624         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
7625         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
7626         tree_cons_stat, build1_stat, build_variant_type_copy,
7627         decl_init_priority_lookup, decl_fini_priority_lookup,
7628         decl_priority_info, decl_restrict_base_lookup,
7629         decl_restrict_base_insert, decl_debug_expr_lookup,
7630         decl_debug_expr_insert, decl_value_expr_lookup,
7631         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
7632         type_hash_add, get_file_function_name, tree_check_failed,
7633         tree_not_check_failed, tree_range_check_failed,
7634         omp_clause_range_check_failed, build_omp_clause,
7635         build_vl_exp_stat): Likewise.
7636         * value-prof.c (gimple_histogram_value,
7637         gimple_duplicate_stmt_histograms): Likewise.
7638         * var-tracking.c (attrs_list_insert, attrs_list_copy,
7639         unshare_variable, variable_union_info_cmp_pos, variable_union,
7640         dataflow_set_different_1, dataflow_set_different_2,
7641         vt_find_locations, variable_was_changed, set_variable_part,
7642         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
7643         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
7644         section_entry_hash, object_block_entry_eq,
7645         object_block_entry_hash, create_block_symbol,
7646         initialize_cold_section_name, default_function_rodata_section,
7647         strip_reg_name, set_user_assembler_name, const_desc_eq,
7648         build_constant_desc, output_constant_def, lookup_constant_def,
7649         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
7650         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
7651         default_internal_label): Likewise.
7652         * varray.c (varray_init, varray_grow): Likewise.
7653         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
7654
7655 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
7656
7657         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
7658         operators for "test" insn.  Macroize insn using SWI mode macro.
7659         (*jcc_fused_2): Ditto.
7660         (*jcc_fused_3): Macroize insn using SWI mode macro.
7661         (*jcc_fused_4): Ditto.
7662
7663 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
7664
7665         * tree-ssa-pre.c: Fix typo in comment.
7666         (init_antic, fini_antic): Add explicit funtions for
7667         initializing and deinitializing ANTIC and AVAIL sets.
7668         (create_expression_by_pieces): Fix typo in comment.
7669         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
7670         (execute_pre): Eventually dump details about ANTIC_IN.
7671
7672 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7673
7674         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
7675         * gcc.c (translate_options, init_spec, store_arg, read_specs,
7676         add_to_obstack, file_at_path, find_a_file, execute,
7677         add_preprocessor_option, add_assembler_option, add_linker_option,
7678         process_command, insert_wrapper, do_option_spec, do_self_spec,
7679         spec_path, do_spec_1, is_directory, main, used_arg,
7680         getenv_spec_function): Likewise.
7681         * tlink.c (symbol_hash_lookup, file_hash_lookup,
7682         demangled_hash_lookup, symbol_push, file_push, frob_extension):
7683         Likewise.
7684
7685 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
7686
7687         * doc/rtl.texi: Updated subreg section.
7688
7689 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
7690
7691         PR c++/36523
7692         * cgraphunit.c (cgraph_process_new_functions): Don't clear
7693         node->needed and node->reachable.
7694         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
7695         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
7696         (expand_task_call): Don't call expand_task_copyfn.
7697         (expand_task_copyfn): Renamed to...
7698         (finalize_task_copyfn): ... this.
7699
7700 2008-06-19  Jan Hubicka  <jh@suse.cz>
7701
7702         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
7703         clobbering framepointer.
7704
7705 2008-06-19  Jan Hubicka  <jh@suse.cz>
7706
7707         * tree-optimize.c (execute_early_local_optimizations): Set
7708         cgraph_state only at first invocation.
7709
7710 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7711
7712         * system.h (-Wc++-compat): Activate as a warning, no an error.
7713
7714 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
7715
7716         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
7717         instead of "#" in insn asm template.
7718         (*jcc_fused_2): Ditto.
7719
7720 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
7721
7722         * config/i386/i386.h (ix86_tune_indices)
7723         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
7724         (TARGET_FUSE_CMP_AND_BRANCH): New define.
7725         * config/i386/i386.md (*jcc_fused_1): New insn pattern
7726         (*jcc_fused_2): Ditto.
7727         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
7728         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
7729         (print operand): Handle 'E' and 'e' code.
7730
7731 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
7732
7733         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
7734         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
7735         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
7736
7737 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
7738
7739         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
7740         node->decl.
7741         (cgraph_expand_function): Use local copy of decl.
7742         (cgraph_expand_all_functions): Remove redundant initialization of
7743         order_pos.
7744         (cgraph_optimize): Reword internal_error message.
7745
7746 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
7747
7748         * arm-protos.h (arm_return_in_memory): Remove public
7749         arm_return_in_memory() prototype.
7750         * arm.c (arm_return_in_memory): Add static prototype, add target
7751         hook macro, change definition and comments.
7752         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
7753
7754 2008-06-19  Ben Elliston  <bje@au.ibm.com>
7755
7756         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
7757         real.c: Remove references to IEEE 754R.
7758         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
7759         * doc/libgcc.texi (Decimal float library routines): Likewise.
7760
7761 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7762
7763         * targhooks.h (struct gcc_target): New member unwind_word_mode.
7764         (default_unwind_word_mode): Add prototype.
7765         * targhooks.c (default_unwind_word_mode): New function.
7766         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
7767         instead of word_mode.
7768         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
7769         (TARGET_INITIALIZER): Use it.
7770
7771         * c-common.c (handle_mode_attribute): Support "unwind_word"
7772         mode attribute.
7773         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
7774
7775         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
7776         word_mode to access SjLj_Function_Context member "data".
7777         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
7778         conversion from targetm.eh_return_filter_mode () to
7779         targetm.unwind_word_mode () if they differ.
7780
7781         * builtin-types.def (BT_UNWINDWORD): New primitive type.
7782         (BT_FN_UNWINDWORD_PTR): New function type.
7783         (BT_FN_WORD_PTR): Remove.
7784         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
7785         * except.c (expand_builtin_extend_pointer): Convert pointer to
7786         targetm.unwind_word_mode () instead of word_mode.
7787
7788         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
7789         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
7790         (spu_unwind_word_mode): New function.
7791         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
7792         (TARGET_UNWIND_WORD_MODE): Define.
7793         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
7794
7795 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7796
7797         * config/spu/spu.c (reg_align): Remove.
7798         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
7799         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
7800         (spu_split_store): Likewise.
7801
7802 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
7803
7804         * gcc/tree-vn.c: Fix typo in comment.
7805
7806 2008-06-18  Jan Hubicka  <jh@suse.cz>
7807
7808         * cgraphunit.c (cgraph_optimize): Output debug info when doing
7809         toplevel reorder too.
7810
7811 2008-06-18  Jan Hubicka  <jh@suse.cz>
7812
7813         * c-opts.c (c_common_post_options): PCH is not compatible with
7814         no-unit-at-a-time.
7815         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
7816         -fno-toplevel-reorder by default now.
7817
7818 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7819
7820         PR documentation/30739
7821         * doc/install.texi (Prerequisites): Document dependency on awk.
7822
7823 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
7824             Ian Lance Taylor  <iant@google.com>
7825
7826         PR rtl-optimization/35604
7827         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
7828         only want to change jump destinations, not eventual label comparisons.
7829
7830 2008-06-16  Jan Hubicka  <jh@suse.cz>
7831
7832         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
7833         syntax errors.
7834         (cgraph_analyze_function): Likewise.
7835
7836 2008-06-16  Jan Hubicka  <jh@suse.cz>
7837
7838         * cgraph.h (cgraph_mark_if_needed): New function.
7839         * cgraphunit.c (cgraph_mark_if_needed): New function.
7840         * c-decl.c (duplicate_decl): Use it.
7841
7842 2008-06-16  Jan Hubicka  <jh@suse.cz>
7843
7844         * cgraph.c (cgraph_add_new_function): When in expansion state, do
7845         lowering.
7846
7847 2008-06-16  Jan Hubicka  <jh@suse.cz>
7848
7849         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
7850
7851 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
7852             Kazu Hirata  <kazu@codesourcery.com>
7853             Maxim Kuvyrkov  <maxim@codesourcery.com
7854
7855         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
7856         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
7857         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
7858         EXTRA_SPEC_FUNCTIONS.
7859         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
7860         (DRIVER_SELF_SPECS): Adjust.
7861         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
7862         * config/mips/st.h, config/mips/t-st: New.
7863         * config/mips/driver-native.c, config/mips/x-native: New.
7864         * doc/invoke.texi (MIPS): Document 'native' value for -march and
7865         -mtune options.
7866
7867 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
7868
7869         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
7870         from it.
7871         (ISA_HAS_FP_CONDMOVE): New macro.
7872         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
7873         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
7874         (ISA_HAS_NMADD3_NMSUB3): New macro.
7875         * config/mips/mips.c (mips_rtx_costs): Update.
7876         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
7877         compiling for ST Loongson 2E/2F.
7878         (madd<mode>): Rename to madd4<mode>.  Update.
7879         (madd3<mode>): New pattern.
7880         (msub<mode>): Rename to msub4<mode>.  Update.
7881         (msub3<mode>): New pattern.
7882         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
7883         (nmadd3<mode>): New pattern.
7884         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
7885         (nmadd3<mode>_fastmath): New pattern.
7886         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
7887         (nmsub3<mode>): New pattern.
7888         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
7889         (nmsub3<mode>_fastmath): New pattern.
7890         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
7891
7892 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
7893
7894         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
7895         (DF_REF_INSN_INFO): New.
7896         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
7897         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
7898         with a NULL DF_REF_INSN_INFO.
7899         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
7900         DF_INSN_SET.
7901         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
7902         DF_INSN_INFO_EQ_USES): New.
7903         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
7904         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
7905         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
7906         * df-core.c: Update comment for above changes.
7907         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
7908         DF_INSN_UID_* macros.
7909         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
7910         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
7911         insn rtx.  Update all callers.
7912         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
7913         df_ref_create_structure, df_insn_refs_collect): Likewise.
7914         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
7915         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
7916         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
7917         macros to access the insn refs.
7918         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
7919         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
7920         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
7921         for accessing the refs.
7922         (try_fwprop_subst): Likewise.
7923         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
7924         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
7925         for accessing the refs.
7926         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
7927         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
7928         to look at the insn refs.
7929         (record_uses): Likewise.
7930         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
7931         function anymore.
7932         (mark_artificial_uses): Don't mark_insn for artificial refs.
7933         (mark_reg_rependencies): Likewise.
7934
7935         * doc/rtl.texi: Remove documentation of ADDRESSOF.
7936
7937 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7938
7939         * configure: Regenerate.
7940
7941 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
7942
7943         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
7944         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
7945         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
7946
7947 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
7948
7949         * config/avr/avr.c (avr_mcu_t): Add attiny167.
7950         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
7951         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
7952
7953 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
7954
7955         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
7956         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
7957         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
7958
7959 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
7960
7961         * tree-ssa-sccvn.c: Fix format of comments.
7962
7963 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
7964
7965         * cgraph.c: Remove unneeded forward declarations of eq_node()
7966         and hash_node().
7967
7968 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
7969
7970         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
7971         REG_RETVAL notes.
7972         (see_update_relevancy): Likewise.
7973         * fwprop.c (try_fwprop_subst): Likewise.
7974         * rtlanal.c (noop_move_p): Likewise.
7975         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
7976         notes to non-existing libcall blocks.
7977         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
7978         Remove orig_set.
7979         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
7980         (dead_libcall_p): Remove.
7981         (delete_trivially_dead_insns): Don't use it.
7982         * web.c (union_defs): Remove comment about keeping nops.
7983         * gcse.c (hash_scan_insn): Don't take libcall pointers.
7984         (compute_hash_table_work): Don't track libcall notes.
7985         (do_local_cprop): Don't take libcall pointers.  Don't update
7986         libcall notes.
7987         (adjust_libcall_notes): Deleted.
7988         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
7989         ever have existed in the first place).
7990         (replace_store_insn): Don't try to remove libcall notes.
7991         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
7992         (resolve_reg_notes): Don't call them.
7993         (resolve_simple_move): Likewise.
7994         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
7995         Don't remove REG_RETVAL notes.
7996         * emit-rtl.c (try_split): Don't update libcall notes.
7997         (emit_copy_of_insn_after): Dito.
7998         * cselib.c (cselib_current_insn_in_libcall): Remove.
7999         (cselib_process_insn): Don't set/clear it.
8000         (new_elt_loc_list): Don't record it.
8001         (cselib_init): Don't initialize it.
8002         * cselib.c (struct elt_loc_list): Remove in_libcall field.
8003         * loop-invariant.c (find_invariant_insn): Don't look for libcall
8004         notes.
8005         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
8006         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
8007         (init_deps): Don't initialize it.
8008         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
8009         * combine.c (delete_noop_moves): Don't update libcall notes.
8010         (can_combine_p): Remove now pointless #if 0 block.
8011         (try_combine): Remove another obsolete #if 0 block.
8012         (distribute_notes): Don't distribute libcall notes.
8013         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
8014         * dce.c (libcall_dead_p): Remove.
8015         (delete_unmarked_insns): Don't handle libcall blocks.
8016         (preserve_libcall_for_dce): Remove.
8017         (prescan_insns_for_dce): Don't special-case libcall block insns.
8018         * reload1 (reload): Don't handle libcall notes.
8019         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
8020         documentation.
8021
8022 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
8023
8024         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
8025         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
8026         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
8027
8028 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
8029
8030         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
8031         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
8032         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
8033
8034 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8035
8036         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
8037
8038 2008-06-16  Ira Rosen  <irar@il.ibm.com>
8039
8040         PR tree-optimization/36493
8041         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
8042         the arguments list. Use VECTYPE to create vector pointer.
8043         (vectorizable_store): Fail if accesses through a pointer to vectype
8044         do not alias the original memory reference operands.
8045         Call vect_create_data_ref_ptr without the removed argument.
8046         (vectorizable_load): Likewise.
8047         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
8048         removed argument.
8049
8050 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
8051
8052         PR target/36336
8053         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
8054         reg_equiv_constant.
8055
8056 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
8057
8058         * config/mips/loongson2ef.md: New file.
8059         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
8060         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
8061         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
8062         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
8063         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
8064         and loongson_2f.
8065         (loongson2ef.md): New include.
8066         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
8067         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
8068         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
8069         (loongson_gt_<mode>, loongson_extract_halfword)
8070         (loongson_insert_halfword_0, loongson_insert_halfword_2)
8071         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
8072         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
8073         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
8074         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
8075         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
8076         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
8077         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
8078         (vec_interleave_low<mode>): Define type attribute.
8079         * config/mips/mips.c (mips_ls2): New static variable.
8080         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
8081         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
8082         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
8083         Implement target scheduling hooks.
8084         (mips_multipass_dfa_lookahead): Update to handle tuning for
8085         Loongson 2E/2F.
8086         (mips_sched_init): Initialize data for Loongson scheduling.
8087         (mips_ls2_variable_issue): New static function.
8088         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
8089         Add sanity check.
8090         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
8091         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
8092         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
8093         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
8094         Handle ST Loongson 2E/2F cores.
8095         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
8096
8097 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8098
8099         * omp-low.c (extract_omp_for_data): Fix comment typo.
8100         * c.opt: Fix typo.
8101
8102 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8103
8104         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
8105         FIXME note about gcc/config.guess.
8106         * doc/options.texi (Option file format): Remove non-ASCII bytes.
8107         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
8108         * doc/cppopts.texi: Likewise.
8109         * doc/extend.texi: Likewise.
8110         * doc/gcc.texi: Likewise.
8111         * doc/gccint.texi: Likewise.
8112         * doc/gcov.texi: Likewise.
8113         * doc/gty.texi: Likewise.
8114         * doc/hostconfig.texi: Likewise.
8115         * doc/install.texi: Likewise.
8116         * doc/invoke.texi: Likewise.
8117         * doc/loop.texi: Likewise.
8118         * doc/makefile.texi: Likewise.
8119         * doc/md.texi: Likewise.
8120         * doc/passes.texi: Likewise.
8121         * doc/tm.texi: Likewise.
8122         * doc/tree-ssa.texi: Likewise.
8123         * doc/trouble.texi: Likewise.
8124
8125 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
8126             Nathan Sidwell  <nathan@codesourcery.com>
8127             Maxim Kuvyrkov  <maxim@codesourcery.com>
8128             Richard Sandiford  <rdsandiford@googlemail.com>
8129
8130         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
8131         * config/mips/mips-protos.h (mips_expand_vector_init): New.
8132         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
8133         builtins.
8134         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
8135         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
8136         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
8137         V8QImode cases.
8138         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
8139         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
8140         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
8141         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
8142         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
8143         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
8144         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
8145         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
8146         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
8147         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
8148         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
8149         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
8150         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
8151         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
8152         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
8153         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
8154         (mips_builtins): Add Loongson builtins.
8155         (mips_loongson_2ef_bdesc): New.
8156         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
8157         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
8158         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
8159         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
8160         New.
8161         (mips_expand_vector_init): New.
8162         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
8163         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
8164         if appropriate.
8165         * config/mips/mips.md: Add unspec numbers for Loongson
8166         builtins.  Include loongson.md.
8167         (MOVE64): Include Loongson vector modes.
8168         (SPLITF): Include Loongson vector modes.
8169         (HALFMODE): Handle Loongson vector modes.
8170         * config/mips/loongson.md: New.
8171         * config/mips/loongson.h: New.
8172         * config.gcc: Add loongson.h header for mips*-*-* targets.
8173         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
8174
8175 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
8176
8177         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
8178         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
8179         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
8180         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
8181         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
8182         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
8183         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
8184         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
8185         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
8186         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
8187         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
8188         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
8189         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
8190         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
8191         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
8192         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
8193         Remove use_fixproto=yes.
8194         (ia64*-*-hpux*): Remove comment about using fixproto.
8195         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
8196
8197 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8198
8199         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
8200         library rebuilds.
8201         * configure: Regenerate.
8202
8203 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
8204
8205         PR middle-end/36520
8206         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
8207         before evaluating it.
8208
8209 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
8210
8211         PR c/36507
8212         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
8213         nested inline functions.
8214         (start_decl, start_function): Don't invert DECL_EXTERNAL
8215         for nested inline functions.
8216
8217 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
8218
8219         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
8220         splits that must be made for correctness.
8221
8222 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
8223
8224         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
8225         (AVAIL_NON_MIPS16): Likewise.
8226         (mips_builtin_description): Replace target_flags with a predicate.
8227         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
8228         (dspr2_32): New availability predicates.
8229         (MIPS_BUILTIN): New macro.
8230         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
8231         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
8232         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
8233         Replace the TARGET_FLAGS parameters with AVAIL parameters.
8234         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
8235         (mips_dsp_32only_bdesc): Merge into...
8236         (mips_builtins): ...this new array.
8237         (mips_bdesc_map, mips_bdesc_arrays): Delete.
8238         (mips_init_builtins): Update after above changes.
8239         (mips_expand_builtin_1): Merge into...
8240         (mips_expand_builtin): ...here and update after above changes.
8241
8242 2008-06-12  Paul Brook  <paul@codesourcery.com>
8243
8244         * longlong.h (__arm__): Define count_leading_zeros.
8245         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
8246         (clzsi2, clzdi2): New functions.
8247         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
8248         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
8249         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
8250         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
8251         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
8252         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
8253         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
8254         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
8255         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
8256         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
8257
8258 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
8259
8260         * config/m68k/m68k.c (m68k_tune_flags): New.
8261         (override_options): Compute m68k_tune_flags.
8262         (MULL_COST, MULW_COST): Update for various variants of CFV2.
8263         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
8264
8265 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
8266
8267         PR middle-end/36506
8268         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
8269
8270 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
8271
8272         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
8273         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
8274
8275 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
8276
8277         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
8278         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
8279
8280 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
8281
8282         PR middle-end/36506
8283         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
8284         reductions.
8285
8286 2008-06-12  Richard Guenther  <rguenther@suse.de>
8287
8288         PR tree-optimization/36345
8289         * tree-flow.h (struct ptr_info_def): Align escape_mask,
8290         add memory_tag_needed flag.
8291         (may_alias_p): Declare.
8292         * tree-ssa-alias.c (may_alias_p): Export.
8293         (set_initial_properties): Use memory_tag_needed flag.
8294         (update_reference_counts): Likewise.
8295         (reset_alias_info): Reset memory_tag_needed flag.
8296         (create_name_tags): Check memory_tag_needed flag.
8297         (dump_points_to_info_for): Dump it.
8298         * tree-ssa-structalias.c (struct variable_info): Remove
8299         directly_dereferenced flag.
8300         (new_var_info): Do not initialize it.
8301         (process_constraint_1): Do not set it.
8302         (update_alias_info): Set is_dereferenced flag.
8303         (set_uids_in_ptset): Use may_alias_p.
8304         (set_used_smts): Check memory_tag_needed flag.
8305         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
8306         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
8307         memory_tag_needed flag.
8308         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
8309         from broken design.
8310
8311 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
8312
8313         * config/i386/i386.c (ix86_compute_frame_layout): Disable
8314         red zone for w64 abi.
8315         (ix86_expand_prologue): Likewise.
8316         (ix86_force_to_memory): Likewise.
8317         (ix86_free_from_memory): Likewise.
8318
8319 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
8320
8321         PR target/36425
8322         * config/rs6000/rs6000.c (rs6000_override_options): Set
8323         rs6000_isel conditionally to the absence of comand line override.
8324         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
8325         Remove duplicate rs6000_isel setting.
8326         * config/rs6000/eabispe.h: Ditto.
8327
8328 2008-06-11  Richard Guenther  <rguenther@suse.de>
8329
8330         * alias.c (get_alias_set): Use the element alias-set for arrays.
8331         (record_component_aliases): For arrays and vectors do nothing.
8332         * c-common.c (strict_aliasing_warning): Handle the cases
8333         of alias set zero explicitly.
8334         * Makefile.in (dfp.o-warn): Add -Wno-error.
8335
8336 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
8337
8338         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
8339         tune_32 tune_64.
8340         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
8341         tune_32 tune_64 to supported_defaults.  Allow values not
8342         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
8343         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
8344         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
8345         with_cpu_64 to generic for 64-bit-supporting configurations, not
8346         with_cpu.  Remove FIXMEs.
8347         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
8348         --with-arch-64, --with-tune-32, --with-tune-64): Document.
8349         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
8350         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
8351         arch_32 and arch_64.
8352
8353 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
8354             Olivier Hainque  <hainque@adacore.com>
8355
8356         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
8357         Use DECL_SIZE_UNIT to retrieve the size of the field.
8358
8359 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
8360
8361         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
8362         with function calls after declarations.  Lay out
8363         neon_float_type_node before further use.
8364
8365 2008-06-11  Richard Guenther  <rguenther@suse.de>
8366
8367         * tree-flow.h (may_point_to_global_var): Declare.
8368         * tree-ssa-alias.c (may_point_to_global_var): New function.
8369         * tree-ssa-sink.c (is_hidden_global_store): Use it.
8370
8371 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
8372
8373         * configure.ac: Teach that fido supports .debug_line.
8374         * configure: Regenerate.
8375
8376 2008-06-10  Tom Tromey  <tromey@redhat.com>
8377
8378         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
8379         debug hook.
8380
8381 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
8382
8383         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
8384         (encode_decimal64, decode_decimal64, encode_decimal128,
8385         decode_decimal128): Reverse order of 32-bit parts of value if host
8386         and target endianness differ.
8387
8388 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
8389
8390         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
8391         Avoid division by 0.
8392         (tree_mod_pow2_value_transform): Likewise.
8393         (tree_ic_transform): Likewise.
8394         (tree_stringops_transform): Likewise.
8395         (tree_mod_subtract_transform): Likewise.
8396         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
8397         (copy_edges_for_bb): Likewise.
8398         (initialize_cfun): Likewise.
8399
8400 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
8401
8402         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
8403         nonmemory_operand. Add "N" operand constraint.
8404         (*btsi): Ditto.
8405         (*jcc_btdi_mask_rex64): New instruction and split pattern.
8406         (*jcc_btsi_mask): Ditto.
8407         (*jcc_btsi_mask_1): Ditto.
8408
8409 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
8410
8411         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
8412         TYPE_CANONICAL for copied element type.
8413
8414 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
8415
8416         PR target/36473
8417         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
8418         Add m_CORE2 and m_GENERIC.
8419         * config/i386/predicates.md (bt_comparison_operator): New predicate.
8420         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
8421         (*btsi): Ditto.
8422         (*jcc_btdi_rex64): New instruction and split pattern.
8423         (*jcc_btsi): Ditto.
8424         (*jcc_btsi_1): Ditto.
8425         (*btsq): Fix Intel asm dialect operand order.
8426         (*btrq): Ditto.
8427         (*btcq): Ditto.
8428
8429 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
8430
8431         PR middle-end/36447
8432         * simplify-rtx.c (simplify_subreg): Add check for shift count
8433         greater than size.
8434
8435 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
8436
8437         * doc/md.texi: Synchronize with later constraints.md change.
8438         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
8439         with a C implementation.
8440         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
8441         MFLO handling.
8442         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
8443         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
8444         when moving to and from MD_REGNUM.
8445         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
8446         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
8447         Handle byte and halfword moves.
8448         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
8449         separately.
8450         * config/mips/constraints.md (h): Turn into NO_REGS.
8451         (l, x): Update documentation.
8452         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
8453         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
8454         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
8455         (HILO): New mode iterator.
8456         (MOVE128): Add TI.
8457         (any_div): New code iterator.
8458         (u): Extend code attribute to div and udiv.
8459         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
8460         d_operand in the splitters.  Remove redundant CONST_INT checks.
8461         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
8462         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
8463         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
8464         accordingly, using normal moves instead of unspecs to move LO into
8465         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
8466         (<u>mulsidi3): Handle expansion in C code.
8467         (<u>mulsidi3_32bit_internal): Rename to...
8468         (<u>mulsidi3_32bit): ...this.
8469         (<u>mulsidi3_32bit_r4000): Fix insn separator.
8470         (*<u>mulsidi3_64bit): Rename to...
8471         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
8472         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
8473         to set LO and HI to the multiplication result.  Use a normal move
8474         for MFLO and an unspec for MFHI.
8475         (*<u>mulsidi3_64bit_parts): Replace with...
8476         (<u>mulsidi3_64bit_hilo): ...this new instruction.
8477         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
8478         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
8479         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
8480         instead of HI.  Split the instruction into a separate multiplication
8481         and MFHI if !TARGET_FIX_R4000.
8482         (<su>muldi3_highpart): Likewise.
8483         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
8484         and the "=h" clobber.
8485         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
8486         (<u>mulditi3): New expander.
8487         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
8488         (madsi): Remove "=h" clobber.
8489         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
8490         Force the modulus result to be a GPR and split the instruction into
8491         a division followed by an MFHI after reload.
8492         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
8493         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
8494         the MIPS16 HIGH define_split.
8495         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
8496         of acc<->gpr moves to "multi".
8497         (*movdi_64bit): Replace the single "x" alternative with
8498         alternatives for moving into and out of "a".
8499         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
8500         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
8501         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
8502         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
8503         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
8504         (movti): New expander.
8505         (*movti, *movti_mips16): New insns.
8506         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
8507         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
8508         (mthi<GPR:mode>_<HILO:mode>): Likewise.
8509         * config/mips/predicates.md (fpr_operand): Delete.
8510         (d_operand): New predicate.
8511
8512 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
8513
8514         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
8515         failure on some Bourne shells.
8516         (x86_64-*-*): Ditto.
8517
8518 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
8519
8520         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
8521
8522 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
8523
8524         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
8525         (sparc-sun-solaris2*): Likewise.
8526
8527 2008-06-09  Arnaud Charlet  <charlet@adacore.com
8528
8529         * doc/install.texi: Update requirements to build the Ada compiler.
8530
8531 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
8532
8533         * df-scan.c (struct df_scan_problem_data): Remove the
8534         mw_link_pool alloc pool.
8535         (df_scan_free_internal): Don't free it.
8536         (df_scan_alloc): Don't allocate it.
8537         * df.h (struct df_link): Update comment.
8538
8539 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
8540
8541         * except.h: Correct checks for when SJLJ exceptions must be used.
8542
8543 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8544
8545         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
8546         default.
8547
8548 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
8549
8550         PR tree-optimization/36218
8551         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
8552         configure for the build system.
8553         (BUILD_LDFLAGS): Define.
8554         * configure: Regenerate.
8555         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
8556
8557 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
8558
8559         PR target/36424
8560         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
8561         * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
8562         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
8563
8564 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
8565
8566         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
8567
8568 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
8569
8570         * config.gcc (Obsolete configurations): Remove list of
8571         configurations.
8572         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
8573         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
8574         targets matched by those patterns.
8575         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
8576         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
8577         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
8578         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
8579         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
8580         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
8581         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
8582         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
8583         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
8584         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
8585         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
8586         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
8587         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
8588         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
8589         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
8590         Make code for Solaris 7 and greater unconditional for Solaris.
8591         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
8592         Remove --with-* handling.
8593         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
8594         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
8595         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
8596         LINK_OS_WINDISS_SPEC): Remove.
8597         * config/rs6000/sysv4.opt (mwindiss): Remove.
8598         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
8599         * configure: Regenerate.
8600         * doc/cpp.texi: Don't mention BeOS.
8601         * doc/extend.texi (interrupt): Don't mention MS1.
8602         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
8603         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
8604         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
8605         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
8606         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
8607         Remove.
8608         * doc/invoke.texi (MT Options): Remove.
8609         (-mwindiss): Remove.
8610         (CRIS Options): Remove cris-axis-aout references.
8611         (HPPA Options): Don't mention hppa1.1-*-pro.
8612         * doc/md.texi: (MorphoTech family): Remove.
8613         * libgcc2.c: Don't handle UWIN.
8614         * config/alpha/t-unicosmk: Remove.
8615         * config/alpha/unicosmk.h: Remove.
8616         * config/arm/kaos-arm.h: Remove.
8617         * config/arm/kaos-strongarm.h: Remove.
8618         * config/arm/strongarm-coff.h: Remove.
8619         * config/arm/strongarm-elf.h: Remove.
8620         * config/arm/strongarm-pe.h: Remove.
8621         * config/arm/t-strongarm-pe: Remove.
8622         * config/arm/t-xscale-coff: Remove.
8623         * config/arm/t-xscale-elf: Remove.
8624         * config/arm/xscale-coff.h: Remove.
8625         * config/arm/xscale-elf.h: Remove.
8626         * config/chorus.h: Remove.
8627         * config/cris/aout.h: Remove.
8628         * config/cris/aout.opt: Remove.
8629         * config/cris/t-aout: Remove.
8630         * config/i386/beos-elf.h: Remove.
8631         * config/i386/kaos-i386.h: Remove.
8632         * config/i386/ptx4-i.h: Remove.
8633         * config/i386/sco5.h: Remove.
8634         * config/i386/sco5.opt: Remove.
8635         * config/i386/sysv4-cpp.h: Remove.
8636         * config/i386/sysv5.h: Remove.
8637         * config/i386/t-beos: Remove.
8638         * config/i386/t-sco5: Remove.
8639         * config/i386/t-uwin: Remove.
8640         * config/i386/uwin.asm: Remove.
8641         * config/i386/uwin.h: Remove.
8642         * config/kaos.h: Remove.
8643         * config/mips/windiss.h: Remove.
8644         * config/mt: Remove directory.
8645         * config/pa/pa-osf.h: Remove.
8646         * config/pa/pa-pro-end.h: Remove.
8647         * config/pa/t-pro: Remove.
8648         * config/ptx4.h: Remove.
8649         * config/rs6000/beos.h: Remove.
8650         * config/rs6000/kaos-ppc.h: Remove.
8651         * config/rs6000/t-beos: Remove.
8652         * config/rs6000/windiss.h: Remove.
8653         * config/sh/kaos-sh.h: Remove.
8654         * config/sol2-6.h: Remove.
8655         * config/sparc/sol26-sld.h: Remove.
8656         * config/sparc/sysv4-only.h: Remove.
8657         * config/vax/bsd.h: Remove.
8658         * config/vax/t-memfuncs: Remove.
8659         * config/vax/ultrix.h: Remove.
8660         * config/vax/vaxv.h: Remove.
8661         * config/windiss.h: Remove.
8662
8663 2008-06-06  Uros Bizjak <ubizjak@gmail.com>
8664
8665         PR rtl-optimization/36438
8666         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
8667         for vector shifts with constant scalar shift operands.
8668
8669 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
8670
8671         * doc/invoke.texi: Document -march=xlr.
8672         * config/mips/xlr.md: New file.
8673         * config/mips/mips.md: Include it.
8674         (cpu): Add "xlr".
8675         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
8676         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
8677         (mips_rtx_cost_data): Likewise.
8678
8679 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
8680
8681         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
8682         PRE_INC and PRE_DEC cases.
8683
8684 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
8685
8686         PR rtl-optimization/36419
8687         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
8688         the emitting jump insn.
8689
8690         PR target/36362
8691         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
8692         is not bool, boolify the whole *expr_p and convert to the desired type.
8693
8694 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
8695
8696         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
8697         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
8698         Add omp_private_outer_ref hook, add another argument to
8699         omp_clause_default_ctor hook.
8700         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
8701         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
8702         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
8703         hook_tree_tree_tree_tree_null.
8704         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
8705         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
8706         * hooks.c (hook_tree_tree_tree_tree_null): New function.
8707         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
8708         * tree.def (OMP_TASK): New tree code.
8709         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
8710         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
8711         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
8712         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
8713         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
8714         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
8715         OMP_CLAUSE_COLLAPSE_EXPR): Define.
8716         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
8717         (OMP_DIRECTIVE_P): Add OMP_TASK.
8718         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
8719         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
8720         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
8721         and OMP_CLAUSE_UNTIED entries.
8722         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
8723         num_ops to 2.
8724         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
8725         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
8726         * tree-pretty-print.c (dump_omp_clause): Handle
8727         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
8728         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
8729         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
8730         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
8731         warning about unsigned iterators.  Change decl/init/cond/incr
8732         arguments to TREE_VECs, check arguments for all collapsed loops.
8733         (c_finish_omp_taskwait): New function.
8734         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
8735         ws_clauses.
8736         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
8737         default_function_array_conversion on init.  Add par_clauses argument.
8738         If decl is present in parallel's lastprivate clause, change it to
8739         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
8740         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
8741         collapse count in clauses.
8742         (c_parser_omp_for, c_parser_omp_parallel): Adjust
8743         c_parser_omp_for_loop callers.
8744         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
8745         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
8746         (c_parser_omp_clause_name): Handle collapse and untied clauses.
8747         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
8748         functions.
8749         (c_parser_omp_clause_schedule): Handle schedule(auto).
8750         Include correct location in the error message.
8751         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
8752         and PRAGMA_OMP_CLAUSE_UNTIED.
8753         (OMP_TASK_CLAUSE_MASK): Define.
8754         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
8755         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
8756         * tree-nested.c (convert_nonlocal_omp_clauses,
8757         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
8758         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
8759         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
8760         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
8761         OMP_CLAUSE_DECL.
8762         (conver_nonlocal_reference, convert_local_reference,
8763         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
8764         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
8765         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
8766         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
8767         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
8768         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
8769         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
8770         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
8771         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
8772         OMP_CLAUSE_UNTIED.
8773         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
8774         * c-common.h (c_finish_omp_taskwait): New prototype.
8775         * gimple-low.c (lower_stmt): Handle OMP_TASK.
8776         * tree-parloops.c (create_parallel_loop): Create 1 entry
8777         vectors for OMP_FOR_{INIT,COND,INCR}.
8778         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
8779         (make_edges): Handle OMP_TASK.
8780         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
8781         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
8782         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
8783         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
8784         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
8785         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
8786         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
8787         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
8788         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
8789         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
8790         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
8791         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
8792         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
8793         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
8794         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
8795         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
8796         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
8797         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
8798         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
8799         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
8800         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
8801         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
8802         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
8803         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
8804         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
8805         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
8806         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
8807         original iterator is present in lastprivate clause or if
8808         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
8809         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
8810         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
8811         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
8812         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
8813         if it is set, lookup var in outer contexts too.  Handle
8814         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
8815         to be implicitly determined firstprivate for task regions.
8816         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
8817         if it is set, lookup var in outer contexts too.  Set
8818         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
8819         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
8820         OMP_CLAUSE_UNTIED.  Take region_type as last argument
8821         instead of in_parallel and in_combined_parallel.
8822         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
8823         Adjust callers.
8824         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
8825         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
8826         (new_omp_context): Set default_kind to
8827         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
8828         (omp_region_type): New enum.
8829         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
8830         fields, add region_type.
8831         (new_omp_context): Take region_type as argument instead of is_parallel
8832         and is_combined_parallel.
8833         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
8834         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
8835         ctx->is_combined_parallel checks.
8836         (gimplify_omp_task): New function.
8837         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
8838         OMP_CLAUSE_UNTIED.
8839         * omp-low.c (extract_omp_for_data): Use schedule(static)
8840         for schedule(auto).  Handle pointer and unsigned iterators.
8841         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
8842         Add loops argument.  Extract data for collapsed OMP_FOR loops.
8843         (expand_parallel_call): Assert sched_kind isn't auto,
8844         map runtime schedule to index 3.
8845         (struct omp_for_data_loop): New type.
8846         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
8847         Add loop, loops, collapse and iter_type fields.
8848         (workshare_safe_to_combine_p): Disallow combined for if
8849         iter_type is unsigned long long.  Don't combine collapse > 1 loops
8850         unless all bounds and steps are constant.  Adjust extract_omp_for_data
8851         caller.
8852         (expand_omp_for_generic): Handle pointer, unsigned and long long
8853         iterators.  Handle collapsed OMP_FOR loops.  Adjust
8854         for struct omp_for_data changes.  If libgomp function doesn't return
8855         boolean_type_node, add comparison of the return value with 0.
8856         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
8857         pointer, unsigned and long long iterators.  Adjust for struct
8858         omp_for_data changes.
8859         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
8860         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
8861         unsigned long long.  Allocate loops array, pass it to
8862         extract_omp_for_data.  For collapse > 1 loops use always
8863         expand_omp_for_generic.
8864         (omp_context): Add sfield_map and srecord_type fields.
8865         (is_task_ctx, lookup_sfield): New functions.
8866         (use_pointer_for_field): Use is_task_ctx helper.  Change first
8867         argument's type from const_tree to tree.  Clarify comment.
8868         In OMP_TASK disallow copy-in/out sharing.
8869         (build_sender_ref): Call lookup_sfield instead of lookup_field.
8870         (install_var_field): Add mask argument.  Populate both record_type
8871         and srecord_type if needed.
8872         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
8873         in srecord_type.
8874         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
8875         and DECL_FIELD_OFFSET.
8876         (scan_sharing_clauses): Adjust install_var_field callers.  For
8877         firstprivate clauses on explicit tasks allocate the var by value in
8878         record_type unconditionally, rather than by reference.
8879         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
8880         Use is_taskreg_ctx instead of is_parallel_ctx.
8881         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
8882         (create_omp_child_function_name): Add task_copy argument, use
8883         *_omp_cpyfn* names if it is true.
8884         (create_omp_child_function): Add task_copy argument, if true create
8885         *_omp_cpyfn* helper function.
8886         (scan_omp_parallel): Adjust create_omp_child_function callers.
8887         Rename parallel_nesting_level to taskreg_nesting_level.
8888         (scan_omp_task): New function.
8889         (lower_rec_input_clauses): Don't run constructors for firstprivate
8890         explicit task vars which are initialized by *_omp_cpyfn*.
8891         Pass outer var ref to omp_clause_default_ctor hook if
8892         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
8893         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
8894         OMP_CLAUSE_REDUCTION_INIT.
8895         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
8896         avoid duplicate setting of fields.  Handle
8897         OMP_CLAUSE_PRIVATE_OUTER_REF.
8898         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
8899         copy-out if TREE_READONLY, only copy-in.
8900         (expand_task_copyfn): New function.
8901         (expand_task_call): New function.
8902         (struct omp_taskcopy_context): New type.
8903         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
8904         New functions.
8905         (lower_omp_parallel): Rename to...
8906         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
8907         Call create_task_copyfn if srecord_type is needed.  Adjust
8908         sender_decl type.
8909         (task_shared_vars): New variable.
8910         (check_omp_nesting_restrictions): Warn if work-sharing,
8911         barrier, master or ordered region is closely nested inside OMP_TASK.
8912         Add warnings for barrier if closely nested inside of work-sharing,
8913         ordered, or master region.
8914         (scan_omp_1): Call check_omp_nesting_restrictions even for
8915         GOMP_barrier calls.  Rename parallel_nesting_level to
8916         taskreg_nesting_level.  Handle OMP_TASK.
8917         (lower_lastprivate_clauses): Even if some lastprivate is found on a
8918         work-sharing construct, continue looking for them on parent parallel
8919         construct.
8920         (lower_omp_for_lastprivate): Add lastprivate clauses
8921         to the beginning of dlist rather than end.  Adjust for struct
8922         omp_for_data changes.
8923         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
8924         not after it.  Handle collapsed OMP_FOR loops, adjust for
8925         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
8926         (get_ws_args_for): Adjust extract_omp_for_data caller.
8927         (scan_omp_for): Handle collapsed OMP_FOR
8928         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
8929         (lower_omp_single_simple): If libgomp function doesn't return
8930         boolean_type_node, add comparison of the return value with 0.
8931         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
8932         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
8933         (parallel_nesting_level): Rename to...
8934         (taskreg_nesting_level): ... this.
8935         (is_taskreg_ctx): New function.
8936         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
8937         of is_parallel_ctx.
8938         (execute_lower_omp): Rename parallel_nesting_level to
8939         taskreg_nesting_level.
8940         (expand_omp_parallel): Rename to...
8941         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
8942         Call omp_task_call for OMP_TASK regions.
8943         (expand_omp): Adjust caller, handle OMP_TASK.
8944         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
8945
8946         * bitmap.c (bitmap_default_obstack_depth): New variable.
8947         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
8948         if argument is NULL and bitmap_default_obstack is already initialized.
8949         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
8950         at the end.
8951         * matrix-reorg.c (matrix_reorg): Likewise.
8952
8953 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
8954
8955         * config/i386/i386.md (*indirect_jump): Macroize using P
8956         mode iterator.  Remove !TARGET_64BIT from insn constraints.
8957         (*tablejump_1): Ditto.
8958         (*indirect_jump_rex64): Remove insn pattern.
8959         (*tablejump_1_rex64): Ditto.
8960         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
8961         and eh_return_si insn patterns.
8962
8963 2008-06-06  Richard Guenther  <rguenther@suse.de>
8964
8965         * tree-ssa-structalias.c (merge_smts_into): Remove.
8966         (find_what_p_points_to): Do not bother to compute the
8967         points-to set for pt_anything pointers.
8968         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
8969         for pt_anything pointers is ok.
8970
8971 2008-06-06  Jan Hubicka  <jh@suse.cz>
8972
8973         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
8974
8975 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8976
8977         * cgraph.c: Fix typos in comments.
8978         (cgraph_availability_names): Fix string typo.
8979         * fold-const.c: Fix typos in comments.
8980         (fold_binary): Fix typo in warning.
8981         * genautomata.c: Fix typos in comments.
8982         (check_presence_pattern_sets): Fix typo in local variable.
8983         (output_description): Fix typo in output.
8984         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
8985         * hwint.h: Likewise.
8986         * matrix-reorg.c (check_allocation_function): Likewise.
8987         * omega.c (smooth_weird_equations): Likewise.
8988         * auto-inc-dec.c: Fix typos in comments.
8989         * bb-reorder.c: Likewise.
8990         * builtins.c: Likewise.
8991         * c-common.c: Likewise.
8992         * c-cppbuiltin.c: Likewise.
8993         * c-parser.c: Likewise.
8994         * c-pretty-print.c: Likewise.
8995         * cfgcleanup.c: Likewise.
8996         * cfgexpand.c: Likewise.
8997         * cfghooks.c: Likewise.
8998         * cfglayout.c: Likewise.
8999         * cfgloopmanip.c: Likewise.
9000         * cgraphunit.c: Likewise.
9001         * coverage.c: Likewise.
9002         * dbxout.c: Likewise.
9003         * df-byte-scan.c: Likewise.
9004         * df-core.c: Likewise.
9005         * df-problems.c: Likewise.
9006         * df-scan.c: Likewise.
9007         * dfp.c: Likewise.
9008         * dominance.c: Likewise.
9009         * domwalk.c: Likewise.
9010         * dse.c: Likewise.
9011         * dwarf2out.c: Likewise.
9012         * emit-rtl.c: Likewise.
9013         * et-forest.c: Likewise.
9014         * function.c: Likewise.
9015         * function.h: Likewise.
9016         * gcc.c: Likewise.
9017         * gcov-io.c: Likewise.
9018         * gcov.c: Likewise.
9019         * gcse.c: Likewise.
9020         * genattrtab.c: Likewise.
9021         * ggc-page.c: Likewise.
9022         * gimplify.c: Likewise.
9023         * gthr-lynx.h: Likewise.
9024         * haifa-sched.c: Likewise.
9025         * ipa-cp.c: Likewise.
9026         * ipa-inline.c: Likewise.
9027         * ipa-prop.h: Likewise.
9028         * ipa-pure-const.c: Likewise.
9029         * ipa-struct-reorg.c: Likewise.
9030         * ipa-struct-reorg.h: Likewise.
9031         * ipa-type-escape.c: Likewise.
9032         * ipa.c: Likewise.
9033         * loop-doloop.c: Likewise.
9034         * mips-tfile.c: Likewise.
9035         * mkmap-flat.awk: Likewise.
9036         * mkmap-symver.awk: Likewise.
9037         * modulo-sched.c: Likewise.
9038         * omp-low.c: Likewise.
9039         * optabs.c: Likewise.
9040         * optabs.h: Likewise.
9041         * opts.c: Likewise.
9042         * passes.c: Likewise.
9043         * postreload-gcse.c: Likewise.
9044         * postreload.c: Likewise.
9045         * predict.c: Likewise.
9046         * pretty-print.h: Likewise.
9047         * profile.c: Likewise.
9048         * protoize.c: Likewise.
9049         * ra-conflict.c: Likewise.
9050         * real.c: Likewise.
9051         * recog.c: Likewise.
9052         * regclass.c: Likewise.
9053         * regs.h: Likewise.
9054         * reload.c: Likewise.
9055         * rtl-error.c: Likewise.
9056         * rtlanal.c: Likewise.
9057         * scan.h: Likewise.
9058         * sched-rgn.c: Likewise.
9059         * see.c: Likewise.
9060         * stmt.c: Likewise.
9061         * target.h: Likewise.
9062         * tree-dfa.c: Likewise.
9063         * tree-eh.c: Likewise.
9064         * tree-flow-inline.h: Likewise.
9065         * tree-inline.c: Likewise.
9066         * tree-into-ssa.c: Likewise.
9067         * tree-loop-distribution.c: Likewise.
9068         * tree-nested.c: Likewise.
9069         * tree-parloops.c: Likewise.
9070         * tree-pass.h: Likewise.
9071         * tree-pretty-print.c: Likewise.
9072         * tree-profile.c: Likewise.
9073         * tree-scalar-evolution.c: Likewise.
9074         * tree-sra.c: Likewise.
9075         * tree-ssa-alias-warnings.c: Likewise.
9076         * tree-ssa-ccp.c: Likewise.
9077         * tree-ssa-coalesce.c: Likewise.
9078         * tree-ssa-dom.c: Likewise.
9079         * tree-ssa-dse.c: Likewise.
9080         * tree-ssa-forwprop.c: Likewise.
9081         * tree-ssa-live.c: Likewise.
9082         * tree-ssa-live.h: Likewise.
9083         * tree-ssa-loop-im.c: Likewise.
9084         * tree-ssa-loop-ivopts.c: Likewise.
9085         * tree-ssa-loop-niter.c: Likewise.
9086         * tree-ssa-loop-prefetch.c: Likewise.
9087         * tree-ssa-phiopt.c: Likewise.
9088         * tree-ssa-phiprop.c: Likewise.
9089         * tree-ssa-sccvn.c: Likewise.
9090         * tree-ssa-ter.c: Likewise.
9091         * tree-ssa-threadupdate.c: Likewise.
9092         * tree-ssa.c: Likewise.
9093         * tree-vect-analyze.c: Likewise.
9094         * tree-vect-transform.c: Likewise.
9095         * tree-vectorizer.c: Likewise.
9096         * tree-vn.c: Likewise.
9097         * tree-vrp.c: Likewise.
9098         * tree.c: Likewise.
9099         * tree.def: Likewise.
9100         * tree.h: Likewise.
9101         * unwind-dw2-fde.c: Likewise.
9102         * unwind.inc: Likewise.
9103         * value-prof.c: Likewise.
9104         * vmsdbgout.c: Likewise.
9105
9106 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
9107
9108         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
9109         always place FP constants in the TOC for TARGET_POWERPC64.
9110         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
9111
9112 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
9113
9114         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
9115         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
9116         enable for TARGET_E500_DOUBLE.
9117         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
9118         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
9119         floating-point modes like integer modes for E500 double.
9120         (rs6000_legitimate_offset_address_p): Likewise.
9121         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
9122         addressing for DDmode for E500 double.
9123         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
9124         modes as using 64-bits of registers for E500 double.
9125         (spe_build_register_parallel): Do not handle DDmode or TDmode.
9126         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
9127         specially for E500 double.
9128         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
9129         TDmode for E500 double.
9130         (rs6000_gimplify_va_arg): Only handle SDmode in registers
9131         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
9132         (rs6000_split_multireg_move): Do not handle TDmode specially for
9133         E500 double.
9134         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
9135         using 64-bit registers for E500 double.
9136         (emit_frame_save): Do not handle DDmode specially for E500 double.
9137         (gen_frame_mem_offset): Likewise.
9138         (rs6000_function_value): Do not call spe_build_register_parallel
9139         for DDmode or TDmode.
9140         (rs6000_libcall_value): Likewise.
9141         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
9142         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
9143         for E500 double.
9144
9145 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
9146
9147         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
9148         in comments.
9149
9150 2008-06-04  Junjie Gu <jgu@tensilica.com>
9151
9152         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
9153         comparison for frame pointers.
9154
9155 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
9156
9157         PR target/27386
9158         * config/avr/avr.h (PUSH_ROUNDING): Remove.
9159
9160 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
9161
9162         PR target/30243
9163         * builtins.c (expand_builtin_signbit): Don't take lowpart when
9164         register is already smaller or equal to required mode.
9165
9166 2008-06-04  Xinliang David Li  <davidxl@google.com>
9167
9168         * tree-call-cdce.c: New file.
9169         (cond_dead_built_in_calls): New static variable.
9170         (input_domain): New struct.
9171         (check_pow): New function.
9172         (check_builtin_call): Ditto.
9173         (check_target_format): Ditto.
9174         (is_call_dce_candidate): Ditto.
9175         (gen_one_condition): Ditto.
9176         (gen_conditions_for_domain): Ditto.
9177         (get_domain): Ditto.
9178         (gen_conditions_for_pow_cst_base): Ditto.
9179         (gen_conditions_for_pow_int_base): Ditto.
9180         (gen_conditions_for_pow): Ditto.
9181         (get_no_error_domain): Ditto.
9182         (gen_shrink_wrap_conditions): Ditto.
9183         (shrink_wrap_one_built_in_call): Ditto.
9184         (shink_wrap_conditional_dead_built_in_calls): Ditto.
9185         (tree_call_cdce): Ditto.
9186         (gate_call_cdce): Ditto.
9187         (pass_call_cdce): New gimple pass.
9188         * passes.c: (init_optimization_passes): New pass.
9189         * tree-pass.h: New pass declaration.
9190         * opts.c (decode_options): New flag setting.
9191         * common.opt: Add -ftree-builtin-call-dce flag.
9192         * Makefile.in: Add new source file.
9193         * tempvar.def: New tv_id.
9194         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
9195
9196 2008-06-04  Richard Guenther  <rguenther@suse.de>
9197
9198         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
9199         (is_call_clobbered): Always check var_ann->call_clobbered.
9200         (mark_call_clobbered): Always set var_ann->call_clobbered.
9201         (clear_call_clobbered): Always clear var_ann->call_clobbered.
9202         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
9203         (reset_alias_info): Clear call clobbering info on MTAGs and
9204         globals as well.
9205         (set_pt_anything): Set pt_global_mem.
9206         (create_tag_raw): Adjust comment.
9207         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
9208
9209 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
9210             Maxim Kuvyrkov  <maxim@codesourcery.com>
9211
9212         * config/m68k/m68k.opt (mxgot): New option.
9213         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
9214         (m68k_output_addr_const_extra): New.
9215         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
9216         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
9217         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
9218         * doc/invoke.texi (M680x0 Options): Document -mxgot.
9219
9220 2008-06-04  Richard Guenther  <rguenther@suse.de>
9221
9222         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
9223         negative or non-representable offsets.
9224
9225 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
9226
9227         * config/i386/i386.c (ix86_gen_leave): New.
9228         (ix86_gen_pop1): Likewise.
9229         (ix86_gen_add3): Likewise.
9230         (ix86_gen_sub3): Likewise.
9231         (ix86_gen_sub3_carry): Likewise.
9232         (ix86_gen_one_cmpl2): Likewise.
9233         (ix86_gen_monitor): Likewise.
9234         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
9235         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
9236         ix86_gen_one_cmpl2 and ix86_gen_monitor.
9237         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
9238         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
9239         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
9240         (ix86_expand_epilogue): Updated.
9241         (print_operand): Handle integer register operand for 'z'.
9242         (ix86_expand_strlensi_unroll_1): Likewise.
9243         (ix86_expand_strlen): Likewise.
9244         (ix86_expand_builtin): Likewise.
9245         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
9246         mov{q}/mov{l} and add{q}/add{l}.
9247
9248 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
9249
9250         * config/i386/i386.md (P): New mode iterator.
9251         (SFmode push_operand splitter): Macroize DImode and SImode pushes
9252         using P mode iterator.
9253         (DFmode push_operand splitter): Ditto.
9254         (XFmode push_operand splitter): Ditto.
9255         (DFmode float_extend SFmode push_operand splitter): Ditto.
9256         (XFmode float_extend SFmode push_operand splitter): Do not generate
9257         SImode pushes for 64bit target.  Macroize Dimode and SImode
9258         pushes using P mode iterator.
9259         (XFmode float_extend DFmode push_operand splitter): Ditto.
9260
9261 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
9262
9263         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
9264         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
9265         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
9266         return type to int.
9267         (ix86_call_abi_override): Remove check for call_used_regs.
9268
9269 2008-06-03  Richard Guenther  <rguenther@suse.de>
9270
9271         * tree-ssa-structalias.c (find_func_aliases): Add constraints
9272         for the lhs of calls if the return type contains pointers.
9273
9274 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
9275
9276         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
9277         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
9278         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
9279         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
9280         of cfun and DEFAULT_ABI to deceide abi mode.
9281         (DEFAULT_ABI): New.
9282         (REG_PARM_STACK_SPACE): Removed.
9283         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
9284         (STACK_BOUNDARY): Use default target to deceide stack boundary.
9285         * config/i386/i386-protos.h (ix86_cfun_abi): New.
9286         (ix86_function_abi): Likewise.
9287         (ix86_function_type_abi): Likewise.
9288         (ix86_call_abi_override): Likewise.
9289         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
9290         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
9291         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
9292         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
9293         specific defines.
9294         (X86_64_REGPARM_MAX): New.
9295         (X86_64_SSE_REGPARM_MAX): New.
9296         (X64_REGPARM_MAX): New.
9297         (X64_SSE_REGPARM_MAX): New.
9298         (X86_32_REGPARM_MAX): New.
9299         (X86_32_SSE_REGPARM_MAX): New.
9300         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
9301         (ix86_function_regparm): Handle user calling abi.
9302         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
9303         by DEFAULT_ABI versus SYSV_ABI check.
9304         (ix86_reg_parm_stack_space): New.
9305         (ix86_function_type_abi): New.
9306         (ix86_call_abi_override): New.
9307         (ix86_function_abi): New.
9308         (ix86_cfun_abi): New.
9309         (init_cumulative_args): Call abi specific initialization.
9310         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
9311         (function_arg_64): Extend SSE_REGPARM_MAX check.
9312         (function_arg (): Remove TARGET_64BIT_MS_ABI.
9313         (ix86_pass_by_reference): Likewise.
9314         (ix86_function_value_regno_p): Likewise.
9315         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
9316         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
9317         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
9318         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
9319         (setup_incoming_varargs_64): Adjust regparm for call abi.
9320         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
9321         (ix86_va_start): Likewise.
9322         (ix86_gimplify_va_arg): Likewise.
9323         (ix86_expand_prologue): Likewise.
9324         (output_pic_addr_const): Likewise.
9325         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
9326         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
9327         (x86_output_mi_thunk): Likewise.
9328         (x86_function_profiler): Likewise.
9329         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
9330         (SYSV_ABI, MS_ABI): New constants.
9331         (DEFAULT_ABI): New.
9332         (init_regs): Add prototype of function in regclass.c file.
9333         (OVERRIDE_ABI_FORMAT): New.
9334         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
9335         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
9336         (OUTGOING_REG_PARM_STACK_SPACE): New.
9337         (ix86_reg_parm_stack_space): New prototype.
9338         (CUMULATIVE_ARGS): Add call_abi member.
9339         (machine_function): Add call_abi member.
9340         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
9341         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
9342
9343 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com>
9344
9345         PR target/34879
9346         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
9347         (avr_builtin_setjmp_frame_value): New function.
9348         * config/avr/avr.md (nonlocal_goto_receiver): Define.
9349         (nonlocal_goto): Define.
9350
9351 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
9352
9353         * config/mips/mips.c (mips_emit_loadgp): Return early if
9354         there is nothing do to, otherwise emit a blockage if
9355         !TARGET_EXPLICIT_RELOCS || crtl->profile.
9356         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
9357
9358 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9359
9360         * configure.ac: Drop unneeded backslash ending up in config.in.
9361         * acinclude.m4: Likewise.
9362         * config.in: Regenerate.
9363
9364 2008-05-26  Jan Hubicka  <jh@suse.cz>
9365
9366         * predict.c (maybe_hot_frequency_p): Break out of...
9367         (maybe_hot_bb_p): ... here.
9368         (maybe_hot_edge_p): New.
9369         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
9370         * basic-block.h (maybe_hot_edge_p): Declare.
9371
9372 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
9373
9374         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
9375         (*cmpfp_<mode>_cc): Ditto.
9376         (*fp_jcc_8<mode>_387): Ditto.
9377         (*fop_<MODEF:mode>_2_i387): Ditto.
9378         (*fop_<MODEF:mode>_3_i387): Ditto.
9379         (*fop_xf_2_i387): Ditto.
9380         (*fop_xf_3_i387): Ditto.
9381
9382 2008-06-02  Tomas Bily  <tbily@suse.cz>
9383
9384         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
9385
9386 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
9387
9388         * config/mips/mips.c (mips_valid_offset_p): New function.
9389         (mips_valid_lo_sum_p): Likewise.
9390         (mips_classify_address): Use them.
9391         (mips_force_address): New function.
9392         (mips_legitimize_address): Use it.
9393         * config/mips/mips.md (MOVE128): New mode iterator.
9394         (movtf): Require TARGET_64BIT.  Remove empty strings.
9395         (*movtf_internal): Rename to...
9396         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
9397         of "R" and use {,fp}{load,store} attributes instead of "multi".
9398         Use a separate define_split.
9399         (*movtf_mips16): New pattern.
9400
9401 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
9402
9403         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
9404         * config/mips/mips.c (mips_expand_before_return): New function.
9405         (mips_expand_epilogue): Call it.
9406         * config/mips/mips.md (return): Turn into a define_expand.
9407         (*return): New insn.
9408
9409 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
9410
9411         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
9412         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
9413         functions.  Do not emit uses and clobbers of CONCATs; individually
9414         use and clobber their operands.
9415         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
9416         gen_clobber, emit_use and gen_use.
9417         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
9418         (expand_builtin_return): Likewise.
9419         * cfgbuild.c (count_basic_blocks): Likewise.
9420         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
9421         * explow.c (emit_stack_restore): Likewise.
9422         * expmed.c (extract_bit_field_1): Likewise.
9423         * expr.c (convert_move, emit_move_complex_parts): Likewise.
9424         (emit_move_multi_word, store_constructor): Likewise.
9425         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
9426         (thread_prologue_and_epilogue_insns): Likewise.
9427         * lower-subreg.c (resolve_simple_move): Likewise.
9428         * optabs.c (widen_operand, expand_binop): Likewise.
9429         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
9430         * reload.c (find_reloads): Likewise.
9431         * reload1.c (eliminate_regs_in_insn): Likewise.
9432         * stmt.c (expand_nl_goto_receiver): Likewise.
9433         * config/alpha/alpha.md (builtin_longjmp): Likewise.
9434         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
9435         * config/arm/arm.c (arm_load_pic_register): Likewise.
9436         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
9437         * config/arm/arm.md (untyped_return): Likewise.
9438         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
9439         * config/avr/avr.c (expand_prologue): Likewise.
9440         * config/bfin/bfin.c (do_unlink): Likewise.
9441         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
9442         * config/cris/cris.c (cris_expand_prologue): Likewise.
9443         * config/darwin.c (machopic_indirect_data_reference): Likewise.
9444         (machopic_legitimize_pic_address): Likewise.
9445         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
9446         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
9447         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
9448         (ix86_expand_convert_uns_didf_sse): Likewise.
9449         (ix86_expand_vector_init_general): Likewise.
9450         * config/ia64/ia64.md (eh_epilogue): Likewise.
9451         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
9452         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
9453         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
9454         (config/iq2000/iq2000.c): Likewise.
9455         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
9456         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
9457         (builtin_longjmp): Likewise.
9458         * config/mn10300/mn10300.md (call, call_value): Likewise.
9459         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
9460         * config/pdp11/pdp11.md (abshi2): Likewise.
9461         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
9462         * config/s390/s390.c (s390_emit_prologue): Likewise.
9463         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
9464         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
9465         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
9466         * config/sh/sh.c (prepare_move_operands): Likewise.
9467         (output_stack_adjust, sh_expand_epilogue): Likewise.
9468         (sh_set_return_address, sh_expand_t_scc): Likewise.
9469         * config/sparc/sparc.c (load_pic_register): Likewise.
9470         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
9471         * config/spu/spu.c (spu_expand_epilogue): Likewise.
9472         * config/v850/v850.c (expand_epilogue): Likewise.
9473
9474 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
9475
9476         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
9477         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
9478         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
9479         * config/avr/avr.c (expand_prologue, expand_epilogue): Use
9480         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
9481         stack pointer register.
9482         (output_movhi): Remove code for interrupt specific writing to the
9483         stack pointer register.
9484
9485 2008-05-31  Richard Guenther  <rguenther@suse.de>
9486
9487         PR tree-optimization/34244
9488         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
9489         (tree_expr_nonzero_warnv_p): Likewise.
9490         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
9491         ssa_name_nonnegative_p.
9492         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
9493         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
9494         not tree_expr_nonzero_warnv_p.
9495
9496         PR tree-optimization/36262
9497         Revert
9498         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
9499
9500         PR tree-optimization/34244
9501         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
9502         (record_numbers_of_iterations): New function.
9503         (execute_vrp): Cache the numbers of iterations of loops.
9504         * tree-scalar-evolution.c (scev_reset_except_niters):
9505         New function.
9506         (scev_reset): Use scev_reset_except_niters.
9507         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
9508
9509 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
9510
9511         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
9512         __WORKAROUND_RETS when appropriate.
9513
9514 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
9515
9516         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
9517         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
9518         mode iterator.
9519         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
9520         *fop_df_comm_sse insn patterns using MODEF mode iterator.
9521         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
9522         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
9523         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
9524         *fop_df_1_mixed insn patterns using MODEF mode iterator.
9525         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
9526         *fop_df_1_sse insn patterns using MODEF mode iterator.
9527         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
9528         *fop_df_1_i387 insn patterns using MODEF mode iterator.
9529         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
9530         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
9531         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
9532         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
9533         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
9534         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
9535         (*fop_xf_4_i387): Use <MODE> for mode attribute.
9536         (*fop_xf_5_i387): Ditto.
9537         (*fop_xf_6_i387): Ditto.
9538
9539 2008-05-30  Richard Guenther  <rguenther@suse.de>
9540
9541         * builtins.c (build_string_literal): Avoid generating
9542         a non-gimple_val result.
9543
9544 2008-05-30  DJ Delorie  <dj@redhat.com>
9545
9546         * exec-tool.in: Use an environment variable (private) instead of a
9547         file (shared) as a semaphore, so as to not break parallel builds.
9548
9549 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
9550
9551         * optabs.c (maybe_encapsulate_block): Remove.
9552         (emit_libcall_block): Adjust accordingly.
9553         * optabs.h (maybe_encapsulate_block): Remove prototype.
9554
9555         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
9556         Don't use maybe_encapsulate_block.
9557
9558 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
9559
9560         * config/rs6000/rs6000.c (rs6000_legitimize_address,
9561         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
9562         rtx is a SYMBOL_REF before calling get_pool_constant.
9563
9564 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
9565
9566         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
9567
9568 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
9569
9570         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
9571         rather than OS names to choose INO_T_EQ definition.
9572         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
9573         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
9574
9575 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
9576
9577         PR target/36348
9578         * config/darwin-f.c: New.
9579         * config/t-darwin: Added rule to build darwin-f.o.
9580         * config.gcc: Defined new variable, fortran_target_objs.
9581         (*-*-darwin*): Set fortran_target_objs.
9582         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
9583         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
9584         * configure: Regenerated.
9585
9586 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
9587
9588         PR target/35771
9589         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
9590         canonical type if needed.
9591
9592 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
9593
9594         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
9595
9596 2008-05-29  Richard Guenther  <rguenther@suse.de>
9597
9598         PR tree-optimization/36343
9599         PR tree-optimization/36346
9600         PR tree-optimization/36347
9601         * tree-flow.h (clobber_what_p_points_to): Declare.
9602         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
9603         pointed-to variable is dereferenced is irrelevant to whether
9604         the pointer can access the pointed-to variable.
9605         (clobber_what_p_points_to): New function.
9606         * tree-ssa-alias.c (set_initial_properties): Use it.
9607         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
9608         call clobber check for NMTs.
9609
9610 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
9611
9612         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
9613         for printing gcov_type.
9614
9615 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
9616
9617         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
9618         and the eh region information.
9619         * value-prof.c (gimple_move_stmt_histograms): New function.
9620         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
9621
9622 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
9623
9624         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
9625
9626 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
9627
9628         * value-prof.c (tree_ic_transform): Print counts.
9629         * tree-profile.c (tree_gen_ic_func_profiler):
9630         Clear __gcov_indreict_call_callee variable to avoid misattribution
9631         of the profile.
9632
9633 2008-05-28  Rafael Espindola  <espindola@google.com>
9634
9635         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
9636         invalid sharing.
9637
9638 2008-05-28  Richard Guenther  <rguenther@suse.de>
9639
9640         PR tree-optimization/36339
9641         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
9642         and clobbering code out of the loop.
9643
9644 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
9645
9646         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
9647         letters defined.
9648
9649         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
9650         s390_contiguous_bitmask_p, s390_symref_operand_p,
9651         s390_check_symref_alignment, s390_reload_larl_operand,
9652         s390_reload_symref_address): New functions.
9653         (s390_branch_condition_mnemonic): Support compare and branch
9654         instructions.
9655         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
9656         and 'W' constraints.
9657         (s390_secondary_reload): Add secondary reloads for unaligned
9658         symbol refs or symbol refs to floating point or QI/TI mode
9659         integer values.
9660         (legitimate_address_p): Accept symbol references as addresses.
9661         (s390_expand_insv): Use rotate and insert selected bits
9662         instruction for insv when building for z10.
9663         (print_operand_address): Handle symbol ref addresses.
9664         (print_operand): Output modifier 'c' added for signed byte values.
9665         (s390_encode_section_info): Mark symbol refs with
9666         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
9667
9668         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
9669         (length attribute): RRF, RRR have 4 byte length.
9670         (FPALL, INTALL): New mode iterators added.
9671         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
9672         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
9673         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
9674         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
9675         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
9676         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
9677         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
9678         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
9679         instructions.
9680         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
9681         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
9682         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
9683         reload<INTALL:mode><P:mode>_toreg_z10,
9684         reload<FPALL:mode><P:mode>_tomem_z10,
9685         reload<FPALL:mode><P:mode>_toreg_z10,
9686         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
9687         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
9688         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
9689         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
9690         definition.
9691         (movmem, clrmem, cmpmem): New splitters added.
9692
9693         * config/s390/predicates.md (larl_operand): Use
9694         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
9695         SYMBOL_REF_ALIGN1_P.
9696         (s390_signed_integer_comparison,
9697         s390_unsigned_integer_comparison): New predicates.
9698
9699         * config/s390/s390-protos.h (s390_check_symref_alignment,
9700         s390_contiguous_bitmask_p, s390_reload_larl_operand,
9701         s390_reload_symref_address,
9702         s390_compare_and_branch_condition_mask): Prototypes added.
9703
9704         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
9705         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
9706         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
9707
9708 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
9709
9710         * config/s390/s390.c (z10_cost): New cost function for z10.
9711         (s390_handle_arch_option, override_options): Support -march=z10 switch.
9712         (s390_issue_rate): Adjust issue rate for z10.
9713         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
9714         (processor_flags): Add PF_Z10.
9715         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
9716         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
9717         * gcc/config.gcc: Add z10.
9718
9719 2008-05-28  Richard Guenther  <rguenther@suse.de>
9720
9721         PR tree-optimization/36291
9722         * tree-flow. h (struct gimple_df): Remove var_anns member.
9723         * tree-flow-inline.h (gimple_var_anns): Remove.
9724         (var_ann): Simplify.
9725         * tree-dfa.c (create_var_ann): Simplify.
9726         (remove_referenced_var): Clear alias info from var_anns of globals.
9727         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
9728         (delete_tree_ssa): Clear alias info from var_anns of globals.
9729         Do not free var_anns.
9730         (var_ann_eq): Remove.
9731         (var_ann_hash): Likewise.
9732
9733 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
9734
9735         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
9736         and loongson2f entries.
9737         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
9738         * config/mips/mips.h (processor_type): Add Loongson-2E
9739         and Loongson-2F entries.
9740         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
9741         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
9742         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
9743         * doc/invoke.texi (MIPS Options): Document loongson2e
9744         and loongson2f processor names.
9745
9746 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
9747
9748         PR target/35767
9749         PR target/35771
9750         * config/i386/i386.c (ix86_function_arg_boundary): Use
9751         alignment of canonical type.
9752         (ix86_expand_vector_move): Check unaligned memory access for
9753         all SSE modes.
9754
9755 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
9756
9757         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
9758         Moved to the front of file.
9759
9760 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
9761             H.J. Lu  <hongjiu.lu@intel.com>
9762
9763         * dwarf2out.c (current_fde): New.
9764         (add_cfi): Use it.
9765         (lookup_cfa:): Likewise.
9766         (dwarf2out_end_epilogue): Likewise.
9767         (dwarf2out_note_section_used): Likewise.
9768
9769 2008-05-27  Michael Matz  <matz@suse.de>
9770
9771         PR c++/27975
9772         * c.opt (Wenum-compare): New warning option.
9773         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
9774
9775 2008-05-27  Michael Matz  <matz@suse.de>
9776
9777         PR middle-end/36326
9778         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
9779         non-BLKmode types.
9780         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
9781         into memory as tail calls.
9782
9783 2008-05-27  Richard Guenther  <rguenther@suse.de>
9784
9785         PR tree-optimization/36339
9786         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
9787         pointers cause all addressable variables to be call clobbered.
9788
9789 2008-05-27  Richard Guenther  <rguenther@suse.de>
9790
9791         PR tree-optimization/36245
9792         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
9793
9794 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
9795
9796         * config/s390/s390.md: Replace all occurences of the 'm'
9797         constraint with 'RT'.
9798
9799 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
9800
9801         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
9802         definitions added.
9803         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
9804         "*movdi_64".
9805         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
9806         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
9807         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
9808
9809 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
9810
9811         * reload.c: (find_reloads): Skip alternatives according to the
9812         "enabled" attribute. Constify the constraint variable.
9813         * recog.c (get_attr_enabled): Add default implementation.
9814         (extract_insn): Set the alternative_enabled_p array
9815         in the recog_data struct.
9816         (preprocess_constraints, constrain_operands): Skip
9817         alternatives according to the "enabled" attribute
9818         * recog.h (struct recog_data): New field alternative_enabled_p.
9819         (skip_alternative): New inline function.
9820         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
9821         (record_reg_classes): Skip alternative according to the
9822         "enabled" attribute.
9823
9824         * doc/md.texi: Add documention for the "enabled" attribute.
9825
9826 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
9827
9828         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
9829         * postreload.c (reload_cse_simplify_operands): Replace 'm'
9830         constraint with TARGET_MEM_CONSTRAINT.
9831         * recog.c (asm_operand_ok, preprocess_constraints,
9832         constrain_operands): Likewise.
9833         * regclass.c (record_reg_classes): Likewise.
9834         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
9835         * reload1.c (maybe_fix_stack_asms): Likewise.
9836         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
9837         * recog.h: Adjust comment.
9838         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
9839         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
9840         * doc/md.texi: Add a note to description of 'm' constraint.
9841         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
9842
9843 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
9844
9845         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
9846         that the bitfield is of integral type before testing its precision.
9847
9848 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
9849             Sa Liu  <saliu@de.ibm.com>
9850
9851         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
9852         __modti3, __udivti3, __umodti3 and __udivmodti4.
9853         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
9854         that implement TImode mul and div functions.
9855         * config/spu/multi3.c: New. Implement __multi3.
9856         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
9857         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
9858         functions on SPU.
9859
9860 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
9861
9862         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
9863         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
9864         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
9865         tls_sysv_suffix): New mode and mode attribute iterators.
9866         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
9867         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
9868         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
9869         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
9870         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
9871         iterators.
9872
9873 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
9874
9875         PR tree-optimization/36329
9876         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
9877         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
9878         * cgraphbuild.c (initialize_inline_failed): Use the latter
9879         macro in lieu of the former.
9880         * ipa-inline.c (cgraph_mark_inline): Likewise.
9881         (cgraph_decide_inlining_of_small_function): Likewise.
9882         (cgraph_decide_inlining): Likewise.
9883         (cgraph_decide_inlining_incrementally): Likewise.
9884
9885 2008-05-26  Tristan Gingold  <gingold@adacore.com>
9886             Anatoly Sokolov  <aesok@post.ru>
9887
9888         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
9889         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
9890         * config/avr/avr.c (expand_prologue): Tune "call_prologue"
9891         optimization for 'avr6' architecture.
9892
9893 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
9894
9895         PR target/34932
9896         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
9897
9898 2008-05-26  Richard Guenther  <rguenther@suse.de>
9899
9900         * tree-ssa-sccvn.c (expr_has_constants): Declare.
9901         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
9902
9903 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
9904
9905         PR middle-end/36253
9906         * caller-save.c (insert_restore): Verify alignment of spill space.
9907         (insert_save): Likewise.
9908         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
9909         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
9910         (STACK_SLOT_ALIGNMENT): Likewise.
9911         * function.c (LOCAL_ALIGNMENT): Removed.
9912         (get_stack_local_alignment): New.
9913         (assign_stack_local): Use it.  Set alignment on stack slot.
9914         (assign_stack_temp_for_type): Use get_stack_local_alignment.
9915         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
9916         (STACK_SLOT_ALIGNMENT): New.
9917         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
9918         stack slot in XFmode.
9919
9920         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
9921
9922 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
9923
9924         PR/36321
9925         * config/i386/i386.md (allocate_stack_worker_64): Make sure
9926         argument operand in rax isn't removed.
9927
9928 2008-05-26  Richard Guenther  <rguenther@suse.de>
9929
9930         PR middle-end/36300
9931         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
9932         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
9933
9934 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
9935
9936         PR bootstrap/36331
9937         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
9938
9939 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
9940
9941         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
9942         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
9943
9944 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
9945
9946         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
9947         build a trampoline if we don't want one.
9948         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
9949         return zero for nested functions if we don't want a trampoline.
9950
9951 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
9952
9953         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
9954
9955 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
9956
9957         PR fortran/18428
9958         * c.opt: Removed undocumented option '-lang-fortran'.
9959         * c-common.h: Removed global variable 'lang_fortran'.
9960         * c-opts.c (c_common_handle_option): Removed code to handle
9961         option '-lang-fortran'. Updated includes.
9962         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
9963         definition of '__GFORTRAN__'.
9964         (define__GNUC__): Reimplemented to use BASEVER and
9965         cpp_define_formatted.
9966         (builtin_define_with_value_n): Removed.
9967         * c-incpath.h: Renamed to ...
9968         * incpath.h: ... this.
9969         * c-incpath.c: Renamed to ...
9970         * incpath.c: ... this. Updated includes.
9971         * fix-header.c: Updated includes.
9972         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
9973         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
9974         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
9975
9976 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
9977
9978         * tree.h: Update the table of flags used on tree nodes.
9979         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
9980         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
9981         (FORCED_LABEL): Add access check.
9982         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
9983         (ASM_INPUT_P): Likewise.
9984         (ASM_VOLATILE_P): Likewise.
9985         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
9986         (OMP_SECTION_LAST): Access private_flag directly.
9987         (OMP_RETURN_NOWAIT): Likewise.
9988         (OMP_PARALLEL_COMBINED): Likewise.
9989         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
9990         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
9991         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
9992         deprecated_flag directly.
9993
9994 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
9995
9996         * final.c (frame_pointer_needed): Removed.
9997         * flags.h (frame_pointer_needed): Likewise.
9998
9999         * function.h (rtl_data): Add frame_pointer_needed.
10000         (frame_pointer_needed): New.
10001
10002 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
10003
10004         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
10005
10006 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
10007
10008         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
10009         SRC is a REG.
10010
10011 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
10012
10013         * c-common.c (strip_array_types): Move function to..
10014         * tree.c: ..here.
10015         (get_inner_array_type): Delete.
10016         * c-common.h (strip_array_types): Move declaration to..
10017         * tree.h: ..here.
10018         (get_inner_array_type): Delete.
10019         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
10020         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
10021         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
10022         * config/pa/pa.c (emit_move_sequence): Likewise.
10023
10024 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
10025
10026         * config/i386/i386.md (*sse_prologue_save_insn): Set length
10027         attribute to 34.
10028
10029 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
10030
10031         * function.c: Include target hook for nonlocal_goto frame value.
10032
10033 2008-05-24  Richard Guenther  <rguenther@suse.de>
10034
10035         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
10036         variable can be only accessed through a pointer or a union.
10037
10038 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10039
10040         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
10041         * doc/extend.texi: Likewise.
10042
10043 2008-05-23  DJ Delorie  <dj@redhat.com>
10044
10045         * config/m32c/jump.md (untyped_call): Add.
10046
10047         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
10048         for A24 to PSImode.
10049         (m32c_address_cost): Detail costs for indirect offsets.
10050
10051 2008-05-23  Rafael Espindola  <espindola@google.com>
10052
10053         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
10054         if a node is a SUBREG.
10055         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
10056         is a SUBREG.
10057
10058 2008-05-23  Paul Brook  <paul@codesourcery.com>
10059             Carlos O'Donell  <carlos@codesourcery.com>
10060
10061         * doc/extend.texi: Clarify use of __attribute__((naked)).
10062         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
10063         * target.h (gcc_target): Add allocate_stack_slots_for_args.
10064         * function.c (use_register_for_decl): Use
10065         targetm.calls.allocate_stack_slots_for_args.
10066         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
10067         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
10068         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
10069
10070 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
10071
10072         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
10073
10074 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
10075
10076         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
10077         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
10078         is only rounded once.
10079
10080 2008-05-23  Richard Guenther  <rguenther@suse.de>
10081
10082         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
10083
10084 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
10085             Jakub Jelinek  <jakub@redhat.com>
10086
10087         PR target/36079
10088         * configure.ac: Handle --enable-cld.
10089         * configure: Regenerated.
10090         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
10091         * config/i386/i386.h (struct machine_function): Add needs_cld field.
10092         (ix86_current_function_needs_cld): New define.
10093         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
10094         (cld): New isns pattern.
10095         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
10096         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
10097         * config/i386/i386.opt (mcld): New option.
10098         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
10099         TARGET_CLD and ix86_current_function_needs_cld.
10100         (override_options): Use -mcld by default for 32-bit code if
10101         USE_IX86_CLD.
10102
10103         * doc/install.texi (Options specification): Document --enable-cld.
10104         * doc/invoke.texi (Machine Dependent Options)
10105         [i386 and x86-64 Options]: Add -mcld option.
10106         (Intel 386 and AMD x86-64 Options): Document -mcld option.
10107
10108 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
10109         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
10110         (return_in_memory_64): Likewise.
10111         (return_in_memory_ms_64): Likewise.
10112
10113 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10114
10115         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
10116         * builtins.c (fold_builtin_fpclassify): New.
10117         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
10118         * builtins.def (BUILT_IN_FPCLASSIFY): New.
10119         * c-common.c (handle_type_generic_attribute): Adjust to accept
10120         fixed arguments before an elipsis.
10121         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
10122         * doc/extend.texi: Document __builtin_fpclassify.
10123
10124 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
10125
10126         * omp-low.c (gate_expand_omp_ssa): Remove.
10127         (pass_expand_omp_ssa): Remove.
10128         (gate_expand_omp): Do not check for flag_openmp_ssa.
10129         * common.opt (-fopenmp-ssa): Remove.
10130         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
10131
10132 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
10133
10134         * config/sh/sh.opt (mfixed-range): New option.
10135         * config/sh/sh-protos.h (sh_fix_range): Declare.
10136         * config/sh/sh.c (sh_fix_range): New function.
10137         * config/sh/sh.h (sh_fixed_range_str): Declare.
10138         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
10139         is not empty.
10140         * doc/invoke.texi (SH Options): Document -mfixed-range.
10141
10142 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
10143
10144         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
10145         it before the redeclaration.
10146
10147 2008-05-22  Anatoly Sokolov <aesok@post.ru>
10148
10149         * config/avr/avr.c (get_sequence_length): Add new function.
10150         (expand_prologue, expand_epilogue): Remove duplicate code.
10151
10152 2008-05-22  Rafael Espindola  <espindola@google.com>
10153
10154         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
10155         sharing.
10156
10157 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
10158
10159         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
10160         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
10161
10162         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
10163         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
10164         (vect_update_misalignment_for_peel): Likewise.
10165         (vector_alignment_reachable_p): Likewise.
10166         * tree-vect-transform.c (vectorizable_load): Likewise.
10167         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
10168         (get_vectype_for_scalar_type): Pass mode of scalar_type
10169         to UNITS_PER_SIMD_WORD.
10170
10171         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
10172         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
10173         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
10174         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
10175         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
10176
10177 2008-05-22  Ira Rosen  <irar@il.ibm.com>
10178
10179         PR tree-optimization/36293
10180         * tree-vect-transform.c (vect_transform_strided_load): Don't check
10181         if the first load must be skipped because of a gap.
10182
10183 2008-05-22  Richard Guenther  <rguenther@suse.de>
10184
10185         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
10186         more cases of offset disambiguation that is possible if
10187         strict-aliasing rules apply.
10188         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
10189         for basic offset and type-based disambiguation.
10190
10191 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
10192
10193         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
10194         ix86_expand_vector_set on V16QImode for SSE4.1.
10195
10196 2008-05-21  Tom Tromey  <tromey@redhat.com>
10197
10198         * c.opt (Wimport): Mark as undocumented.
10199         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
10200         -Wno-import.
10201         (Warning Options): Likewise.
10202         * doc/cppopts.texi: Don't mention -Wimport.
10203
10204 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
10205
10206         PR tree-optimization/36287
10207         PR tree-optimization/36286
10208         * lambda-code.c (build_access_matrix): Do not use the loop->num
10209         for computing the number of induction variables: use the loop depth
10210         instead.
10211
10212 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
10213
10214         PR/36280
10215         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
10216         option -f(no-)leading-underscore.
10217
10218 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
10219
10220         * config/i386/i386.c (ix86_expand_vector_init_general): Use
10221         GET_MODE_NUNITS (mode).
10222
10223 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
10224
10225         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
10226         (-mmulhw): Add 464 to description.
10227         (-mdlmzb): Likewise.
10228         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
10229         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
10230         464fp entries.
10231         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
10232         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
10233         * config/rs6000/rs6000.md: Update comments for 464.
10234
10235 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
10236
10237         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
10238
10239 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
10240
10241         * config/i386/sse.md (vec_extractv4sf): Removed.
10242         (vec_extractv2df): Likewise.
10243         (vec_extractv2di): Likewise.
10244         (vec_extractv4si): Likewise.
10245         (vec_extractv8hi): Likewise.
10246         (vec_extractv16qi): Likewise.
10247         (vec_extract<mode>): New.
10248
10249 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
10250
10251         * config/i386/sse.md (vec_setv4sf): Removed.
10252         (vec_setv2df): Likewise.
10253         (vec_setv2di): Likewise.
10254         (vec_setv4si): Likewise.
10255         (vec_setv8hi): Likewise.
10256         (vec_setv16qi): Likewise.
10257         (vec_set<mode>): New.
10258
10259 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
10260
10261         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
10262         goto for vec_concat and vec_interleave.
10263
10264 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
10265
10266         * config/i386/sse.md (vec_initv4sf): Removed.
10267         (vec_initv2df): Likewise.
10268         (vec_initv2di): Likewise.
10269         (vec_initv4si): Likewise.
10270         (vec_initv8hi): Likewise.
10271         (vec_initv16qi): Likewise.
10272         (vec_init<mode>): New.
10273
10274 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
10275
10276         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
10277
10278 2008-05-21  Tom Tromey  <tromey@redhat.com>
10279
10280         * ggc-zone.c (lookup_page_table_if_allocated): New function.
10281         (zone_find_object_offset): Likewise.
10282         (gt_ggc_m_S): Likewise.
10283         (highest_bit): Likewise.
10284         * ggc-page.c (gt_ggc_m_S): New function.
10285         * stringpool.c (string_stack): Remove.
10286         (init_stringpool): Update.
10287         (ggc_alloc_string): Use ggc_alloc.
10288         (maybe_delete_ident): New function.
10289         (ggc_purge_stringpool): Likewise.
10290         (gt_ggc_m_S): Remove.
10291         * ggc-common.c (ggc_protect_identifiers): New global.
10292         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
10293         ggc_protect_identifiers.
10294         * ggc.h (ggc_protect_identifiers): Declare.
10295         (gt_ggc_m_S): Update.
10296         (ggc_purge_stringpool): Declare.
10297         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
10298         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
10299         special case.
10300         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
10301
10302 2008-05-21  David S. Miller  <davem@davemloft.net>
10303
10304         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
10305         tmake_file.
10306
10307 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
10308
10309         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
10310         once finished.
10311
10312 2008-05-20  David Daney  <ddaney@avtrex.com>
10313
10314         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
10315         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
10316         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
10317         UNSPEC_UPDATE_GOT_VERSION): Renumber.
10318         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
10319         (atomic_hiqi_op): New define_code_iterator.
10320         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
10321         mips_expand_compare_and_swap_12.
10322         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
10323         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
10324         (sync_<optab><mode>, sync_old_<optab><mode>,
10325         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
10326         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
10327         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
10328         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
10329         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
10330         (test_and_set_12): New insn.
10331         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
10332         sync_new_<optab><mode>, sync_old_nand<mode>,
10333         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
10334         clobber to operand 0 for SI and DI mode insns.
10335         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
10336         mips_gen_fn_4): New typedefs.
10337         (mips_gen_fn_ptrs): Define new union type.
10338         (mips_expand_compare_and_swap_12): Remove declaration.
10339         (mips_expand_atomic_qihi): Declare function.
10340         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
10341         (mips_expand_atomic_qihi): ... this.  Use new generator function
10342         parameter.
10343         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
10344         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
10345         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
10346         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
10347         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
10348         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
10349         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
10350         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
10351         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
10352         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
10353         New macros.
10354
10355 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
10356
10357         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
10358         the missing break.
10359
10360 2008-05-20  Anatoly Sokolov <aesok@post.ru>
10361
10362         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
10363         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
10364         (avr_attribute_table): Add 'OS_main' function attribute.
10365         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
10366         functions with 'OS_main' attribute.
10367
10368 2008-05-20  Richard Guenther  <rguenther@suse.de>
10369
10370         PR tree-optimization/35204
10371         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
10372         helper, split out from ...
10373         (DFS): ... here.  Make the DFS walk non-recursive.
10374
10375 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
10376             Jan Sjodin  <jan.sjodin@amd.com>
10377
10378         PR tree-optimization/36181
10379         * tree-parloops.c (loop_has_vector_phi_nodes): New.
10380         (parallelize_loops): Don't parallelize when the loop has vector
10381         phi nodes.
10382
10383 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
10384             Sebastian Pop  <sebastian.pop@amd.com>
10385
10386         * tree-loop-linear.c (gather_interchange_stats): Look in the access
10387         matrix, and never look at the tree representation of the memory
10388         accesses.
10389         (linear_transform_loops): Computes parameters and access matrices.
10390         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
10391         when fails.
10392         (access_matrix_get_index_for_parameter): New.
10393         * tree-data-ref.h (struct access_matrix): New.
10394         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
10395         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
10396         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
10397         am_vector_index_for_loop): New.
10398         (struct data_reference): Add field access_matrix.
10399         (DR_ACCESS_MATRIX): New.
10400         (compute_data_dependences_for_loop): Update declaration.
10401         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
10402         * lambda.h (lambda_vector_vec_p): Declared.
10403         * lambda-code.c: Depend on pointer-set.h.
10404         (lambda_collect_parameters_from_af, lambda_collect_parameters,
10405         av_for_af_base, av_for_af, build_access_matrix,
10406         lambda_compute_access_matrices): New.
10407         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
10408
10409 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
10410
10411         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
10412         $SOURCEDIR/include.
10413
10414 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
10415             Sebastian Pop  <sebastian.pop@amd.com>
10416
10417         PR tree-optimization/36206
10418         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
10419         FOLD_CONVERSIONS.
10420         (instantiate_scev_1): Rename flags to fold_conversions.
10421         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
10422         outeside instantiation_loop.
10423         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
10424         (evolution_function_is_affine_or_constant_p): Removed.
10425         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
10426         instantiate_scev.
10427         (analyze_siv_subscript): Pass in the loop nest number.
10428         Call evolution_function_is_affine_in_loop instead of
10429         evolution_function_is_affine_p.
10430         (analyze_overlapping_iterations): Pass in the loop nest number.
10431
10432 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
10433             Sebastian Pop  <sebastian.pop@amd.com>
10434
10435         PR tree-optimization/36206
10436         * tree-chrec.h (chrec_fold_op): New.
10437         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
10438         and other trees.
10439
10440 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
10441
10442         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
10443         (DIRS_EQ): New.
10444         (remove_duplicates): Do not set inode on non-inode systems.
10445         Use DIRS_EQ.
10446
10447 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
10448
10449         * config.gcc (tm_file): Update comments about relative pathnames.
10450
10451 2008-05-20  Richard Guenther  <rguenther@suse.de>
10452
10453         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
10454         * tree-ssa-sccvn.c (process_scc): Likewise.
10455         * tree-ssa-sink.c (execute_sink_code): Likewise.
10456         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
10457         * tree-vrp.c (process_assert_insertions): Likewise.
10458         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
10459         (perform_tree_ssa_dce): Likewise.
10460         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
10461         (dump_dominator_optimization_stats): Likewise.
10462         * tree-vectorizer.c (vectorize_loops): Likewise.
10463
10464 2008-05-20  Richard Guenther  <rguenther@suse.de>
10465
10466         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
10467
10468 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
10469
10470         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
10471         (ix86_i386elf_return_in_memory): Likewise.
10472         (ix86_i386interix_return_in_memory): Likewise.
10473         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
10474         (SUBTARGET_RETURN_IN_MEMORY): New.
10475         * config/i386/i386elf.h: Likewise.
10476         * config/i386/ptx4-i.h: Likewise.
10477         * config/i386/sol2-10.h: Likewise.
10478         * config/i386/sysv4.h: Likewise.
10479         * config/i386/vx-common.h: Likewise.
10480         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
10481         * config/i386/i386.c (ix86_return_in_memory): Made static and
10482         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
10483         (ix86_i386elf_return_in_memory): Removed.
10484         (ix86_i386interix_return_in_memory): Removed.
10485         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
10486         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
10487
10488 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
10489
10490         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
10491
10492 2008-05-19  Xinliang David Li  <davidxl@google.com>
10493
10494         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
10495         * opts.c: Ditto.
10496         * common.opt: Ditto.
10497         * doc/invoke.texi: Ditto.
10498
10499 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
10500
10501         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
10502         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
10503
10504 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
10505
10506         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
10507         sizes of operand array from 8/4 to 4/2.
10508         (ix86_expand_vector_init_general): Change size of operand array
10509         from 32 to 16.  Remove op0, op1 and half_mode.
10510
10511 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
10512
10513         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
10514         (ix86_expand_vector_init_interleave): Likewise.
10515         (ix86_expand_vector_init_general): Use them.  Assert
10516         word_mode == SImode when n_words == 4.
10517
10518 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
10519
10520         * config/i386/i386.c (ix86_secondary_reload): New static function.
10521         (TARGET_SECONDARY_RELOAD): New define.
10522         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
10523         * config/i386/i386.md (reload_outqi): Remove.
10524
10525 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10526
10527         PR middle-end/35509
10528         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
10529         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
10530         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
10531         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
10532         (fold_builtin_1): Likewise.
10533         * builtins.def (BUILT_IN_ISINF_SIGN): New.
10534         c-common.c (check_builtin_function_arguments): Handle
10535         BUILT_IN_ISINF_SIGN.
10536         * doc/extend.texi: Document __builtin_isinf_sign.
10537         * fold-const.c (operand_equal_p): Handle COND_EXPR.
10538
10539 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
10540
10541         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
10542         EH cleanup at the end of the pass, search for those that have been
10543         turned into forwarder blocks and do the cleanup on their successor.
10544
10545 2008-05-18  Richard Guenther  <rguenther@suse.de>
10546
10547         * tree-cfg.c (verify_gimple_expr): Allow conversions from
10548         pointers to sizetype and vice versa.
10549
10550 2008-05-18 Xinliang David Li   <davidxl@google.com>
10551
10552         * gcc/tree-ssa-dce.c: Coding style fix.
10553         (check_pow): Documentation comment.
10554         (check_log): Documenation comment. Coding style fix.
10555         (is_unnecessary_except_errno_call): Ditto.
10556         (gen_conditions_for_pow): Ditto.
10557         (gen_conditions_for_log): Ditto.
10558         (gen_shrink_wrap_conditions): Ditto.
10559         (shrink_wrap_one_built_in_calls): Ditto.
10560         * gcc/doc/invoke.texi: Better documentation string.
10561         * ChangeLog: Fix wrong change log entries from
10562         May 17 checkin on function call DCE.
10563
10564 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
10565
10566         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
10567
10568 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
10569
10570         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
10571         * df-problems.c (simulation routines): Fixed block comment to
10572         properly say how to add forwards scanning functions.
10573
10574 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
10575
10576         * tree-inline.c (setup_one_parameter): Remove dead code.
10577
10578 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
10579
10580         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
10581         a BIT_AND_EXPR only for an INTEGER_TYPE.
10582
10583 2008-05-17 Xinliang David Li   <davidxl@google.com>
10584
10585         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
10586         (check_pow, check_log, is_unnecessary_except_errno_call): New
10587         functions to check for eliminating math functions that are pure
10588         except for setting errno.
10589         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
10590         general condition expressions for shrink-wrapping pow/log calls.
10591         (gen_shrink_wrap_conditions): Ditto.
10592         (shrink_wrap_one_built_in_call): Ditto.
10593         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
10594         (mark_operand_necessary): If debugging, output if OP is necessary.
10595         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
10596         unnecessary.
10597         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
10598         opt level >= 2.
10599         * gcc/common.opt: New user flag -ftree-builtin-dce.
10600         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
10601
10602 2008-05-16  David S. Miller  <davem@davemloft.net>
10603
10604         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
10605         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
10606
10607 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
10608
10609         PR target/36246
10610         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
10611
10612 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
10613
10614         * ifcvt.c (dead_or_predicable): Rename
10615         df_simulate_one_insn_backwards to df_simulate_one_insn.
10616         * recog.c (peephole2_optimize): Ditto.
10617         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
10618         Ditto.
10619         * df.h: Rename df_simulate_one_insn_backwards to
10620         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
10621         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
10622         scanning of defs and uses.
10623         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
10624         (df_simulate_one_insn_forwards): Removed.
10625
10626 2008-05-16  Doug Kwan  <dougkwan@google.com>
10627
10628         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
10629         QNaN & SNaN.
10630         (real_from_string): Handle NaNs and Inf as approriate.
10631
10632 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
10633
10634         * doc/gty.texi (Source Files Containing Type Information): Note
10635         that headers should appear first in the gtfiles list.
10636
10637 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
10638
10639         * tree.def (COND_EXEC): Properly documented this code.
10640
10641 2008-05-16  Diego Novillo  <dnovillo@google.com>
10642
10643         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
10644         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
10645         the new field.
10646
10647 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
10648
10649         * tree-ssa-dse (max_stmt_uid): Removed.
10650         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
10651         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
10652         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
10653         * function.h (cfun.last_stmt_uid): New field.
10654         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
10655         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
10656         New functions.
10657         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
10658         (create_stmt_ann): Initialize the ann->uid field.
10659         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
10660         with new calls.
10661         * tree-flow.h (renumber_gimple_stmt_uids): New function.
10662
10663 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
10664
10665         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
10666         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
10667         (init_empty_tree_cfg): Call it.
10668
10669 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
10670
10671         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
10672         Update all users.
10673
10674 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
10675
10676         * doc/invoke.text (-fdump-tree-*-verbose): New option.
10677         * tree-dump.c (dump_options): New verbose option.
10678         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
10679         Add verbose dump.
10680         * tree-pass.h (TDF_VERBOSE): New dump flag.
10681         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
10682         (tree-flow.h): Added include.
10683         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
10684
10685 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
10686
10687         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
10688
10689         From Jie Zhang  <jie.zhang@analog.com>
10690         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
10691         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
10692         mcpu=bf561-none and mcpu=bf561-0.2.
10693         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
10694         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
10695         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
10696         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
10697         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
10698         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
10699         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
10700         option.
10701         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
10702         (cputype_selected): Remove.
10703         (bfin_handle_option): Don't use cputype_selected.
10704         (override_options): When no mcpu option, enable all workarounds.
10705         Don't use bfin_workarounds.
10706         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
10707         processor type.
10708         (DEFAULT_CPU_TYPE): Don't define.
10709
10710 2008-05-16  Richard Guenther  <rguenther@suse.de>
10711
10712         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
10713         on deletion of the last stmt.
10714
10715 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
10716
10717         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
10718         V8HImode for SSE2 and V16QImode for SSE4.1.
10719
10720 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
10721
10722         * cgraph.h (compute_inline_parameters): Made public.
10723         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
10724         variable_generate_summary, function_write_summary,
10725         variable_write_summary, variable_read_summary.  Added generate_summary,
10726         write_summary, read_summary.
10727         * cgraphunit.c (cgraph_process_new_functions): Changed call from
10728         pass_ipa_inline.function_generate_summary, to
10729         compute_inline_parameters.
10730         * ipa-inline.c (compute_inline_parameters): Made public and added
10731         node parameter.
10732         (compute_inline_parameters_for_current): New function.
10733         (pass_inline_param): Now calls compute_inline_parameters_for_current.
10734         (inline_generate_summary): Removed parameter and made to loop over
10735         all cgraph nodes.
10736         (pass_ipa_inline): Updated for new IPA_PASS structure.
10737         * passes.c (execute_ipa_summary_passes): Now is called once per
10738         pass rather than once per node*pass.
10739
10740 2008-05-15  Anatoly Sokolov <aesok@post.ru>
10741
10742         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
10743         avr_have_mul_p, avr_asm_only_p): Remove variables.
10744         (avr_override_options): Remove initialization of removed variables.
10745         (avr_file_start):  Convert removed variables to fields of
10746         'struct base_arch_s *avr_current_arch'.
10747         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
10748         (AVR_HAVE_MUL): (Ditto.).
10749         (AVR_HAVE_MOVW): (Ditto.).
10750         (AVR_HAVE_LPMX): (Ditto.).
10751         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
10752         avr_asm_only_p): Remove declaration.
10753
10754 2008-05-15  Diego Novillo  <dnovillo@google.com>
10755
10756         * config/arm/arm.c (arm_return_in_memory): Fix return type.
10757         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
10758
10759 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
10760
10761         PR middle-end/36194
10762         * combine.c (check_conversion): Rename back to check_promoted_subreg.
10763         Don't call record_truncated_value from here.
10764         (record_truncated_value): Turn it into a for_each_rtx callback.
10765         (record_truncated_values): New function.
10766         (combine_instructions): Call note_uses with record_truncated_values.
10767         Change name of check_conversion to check_promoted_subreg.
10768
10769 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
10770
10771         * doc/sourcebuild.texi: Document support for torture tests.
10772
10773 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
10774
10775         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
10776         to alternative 4 of operand 2.
10777
10778 2008-05-15  Richard Guenther  <rguenther@suse.de>
10779
10780         * tree-pass.h (current_pass): Declare.
10781         (get_pass_for_id): Likewise.
10782         * passes.c (passes_by_id, passes_by_id_size): New globals.
10783         (set_pass_for_id): New function.
10784         (get_pass_for_id): Likewise.
10785         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
10786         (execute_function_todo): Flush per function statistics.
10787         * toplev.c (compile_file): Init statistics.
10788         (general_init): Do early statistics initialization.
10789         (finalize): Finish statistics.
10790         * statistics.h (statistics_early_init): Declare.
10791         (statistics_init): Likewise.
10792         (statistics_fini): Likewise.
10793         (statistics_fini_pass): Likewise.
10794         (statistics_counter_event): Likewise.
10795         (statistics_histogram_event): Likewise.
10796         * statistics.c: New file.
10797         * Makefile.in (OBJS-common): Add statistics.o.
10798         (statistics.o): Add dependencies.
10799         * doc/invoke.texi (-fdump-statistics): Document.
10800
10801         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
10802         (insert): Likewise.
10803         (execute_pre): Use statistics_counter_event.
10804         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
10805         (substitute_and_fold): Increment it.  Use statistics_counter_event.
10806
10807 2008-05-15  Diego Novillo  <dnovillo@google.com>
10808
10809         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
10810
10811         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
10812         * tree-ssa-alias.c (new_type_alias): Remove references to
10813         sub-variables from comment.
10814         * tree-ssa-operands.c (swap_tree_operands): Likewise.
10815
10816 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
10817
10818         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
10819         attribute to 1 only for insertps alternative.
10820
10821 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
10822
10823         * config/bfin/bfin.md (loadbytes): New pattern.
10824         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
10825         (bfin_init_builtins): Initialize it.
10826         (bdesc_1arg): Add it.
10827
10828 2008-05-15  Sa Liu  <saliu@de.ibm.com>
10829
10830         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
10831         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
10832         * testsuite/lib/target-supports.exp: Add
10833         check_effective_target_fortran_integer_16.
10834
10835 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
10836
10837         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
10838         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
10839         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
10840         (TARGET_RETURN_IN_MEMORY): Define.
10841
10842 2008-05-15  Richard Guenther  <rguenther@suse.de>
10843
10844         PR middle-end/36244
10845         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
10846         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
10847         represent unmodifiable vars.
10848
10849 2008-05-15  Richard Guenther  <rguenther@suse.de>
10850
10851         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
10852         INDIRECT_REF and TARGET_MEM_REF.
10853         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
10854         TARGET_MEM_REF.
10855
10856 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
10857             H.J. Lu  <hongjiu.lu@intel.com>
10858
10859         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
10860         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
10861         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
10862         insn alternatives.  Add missing alternatives.
10863         (*vec_concatv2di_rex64_sse4_1): Likewise.
10864         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
10865         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
10866         Require TARGET_SSE.
10867
10868 2008-05-15  Richard Guenther  <rguenther@suse.de>
10869
10870         PR tree-optimization/36009
10871         PR tree-optimization/36204
10872         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
10873         (determine_invariantness_stmt): Record the loop a store is
10874         always executed in.
10875         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
10876         dependency.
10877
10878 2008-05-15  Richard Guenther  <rguenther@suse.de>
10879
10880         PR tree-optimization/34330
10881         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
10882         through the pointer will alias the SMT.
10883
10884 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
10885
10886         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
10887
10888 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
10889
10890         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
10891
10892 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
10893             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
10894
10895         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
10896         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
10897         (vashl_optab): New optab for vector/vector shifts.
10898         (vashr_optab): Ditto.
10899         (vlshr_optab): Ditto.
10900         (vrotl_optab): Ditto.
10901         (vrotr_optab): Ditto.
10902         (optab_subtype): New enum for optab_for_tree_code call.
10903         (optab_for_tree_code): Add enum optab_subtype argument.
10904
10905         * optabs.c (optab_for_tree_code): Take an additional argument to
10906         distinguish between a vector shift by a scalar and vector shift by
10907         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
10908         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
10909         vector shift by a vector.
10910         (expand_widen_pattern_expr): Pass additional argument to
10911         optab_for_tree_code.
10912
10913         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
10914         vrotl_optab, vrotr_optab.
10915
10916         * expr.c (expand_expr_real_1): Update calls to
10917         optab_for_tree_code to distinguish between vector shifted by a
10918         scalar and vector shifted by a vector.
10919         * tree-vectorizer.c (supportable_widening_operation): Ditto.
10920         (supportable_narrowing_operation): Ditto.
10921         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
10922         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
10923         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
10924         (vect_create_epilog_for_reduction): Ditto.
10925         (vectorizable_reduction): Ditto.
10926         (vectorizable_operation): Ditto.
10927         (vect_strided_store_supported): Ditto.
10928         (vect_strided_load_supported): Ditto.
10929         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
10930         * expmed.c (expand_shift): Ditto.
10931
10932         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
10933         scalar type.
10934         (ashr@var{m}3): Ditto.
10935         (vashl@var{m}3): Document new vector/vector shift standard name.
10936         (vashr@var{m}3): Ditto.
10937         (vlshr@var{m}3): Ditto.
10938         (vrotl@var{m}3): Ditto.
10939         (vrotr@var{m}3): Ditto.
10940
10941         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
10942         (PPERM_INVERT): Ditto.
10943         (PPERM_REVERSE): Ditto.
10944         (PPERM_REV_INV): Ditto.
10945         (PPERM_ZERO): Ditto.
10946         (PPERM_ONES): Ditto.
10947         (PPERM_SIGN): Ditto.
10948         (PPERM_INV_SIGN): Ditto.
10949         (PPERM_SRC1): Ditto.
10950         (PPERM_SRC2): Ditto.
10951
10952         * config/i386/sse.md (mulv2di3): Add SSE5 support.
10953         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
10954         allows a memory operand to be the value being added, and split it
10955         to improve vectorization.
10956         (sse5_pmacsdqh_mem): Ditto.
10957         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
10958         (sse5_mulv2div2di3_high): Ditto.
10959         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
10960         (vec_pack_trunc_v4si): Ditto.
10961         (vec_pack_trunc_v2di): Ditto.
10962         (sse5_pcmov_<mode>): Remove code that tried to use use
10963         andps/andnps instead of pcmov.
10964         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
10965         pmacsdqh instructions.
10966         (vec_widen_smult_lo_v4si): Ditto.
10967
10968         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
10969         (PPERM_INVERT): Ditto.
10970         (PPERM_REVERSE): Ditto.
10971         (PPERM_REV_INV): Ditto.
10972         (PPERM_ZERO): Ditto.
10973         (PPERM_ONES): Ditto.
10974         (PPERM_SIGN): Ditto.
10975         (PPERM_INV_SIGN): Ditto.
10976         (PPERM_SRC1): Ditto.
10977         (PPERM_SRC2): Ditto.
10978         (ix86_expand_sse_movcc): Move the SSE5 test after the if
10979         true/false tests.
10980         (ix86_expand_int_vcond): If SSE5 generate all possible integer
10981         comparisons.
10982         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
10983         says ignore whether the last reference is a memory operand.
10984
10985 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
10986             Paolo Bonzini <bonzini at gnu dot org>
10987
10988         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
10989         shift patterns.
10990
10991         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
10992         (vlshr<mode>3): Rename from vlshr<mode>3.
10993         (vashr<mode>3): Rename from vashr<mode>3.
10994         (mulv4sf3): Change the names of vector shift patterns.
10995         (mulv4si3): Ditto.
10996         (negv4sf2): Ditt.
10997
10998         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
10999         shift insns.
11000
11001         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
11002         (SI_SHLHI): Ditto.
11003         (SI_SHL): Ditto.
11004         (SI_SHLI): Ditto.
11005         (SI_ROTH): Ditto.
11006         (SI_ROTHI): Ditto.
11007         (SI_ROT): Ditto.
11008         (SI_ROTI): Ditto.
11009         (SPU_RL_0): Ditto.
11010         (SPU_RL_1): Ditto.
11011         (SPU_RL_2): Ditto.
11012         (SPU_RL_3): Ditto.
11013         (SPU_RL_4): Ditto.
11014         (SPU_RL_5): Ditto.
11015         (SPU_RL_6): Ditto.
11016         (SPU_RL_7): Ditto.
11017         (SPU_SL_0): Ditto.
11018         (SPU_SL_1): Ditto.
11019         (SPU_SL_2): Ditto.
11020         (SPU_SL_3): Ditto.
11021         (SPU_SL_4): Ditto.
11022         (SPU_SL_5): Ditto.
11023         (SPU_SL_6): Ditto.
11024         (SPU_SL_7): Ditto.
11025
11026         * config/spu/spu.md (v): New iterator macro to add v for vector types.
11027         (floatunssidf2_internal): Change vector/vector shift names.
11028         (floatunsdidf2_internal): Ditto.
11029         (mulv8hi3): Ditto.
11030         (ashrdi3): Ditto.
11031         (ashrti3): Ditto.
11032         (cgt_df): Ditto.
11033         (cgt_v2df): Ditto.
11034         (dftsv): Ditto.
11035         (vashl<mode>3): Rename from ashl<mode>3.
11036         (vashr<mode>3): Rename from ashr<mode>3.
11037         (vlshr<mode>3): Rename from lshr<mode>3.
11038         (vrotl<mode>3): Rename from rotl<mode>3.
11039
11040 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
11041
11042         PR target/36224
11043         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
11044         multiply gives the wrong value when doing widening multiplies.
11045         (vec_widen_smult_lo_v4si): Ditto.
11046
11047 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
11048
11049         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
11050         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
11051         emit_library_call_value.
11052         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
11053         * tree.h (ECF_LIBCALL_BLOCK): Removed.
11054         * calls.c (initialize_argument_information, precompute_arguments,
11055         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
11056         (precompute_arguments): Removed flags parameter.
11057         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
11058
11059 2008-05-14  Richard Guenther  <rguenther@suse.de>
11060
11061         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
11062         Make sure to register the store if the use is a PHI_NODE.
11063
11064 2008-05-14  Olivier Hainque  <hainque@adacore.com>
11065
11066         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
11067         memory if the component is to be referenced in BLKmode according
11068         to get_inner_reference.
11069
11070 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
11071
11072         * calls.c (emit_library_call_value_1): Restore code clearing
11073         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
11074
11075 2008-05-14  Olivier Hainque  <hainque@adacore.com>
11076             Nicolas Roche  <roche@adacore.com>
11077
11078         * configure.ac: Add support for a "gcc_subdir" variable in
11079         config-lang.in, to denote a subdirectory where the language/GCC
11080         integration files are to be found.
11081         * configure: Regenerate.
11082
11083 2008-05-14  Ira Rosen  <irar@il.ibm.com>
11084
11085         PR tree-optimization/36098
11086         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
11087         value for the first load in the group in case of a gap.
11088         (vect_build_slp_tree): Check that there are no gaps in loads.
11089
11090 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
11091
11092         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
11093         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
11094         expand_copysign_bit, ): Change call to emit_no_conflict_block to
11095         emit_insn and remove unneeded code to construct extra args.
11096         (emit_no_conflict_block): Removed.
11097         * optabls.h: (emit_no_conflict_block): Removed.
11098         * cse.c (cse_extended_basic_block): Remove search for
11099         REG_NO_CONFLICT note.
11100         * global.c: Removed incorrect comment added in revision 117.
11101         * expr.c (convert_move): Change call to emit_no_conflict_block to
11102         emit_insn.
11103         * recog.c: Change comments so that they do not mention
11104         REG_NO_CONFLICT.
11105         * local_alloc.c (combine_regs): Removed last parameter.
11106         (no_conflict_p): Removed.
11107         (block_alloc): Removed note, no_conflict_combined_regno and set
11108         local vars. Removed all code to process REG_NO_CONFLICT blocks.
11109         (combine_regs): Removed already_dead and code to look for
11110         REG_NO_CONFLICT notes.
11111         * lower_subreg (remove_retval_note): Removed code to look for
11112         REG_NO_CONFLICT block.
11113         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
11114         (resolve_clobber): Remove code to process libcalls that have
11115         REG_NO_CONFLICT notes.
11116         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
11117         case.
11118         * combine.c (can_combine_p, distribute_notes):  Removed
11119         REG_NO_CONFLICT case.
11120         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
11121         to emit_insns.
11122         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
11123         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
11124         Ditto.
11125         * reg-notes.def (NO_CONFLICT): Removed.
11126
11127 2008-05-14  David S. Miller  <davem@davemloft.net>
11128
11129         * config/sparc/sparc.c (sparc_profile_hook): If
11130         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
11131         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
11132         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
11133
11134 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
11135
11136         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
11137
11138 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
11139
11140         PR target/36222
11141         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
11142         and op1 expansion before vector concat to have less live pseudos.
11143
11144 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
11145
11146         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
11147         ix86_expand_vector_set if supported.
11148
11149 2008-05-13  Diego Novillo  <dnovillo@google.com>
11150             Kenneth Zadeck  <zadeck@naturalbridge.com>
11151
11152         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
11153
11154         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
11155         phinodes_print_statistics, init_ssanames, fini_ssanames,
11156         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
11157         release_ssa_name, release_defs, replace_ssa_name_symbol,
11158         ssanames_print_statistics): Move ...
11159         * tree-flow.h: ... here.
11160         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
11161         Use FN instead of cfun.
11162         (make_ssa_name_fn): Rename from make_ssa_name.
11163         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
11164         * tree-flow-inline.h (make_ssa_name): Move from
11165         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
11166         * omp-low.c (expand_omp_parallel):
11167         * tree-flow-inline.h (redirect_edge_var_map_result):
11168         * tree-ssa.c (init_tree_ssa): Add argument FN.
11169         Use it instead of cfun.  Update all users.
11170
11171 2008-05-13  Tom Tromey  <tromey@redhat.com>
11172
11173         PR preprocessor/22168:
11174         * doc/cpp.texi (Top): Update menu.
11175         (Alternatives to Wrapper #ifndef): New node.
11176         (Other Directives): Document deprecation.
11177         (Obsolete Features): Remove menu.
11178         (Assertions): Merge node into Obsolete Features.
11179         (Obsolete once-only headers): Move earlier; rename to Alternatives
11180         to Wrapper #ifndef.
11181         * doc/cppopts.texi: Update.
11182         * c.opt (Wdeprecated): Enable for C and ObjC.
11183         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
11184         (C++ Dialect Options): Move -Wno-deprecated from here to...
11185         (Warning Options): ... here.
11186
11187 2008-05-13  Richard Guenther  <rguenther@suse.de>
11188
11189         PR middle-end/36227
11190         * fold-const.c (fold_sign_changed_comparison): Do not allow
11191         changes in pointer-ness.
11192
11193 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
11194
11195         PR target/24713
11196         * config/sh/sh.c (sh_expand_prologue): Don't clear
11197         RTX_FRAME_RELATED_P for push insns.
11198
11199 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
11200
11201         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
11202
11203 2008-05-12  Anatoly Sokolov <aesok@post.ru>
11204
11205         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
11206         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
11207         Use 'machine->is_leaf' instead of 'leaf_func_p'.
11208
11209 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
11210
11211         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
11212         (*vec_concatv4sf_sse): This.
11213         (*sse2_concatv2si): Renamed to ...
11214         (*vec_concatv2si_sse2): This.
11215         (*sse1_concatv2si): Renamed to ...
11216         (*vec_concatv2si_sse): This.
11217         (*vec_concatv2di_rex): Renamed to ...
11218         (*vec_concatv2di_rex64): This.
11219         (*vec_concatv2si_sse4_1): New.
11220         (*vec_concatv2di_rex64_sse4_1): Likewise.
11221
11222 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
11223
11224         PR rtl-optimization/36111
11225         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
11226         that was created for swappable operands.
11227
11228 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
11229
11230         PR ada/36001
11231         * Makefile.in: Substitute GNATMAKE and GNATBIND.
11232         * configure.ac: Add call to ACX_PROG_GNAT.
11233
11234 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
11235
11236         * optc-gen.awk: Fix comment typo.
11237
11238 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
11239
11240         * pretty-print.c (pp_integer_with_precision): Use
11241         HOST_LONG_LONG_FORMAT.
11242
11243 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
11244
11245         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
11246
11247 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
11248
11249         * config/i386/i386.c (bdesc_ptest): Removed.
11250         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
11251         (bdesc_args): Add __builtin_ia32_ptestz128,
11252         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
11253         (ix86_init_mmx_sse_builtins): Updated.
11254         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
11255         (ix86_expand_builtin): Updated.
11256
11257 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
11258
11259         * tree-cfg.c (valid_fixed_convert_types_p): New function.
11260         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
11261
11262 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
11263
11264         * value-prof.c (interesting_stringop_to_profile): Do not
11265         return early for BUILT_IN_MEMPCPY.
11266
11267 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
11268
11269         * calls.c (expand_call): Don't use callgraph to increase
11270         preferred_stack_boundary.
11271
11272         * cgraph.h (cgraph_rtl_info): Use unsigned on
11273         preferred_incoming_stack_boundary.
11274
11275         * final.c (rest_of_clean_state): Use unsigned on
11276         preferred_stack_boundary.
11277
11278 2008-05-09  Tom Tromey  <tromey@redhat.com>
11279
11280         PR preprocessor/22231:
11281         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
11282         proceeding.
11283
11284 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
11285
11286         PR tree-optimization/36129
11287         * tree-ssa-ccp.c: Include value-prof.h.
11288         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
11289         built-in function was folded to a constant.
11290         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
11291
11292 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
11293             Sebastian Pop  <sebastian.pop@amd.com>
11294
11295         * tree-scalar-evolution.c: Document instantiate_scev.
11296         (instantiate_parameters_1): Renamed instantiate_scev_1.
11297         Don't use the same loop for instantiation_loop and evolution_loop.
11298         (instantiate_scev): New.
11299         (instantiate_parameters): Moved...
11300         (resolve_mixers): Update call to instantiate_scev_1 to pass the
11301         same loop twice.  Maintains the semantics for this function.
11302         * tree-scalar-evolution.h (instantiate_scev): Declare.
11303         (instantiate_parameters): ...here.  Now static inline.
11304         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
11305         instead of resolve_mixers.
11306
11307 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
11308
11309         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
11310
11311 2008-05-09  Tomas Bily  <tbily@suse.cz>
11312
11313         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
11314         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
11315         * tree-ssa-structalias.c (get_constraint_for): Likewise.
11316         * c-common.c (c_common_truthvalue_conversion): Likewise.
11317         * tree-object-size.c (compute_object_offset): Likewise.
11318         * tree-inline.c (estimate_num_insns_1): Likewise.
11319         * varasm.c (const_hash_1, compare_constant, copy_constant)
11320         (compute_reloc_for_constant, output_addressed_constants)
11321         (initializer_constant_valid_p): Likewise.
11322         * c-omp.c (check_omp_for_incr_expr): Likewise.
11323         * gimplify.c (gimplify_expr): Likewise.
11324         * c-typeck.c (c_finish_return): Likewise.
11325         * tree-vectorizer.c (supportable_widening_operation)
11326         (supportable_narrowing_operation): Likewise.
11327         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
11328         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
11329         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
11330         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
11331         (descr_info_loc): Likewise.
11332         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
11333         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
11334         (fold_unary): Likewise.
11335         * builtins.c (get_pointer_alignment): Likewise.
11336         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
11337         (instantiate_parameters_1): Likewise.
11338         * tree.c (expr_align, stabilize_reference): Likewise.
11339         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
11340         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
11341         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
11342         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
11343         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
11344         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
11345         Likewise.
11346         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
11347         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
11348         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
11349         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
11350         (forward_propagate_comparison)
11351         (tree_ssa_forward_propagate_single_use_vars): Likewise.
11352         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
11353         * emit-rtl.c (component_ref_for_mem_expr)
11354         (set_mem_attributes_minus_bitpos): Likewise.
11355         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
11356         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
11357         Likewise.
11358         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
11359         (build_function_call, pointer_diff, build_compound_expr)
11360         (c_finish_return): Likewise.
11361         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
11362         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
11363         Likewise.
11364         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
11365         * expr.c (is_aligning_offset): Likewise.
11366         * tree-ssa-alias.c (is_escape_site): Likewise.
11367         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
11368         (check_all_va_list_escapes): Likewise.
11369         * tree-ssa-loop-ivopts.c (determine_base_object)
11370         (determine_common_wider_type): Likewise.
11371         * dojump.c (do_jump): Likewise.
11372         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
11373         * tree-gimple.c (is_gimple_cast): Likewise.
11374         * fold-const.c (decode_field_reference, )
11375         (fold_sign_changed_comparison, fold_unary, fold_comparison)
11376         (fold_binary): Likewise.
11377         * tree-ssa-alias-warnings.c (find_alias_site_helper)
11378         (already_warned_in_frontend_p): Likewise.
11379         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
11380         * tree.c (really_constant_p, get_unwidened): Likewise.
11381         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
11382         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
11383         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
11384         Likewise.
11385         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
11386         CONVERT_EXPR_P.
11387         (CONVERT_EXPR_P): Define.
11388         (CASE_CONVERT): Define.
11389
11390 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
11391
11392         PR middle-end/36117
11393         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
11394         (delete_unmarked_insns): When deleting a call, call
11395         delete_unreachable_blocks.
11396         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
11397         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
11398
11399 2008-05-08  Richard Guenther  <rguenther@suse.de>
11400
11401         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
11402         (-ftree-salias): Likewise.
11403         (salias-max-implicit-fields): Remove param documentation.
11404         (salias-max-array-elements): Likewise.
11405         * tree-pass.h (pass_create_structure_vars): Remove.
11406         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
11407         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
11408         * tree-ssa-alias.c (create_structure_vars): Remove.
11409         (gate_structure_vars): Likewise.
11410         (pass_create_structure_vars): Likewise.
11411         (gate_build_alias): Likewise.
11412         (pass_build_alias): Adjust to run always and dump the function.
11413         * common.opt (ftree-salias): Hide.
11414         * passes.c (init_optimization_passes): Remove
11415         pass_create_structure_vars, adjust comment.
11416         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
11417         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
11418         * opts.c (decode_options): Do not set flag_tree_salias.
11419         (common_handle_option): Add OPT_ftree_salias to the backward
11420         compatibility section.
11421
11422 2008-05-08  Richard Guenther  <rguenther@suse.de>
11423
11424         * tree-flow-inline.h (var_can_have_subvars): Move ...
11425         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
11426         * tree-flow.h (var_can_have_subvars): Remove.
11427         (push_fields_onto_fieldstack): Remove.
11428         (sort_fieldstack): Likewise.
11429         (struct fieldoff): Move ...
11430         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
11431         alias_set and base_for_components fields.
11432         (sort_fieldstack): Make static.
11433         (push_fields_onto_fieldstack): Likewise.  Remove code that
11434         handles anything but RECORD_TYPEs.  Remove alias_set and
11435         base_for_components handling.
11436         (create_variable_info_for): Adjust.
11437
11438 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
11439
11440         * common.opt (Wframe-larger-than=): Shorten the help message
11441         to one line.
11442         * doc/invoke.texi (Wframe-larger-than=): Add more description.
11443
11444 2008-05-08  Rafael Espindola  <espindola@google.com>
11445
11446         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
11447         trap.
11448         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
11449         trap and that both operands are gimple values.
11450         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
11451         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
11452         is a fp operation.
11453
11454 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
11455
11456         * read-rtl.c (join_c_conditions): Return the first string if the
11457         two strings are equal.
11458
11459 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
11460
11461         * gensupport.h (pred_data): Add a "num_codes" field.
11462         (add_predicate_code): Declare.
11463         * gensupport.c (add_predicate_code): New function.
11464         (std_pred_table): Add an "allows_const_p" field.
11465         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
11466         Remove the (incomplete) list of such codes from the codes field.
11467         (init_predicate_table): Use add_predicate_code.  Add all
11468         RTX_CONST_OBJs if allows_const_p is true.
11469         * genrecog.c (process_define_predicate): Use add_predicate_code.
11470
11471 2008-05-08  David Daney  <ddaney@avtrex.com>
11472             Richard Sandiford  <rsandifo@nildram.co.uk>
11473
11474         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
11475         special case of constant zero operands.
11476         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
11477         old and new values.  Special case constant zero values.
11478         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
11479         fails.
11480         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
11481         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
11482
11483 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
11484
11485         PR target/36090
11486         * simplify-rtx.c (simplify_plus_minus): Create CONST of
11487         similar RTX_CONST_OBJ before CONST_INT.
11488
11489 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
11490
11491         * stmt.c (expand_stack_restore): Change sa mode if needed.
11492
11493 2008-05-08  Richard Guenther  <rguenther@suse.de>
11494
11495         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
11496         return type to bool.
11497         (ix86_sol10_return_in_memory): Likewise.
11498         (ix86_i386elf_return_in_memory): Likewise.
11499         (ix86_i386interix_return_in_memory): Likewise.
11500         * config/i386/i386.c (ix86_return_in_memory): Likewise.
11501         (ix86_sol10_return_in_memory): Likewise.
11502         (ix86_i386elf_return_in_memory): Likewise.
11503         (ix86_i386interix_return_in_memory): Likewise.
11504
11505 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
11506
11507         PR bootstrap/36180
11508         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
11509         fndecl argument.
11510         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
11511         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
11512         declared in front.
11513
11514 2008-05-08  Richard Guenther  <rguenther@suse.de>
11515
11516         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
11517         * tree-data-ref.h (struct dr_alias): Remove subvars field.
11518         (DR_SUBVARS): Remove.
11519         * tree-dfa.c (dump_subvars_for): Remove.
11520         (debug_subvars_for): Likewise.
11521         (dump_variable): Do not dump subvars.
11522         (remove_referenced_var): Do not remove subvars.
11523         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
11524         (lookup_subvars_for_var): Remove.
11525         (get_subvars_for_var): Likewise.
11526         (get_subvars_at): Likewise.
11527         (get_first_overlapping_subvar): Likewise.
11528         (overlap_subvar): Likewise.
11529         * tree-flow.h (subvar_t): Remove.
11530         (struct var_ann_d): Remove subvars field.
11531         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
11532         argument.  Remove special handling of SFTs.
11533         (compute_tag_properties): Likewise.
11534         (set_initial_properties): Likewise.
11535         (compute_call_clobbered): Likewise.
11536         (count_mem_refs): Likewise.
11537         (compute_memory_partitions): Likewise.
11538         (compute_flow_insensitive_aliasing): Likewise.
11539         (setup_pointers_and_addressables): Likewise.
11540         (new_type_alias): Likewise.
11541         (struct used_part): Remove.
11542         (used_portions): Likewise.
11543         (struct used_part_map): Likewise.
11544         (used_part_map_eq): Likewise.
11545         (used_part_map_hash): Likewise.
11546         (free_used_part_map): Likewise.
11547         (up_lookup): Likewise.
11548         (up_insert): Likewise.
11549         (get_or_create_used_part_for): Likewise.
11550         (create_sft): Likewise.
11551         (create_overlap_variables_for): Likewise.
11552         (find_used_portions): Likewise.
11553         (create_structure_vars): Likewise.
11554         * tree.def (STRUCT_FIELD_TAG): Remove.
11555         * tree.h (MTAG_P): Adjust.
11556         (struct tree_memory_tag): Remove base_for_components and
11557         unpartitionable flags.
11558         (struct tree_struct_field_tag): Remove.
11559         (SFT_PARENT_VAR): Likewise.
11560         (SFT_OFFSET): Likewise.
11561         (SFT_SIZE): Likewise.
11562         (SFT_NONADDRESSABLE_P): Likewise.
11563         (SFT_ALIAS_SET): Likewise.
11564         (SFT_UNPARTITIONABLE_P): Likewise.
11565         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
11566         (union tree_node): Remove sft field.
11567         * alias.c (get_alias_set): Remove special handling of SFTs.
11568         * print-tree.c (print_node): Remove handling of SFTs.
11569         * tree-dump.c (dequeue_and_dump): Likewise.
11570         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
11571         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
11572         * tree-predcom.c (set_alias_info): Do not set subvars.
11573         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
11574         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
11575         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
11576         (add_vars_for_offset): Remove.
11577         (add_virtual_operand): Remove special handling of SFTs.
11578         (add_call_clobber_ops): Likewise.
11579         (add_call_read_ops): Likewise.
11580         (get_asm_expr_operands): Likewise.
11581         (get_modify_stmt_operands): Likewise.
11582         (get_expr_operands): Likewise.
11583         (add_to_addressable_set): Likewise.
11584         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
11585         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
11586         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
11587         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
11588         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
11589         (tree_node_structure): Likewise.
11590         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
11591         handling of SFTs.
11592         (find_what_p_points_to): Likewise.
11593
11594 2008-05-08  Sa Liu  <saliu@de.ibm.com>
11595
11596         * config/spu/spu.md: Fixed subti3 pattern.
11597
11598 2008-05-08  Richard Guenther  <rguenther@suse.de>
11599
11600         PR middle-end/36154
11601         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
11602         sure to create a representative for trailing arrays for PTA.
11603
11604 2008-05-08  Richard Guenther  <rguenther@suse.de>
11605
11606         PR middle-end/36172
11607         * fold-const.c (operand_equal_p): Two objects which types
11608         differ in pointerness are not equal.
11609
11610 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
11611
11612         * calls.c (compute_argument_block_size): Add argument tree fndecl.
11613         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
11614         (emit_library_call_value_1): Add new variable fndecl initialized by
11615         NULL_TREE. It should be the decl type of orgfun, but this information
11616         seems not to be available here, so it uses the default calling abi.
11617         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
11618         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
11619         by TARGET_RETURN_IN_MEMORY.
11620         * config/i386/i386-interix.h: Likewise.
11621         * config/i386/i386.h: Likewise.
11622         * config/i386/i386elf.h: Likewise.
11623         * config/i386/ptx4-i.h: Likewise.
11624         * config/i386/sol2-10.h: Likewise.
11625         * config/i386/sysv4.h: Likewise.
11626         * config/i386/vx-common.h: Likewise.
11627         * config/cris/cris.h: Removed #if 0 clause.
11628         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
11629         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
11630         argument.
11631         (ix86_sol10_return_in_memory): Likewise.
11632         (ix86_i386elf_return_in_memory): New.
11633         (ix86_i386interix_return_in_memory): New.
11634         * config/mt/mt-protos.h (mt_return_in_memory): New.
11635         * config/mt/mt.c: Likewise.
11636         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
11637         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
11638         * config/bfin/bfin.h: Likewise.
11639         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
11640         argument.
11641         * config/bfin/bfin.c: Likewise.
11642         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
11643         * config/alpha/unicosmk.h: Likewise.
11644         * config/i386/cygming.h: Likewise.
11645         * config/iq2000/iq2000.h: Likewise.
11646         * config/mips/mips.h: Likewise.
11647         * config/mn10300/mn10300.h: Likewise.
11648         * config/rs6000/rs6000.h: Likewise.
11649         * config/score/score.h: Likewise.
11650         * config/spu/spu.h: Likewise.
11651         * config/v850/v850.h: Likewise.
11652         * defaults.h: Likewise.
11653         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
11654         * expr.c (emit_block_move): Adjust use of
11655         OUTGOING_REG_PARM_STACK_SPACE.
11656         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
11657         OUTGOING_REG_PARM_STACK_SPACE.
11658         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
11659
11660 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
11661
11662         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
11663         on OMP_RETURN for OMP_FOR.
11664
11665         PR debug/35896
11666         * dwarf2out.c (dw_expand_expr, common_check): Removed.
11667         (fortran_common): New function.
11668         (gen_variable_die): Call fortran_common instead of common_check,
11669         adjust for it returning tree instead of rtx.  Formatting.
11670
11671 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
11672
11673         PR rtl/7335
11674         PR rtl/33826
11675         * see.c (see_copy_insn): Copy new pure const attributes for new call.
11676         * c-decl.c (merge_decls): Ditto.
11677         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
11678         to RTL_CONST_OR_PURE_CALL_P.
11679         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
11680         Initialized DECL_LOOPING_CONST_PURE.
11681         (process_call_operands): Set tree_side_effects properly.
11682         * tree.h (TREE_READONLY_DECL_P): Removed.
11683         (DECL_IS_PURE): Renamed to DECL_PURE_P.
11684         (DECL_LOOPING_OR_CONST_P): New macro.
11685         (struct tree_function_decl): Added looping_const_or_pure_p.
11686         (ECF_*) Renumbered.
11687         (ECF_LOOPING_OR_CONST_P): New macro.
11688         * rtlanal.c (pure_const_p): Removed.
11689         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
11690         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
11691         to RTL_CONST_CALL_P.
11692         * ipa-pure-const.c (pure_const_state_e): Added looping field.
11693         (check_decl, check_tree, check_call, scan_function): Initialize
11694         looping.
11695         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
11696         (static_execute): Set looping true for recursive functions.
11697         Undo setting state to IPA_NEITHER for recursive functions.
11698         * cse.c (cse_insn):
11699         * ifcvt.c (noce_can_store_speculate_p): Changed
11700         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
11701         RTL_CONST_OR_PURE_CALL_P.
11702         * dse.c (scan_insn): Ditto.
11703         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
11704         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
11705         RTL_CONST_OR_PURE_CALL_P.
11706         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
11707         pure_call_p to RTL_CONST_CALL_P.
11708         * gimplify.c (gimplify_call_expr): Clear side effects for
11709         non-looping pure and constant calls.
11710         * calls.c (emit_call_1): Set rtl flags from ecf flags.
11711         (flags_from_decl_or_type): Set ecf flags from decl flags.
11712         (initialize_argument_information): Turn off
11713         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
11714         Change const to pure if callee_copies is true rather than just
11715         turning off const.
11716         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
11717         way of marking pure calls.
11718         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
11719         Remove hack that was supposed to fix pr7335 and remove old
11720         way of marking pure calls.
11721         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
11722         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
11723         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
11724         RTL_CONST_OR_PURE_CALL_P.
11725         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
11726         * loop-invariant.c (find_exits, find_invariant_bb): Changed
11727         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
11728         * sched-deps.c (schedule_analyze): Ditto.
11729         * rtl.h (struct rtx_def): Use call field, unchanging field, and
11730         return_val field of calls to represent pure and const function info.
11731         (CONST_OR_PURE_CALL_P): Deleted macro.
11732         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
11733         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
11734         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
11735         TREE_READONLY.
11736         * tree-optimize.c (execute_fixup_cfg): Added test for
11737         ECF_LOOPING_CONST_OR_PURE.
11738         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
11739         DECL_PURE_P.
11740         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
11741         effects for looping pure or const calls.
11742         (verify_gimple_expr): Added verification code.
11743         * config/alpha/alpha.c (alpha_legitimize_address,
11744         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
11745         RTL_CONST_CALL_P.
11746         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
11747         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
11748         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
11749         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
11750         RTL_CONST_OR_PURE_CALL_P.
11751         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
11752         and const calls to be deleted.
11753
11754 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
11755
11756         PR target/35714
11757         * config/i386/mmx.md (mmx_subv2sf3): New expander.
11758         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
11759         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
11760         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
11761         to handle nonimmediate operands.
11762         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
11763         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
11764         to handle nonimmediate operands.
11765         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
11766         (mmx_pmulhrwv4hi3): New expander.  Use
11767         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11768         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
11769         (sse2_umulv1siv1di3): New expander.  Use
11770         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11771         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
11772         (mmx_eq<mode>3): New expander.  Use
11773         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11774         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
11775         (mmx_uavgv8qi3): New expander.  Use
11776         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11777         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
11778         (mmx_uavgv4hi3): New expander.  Use
11779         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11780
11781         * config/i386/sse.md
11782         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
11783         to handle nonimmediate operands.
11784         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
11785         to handle nonimmediate operands.
11786         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
11787         to handle nonimmediate operands.
11788         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
11789         to handle nonimmediate operands.
11790         (sse2_unpckhpd_exp): New expander.  Use
11791         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11792         (sse2_unpcklpd_exp): New expander.  Use
11793         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11794         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
11795         to handle nonimmediate operands.
11796         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
11797         to handle nonimmediate operands.
11798         (*sse2_<plusminus_insn><mode>3): Rename from
11799         sse2_<plusminus_insn><mode>3 insn pattern.
11800         (sse2_<plusminus_insn><mode>3): New expander.  Use
11801         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11802         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
11803         (sse2_umulv2siv2di3): New expander.  Use
11804         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11805         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
11806         (sse4_1_mulv2siv2di3): New expander.  Use
11807         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11808         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
11809         (sse2_pmaddwd): New expander.  Use
11810         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11811         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
11812         (sse2_eq<mode>3): New expander.  Use
11813         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11814         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
11815         (sse4_1_eqv2di3): New expander.  Use
11816         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11817         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
11818         (sse2_uavgv16qi3): New expander.  Use
11819         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11820         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
11821         (sse2_uavgv16qi3): New expander.  Use
11822         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11823         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
11824         (sse2_uavgv8hi3): New expander.  Use
11825         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11826         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
11827         (ssse3_pmulhrswv8hi3): New expander.  Use
11828         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11829         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
11830         (ssse3_pmulhrswv4hi3): New expander.  Use
11831         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11832
11833         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
11834         (<sse>_vmmul<mode>3): Ditto.
11835         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
11836         (divv2df3): Ditto.
11837         (ssse3_pmaddubsw128): Use register_operand for operand 1.
11838         (ssse3_pmaddubsw): Ditto.
11839
11840         * config/i386/i386.c (struct_builtin_description)
11841         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
11842         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
11843         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
11844         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
11845         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
11846         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
11847         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
11848         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
11849         (ix86_fixup_binary_operands): Assert that src1
11850         and src2 must have the same mode when swapped.
11851         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
11852         and ix86_binary_operator_ok.  Do not force operands in registers
11853         when optimizing.
11854
11855 2008-05-07  Jan Hubicka  <jh@suse.cz>
11856
11857         * cgraph.c (dump_cgraph_node): Update.
11858         * cgraph.h (cgraph_local_info): Break out inline summary.
11859         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
11860         hook.
11861         * ipa-inline (inline_summary): New accestor function.
11862         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
11863         cgraph_decide_inlining, compute_inline_parameters): Update.
11864         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
11865
11866 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
11867
11868         Cleanup ColdFire scheduling support and add V4 pipeline model.
11869
11870         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
11871         (define_attr cpu): Add cfv4 value.
11872         (define_attr type, define_attr type1): Merge into a single 'type'
11873         attribute.  Update all uses.
11874         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
11875         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
11876         Update all uses.
11877         (define_attr opx_mem, define_attr opy_mem): Remove.
11878         (define_attr op_mem): Clean up, update comment.
11879         (define_attr size): Use specific values instead of general int.
11880         (define_attr guess, define_attr split): Remove.  Update all uses.
11881         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
11882         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
11883         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
11884         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
11885         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
11886         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
11887         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
11888         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
11889         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
11890         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
11891         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
11892         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
11893         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
11894         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
11895         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
11896         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
11897         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
11898         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
11899         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
11900         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
11901         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
11902         Update or set attributes.
11903         (stack_tie): New fake instruction.
11904
11905         * config/m68k/m68k.h (TUNE_CFV4): New macro.
11906         (m68k_sched_attr_size): Update declaration.
11907         (m68k_sched_attr_type2): Remove.
11908         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
11909         Declare new bypass predicates.
11910
11911         * config/m68k/m68k.c (m68k_sched_issue_rate,
11912         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
11913         implementations.
11914         (TARGET_SCHED_ISSUE_RATE,
11915         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
11916         (override_options): Handle scheduling for ColdFire V4 core.
11917         (m68k_expand_prologue): Emit stack_tie.
11918         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
11919         'OP_TYPE_FPN'.  Update all uses.
11920         (sched_guess_p): Remove.
11921         (sched_address_type): Handle symbolic addresses.
11922         (sched_get_operand): New static function.
11923         (sched_operand_type): Merge into sched_attr_op_type.
11924         (sched_attr_op_type): Handle FP registers, handle quick constants,
11925         update.
11926         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
11927         (m68k_sched_attr_size): Update.  Move logic to ...
11928         (sched_get_attr_size_int): New static function.
11929         (sched_get_opxy_mem_type): New static function.
11930         (m68k_sched_attr_op_mem): Update.
11931         (m68k_sched_attr_type2): Remove.
11932         (sched_cfv4_bypass_data): New static variable.
11933         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
11934         (m68k_sched_issue_rate): Implement scheduler hook.
11935         (struct _sched_ib: enabled_p): New field.
11936         (m68k_sched_variable_issue): Update.  Handle V4.
11937         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
11938         sched_dump_class_func_t, sched_dump_split_class,
11939         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
11940         sched_dump_dfa_class, m68k_sched_dump): Remove.
11941         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
11942         hook.
11943         (m68k_sched_init_global): Remove statisctics dumping, introduce
11944         sanity check that all instructions have pipeline reservations.  Handle
11945         ColdFire V4 core.
11946         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
11947         Handle ColdFire V4 core.
11948         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
11949         New static functions.
11950         (m68k_sched_address_bypass_p): New bypass predicate.
11951         (sched_get_indexed_address_scale): New static function.
11952         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
11953
11954         * cf.md: Update comments.
11955         (define_attr type2): Remove.  Use 'type' attribute instead.
11956         Update all uses.
11957         (cf_ib): Rename to cfv123_ib.  Update all uses.
11958         (cf_oep): Rename to cfv123_oep.  Update all uses.
11959         (cf_chr): Rename to cfv123_chr.  Update all uses.
11960         (cf_mem): Rename to cfv123_mem.  Update all uses.
11961         (cf_mac): Move to more appropriate place.
11962         (cfv123_guess): New automaton and cpu_unit.
11963         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
11964         Update uses of 'size' attribute.  Handle before reload scheduling.
11965         (cfv123_guess): New dummy reservation for unhandled instructions.
11966         (cfv4_*): Pipeline description of ColdFire V4 core.
11967         (ignore): New reservation to handle 'ignore' type.
11968
11969 2008-05-07  Ian Lance Taylor  <iant@google.com>
11970
11971         PR middle-end/36013
11972         * gimplify.c (find_single_pointer_decl_1): Don't look through
11973         indirections.
11974         (find_single_pointer_decl): Adjust comments.
11975
11976 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
11977
11978         PR middle-end/36137
11979         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
11980         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
11981
11982         PR middle-end/36106
11983         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
11984         integral type rather than floating point, then VIEW_CONVERT_EXPR
11985         to the floating point type.
11986
11987 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
11988
11989         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
11990         TFmode op0 to register.
11991
11992 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
11993
11994         * c-decl.c (grokdeclarator): Comment typo.
11995
11996 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
11997
11998         * tree-flow.h: Remove prototype for computed_goto_p.
11999         * tree-cfg.c (computed_goto_p): Make static.
12000
12001 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
12002
12003         PR target/35657
12004         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
12005         (contains_aligned_value_p): This.  Handle _Decimal128.
12006         (ix86_function_arg_boundary): Only align _Decimal128 to its
12007         natural boundary and handle it properly.
12008
12009 2008-05-06  Martin Jambor  <mjambor@suse.cz>
12010
12011         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
12012         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
12013         (ipcp_method_set_orig_node): Removed.
12014         (ipcp_cval_get_cvalue_type): Removed.
12015         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
12016         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
12017         (ipcp_cval_set_cvalue_type): Removed.
12018         (ipcp_cval_get_cvalue): Removed.
12019         (ipcp_cval_set_cvalue): Removed.
12020         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
12021         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
12022         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
12023         (ipcp_cval_meet): Renamed to ipa_lattice_meet
12024         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
12025         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
12026         (ipcp_get_ith_lattice): Changed parameters.
12027         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
12028         (ipcp_lattice_from_jfunc): Changed parameters.
12029         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
12030         (ipcp_method_cval_print): Added temporary variable info.
12031         (ipcp_redirect): Removed already unused local variable caller.
12032         (ipcp_redirect): New temporary variable orig_callee_info
12033         (ipcp_redirect): Removed newly unused local variable callee.
12034         (ipcp_redirect): Removed (a bit confusing) local variable type.
12035         (ipcp_insert_stage): Added local variable info.
12036         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
12037         renamed too
12038         (ipcp_formal_create): Removed.
12039         (ipcp_method_cval_set): Removed.
12040         (ipcp_propagate_stage): Renamed lattice variables.
12041         (ipcp_method_cval_set_cvalue_type): Removed.
12042         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
12043         (ipcp_print_all_lattices): Changed printed strings to refer to
12044         lattices rather than cvals.
12045         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
12046         (ipcp_propagate_const): Changed formal parameters.
12047         (build_const_val): Changed formal parameters.
12048         (ipcp_insert_stage): Removed useless variable cvalue
12049         (build_const_val): Changed formal parameters.
12050         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
12051         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
12052         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
12053         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
12054         (ipcp_print_func_profile_counts): Changed string from "method" to
12055         "function"
12056         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
12057         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
12058         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
12059         (ipcp_structures_print): Renamed to ipcp_print_all_structures
12060         (ipcp_profile_print): Renamed to ipcp_print_profile_data
12061         (ipcp_lat_is_const): Changed parameters and made inline.
12062         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
12063         (ipcp_redirect): Renamed to ipcp_need_redirect_p
12064         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
12065         the predicate condition directly
12066         (ipcp_propagate_stage): Added local variable args. Removed local
12067         variable callee.  (Both are mere code simplifications.)
12068         (ipcp_method_dont_insert_const): Renamed to
12069         ipcp_node_not_modifiable_p.
12070         (ipcp_node_not_modifiable_p): Made inline.
12071         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
12072         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
12073         (ipcp_print_all_lattices): Removed variable cvalue
12074         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
12075         Updated comments.
12076
12077 2008-05-06  Olivier Hainque  <hainque@adacore.com>
12078
12079         * tree-sra.c (try_instantiate_multiple_fields): Early return
12080         if field has POINTER_TYPE.
12081
12082 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
12083
12084         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
12085         by using 'q' specifier for instruction.
12086         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
12087
12088 2008-05-06  Anatoly Sokolov <aesok@post.ru>
12089
12090         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
12091         Change mode of zero_extract from QImode to HImode.
12092         (sign bit tests peepholes): (Ditto.).
12093
12094 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
12095
12096         * config/i386/mmx.md: Remove double backslashes from asm templates.
12097         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
12098         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
12099         to handle nonimmediate operands.
12100         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
12101         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
12102         to handle nonimmediate operands.
12103         (*mmx_<code>v2sf3_finite): New insn pattern.
12104         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
12105         (mmx_<code>v2sf3): New expander.  Use
12106         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12107         (mmx_<plusminus_insn><mode>3): New expander.  Use
12108         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12109         (*mmx_<plusminus_insn><mode>3): New insn pattern.
12110         (mmx_add<mode>3): Removed.
12111         (mmx_ssadd<mode>3): Ditto.
12112         (mmx_usadd<mode>3): Ditto.
12113         (mmx_sub<mode>3): Ditto.
12114         (mmx_sssub<mode>3): Ditto.
12115         (mmx_ussub<mode>3): Ditto.
12116         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
12117         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
12118         to handle nonimmediate operands.
12119         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
12120         insn pattern.
12121         (mmx_smulv4hi3_highpart): New expander.  Use
12122         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12123         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
12124         insn pattern.
12125         (mmx_umulv4hi3_highpart): New expander.  Use
12126         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12127         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
12128         (mmx_<code>v4hi3): New expander.  Use
12129         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12130         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
12131         (mmx_<code>v8qi3): New expander.  Use
12132         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12133         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
12134         (mmx_<code><mode>3): New expander.  Use
12135         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12136
12137 2008-05-05  Jan Hubicka  <jh@suse.cz>
12138
12139         PR tree-optimization/36118
12140         * passes.c (pass_init_dump_file): Fix dump header.
12141
12142 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12143
12144         PR middle-end/36141
12145         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
12146         VCE for function decls.
12147
12148 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
12149
12150         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
12151
12152 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
12153
12154         * config/i386/i386.md (sat_plusminus): New.
12155         (plusminus_insn): Likewise.
12156         (plusminus_mnemonic): Likewise.
12157         (addsub): Removed.
12158         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
12159         (*<addsub><mode>3_cc_overflow): Renamed to ...
12160         (*<plusminus_insn><mode>3_cc_overflow): This.
12161         (*<addsub>si3_zext_cc_overflow): Renamed to ...
12162         (*<plusminus_insn>si3_zext_cc_overflow): This.
12163
12164         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
12165         (<plusminus_insn><mode>3): This.
12166         (*<addsub><mode>3): Renamed to ...
12167         (*<plusminus_insn><mode>3): This.
12168         (<sse>_vm<addsub><mode>3): Renamed to ...
12169         (<sse>_vm<plusminus_insn><mode>3): This.
12170         (sse3_h<addsub>v4sf3): Renamed to ...
12171         (sse3_h<plusminus_insn>v4sf3): This.
12172         (sse3_h<addsub>v2df3): Renamed to ...
12173         (sse3_h<plusminus_insn>v2df3): This.
12174         (<plusminus_insn><mode>3): New.
12175         (*<plusminus_insn><mode>3): Likewise.
12176         (sse2_<plusminus_insn><mode>3): Likewise.
12177         (add<mode>): Removed.
12178         (*add<mode>3): Likewise.
12179         (sse2_ssadd<mode>3): Likewise.
12180         (sse2_usadd<mode>3): Likewise.
12181         (sub<mode>3): Likewise.
12182         (*sub<mode>3): Likewise.
12183         (sse2_sssub<mode>3): Likewise.
12184         (sse2_ussub<mode>3): Likewise.
12185
12186 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
12187
12188         * gthr-single.h: Add in required interface elements as per gthr.h.
12189         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
12190         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
12191         Generalize UNUSED macro.
12192         (__gthread_once): Add.
12193         (__gthread_key_create): Add.
12194         (__gthread_key_delete): Add.
12195         (__gthread_getspecific): Add.
12196         (__gthread_setspecific): Add.
12197
12198 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
12199
12200         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
12201         the same size types for the indirect reference on the rhs, then
12202         create a VCE.
12203
12204 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
12205
12206         * config/i386/i386.md
12207         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
12208         one insn template instead of template series.
12209         (*xordi_1_rex64): Ditto.
12210         (*xordi_2_rex64): Ditto.
12211
12212 2008-05-05  Ira Rosen  <irar@il.ibm.com>
12213
12214         PR tree-optimization/36119
12215         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
12216         in case of SLP.
12217
12218 2008-06-04  Jan Hubicka  <jh@suse.cz>
12219
12220         tree-optimization/36100
12221         * tree-pass.h (pass_O0_always_inline): Declare.
12222         * ipa-inline.c (inline_transform): Remove dead code.
12223         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
12224         pass_O0_always_inline): New.
12225         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
12226
12227 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
12228
12229         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
12230         mnemonic in this_param move for TARGET_64BIT.
12231
12232 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
12233
12234         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
12235         (*strmovsi_rex_1): Ditto.
12236         (*strsetsi_1): Ditto.
12237         (*strsetsi_rex_1): Ditto.
12238
12239         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
12240         adddicc expanders using SWI mode iterator.
12241
12242 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
12243
12244         PR target/36121
12245         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
12246         argument handling.
12247
12248 2008-05-04  David S. Miller  <davem@davemloft.net>
12249
12250         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
12251         (sparc*-*-linux*): Use linux.h in tm_file.
12252         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
12253         compiler defaulting to 32-bit.
12254         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
12255         no longer needed.
12256         * config/sparc/linux.h: Remove definitions now obtained
12257         properly from linux.h
12258         * config/sparc/linux64.h: Likewise.
12259         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
12260         don't want this setting for 32-bit builds in a biarch compiler.
12261         * doc/install.texi: Add sparc-linux to list of targets
12262         supporting --enable-targets=all.
12263
12264 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
12265
12266         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
12267
12268 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
12269
12270         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
12271         after V4SI_FTYPE_V8HI.
12272         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
12273         case V4SI_FTYPE_V2DF.
12274
12275 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
12276
12277         * doc/invoke.texi (max-flow-memory-locations): Removed.
12278         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
12279
12280 2008-05-03  Richard Guenther  <rguenther@suse.de>
12281
12282         PR middle-end/34973
12283         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
12284
12285 2008-05-02  David S. Miller  <davem@davemloft.net>
12286
12287         * config.gcc (need_64bit_hwint): Document libcpp dependency.
12288
12289 2008-05-02  Simon Baldwin <simonb@google.com>
12290
12291         PR bootstrap/36108
12292         * c-common.h (warn_array_subscript_range): Removed.
12293         * c-common.c (warn_array_subscript_range): Ditto.
12294         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
12295         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
12296
12297 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
12298
12299         * config/i386/i386.c (ix86_special_builtin_type): New.
12300         (bdesc_special_args): Likewise.
12301         (ix86_expand_special_args_builtin): Likewise.
12302         (ix86_init_mmx_sse_builtins): Updated.
12303         (ix86_expand_builtin): Updated.
12304         (ix86_expand_store_builtin): Removed.
12305         (ix86_expand_unop_builtin): Likewise.
12306
12307         * config/i386/mm3dnow.h (__v2sf): Moved to ...
12308         * config/i386/mmintrin.h (__v2sf): Here.
12309
12310         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
12311         const __v2sf.
12312         (_mm_loadl_pi): Likewise.
12313         (_mm_storeh_pi): Replace __v2si with __v2sf.
12314         (_mm_storel_pi): Likewise.
12315
12316         * doc/extend.texi: Correct __builtin_ia32_loadhps,
12317         __builtin_ia32_loadlps, __builtin_ia32_storehps,
12318         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
12319         __builtin_ia32_loadlpd.
12320
12321 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
12322
12323         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
12324         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
12325         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
12326         (ix86_init_mmx_sse_builtins): Updated.
12327         (ix86_expand_args_builtin): Likewise.
12328         (ix86_expand_builtin): Likewise.
12329         (ix86_expand_unop1_builtin): Renamed to ...
12330         (ix86_expand_unop_vec_merge_builtin): This.
12331
12332 2008-05-01  Jan Hubicka  <jh@suse.cz>
12333
12334         PR bootstrap/36100
12335         * ipa-inline.c (inline_generate_summary): Make static.
12336         (inline_transform): Do not call inlining at -O0; make static.
12337         * passes.c (execute_todo): Add sanity check.
12338         (execute_one_ipa_transform_pass): Execute proper flags.
12339
12340 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
12341
12342         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
12343         (DECL_NONADDRESSABLE_P): Likewise.
12344         * alias.c (record_component_aliases): Fix comment.
12345
12346 2008-05-01  Simon Baldwin <simonb@google.com>
12347
12348         * c-common.h (warn_array_subscript_range): New function.
12349         * c-common.c (warn_array_subscript_range): Ditto.
12350         * tree-vrp.c (check_array_ref): Corrected code to agree with
12351         comment, ignoring only arrays of size 0 or size 1.
12352         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
12353
12354 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
12355
12356         * config/i386/i386.c (ix86_builtin_type): Replace
12357         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
12358         (bdesc_args): Updated.
12359         (ix86_init_mmx_sse_builtins): Likewise.
12360         (ix86_expand_args_builtin): Likewise.
12361
12362         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
12363         with __v1di.
12364
12365         * doc/extend.texi: Correct __builtin_ia32_palignr.
12366
12367 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
12368
12369         PR target/36095
12370         * config/i386/i386.c (bdesc_crc32): Removed.
12371         (ix86_expand_crc32): Likewise.
12372         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
12373         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
12374         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
12375         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
12376         UINT_FTYPE_UINT_UCHAR.
12377         (bdesc_args): Updated. Add crc32 builtins.
12378         (ix86_init_mmx_sse_builtins): Updated.
12379         (ix86_expand_args_builtin): Updated to support subreg.
12380
12381         * doc/extend.texi: Correct __builtin_ia32_crc32di.
12382
12383 2008-05-01  Jan Hubicka  <jh@suse.cz>
12384
12385         * tree-pass.h (opt_pass): Add IPA_PASS.
12386         (varpool_node, cgraph_node): Forward declare.
12387         (ipa_opt_pass): Define.
12388         (pass_ipa_inline): Turn into ipa_opt_pass.
12389         (pass_apply_inline): Remove.
12390         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
12391         (apply_inline): Turn into ....
12392         (inline_transform): ... this one.
12393         (inline_generate_summary): New function.
12394         (pass_apply_inline): Remove.
12395         * function.h (ipa_opt_pass): Forward declare structure; typedef;
12396         vector.
12397         (struct function): Add ipa_transforms_to_apply.
12398         * passes.c (register_one_dump_file): Work on IPA_PASS.
12399         (init_optimization_passes): Remove pass_inline_parameters and
12400         pass_apply_inline.
12401         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
12402         (execute_one_pass) ... here; apply transforms when possible.
12403         (add_ipa_transform_pass, execute_ipa_summary_asses,
12404         execute_one_ipa_transform_pass): New.
12405         (execute_ipa_pass_list): Update for IPA_PASS type.
12406
12407 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
12408
12409         * config/i386/i386.c (ix86_builtin_type): Add
12410         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
12411         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
12412         (bdesc_args): Add SSE4a builtins.
12413         (ix86_init_mmx_sse_builtins): Updated.
12414         (ix86_expand_args_builtin): Likewise.
12415         (ix86_expand_builtin): Likewise.
12416
12417 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
12418
12419         * config/i386/i386.c (ix86_builtin_type): Add
12420         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
12421         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
12422         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
12423         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
12424         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
12425         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
12426         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
12427         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
12428         and DI_FTYPE_DI_DI_INT.
12429         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
12430         (ix86_init_mmx_sse_builtins): Updated.
12431         (ix86_expand_args_builtin): Likewise.
12432         (ix86_expand_builtin): Likewise.
12433         (ix86_expand_binop_imm_builtin): Removed.
12434
12435         * doc/extend.texi: Correct __builtin_ia32_palignr128.
12436
12437 2008-04-30  Richard Guenther  <rguenther@suse.de>
12438
12439         PR tree-optimization/32921
12440         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
12441
12442 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
12443
12444         * config/arm/arm.c (arm_unwind_emit): Use
12445         crtl->all_throwers_are_sibcalls instead of
12446         cfun->all_throwers_are_sibcalls.
12447         (arm_output_fn_unwind): Likewise.
12448         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
12449         instead of cfun->uses_pic_offset_table.
12450         (frv_expand_prologue): Likewise.
12451         (frv_frame_pointer_required): Likewise.
12452         (frv_expand_fdpic_call): Likewise.
12453         (frv_emit_movsi): Likewise.
12454         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
12455         cfun->returns_pcc_struct instead of
12456         current_function_returns_pcc_struct.
12457         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
12458         instead of cfun->calls_eh_return.
12459         (m32c_pushm_popm): Likewise.
12460         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
12461         "extern" declaration.
12462
12463 2008-04-30  Richard Guenther  <rguenther@suse.de>
12464
12465         PR tree-optimization/21636
12466         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
12467         constant address.
12468         (evaluate_stmt): Print the likely value.
12469         (ccp_visit_stmt): Avoid excessive vertical spacing.
12470
12471 2008-04-30  Rafael Espindola  <espindola@google.com>
12472
12473         * builtins.c (fold_call_expr): Return realret.
12474         * tree-ssa-threadedge.c
12475         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
12476         __builtin_object_size.
12477
12478 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
12479
12480         * gcc.c (wrapper_string): New variable.
12481         (insert_wrapper): New function.
12482         (execute): New option -wrapper.
12483         * doc/invoke.texi (Overall Options): New driver option -wrapper.
12484
12485 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
12486
12487         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
12488         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
12489         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
12490         from...
12491         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
12492         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
12493         config/rs6000/e500crtres64gprctr.asm,
12494         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
12495         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
12496         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
12497         config/rs6000/e500crtsav64gprctr.asm,
12498         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
12499         config/rs6000/e500crtsavg64gprctr.asm: New files.
12500         * config/rs6000/t-ppccomm: Add build rules for new files.
12501         (LIB2FUNCS_STATIC_EXTRA): Add new files.
12502         * config/rs6000/t-netbsd: Add build rules for new files.
12503         (LIB2FUNCS_STATIC_EXTRA): New variable.
12504         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
12505         (CRTSAVRES_DEFAULT_SPEC): Likewise.
12506         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
12507
12508 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
12509
12510         * config/i386/i386.c (ix86_builtin_type): Add
12511         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
12512         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
12513         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
12514         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
12515         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
12516         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
12517         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
12518         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
12519         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
12520         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
12521         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
12522         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
12523         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
12524         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
12525         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
12526         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
12527         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
12528         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
12529         V1DI_FTYPE_V2SI_V2SI.
12530         (bdesc_2arg): Moved to ...
12531         (bdesc_args): Here.
12532         (ix86_init_mmx_sse_builtins): Updated.
12533         (ix86_expand_args_builtin): Updated.  Take a pointer
12534         to const struct builtin_description.  Handle comparison
12535         builtin functions.
12536         (ix86_expand_sse_compare): Take a new argument for swapping operands.
12537         (ix86_expand_builtin): Updated.
12538
12539         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
12540         (ssse3_pmaddubsw128): This.
12541         (ssse3_pmaddubswv4hi3): Renamed to ...
12542         (ssse3_pmaddubsw): This.
12543
12544         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
12545         (__builtin_ia32_packssdw128): Likewise.
12546         (__builtin_ia32_packuswb128): Likewise.
12547         (__builtin_ia32_pmaddubsw): Likewise.
12548         (__builtin_ia32_pmaddubsw128): Likewise.
12549
12550 2008-04-30  Richard Guenther  <rguenther@suse.de>
12551
12552         PR tree-optimization/14847
12553         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
12554         (recognize_bits_test): Use it.
12555         (recognize_single_bit_test): Likewise.
12556
12557 2008-04-30  Martin Jambor  <mjambor@suse.cz>
12558
12559         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
12560         instead of setting number of formal parameters to zero.
12561         (ipcp_init_stage): Do not set the number of actual parameters to zero
12562         either.
12563         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
12564         which are called with variable number of arguments.
12565         (ipcp_insert_stage): Explicitely skipping all nodes which are
12566         called with variable number of arguments.
12567         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
12568         number of parameters.
12569
12570         * ipa-prop.h (struct ipa_node_params): Added flag
12571         called_with_var_arguments
12572         (ipa_set_param_count): Added.  Changed sole setter to use it.
12573         (ipa_get_param_count): Added.  All readers of param_count
12574         converted to use it instead.
12575         (ipa_set_called_with_variable_arg): Added.
12576         (ipa_is_called_with_var_arguments): Added.
12577         (ipa_get_ith_param): Added.  All readers of param_decls converted
12578         to use it instead.
12579         (ipa_set_cs_argument_count): Added, sole writer to argument_count
12580         changed to use it.
12581         (ipa_get_cs_argument_count): Added, all readers of argument_count
12582         changed to cal it.
12583         (ipa_get_ith_jump_func): Added. Accessors of jump values changed
12584         to use it.
12585
12586         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
12587         (struct ipcp_lattice): Renamed cval_type to type
12588         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
12589
12590         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
12591         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
12592         (ipcp_insert_stage): Changed the type of variable cvalue to tree
12593         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
12594         (build_const_val): Changed the type of parameter cvalue to tree
12595         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
12596         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
12597
12598         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
12599         constant
12600
12601         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
12602         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
12603         (ipa_add_method): Renamed to ipa_push_func_to_list
12604         (ipa_remove_method): Renamed to ipa_pop_func_from_list
12605         (ipa_callsite_param_count): Removed.
12606         (ipa_callsite_param_count_set): Removed.
12607         (ipa_callsite_param): Removed.
12608         (ipa_callsite_callee): Removed.
12609         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
12610         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
12611         (ipa_method_formal_count): Removed.
12612         (ipa_method_formal_count_set): Removed.
12613         (ipa_method_get_tree): Removed.
12614         (ipa_method_tree_map_create): Removed.
12615         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
12616         (ipa_create_param_decls_array): Creates the array itself
12617         (ipa_create_param_decls_array): Temporary variable info instead of
12618         a few dereferences.
12619         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
12620         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
12621         (get_type): Removed.
12622         (ipa_jf_get_info_type): Removed.
12623         (ipa_node_create): Renamed to ipa_create_node_params
12624         (ipa_free): Renamed to ipa_free_all_node_params
12625         (ipa_nodes_create): Renamed to ipa_create_all_node_params
12626         (ipa_edges_create): Renamed to ipa_create_all_edge_args
12627         (ipa_edges_free): Renamed to ipa_free_all_edge_args
12628         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
12629         (ipa_free_all_node_params): Deallocation to jump_functions moved to
12630         ipa_free_all_edge_args
12631         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
12632         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
12633         (ipa_create_methodlist_node): Removed.
12634         (ipa_methodlist_method): Removed.
12635         (ipa_methodlist_method_set): Removed.
12636         (ipa_methodlist_next_method): Removed.
12637         (ipa_methodlist_next_method_set): Removed.
12638         (ipa_method_is_modified): Removed.
12639         (ipa_method_modify_create): Removed.
12640         (ipa_method_modify_init): Temporary variable info instead of a few
12641         dereferences.
12642         (ipa_detect_param_modifications): Temporary variable info instead of
12643         a few dereferences.
12644         (ipa_compute_jump_functions): Temporary variable info instead of
12645         a few dereferences.
12646         (ipa_method_modify_set): Removed.
12647         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
12648         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
12649         than craph_node as the first parameter.
12650         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
12651         (ipa_method_modify_init): Removed.
12652         (ipa_compute_jump_functions): Added a temp variable instead of
12653         repeatadly dereferencing the cgraph_edge.aux pointer
12654         (ipa_callsite_param_set_type): Removed.
12655         (ipa_compute_jump_functions): i renamed to index and moved to
12656         an inner block
12657         (ipa_callsite_param_set_info_type_formal): Removed.
12658         (ipa_callsite_param_set_info_type): Removed.
12659         (ipa_callsite_param_map_create): Removed.
12660         (ipa_callsite_tree): Removed.
12661         (ipa_callsite_caller): Removed.
12662         (ipa_pop_func_from_list): return_method removed to return_func
12663
12664         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
12665         prefixed all values with IPA_. Changed all users.
12666         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
12667         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
12668         and FORMAL_IPATYPE IPA_PASS_THROUGH.
12669         (union parameter_info): Renamed to jump_func_value.
12670         (union jump_func_value): Renamed value to constant
12671         (struct ipa_jump_func): Renamed info_type to value
12672         (struct ipa_node): Renamed to ipa_node_params
12673         (struct ipa_node_params): Renamed ipa_arg_num to param_count
12674         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
12675         (struct ipa_node_params): Renamed ipa_mod to modified_flags
12676         (struct ipa_edge): Renamed to ipa_edge_args
12677         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
12678         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
12679         (struct ipa_methodlist): Renamed to ipa_func_list
12680         (struct ipa_func_list): method_p renamed to node, next_method
12681         renamed to next
12682         (ipa_methodlist_p): Removed, switched all users to struct pointer
12683         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
12684
12685 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
12686
12687         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
12688         (rs6000_emit_epilogue): Use backchain to restore only when we
12689         have a large frame.  Make use of frame pointer to restore if we
12690         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
12691
12692 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
12693
12694         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
12695         Add mode to zero_extract.
12696         (sign bit tests peepholes): (Ditto.).
12697
12698 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
12699
12700         * config/i386/i386.c (ix86_builtins): Replace Prescott New
12701         Instructions in comments with SSE3.
12702         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
12703         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
12704         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
12705         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
12706         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
12707         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
12708         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
12709         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
12710         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
12711         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
12712         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
12713         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
12714         (bdesc_sse_args): Renamed to ...
12715         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
12716         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
12717         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
12718         IX86_BUILTIN_FABSQ.
12719         (bdesc_1arg): Moved to ...
12720         (bdesc_args): Here.
12721         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
12722         Instructions in comments with SSE3.
12723         (ix86_expand_sse_operands_builtin): Renamed to ...
12724         (ix86_expand_args_builtin): This.  Updated.
12725         (ix86_expand_unop1_builtin): Update comments.
12726         (ix86_expand_builtin): Updated.
12727
12728 2008-04-29  Richard Guenther  <rguenther@suse.de>
12729
12730         PR tree-optimization/36078
12731         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
12732         Update virtual SSA form after cleaning up the CFG.
12733
12734 2008-04-29  Richard Guenther  <rguenther@suse.de>
12735
12736         PR middle-end/15255
12737         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
12738
12739 2008-04-29  Richard Guenther  <rguenther@suse.de>
12740
12741         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
12742         (compute_may_aliases): Do not call finalize_ref_all_pointers.
12743         (compute_flow_insensitive_aliasing): Do not treat
12744         PTR_IS_REF_ALL pointers special.
12745         (get_smt_for): Likewise.
12746         (may_alias_p): Re-structure.
12747         (is_escape_site): A ref-all pointer conversion is not an escape site.
12748         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
12749         PTR_IS_REF_ALL pointers special.
12750         * tree-ssa-structalias.h (struct alias_info): Remove
12751         ref_all_symbol_mem_tag field.
12752         (PTR_IS_REF_ALL): Remove.
12753
12754 2008-04-29  Richard Guenther  <rguenther@suse.de>
12755
12756         PR middle-end/36077
12757         * fold-const.c (extract_muldiv_1): In combining division constants
12758         make sure to never overflow.
12759
12760 2008-04-29  Nick Clifton  <nickc@redhat.com>
12761
12762         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
12763
12764 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12765
12766         PR bootstrap/35169
12767         * optc-gen.awk: Work around HP-UX/IA awk bug.
12768
12769 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
12770
12771         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
12772         2008-04-25 commit.
12773
12774 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
12775
12776         PR target/36073
12777         * config/i386/i386.md
12778         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
12779         Change operand 1 predicate to nonimmediate_operand.
12780
12781 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
12782
12783         PR debug/36060
12784         * dwarf2out.c (struct die_struct): Mark as chain_circular through
12785         die_sub field.
12786         * gengtype.c (walk_type, write_func_for_structure): Handle
12787         chain_circular.
12788         * doc/gty.texi: Document chain_circular.
12789
12790 2008-04-28  Richard Guenther  <rguenther@suse.de>
12791
12792         PR tree-optimization/36066
12793         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
12794         SCEV and loop.
12795
12796 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
12797
12798         PR target/36064
12799         * config/i386/i386.md
12800         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
12801         Use match_scratch instead of match_operand for operands 3 and 4.
12802
12803 2008-04-27  Richard Guenther  <rguenther@suse.de>
12804
12805         PR tree-optimization/18754
12806         PR tree-optimization/34223
12807         * tree-pass.h (pass_complete_unrolli): Declare.
12808         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
12809         loop size before and after unconditionally of UL_NO_GROWTH in effect.
12810         Rewrite loop into loop closed SSA form if it is not already.
12811         (tree_unroll_loops_completely): Re-structure to iterate over
12812         innermost loops with intermediate CFG cleanups.
12813         Unroll outermost loops only if requested or the code does not grow
12814         doing so.
12815         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
12816         loops are available.
12817         (tree_vectorize): Instead do so here.
12818         (tree_complete_unroll): Also unroll outermost loops.
12819         (tree_complete_unroll_inner): New function.
12820         (gate_tree_complete_unroll_inner): Likewise.
12821         (pass_complete_unrolli): New pass.
12822         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
12823         uses outside of the loop.
12824         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
12825         form if it is available.
12826         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
12827         * passes.c (init_optimization_passes): Schedule complete inner
12828         loop unrolling pass before the first CCP pass after final inlining.
12829
12830 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
12831
12832         * targhooks.h (default_emutls_var_fields,
12833         default_emutls_var_init): Declare.
12834         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
12835         * target.h (struct gcc_target): Add struct emutls member.
12836         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
12837         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
12838         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
12839         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
12840         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
12841         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
12842         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
12843         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
12844         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
12845         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
12846         emit debug information.
12847         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
12848         * varasm.c: Include targhooks.h.
12849         (emutls_object_section, emutls_tmpl_section): New.
12850         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
12851         (EMUTLS_SEPARATOR): New.
12852         (prefix_name): New.
12853         (get_emutls_object_name): New.
12854         (default_emutls_var_fields): New, broken out of ...
12855         (get_emutls_object_type): ... here.  Adjust to use target hooks.
12856         (get_emutls_init_templ_addr): Adjust to use target hooks.
12857         (emutls_decl): Adjust to use target hooks.
12858         (emutls_finish): Likewise.
12859         (default_emutls_var_init): New, broken out of ...
12860         (assemble_variable): ... here.  Adjust to use target hooks.
12861         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
12862         SECCAT_EMUTLS_TMPL.
12863         * c-common.c (handle_section_attribute): Prevent overriding
12864         sections for emulated tls with special sections.
12865         * config/i386/i386.c (x86_64_elf_select_section): Add
12866         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
12867         (x86_64_elf_unique_section): Likewise.
12868         * config/vxworks.c: Include tree.h.
12869         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
12870         (vxworks_override_options): Set TLS scheme.
12871         * doc/tm.texi (Emulated TLS): New node.
12872
12873 2008-04-26  Simon Baldwin <simonb@google.com>
12874
12875         PR c/35652
12876         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
12877         with propagated string constants.
12878
12879 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
12880
12881         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
12882         constraint for operand 2 when operand 0 is memory operand.
12883         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
12884         operand 0 is memory operand.
12885         (fix_trunc<mode>_i387_with_temp): Ditto.
12886         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
12887         operand 2 when operand 1 is memory operand.
12888         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
12889         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
12890         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
12891         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
12892         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
12893         operands 2,3 and 4 when operand 1 is memory operand.
12894         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
12895         is memory operand.
12896         (fistdi2_floor_with_temp): Ditto.
12897         (fist<mode>2_floor_with_temp): Ditto.
12898         (fistdi2_ceil_with_temp): Ditto.
12899         (fist<mode>2_ceil_with_temp): Ditto.
12900         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
12901
12902 2008-04-26  David Daney  <ddaney@avtrex.com>
12903
12904         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
12905         unspec_volitile.
12906         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
12907         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
12908         UNSPEC_UPDATE_GOT_VERSION): Renumber.
12909         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
12910         (compare_and_swap_12): New insn.
12911         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
12912         * config/mips/mips.c (mips_force_binary): New function.
12913         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
12914         (mips_expand_compare_and_swap_12): New function.
12915         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
12916
12917 2008-04-25  Jan Hubicka  <jh@suse.cz>
12918
12919         PR testsuite/35843
12920         * cfgexpand.c (pass_expand): Turn into RTL pass.
12921         * passes.c (execute_one_pass): Do pass typechecking after execution.
12922         * tree-pass.h (pass_expand): Turn into RTL pass.
12923
12924         * function.h (struct rtl_data): Move here fields
12925         accesses_prior_frames, calls_eh_return, saves_all_registers,
12926         has_nonlocal_goto, has_asm_statement, is_thunk,
12927         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
12928         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
12929         arg_pointer_save_area_init from struct function; turn into bool.
12930         (struct function): Move
12931         calls_eh_return, saves_all_registers, has_nonlocal_goto,
12932         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
12933         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
12934         tail_call_emit, arg_pointer_save_area_init
12935         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
12936         (current_function_returns_struct, current_function_returns_pcc_struct,
12937         current_function_calls_setjmp, current_function_calls_alloca,
12938         current_function_accesses_prior_frames,
12939         current_function_calls_eh_return, current_function_is_thunk,
12940         current_function_stdarg, current_function_profile,
12941         current_function_limit_stack, current_function_uses_pic_offset_table,
12942         current_function_uses_const_pool, current_function_has_nonlocal_label,
12943         current_function_saves_all_registers,
12944         current_function_has_nonlocal_goto,
12945         current_function_has_asm_statement): Remove accesor macros.
12946         * ra-conflict.c (global_conflicts): Update.
12947         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
12948         (suitable_for_tail_call_opt_p): Update.
12949         * builtins.c (expand_builtin_return_addr): Update.
12950         (expand_builtin_setjmp_setup): Update.
12951         (expand_builtin_nonlocal_goto): Update.
12952         * final.c (final_start_function): Update.
12953         (profile_function): Update.
12954         (leaf_function_p): Update.
12955         (only_leaf_regs_used): Update.
12956         * df-scan.c (df_get_exit_block_use_set): Update.
12957         * dojump.c (clear_pending_stack_adjust): Update.
12958         * tree-stdarg.c (gate_optimize_stdarg): Update.
12959         * gimple-low.c (lower_function_body): Update.
12960         * global.c (compute_regsets): Update.
12961         (global_alloc): Update.
12962         * dwarf2out.c (dwarf2out_begin_prologue): Update.
12963         * expr.c (expand_assignment): Update.
12964         * dse.c (dse_step0): Update.
12965         (dse_step1): Update.
12966         * c-decl.c (store_parm_decls): Update.
12967         * local-alloc.c (combine_regs): Update.
12968         (find_free_reg): Update.
12969         * function.c (assign_parms_augmented_arg_list): Update.
12970         (assign_parm_find_data_types): Update.
12971         (assign_parms): Update.
12972         (allocate_struct_function): Update.
12973         (expand_function_start): Update.
12974         (expand_function_end): Update.
12975         (get_arg_pointer_save_area): Update.
12976         (thread_prologue_and_epilogue_insns): Update.
12977         (rest_of_match_asm_constraints): Update.
12978         * stor-layout.c (variable_size): Update.
12979         * gcse.c (gcse_main): Update.
12980         (bypass_jumps): Update.
12981         * gimplify.c (gimplify_function_tree): Update.
12982         * calls.c (emit_call_1): Update.
12983         (expand_call): Update.
12984         * bt-load.c (compute_defs_uses_and_gen): Update.
12985         * except.c (sjlj_assign_call_site_values): Update.
12986         (sjlj_emit_function_enter): Update.
12987         (can_throw_external): Update.
12988         (set_nothrow_function_flags): Update.
12989         (expand_builtin_unwind_init): Update.
12990         (expand_eh_return): Update.
12991         (convert_to_eh_region_ranges): Update.
12992         (output_function_exception_table): Update.
12993         * emit-rtl.c (gen_tmp_stack_mem): Update.
12994         * cfgexpand.c (expand_used_vars): Update.
12995         (tree_expand_cfg): Update.
12996         * cfgcleanup.c (rest_of_handle_jump): Update.
12997         * explow.c (allocate_dynamic_stack_space): Update.
12998         * varasm.c (assemble_start_function): Update.
12999         (force_const_mem): Update.
13000         (mark_constant_pool): Update.
13001         * tree-optimize.c (tree_rest_of_compilation): Update.
13002         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
13003         * tree-cfg.c (notice_special_calls): Update.
13004         (is_ctrl_altering_stmt): Update.
13005         (tree_can_make_abnormal_goto): Update.
13006         (tree_purge_dead_abnormal_call_edges): Update.
13007         * config/alpha/predicates.md: Update.
13008         * config/alpha/alpha.c (alpha_sa_mask): Update.
13009         (alpha_sa_size): Update.
13010         (alpha_does_function_need_gp): Update.
13011         (alpha_expand_prologue): Update.
13012         (alpha_start_function): Update.
13013         (alpha_output_function_end_prologue): Update.
13014         (alpha_expand_epilogue): Update.
13015         * config/frv/frv.c (frv_stack_info): Update.
13016         (frv_expand_epilogue): Update.
13017         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
13018         (s390_register_info): Update.
13019         (s390_frame_info): Update.
13020         (s390_init_frame_layout): Update.
13021         (s390_can_eliminate): Update.
13022         (save_gprs): Update.
13023         * config/spu/spu.c (spu_split_immediate): Update.
13024         (need_to_save_reg): Update.
13025         (spu_expand_prologue): Update.
13026         (spu_expand_epilogue): Update.
13027         * config/sparc/sparc.md: Update.
13028         * config/sparc/sparc.c (eligible_for_return_delay): Update.
13029         (sparc_tls_got): Update.
13030         (legitimize_pic_address): Update.
13031         (sparc_emit_call_insn): Update.
13032         (sparc_expand_prologue): Update.
13033         (output_return): Update.
13034         (print_operand): Update.
13035         (sparc_function_ok_for_sibcall): Update.
13036         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
13037         * config/m32r/m32r.md: Update.
13038         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
13039         (m32r_compute_frame_size): Update.
13040         (m32r_expand_prologue): Update.
13041         (m32r_expand_epilogue): Update.
13042         (m32r_legitimize_pic_address): Update.
13043         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
13044         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
13045         * config/i386/i386.c (ix86_frame_pointer_required): Update.
13046         (gen_push): Update.
13047         (ix86_save_reg): Update.
13048         (ix86_compute_frame_layout): Update.
13049         (ix86_expand_prologue): Update.
13050         (ix86_expand_epilogue): Update.
13051         * config/sh/sh.c (output_stack_adjust): Update.
13052         (calc_live_regs): Update.
13053         (sh5_schedule_saves): Update.
13054         (sh_expand_prologue): Update.
13055         (sh_expand_epilogue): Update.
13056         (sh_setup_incoming_varargs): Update.
13057         (sh_allocate_initial_value): Update.
13058         (sh_get_pr_initial_val): Update.
13059         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
13060         * config/sh/sh.md (label:): Update.
13061         * config/avr/avr.c (out_movhi_mr_r): Update.
13062         * config/crx/crx.h (enum): Update.
13063         * config/xtensa/xtensa.h (along): Update.
13064         * config/stormy16/stormy16.c Update.
13065         (xstormy16_compute_stack_layout): Update.
13066         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
13067         (fr30_expand_prologue): Update.
13068         * config/cris/cris.c (cris_conditional_register_usage): Update.
13069         (cris_reg_saved_in_regsave_area): Update.
13070         (cris_initial_frame_pointer_offset): Update.
13071         (cris_simple_epilogue): Update.
13072         (cris_expand_prologue): Update.
13073         (cris_expand_epilogue): Update.
13074         (cris_expand_pic_call_address): Update.
13075         (cris_asm_output_symbol_ref): Update.
13076         (cris_asm_output_label_ref): Update.
13077         * config/cris/cris.md Update.
13078         * config/iq2000/iq2000.c (compute_frame_size): Update.
13079         (iq2000_expand_epilogue): Update.
13080         * config/mt/mt.h (save_direction): Update.
13081         * config/mn10300/mn10300.c (mn10300_function_value): Update.
13082         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
13083         (ia64_secondary_reload_class): Update.
13084         * config/m68k/m68k.c (m68k_save_reg): Update.
13085         (m68k_expand_prologue): Update.
13086         (m68k_expand_epilogue): Update.
13087         (legitimize_pic_address): Update.
13088         * config/rs6000/rs6000.c (rs6000_got_register): Update.
13089         (first_reg_to_save): Update.
13090         (first_altivec_reg_to_save): Update.
13091         (compute_vrsave_mask): Update.
13092         (compute_save_world_info): Update.
13093         (rs6000_stack_info): Update.
13094         (spe_func_has_64bit_regs_p): Update.
13095         (rs6000_ra_ever_killed): Update.
13096         (rs6000_emit_eh_reg_restore): Update.
13097         (rs6000_emit_allocate_stack): Update.
13098         (rs6000_emit_prologue): Update.
13099         (rs6000_emit_epilogue): Update.
13100         (rs6000_output_function_epilogue): Update.
13101         (output_profile_hook): Update.
13102         (rs6000_elf_declare_function_name): Update.
13103         * config/rs6000/rs6000.h (rs6000_args): Update.
13104         * config/rs6000/rs6000.md: Update.
13105         * config/mcore/mcore.c (mcore_expand_prolog): Update.
13106         * config/arc/arc.c (arc_output_function_epilogue): Update.
13107         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
13108         * config/darwin.c (machopic_function_base_name): Update.
13109         * config/score/score3.c (score3_compute_frame_size): Update.
13110         (rpush): Update.
13111         (rpop): Update.
13112         (score3_epilogue): Update.
13113         * config/score/score7.c (score7_compute_frame_size): Update.
13114         (score7_prologue): Update.
13115         (score7_epilogue): Update.
13116         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
13117         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
13118         * config/arm/arm.c (use_return_insn): Update.
13119         (require_pic_register): Update.
13120         (arm_load_pic_register): Update.
13121         (arm_compute_save_reg0_reg12_mask): Update.
13122         (arm_compute_save_reg_mask): Update.
13123         (thumb1_compute_save_reg_mask): Update.
13124         (output_return_instruction): Update.
13125         (arm_output_function_prologue): Update.
13126         (arm_output_epilogue): Update.
13127         (arm_get_frame_offsets): Update.
13128         (arm_expand_prologue): Update.
13129         (thumb_pushpop): Update.
13130         (thumb_exit): Update.
13131         (thumb1_expand_prologue): Update.
13132         (thumb1_expand_epilogue): Update.
13133         (arm_unwind_emit): Update.
13134         (arm_output_fn_unwind): Update.
13135         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
13136         * config/arm/arm.md: Update.
13137         * config/pa/pa.md: Update.
13138         * config/pa/pa.c (legitimize_pic_address): Update.
13139         (compute_frame_size): Update.
13140         (hppa_expand_prologue): Update.
13141         (hppa_expand_epilogue): Update.
13142         (borx_reg_operand): Update.
13143         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
13144         (HARD_REGNO_RENAME_OK): Update.
13145         * config/mips/mips.c (mips_global_pointer): Update.
13146         (mips_save_reg_p): Update.
13147         (mips_compute_frame_info): Update.
13148         (mips_frame_pointer_required): Update.
13149         (mips_expand_prologue): Update.
13150         (mips_expand_epilogue): Update.
13151         (mips_can_use_return_insn): Update.
13152         (mips_reorg_process_insns): Update.
13153         * config/v850/v850.c (compute_register_save_size): Update.
13154         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
13155         * config/mmix/mmix.c (along): Update.
13156         (mmix_expand_epilogue): Update.
13157         * config/bfin/bfin.c (legitimize_pic_address): Update.
13158         (must_save_p): Update.
13159         (stack_frame_needed_p): Update.
13160         (add_to_reg): Update.
13161         (bfin_expand_prologue): Update.
13162         * stmt.c (expand_asm_operands): Update.
13163         * reload1.c (reload): Update.
13164         (init_elim_table): Update.
13165
13166 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
13167
13168         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
13169
13170 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
13171
13172         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
13173         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
13174         (mov<mode>): Removed.
13175         (*movv4sf_internal): Likewise.
13176         (*movv2df_internal): Likewise.
13177
13178 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
13179
13180         * config.gcc (crx-*-elf): Remove deprecation.
13181
13182 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
13183
13184         * config/i386/cygming-crtend.c (register_frame_ctor): Register
13185         __gcc_deregister_frame with atexit.
13186         (deregister_frame_dtor): Remove.
13187
13188 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
13189             Nathan Sidwell  <nathan@codesourcery.com>
13190
13191         * config/rs6000/rs6000.opt (mspe): Remove Var property.
13192         (misel): Likewise.
13193         * config/rs6000/rs6000.h (rs6000_spe): Declare.
13194         (rs6000_isel): Likewise.
13195         * config/rs6000/rs6000.c (rs6000_spe): New variable.
13196         (rs6000_isel): New variable.
13197         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
13198
13199 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
13200
13201         PR c++/35758
13202         * c-common.c (handle_vector_size_attribute): Call
13203         lang_hooks.types.reconstruct_complex_type instead of
13204         reconstruct_complex_type.
13205         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
13206         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
13207         * langhooks.h (struct lang_hooks_for_types): Add
13208         reconstruct_complex_type hook.
13209         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
13210         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
13211
13212 2008-04-24  Richard Guenther  <rguenther@suse.de>
13213
13214         * c-common.h (check_builtin_function_arguments): Declare.
13215         * c-common.c (validate_nargs): New function.
13216         (check_builtin_function_arguments): Likewise.
13217         * c-typeck.c (build_function_call): Call
13218         check_builtin_function_arguments.
13219         * builtins.c (fold_builtin_classify): Remove error reporting code.
13220         (fold_builtin_unordered_cmp): Likewise.
13221         (fold_builtin_1): Likewise.
13222         (fold_builtin_n): Likewise.
13223
13224 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
13225
13226         PR tree-optimization/36008
13227         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
13228         the original op1, rather than delta by step.
13229
13230 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
13231             Sebastian Pop  <sebastian.pop@amd.com>
13232
13233         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
13234         eliminate_local_variables_stmt, eliminate_local_variables,
13235         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
13236         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
13237         of code delimited by two edges in the CFG.
13238         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
13239         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
13240         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate
13241         the case of parallelisation of reductions.
13242         (expr_invariant_in_region_p): New.
13243
13244         * tree-flow.h (gather_blocks_in_sese_region): Declared.
13245         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
13246
13247 2008-04-24  Ira Rosen  <irar@il.ibm.com>
13248             Richard Guenther  <rguenther@suse.de>
13249
13250         PR tree-optimization/36034
13251         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
13252         incapable of dealing with loads with gaps.
13253
13254 2008-04-24  Rafael Espindola  <espindola@google.com>
13255
13256         * tree-flow.h (vrp_evaluate_conditional): Change signature.
13257         * tree-ssa-propagate.c (fold_predicate_in): Update call to
13258         vrp_evaluate_conditional.
13259         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
13260         (vrp_evaluate_conditional): Split the cond argument.
13261         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
13262         (simplify_stmt_for_jump_threading): Update call to
13263         vrp_evaluate_conditional.
13264
13265 2008-04-24  Ira Rosen  <irar@il.ibm.com>
13266
13267         PR tree-optimization/35982
13268         * tree-vect-analyze.c (vect_check_interleaving): Check that the
13269         interleaved data-refs are of the same type.
13270
13271 2008-04-24  Danny Smith  <dannysmith@users.net>
13272
13273         * c-format.c (check_format_info_main): Use strncmp rather than a
13274         magic prefix to handle multichar length specs.
13275         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
13276         Don't prefix "I64" and "I32" with '\0'.
13277
13278 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
13279
13280         PR target/36015
13281         * config/i386/i386.c (init_cumulative_args): Don't pass anything
13282         in registers for -m32 only if stdarg_p (fntype).
13283
13284 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
13285
13286         PR rtl-optimization/36006
13287         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
13288         temp to op0 in order to avoid invalid rtx sharing.
13289
13290 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
13291
13292         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
13293         check TREE_INVARIANT.
13294         * tree-gimple.c (is_gimple_address): New.
13295         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
13296         * tree-gimple.h (is_gimple_address): New.
13297         * tree.h (decl_address_invariant_p): New.
13298         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
13299         (build_string): Likewise.
13300         (decl_address_invariant_p): New, from is_gimple_invariant_address.
13301         (tree_invariant_p_1): Likewise.
13302         (save_expr): Use it.
13303         (tree_invariant_p): New.
13304         (skip_simple_arithmetic): Use it.
13305         (stabilize_reference_1): Use it.
13306         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
13307         simplify.
13308         (build1_stat): Drop code to compute TREE_INVARIANT.
13309         (build2_stat): Drop code to compute TREE_INVARIANT.
13310         (build3_stat): Drop code to compute TREE_INVARIANT.
13311         (build4_stat): Drop code to compute TREE_INVARIANT.
13312         (build5_stat): Drop code to compute TREE_INVARIANT.
13313         (build7_stat): Drop code to compute TREE_INVARIANT.
13314         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
13315         * tree.h (struct tree_base): Remove invariant_flag.
13316         (TREE_INVARIANT): Remove.
13317         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
13318         (fold_builtin_expect): Check TREE_CONSTANT.
13319         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
13320         * c-tree.h (c_expr_to_decl): Drop third parameter.
13321         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
13322         (build_c_cast): Don't set TREE_INVARIANT.
13323         (pop_init_level): Don't set TREE_INVARIANT.
13324         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
13325         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
13326         TREE_CONSTANT.
13327         (gimplify_init_constructor): Don't set TREE_INVARIANT.
13328         (gimplify_addr_expr): Adjust comment.
13329         * tree-mudflap.c (mf_build_string):
13330         * print-tree.c (print_node): Don't print TREE_INVARIANT.
13331         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
13332         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
13333         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
13334         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
13335         * langhooks.h (struct lang_hooks): Drop third parameter from
13336         expr_to_decl.
13337
13338 2008-04-23  Richard Guenther  <rguenther@suse.de>
13339
13340         PR tree-optimization/27799
13341         PR tree-optimization/32921
13342         PR tree-optimization/32624
13343         * tree-ssa-structalias.c (merge_smts_into): Only merge the
13344         SMTs aliases and the tag itself into the solution.
13345         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
13346         merge the points-to solution back into the SMT aliases.
13347         (may_alias_p): Use alias_set_subset_of instead of
13348         aliases_conflict_p.  A pointer which points to
13349         memory with alias set zero may access any variable.
13350
13351 2008-04-23  Richard Guenther  <rguenther@suse.de>
13352
13353         * alias.c (alias_set_subset_of): Correctly handle asking
13354         if zero is a subset of an alias set with zero child.
13355         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
13356         (compute_flow_insensitive_aliasing): Correctly walk all
13357         pointers.  Do not unnecessarily union sets.
13358
13359 2008-04-23  Richard Guenther  <rguenther@suse.de>
13360
13361         PR middle-end/36021
13362         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
13363
13364 2008-04-22  Tomas Bily  <tbily@suse.cz>
13365
13366         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
13367         unreachable case.
13368         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
13369         NON_LVALUE_EXPR.
13370         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
13371         * tree-ssa-structalias.c (get_constraint_for): Likewise.
13372         * tree-inline.c (estimate_num_insns_1): Likewise.
13373         * varasm.c (const_hash_1, compare_constant, copy_constant)
13374         (compute_reloc_for_constant, output_addressed_constants): Likewise.
13375         * emit-rtl.c (component_ref_for_mem_expr)
13376         (set_mem_attributes_minus_bitpos): Likewise.
13377         * expr.c (highest_pow2_factor, expand_expr_real_1, )
13378         (is_aligning_offset): Likewise.
13379         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
13380         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
13381         * dojump.c (do_jump): Likewise.
13382         * builtins.c (get_pointer_alignment, get_memory_rtx)
13383         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
13384         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
13385
13386 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
13387
13388         PR rtl-optimization/36017
13389         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
13390         expanding the library call.
13391
13392 2008-04-22  Ian Lance Taylor  <iant@google.com>
13393
13394         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
13395         than size_in_bytes.
13396
13397 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
13398
13399         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
13400         of LR/CTR moves for Power6.
13401
13402 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
13403
13404         PR middle-end/36003
13405         * passes.c (init_optimization_passes): Remove
13406         pass_fast_rtl_byte_dce.
13407
13408 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
13409
13410         PR target/29096
13411         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
13412         builtin functions to generate faster code.
13413         (_mm_cvtpu16_ps): Ditto.
13414         (_mm_cvtpi32x2_ps): Ditto.
13415
13416 2008-04-22  Nick Clifton  <nickc@redhat.com>
13417
13418         * common.opt (ftree-loop-distribution): Add Optimization
13419         attribute.
13420
13421         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
13422         (frv_expand_builtin_va_start): Likewise.
13423
13424         * config/arm/arm.c (thumb_find_work_register): Fix location of
13425         argument register count.
13426
13427 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
13428
13429         Support scheduling for ColdFire V1 and V3 microarchitecture.
13430         Improve scheduling of multiplication instructions.
13431
13432         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
13433         (mac): New instruction attribute.
13434         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
13435         (m68k_sched_mac): New variable.
13436         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
13437         Handle cfv1 and cfv3.
13438         (max_insn_size): New static variable.
13439         (struct _sched_ib): New type.
13440         (sched_ib): New static variable.
13441         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
13442         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
13443         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
13444         Update.
13445         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
13446         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
13447         new variables.  Update.
13448         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
13449         Add modeling of cfv3 instruction buffer.  Update.
13450         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
13451         * config/m68k/m68k.h (TUNE_CFV3): New macro.
13452         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
13453         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
13454         a particular reservation applies to.
13455         (type2): Reorganize attribute values.  Rename alu to alu_reg,
13456         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
13457         to mul_l and mul_w.
13458         (cf_ib_*): Simplify description of instruction buffer.
13459         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
13460         (cf_mem): Split into cf_mem1 and cf_mem2.
13461         (cf_v2_move_??): Rename to cfv12_alu_??.
13462         (cf_v2_move_l_??): Rename to cfv12_omove_??.
13463         (cf_v2_mul_??): Remove reservations.
13464         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
13465         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
13466         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
13467         appropriate place.
13468         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
13469         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
13470         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
13471         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
13472         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
13473         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
13474         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
13475         expansions of the above reservations for instructions of sizes
13476         1, 2 and 3 words.
13477
13478 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
13479
13480         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
13481
13482 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
13483
13484         * coverage.c: Include tree-pass.h.
13485         (coverage_counter_alloc): Print da_file_name to the dump file.
13486
13487 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
13488
13489         * sbitmap.c (sbitmap_range_empty_p): New function.
13490         * sbitmap.h (sbitmap_range_empty_p): New function.
13491         * bitmap.h: Now includes obstack.h.
13492
13493 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
13494             Kenneth Zadeck  <zadeck@naturalbridge.com>
13495
13496         * dbgcnt.def (ra_byte_scan): Added.
13497         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
13498         when the last hit happens for a counter.
13499         * timevar.def (TV_DF_BYTE_LR): New variable.
13500         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
13501         * passes.c (pass_fast_rtl_byte_dce): New pass.
13502         * fwprop.c (update_df): Added mode to call df_ref_create.
13503         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
13504         DF_REF_EXTRACT_OFFSET.
13505         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
13506         DF_BYTE_LR_OUT, df_byte_lr): New macro.
13507         (df_mm): New enum.
13508         (df_ref_extract): Added mode field.
13509         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
13510         DF_REF_EXTRACT_OFFSET.
13511         (DF_REF_EXTRACT_MODE): New macro.
13512         (df_byte_lr_bb_info): New structure.
13513         (df_print_byte_regset, df_compute_accessed_bytes,
13514         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
13515         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
13516         df_byte_lr_simulate_uses,
13517         df_byte_lr_simulate_artificial_refs_at_top,
13518         df_byte_lr_simulate_artificial_refs_at_end,
13519         df_compute_accessed_bytes): New function.
13520         (df_ref_create): Add parameter.
13521         (df_byte_lr_get_bb_info): New inline function.
13522         * df-scan.c (df_ref_record, df_uses_record,
13523         df_ref_create_structure): Added mode parameter.
13524         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
13525         df_defs_record, df_uses_record, df_get_conditional_uses,
13526         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
13527         df_entry_block_defs_collect, df_exit_block_uses_collect):
13528         Added mode parameter to calls to df_ref_record, df_uses_record,
13529         df_ref_create_structure.
13530         (df_ref_equal_p, df_ref_compare): Added test for modes.
13531         (df_ref_create_structure): Added code to set mode.  Renamed
13532         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
13533         DF_REF_EXTRACT_OFFSET.
13534         * df-core.c (df_print_byte_regset): New function.
13535         * df-byte-scan.c: New file.
13536         * df-problems.c (df_rd_transfer_function): Removed unnecessary
13537         calls to BITMAP_FREE.
13538         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
13539         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
13540         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
13541         df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
13542         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
13543         df_byte_lr_local_compute, df_byte_lr_init,
13544         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
13545         df_byte_lr_transfer_function, df_byte_lr_free,
13546         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
13547         df_byte_lr_add_problem, df_byte_lr_simulate_defs,
13548         df_byte_lr_simulate_uses,
13549         df_byte_lr_simulate_artificial_refs_at_top,
13550         df_byte_lr_simulate_artificial_refs_at_end): New function.
13551         * dce.c (byte_dce_process_block): New function.
13552         (dce_process_block): au is now passed in rather than computed
13553         locally.  Changed loops that look at artificial defs to not look
13554         for conditional or partial ones, because there never are any.
13555         (fast_dce): Now is able to drive byte_dce_process_block or
13556         dce_process_block depending on the kind of dce being done.
13557         (rest_of_handle_fast_dce): Add parameter to fast_dce.
13558         (rest_of_handle_fast_byte_dce): New function.
13559         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
13560         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
13561
13562 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
13563
13564         PR fortran/35019
13565         * gcc.h: Added fortran options that take arguments to
13566         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
13567         macros.
13568
13569 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
13570
13571         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
13572         scalarization if on the LHS and not a full access.
13573
13574 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13575
13576         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
13577
13578 2008-04-18  Rafael Espindola  <espindola@google.com>
13579
13580         * tree-vrp.c (find_case_label_index): Fix the binary search.
13581         (find_case_label_range): New.
13582         (vrp_visit_switch_stmt): Use find_case_label_range.
13583         (simplify_switch_using_ranges): Use find_case_label_range.
13584
13585 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
13586
13587         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
13588         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
13589
13590 2008-04-18  Tom Tromey  <tromey@redhat.com>
13591
13592         PR libcpp/15500:
13593         * doc/cpp.texi (Implementation-defined behavior): Mention
13594         -finput-charset.
13595
13596 2008-04-18  Ian Lance Taylor  <iant@google.com>
13597
13598         * fold-const.c (pointer_may_wrap_p): New static function.
13599         (fold_comparison): Add another test for pointer overflow.  Use
13600         pointer_may_wrap_p to disable some false positives.
13601
13602 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
13603
13604         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
13605         (fname_as_string): Match updated cpp_interpret_string prototype.
13606         (fix_string_type): Support char16_t* and char32_t*.
13607         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
13608         derivative) nodes.  Register as builtin if C++0x.
13609         (c_parse_error): Support CPP_CHAR{16,32}.
13610         * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
13611         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
13612         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
13613         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
13614         CTI_CHAR32_ARRAY_TYPE>: New elements.
13615         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
13616         char32_type_node, signed_char32_type_node, char16_array_type_node,
13617         char32_array_type_node): New defines.
13618         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
13619         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
13620         (lex_string): Support CPP_STRING{16,32}, match updated
13621         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
13622         (lex_charconst): Support CPP_CHAR{16,32}.
13623         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
13624         and CPP_STRING{16,32}.
13625
13626 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
13627
13628         PR bootstrap/35457
13629         * aclocal.m4: Regenerate.
13630         * configure: Regenerate.
13631
13632 2008-04-18  Jan Hubicka  <jh@suse.cz>
13633
13634         * except.c (dw2_size_of_call_site_table,
13635         sjlj_size_of_call_site_table): Use vector API for call_site_record.
13636
13637         * cgraphbuild.c (build_cgraph_edges): Update.
13638         * tree-pass.h: Update comment.
13639         * final.c (leaf_function_p): Update.
13640         (leaf_renumber_regs): Update.
13641         (rest_of_clean_state): Update.
13642         * omp-low.c (expand_omp_parallel): Update.
13643         * ipa-reference.c (analyze_function): Update.
13644         * reorg.c (find_end_label): Update.
13645         (optimize_skip): Update.
13646         (fill_simple_delay_slots): Update.
13647         (fill_simple_delay_slots): Update.
13648         (make_return_insns): Update.
13649         (dbr_schedule): Update.
13650         * gimple-low.c (record_vars_into): Update.
13651         * cfgbuild.c (make_edges): Update.
13652         * function.c (assign_stack_local): Update.
13653         (assign_parm_adjust_stack_rtl): Update.
13654         (locate_and_pad_parm): Update.
13655         (allocate_struct_function): Do not initialize stack_alignment_needed
13656         and preferred_stack_boundary here.
13657         (stack_protect_prologue): Update.
13658         (stack_protect_epilogue): Update.
13659         (expand_function_start): Initialize stack_alignment_needed,
13660         preferred_stack_boundary and max_jumptable_ents.
13661         (expand_function_end): Update.
13662         (free_after_compilation): Do not NULLify epilogue_delay_list.
13663         * function.h (struct rtl_data): Add stack_protect_guard,
13664         stack_alignment_needed,
13665         preferred_stack_boundary, epilogue_delay_list.
13666         (struct function): Remove value_histograms, stack_alignment_needed,
13667         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
13668         last_label_uid,
13669         unexpanded_var_list, stack_protect_guard.
13670         (current_function_epilogue_delay_list): Remove.
13671         * ipa-type-escape.c (analyze_function): Update.
13672         * gimplify.c (pop_gimplify_context): Update comment.
13673         * calls.c (expand_call): Update.
13674         (emit_library_call_value_1): Update.
13675         * except.c (set_nothrow_function_flags): Update.
13676         * cfgexpand.c (get_decl_align_unit): Update.
13677         (create_stack_guard): Update.
13678         (estimated_stack_frame_size): Update.
13679         (expand_used_vars): Update.
13680         (tree_expand_cfg): Free histogram earliers, init expansion variables.
13681         * explow.c (allocate_dynamic_stack_space): Update.
13682         * tree-ssa-live.c (remove_unused_locals): Update.
13683         * varasm.c (mark_constant_pool): Update.
13684         * tree-inline.c (remap_decls): Update.
13685         (initialize_cfun): Update.
13686         (declare_return_variable): Update.
13687         (inline_forbidden_p): Update.
13688         (expand_call_inline): Update.
13689         (declare_inline_vars): Update.
13690         (tree_function_versioning): Update.
13691         * tree-flow.h (value_histograms): New.
13692         (VALUE_HISTOGRAMS): New macro.
13693         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
13694         last_label_uid.
13695         * tree-cfg.c (set_bb_for_stmt): Update.
13696         (replace_by_duplicate_decl): Update.
13697         (move_block_to_fn): Update.
13698         (new_label_mapper): Update.
13699         (dump_function_to_file): Update.
13700         * ipa-struct-reorg.c (build_data_structure): Update.
13701         * cfgrtl.c (print_rtl_with_bb): Update.
13702         * reload1.c (reload): Update.
13703         (reload): Update.
13704         * config/i386/i386.c (setup_incoming_varargs_64,
13705         ix86_compute_frame_layout): Update.
13706         * config/arc/arc.c (arc_output_function_epilogue): Update.
13707
13708 2008-04-18  Marius Strobl <marius@FreeBSD.org>
13709
13710         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
13711         for FreeBSD as well.
13712         * gthr-posix95.h: Likewise.
13713
13714 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
13715
13716         PR rtl-optimization/35838
13717         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
13718         out the byte offset of the first subreg.
13719
13720 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
13721
13722         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
13723         to split_ti instead of three separate calls with single member arrays.
13724         (subti3 splitter): Ditto.
13725         (adddi3 splitter): Ditto with split_di.
13726         (subdi3 splitter): Ditto.
13727         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
13728         two separate calls with single member arrays.  Swap match_dup
13729         operands 1 and 2 to better fit into the array.
13730         (negdi2 splitter): Ditto with split_di.
13731         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
13732         two separate calls with single member arrays.  Swap match_dup operands
13733         6 and 7 to better fit into the array.
13734
13735 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
13736
13737         * config/i386/i386.c (sse_builtin_type): New.
13738         (bdesc_sse_args): Likewise.
13739         (bdesc_sse_3arg): Removed.
13740         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
13741         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
13742         IX86_BUILTIN_ROUNDPS.
13743         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
13744         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
13745         IX86_BUILTIN_ROUNDPS.
13746         (ix86_expand_sse_4_operands_builtin): Removed.
13747         (ix86_expand_sse_operands_builtin): New.
13748         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
13749         and CODE_FOR_sse4_1_roundps.
13750         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
13751         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
13752
13753 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
13754
13755         PR target/35907
13756         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
13757         regs before frame pop when needed.  If use_backchain_to_restore_sp
13758         then load backchain into a temp reg to restore vr and vrsave.  Add
13759         code to restore vr after frame pop if possible.
13760
13761 2008-04-17  Richard Guenther  <rguenther@suse.de>
13762
13763         * tree-vn.c (expressions_equal_p): Do not check type
13764         equality or compatibility before calling operand_equal_p.
13765         * fold-const.c (operand_equal_p): Check equivalence of
13766         integer constants before bailing out due to signedness or
13767         precision differences.
13768         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
13769         spurious differences in type qualification.  Ignore types
13770         for COMPONENT_REFs at all.
13771
13772 2008-04-17  Christian Bruel  <christian.bruel@st.com>
13773
13774         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
13775         msw_skip comparison.
13776
13777 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
13778
13779         PR c/35739
13780         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
13781         reg type.
13782
13783         PR tree-optimization/35899
13784         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
13785         rather than TREE_OPERAND.
13786
13787 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
13788
13789         PR target/35944
13790         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
13791         temporary registers.  Change operand predicate to general_operand.
13792         (remainderxf3): Ditto.
13793
13794 2008-04-16  Richard Guenther  <rguenther@suse.de>
13795
13796         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
13797         * tree-affine.c (aff_combination_expand): Look through some
13798         conversions.
13799
13800 2008-04-15  Doug Kwan  <dougkwan@google.com>
13801
13802         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
13803         for hex printing.
13804         * tree-pretty-print.c (dump_generic_node): Ditto.
13805         * final.c (output_addr_const): Ditto.
13806         * dwarf2out.c (output_cfi): Ditto.
13807         * c-pretty-print.c (pp_c_integer_constant): Ditto.
13808         * print-rtl.c (print_rtx): Ditto.
13809         * print-tree.c (print_node_brief, print_node): Ditto.
13810         * c-common.c (match_case_to_enum_1): Ditto.
13811         * sched-vis.c (print_value): Ditto.
13812         * config/i386/i386.c (print_operand): Cast to long unsigned int
13813         for hex printing.
13814
13815 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
13816         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
13817         MS Windows VirtualProtect function.
13818
13819 2008-04-15  Jan Hubicka  <jh@suse.cz>
13820
13821         * gengtype.c (write_root): Param_is argument is OK.
13822         * expr.c (expand_expr_real_1): Update call of get_exception_*.
13823         * function.h: Include varray.h
13824         (rtl_eh): New stucture based on except.c one.
13825         (call_site_record): New forward declaration and vector type.
13826         * calls.c (emit_call_1): Do not call
13827         note_current_region_may_contain_throw.
13828         * except.c (eh_status): Remove cur_region, try_region since they are
13829         unused.
13830         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
13831         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
13832         sjlj_fc, sjlj_exit_after to rth_eh in function.h.
13833         Remove call_site_data_used, call_site_data_size.
13834         Turn call_site_record into vector in function.h.
13835         (note_current_region_may_contain_throw): Remove.
13836         (get_exception_pointer, get_exception_filter): Do not take struct
13837         function argument; update.
13838         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
13839         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
13840         build_post_landing_pads, dw2_build_landing_pads,
13841         sjlj_assign_call_site_values, sjlj_mark_call_sites,
13842         sjlj_emit_function_enter, sjlj_emit_function_enter,
13843         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
13844         sjlj_build_landing_pads, finish_eh_generation,
13845         remove_exception_handler_label, remove_eh_handler,
13846         maybe_remove_eh_handler, add_reachable_handler,
13847         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
13848         add_action_record, collect_one_action_chain, add_call_site,
13849         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
13850         sjlj_output_call_site_table, output_function_exception_table,
13851         * except.h (note_current_region_may_contain_throw): Remove
13852         (get_exception_pointer, get_exception_filter): Do not take struct
13853         function argument.
13854         * Makefile.in (GTFILES): Put varargs before struct function.
13855
13856 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
13857
13858         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
13859         punt for STRING_CST.
13860         (get_constraint_for): Deal with STRING_CST here instead.
13861
13862 2008-04-15  Richard Guenther  <rguenther@suse.de>
13863
13864         * tree-ssa-propagate.c (substitute_and_fold): Substitute
13865         statements in a basic-block with a backward walk.  Do not
13866         substitute into dead statements but instead remove those.
13867
13868 2008-04-15  Richard Guenther  <rguenther@suse.de>
13869
13870         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
13871         to zero, thus disable creation of SFTs.
13872
13873 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
13874
13875         * tree-predcom.c (suitable_reference_p): Return false if the
13876         reference can throw.
13877
13878 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
13879
13880         PR c/35751
13881         * c-decl.c (finish_decl): If extern or static var has variable
13882         size, set TREE_TYPE (decl) to error_mark_node.
13883
13884 2008-04-15  Rafael Espindola  <espindola@google.com>
13885
13886         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
13887         variable arg1.
13888
13889 2008-04-15  Richard Guenther  <rguenther@suse.de>
13890
13891         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
13892         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
13893         (visit_reference_op_load): Do walk vuse-vdef chains on
13894         vn_reference_lookup.
13895         (visit_reference_op_store): But do not here.
13896         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
13897         vn_reference_lookup.
13898         (vn_lookup_with_vuses): But do so here.
13899
13900 2008-04-14  Ian Lance Taylor  <iant@google.com>
13901
13902         * fold-const.c (fold_overflow_warning): Remove assertion.
13903
13904 2008-04-15  Ben Elliston  <bje@au.ibm.com>
13905
13906         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
13907         temp1 local variables.
13908
13909 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
13910
13911         PR target/35661
13912         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
13913         ".text.unlikely" section as executable.
13914
13915 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
13916
13917         * config/ia64/ia64.c (rtx_needs_barrier): Handle
13918         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
13919         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
13920         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
13921         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
13922         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
13923         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
13924
13925 2008-04-14  Ian Lance Taylor  <iant@google.com>
13926
13927         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
13928         * fold-const.c (fold_comparison): If appropriate, test
13929         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
13930         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
13931         reassociating a pointer type.
13932         * doc/invoke.texi (Optimize Options): Document that
13933         -fstrict-overflow applies to pointer wraparound.
13934
13935 2008-04-13  Jan Hubicka  <jh@suse.cz>
13936
13937         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
13938
13939 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
13940
13941         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
13942         we are going to "save the world".
13943
13944 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
13945
13946         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
13947         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
13948         operand 0 constraint, not "=".
13949
13950 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
13951
13952         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
13953
13954 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
13955
13956         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
13957         of size of positions_needed * CHAR_BIT.
13958
13959 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
13960
13961         PR middle-end/35897
13962         * dse.c (store_info): Change positions_needed to unsigned
13963         HOST_WIDE_INT.
13964         (lowpart_bitmask): New.
13965         (record_store): Cast to unsigned HOST_WIDE_INT for
13966         positions_needed.  Assert width <= size of positions_needed *
13967         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
13968         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
13969         lowpart_bitmask to set mask.
13970
13971 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
13972
13973         * config/bfin/constraints.md: New file.
13974         * config/bfin/bfin.md: Include it.
13975         (adddi3): Use satisfies_constraint functions instead of the old macros.
13976         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
13977         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
13978         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
13979         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
13980         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
13981         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
13982         EXTRA_CONSTRAINT): Delete.
13983         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
13984         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
13985         of the old macros.
13986         * config/bfin/bfin.c: Include "tm-constrs.h".
13987         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
13988         Use satisfies_constraint functions instead of the old macros.
13989         * doc/md.texi (Blackfin Constraints): Update file name reference.
13990
13991 2008-04-11  Richard Guenther  <rguenther@suse.de>
13992
13993         PR tree-optimization/35869
13994         * tree-vrp.c (execute_vrp): Move switch statement update after
13995         jump threading.  Schedule another cfg cleanup run.
13996
13997 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
13998
13999         PR c/35744
14000         * attribs.c (decl_attributes): Return early on errorneous node.
14001
14002 2008-04-10  Oleg Ryjkov  <olegr@google.com>
14003
14004         * tree.h (struct tree_base): Added a new flag default_def_flag.
14005         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
14006
14007 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
14008
14009         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
14010
14011 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14012
14013         PR target/35768
14014         * pa.md: Define mode iterator P.  Define mode attribute dwc.
14015         (dcacheflush): Update pattern to use iterator P and attribute dwc.
14016         (icacheflush): Likewise.
14017         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
14018         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
14019
14020 2008-04-11  Ben Elliston  <bje@au.ibm.com>
14021
14022         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
14023
14024 2008-04-10  Rafael Espindola  <espindola@google.com>
14025
14026         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
14027         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
14028         (extract_range_from_expr): The same.
14029
14030 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
14031
14032         * config/mips/mips.md (GPR2): New mode iterator.
14033         (seq): Add comment.
14034         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
14035         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
14036         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
14037         Rewrite these to take two modes, the mode of comparison and the
14038         mode of the destination.
14039         * config/mips/mips.c (mips_expand_scc): Instead of having
14040         paradoxical subreg as destination, expand "narrowing" scc if mode
14041         of comparison is SI and target is requested in DI mode.
14042         (mips_emit_int_order_test): Update comment.  Make mode of
14043         comparison match CMP0 rather than TARGET.  When creating inverse
14044         target use mode of TARGET.
14045
14046 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
14047
14048         * gcov-dump.c (tag_summary): Only print summaries for the first
14049         GCOV_COUNTERS_SUMMABLE counters.
14050
14051 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
14052
14053         * config/i386/i386.md (absneg): New code iterator.
14054         (absnegprefix): New code attribute.
14055         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
14056         patterns using absneg code iterator.
14057         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
14058         using absneg code iterator.
14059         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
14060         *neg<mode>2 patterns using absneg code iterator.
14061         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
14062         *negextendsfdf2 patterns using absneg code iterator.
14063         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
14064         *negextendsfxf2 patterns using absneg code iterator.
14065         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
14066         *negextendsfdf2 patterns using absneg code iterator.
14067         * config/i386/sse.md (<code><mode>2): Macroize expander from
14068         abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
14069
14070 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
14071
14072         * config/s390/s390.h: Remove the remains of the recent search
14073         & replace action of current_function_outgoing_args_size.
14074
14075 2008-04-10  Ira Rosen  <irar@il.ibm.com>
14076
14077         PR tree-optimization/35821
14078         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
14079         NEW_STMT_LIST is not NULL.
14080
14081 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
14082
14083         PR libstdc++/35597
14084         * toplev.c (process_options): Remove -ffunction-sections debugging
14085         warning.
14086
14087 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
14088
14089         PR middle-end/PR28690
14090         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
14091         than gen_rtx_fmt_ee to perform more canonicalizations.
14092
14093 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14094
14095         PR driver/35665
14096         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
14097
14098 2008-04-09  Richard Guenther  <rguenther@suse.de>
14099
14100         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
14101         (dump_function_to_file): Dump function arguments with types.
14102
14103 2008-04-08  Richard Guenther  <rguenther@suse.de>
14104
14105         * fold-const.c (fold_widened_comparison): Do not allow
14106         sign-changes that change the result.
14107
14108 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
14109
14110         PR target/35839
14111         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
14112         kinds of indirect references.
14113
14114 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
14115
14116         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
14117         GNU Fortran language string.
14118
14119 2008-04-08  Rafael Espindola  <espindola@google.com>
14120
14121         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
14122         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
14123         * tree.h (tree_call_nonnegative_warnv_p): New.
14124
14125 2008-04-08  Jan Hubicka  <jh@suse.cz>
14126
14127         * function.c (free_after_compilation): Clear out regno_reg_rtx
14128         pointer.
14129
14130 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
14131
14132         Revert
14133         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
14134
14135         PR middle-end/PR28690
14136         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
14137         same precedence as REG_POINTER and MEM_POINTER operands.
14138
14139 2008-04-08  Richard Guenther  <rguenther@suse.de>
14140
14141         PR middle-end/35834
14142         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
14143         for adding index to base.
14144
14145 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
14146
14147         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
14148         (MINGW_ENABLE_EXECUTE_STACK): New.
14149         (IN_LIBGCC2): For libgcc include windows.h file for
14150         function declarations.
14151
14152 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
14153
14154         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
14155         and tem2 if tem1 is not a REG or MULT.
14156
14157 2008-04-08  Jan Hubicka  <jh@suse.cz>
14158
14159         * function.h (incomming_args): Break out of struct function.
14160         (function_subsections): Break out of struct function.
14161         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
14162         return_rtx and hard_reg_initial_vals from struct function.
14163         Kill inl_max_label_num.
14164         (current_function_pops_args, current_function_args_info,
14165         current_function_args_size, current_function_args_size,
14166         current_function_pretend_args_size,
14167         current_function_outgoing_args_size,
14168         current_function_internal_arg_pointer, current_function_return_rtx):
14169         Kill compatibility accestor macros.
14170         * builtins.c (expand_builtin_apply_args_1): Update.
14171         (expand_builtin_next_arg): Update.
14172         * df-scan.c (df_get_call_refs): Update.
14173         * dbxout.c (dbxout_function_end): Update.
14174         * dwarf2out.c (dwarf2out_switch_text_section): Update.
14175         (output_line_info): Update.
14176         (secname_for_decl): Update.
14177         (dwarf2out_var_location): Update.
14178         * function.c (free_after_compilation): Update.
14179         (assign_parm_find_stack_rtl): Update.
14180         (assign_parms): Update.
14181         (expand_dummy_function_end): Update.
14182         (expand_function_end): Update.
14183         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
14184         (expand_call): Update.
14185         (emit_library_call_value_1): Update.
14186         (store_one_arg): Update.
14187         * varasm.c (initialize_cold_section_name): Update.
14188         (unlikely_text_section): Update.
14189         (unlikely_text_section_p): Update.
14190         (assemble_start_function): Update.
14191         (assemble_end_function): Update.
14192         (default_section_type_flags): Update.
14193         (switch_to_section): Update.
14194         * integrate.c (set_decl_abstract_flags): Update.
14195         (get_hard_reg_initial_val): Update.
14196         (has_hard_reg_initial_val): Update.
14197         (allocate_initial_values): Update.
14198         * resource.c (init_resource_info): Update.
14199         * config/alpha/alpha.c (NUM_ARGS): Update.
14200         (direct_return): Update.
14201         (alpha_va_start): Update.
14202         (alpha_sa_size): Update.
14203         (alpha_initial_elimination_offset): Update.
14204         (alpha_expand_prologue): Update.
14205         (alpha_start_function): Update.
14206         (alpha_expand_epilogue): Update.
14207         (unicosmk_initial_elimination_offset):
14208         * config/alpha/alpha.md (call expander): Update.
14209         * config/s390/s390.c (s390_register_info): Update.
14210         (s390_register_info): Update.
14211         (s390_frame_info): Update.
14212         (s390_initial_elimination_offset): Update.
14213         (s390_build_builtin_va_list): Update.
14214         (s390_va_start): Update.
14215         * config/spu/spu.c (direct_return): Update.
14216         (spu_expand_prologue): Update.
14217         (spu_initial_elimination_offset): Update.
14218         (spu_build_builtin_va_list): Update.
14219         (spu_va_start): Update.
14220         * config/sparc/sparc.c (sparc_init_modes): Update.
14221         (sparc_compute_frame_size): Update.
14222         (function_value): Update.
14223         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
14224         * config/i386/i386.md (return expander): Update.
14225         * config/i386/i386.c (ix86_va_start): Update.
14226         (ix86_can_use_return_insn_p): Update.
14227         (ix86_compute_frame_layout): Update.
14228         (ix86_expand_epilogue): Update.
14229         * config/sh/sh.c (output_stack_adjust): Update.
14230         (calc_live_regs): Update.
14231         (sh_expand_prologue): Update.
14232         (sh_builtin_saveregs): Update.
14233         (sh_va_start): Update.
14234         (initial_elimination_offset): Update.
14235         (sh_allocate_initial_value): Update.
14236         (sh_function_ok_for_sibcall): Update.
14237         (sh_get_pr_initial_val): Update.
14238         * config/sh/sh.md (return expander): Update.
14239         * config/avr/avr.c (frame_pointer_required_p): UPdate.
14240         * config/crx/crx.c (crx_compute_frame): UPdate.
14241         (crx_initial_elimination_offset): UPdate.
14242         * config/xtensa/xtensa.c (compute_frame_size): Update
14243         (xtensa_builtin_saveregs): Update.
14244         (xtensa_va_start): Update.
14245         (order_regs_for_local_alloc): Update.
14246         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
14247         (xstormy16_expand_builtin_va_start): Update.
14248         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
14249         * config/m68hc11/m68hc11.md (return expanders): Update.
14250         * config/m68hc11/m68hc11.c (expand_prologue): Update.
14251         (expand_epilogue): Update.
14252         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
14253         (cris_simple_epilogue): Update.
14254         (cris_expand_prologue): Update.
14255         (cris_expand_epilogue): Update.
14256         * config/iq2000/iq2000.c (iq2000_va_start): Update.
14257         (compute_frame_size): Update.
14258         * config/mt/mt.c (mt_compute_frame_size): Update.
14259         * config/mn10300/mn10300.c (expand_prologue): Update.
14260         (expand_epilogue): Update.
14261         (initial_offset): Update.
14262         (mn10300_builtin_saveregs):
14263         * config/mn10300/mn10300.md (return expander): Update.
14264         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
14265         (ia64_initial_elimination_offset): Update.
14266         (ia64_initial_elimination_offset): Update.
14267         (ia64_expand_prologue): Update.
14268         * config/m68k/m68k.md (return expander): Update.
14269         * config/rs6000/rs6000.c (rs6000_va_start): Update.
14270         (rs6000_stack_info): Update.
14271         * config/mcore/mcore.c (layout_mcore_frame): Update.
14272         (mcore_expand_prolog): Update.
14273         * config/arc/arc.c (arc_compute_frame_size): Update.
14274         * config/score/score3.c (score3_compute_frame_size): Update.
14275         * config/score/score7.c (score7_compute_frame_size): Update.
14276         * config/arm/arm.c (use_return_insn): Update.
14277         (thumb_find_work_register): Update.
14278         (arm_compute_save_reg_mask): Update.
14279         (arm_output_function_prologue): Update.
14280         (arm_output_epilogue): Update.
14281         (arm_size_return_regs): Update.
14282         (arm_get_frame_offsets): Update.
14283         (arm_expand_prologue): Update.
14284         (thumb_exit): Update.
14285         (thumb_unexpanded_epilogue): Update.
14286         (thumb1_output_function_prologue): Update.
14287         * config/pa/pa.md (return expander): Update.
14288         * config/pa/pa.c (compute_frame_size): Update.
14289         (hppa_builtin_saveregs): Update.
14290         * config/mips/mips.c (mips_va_start): Update.
14291         (mips16_build_function_stub): Update.
14292         (mips_compute_frame_info): Update.
14293         (mips_restore_gp): Update.
14294         (mips_output_function_prologue): Update.
14295         (mips_expand_prologue): Update.
14296         * config/v850/v850.c (compute_frame_size): Update.
14297         (expand_prologue): * config/mmix/mmix.c (along): update.
14298         (mmix_initial_elimination_offset): update.
14299         (mmix_reorg): update.
14300         (mmix_use_simple_return): update.
14301         (mmix_expand_prologue): update.
14302         (mmix_expand_epilogue): Update.
14303         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
14304         (emit_link_insn): Update.
14305
14306 2008-04-08  Anatoly Sokolov <aesok@post.ru>
14307
14308         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
14309         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
14310         instructions.
14311         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
14312         atmega103 device.
14313
14314 2008-04-07  Jan Hubicka  <jh@suse.cz>
14315
14316         * function.h (rtl): Rename to x_rtl.
14317         (crtl): New define.
14318         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
14319         frame_offset, stack_check_probe_note, arg_pointer_save_area,
14320         used_temp_slots avail_temp_slots, temp_slot_level,
14321         nonlocal_goto_handler_labels): Update accesstors.
14322         (rtl): New global variable.
14323         (struct function): Move some fileds to rtl_data.
14324         (get_arg_pointer_save_area): Update prototype.
14325         * builtins.c (expand_builtin_setjmp_receiver): Update call of
14326         get_arg_pointer_save_area.
14327         * expr.c (init_expr): Update
14328         * function.c (get_frame_size): Update
14329         (assign_stack_local): Update
14330         (expand_function_end): Update.
14331         (get_art_pointer_save_area): Update
14332         * function.h
14333         * emit-rtl.c (rtl): Declare.
14334         (regno_reg_rtx): Declare.
14335         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
14336         Update.
14337         (gen_reg_rtx): Update.
14338         * varasm.c (n_deferred_constatns): Update accestor.
14339         (init_varasm_status): Do not allocate varasm_status.
14340         (force_const_mem, get_pool_size, output_constant_pool): Update.
14341         * stmt.c (force_label_rtx): Do not use x_ prefixes.
14342         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
14343         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
14344         * sparc/sparc.h (INIT_EXPANDERS): Update.
14345         * ia64/ia64.h (INIT_EXPANDERS): Update.
14346
14347 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
14348
14349         * reload.c (push_secondary_reload): Add missing break to for loop.
14350
14351 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
14352
14353         PR middle-end/PR28690
14354         * rtlanal.c: Update copyright years.
14355         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
14356         as REG_POINTER and MEM_POINTER operands.
14357         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
14358         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
14359         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
14360         * gcse.c: Update copyright years.
14361         (pre_delete): Call gen_reg_rtx_and_attrs.
14362         (hoist_code): Likewise.
14363         (build_store_vectors): Likewise.
14364         (delete_store): Likewise.
14365         * loop-invariant.c (move_invariant_reg): Likewise.
14366         Update copyright years.
14367
14368 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
14369
14370         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
14371         control string instead of quoted.
14372
14373 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
14374
14375         * doc/rtl.texi: Rewrite of subreg section.
14376
14377 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
14378
14379         PR/35842
14380         * config/i386/i386.c (legitimize_pic_address): Add treating
14381         of dllimport SYM_REF's.
14382         (legitimize_dllimport_symbol): Add prototype.
14383
14384 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
14385
14386         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
14387         reference in constructor with non self-referential type.
14388
14389 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
14390
14391         Removal of Return with Depressed Stack Pointer support
14392         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
14393         (ECF_SP_DEPRESSED): Likewise.
14394         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
14395         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
14396         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
14397         (expand_call): Do not test ECF_SP_DEPRESSED.
14398         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
14399         * function.c (keep_stack_depressed): Delete.
14400         (handle_epilogue_set): Likewise.
14401         (update_epilogue_consts): Likewise.
14402         (emit_equiv_load): Likewise.
14403         (thread_prologue_and_epilogue_insns): Remove support for Return with
14404         Depressed Stack Pointer.
14405         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
14406
14407 2008-04-06  Richard Guenther  <rguenther@suse.de>
14408
14409         PR tree-optimization/35400
14410         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
14411         information from SSA_NAMEs.
14412
14413 2008-04-06  Anatoly Sokolov <aesok@post.ru>
14414
14415         * config/avr/avr.h (avr_mega_p): Remove declaration.
14416         (AVR_MEGA): Remove macro.
14417         * config/avr/avr.c (avr_mega_p): Remove variable.
14418         (avr_override_options): Remove inicializion of avr_mega_p.
14419         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
14420         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
14421         (avr_jump_mode): (Ditto.).
14422         (avr_output_progmem_section_asm_op): (Ditto.).
14423         (avr_asm_init_sections): (Ditto.).
14424         (avr_asm_init_sections): (Ditto.).
14425         (avr_rtx_costs): (Ditto.).
14426         * config/avr/avr.md: (Ditto.).
14427         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
14428         '__AVR_MEGA__'.
14429
14430 2008-04-06  Richard Guenther  <rguenther@suse.de>
14431
14432         PR tree-optimization/35842
14433         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
14434         is_gimple_invariant_address.
14435
14436 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
14437
14438         * gcc.c (default_compilers): Sync Fortran extensions list with
14439         that in fortran/lang-specs.h.
14440         * doc/invoke.texi: Likewise.
14441         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
14442         * dwarf2out.c (gen_compile_unit_die): Likewise.
14443
14444 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
14445
14446         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
14447
14448 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
14449
14450         PR target/12329
14451         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
14452         attribute is used for nested functions.
14453
14454 2008-04-05  Jan Hubicka  <jh@suse.cz>
14455
14456         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
14457
14458         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
14459         letter argument.
14460         (dump_files): Update.
14461         (enable_rtl_dump_file): Do not accept letter argument.
14462         * tree-pass.h (dump_file_info): Remove letter argument.
14463         * toplev.c (decode_d_option): Update -da handling.
14464         * toplev.h (enable_rtl_dump_file): Update prototype.
14465         * passes.c (register_one_dump_file): Do not accept IPA argument; work
14466         it out based on pass type.
14467         (register_dump_files_1): Likewise.
14468         (init_optimization_passes): Update register_one_dump_file calls.
14469         (execute_one_pass): Sanity check that IPA passes are called at IPA
14470         level and RTL passes at RTL level.
14471         (execute_pass_list): IPA pass can not be after or subpass of
14472         GIMPLE/RTL pass.
14473         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
14474         disallov RTL subpasses of IPA subpasses.
14475
14476 2008-04-05  Ben Elliston  <bje@au.ibm.com>
14477
14478         * tree-cfg.c (need_fake_edge_p): Return false for calls to
14479         builtins that return exactly once and do not throw. Cache call to
14480         call_expr_flags.
14481
14482 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
14483
14484         PR rtl-optimization/34916
14485         PR middle-end/35519
14486         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
14487         between instruction pairs.
14488
14489 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
14490
14491         * doc/invoke.texi: Document -mbitops for SH.
14492         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
14493         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
14494         * config/sh/sh.c (print_operand): Add %t operand code.
14495         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
14496         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
14497         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
14498         (extendqihi2): Likewise.
14499         (movqi_i): Likewise.
14500         (insv): Use bset, bclr and bst instructions for SH2A if possible.
14501         (extv): Use bld instruction for SH2A if possible.
14502         (extzv): Likewise.
14503         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
14504         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
14505         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
14506         (bset.b, bclr.b): Define peepholes.
14507         * config/sh/sh.opt (mbitops): New option.
14508
14509 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
14510
14511         PR target/35620
14512         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
14513         and view convert expression.
14514
14515 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
14516
14517         PR target/35364
14518         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
14519
14520 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
14521
14522         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
14523
14524         * config/i386/cpuid.h (bit_AES): New.
14525         (bit_PCLMUL): Likewise.
14526
14527         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
14528         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
14529         SSE2 if AES or PCLMUL is enabled.
14530         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
14531         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
14532         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
14533         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
14534         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
14535         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
14536         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
14537         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
14538         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
14539         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
14540         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
14541         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
14542         __builtin_ia32_aeskeygenassist128 and
14543         __builtin_ia32_pclmulqdq128.
14544         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
14545         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
14546         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
14547
14548         * config/i386/i386.h (TARGET_AES): New.
14549         (TARGET_PCLMUL): Likewise.
14550         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
14551
14552         * config/i386/i386.md (UNSPEC_AESENC): New.
14553         (UNSPEC_AESENCLAST): Likewise.
14554         (UNSPEC_AESDEC): Likewise.
14555         (UNSPEC_AESDECLAST): Likewise.
14556         (UNSPEC_AESIMC): Likewise.
14557         (UNSPEC_AESKEYGENASSIST): Likewise.
14558         (UNSPEC_PCLMUL): Likewise.
14559
14560         * config/i386/i386.opt (maes): New.
14561         (mpclmul): Likewise.
14562
14563         * config/i386/sse.md (aesenc): New pattern.
14564         (aesenclast): Likewise.
14565         (aesdec): Likewise.
14566         (aesdeclast): Likewise.
14567         (aesimc): Likewise.
14568         (aeskeygenassist): Likewise.
14569         (pclmulqdq): Likewise.
14570
14571         * config/i386/wmmintrin.h: New.
14572
14573         * doc/extend.texi: Document AES and PCLMUL built-in function.
14574
14575         * doc/invoke.texi: Document -maes and -mpclmul.
14576
14577 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
14578
14579         * function.c (free_after_parsing): Replace with
14580         cxx_push_function_context from C++ front-end.
14581         (allocate_struct_function): Don't call langhook.
14582         * langhooks.h (struct lang_hooks_for_functions): Delete.
14583         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
14584         member "function".
14585         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
14586         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
14587         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
14588         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
14589         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
14590         remove LANG_HOOKS_FUNCTION_INITIALIZER.
14591         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
14592
14593         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
14594         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
14595
14596 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
14597
14598         PR c/35440
14599         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
14600         for all types.
14601
14602 2008-04-04  Richard Guenther  <rguenther@suse.de>
14603
14604         PR middle-end/35823
14605         * fold-const.c (optimize_minmax_comparison): Use the correct
14606         type for the constant in the simplified comparison.
14607
14608 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
14609
14610         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
14611         Pass L2 size as "--param l2-cache-size" to the compiler.
14612         (decode_l2_cache): New function to decode L2 cache parameters using
14613         0x8000006 extended cpuid function.
14614         (detect_caches_amd): Determine parameters of L2 cache using
14615         decode_l2_caches function.
14616         (decode_caches_intel): Decode L2 cache parameters.
14617         (detect_caches_intel): Determine L2 cache parameters using
14618         decode_caches_intel and decode_l2_caches functions.
14619
14620 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
14621
14622         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
14623         secondary input reload for subword loads from the constant pool.
14624
14625 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
14626
14627         PR target/35713
14628         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
14629           constants of the appropriate size for runtime calculations.
14630
14631         PR c/35712
14632         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
14633           decimal-float literal constant zero.
14634
14635 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
14636
14637         PR c/35738
14638         * c-parser.c (c_parser_omp_atomic): Call
14639         default_function_array_conversion on the RHS.
14640
14641         PR middle-end/35818
14642         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
14643         call is_variable_sized if decl has incomplete type.
14644
14645 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
14646
14647         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
14648
14649 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
14650
14651         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
14652         iterators.
14653         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
14654         (sgt<u>): Merge sgt and sgtu into new expander.
14655         (sgt, sgtu): Remove expanders.
14656         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
14657         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
14658         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
14659         *sgtu_<mode>_mips16 into new pattern.
14660         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
14661         (sge<u>): Merge sge and sgeu into new expander.
14662         (sge, sgeu): Remove expanders.
14663         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
14664         new pattern.
14665         (*sge_<mode>, second *sge_<mode>): Remove patterns.
14666         (slt<u>): Merge slt and sltu into new expander.
14667         (slt, sltu): Remove expanders.
14668         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
14669         (*slt_<mode>, *sltu_<mode>): Remove patterns.
14670         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
14671         *sltu_<mode>_mips16 into new pattern.
14672         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
14673         (sle<u>): Merge sle and sleu into new expander.
14674         (sle, sleu): Remove expanders.
14675         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
14676         (*sle_<mode>, *sleu_<mode>): Remove patterns.
14677         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
14678         *sleu_<mode>_mips16 into new pattern.
14679         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
14680
14681 2008-04-03  Jan Hubicka  <jh@suse.cz>
14682
14683         PR tree-optimization/35795
14684         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
14685         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
14686         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
14687         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
14688         * score/score3.c (score3_output_mi_thunk): Likewise.
14689         * score/score7.c (score7_output_mi_thunk): Likewise.
14690         * mips/mips.c (mips_output_mi_thunk): Likewise.
14691
14692 2008-04-03  Richard Guenther  <rguenther@suse.de>
14693
14694         * tree-vrp.c (extract_range_from_unary_expr): Handle all
14695         conversions.  Simplify code.
14696
14697 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
14698
14699         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
14700
14701 2008-04-03  Tom Tromey  <tromey@redhat.com>
14702             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14703
14704         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
14705         * config/bfin/t-bfin-linux (generated_files): Add
14706         linux-sysroot-suffix.h.
14707         * doc/install.texi (Prerequisites): Require make 3.80.
14708         * doc/sourcebuild.texi (Front End Directory): Document new
14709         variable.
14710         * Makefile.in (generated_files): New variable.
14711         (ALL_HOST_OBJS): New variable.
14712         ($(ALL_HOST_OBJS)): New target.
14713
14714 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
14715
14716         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
14717         (remap_block): Call id->transform_lang_insert_block instead
14718         of langhook.
14719         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
14720         Set id.transform_lang_insert_block to NULL.
14721         (clone_body): Move to cp/optimize.c
14722         * tree-inline.h (struct copy_body_data): Change
14723         transform_lang_insert_block to function pointer.
14724         (copy_generic_body, copy_decl_no_change): Export.
14725         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
14726         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
14727         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
14728
14729         * c-tree.h (insert_block): Kill.
14730         * c-decl.c (insert_block): Kill.
14731
14732 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
14733
14734         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
14735         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
14736         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
14737         argument.
14738         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
14739         argument, call {push,pop}_function_context from here.
14740         * c-parser.c: Use c_{push,pop}_function_context.
14741
14742         * function.c (push_function_context_to): Move meat ...
14743         (push_function_context): ... here.  Simplify.
14744         * function.c (pop_function_context_from): Move meat ...
14745         (pop_function_context): ... here.  Simplify.
14746         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
14747         leave_nested).
14748         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
14749         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
14750         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
14751         * tree.h (push_function_context_to, pop_function_context_from): Remove.
14752
14753 2008-04-03  Ben Elliston  <bje@au.ibm.com>
14754
14755         * expmed.c (extract_force_align_mem_bit_field): Remove.
14756
14757 2008-04-03  Richard Guenther  <rguenther@suse.de>
14758
14759         PR middle-end/35800
14760         * expr.h (try_casesi): Adjust prototype.
14761         * expr.c (try_casesi): Take fallback label as extra parameter.
14762         Use that for gen_casesi if default_label is NULL.
14763         * stmt.c (expand_case): Pass fallback label to try_casesi,
14764         make sure to fill gaps with a fallback label if default_label
14765         is not present.
14766
14767 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
14768
14769         PR target/35801
14770         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
14771
14772 2008-04-03  Ben Elliston  <bje@au.ibm.com>
14773
14774         * expmed.c (extract_split_bit_field): Remove if (0) code.
14775         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
14776         (do_ds_constraint): Likewise.
14777
14778 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
14779
14780         * doc/cppopts.texi (-dU): Document.
14781         * c-common.h (flag_dump_macros): Update comment.
14782         * c-opts.c (handle_OPT_d): Handle -dU.
14783         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
14784         dump_queued_macros, cb_used_define, cb_used_undef): New.
14785         (init_pp_output): Handle -dU.
14786         (cb_line_change): Call dump_queued_macros.
14787         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
14788
14789 2008-04-02  Anatoly Sokolov <aesok@post.ru>
14790
14791         * config/avr/predicates.md (io_address_operand): New predicate.
14792         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
14793         * config/avr/avr.c (avr_io_address_p): Remove function.
14794         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
14795         'avr_io_address_p' function.
14796         (out_movhi_r_mr): (Ditto.).
14797         (out_movqi_mr_r): (Ditto.).
14798         (out_movhi_mr_r): (Ditto.).
14799         (avr_address_cost): (Ditto.).
14800
14801 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
14802
14803         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
14804         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
14805         in 32bit mode when XMM registers are available to avoid store
14806         forwarding stalls.
14807         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
14808         corresponding post-reload splitters.
14809
14810 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
14811
14812         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
14813         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
14814         __builtin_ia32_roundss.
14815         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
14816         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
14817         __builtin_ia32_roundss.
14818         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
14819         IX86_BUILTIN_SHUFPD here.
14820
14821 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
14822
14823         * config/i386/i386.md (plogic): New.
14824         (plogicprefix): Likewise.
14825
14826         * config/i386/mmx.md (mmx_<code><mode>3): New.
14827         (mmx_and<mode>3): Removed.
14828         (mmx_ior<mode>3): Likewise.
14829         (mmx_xor<mode>3): Likewise.
14830
14831         * config/i386/sse.md (<code><mode>3): New.
14832         (*<code><mode>3): Likewise.
14833         (*<code><mode>3): Likewise.
14834         (<code><mode>3): Likewise.
14835         (*sse_<code><mode>3): Likewise.
14836         (*sse2_<code><mode>3): Likewise.
14837         (<code>tf3): Likewise.
14838         (*<code>tf3): Likewise.
14839         (and<mode>3): Likewise.
14840         (*and<mode>3): Likewise.
14841         (ior<mode>3): Removed.
14842         (*ior<mode>3): Likewise.
14843         (xor<mode>3): Likewise.
14844         (*xor<mode>3): Likewise.
14845         (*and<mode>3): Likewise.
14846         (*ior<mode>3): Likewise.
14847         (*xor<mode>3): Likewise.
14848         (and<mode>3): Likewise.
14849         (*sse_and<mode>3): Likewise.
14850         (*sse2_and<mode>3): Likewise.
14851         (andtf3): Likewise.
14852         (*andtf3): Likewise.
14853         (ior<mode>3): Likewise.
14854         (*sse_ior<mode>3): Likewise.
14855         (*sse2_ior<mode>3): Likewise.
14856         (iortf3): Likewise.
14857         (*iortf3): Likewise.
14858         (xor<mode>3): Likewise.
14859         (*sse_xor<mode>3): Likewise.
14860         (*sse2_xor<mode>3): Likewise.
14861         (xortf3): Likewise.
14862         (*xortf3): Likewise.
14863
14864 2008-04-02  Richard Guenther  <rguenther@suse.de>
14865
14866         PR tree-optimization/14495
14867         PR tree-optimization/34793
14868         * tree-vrp.c (struct switch_update): New structure.
14869         (to_remove_edges, to_update_switch_stmts): New VECs.
14870         (simplify_switch_using_ranges): New function.  Remove not taken
14871         case labels and edges.
14872         (simplify_stmt_using_ranges): Call it.
14873         (identify_jump_threads): Mark edges we have queued for removal
14874         so we don't thread them.
14875         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
14876         case label vector.
14877         * tree-cfg.c (group_case_labels): Deal with missing default label.
14878         (tree_verify_flow_info): Allow missing default label.
14879         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
14880         (emit_case_nodes): Likewise.
14881         (expand_case): Do not rely on the default label to be present.
14882         * expr.c (try_casesi): Deal with NULL default_label.
14883         (do_tablejump): Likewise.
14884
14885 2008-04-02  Richard Guenther  <rguenther@suse.de>
14886
14887         PR tree-optimization/14495
14888         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
14889         SWITCH_EXPR here ...
14890         (vrp_visit_switch_stmt): ... but here (new function).
14891         (find_case_label_index): New helper function.
14892         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
14893
14894 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
14895
14896         * fwprop.c: Fix ISO-C99ism.
14897
14898 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
14899
14900         PR bootstrap/35752
14901         * Makefile.in (objdir): Set it here.
14902         * configure.ac: Not here.  Find dynamic linker characteristics.
14903         * exec-tool.in: Use them.
14904         * aclocal.m4: Regenerate.
14905         * configure: Regenerate.
14906
14907 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
14908
14909         * expr.c (expand_var): Delete it.
14910         * expr.h (expand_var): Delete prototype.
14911         * function.c (expand_function_start): Use expand_decl instead.
14912         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
14913         langhook.
14914
14915 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
14916
14917         PR rtl-optimization/35542
14918         * fwprop.c (forward_propagate_and_simplify): Replace
14919         loc_reg_mentioned_in_p with reg_mentioned_p.
14920
14921 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
14922
14923         PR rtl-optimization/35281
14924         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
14925         (propagate_rtx_1): Handle PR_HANDLE_MEM.
14926         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
14927         (varying_mem_p): Move above propagate_rtx.
14928         (all_uses_available_at): Do not check MEMs.
14929
14930 2008-04-02  Rafael Espindola  <espindola@google.com>
14931
14932         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
14933         (register_edge_assert_for_2): Split the cond argument.
14934         (register_edge_assert_for_1): Adjust for the change in
14935         register_edge_assert_for_2.
14936         (register_edge_assert_for): Split the cond argument.
14937         (find_switch_asserts): Adjust for the change in
14938         register_edge_assert_for.
14939
14940 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
14941
14942         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
14943         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
14944         offsets for 64-bit mingw.
14945         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
14946         abi for x86_64-pc-mingw.
14947
14948 2008-04-02  Richard Guenther  <rguenther@suse.de>
14949
14950         * tree-vrp.c (extract_range_from_assert): Make sure to not
14951         produce range min/max with TREE_OVERFOW set.
14952         If merging a anti-range and a range keep the anti-range if
14953         the range covers all values of the type.
14954         (register_edge_assert_for_2): Only allow sign-changing
14955         conversions in detecting canonical range checks.  Also
14956         register an assert for the unsigned name if useful.
14957
14958         PR tree-optimization/35787
14959         * tree-vrp.c (vrp_val_max): New function.
14960         (vrp_val_min): Likewise.
14961         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
14962         (vrp_val_is_min): Likewise.
14963         (supports_overflow_infinity): Use vrp_val_{min,max}.
14964         (negative_overflow_infinity): Likewise.
14965         (positive_overflow_infinity): Likewise.
14966         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
14967         (is_positive_overflow_infinity): Likewise.
14968         (is_overflow_infinity): Likewise.
14969         (avoid_overflow_infinity): Use vrp_val_{min,max} and
14970         vrp_val_is_{min,max}.
14971         (set_and_canonicalize_value_range): Canonicalize anti-ranges
14972         to ranges if possible.  Avoid empty ranges.
14973
14974 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14975
14976         PR middle-end/35705
14977         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
14978         the expression is a function address.
14979
14980 2008-04-01  George Helffrich  <george@gcc.gnu.org>
14981
14982         PR fortran/35154, fortran/23057
14983         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
14984         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
14985         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
14986         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
14987         in common.
14988         (dbxout_syms): Check for COMMON-based symbol and wrap in
14989         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
14990         in bracket for efficiency.
14991
14992         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
14993         using DW_TAG_common_block + member offset.
14994         (add_pubname_string): New function.
14995         (dw_expand_expr): New function to find block name and offset for
14996         COMMON var.
14997         (common_check): New function to check whether symbol in Fortran COMMON.
14998         (gen_variable_die): If COMMON, use DW_TAG_common_block.
14999
15000 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
15001
15002         PR c/35436
15003         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
15004
15005 2008-04-02  Ben Elliston  <bje@au.ibm.com>
15006
15007         * config/v850/v850.md (casesi): Remove if (0) code.
15008         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
15009         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
15010
15011 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
15012
15013         * config/i386/i386.md (rex64suffix): New mode attribute.
15014         (floathi<mode>2): Disable expander for SSE math.
15015         (*floathi<mode>2_1): New insn insn_and_split pattern.
15016         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
15017         corresponding post-reload splitters.
15018         (*floathi<mode>2_i387): New macroized insn pattern.
15019         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
15020         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
15021         insn_and_split pattern.
15022         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
15023         New macroized instruction patterns and corresponding post-reload
15024         splitters.
15025         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
15026         and corresponding post-reload splitters.
15027         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
15028         New macroized instruction patterns.
15029         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
15030         macroized instruction patterns and corresponding post-reload splitters.
15031         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
15032         corresponding post-reload splitters.
15033         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
15034         New macroized instruction patterns.
15035         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
15036         corresponding post-reload splitters.
15037         (*floatsi<mode>2_i387): New macroized instruction patterns.
15038
15039 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
15040
15041         * config/i386/i386.md (smaxmin): New.
15042         (umaxmin): Likewise.
15043         (maxminiprefix): Likewise.
15044         (maxminfprefix): Likewise.
15045         (<code><mode>3): Likewise.
15046         (smin<mode>3): Removed.
15047         (smax<mode>3): Likewise.
15048
15049         * config/i386/mmx.md (mmx_<code>v2sf3): New.
15050         (mmx_<code>v4hi3): Likewise.
15051         (mmx_<code>v8qi3): Likewise.
15052         (mmx_smaxv2sf3): Removed.
15053         (mmx_sminv2sf3): Likewise.
15054         (mmx_umaxv8qi3): Likewise.
15055         (mmx_smaxv4hi3): Likewise.
15056         (mmx_uminv8qi3): Likewise.
15057         (mmx_sminv4hi3): Likewise.
15058
15059         * config/i386/sse.md (<addsub><mode>3): New.
15060         (*<addsub><mode>3): Likewise.
15061         (<sse>_vm<addsub><mode>3): Likewise.
15062         (<maxmin><mode>3): Likewise.
15063         (*<maxmin><mode>3_finite): Likewise.
15064         (*<maxmin><mode>3): Likewise.
15065         (<sse>_vm<maxmin><mode>3): Likewise.
15066         (sse3_h<addsub>v4sf3): Likewise.
15067         (sse3_h<addsub>v2df3): Likewise.
15068         (<maxmin>v16qi3): Likewise.
15069         (*<maxmin>v16qi3): Likewise.
15070         (<maxmin>v8hi3): Likewise.
15071         (*<maxmin>v8hi3): Likewise.
15072         (*sse4_1_<maxmin><mode>3): Likewise.
15073         (*sse4_1_<maxmin><mode>3): Likewise.
15074         (add<mode>3): Removed.
15075         (*add<mode>3): Likewise.
15076         (<sse>_vmadd<mode>3): Likewise.
15077         (sub<mode>3): Likewise.
15078         (*sub<mode>3): Likewise.
15079         (<sse>_vmsub<mode>3): Likewise.
15080         (smin<mode>3): Likewise.
15081         (*smin<mode>3_finite): Likewise.
15082         (*smin<mode>3): Likewise.
15083         (<sse>_vmsmin<mode>3): Likewise.
15084         (smax<mode>3): Likewise.
15085         (*smax<mode>3_finite): Likewise.
15086         (*smax<mode>3): Likewise.
15087         (<sse>_vmsmax<mode>3): Likewise.
15088         (sse3_haddv4sf3): Likewise.
15089         (sse3_haddv2df3): Likewise.
15090         (sse3_hsubv4sf3): Likewise.
15091         (sse3_hsubv2df3): Likewise.
15092         (umaxv16qi3): Likewise.
15093         (*umaxv16qi3): Likewise.
15094         (smaxv8hi3): Likewise.
15095         (*smaxv8hi3): Likewise.
15096         (*sse4_1_smax<mode>3): Likewise.
15097         (*sse4_1_umax<mode>3): Likewise.
15098         (uminv16qi3): Likewise.
15099         (*uminv16qi3): Likewise.
15100         (sminv8hi3): Likewise.
15101         (*sminv8hi3): Likewise.
15102         (*sse4_1_smin<mode>3): Likewise.
15103         (*sse4_1_umin<mode>3): Likewise.
15104
15105 2008-04-01  Rafael Espindola  <espindola@google.com>
15106
15107         * tree-cfg.c (verify_expr): remove in_phi.
15108         (verify_stmt): Don't call walk_tree with verify_expr. Use
15109         is_gimple_min_invariant instead of is_gimple_val.
15110
15111 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
15112
15113         * doc/include/gpl_v3.texi: Update for manpage generation.
15114         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
15115         gpl.texi.
15116         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
15117         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
15118         gpl_v3.texi instead of gpl.texi.
15119         (gpl.pod): New.
15120
15121 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
15122
15123         PR pch/13675
15124         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
15125
15126 2008-04-01  Rafael Espindola  <espindola@google.com>
15127
15128         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
15129         (extract_code_and_val_from_cond): Use
15130         extract_code_and_val_from_cond_with_ops.
15131
15132 2008-04-01  Jan Hubicka  <jh@suse.cz>
15133
15134         * function.c (free_after_compilation): Free epilogue_delay_list.
15135         (prepare_function_start): Assert that previous compilation was freed.
15136
15137 2008-04-01  Jan Hubicka  <jh@suse.cz>
15138             Jim Wilson  <wilson@tuliptree.org>
15139             Andreas Tobler <andreast@gcc.gnu.org>
15140
15141         PR middle-end/35781
15142         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
15143         rtl.emit instead cfun->emit.
15144         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
15145         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
15146
15147 2008-04-01  Ben Elliston  <bje@au.ibm.com>
15148
15149         * doc/c-tree.texi (Function Basics): Fix grammatical error.
15150
15151 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
15152
15153         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
15154         New options
15155         (fprofile-use): Add var flag_profile_use
15156         * coverage.c (coverage_begin_output): Do not open a gcno file for
15157         output only if -ftest-coverage is set.
15158         Do not add getpwd() to gcda file path.
15159         (build_gcov_info): Check the new flag
15160         flag_profile_datafile_relative_path.
15161         (coverage_init): Use profile_data_prefix.
15162         Read profile counter only if flag_profile_use is set.
15163         * opts.c (common_handle_option): New option fprofile-use=,
15164         fprofile-dir=, fprofile-generate=.
15165         * toplev.c (profile_data_prefix): New variable definition.
15166         * toplev.h (profile_data_prefix): New declaration.
15167         * doc/invoke.tex (Option Summary, Optimization Options):
15168         Add new options.
15169
15170 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
15171
15172         * varasm.c (output_constant_pool_1): In LABEL_REF check,
15173         use tmp consistently.
15174
15175         PR target/35695
15176         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
15177         * config/ia64/ia64.c (rtx_needs_barrier): Handle
15178         UNSPEC_FR_RECIP_APPROX_RES.
15179         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
15180
15181 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
15182
15183         PR c/35750
15184         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
15185
15186 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15187
15188         PR middle-end/30186
15189         * fold-const.c (fold_indirect_ref_1): Support accessing non first
15190         element of the vector via a pointer.
15191
15192 2008-03-31  Ian Lance Taylor  <iant@google.com>
15193
15194         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
15195
15196 2008-03-31  Jan Hubicka  <jh@suse.cz>
15197
15198         * builtins.c (expand_builtin_setjmp_receiver): Update call of
15199         get_arg_pointer_save_area.
15200         * expr.c (init_expr): Just clear out rtl.expr.
15201         * function.c (free_after_compilation): Clear out whole RTL structure.
15202         (get_func_frame_size): Merge into ...
15203         (get_frame_size): ... this one.
15204         (assign_stack_local_1): Merge into ...
15205         (assign_stack_local): ... this one.
15206         (expand_function_end): Update call of get_arg_pointer_save_area.
15207         (get_art_pointer_save_area): Remove cfun argument.
15208         * function.h (emit_status): regno_pointer_align does not need length
15209         attribute. Move x_regno_reg_rtx to ...
15210         (regno_reg_rtx): ... new global array.
15211         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
15212         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
15213         apply_args_value, forced_labels, stack_pointer_delta):
15214         Update accestors.
15215         (struct varasm_status): Move here from varasm.c
15216         (struct rtl_data): New. Move here some fields from struct function.
15217         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
15218         frame_offset, stack_check_probe_note, arg_pointer_save_area,
15219         used_temp_slots avail_temp_slots, temp_slot_level,
15220         nonlocal_goto_handler_labels): Update accesstors.
15221         (rtl): New global variable.
15222         (struct function): Move some fileds to rtl_data.
15223         (get_arg_pointer_save_area): Update prototype.
15224         * emit-rtl.c (rtl): Declare.
15225         (regno_reg_rtx): Declare.
15226         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
15227         Update.
15228         (gen_reg_rtx): Update.
15229         (init_virtual_regs): Do not tate emit_status argument.
15230         (init_emit): Do not allocate emit.
15231         * varasm.c (varasm_statuc): Move to function.h.
15232         (n_deferred_constatns): Update accestor.
15233         (init_varasm_status): Do not allocate varasm_status.
15234         (force_const_mem, get_pool_size, output_constant_pool): Update.
15235         * stmt.c (force_label_rtx): Do not use x_ prefixes.
15236         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
15237
15238 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
15239
15240         PR rtl-optimization/35729
15241         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
15242         references.
15243
15244 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
15245
15246         PR target/32000
15247         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
15248         load/store if memory is unaligned.
15249         (*movti_rex64): Likewise.
15250
15251         * config/i386/predicates.md (misaligned_operand): New.
15252
15253 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
15254
15255         PR tree-opt/35431
15256         * tree-ssa-phiopt.c (conditional_replacement): Return early for
15257         complex types.
15258
15259 2008-03-31  Jan Beulich  <jbeulich@novell.com>
15260
15261         * config/ia64/constraints.md: Add 'j' constraint.
15262         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
15263         (movdi_internal): Likewise.
15264
15265 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
15266
15267         PR c/35748
15268         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
15269
15270 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
15271
15272         PR target/35757
15273         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
15274         proper error message for the third argument on blendpd and
15275         blendps.
15276
15277         * config/i386/sse.md (blendbits): New.
15278         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
15279
15280 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
15281
15282         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
15283
15284 2008-03-30  Richard Guenther  <rguenther@suse.de>
15285
15286         PR middle-end/31023
15287         * fold-const.c (fold_sign_changed_comparison): Do leave
15288         conversions to base-types alone.
15289
15290 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15291
15292         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
15293         the link register if one altivec register is be saved.
15294
15295 2008-03-30  Ben Elliston  <bje@au.ibm.com>
15296
15297         * final.c (final_scan_insn): Remove if (0) code.
15298
15299 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
15300
15301         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
15302
15303 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
15304
15305         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
15306         of V4SFmode to ix86_binary_operator_ok.
15307
15308 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
15309
15310         * config/i386/i386.c (override_options): Initialize
15311         ix86_veclib_handler to ix86_veclibabi_svml when
15312         -mveclibabi=svml is used.
15313         (ix86_veclibabi_svml): New function for SVML ABI style
15314         vectorization support.
15315         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
15316
15317 2008-03-28  Rafael Espindola  <espindola@google.com>
15318
15319         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
15320         (tree_binary_nonnegative_warnv_p): Make it public.
15321         (tree_single_nonnegative_warnv_p): Make it public.
15322         (tree_invalid_nonnegative_warnv_p): Make it public.
15323         (tree_unary_nonzero_warnv_p): Make it public.
15324         (tree_binary_nonzero_warnv_p): Make it public
15325         (tree_single_nonzero_warnv_p): Make it public.
15326         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
15327         (extract_range_from_binary_expr): Split the expr argument.
15328         (extract_range_from_unary_expr): Split the expr argument.
15329         (extract_range_from_comparison): Split the expr argument.
15330         (extract_range_from_expr): Use the new aux functions.
15331         (vrp_evaluate_conditional_warnv): Use
15332         vrp_evaluate_conditional_warnv_with_ops.
15333         * tree.h (tree_unary_nonzero_warnv_p): Declare.
15334         (tree_binary_nonzero_warnv_p): Declare.
15335         (tree_single_nonzero_warnv_p): Declare.
15336         (tree_expr_nonzero_warnv_p): Declare.
15337         (tree_unary_nonnegative_warnv_p): Declare.
15338         (tree_binary_nonnegative_warnv_p): Declare.
15339         (tree_single_nonnegative_warnv_p): Declare.
15340         (tree_invalid_nonnegative_warnv_p): Declare.
15341
15342 2008-03-28  Richard Guenther  <rguenther@suse.de>
15343
15344         PR tree-optimization/30317
15345         PR tree-optimization/30911
15346         PR tree-optimization/34793
15347         * tree-vrp.c (set_and_canonicalize_value_range): New function.
15348         (struct assert_locus_d): New member EXPR.
15349         (register_new_assert_for): Add EXPR parameter to support
15350         ASSERT_EXPR <name, expr OP limit>.
15351         (register_edge_assert_for_1): Adjust callers.
15352         (find_assert_locations): Likewise.
15353         (process_assert_insertions_for): Build condition from expression.
15354         (extract_range_from_assert): Handle ASSERT_EXPRs
15355         of the form ASSERT_EXPR <name, expr OP limit>.
15356         (register_edge_assert_for_2): New helper registering
15357         asserts for comparisons.  Recognize range tests of the form
15358         (unsigned)i - CST1 OP CST2.
15359         (register_edge_assert_for_1): Use it.
15360         (register_edge_assert_for): Likewise.
15361         (needs_overflow_infinity): Integer sub-types
15362         do not need overflow infinities.
15363         (vrp_val_is_max): The extreme values of integer sub-types
15364         are those of the base type.
15365         (vrp_val_is_min): Likewise.
15366         * tree.def (ASSERT_EXPR): Document extra allowed conditional
15367         expressions.
15368
15369 2008-03-28  Nick Clifton  <nickc@redhat.com>
15370
15371         PR target/31110
15372         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
15373         Return GENERAL_REGS for stack adjustment reloads.
15374
15375 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15376
15377         PR target/31334
15378         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
15379         const_vector when all the vectors are constant.
15380
15381 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
15382
15383         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
15384         comparisons.
15385         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
15386         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
15387         (scc_sf): New.
15388         (s<code>_sf): Use new scc_sf attribute for opcode names.
15389
15390 2008-03-27  Tom Tromey  <tromey@redhat.com>
15391
15392         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
15393         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
15394         config/spu/t-spu-elf, config/i386/t-interix,
15395         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
15396         config/i386/x-darwin, config/i386/x-mingw32,
15397         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
15398         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
15399         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
15400         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
15401         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
15402         config/rs6000/x-darwin, config/rs6000/t-rs6000,
15403         config/score/t-score-elf, config/arm/t-strongarm-pe,
15404         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
15405         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
15406         Revert automatic dependency patch.
15407
15408 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15409
15410         PR target/35657
15411         * config/i386/i386.c (ix86_function_arg_boundary): Align
15412         decimal floating point to its natural boundary.
15413
15414 2008-03-27  Richard Guenther  <rguenther@suse.de>
15415
15416         PR middle-end/35716
15417         * fold-const.c (fold_comparison): Restrict distinct decl
15418         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
15419         solely rely on operand_equal_p.
15420
15421 2008-03-27  Richard Guenther  <rguenther@suse.de>
15422
15423         PR c/32511
15424         * c-common.c (handle_weak_attribute): Reject combination of
15425         weak and inline.
15426
15427 2008-03-27  Richard Guenther  <rguenther@suse.de>
15428
15429         PR tree-optimization/32810
15430         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
15431         conversions from DECL_INITIAL.
15432         (fold_const_aggregate_ref): Likewise from constructor elements.
15433
15434 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
15435
15436         * tree-affine.h (aff_combination_expand): Declare.
15437         (get_inner_reference_aff): Likewise.
15438         * tree-affine.c (aff_combination_expand): Split out from
15439         tree_to_aff_combination_expand.
15440         (get_inner_reference_aff): New function.
15441         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
15442         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
15443         (struct lim_aux_data): sm_done field removed.
15444         (mem_ref_loc_p, mem_ref_locs_p): New types.
15445         (struct mem_ref): Added id, stored, accesses_in_loop,
15446         indep_loop, dep_loop, indep_ref, dep_ref fields.
15447         Removed is_stored, locs and next fields.
15448         (memory_accesses): New variable.
15449         (movement_possibility): Do not allow moving statements
15450         that store to memory.
15451         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
15452         New functions.
15453         (determine_max_movement): For statements with memory references,
15454         find the outermost loop in that the reference is independent.
15455         (move_computations_stmt): Mark the virtual operands for renaming.
15456         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
15457         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
15458         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
15459         add_vop_ref_mapping, create_vop_ref_mapping_loop,
15460         create_vop_ref_mapping, analyze_memory_references,
15461         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
15462         get_all_locs_in_loop, ref_always_accessed_p,
15463         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
15464         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
15465         store_motion_loop, store_motion): New functions.
15466         (struct vop_to_refs_elt): New type.
15467         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
15468         memref_hash, memref_eq, hoist_memory_references): Rewritten.
15469         (schedule_sm): Replaced by...
15470         (execute_sm): ... this.
15471         (determine_lsm_ref, hoist_memory_references,
15472         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
15473         find_more_ref_vops, free_mem_ref, free_mem_refs,
15474         determine_lsm_loop, determine_lsm): Removed.
15475         (tree_ssa_lim_finalize): Free data structures used by store motion.
15476         (tree_ssa_lim): Call analyze_memory_references.  Use
15477         store_motion instead of determine_lsm.
15478
15479 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
15480
15481         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
15482         rename tmake_file to m68hc11/t-m68hc11.
15483         (mcore): Set inhibit_libc to true.
15484         * config.host (alpha*-dec-*vms*): Set extra_programs.
15485         (interix3*): Don't use host_xmake_file.
15486         * configure.ac: Let config.gcc override inhibit_libc.
15487         * configure: Regenerate.
15488
15489         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
15490         * config/t-openbsd-thread: Remove commented out lines.
15491
15492         * config/x-interix: Remove.
15493
15494         * config/m68hc11/t-m68hc11-gas: Rename to...
15495         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
15496
15497         * config/mcore/t-mcore: Remove T_CFLAGS.
15498         * config/mcore/t-mcore-pe: Likewise.
15499
15500 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
15501
15502         * configure.ac: Replace custom __GNU_SOURCE test with
15503         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
15504         * aclocal.m4: Regenerate.
15505         * configure: Regenerate.
15506         * config.in: Regenerate.
15507
15508 2008-03-27  Richard Guenther  <rguenther@suse.de>
15509
15510         * fold-const.c (target.h): Include.
15511         (fold_comparison): Fold comparison of addresses of decls
15512         that bind locally or of constants.  Consolidate address folding code.
15513         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
15514         results from fold_binary_to_constant.
15515         (compare_values_warnv): Likewise.
15516
15517 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
15518
15519         PR middle-end/35429
15520         * fold-const.c (fold_truthop): Check for integeral types when folding
15521         a == 0 && b == 0 and a != 0 || b != 0 .
15522
15523 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
15524
15525         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
15526
15527 2008-03-26  Andreas Schwab  <schwab@suse.de>
15528
15529         * doc/invoke.texi: Fix use of @item vs. @itemx.
15530
15531 2008-03-26  Tom Tromey  <tromey@redhat.com>
15532
15533         * Makefile.in (build/gensupport.o, build/print-rtl.o,
15534         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
15535         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
15536         build/gencodes.o, build/genconditions.o, build/genconfig.o,
15537         build/genconstants.o, build/genemit.o, build/genextract.o,
15538         build/genflags.o, build/genmddeps.o, build/genopinit.o,
15539         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
15540         options.h.
15541
15542 2008-03-26  Richard Guenther  <rguenther@suse.de>
15543
15544         Revert
15545         2008-03-26  Richard Guenther  <rguenther@suse.de>
15546
15547         * fold-const.c (target.h): Include.
15548         (fold_comparison): Fold comparison of addresses of two decls
15549         that bind locally.  Consolidate address folding code.
15550
15551 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15552
15553         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
15554         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
15555         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
15556         dconstsqrt2, dconstthird, dconste and/or dconst10.
15557         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
15558         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
15559         dconstsqrt2, dconste): Delete.
15560         (init_emit_once): Likewise.  Simplify initializing dconstm1.
15561         Constify variable.
15562         * real.c (get_real_const): New.
15563         * real.h (dconst3, dconst10, dconstm2, dconstthird,
15564         dconstsqrt2, dconste): Delete.
15565         (real_value_const, get_real_const): New.
15566
15567 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
15568
15569         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
15570
15571         * config/i386/i386.c (ix86_function_arg_boundary): Check
15572         BIGGEST_ALIGNMENT instead of 128.
15573         (setup_incoming_varargs_64): Likewise.
15574
15575 2008-03-26  Tom Tromey  <tromey@redhat.com>
15576
15577         * Makefile.in (DEPFILES): Add missing '/'.
15578
15579 2008-03-26  Richard Guenther  <rguenther@suse.de>
15580
15581         * fold-const.c (target.h): Include.
15582         (fold_comparison): Fold comparison of addresses of two decls
15583         that bind locally.  Consolidate address folding code.
15584
15585 2008-03-26  Nick Clifton  <nickc@redhat.com>
15586
15587         PR target/31232
15588         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
15589         not allow INT+INT as a legitimate addressing mode.
15590
15591 2008-03-26  Richard Guenther  <rguenther@suse.de>
15592
15593         * tree-flow.h (widen_bitfield): Remove declaration.
15594         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
15595         (widen_bitfield): Remove function.
15596         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
15597         code.
15598
15599 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15600
15601         PR target/31558
15602         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
15603         error_mark_node's.
15604
15605 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
15606
15607         PR rtl-optimization/35232
15608         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
15609         (forget_old_reloads_1, forget_marked_reloads): Don't clear
15610         reg_reloaded_call_part_clobbered here.
15611         (reload_regs_reach_end_p): New function.
15612         (reload_reg_rtx_for_input): New variable.
15613         (reload_reg_rtx_for_output): Likewise.
15614         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
15615         when reassigning a pseudo register.  Load reloadreg from
15616         reload_reg_rtx_for_input, moving the mode and register
15617         calculation to...
15618         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
15619         instead of the original when deciding whether an input reload
15620         would be a no-op or whether an output reload can be deleted.
15621         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
15622         when setting up new_spill_reg_store.  Load it from
15623         reload_reg_rtx_for_output, moving the mode and register
15624         calculation to...
15625         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
15626         instead of the original when deciding whether an output reload
15627         would be a no-op.  Do the same when modifying insn notes.
15628         Use rtx_equal_p instead of == to compare the registers.
15629         (inherit_piecemeal_p): Take a mode and two register numbers
15630         as argument.
15631         (emit_reload_insns): Clear new_spill_reg_store for every hard
15632         register in the reload register.  Remove spill registers
15633         from reg_reloaded_valid before considering whether to record
15634         inheritance information for them.  Use reload_reg_rtx_for_output
15635         instead of reg_rtx when recording output reloads.  Use
15636         reload_reg_rtx_for_input instead of reg_rtx when recording
15637         input reloads.  Set or clear reg_reloaded_call_part_clobbered
15638         at the same time as setting reg_reloaded_valid.
15639         (delete_output_reload): Add a new_reload_reg parameter and use it
15640         instead of rld[j].reg_rtx.
15641         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
15642         calls accordingly.
15643
15644 2008-03-25  Tom Tromey  <tromey@redhat.com>
15645
15646         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
15647         (build/genattr.o): Likewise.
15648         (build/genattrtab.o): Likewise.
15649         (build/gencodes.o): Likewise.
15650         (build/genconfig.o): Likewise.
15651         (build/genconstants.o): Likewise.
15652         (build/genemit.o): Likewise.
15653         (build/genextract.o): Likewise.
15654         (build/genflags.o): Likewise.
15655
15656 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
15657
15658         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
15659         instead of size_int for integer types.
15660         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
15661         to match type of MINUS_EXPR.
15662
15663 2008-03-25  Tom Tromey  <tromey@redhat.com>
15664
15665         * configure: Rebuilt.
15666         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
15667         Makefile.
15668
15669 2008-03-25  Tom Tromey  <tromey@redhat.com>
15670
15671         * config/x-solaris (host-solaris.o): Update.
15672         * config/x-linux (host-linux.o): Update.
15673         * config/x-hpux (host-hpux.o): Update.
15674         * config/x-darwin (host-darwin.o): Update.
15675         * config/v850/t-v850e (v850-c.o): Update.
15676         * config/v850/t-v850 (v850-c.o): Update.
15677         * config/t-vxworks (vxworks.o): Update.
15678         * config/t-sol2 (sol2-c.o, sol2.o): Update.
15679         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
15680         * config/spu/t-spu-elf (spu-c.o): Update.
15681         (spu.o): Remove.
15682         * config/sh/t-symbian (sh-c.o): Update.
15683         (symbian.o): Update.
15684         * config/sh/t-sh (sh-c.o): Update.
15685         * config/score/t-score-elf (score7.o, score3.o): Update.
15686         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
15687         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
15688         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
15689         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
15690         (rs6000.o): Remove.
15691         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
15692         * config/m32c/t-m32c (m32c-pragma.o): Update.
15693         * config/ia64/t-ia64 (ia64-c.o): Update.
15694         * config/i386/x-mingw32 (host-mingw32.o): Update.
15695         * config/i386/x-i386 (driver-i386.o): Update.
15696         * config/i386/x-darwin (host-i386-darwin.o): Update.
15697         * config/i386/x-cygwin (host-cygwin.o): Update.
15698         * config/i386/t-nwld (nwld.o): Update.
15699         * config/i386/t-netware (netware.o): Update.
15700         * config/i386/t-interix (winnt.o): Update.
15701         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
15702         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
15703         msformat-c.o): Update.
15704         * config/bfin/t-bfin-linux (generated_files): Add
15705         linux-sysroot-suffix.h.
15706         * config/arm/t-wince-pe (pe.o): Update.
15707         * config/arm/t-strongarm-pe (pe.o): Update.
15708         * config/arm/t-pe (pe.o): Update.
15709         * config/arm/t-arm (arm-c.o): Update.
15710         * doc/install.texi (Prerequisites): Require make 3.80.
15711         * Makefile.in: Remove .o targets.
15712         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
15713         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
15714         (simple_generated_h, simple_generated_c): Move earlier.
15715         (generated_files): New variable.
15716         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
15717         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
15718         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
15719         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
15720         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
15721         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
15722         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
15723         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
15724         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
15725         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
15726         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
15727         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
15728         (.c.o): Remove.
15729         (COMPILE.base, COMPILE): New variables.
15730         (%.o): New pattern rule.
15731         (ALL_HOST_OBJS): New variable.
15732         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
15733         (dummy-checksum.o, cc1-checksum.o): Remove.
15734         (DRIVER_SHLIB): New variable.
15735         (DRIVER_DEFINES): Use it.
15736         (gencondmd.c): Move out of build/.
15737         (s-conditions): Update.
15738         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
15739         (ALL_BUILD_OBJS): Likewise.
15740         (build/%.o): Use BUILDCOMPILE.
15741         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
15742         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
15743         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
15744         build/gencheck.o, build/gencodes.o, build/genconditions.o,
15745         build/genconfig.o, build/genconstants.o, build/genemit.o,
15746         build/genextract.o, build/genflags.o, build/genmddeps.o,
15747         build/genopinit.o, build/genoutput.o, build/genpeep.o,
15748         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
15749         build/gen-protos.o, build/scan.o, build/fix-header.o,
15750         build/scan-decls.o): Simplify.
15751         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
15752         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
15753         prefix.o, toplev.o): Reduce to variable setting.
15754         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
15755         ($(out_object_file), gcc-options.o): New targets.
15756         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
15757         * configure: Rebuilt.
15758         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
15759         * doc/sourcebuild.texi (Front End Directory): Document new variable.
15760
15761 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
15762
15763         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
15764         complain when we hit an error, return ERROR_MARK_NODE.
15765
15766 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
15767
15768         * config/sh/constraints.md (Pso, Psz): New constraints.
15769         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
15770         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
15771
15772 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
15773
15774         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
15775         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
15776
15777 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
15778
15779         * config/sh/sh.md (prefetch): Add condition for SH2A target.
15780         (prefetch_sh2a): New.
15781
15782 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
15783             Naveen.H.S  <naveen.hs@kpitcummins.com>
15784
15785         * config/sh/constraints.md (I28): New constraint.
15786         * config/sh/sh.c (broken_move): Add support for movi20s.
15787         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
15788
15789 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
15790             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
15791             Naveen.H.S  <naveen.hs@kpitcummins.com>
15792
15793         * config/sh/sh.c (SH_ATTRIBUTES): Define.
15794         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
15795         (print_operand): Handle resbank in %@ operand code.
15796         (sh_encode_section_info): New.
15797         (push_regs): Add conditions for resbank.
15798         (sh_expand_epilogue): Likewise.
15799         (sh_insert_attributes): Likewise.
15800         (sh_attribute_table): Likewise.
15801         (sh_handle_resbank_handler_attribute): New.
15802         (sh2a_handle_function_vector_handler_attribute): New.
15803         (sh2a_is_function_vector_call): New.
15804         (sh2a_get_function_vector_number): New.
15805         (sh2a_function_vector_p): New.
15806         (sh_cfun_resbank_handler_p): New.
15807         * config/sh/sh.md (calli): Emit jsr/n if possible.
15808         (calli_tbr_rel): New.
15809         (calli_pcrel): Emit jsr/n if possible.
15810         (return_i): Emit rts/n if possible.
15811         (call_valuei_tbr_rel): New.
15812         (call_valuei_pcrel): Add condition for SH2A target.
15813         (call_value): Likewise.
15814         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
15815         (sh2a_get_function_vector_number): Likewise.
15816         (sh2a_is_function_vector_call): Likewise.
15817         * doc/extend.texi: Document TBR relative addressing of SH2A.
15818         (resbank): Add description for SH2A.
15819
15820 2008-03-24  Richard Guenther  <rguenther@suse.de>
15821
15822         PR c/22371
15823         * gimplify.c (gimplify_modify_expr): For frontend type-correct
15824         pointer assignments change conversions according to middle-end rules.
15825         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
15826         * configure.ac: Include type checking in yes.
15827         * configure: Regenerate.
15828
15829 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15830
15831         * diagnostic.c (diagnostic_count_diagnostic): Delete.
15832         (diagnostic_report_diagnostic): Update. Handle ICEs here.
15833
15834 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
15835
15836         * gthr-vxworks.h (UNUSED): Define.
15837
15838 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
15839
15840         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
15841
15842 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
15843
15844         * doc/extend.texi (Function Attributes): Add missing comma in the
15845         example of the "alloc_size" attribute.
15846
15847 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
15848
15849         Revert:
15850         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
15851
15852         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
15853         32bit host.
15854
15855         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
15856
15857         PR target/35496
15858         * stor-layout.c (update_alignment_for_field): Set minimum alignment
15859         of the underlying type of a MS bitfield layout to the natural
15860         alignment of the type.
15861
15862         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
15863
15864         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
15865         to their natural alignment to avoid store forwarding stalls.
15866
15867 2008-03-22  Richard Guenther  <rguenther@suse.de>
15868
15869         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
15870         For PHI nodes verify the address is invariant.
15871         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
15872         (get_symbol_constant_value): Use is_gimple_min_invariant.
15873         (maybe_fold_stmt_indirect): Likewise.
15874
15875 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
15876
15877         PR rtl-optimization/33927
15878         * Makefile.in (dse.o): Depend on $(TM_P_H).
15879         * expr.h (extract_low_bits): Declare.
15880         * expmed.c (extract_low_bits): New function.
15881         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
15882         * dse.c: Include tm_p.h.
15883         (find_shift_sequence): Remove the read_reg argument and return the
15884         read value.  Emit the instructions instead of returning them.
15885         Iterate on new_mode rather than calculating it each time.
15886         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
15887         source to NEW_MODE and extract_low_bits to convert the shifted
15888         value to READ_MODE.
15889         (replace_read): Allow the load and store to have different mode
15890         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
15891         or extraction instructions before trying the replacement.  Update
15892         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
15893
15894 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
15895
15896         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
15897         to their natural alignment to avoid store forwarding stalls.
15898
15899 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15900
15901         PR target/27946
15902         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
15903         encouraging but not allowing gprs for input;
15904         change the input constraint to !f#r.
15905         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
15906         gprs for output;
15907         change the output constraint to !f#r.
15908
15909 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
15910
15911         PR target/13958
15912         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
15913         corresponding post-reload splitters.
15914         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
15915         when x87 FP math is selected.
15916         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
15917         New function prototype.
15918         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
15919         unreachable function to ease macroization of insn patterns.
15920
15921 2008-03-21  Martin Jambor  <mjambor@suse.cz>
15922
15923         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
15924         reference dumps if ddr is NULL or dependence is unknown.
15925
15926 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
15927
15928         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
15929         unsigned extension into account.
15930         (ATOMIC_COMPARE_AND_SWAP): Likewise.
15931         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
15932         Do computations on a scratch register.
15933
15934 2008-03-21  Richard Guenther  <rguenther@suse.de>
15935
15936         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
15937         Use is_gimple_min_invariant instead of TREE_INVARIANT.
15938         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
15939         * tree-ssa-dom.c (record_equality): Likewise.
15940         * tree-inline.c (copy_body_r): Likewise.
15941         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
15942         TREE_INVARIANT.
15943
15944 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
15945
15946         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
15947         as 'delete_unused' argument.
15948
15949 2008-03-20  Richard Guenther  <rguenther@suse.de>
15950
15951         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
15952         special casing of constant qualifiers.
15953         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
15954         care about them in general.
15955         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
15956         regardless of their type.
15957         (fold_stmt_r): Forcefully fold *& if we end up with that.
15958
15959 2008-03-20  Paul Brook  <paul@codesourcery.com>
15960
15961         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
15962         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
15963         linker flags.
15964         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
15965         definition.
15966         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
15967         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
15968
15969 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
15970
15971         * common.opt (Wmudflap): New option.
15972         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
15973         (mx_register_decls): Likewise.
15974         (mudflap_finish_file): Likewise.
15975         * doc/invoke.texi: Document -Wno-mudflap.
15976
15977 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
15978
15979         * c-format.c (replace_format_name_to_system_name): New.
15980         (cmp_attribs): New.
15981         (convert_format_name_to_system_name): New.
15982         (decode_format_attr): Add use of convert_format_name_to_system_name.
15983         (format_types_orig): Add gnu_ prefix to names.
15984         (check_format_info_main): Special treating of \0 escaped names for
15985         supporting multi-character format specifiers as I32, I64.
15986         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
15987         (gnu_target_overrides_format_attributes): New.
15988         * c-format.h: Add structure target_ovr_attr to hold
15989         system specific formatter names.
15990         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
15991         msformat-c.o file to c_target_objs and cxx_target_objs.
15992         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
15993         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
15994         (TARGET_N_FORMAT_TYPES): New.
15995         * config/i386/msformat-c.c: New.
15996         * config/i386/t-cygming: Add build rule for msformat-c.o.
15997         * doc/extend.texi: Add new format names gnu_* and ms_* and
15998         further details.
15999         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
16000
16001 2008-03-20  Ira Rosen  <irar@il.ibm.com>
16002
16003         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
16004         optimizations turned on under -O3.
16005         (ftree-vectorize): Add that the flag is turned on with -O3.
16006
16007 2008-03-20  Ben Elliston  <bje@au.ibm.com>
16008
16009         * regmove.c (try_auto_increment): Fix spelling error in comment.
16010         * final.c (final_scan_insn): Likewise.
16011
16012 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
16013
16014         PR target/14552
16015         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
16016         allocator preferences for "y" and "r" class registers.
16017         ("*mov<mode>_internal"): Ditto.
16018         ("*movv2sf_internal_rex64"): Ditto.
16019         ("*movv2sf_internal"): Ditto.
16020
16021 2008-03-19  Michael Matz  <matz@suse.de>
16022
16023         PR middle-end/35616
16024         * calls.c (expand_call): Check overlap of arguments with call
16025         address for sibcalls.
16026
16027 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
16028
16029         PR target/35496
16030         * stor-layout.c (update_alignment_for_field): Set minimum alignment
16031         of the underlying type of a MS bitfield layout to the natural
16032         alignment of the type.
16033
16034 2008-03-19  Jan Hubicka  <jh@suse.cz>
16035
16036         PR other/35094
16037         * toplev.c (decode_d_option): Handle all CPP flags.
16038         * tree-vrp.c: Update tree_pass descriptors.
16039         * regrename.c: Update tree_pass descriptors.
16040         * fwprop.c: Update tree_pass descriptors.
16041         * doc/invoke.texi: Remove documentation of dropped -d? flags.
16042         * tree-into-ssa.c: Update tree_pass descriptors.
16043         * tree-dump.c: Update tree_pass descriptors.
16044         * tree-complex.c: Update tree_pass descriptors.
16045         * tree-dump.h: Update tree_pass descriptors.
16046         * see.c: Update tree_pass descriptors.
16047         * cgraphbuild.c: Update tree_pass descriptors.
16048         * tracer.c: Update tree_pass descriptors.
16049         * tree-loop-distribution.c: Update tree_pass descriptors.
16050         * cgraph.c: Update tree_pass descriptors.
16051         * postreload-gcse.c: Update tree_pass descriptors.
16052         * postreload.c: Update tree_pass descriptors.
16053         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
16054         * tree-tailcall.c: Update tree_pass descriptors.
16055         * tree-pass.h (tree_opt_pass): Rename to ...
16056         (opt_pass) ... this one; add "type" field and remove letter field.
16057         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
16058         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
16059         all_lowering_passes): Update declaration.
16060         * ipa-cp.c: Update tree_pass descriptors.
16061         * final.c: Update tree_pass descriptors.
16062         * omp-low.c: Update tree_pass descriptors.
16063         * tree-ssa-dse.c: Update tree_pass descriptors.
16064         * ipa-reference.c: Update tree_pass descriptors.
16065         * tree-ssa-uncprop.c: Update tree_pass descriptors.
16066         * auto-inc-dec.c: Update tree_pass descriptors.
16067         * reorg.c: Update tree_pass descriptors.
16068         * cgraphunit.c: Update tree_pass descriptors.
16069         * tree-ssa-copyrename.c: Update tree_pass descriptors.
16070         * tree-ssa-ccp.c: Update tree_pass descriptors.
16071         * df-core.c: Update tree_pass descriptors.
16072         * mode-switching.c: Update tree_pass descriptors.
16073         * tree-nomudflap.c: Update tree_pass descriptors.
16074         * modulo-sched.c: Update tree_pass descriptors.
16075         * ipa-pure-const.c: Update tree_pass descriptors.
16076         * cse.c: Update tree_pass descriptors.
16077         * web.c: Update tree_pass descriptors.
16078         * tree-stdarg.c: Update tree_pass descriptors.
16079         * tree-ssa-math-opts.c: Update tree_pass descriptors.
16080         * tree-ssa-dom.c: Update tree_pass descriptors.
16081         * tree-nrv.c: Update tree_pass descriptors.
16082         * tree-ssa-alias.c: Update tree_pass descriptors.
16083         * loop-init.c: Update tree_pass descriptors.
16084         * gimple-low.c: Update tree_pass descriptors.
16085         * ipa-inline.c: Update tree_pass descriptors.
16086         * tree-ssa-sink.c: Update tree_pass descriptors.
16087         * global.c: Update tree_pass descriptors.
16088         * ifcvt.c: Update tree_pass descriptors.
16089         * jump.c: Update tree_pass descriptors.
16090         * predict.c: Update tree_pass descriptors.
16091         * tree-ssa-loop.c: Update tree_pass descriptors.
16092         * recog.c: Update tree_pass descriptors.
16093         * dse.c: Update tree_pass descriptors.
16094         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
16095         * tree-eh.c: Update tree_pass descriptors.
16096         * regmove.c: Update tree_pass descriptors.
16097         * local-alloc.c
16098         * function.c: Update tree_pass descriptors.
16099         * tree-vectorizer.c: Update tree_pass descriptors.
16100         * gcse.c: Update tree_pass descriptors.
16101         * ipa-type-escape.c: Update tree_pass descriptors.
16102         * tree-if-conv.c: Update tree_pass descriptors.
16103         * init-regs.c: Update tree_pass descriptors.
16104         * ipa.c: Update tree_pass descriptors.
16105         * tree-ssa-phiopt.c: Update tree_pass descriptors.
16106         * rtl-factoring.c: Update tree_pass descriptors.
16107         * lower-subreg.c: Update tree_pass descriptors.
16108         * bt-load.c: Update tree_pass descriptors.
16109         * tree-dfa.c: Update tree_pass descriptors.
16110         * except.c: Update tree_pass descriptors.
16111         * emit-rtl.c: Update tree_pass descriptors.
16112         * cfgexpand.c: Update tree_pass descriptors.
16113         * tree-cfgcleanup.c: Update tree_pass descriptors.
16114         * cfgcleanup.c: Update tree_pass descriptors.
16115         * tree-ssa-pre.c: Update tree_pass descriptors.
16116         * tree-sra.c: Update tree_pass descriptors.
16117         * tree-mudflap.c: Update tree_pass descriptors.
16118         * tree-ssa-copy.c: Update tree_pass descriptors.
16119         * cfglayout.c: Update tree_pass descriptors.
16120         * tree-ssa-forwprop.c: Update tree_pass descriptors.
16121         * tree-ssa-dce.c: Update tree_pass descriptors.
16122         * tree-ssa.c: Update tree_pass descriptors.
16123         * regclass.c: Update tree_pass descriptors.
16124         * integrate.c: Update tree_pass descriptors.
16125         * tree-optimize.c: Update tree_pass descriptors.
16126         * tree-ssa-phiprop.c: Update tree_pass descriptors.
16127         * tree-object-size.c: Update tree_pass descriptors.
16128         * combine.c: Update tree_pass descriptors.
16129         * tree-outof-ssa.c: Update tree_pass descriptors.
16130         * bb-reorder.c: Update tree_pass descriptors.
16131         * stack-ptr-mod.c: Update tree_pass descriptors.
16132         * var-tracking.c: Update tree_pass descriptors.
16133         * tree-profile.c: Update tree_pass descriptors.
16134         * tree-vect-generic.c: Update tree_pass descriptors.
16135         * reg-stack.c: Update tree_pass descriptors.
16136         * sched-rgn.c: Update tree_pass descriptors.
16137         * tree-ssa-structalias.c: Update tree_pass descriptors.
16138         * tree-cfg.c: Update tree_pass descriptors.
16139         * passes.c (current_pass): Update declaration.
16140         (finish_optimization_passes): Update.
16141         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
16142         (register_one_dump_file, register_dump_files_1, next_pass_1):
16143         Update arguments.
16144         (init_optimization_passes): Update handling of new types.
16145         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
16146         * ipa-struct-reorg.c: Update tree_pass descriptors.
16147         * tree-ssa-reassoc.c: Update tree_pass descriptors.
16148         * combine-stack-adj.c: Update tree_pass descriptors.
16149         * cfgrtl.c: Update tree_pass descriptors.
16150         * dce.c: Update tree_pass descriptors.
16151         * tree-ssanames.c: Update tree_pass descriptors.
16152
16153 2008-03-19  Richard Guenther  <rguenther@suse.de>
16154
16155         PR middle-end/35609
16156         * tree-ssa.c (walk_data): New structure.
16157         (warn_uninitialized_var): If not always_executed warn with "maybe"
16158         instead of "is".
16159         (execute_early_warn_uninitialized): Compute post-dominators.
16160         Initialize always_executed before processing each basic block.
16161
16162 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
16163
16164         PR target/35504
16165         * config/i386/i386.c (x86_this_parameter): Calculate correct location
16166         of "this" pointer when "regparm = N" or "fastcall" is in effect.
16167
16168 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16169
16170         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
16171
16172 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
16173
16174         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
16175         is true.
16176         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
16177         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
16178         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
16179         target after ignore has been set, and move there also the commputation
16180         of subtarget and original_target.
16181         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
16182         (LANG_HOOKS_INITIALIZER): Remove it.
16183         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
16184
16185 2008-03-18  Richard Guenther  <rguenther@suse.de>
16186
16187         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
16188         found an expression with constants, note that in the VN for the lhs.
16189         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
16190         fold them to constants if possible.  Run cleanup_cfg if done so.
16191         (execute_pre): Return todo.
16192         (do_pre): Likewise.
16193         (execute_fre): Likewise.
16194         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
16195         of constants.
16196         (get_prop_source_stmt): Look through pointer conversions.
16197
16198 2008-03-18  Jan Hubicka  <jh@suse.cz>
16199
16200         * tree-pretty-print.c: Include predict.h.
16201         (dump_generic_node): Dump predictor.
16202         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
16203         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
16204         * gimple-low.c (lower_stmt): Likewise.
16205         * expr.c (expand_expr_real): Likewise.
16206         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
16207         them.
16208         (build_predict_expr, build_predict_expr): New.
16209         * predict.h (predictor_name, build_predict_expr): Update.
16210         * c-typeck.c (c_finish_bc_stmt): Add prediction.
16211         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
16212         * predict.def (PRED_CONTINUE): Update hitrate.
16213         * tree.def (PREDICT_EXPR): Define.
16214         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
16215         do not handle BIND_EXPR.
16216         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
16217         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
16218         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
16219         operands.
16220
16221 2008-03-18  Michael Matz  <matz@suse.de>
16222
16223         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
16224
16225 2008-03-18  Richard Guenther  <rguenther@suse.de>
16226
16227         * tree-gimple.h (is_gimple_invariant_address): Declare.
16228         (is_gimple_constant): Likewise.
16229         * tree-gimple.c (is_gimple_constant): New function.
16230         (is_gimple_invariant_address): Likewise.
16231         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
16232         and is_gimple_invariant_address.
16233         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
16234         previous change.
16235         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
16236         an addressable base.
16237
16238 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
16239
16240         PR middle-end/35611
16241         * gimplify.c (gimplify_expr): Gimplify second operand of
16242         OMP_ATOMIC_LOAD.
16243
16244 2008-03-17  Richard Guenther  <rguenther@suse.de>
16245
16246         PR tree-optimization/19637
16247         * fold-const.c (fold_unary): Remove restrictions of removing
16248         intermediate pointer-conversions (P2)(P1)P0.
16249         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
16250         conversion to void pointer.
16251         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
16252
16253 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
16254
16255         PR debug/31510
16256         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
16257         emulated thread local variables.
16258
16259 2008-03-16  Richard Guenther  <rguenther@suse.de>
16260
16261         PR middle-end/35607
16262         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
16263         expand TREE_INVARIANT operations that are not gimple invariant.
16264
16265 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
16266
16267         * doc/extend.texi (Alignment): Say that the ABI controls
16268         the __alignof__ for non-strict-alignment targets rather
16269         than being a recommendation.
16270
16271 2008-03-15  Paul Brook  <paul@codesourcery.com>
16272
16273         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
16274         annotations.
16275         (arm_output_fn_unwind): Mark functions that can not be unwound.
16276
16277 2008-03-15  Paul Brook  <paul@codesourcery.com>
16278
16279         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
16280         extension instructions.
16281
16282 2008-03-15  Richard Guenther  <rguenther@suse.de>
16283
16284         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
16285         and fold constant aggregate refs.
16286         (fold_const_aggregate_ref): Handle string constants
16287         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
16288         (evaluate_stmt): Simplify now that ccp_fold folds constant
16289         aggregate refs.
16290
16291 2008-03-15  Paul Brook  <paul@codesourcery.com>
16292
16293         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
16294         (extzv): Use gen_extzv_t2.
16295         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
16296
16297 2008-03-15  Richard Guenther  <rguenther@suse.de>
16298
16299         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
16300         (fold_const_aggregate_ref): Likewise.
16301         (get_value): Return NULL if we don't have any values.
16302         (ccp_finalize): Set const_val to NULL after freeing it.
16303         * tree-flow.h (get_symbol_constant_value): Declare.
16304         (fold_const_aggregate_ref): Likewise.
16305         * tree-ssa-sccvn.c (try_to_simplify): Use them.
16306
16307 2008-03-15  Richard Guenther  <rguenther@suse.de>
16308
16309         PR middle-end/35593
16310         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
16311         to not produce negative array indices if not allowed.  Add
16312         parameter to indicate that.
16313         (maybe_fold_offset_to_component_ref): Allow negative array
16314         indices only for the first member of a structure.
16315         (maybe_fold_offset_to_reference): Allow negative array indices.
16316         (maybe_fold_stmt_addition): Likewise.
16317
16318 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
16319             Anatoly Sokolov <aesok@post.ru>
16320
16321         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
16322         (avr_arch): Add ARCH_AVR6.
16323         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
16324         (initial_elimination_offset): Initialize and use 'avr_pc_size'
16325         instead of fixed value 2.
16326         (print_operand_address): Use gs() asm specifier instead of pm().
16327         (avr_assemble_integer): (Ditto.).
16328         (avr_output_addr_vec_elt): (Ditto.).
16329         (print_operand): Handle "!" code.
16330         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
16331         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
16332         (AVR_HAVE_EIJMP_EICALL): Define.
16333         (AVR_3_BYTE_PC): Redefine.
16334         (AVR_2_BYTE_PC): (Ditto.).
16335         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
16336         (LINK_SPEC): Add atmega2560 and atmega2561.
16337         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
16338         (crtm2561.o).
16339         * config/avr/avr.md (call_insn): Use eicall instead of icall
16340         for 3 byte PC devices.
16341         (call_value_insn): (Ditto.).
16342         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
16343         (indirect_jump): Use only for for 2 byte PC devices.
16344         (*tablejump): (Ditto.).
16345         (*indirect_jump_avr6): Add insn.
16346         (*tablejump_rjmp): Don't use for 3 byte PC devices.
16347         * config/avr/libgcc.S (__prologue_saves__): Use eijmp
16348         instead of ijmp for 3 byte PC devices.
16349         (__tablejump2__): (Ditto.).
16350         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
16351         (MULITLIB_DIRNAMES): (Ditto.).
16352         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
16353
16354 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
16355
16356         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
16357         "sse2_umulsidi3".  Use V1DI mode for operand 0.
16358         ("mmx_psadbw"): Use V1DI mode for operand 0.
16359         * config/i386/i386-modes.def (V1SI): New vector mode.
16360         * config/i386/i386.c (struct builtin_description)
16361         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
16362         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
16363         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
16364         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
16365         v1di_ftype_v8qi_v8qi type.
16366         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
16367
16368         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
16369         __builtin_ia32_pmuludq]: Fix the mode of return value.
16370
16371 2008-03-15  Richard Guenther  <rguenther@suse.de>
16372
16373         PR middle-end/35595
16374         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
16375         being a PHI_NODE.
16376
16377 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
16378
16379         * doc/invoke.texi (Option Summary, Xtensa Options): Document
16380         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
16381         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
16382         unless TARGET_SERIALIZE_VOLATILE is enabled.
16383         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
16384         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
16385         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
16386
16387 2008-03-14  Richard Guenther  <rguenther@suse.de>
16388
16389         PR tree-optimization/34172
16390         * tree-flow.h (refs_may_alias_p): Declare.
16391         (get_single_def_stmt): Likewise.
16392         (get_single_def_stmt_from_phi): Likewise.
16393         (get_single_def_stmt_with_phi): Likewise.
16394         * tree-dfa.c (refs_may_alias_p): New function.
16395         (get_single_def_stmt): Likewise.
16396         (get_single_def_stmt_from_phi): Likewise.
16397         (get_single_def_stmt_with_phi): Likewise.
16398         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
16399         (vn_reference_lookup_1): New helper function.
16400         (vn_reference_lookup): Walk the virtual use-def chain to
16401         continue searching for a match if the def does not alias the
16402         reference we are looking for.
16403
16404 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
16405
16406         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
16407         archive and Perzl.  Update The Written Word listing.
16408
16409 2008-03-14  Richard Guenther  <rguenther@suse.de>
16410
16411         PR tree-optimization/34043
16412         PR tree-optimization/33989
16413         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
16414         when doing FRE.
16415         (bitmap_find_leader): Use extra argument to verify dominance
16416         relationship inside a basic-block.
16417         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
16418         (find_leader_in_sets): Adjust.
16419         (create_component_ref_by_pieces): Take extra argument for
16420         dominance check, handle lookup failures.
16421         (find_or_generate_expression): Likewise.
16422         (create_expression_by_pieces): Likewise.
16423         (insert_into_preds_of_block): Adjust.
16424         (create_value_expr_from): If asked for, verify all operands
16425         are in the blocks AVAIL_OUT set.
16426         (make_values_for_stmt): Check for SSA_NAMEs that are life
16427         over an abnormal edge.
16428         (compute_avail): Remove such check.
16429         (do_SCCVN_insertion): New function.
16430         (eliminate): If we do not find a leader suitable for replacement
16431         insert a replacement expression from SCCVN if available.
16432         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
16433         (struct vn_ssa_aux): Add needs_insertion flag.
16434         * tree-ssa-sccvn.c (may_insert): New global flag.
16435         (copy_reference_ops_from_ref): Value-number union member access
16436         based on its size, not type and member if insertion is allowed.
16437         (visit_reference_op_load): For a weak match from union type
16438         punning lookup a view-converted value and insert a SSA_NAME
16439         for that value if that is not found.
16440         (visit_use): Make dumps shorter.  Do not disallow value numbering
16441         SSA_NAMEs that are life over an abnormal edge to constants.
16442         (free_scc_vn): Release inserted SSA_NAMEs.
16443         (run_scc_vn): New flag to specify whether insertion is allowed.
16444         Process SSA_NAMEs in forward order.
16445         * tree-ssa-loop-im.c (for_each_index): Handle invariant
16446         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
16447         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
16448         pointer type to/from integral types that do not change the
16449         precision to regular conversions.
16450
16451 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
16452
16453         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
16454         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
16455         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
16456         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
16457         input arguments and the mode of return value.  Built-in functions
16458         that operate on whole 64-bit MMX register now use V1DI mode.
16459
16460 2008-03-13  Alon Dayan  <alond@il.ibm.com>
16461             Olga Golovanevsky  <olga@il.ibm.com>
16462
16463         PR tree-optimization/35041
16464         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
16465         to locate the right position in a statement.
16466
16467 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
16468
16469         PR target/34000
16470         PR target/35553
16471         * config/i386/xmmintrin.h:  Change all static inline functions to
16472         extern inline and add __gnu_inline__ attribute.
16473         * config/i386/bmintrin.h: Ditto.
16474         * config/i386/smmintrin.h: Ditto.
16475         * config/i386/tmmintrin.h: Ditto.
16476         * config/i386/mmintrin-common.h: Ditto.
16477         * config/i386/ammintrin.h: Ditto.
16478         * config/i386/emmintrin.h: Ditto.
16479         * config/i386/pmmintrin.h: Ditto.
16480         * config/i386/mmintrin.h: Ditto.
16481         * config/i386/mm3dnow.h: Ditto.
16482
16483 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
16484
16485         PR middle-end/35185
16486         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
16487         (lower_omp_2): New function.
16488         (lower_omp_1, lower_omp): Rewritten.
16489
16490 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
16491
16492         PR 35054
16493         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
16494         with the phrase "Microsoft Windows compilers".
16495         (Push/Pop Macro Pragmas): New subsection. Document
16496         #pragma push_macro and pragma pop_macro.
16497
16498 2008-03-12  Paul Brook  <paul@codesourcery.com>
16499
16500         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
16501
16502 2008-03-12  Paul Brook  <paul@codesourcery.com>
16503
16504         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
16505         (thumb2_alusi3_short): Exclude PLUS and MINUS.
16506         (thumb2_addsi_shortim): Rename ...
16507         (thumb2_addsi_short): ... to this.  Allow register operands.
16508         (thumb2_subsi_short): New pattern.
16509         (thumb2_one_cmplsi2_short,
16510         thumb2_negsi2_short): New patterns and peepholes.
16511
16512 2008-03-12  Paul Brook  <paul@codesourcery.com>
16513
16514         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
16515
16516 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
16517
16518         * config/i386/i386.md (int_cond): New code iterator.
16519         (fp_cond): Ditto.
16520         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
16521         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
16522         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
16523         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
16524         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
16525         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
16526         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
16527         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
16528
16529 2008-03-12  Paul Brook  <paul@codesourcery.com>
16530
16531         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
16532         instead of {arm,thumb}_compute_save_reg_mask.
16533         (output_return_instruction): Ditto.
16534         (thumb_unexpanded_epilogue): Ditto.
16535         (thumb1_expand_prologue): Ditto.
16536         (thumb1_output_function_prologue): Ditto.
16537         (arm_set_return_address): Ditto.
16538         (thumb_set_return_address): Ditto.
16539         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
16540         regs to achieve stack alignment.
16541         (thumb1_compute_save_reg_mask): Fix compiler warning.
16542         (arm_output_epilogue): Use offsets->saved_regs_mask.
16543         Adjust stack pointer by poping call clobered registers.
16544         (arm_expand_prologue): Use offsets->saved_regs_mask.
16545         Adjust stack pointer by pushing extra registers.
16546         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
16547
16548 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
16549
16550         PR tree-opt/35422
16551         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
16552         conversion to the operands of a multiplication.
16553
16554 2008-03-12  Richard Guenther  <rguenther@suse.de>
16555
16556         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
16557         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
16558         * timevar.def (TV_TREE_PHIPROP): Add.
16559         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
16560         pass description.  Use TV_TREE_PHIPROP.
16561         * tree-ssa-forwprop.c: Remove phiprop code.
16562
16563 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
16564
16565         PR middle-end/35549
16566         * omp-low.c (maybe_lookup_decl): Constify first argument.
16567         (use_pointer_for_field): Change last argument from bool to
16568         omp_context *.  Disallow shared copy-in/out in nested
16569         parallel if decl is shared in outer parallel too.
16570         (build_outer_var_ref, scan_sharing_clauses,
16571         lower_rec_input_clauses, lower_copyprivate_clauses,
16572         lower_send_clauses, lower_send_shared_vars): Adjust callers.
16573
16574 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
16575             Ira Rosen  <irar@il.ibm.com>
16576
16577         * tree-vectorizer.c (free_stmt_vec_info): New function.
16578         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
16579         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
16580         * tree-vectorizer.h (free_stmt_vec_info): Declare.
16581         * tree-vect-transform.c (vectorizable_conversion): Free
16582         vec_oprnds0 if it was allocated.
16583         (vect_permute_store_chain): Remove unused VECs.
16584         (vectorizable_store): Free VECs that are allocated in the..
16585         function.
16586         (vect_transform_strided_load, vectorizable_load): Likewise.
16587         (vect_remove_stores): Simplify the code.
16588         (vect_transform_loop): Move code to vect_remove_stores().
16589         Call vect_remove_stores() and free_stmt_vec_info().
16590
16591 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16592
16593         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
16594         TARGET_HPUX.  Revise comment.
16595         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
16596         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
16597         Use sr4 variant of `be' instruction when not generating PIC code.
16598         (attr_length_call): Adjust for above change.
16599
16600 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16601
16602         * ipa-reference.c (static_execute): Remove module_statics_const and
16603         associated setting code.
16604
16605 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
16606
16607         PR target/35540
16608         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
16609         predicate for operand 1.
16610         (paritysi2_cmp): Use register_operand predicate for operand 2.
16611         Use earlyclobber modifier for operand 1.  Remove support for
16612         memory operands.
16613         (paritydi2_cmp): Use register_operand predicate for operand 3.
16614         Use earlyclobber modifier for operand 1.  Remove support for
16615         memory operands.
16616
16617 2008-03-11  Paul Brook  <paul@codesourcery.com>
16618             Vladimir Prus  <vladimir@codesourcery.com>
16619
16620         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
16621         (arm_compute_save_reg0_reg12_mask): Always
16622         check if register 11 must be saved.  Always safe hard frame pointer
16623         when frame_pointer_needeed.
16624         (arm_compute_save_reg_mask): Save IP and PC
16625         only with apcs frames.
16626         (arm_output_epilogue): Adjust Thumb2 codepath to
16627         be also invoked and work for ARM non-apcs frames.
16628         (arm_expand_prologue): Don't bother saving IP
16629         for non-apcs frame, since it's not clobbered by
16630         prologue code.  Implement non-apcs frame
16631         layout.
16632
16633 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
16634
16635         PR rtl-optimization/35281
16636         * expr.c (convert_move): Use a new pseudo for the intermediate
16637         from_mode->word_mode result.
16638
16639 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
16640
16641         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
16642         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
16643         * toplev.c (compile_file): Don't call it.
16644
16645 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
16646
16647         PR middle-end/35526
16648         * expr.c (store_expr): Call emit_block_move if the mode
16649         of "temp" RTX is BLKmode.
16650
16651 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16652             Richard Guenther  <rguenther@suse.de>
16653
16654         PR tree-optimization/31358
16655         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
16656         the step with a NULL_TREE.
16657         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
16658         to sizetype if type is a pointer type.
16659         (add_candidate_1): Don't convert the base and step to
16660         the generic type if the orginal type is a pointer type.
16661         (add_iv_value_candidates): Use sizetype for the step
16662         if type is a pointer type.
16663         (cand_value_at): Likewise.
16664         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
16665         for pointer types.
16666         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
16667         Don't convert the tem affine to the type.
16668         (add_elt_to_tree): Use sizetype for the step if a pointer.
16669         Use POINTER_PLUS_EXPR for pointers.
16670         (aff_combination_to_tree): Use sizetype for the step if a
16671         pointer.
16672
16673 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
16674
16675         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
16676         Remove commutativity hint.
16677
16678 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
16679
16680         PR c/35438
16681         PR c/35439
16682         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
16683         errorneous type.  Check that v is a VAR_DECL.
16684
16685         PR middle-end/35099
16686         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
16687
16688 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
16689
16690         PR tree-optimization/35494
16691         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
16692         may be overriden at link and run time.
16693
16694 2008-03-10  Richard Guenther  <rguenther@suse.de>
16695
16696         PR tree-optimization/34677
16697         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
16698         (poolify_tree): Likewise.
16699         (modify_expr_template): Likewise.
16700         (poolify_modify_stmt): Likewise.
16701         (insert_fake_stores): Handle all component-ref style stores
16702         in addition to INDIRECT_REF.  Also handle complex types.
16703         Do not poolify the inserted load.
16704         (realify_fake_stores): Do not rebuild the tree but only
16705         make it a SSA_NAME copy.
16706         (init_pre): Remove initialzation of modify_expr_template.
16707         Do not allocate modify_expr_node_pool.
16708         (fini_pre): Do not free modify_expr_node_pool.
16709
16710 2008-03-10  Paul Brook  <paul@codesourcery.com>
16711
16712         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
16713         to avoid conflicts.
16714
16715 2008-03-10  Paul Brook  <paul@codesourcery.com>
16716             Mark Shinwell  <shinwell@codesourcery.com>
16717
16718         * config/arm/cortex-r4.md: New.
16719         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
16720         insn attributes.
16721         * config/arm/arm.md: Include cortex-r4.md.
16722         (insn): Add smmls, sdiv and udiv values.
16723         (generic_sched): Don't use generic scheduling for Cortex-R4.
16724         (arm_issue_rate): New function.
16725         (TARGET_SCHED_ISSUE_RATE): Define.
16726
16727 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
16728
16729         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
16730
16731 2008-03-10  Richard Guenther  <rguenther@suse.de>
16732
16733         * tree-ssa-pre.c (get_sccvn_value): Simplify.
16734         (compute_avail): Do not add stmt uses to AVAIL_OUT.
16735
16736 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
16737
16738         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
16739         Set default to true.
16740
16741 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16742
16743         * c.opt (Wsynth): Deprecate.
16744         * doc/invoke.texi (Option Summary, Warning Options): Document
16745         -Wno-format-contains-nul.
16746
16747 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
16748
16749         PR target/35496
16750         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
16751         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
16752
16753 2008-03-09  Ira Rosen  <irar@il.ibm.com>
16754
16755         * config/rs6000/rs6000.c (builtin_description): Rename vector
16756         left shift operations.
16757         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
16758         (altivec_vsl<VI_char>): Rename to ...
16759         (ashl<mode>3): ... new name.
16760         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
16761         gen_ashlv4si3.
16762         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
16763
16764 2008-03-08  Richard Guenther  <rguenther@suse.de>
16765
16766         * coverage.h (tree_coverage_counter_addr): Declare.
16767         * coverage.c (tree_coverage_counter_addr): New function.
16768         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
16769         before using again.
16770         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
16771         (tree_gen_one_value_profiler): Likewise.
16772         (tree_gen_ic_profiler): Likewise.
16773         (tree_gen_average_profiler): Likewise.
16774         (tree_gen_ior_profiler): Likewise.
16775
16776 2008-03-08  Richard Guenther  <rguenther@suse.de>
16777
16778         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
16779         (vn_binary_op_insert): Likewise.
16780         (vn_unary_op_lookup): Likewise.
16781         (vn_unary_op_insert): Likewise.
16782         (vn_nary_op_lookup): Declare.
16783         (vn_nary_op_insert): Likewise.
16784         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
16785         and binary hashes, use a single obstack for unary_op_pool
16786         and binary_op_pool.
16787         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
16788         a single struct vn_nary_op_s.  Store tree code length and
16789         a variable number of operands.
16790         (struct vn_reference_op_struct): Remove unused op2.
16791         (vn_reference_op_eq): Do not compare op2.
16792         (vn_reference_op_compute_hash): Do not compute hash of op2.
16793         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
16794         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
16795         with vn_nary_op_compute_hash.
16796         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
16797         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
16798         vn_nary_op_lookup.
16799         (vn_unary_op_insert, vn_binary_op_insert): Replace with
16800         vn_nary_op_insert.
16801         (visit_unary_op): Call nary functions.
16802         (visit_binary_op): Likewise.
16803         (process_scc): Adjust for struct vn_tables_s changes.
16804         (allocate_vn_table): Likewise.
16805         (free_vn_table): Likewise.
16806         * tree-vn.c (vn_add): Call nary functions.
16807         (vn_lookup): Likewise.
16808
16809 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
16810
16811         PR target/35498
16812         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
16813         wdst back after sync_compare_and_swapqhi_internal.
16814
16815 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
16816
16817         PR target/22152
16818         * config/i386/i386-modes.def (V1DI): New vector mode.
16819         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
16820         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
16821         (MMXMODE248): Ditto.
16822         (MMXMODE): Add V1DI mode.
16823         (mmxvecsize): Change DI mode to V1DI mode.
16824         ("mov<mode>): Use MMXMODEI8 mode iterator.
16825         ("*mov<mode>_internal_rex64"): Ditto.
16826         ("*mov<mode>_internal"): Ditto.
16827         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
16828         ("mmx_sub<mode>3"): Ditto.
16829         ("mmx_adddi3"): Remove insn pattern.
16830         ("mmx_subdi3"): Ditto.
16831         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
16832         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
16833         ("mmx_ashl<mode>3"): Ditto.
16834         ("mmx_lshrdi3"): Remove insn pattern.
16835         ("mmx_ashldi3"): Ditto.
16836         * config/i386/i386.c (classify_argument): Handle V1DImode.
16837         (function_arg_advance_32): Ditto.
16838         (function_arg_32): Ditto.
16839         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
16840         mmx_addv1di3 insn pattern.
16841         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
16842         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
16843         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
16844         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
16845         Remove definitions of built-in functions.
16846         (V1DI_type_node): New node.
16847         (v1di_ftype_v1di_int): Ditto.
16848         (v1di_ftype_v1di_v1di): Ditto.
16849         (v2si_ftype_v2si_si): Ditto.
16850         (v4hi_ftype_v4hi_di): Remove node.
16851         (v2si_ftype_v2si_di): Ditto.
16852         (ix86_init_mmx_sse_builtins): Handle V1DImode.
16853         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
16854         Redefine builtins using def_builtin_const with *_ftype_*_int node.
16855         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
16856         Add new builtins using def_builtin_const.
16857         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
16858         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
16859         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
16860         * config/i386/mmintrin.h (__v1di): New typedef.
16861         (_mm_add_si64): Cast arguments to __v1di type.
16862         (_mm_sub_si64): Ditto.
16863         (_mm_sll_pi16): Cast __count to __v4hi type.
16864         (_mm_sll_pi32): Cast __count to __v2si type.
16865         (_mm_sll_si64): Cast arguments to __v1di type.
16866         (_mm_srl_pi16): Cast __count to __v4hi type.
16867         (_mm_srl_pi32): Cast __count to __v2si type.
16868         (_mm_srl_si64): Cast arguments to __v1di type.
16869         (_mm_sra_pi16): Cast __count to __v4hi type.
16870         (_mm_sra_pi32): Cast __count to __v2si type.
16871         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
16872         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
16873         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
16874         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
16875         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
16876         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
16877         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
16878         (_mm_srai_pi32): Use __builtin_ia32_psradi.
16879         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
16880         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
16881         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
16882         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
16883
16884 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
16885
16886         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
16887
16888 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
16889
16890         PR target/35373
16891         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
16892         reg+const addressing for Altivec modes.  Don't generate reg+reg
16893         addressing for TFmode or TDmode quantities.
16894
16895 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
16896
16897         * c-common.c (vector_types_convertible_p): Call langhook
16898         instead of comptypes.
16899
16900 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16901
16902         PR tree-opt/35402
16903         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
16904         integral and scalar float variables which have a
16905         NULL DECL_INITIAL.
16906
16907 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
16908
16909         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
16910         dwarf_register_span hook when emitting unwind information for
16911         register-to-memory saves.
16912         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
16913         (rs6000_frame_related): Remove call to spe_synthesize_frame.
16914
16915 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
16916
16917         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
16918         for the same VAR_DECL.
16919
16920 2008-03-06  Tom Tromey  <tromey@redhat.com>
16921
16922         * treelang: Delete.
16923         * doc/standards.texi (Standards): Don't mention treelang.
16924         * doc/invoke.texi (Overall Options): Don't mention treelang.
16925         * doc/install.texi (Prerequisites): Don't mention bison or
16926         treelang.
16927         (Configuration): Don't mention treelang.
16928         (Building): Likewise.
16929         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
16930
16931 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
16932
16933         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
16934         word-extractions out of a multi-word object.
16935
16936 2008-03-06  Richard Guenther  <rguenther@suse.de>
16937
16938         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
16939         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
16940         result type and precision.
16941         * expr.c (get_inner_reference): Set unsignedp based on the result
16942         type of BIT_FIELD_REF.
16943         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
16944         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
16945         (try_instantiate_multiple_fields): Likewise.  Use the correct type
16946         for BIT_FIELD_REF.
16947         (sra_build_assignment): Likewise.
16948         (sra_build_elt_assignment): Likewise.
16949         (sra_explode_bitfield_assignment): Likewise.
16950         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
16951         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
16952         set BIT_FIELD_REF_UNSIGNED.
16953         (vectorizable_load): Likewise.
16954
16955 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
16956
16957         * cse.c (cse_extended_basic_block): Invalidate artificial defs
16958         at bb start.
16959
16960 2008-03-06  Richard Guenther  <rguenther@suse.de>
16961
16962         * alias.c (struct alias_set_entry): Move has_zero_child field
16963         to pack with alias_set.
16964
16965 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
16966
16967         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
16968         32bit host.
16969
16970 2008-03-05  Ian Lance Taylor  <iant@google.com>
16971
16972         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
16973
16974 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
16975
16976         * fwprop.c (update_df): Support width and offset parameters of
16977         df_ref_create.
16978         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
16979         global_conflicts): Change DF_REF_EXTRACT to either
16980         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
16981         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
16982         * df-scan.c (df_ref_record, df_defs_record,
16983         df_ref_create_structure, df_def_record_1, df_uses_record,
16984         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
16985         df_bb_refs_collect, df_entry_block_defs_collect,
16986         df_exit_block_uses_collect): Support new width and offset fields.
16987         (ref_extract_pool): New storage pool.
16988         (df_free_ref): New function.
16989         (df_reg_chain_unlink, df_free_collection_rec,
16990         df_sort_and_compress_refs): Call df_free_ref.
16991         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
16992         of df_ref_extract.
16993         (df_ref_create_structure): Allocate df_ref_extract if offset and
16994         width fields are used.
16995         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
16996         (df_uses_record): Get offset and width from ZERO_EXTRACT
16997         and SIGN_EXTRACT.
16998         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
16999         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
17000         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
17001         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
17002         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
17003         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
17004         (df_ref_extract): New structure.
17005         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
17006         (df_ref_create): Add width and offset parameters.
17007
17008 2008-03-05  Richard Guenther  <rguenther@suse.de>
17009
17010         * tree-ssa-structalias.c (get_constraint_for_component_ref):
17011         Use ranges_overlap_p.
17012         (offset_overlaps_with_access): Rename
17013         to ranges_overlap_p and move ...
17014         * tree-flow-inline.h (ranges_overlap_p): ... here.
17015
17016         * tree.h (get_inner_reference, handled_component_p): Update
17017         comments.
17018
17019         * tree.h (record_component_aliases, get_alias_set,
17020         alias_sets_conflict_p, alias_sets_must_conflict_p,
17021         objects_must_conflict_p): Move declarations ...
17022         * alias.h (record_component_aliases, get_alias_set,
17023         alias_sets_conflict_p, alias_sets_must_conflict_p,
17024         objects_must_conflict_p): ... here.
17025         Include coretypes.h.
17026         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
17027
17028 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
17029
17030         * cfg.c: Include tree-flow.h.
17031         (remove_edge_raw): Call redirect_edge_var_map_clear.
17032         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
17033         * tree-flow-inline.h (redirect_edge_var_map_def): New.
17034         (redirect_edge_var_map_result): New.
17035         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
17036         PENDING_STMT use with redirect_edge_var_map_*.
17037         * tree-ssa.c (edge_var_maps): New definition.
17038         (redirect_edge_var_map_add): New.
17039         (redirect_edge_var_map_clear): New.
17040         (redirect_edge_var_map_dup): New.
17041         (redirect_edge_var_map_vector): New.
17042         (redirect_edge_var_map_destroy): New.
17043         (ssa_redirect_edge): Replace PENDING_STMT use with
17044         redirect_edge_var_map_*.
17045         (flush_pending_stmts): Same.
17046         (delete_tree_ssa): Destroy edge var map.
17047         * tree-flow.h (struct _edge_var_map): New.
17048         Define edge_var_map vector type.
17049         Declare redirect_edge_var_map_* prototypes.
17050         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
17051         * tree-cfg.c (reinstall_phi_args): Replace
17052         PENDING_STMT use with redirect_edge_var_map_*.
17053
17054 2008-03-05  Richard Guenther  <rguenther@suse.de>
17055
17056         PR tree-optimization/35472
17057         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
17058         whose single use_stmt has a overlapping set of loaded and
17059         stored symbols as that use_stmt might be a noop assignment then.
17060
17061 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
17062
17063         * gthr-rtems.h: Implement __gthread_mutex_destroy.
17064
17065 2008-03-05  Richard Guenther  <rguenther@suse.de>
17066
17067         PR c++/35336
17068         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
17069         should be constants.
17070         * tree-cfg.c (verify_expr): Verify it.
17071         * fold-const.c (fold_truthop): Remove code generating
17072         BIT_FIELD_REFs of structure bases.
17073         (fold_binary): Likewise.
17074         (fold_ternary): Position and size of BIT_FIELD_REFs are
17075         always host integers.
17076         (make_bit_field_ref): Remove.
17077         (optimize_bit_field_compare): Remove.
17078         (all_ones_mask_p): Remove.
17079
17080 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
17081
17082         PR gcc/33009
17083         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
17084         (split_block_and_df_analyze): New. Split basic block and rebuild
17085         dataflow.
17086         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
17087         SPLIT_BLOCK.
17088         (split_pattern_seq): Likewise.
17089         (erase_matching_seqs): Likewise.
17090         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
17091
17092 2008-03-04  Geoff Keating  <geoffk@apple.com>
17093
17094         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
17095         declaration and code.
17096         (tree_invalid_nonnegative_warnv_p): Likewise.
17097
17098 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
17099
17100         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
17101         examples.  Truncate option-names then causing overfull hbox.
17102
17103 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17104
17105         PR target/35222
17106         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
17107         on hpux10.
17108         * configure: Rebuilt.
17109
17110 2008-03-04  Rafael Espindola  <espindola@google.com>
17111
17112         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
17113         (tree_unary_nonnegative_warnv_p): New.
17114         (tree_binary_nonnegative_warnv_p): New.
17115         (tree_single_nonnegative_warnv_p): New.
17116         (tree_invalid_nonnegative_warnv_p): New.
17117         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
17118
17119 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17120
17121         PR 28322
17122         * opts.c (handle_option): Postpone 'unknown option' errors only for
17123         warning options.
17124
17125 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
17126
17127         PR target/35453
17128         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
17129         (_SIDD_XXX): This.
17130
17131 2008-03-04  Rafael Espindola  <espindola@google.com>
17132
17133         * fold-const.c (tree_unary_nonzero_warnv_p): New.
17134         (tree_binary_nonzero_warnv_p): New.
17135         (tree_single_nonzero_warnv_p): New.
17136         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
17137
17138 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
17139
17140         PR middle-end/35456
17141         * fold-const.c (fold_cond_expr_with_comparison): Prevent
17142         transformations for modes that have signed zeros.
17143         * ifcvt.c (noce_try_abs): Ditto.
17144
17145 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
17146
17147         * config/i386/i386.c (override_options): Force
17148         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
17149
17150 2008-03-04  Jan Hubicka  <jh@suse.cz>
17151
17152         PR c++/35262
17153         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
17154         in last commit.
17155
17156 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
17157
17158         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
17159         label to probe the stack.
17160
17161 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
17162
17163         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
17164         (__gthr_win32_mutex_destroy): Declare.
17165         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
17166         __gthr_win32_mutex_destroy.
17167         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
17168
17169 2008-03-03  Jan Hubicka  <jh@suse.cz>
17170
17171         PR c++/35262
17172         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
17173         aggressive on inlining cold calls.
17174
17175 2008-03-03  Richard Guenther  <rguenther@suse.de>
17176
17177         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
17178         struct copies into the expression table.
17179         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
17180         (try_to_simplify): Likewise.
17181         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
17182         integral and pointer arguments which do not change the
17183         precision to NOP_EXPRs.
17184         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
17185         VIEW_CONVERT_EXPR case.
17186
17187 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
17188
17189         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
17190         defined in a loop at depth 0 is invariant.
17191         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
17192         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
17193         be called at loop depth 0.
17194
17195 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
17196
17197         PR driver/35420
17198         * gcc.c (process_command): Update copyright notice dates.
17199         * gcov.c (print_version): Likewise.
17200         * gcov-dump.c (print_version): Likewise.
17201         * mips-tfile.c (main): Likewise.
17202         * mips-tdump.c (main): Likewise.
17203
17204 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17205
17206         PR 24924
17207         * c-common.c (flag_permissive): Delete.
17208         (constant_expression_warnings): Check flags first.
17209         (constant_expression_error): New.
17210         * c-common.h (flag_permissive): Delete.
17211         (constant_expression_error): Declare.
17212         * flags.h (flag_permissive): Declare. Update description.
17213         * diagnostic.c (pedwarn): Update.
17214         (permerror): New.
17215         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
17216         (permissive_error_kind): New.
17217         * toplev.c (flag_permissive): Define. Update description.
17218         * toplev.h (permissive_error_kind): Declare.
17219         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
17220         (pedwarn_c90): Use pedantic_warning_kind.
17221         * c-opts.c (c_common_post_options): flag_permissive does not affect
17222         flag_pedantic_errors.
17223
17224 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
17225
17226         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
17227         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
17228         __absvsi2, __absvDI2): Use unsigned arithmetic.
17229
17230 2008-03-02  Andi Kleen  <ak@suse.de>
17231             Richard Guenther  <rguenther@suse.de>
17232
17233         * struct-equiv.c: Remove file.
17234         * cfg_cleanup.c (condjump_equiv_p): Remove.
17235         * Makefile.in (OBJS-common): Remove struct-equiv.o.
17236         (struct-equiv.o): Remove rule.
17237         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
17238         insns_match_p, struct_equiv_block_eq, struct_equiv_init,
17239         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
17240
17241 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
17242
17243         * ifcvt.c (noce_process_if_block): Try to handle only the then
17244         block if the else block exists but isn't suitable.
17245
17246 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
17247
17248         PR gcc/35063
17249         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
17250         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
17251         regression from previous patch.
17252
17253 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
17254
17255         PR gcc/35063
17256         * gthr.h: Add __gthread_mutex_destroy as a function that must be
17257         implemented.
17258         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
17259         * gthr-single.h (__gthread_mutex_destroy): Likewise.
17260         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
17261         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
17262         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
17263         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
17264         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
17265         (__gthread_mutex_destroy_function): Rename to
17266         __gthread_mutex_destroy.
17267         * gthr-dce.h (__gthread_mutex_destroy): Call
17268         pthread_mutex_destroy.
17269         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
17270         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
17271         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
17272
17273 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
17274
17275         * df-scan.c (df_ref_chain_change_bb): Simplify.
17276         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
17277         set_block_for_insn if there's any change.
17278         * df.h ((df_insn_change_bb): Fix prototype.
17279         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
17280         df_insn_change_bb, don't call set_block_for_insn.
17281         * emit-rtl.c (reorder_insns): Likewise.
17282         * haifa-sched.c (move_insn): Likewise.
17283
17284 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
17285
17286         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
17287
17288 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
17289
17290         * tree-flow-inline.h (next_readonly_imm_use): Return
17291         NULL_USE_OPERAND_P after the end.
17292
17293 2008-03-01  Richard Guenther  <rguenther@suse.de>
17294
17295         PR tree-optimization/35411
17296         * tree-sra.c (sra_build_assignment): Split conversion to
17297         final type to a separate statement if we are not assigning
17298         to a register.
17299
17300 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
17301
17302         * fold-const.c (fold_convertible_p): Correct the logic to follow
17303         that in fold_convert().
17304
17305 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
17306
17307         PR c++/35315
17308         * tree-inline.c (build_duplicate_type): When we make a
17309         duplicate type, make it unique in the canonical types system.
17310
17311 2008-02-29  Tom Tromey  <tromey@redhat.com>
17312
17313         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
17314         input_file_stack_history, input_file_stack_restored): Remove.
17315         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
17316         * input.h (struct file_stack): Remove.
17317         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
17318         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
17319         Likewise.
17320         * diagnostic.h (struct diagnostic_context) <last_module>: Change
17321         type.
17322         (diagnostic_last_module_changed): Add 'map' argument.
17323         (diagnostic_set_last_function): Likewise.
17324         * diagnostic.c (undiagnostic_report_current_module): Iterate using
17325         line map, not input_file_stack.
17326         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
17327
17328 2008-02-29  Paul Brook  <paul@codesourcery.com>
17329
17330         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
17331
17332 2008-02-29  Paul Brook  <paul@codesourcery.com>
17333
17334         * config/arm/ieee754-df.S (muldf3): Use RET macros.
17335
17336 2008-02-29  Richard Guenther  <rguenther@suse.de>
17337
17338         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
17339         vn_lookup_or_add.
17340         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
17341         value for comparing for a store match.
17342         (simplify_unary_expression): Do nothing for SSA_NAMEs.
17343         (try_to_simplify): Do not do a full-blown reference lookup.
17344
17345 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
17346
17347         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
17348         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
17349
17350         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
17351
17352 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
17353
17354         * tree-loop-linear.c (try_interchange_loops): Compare memory access
17355         strides against cache sizes.
17356
17357 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
17358
17359         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
17360         constant to fpul.
17361
17362 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
17363
17364         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
17365         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
17366         is smaller than the original promoted value.
17367         (simplify_subreg): If OP is a SUBREG, try to preserve its
17368         SUBREG_PROMOTED_VAR_P information.
17369
17370 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
17371
17372         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
17373         (VN_INFO_GET): Allocate new objects on the obstack.
17374         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
17375         for rpo_numbers_temp, for consistency.
17376         (free_scc_vn): Free the obstack.
17377
17378 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
17379
17380         * doc/invoke.texi: Document -ftree-loop-distribution.
17381         * tree-loop-distribution.c: New.
17382         * tree-pass.h (pass_loop_distribution): New.
17383         * graphds.h (struct graph): Add htab_t indices.
17384         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
17385         * tree-vectorizer.c (rename_variables_in_loop): Extern.
17386         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
17387         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
17388         * tree-data-ref.c (debug_data_dependence_relations): New.
17389         (dump_data_dependence_relation): Also print data references.
17390         (free_data_ref): Extern.
17391         (same_access_functions): Moved...
17392         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
17393         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
17394         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
17395         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
17396         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
17397         (stmts_from_loop): Skip LABEL_EXPR.
17398         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
17399         New.
17400         (build_rdg): Initialize rdg->indices htab.
17401         (free_rdg, stores_from_loop, ref_base_address,
17402         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
17403         have_similar_memory_accesses_1, ref_base_address_1,
17404         remove_similar_memory_refs): New.
17405         * tree-data-ref.h: Depend on tree-chrec.h.
17406         (debug_data_dependence_relations, free_data_ref): Declared.
17407         (same_access_functions): ... here.
17408         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
17409         New.
17410         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
17411         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
17412         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
17413         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
17414         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
17415         rdg_vertex_for_stmt): Declared.
17416         (struct rdg_edge): Add level.
17417         (RDGE_LEVEL): New.
17418         (free_rdg, stores_from_loop, remove_similar_memory_refs,
17419         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
17420         Declared.
17421         (rdg_has_similar_memory_accesses): New.
17422         * tree-vect-analyze.c: Remove unused static decls.
17423         * lambda.h (dependence_level): New.
17424         * common.opt (ftree-loop-distribution): New.
17425         * tree-flow.h (mark_virtual_ops_in_bb,
17426         slpeel_tree_duplicate_loop_to_edge_cfg,
17427         rename_variables_in_loop): Declared.
17428         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
17429         (OBJS-common): Add tree-loop-distribution.o.
17430         (tree-loop-distribution.o): New rule.
17431         * tree-cfg.c (mark_virtual_ops_in_bb): New.
17432         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
17433         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
17434
17435 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
17436
17437         PR target/33963
17438         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
17439         other than structures and unions.
17440
17441 2008-02-28  Richard Guenther  <rguenther@suse.de>
17442
17443         Revert:
17444         2008-02-26  Richard Guenther  <rguenther@suse.de>
17445
17446         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
17447         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
17448         (lookup_decl_from_uid): Declare.
17449         (remove_decl_from_map): Likewise.
17450         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
17451         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
17452         (decl_for_uid_map): New global hashtable mapping DECL_UID
17453         to the decl tree.
17454         (init_ttree): Allocate it.
17455         (insert_decl_to_uid_decl_map): New helper function.
17456         (make_node_stat): Insert new decls into the map.
17457         (copy_node_stat): Likewise.
17458         (lookup_decl_from_uid): New function.
17459         (remove_decl_from_map): Likewise.
17460         (print_decl_for_uid_map_statistics): New helper.
17461         (dump_tree_statistics): Call it.
17462
17463         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
17464         (referenced_var_iterator): Adjust.
17465         (FOR_EACH_REFERENCED_VAR): Adjust.
17466         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
17467         (num_referenced_vars): Adjust.
17468         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
17469         (first_referenced_var): Remove.
17470         (end_referenced_vars_p): Likewise.
17471         (next_referenced_var): Likewise.
17472         (referenced_var_iterator_set): New helper function.
17473         * tree-dfa.c (referenced_var_lookup): Adjust.
17474         (referenced_var_check_and_insert): Likewise.
17475         (remove_referenced_var): Likewise.
17476         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
17477         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17478         (verify_call_clobbering): Likewise.
17479         (verify_memory_partitions): Likewise.
17480         (init_tree_ssa): Allocate bitmap instead of hashtable for
17481         referenced_vars.
17482         (delete_tree_ssa): Adjust.
17483         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
17484         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17485         (compute_tag_properties): Likewise.
17486         (set_initial_properties): Likewise.
17487         (find_partition_for): Likewise.
17488         (update_reference_counts): Likewise.
17489         (dump_may_aliases_for): Likewise.
17490         * tree-ssa-operands.c (add_virtual_operand): Likewise.
17491         (add_call_clobber_ops): Likewise.
17492         (add_call_read_ops): Likewise.
17493         (get_asm_expr_operands): Likewise.
17494         * tree-into-ssa.c (dump_decl_set): Likewise.
17495         (update_ssa): Likewise.
17496         * tree-sra.c (scan_function): Likewise.
17497         (decide_instantiations): Likewise.
17498         (scalarize_parms): Likewise.
17499         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
17500         (dsa_named_for): Likewise.
17501         * tree-ssa-structalias.c (update_alias_info): Likewise.
17502         (merge_smts_into): Likewise.
17503
17504 2008-02-27  David Daney  <ddaney@avtrex.com>
17505
17506         PR target/34409
17507         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
17508         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
17509         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
17510         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
17511         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
17512
17513 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
17514
17515         PR target/25477
17516         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
17517         (BUILT_IN_NEXTTOWARD): Remove.
17518         (BUILT_IN_NEXTTOWARDF): Ditto.
17519         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
17520         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
17521
17522 2008-02-27  Tom Tromey  <tromey@redhat.com>
17523
17524         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
17525         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
17526
17527 2008-02-27  Jan Beulich  <jbeulich@novell.com>
17528
17529         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
17530         update the respective field on newdecl.
17531
17532 2008-02-27  Revital Eres  <eres@il.ibm.com>
17533
17534         PR rtl-optimization/34999
17535         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
17536         crossing edges that ends with a call insn.
17537         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
17538         call insn and clear the EDGE_CROSSING flag of the crossing edge
17539         when fixing fallthru edges.
17540
17541 2008-02-27  Richard Guenther  <rguenther@suse.de>
17542
17543         PR middle-end/35390
17544         * fold-const.c (fold_unary): Return the correct argument,
17545         converted to the result type.
17546
17547 2008-02-27  Richard Guenther  <rguenther@suse.de>
17548
17549         PR middle-end/34971
17550         * expr.c (expand_expr_real_1): Assert on rotates that operate
17551         on partial modes.
17552         * fold-const.c (fold_binary): Use the types precision, not the
17553         bitsize of the mode if folding rotate expressions.  Build rotates
17554         only for full modes.
17555
17556 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
17557
17558         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
17559         and CPP_PRAGMA_EOL.
17560         * c-pragma.c (pragma_ns_name): New typedef.
17561         (registered_pp_pragmas): New variable.
17562         (c_pp_lookup_pragma): New function.
17563         (c_register_pragma_1): If flag_preprocess_only, do nothing
17564         for non-expanded pragmas, for expanded ones push pragma's
17565         namespace and name into registered_pp_pragmas vector.
17566         (c_invoke_pragma_handler): Register OpenMP pragmas even when
17567         flag_preprocess_only, don't register GCC pch_preprocess
17568         pragma if flag_preprocess_only.
17569         * c-opts.c (c_common_init): Call init_pragma even if
17570         flag_preprocess_only.
17571         * c-pragma.c (c_pp_lookup_pragma): New prototype.
17572         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
17573         cpp_register_pragma if flag_preprocess_only.
17574
17575 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17576
17577         PR c/28800
17578         * c-parser.c (c_parser_translation_unit): Warn for empty
17579         translation unit, not empty source file.
17580
17581 2008-02-26  Paul Brook  <paul@codesourcery.com>
17582
17583         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
17584         operand for Thumb-2.
17585         * config/arm/arm.h (reg_class): Add CORE_REGS.
17586         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
17587         (BASE_REG_CLASS): Use CORE_REGS.
17588         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
17589         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
17590         (REGNO_OK_FOR_INDEX_P): Exclude SP.
17591         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
17592         ARM_REGNO_OK_FOR_INDEX_P.
17593         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
17594         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
17595         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
17596         (ldm/stm peepholes): Ditto.
17597         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
17598         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
17599         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
17600         * config/arm/constraints.md: Enable "k" constraint on ARM.
17601
17602 2008-02-27  Ben Elliston  <bje@au.ibm.com>
17603
17604         * config/rs6000/rs6000.c: Annotate cache line size field in all
17605         instances of struct processor_costs.
17606
17607 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
17608
17609         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
17610         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
17611         jump_bypass): New counters.
17612         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
17613         * dce.c (gate_ud_dce): Same.
17614         (gate_fast_dce): Same.
17615         * dse.c (gate_dse1): New function.
17616         (gate_dse2): New function.
17617         (gate_dse): Merge results of new gate functions.
17618         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
17619         (gate_handle_jump_bypass): Add dbg_cnt.
17620         (gate_handle_gcse): Add dbg_cnt.
17621         * ifcvt.c (gate_handle_if_conversion): Same.
17622         (gate_handle_if_after_combine): Same.
17623         (gate_handle_if_after_reload): Same.
17624         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
17625
17626 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
17627
17628         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
17629         line sizes.
17630         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
17631
17632 2008-02-26  Jason Merrill  <jason@redhat.com>
17633
17634         PR c++/35315
17635         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
17636         alone if it's the naming decl for the type's main variant.
17637
17638 2008-02-26  Tom Tromey  <tromey@redhat.com>
17639
17640         * system.h (USE_MAPPED_LOCATION): Poison.
17641         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
17642         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
17643         (make_goto_expr_edges): Likewise.
17644         (remove_bb): Likewise.
17645         (execute_warn_function_return): Likewise.
17646         * basic-block.h (struct edge_def) <goto_locus>: Change type to
17647         location_t.
17648         * c-common.c (fname_decl): Remove old location code.
17649         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
17650         location code.
17651         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
17652         variant.
17653         (ASM_INPUT_SOURCE_LOCATION): Likewise.
17654         (gen_rtx_ASM_INPUT): Likewise.
17655         (gen_rtx_ASM_INPUT_loc): Likewise.
17656         (get_rtx_asm_OPERANDS): Remove.
17657         * cfglayout.c (insn_locators_alloc): Remove old location code.
17658         (set_curr_insn_source_location): Likewise.
17659         (curr_insn_locator): Likewise.
17660         * print-tree.c (print_node): Remove old location code.
17661         * tree-mudflap.c (mf_varname_tree): Remove old location code.
17662         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
17663         * cfgexpand.c (expand_gimple_cond_expr): Don't use
17664         location_from_locus.
17665         (construct_exit_block): Remove old location code.
17666         * emit-rtl.c (force_next_line_note): Remove old location code.
17667         * profile.c (branch_prob): Remove old location code.
17668         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
17669         LOC_LINE): Remove old-location variants.
17670         * langhooks.c (lhd_print_error_function): Remove old location
17671         code.
17672         * configure, config.in: Rebuilt.
17673         * configure.ac (--enable-mapped-location): Remove.
17674         * c-decl.c (c_init_decl_processing): Remove old location code.
17675         (finish_function): Likewise.
17676         * recog.c (decode_asm_operands): Remove old location code.
17677         * c-pch.c (c_common_read_pch): Remove old location code.
17678         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
17679         variants.
17680         * gimple-low.c (lower_function_body): Remove old location code.
17681         * toplev.c (unknown_location): Remove.
17682         (push_srcloc): Remove old-location variant.
17683         (process_options): Remove old location code.
17684         (lang_dependent_init): Likewise.
17685         * input.h (UNKNOWN_LOCATION): Move definition.
17686         (location_t): Undeprecate.
17687         (source_locus): Remove.
17688         (location_from_locus): Remove.
17689         (struct location_s): Remove.
17690         Remove all old-location code.
17691         (input_line, input_filename): Remove.
17692         * final.c (final_scan_insn): Remove old location code.
17693         * diagnostic.c (diagnostic_build_prefix): Remove
17694         USE_MAPPED_LOCATION test.
17695         * tree.h (gimple_stmt) <locus>: Now a location_t.
17696         (tree_exp) <locus>: Likewise.
17697         (DECL_IS_BUILTIN): Remove old-location variant.
17698         (annotate_with_file_line, annotate_with_locus): Likewise.
17699         (expr_locus, set_expr_locus): Update.
17700         * tree.c (build1_stat): Remove old location code.
17701         (last_annotated_node): Remove.
17702         (annotate_with_file_line): Remove old-location variant.
17703         (annotate_with_locus): Likewise.
17704         (expr_location): Remove old location code.
17705         (set_expr_location): Likewise.
17706         (expr_has_location): Likewise.
17707         (expr_locus): Likewise.
17708         (set_expr_locus): Likewise.
17709         (expr_filename): Don't use location_from_locus.
17710         (expr_lineno): Likewise.
17711         * rtl-error.c (location_for_asm): Remove old location code.
17712         * c-lex.c (cb_line_change): Remove old location code.
17713         (fe_file_change): Likewise.
17714         (cb_def_pragma): Likewise.
17715         (c_lex_with_flags): Likewise.
17716         * gengtype.c (do_typedef): Don't special-case location types.
17717         (define_location_structures): Remove.
17718         (main): Don't call define_location_structures.
17719         * tree-pretty-print.c (dump_implicit_edges): Remove old location
17720         code.
17721
17722 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17723
17724         PR 26264
17725         * builtins.def (BUILT_IN_STDARG_START): Remove.
17726         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
17727         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
17728         * tree-inline.c (inline_forbidden_p_1): Likewise.
17729
17730 2008-02-26  Richard Guenther  <rguenther@suse.de>
17731
17732         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
17733         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
17734         (lookup_decl_from_uid): Declare.
17735         (remove_decl_from_map): Likewise.
17736         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
17737         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
17738         (decl_for_uid_map): New global hashtable mapping DECL_UID
17739         to the decl tree.
17740         (init_ttree): Allocate it.
17741         (insert_decl_to_uid_decl_map): New helper function.
17742         (make_node_stat): Insert new decls into the map.
17743         (copy_node_stat): Likewise.
17744         (lookup_decl_from_uid): New function.
17745         (remove_decl_from_map): Likewise.
17746         (print_decl_for_uid_map_statistics): New helper.
17747         (dump_tree_statistics): Call it.
17748
17749         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
17750         (referenced_var_iterator): Adjust.
17751         (FOR_EACH_REFERENCED_VAR): Adjust.
17752         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
17753         (num_referenced_vars): Adjust.
17754         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
17755         (first_referenced_var): Remove.
17756         (end_referenced_vars_p): Likewise.
17757         (next_referenced_var): Likewise.
17758         (referenced_var_iterator_set): New helper function.
17759         * tree-dfa.c (referenced_var_lookup): Adjust.
17760         (referenced_var_check_and_insert): Likewise.
17761         (remove_referenced_var): Likewise.
17762         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
17763         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17764         (verify_call_clobbering): Likewise.
17765         (verify_memory_partitions): Likewise.
17766         (init_tree_ssa): Allocate bitmap instead of hashtable for
17767         referenced_vars.
17768         (delete_tree_ssa): Adjust.
17769         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
17770         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17771         (compute_tag_properties): Likewise.
17772         (set_initial_properties): Likewise.
17773         (find_partition_for): Likewise.
17774         (update_reference_counts): Likewise.
17775         (dump_may_aliases_for): Likewise.
17776         * tree-ssa-operands.c (add_virtual_operand): Likewise.
17777         (add_call_clobber_ops): Likewise.
17778         (add_call_read_ops): Likewise.
17779         (get_asm_expr_operands): Likewise.
17780         * tree-into-ssa.c (dump_decl_set): Likewise.
17781         (update_ssa): Likewise.
17782         * tree-sra.c (scan_function): Likewise.
17783         (decide_instantiations): Likewise.
17784         (scalarize_parms): Likewise.
17785         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
17786         (dsa_named_for): Likewise.
17787         * tree-ssa-structalias.c (update_alias_info): Likewise.
17788         (merge_smts_into): Likewise.
17789
17790 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17791
17792         PR 34351
17793         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
17794         * c-opts.c (c_common_handle_option): Wall enables
17795         Wvolatile-register-var.
17796         * common.opt: Move Wvolatile-register-var to...
17797         * c.opt: ...here.
17798
17799 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17800
17801         * common.opt (Wlarger-than=): New.
17802         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
17803         -Wlarger-than=.
17804         * opts.c (common_handle_option): Handle -Wlarger-than=.
17805         * optc-gen.awk: Likewise.
17806         * opth-gen.awk: Likewise.
17807         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
17808         * tree-optimize.c (tree_rest_of_compilation): Likewise.
17809
17810 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
17811
17812         * c-common.c (match_case_to_enum_1): Add appropriate
17813         OPT_W* parameter to warning.
17814         (c_do_switch_warnings): Likewise.
17815         * c-typeck.c (warning_init): Add one more parameter following
17816         'warning' function.
17817         (push_init_level): Update call to warning_init.
17818         (pop_init_level): Likewise.
17819         (add_pending_init): Likewise.
17820         (output_init_element: Likewise.
17821
17822 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17823
17824         PR 28322
17825         * toplev.c (toplev_main): If there are warnings or error, print
17826         errors for ignored options.
17827         * opts.c (ignored_options): New static variable.
17828         (postpone_unknown_option_error): New.
17829         (print_ignored_options): New.
17830         (handle_option): Postpone errors for unknown -Wno-* options.
17831         * opts.h (print_ignored_options): Declare.
17832
17833 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
17834
17835         * config/mips/mips.md (loadgp_blockage, blockage): Change type
17836         to "ghost".
17837
17838 2008-02-25  Richard Guenther  <rguenther@suse.de>
17839
17840         Revert:
17841         2008-02-25  Richard Guenther  <rguenther@suse.de>
17842
17843         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
17844         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
17845         (lookup_decl_from_uid): Declare.
17846         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
17847         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
17848         (decl_for_uid_map): New global hashtable mapping DECL_UID
17849         to the decl tree.
17850         (init_ttree): Allocate it.
17851         (insert_decl_to_uid_decl_map): New helper function.
17852         (make_node_stat): Insert new decls into the map.
17853         (copy_node_stat): Likewise.
17854         (lookup_decl_from_uid): New function.
17855         (print_decl_for_uid_map_statistics): New helper.
17856         (dump_tree_statistics): Call it.
17857
17858         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
17859         (referenced_var_iterator): Adjust.
17860         (FOR_EACH_REFERENCED_VAR): Adjust.
17861         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
17862         (num_referenced_vars): Adjust.
17863         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
17864         (first_referenced_var): Remove.
17865         (end_referenced_vars_p): Likewise.
17866         (next_referenced_var): Likewise.
17867         (referenced_var_iterator_set): New helper function.
17868         * tree-dfa.c (referenced_var_lookup): Adjust.
17869         (referenced_var_check_and_insert): Likewise.
17870         (remove_referenced_var): Likewise.
17871         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
17872         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17873         (verify_call_clobbering): Likewise.
17874         (verify_memory_partitions): Likewise.
17875         (init_tree_ssa): Allocate bitmap instead of hashtable for
17876         referenced_vars.
17877         (delete_tree_ssa): Adjust.
17878         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
17879         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17880         (compute_tag_properties): Likewise.
17881         (set_initial_properties): Likewise.
17882         (find_partition_for): Likewise.
17883         (update_reference_counts): Likewise.
17884         (dump_may_aliases_for): Likewise.
17885         * tree-ssa-operands.c (add_virtual_operand): Likewise.
17886         (add_call_clobber_ops): Likewise.
17887         (add_call_read_ops): Likewise.
17888         (get_asm_expr_operands): Likewise.
17889         * tree-into-ssa.c (dump_decl_set): Likewise.
17890         (update_ssa): Likewise.
17891         * tree-sra.c (scan_function): Likewise.
17892         (decide_instantiations): Likewise.
17893         (scalarize_parms): Likewise.
17894         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
17895         (dsa_named_for): Likewise.
17896         * tree-ssa-structalias.c (update_alias_info): Likewise.
17897         (merge_smts_into): Likewise.
17898
17899 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
17900
17901         PR fortran/29549
17902         * doc/invoke.texi (-fcx-limited-range): Document new option.
17903         * toplev.c (process_options): Handle -fcx-fortran-rules.
17904         * common.opt: Add documentation for -fcx-fortran-rules.
17905
17906 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
17907
17908         PR c/35162
17909         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
17910         actual behaviour and C99.
17911
17912 2008-02-26  Ben Elliston  <bje@au.ibm.com>
17913
17914         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
17915         (ASM_CPU_POWER6_SPEC): Likewise.
17916         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
17917         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
17918         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
17919
17920 2008-02-25  Richard Guenther  <rguenther@suse.de>
17921
17922         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
17923         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
17924         (lookup_decl_from_uid): Declare.
17925         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
17926         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
17927         (decl_for_uid_map): New global hashtable mapping DECL_UID
17928         to the decl tree.
17929         (init_ttree): Allocate it.
17930         (insert_decl_to_uid_decl_map): New helper function.
17931         (make_node_stat): Insert new decls into the map.
17932         (copy_node_stat): Likewise.
17933         (lookup_decl_from_uid): New function.
17934         (print_decl_for_uid_map_statistics): New helper.
17935         (dump_tree_statistics): Call it.
17936
17937         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
17938         (referenced_var_iterator): Adjust.
17939         (FOR_EACH_REFERENCED_VAR): Adjust.
17940         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
17941         (num_referenced_vars): Adjust.
17942         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
17943         (first_referenced_var): Remove.
17944         (end_referenced_vars_p): Likewise.
17945         (next_referenced_var): Likewise.
17946         (referenced_var_iterator_set): New helper function.
17947         * tree-dfa.c (referenced_var_lookup): Adjust.
17948         (referenced_var_check_and_insert): Likewise.
17949         (remove_referenced_var): Likewise.
17950         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
17951         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17952         (verify_call_clobbering): Likewise.
17953         (verify_memory_partitions): Likewise.
17954         (init_tree_ssa): Allocate bitmap instead of hashtable for
17955         referenced_vars.
17956         (delete_tree_ssa): Adjust.
17957         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
17958         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17959         (compute_tag_properties): Likewise.
17960         (set_initial_properties): Likewise.
17961         (find_partition_for): Likewise.
17962         (update_reference_counts): Likewise.
17963         (dump_may_aliases_for): Likewise.
17964         * tree-ssa-operands.c (add_virtual_operand): Likewise.
17965         (add_call_clobber_ops): Likewise.
17966         (add_call_read_ops): Likewise.
17967         (get_asm_expr_operands): Likewise.
17968         * tree-into-ssa.c (dump_decl_set): Likewise.
17969         (update_ssa): Likewise.
17970         * tree-sra.c (scan_function): Likewise.
17971         (decide_instantiations): Likewise.
17972         (scalarize_parms): Likewise.
17973         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
17974         (dsa_named_for): Likewise.
17975         * tree-ssa-structalias.c (update_alias_info): Likewise.
17976         (merge_smts_into): Likewise.
17977
17978 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
17979
17980         PR target/35258
17981         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
17982         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
17983         * alias.h (nonoverlapping_memrefs_p): Likewise.
17984
17985 2008-02-25  Jan Beulich  <jbeulich@novell.com>
17986
17987         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
17988         * config/i386/netware-libgcc.exp: Add __bswap?i2,
17989         __emultls_get_address, __emultls_register_common,
17990         __floatundi?f, and _Unwind_GetIPInfo.
17991         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
17992         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
17993         (gen_regparm_prefix): Likewise.
17994         (i386_nlm_encode_section_info): Sync with
17995         config/i386/winnt.c:i386_pe_encode_section_info().
17996         (i386_nlm_maybe_mangle_decl_assembler_name): New.
17997         i386_nlm_mangle_decl_assembler_name): New.
17998         (netware_override_options): New.
17999         * config/i386/netware.h (netware_override_options): Declare.
18000         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
18001         (i386_nlm_mangle_decl_assembler_name): Declare.
18002         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
18003
18004 2008-02-25  Ben Elliston  <bje@au.ibm.com>
18005
18006         PR other/32948
18007         * c-decl.c (grokdeclarator): Remove unused local variables
18008         `typedef_type' and `type_as_written'.
18009         * bb-reorder.c
18010         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
18011         unused local variable `has_hot_blocks'.
18012         (fix_crossing_conditional_branches): Remove unused local variable
18013         `prev_bb'.
18014
18015 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
18016
18017         PR middle-end/19984
18018         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
18019         using DEF_C99_BUILTIN.
18020         (BUILT_IN_NANF): Ditto.
18021         (BUILT_IN_NANL): Ditto.
18022
18023 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
18024             Revital Eres  <eres@il.ibm.com>
18025
18026         * modulo-sched.c (calculate_must_precede_follow): Address TODO
18027         regarding the order of two dependent insns in the same row.
18028
18029 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
18030
18031         * stor-layout.c (layout_decl): Do not bump the alignment of a
18032         bit-field to more than byte alignment if it is packed.
18033
18034 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
18035
18036         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
18037         e300c2 and e300c3.
18038
18039 2008-02-24  Diego Novillo  <dnovillo@google.com>
18040
18041         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
18042
18043         PR 33738
18044         * tree-vrp.c (vrp_evaluate_conditional): With
18045         -Wtype-limits, emit a warning when comparing against a
18046         constant outside the natural range of OP0's type.
18047         * c.opt (Wtype-limits): Move ...
18048         * common.opt (Wtype-limits): ... here.
18049
18050 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
18051
18052         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
18053         * config/rs6000/e300c2c3.md: New file.
18054         * config/rs6000/rs6000.c (processor_costs): Add new costs for
18055         e300c2 and e300c3.
18056         (rs6000_override_options): Add e300c2 and e300c3 cases to
18057         processor_target_table. Do not allow usage of Altivec or Spe
18058         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
18059         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
18060         * config/rs6000/rs6000.h (processor_type): Add
18061         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
18062         (ASM_CPU_SPEC): Add e300c2 and e300c3.
18063         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
18064         and ppce300c3. Include e300c2c3.md.
18065
18066 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
18067
18068         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
18069         instead of TARGET_STRICT_ALIGN.
18070
18071 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
18072
18073         * explow.c (memory_address): Assert that the generated address is
18074         valid.
18075
18076 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
18077
18078         PR target/25477
18079         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
18080         * config/darwin-ppc-ldouble-patch.def: New file.
18081         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
18082         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
18083         SUBTARGET_INIT_BUILTINS if defined.
18084         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
18085         New functions.
18086
18087 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
18088
18089         PR rtl-opt/33512
18090         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
18091         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
18092
18093 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
18094
18095         PR pch/35027
18096         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
18097         file" warning condtional on -Winvalid-PCH.
18098
18099 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
18100
18101         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
18102
18103 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
18104
18105         PR target/22076
18106         PR target/34256
18107         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
18108         prevent reload from using MMX registers.
18109         (*mov<mode>_internal): Ditto.
18110         (*movv2sf_internal_rex64): Ditto.
18111         (*movv2sf_internal): Ditto.
18112
18113 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18114
18115         PR documentation/31569
18116         * doc/install.texi2html: Use makeinfo --no-number-sections.
18117
18118 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
18119
18120         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
18121         ensure that we can address an entire entity > 8 bytes.  Don't
18122         generate reg+reg addressing for such data.
18123
18124 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
18125
18126         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
18127         strings when optimizing for size, unless the target cares about
18128         alignment.
18129
18130 2008-02-22  Tom Tromey  <tromey@redhat.com>
18131
18132         * regclass.c (current_pass): Remove declaration.
18133
18134 2008-02-22  Anatoly Sokolov <aesok@post.ru>
18135
18136         * config/avr/libgcc.S (__RAMPZ__): Define.
18137         (__do_copy_data): Add for devices with 128KB code memory.
18138
18139 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
18140
18141         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
18142         Use spe_abi.
18143         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
18144
18145 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
18146
18147         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
18148         GENNONACR_REGS.
18149
18150 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18151
18152         PR c/19999
18153         * c-typeck.c (build_binary_op): Warn about floating point
18154         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
18155
18156 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
18157
18158         PR target/34526
18159         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
18160         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
18161         add vrsave.
18162         (rs6000_override_options): Set altivec_abi as default, not override,
18163         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
18164         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
18165         is used; use new member spe_abi.
18166         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
18167         spe_abi and altivec_abi.
18168
18169 2008-02-22  Tomas Bily  <tbily@suse.cz>
18170
18171         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
18172
18173 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18174
18175         PR bootstrap/35273
18176         * config.build (build_file_translate): Set to `CMD //c' only if
18177         it works.
18178         * Makefile.in (build_file_translate): Improve comment.
18179
18180 2008-02-21  Jan Hubicka  <jh@suse.cz>
18181
18182         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
18183         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
18184         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
18185
18186 2008-02-21  Michael Matz  <matz@suse.de>
18187
18188         PR target/35264
18189         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
18190
18191 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
18192
18193         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
18194         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
18195         as insn constraint.
18196         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
18197         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
18198         SSE_VEC_FLOAT_MODE_P as insn constraint.
18199         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
18200         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
18201         sse4a_movntdf using MODEF mode iterator.
18202         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
18203         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
18204         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
18205         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
18206         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
18207         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
18208         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
18209
18210 2008-02-21  Richard Guenther  <rguenther@suse.de>
18211
18212         * tree.def (PAREN_EXPR): New tree code.
18213         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
18214         and PAREN_EXPR.
18215         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
18216         * expr.c (expand_expr_real_1): Likewise.
18217         * tree-inline.c (estimate_num_insns_1): Likewise.
18218         * tree-complex.c (expand_complex_move): Likewise.
18219         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
18220         as plain x.
18221
18222 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
18223
18224         PR target/35225
18225         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
18226
18227 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
18228
18229         PR target/35190
18230         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
18231
18232         * config/sh/sh.c (find_barrier): Don't go past
18233         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
18234
18235 2008-02-20  DJ Delorie  <dj@redhat.com>
18236
18237         * config/h8300/h8300.md (insv): Force source operand to be a register.
18238
18239         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
18240         as a jump, not as a plain insn.
18241
18242 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
18243
18244         * doc/invoke.texi (Warning Options): Add new option
18245         -Wframe-larger-than=.
18246         (-Wframe-larger-than): Document.
18247
18248         * flags.h (warn_frame_larger_than, frame_larger_than_size):
18249         Add declarations for new option variables.
18250
18251         * final.c (final_start_function): Check the frame size
18252         before emission and issue a Wframe-larger-than warning.
18253
18254         * opts.c (warn_frame_larger_than, frame_larger_than_size):
18255         Add definitions for new option variables.
18256         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
18257
18258         * common.opt (Wframe-larger-than=): New option.
18259
18260 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
18261
18262         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
18263         (<sse>_div<mode>3): Ditto.
18264         (<sse>_vmdiv<mode>3): Ditto.
18265         (<sse>_vmsqrt<mode>2): Ditto.
18266         (*smax<mode>3): Ditto.
18267         (sse5_frcz<mode>2): Ditto.
18268         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
18269         as insn constraint.
18270
18271 2008-02-20  Richard Guenther  <rguenther@suse.de>
18272
18273         PR middle-end/35265
18274         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
18275         be happy with INTEGRAL_TYPE_P.
18276
18277 2008-02-20  Richard Guenther  <rguenther@suse.de>
18278
18279         * fold-const.c (split_tree): Associate floatig-point expressions
18280         if flag_associative_math is set.
18281
18282 2008-02-20  Richard Guenther  <rguenther@suse.de>
18283
18284         * tree.h (fold_real_zero_addition_p): Declare.
18285         * fold-const.c (fold_real_zero_addition_p): Export.
18286         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
18287         floating-point operations with zero and one.
18288
18289 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
18290
18291         * doc/install.texi: Correct references to CFLAGS, replacing them
18292         with BOOT_CFLAGS.  Document flags used during bootstrap for
18293         target libraries.
18294
18295 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
18296
18297         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
18298         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
18299         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
18300         insn constraint.
18301         (smin<mode>3): Ditto from similar patterns.
18302         (smax<mode>3): Ditto.
18303         (*ieee_smin<mode>3): Ditto.
18304         (*ieee_smax<mode>3): Ditto.
18305         * config/i386/sse.md (sse): New mode attribute.
18306         (mov<mode>): Macroize expander from movv4sf and movv2df using
18307         SSEMODEF2P mode iterator.
18308         (<sse>_movnt<mode>): Ditto from similar patterns. Use
18309         SSE_VEC_FLOAT_MODE_P as insn constraint.
18310         (storent<mode>): Ditto.
18311         (storent<mode>): Macroize expander from storentsf and storentdf using
18312         MODEF mode iterator.
18313         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
18314         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
18315         (abs<mode>2): Ditto from similar patterns.
18316         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
18317         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
18318         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
18319         (<sse>_vmsqrt<mode>2): Ditto.
18320         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
18321         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
18322         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
18323         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
18324         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
18325         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
18326         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
18327         insn constraint.
18328         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
18329         iterator and SSE_FLOAT_MODE_P as insn constraint.
18330         (<sse>_ucomi): Ditto from similar patterns.
18331         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
18332         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
18333         SSE_VEC_FLOAT_MODE_P as insn constraint.
18334         (vcond<mode>): Ditto from similar patterns.
18335         (and<mode>3, *and<mode>3): Ditto.
18336         (<sse>_nand<mode>3): Ditto.
18337         (ior<mode>3, *ior<mode>3): Ditto.
18338         (xor<mode>3, *xor<mode>3): Ditto.
18339         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
18340         iterator and SSE_FLOAT_MODE_P as insn constraint.
18341         (*nand<mode>3): Ditto from similar patterns.
18342         (*ior<mode>3): Ditto.
18343         (*xor<mode>3): Ditto.
18344
18345 2008-02-20  Ira Rosen  <irar@il.ibm.com>
18346
18347         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
18348         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
18349         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
18350
18351 2008-02-19  Jan Hubicka  <jh@suse.cz>
18352
18353         * predict.c (tree_bb_level_predictions): Remove variable next
18354         mistakely introduced by previous commit.
18355
18356 2008-02-19  Jan Hubicka  <jh@suse.cz>
18357
18358         * predict.c (predict_paths_leading_to): Rewrite.
18359         (predict_paths_for_bb): New.
18360         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
18361
18362 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18363
18364         PR bootstrap/35218
18365         * Makefile.in (build_file_translate): New.
18366         (gcc-vers.texi): Use it for translating $(abs_srcdir).
18367         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
18368         * configure.ac (build_file_translate): Substitute it.
18369         * configure: Regenerate.
18370
18371 2008-02-19  Jan Hubicka  <jh@suse.cz>
18372
18373         PR rtl-optimization/34408
18374         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
18375         invalid sharing.
18376
18377 2008-02-19  Jan Hubicka  <jh@suse.cz>
18378
18379         PR middle-end/28779
18380         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
18381         call_expr.
18382
18383 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
18384
18385         PR Ada/35186
18386         * config/i386/i386-modes.def: Revert the last DI alignment
18387         change until Ada people can look into it.
18388
18389 2008-02-19  Nick Clifton  <nickc@redhat.com>
18390
18391         * opts.c (print_specific_help): Fix typo in --help text.
18392
18393 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
18394
18395         PR target/35239
18396         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
18397         32-bit inline asm without asm alternatives for host GCC < 3.0.
18398
18399 2008-02-19  Richard Guenther  <rguenther@suse.de>
18400
18401         PR tree-optimization/34989
18402         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
18403         Allow propagation to INDIRECT_REF if we can simplify only.
18404
18405 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18406
18407         * c-common.c (warn_for_collisions_1): Use appropriate option when
18408         warning.
18409
18410 2008-02-19  Nick Clifton  <nickc@redhat.com>
18411
18412         PR other/31349
18413         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
18414         (handle_options): Fix indentation.
18415         (print_filtered_help): If no language-specific options were
18416         displayed tell the user how to list all the options supported by
18417         the language's front-end.
18418         (print_specific_help): Fix indentation and remove duplicate line.
18419         (common_handle_option): Handle the -v option.
18420         For --help enable the display of undocumented options if the -v
18421         switch has been included on the command line.
18422         For --help= check for overlaps in the arguments between the option
18423         classes and the language names and issue a warning when they
18424         cannot be disambiguated.
18425         * c.opt (v): Pass on to the common option handler.
18426
18427 2008-02-19  Revital Eres  <eres@il.ibm.com>
18428
18429         * modulo-sched.c (sms_schedule): Change dump message when
18430         create_ddg function fails.
18431         (try_scheduling_node_in_cycle): Rename row to cycle.
18432         (print_partial_schedule): Rename CYCLE to ROW.
18433
18434 2008-02-19  Christian Bruel  <christian.bruel@st.com>
18435             Zdenek Dvorak  <ook@ucw.cz>
18436
18437         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
18438
18439 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
18440
18441         PR target/33555
18442         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
18443         (*x86_movdicc_0_m1_se): Ditto.
18444
18445 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
18446
18447         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
18448         (CMPtype): Define as __gcc_CMPtype.
18449         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
18450         (CMPtype): Define as __gcc_CMPtype.
18451
18452 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
18453
18454         Support valgrind 3.3 for --enable-checking=valgrind.
18455         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
18456         here.
18457         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
18458         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
18459         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
18460         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
18461         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
18462         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
18463         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
18464         respectively.
18465         * ggc-zone.c: Similar.
18466         * ggc-page.c: Similar.
18467
18468 2008-02-19  Paul Brook  <paul@codesourcery.com>
18469
18470         PR target/35071
18471         * config/arm/ieee754-df.S: Fix do_it typo.
18472         * config/arm/ieee754-sf.S: Fix do_it typo.
18473
18474 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
18475
18476         PR target/35189
18477         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
18478         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
18479         (OPTION_MASK_ISA_SSE_SET): Likewise.
18480         (OPTION_MASK_ISA_SSE2_SET): Likewise.
18481         (OPTION_MASK_ISA_SSE3_SET): Likewise.
18482         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
18483         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
18484         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
18485         (OPTION_MASK_ISA_SSE4_SET): Likewise.
18486         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
18487         (OPTION_MASK_ISA_SSE5_SET): Likewise.
18488         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
18489         (OPTION_MASK_ISA_MMX_UNSET): Updated.
18490         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
18491         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
18492         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
18493         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
18494         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
18495         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
18496         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
18497         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
18498         (OPTION_MASK_ISA_SSE4): Removed.
18499         (ix86_handle_option): Turn on bits in ix86_isa_flags and
18500         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
18501         (override_options): Don't turn on implied SSE/MMX bits in
18502         ix86_isa_flags.
18503
18504 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
18505
18506         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
18507         32bit host.
18508
18509 2008-02-18  Joey Ye  <joey.ye@intel.com>
18510
18511         PR middle-end/34921
18512         * tree-nested.c (insert_field_into_struct): Set type alignment
18513         to field alignment if the former is less than the latter.
18514
18515 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
18516
18517         * BASE-VER: Set to 4.4.0.
18518
18519 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18520
18521         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
18522         * doc/cfg.texi: Likewise.
18523         * doc/extend.texi: Likewise.
18524         * doc/gty.texi: Likewise.
18525         * doc/invoke.texi: Likewise.
18526         * doc/loop.texi: Likewise.
18527         * doc/md.texi: Likewise.
18528         * doc/passes.texi: Likewise.
18529         * doc/rtl.texi: Likewise.
18530         * doc/sourcebuild.texi: Likewise.
18531         * doc/tm.texi: Likewise.
18532         * doc/tree-ssa.texi: Likewise.
18533
18534 2008-02-17  Richard Guenther  <rguenther@suse.de>
18535
18536         PR middle-end/35227
18537         * tree-complex.c (init_parameter_lattice_values): Handle parameters
18538         without default definition.
18539
18540 2008-02-17  Richard Guenther  <rguenther@suse.de>
18541
18542         PR tree-optimization/35231
18543         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
18544         if A | B != 1.
18545
18546 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
18547
18548         Revert:
18549         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
18550         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
18551         libgcc_cmp_return mode.
18552
18553 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18554
18555         PR c/28368
18556         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
18557
18558 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
18559
18560         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
18561         multilibs.
18562
18563 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18564
18565         * doc/c-tree.texi: Use `@.' where appropriate.
18566         * doc/extend.texi: Likewise.
18567         * doc/install.texi: Likewise.
18568         * doc/invoke.texi: Likewise.
18569         * doc/loop.texi: Likewise.
18570         * doc/makefile.texi: Likewise.
18571         * doc/md.texi: Likewise.
18572         * doc/passes.texi: Likewise.
18573         * doc/standards.texi: Likewise.
18574         * doc/tm.texi: Likewise.
18575
18576 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
18577
18578         PR middle-end/35196
18579         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
18580         in entry_bb.
18581         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
18582         rather than in entry_bb.
18583
18584 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
18585
18586         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
18587         libgcc_cmp_return mode.
18588
18589 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
18590
18591         PR middle-end/35130
18592         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
18593         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
18594
18595 2008-02-15  Richard Guenther  <rguenther@suse.de>
18596             Zdenek Dvorak  <ook@ucw.cz>
18597
18598         PR tree-optimization/35164
18599         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
18600         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
18601         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
18602         Only propagate addresses which do not have abnormal SSA_NAMEs
18603         in their operands.
18604
18605 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
18606
18607         PR target/35088
18608         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
18609
18610 2008-02-15  Jan Hubicka  <jh@suse.cz>
18611
18612         PR middle-end/35149
18613         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
18614
18615 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
18616
18617         PR middle-end/34621
18618         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
18619         when calculating alignment_pad.
18620
18621 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
18622
18623         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
18624         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
18625         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
18626         and STACK_BOUNDARY define.
18627
18628 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
18629
18630         PR preprocessor/35061
18631         * c-pragma.c (handle_pragma_pop_macro): Check that
18632         pushed_macro_table has been allocated.
18633
18634 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
18635
18636         PR middle-end/35136
18637         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
18638         (force_gimple_operand): Likewise.
18639         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
18640         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
18641         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
18642         (find_interesting_uses_address): Check addressability and alignment
18643         of the base expression only after substituting bases of IVs into it.
18644
18645 2008-02-14  Michael Matz  <matz@suse.de>
18646
18647         PR target/34930
18648         * function.c (instantiate_virtual_regs_in_insn): Reload address
18649         before falling back to reloading the whole operand.
18650
18651 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
18652
18653         * config/s390/s390.c (s390_mainpool_start): Emit the pool
18654         before the first section switch note.
18655
18656 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18657
18658         * doc/bugreport.texi: Update copyright years.
18659         * doc/c-tree.texi: Likewise.
18660         * doc/cfg.texi: Likewise.
18661         * doc/cpp.texi: Likewise.
18662         * doc/cppinternals.texi: Likewise.
18663         * doc/fragments.texi: Likewise.
18664         * doc/frontends.texi: Likewise.
18665         * doc/gcc.texi: Likewise.
18666         * doc/gty.texi: Likewise.
18667         * doc/hostconfig.texi: Likewise.
18668         * doc/implement-c.texi: Likewise.
18669         * doc/libgcc.texi: Likewise.
18670         * doc/loop.texi: Likewise.
18671         * doc/makefile.texi: Likewise.
18672         * doc/options.texi: Likewise.
18673         * doc/passes.texi: Likewise.
18674         * doc/rtl.texi: Likewise.
18675         * doc/sourcebuild.texi: Likewise.
18676         * doc/standards.texi: Likewise.
18677         * doc/tree-ssa.texi: Likewise.
18678         * doc/trouble.texi: Likewise.
18679
18680         * doc/extend.texi: Use @: or add comma where appropriate.
18681         * doc/invoke.texi: Likewise.
18682         * doc/tm.texi: Likewise.
18683
18684 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
18685
18686         PR target/34393
18687         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
18688         to a reg.
18689
18690 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
18691
18692         * doc/md.texi (clz, ctz): Add reference.
18693         * doc/rtl.texi (clz, ctz): Likewise.
18694
18695 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18696
18697         PR other/35148
18698         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
18699         srcdir.
18700
18701 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
18702
18703         * config/s390/s390.c (struct constant_pool): New field
18704         emit_pool_after added.
18705         (s390_mainpool_start): Set the emit_pool_after flag according
18706         to the section switch notes.
18707         (s390_mainpool_finish): Consider emit_pool_after when emitting
18708         the literal pool at the end of the function.
18709         (s390_chunkify_start): Force literal pool splits at section
18710         switch notes.
18711
18712 2008-02-13  Michael Matz  <matz@suse.de>
18713
18714         PR debug/35065
18715         * var-tracking.c (clobber_variable_part): Correctly traverse the
18716         list.
18717
18718 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18719
18720         PR 29673
18721         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
18722         Add -fdump-ipa-inline.
18723         * tree-dump.c (dump_files): Remove tree-inlined dump.
18724         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
18725
18726 2008-02-12  Richard Guenther  <rguenther@suse.de>
18727
18728         PR tree-optimization/35171
18729         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
18730         default defs.
18731
18732 2008-02-12  Richard Guenther  <rguenther@suse.de>
18733
18734         PR middle-end/35163
18735         * fold-const.c (fold_widened_comparison): Use get_unwidened in
18736         value-preserving mode.  Disallow final truncation.
18737
18738 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
18739
18740         PR middle-end/35136
18741         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
18742         code from here to...
18743         (force_gimple_operand): ...here.
18744
18745 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
18746
18747         PR c++/35144
18748         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
18749         non-compatible pointers.
18750         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
18751         different FIELD_DECLs, try harder by comparing field offsets, sizes
18752         and types.
18753
18754         PR inline-asm/35160
18755         * function.c (match_asm_constraints_1): Don't replace the same input
18756         multiple times.
18757
18758 2008-02-12  Anatoly Sokolov <aesok@post.ru>
18759
18760         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
18761         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
18762         (expand_epilogue): Restore RAMPZ register.
18763         * config/avr/avr.md (RAMPZ_ADDR): New constant.
18764
18765 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
18766
18767         * config/i386/cygwin.asm: (__alloca): Correct calling
18768         convention and alignment.
18769         (__chkstk): Force 8 byte stack alignment.
18770
18771 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
18772             Richard Guenther  <rguenther@suse.de>
18773
18774         PR tree-optimization/33992
18775         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
18776         the zero we compare against.
18777
18778 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
18779
18780         PR libfortran/35063
18781         * gthr-win32.h (__gthread_mutex_destroy_function): New function
18782         to CloseHandle after unlocking to prevent accumulation of handle
18783         count.
18784
18785 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18786
18787         PR middle_end/34150
18788         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
18789         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
18790         and update LABEL_NUSES during and after reload.
18791
18792 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
18793
18794         PR middle-end/34627
18795         * combine.c (simplify_if_then_else): Make sure the comparison is
18796         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
18797
18798 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
18799
18800         PR bootstrap/35051
18801         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
18802         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
18803         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
18804         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
18805         * tree.h (get_type_static_bounds): Likewise.
18806
18807 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18808
18809         * doc/invoke.texi (Option Summary, C++ Dialect Options)
18810         (Objective-C and Objective-C++ Dialect Options, Warning Options):
18811         Make -Wfoo language annotations match what the compiler outputs.
18812
18813 2008-02-08  Sa Liu  <saliu@de.ibm.com>
18814
18815         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
18816         intrinsics spu_convts, spu_convtu, spu_convtf.
18817
18818 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
18819
18820         * doc/extend.texi (Function Attributes) <noinline>: Mention
18821         asm ("") as method to keep calls.
18822
18823 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18824
18825         PR other/32754
18826         * doc/options.texi (Options): Replace references to opts.sh with
18827         optc-gen.awk.
18828         * opts-common.c: Likewise.
18829         * optc-gen.awk: Likewise.
18830
18831 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
18832
18833         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
18834
18835 2008-02-07  Richard Henderson  <rth@redhat.com>
18836
18837         PR rtl-opt/33410
18838         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
18839         EXPR_LIST for the REG_EQUAL instead of a comparison with a
18840         funny mode.
18841
18842 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
18843
18844         PR tree-optimization/35085
18845         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
18846         for operand entry oe2 in addition to operand entry oe3 in order to
18847         expose more opportunities for vectorizer sum reduction.
18848
18849 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18850
18851         PR other/35107
18852         * Makefile.in (LIBS): Remove $(GMPLIBS).
18853         (cc1-dummy, cc1): Add $(GMPLIBS).
18854
18855 2008-02-06  Jan Hubicka  <jh@suse.cz>
18856
18857         PR target/23322
18858         * i386.md (moddf_integer): Do not produce partial memory stalls for
18859         targets where it hurts.
18860
18861 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
18862
18863         PR target/35083
18864         * optabs.c (expand_float): Do not check for decimal modes when
18865         expanding unsigned integer through signed conversion.
18866
18867 2008-02-06  Nick Clifton  <nickc@redhat.com>
18868
18869         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
18870         inside the clobber with a match_operand and duplicated operand
18871         number in the constraint.
18872         (ineqbranchsi): Delete redundant comment.
18873
18874 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
18875
18876         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
18877         builtin_define ("__USE_INIT_FINI__").
18878         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
18879         -msx multilibs.
18880         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
18881
18882 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18883
18884         PR documentation/30330
18885         * doc/invoke.texi (C++ Dialect Options)
18886         (Objective-C and Objective-C++ Dialect Options, Warning Options):
18887         For each warning option -Wfoo that allows -Wno-foo, ensure both
18888         -Wfoo and -Wno-foo are listed in the option index.  Fix index
18889         entry of -Wswitch-default, index -Wnormalized= including the
18890         `=', and -Wlarger-than-@var{len} including @var{len}.
18891
18892 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
18893
18894         * config/i386/i386.md (floatunssisf2): Use
18895         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
18896         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
18897         Macroize expander using MODEF mode iterator.
18898
18899 2008-02-05  Diego Novillo  <dnovillo@google.com>
18900
18901         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
18902
18903         PR 33738
18904         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
18905
18906 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18907
18908         PR other/35070
18909         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
18910
18911 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
18912
18913         PR target/35084
18914         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
18915         to indicate if a message should be generated.
18916         (init_cumulative_args): Updated.
18917         (function_value_32): Likewise.
18918
18919 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
18920
18921         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
18922
18923 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
18924
18925         PR target/35083
18926         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
18927         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
18928
18929 2008-02-04  Diego Novillo  <dnovillo@google.com>
18930
18931         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
18932
18933         PR 33738
18934         * tree-vrp.c (vrp_evaluate_conditional): With
18935         -Wtype-limits, emit a warning when comparing against a
18936         constant outside the natural range of OP0's type.
18937
18938 2008-02-04  Richard Guenther  <rguenther@suse.de>
18939
18940         PR middle-end/33631
18941         * expr.c (count_type_elements): Give for unions instead of
18942         guessing.
18943
18944 2008-02-04  Richard Guenther  <rguenther@suse.de>
18945
18946         PR middle-end/35043
18947         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
18948         to TYPE_DOMAINs base type instead of using bitsizetype here.
18949
18950 2008-02-03  Jason Merrill  <jason@redhat.com>
18951
18952         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
18953
18954 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18955
18956         PR other/29972
18957         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
18958         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
18959         (RS/6000 and PowerPC Options): Fix typos and markup.
18960         * doc/passes.texi (Tree-SSA passes): Likewise.
18961
18962 2008-02-02  Michael Matz  <matz@suse.de>
18963
18964         PR target/35045
18965         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
18966         from record_last_reg_set_info.
18967         (record_last_reg_set_info): Take an RTX argument, iterate over all
18968         constituent hardregs.
18969         (record_last_set_info, record_opr_changes): Change calls to
18970         new signature or to record_last_reg_set_info_regno.
18971
18972 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
18973
18974         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
18975
18976 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
18977
18978         PR rtl-optimization/34773
18979         * reg-notes.def (EQUAL): Mention significance of combination of
18980         REG_EQUAL and REG_RETVAL.
18981         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
18982         insn that has a REG_RETVAL.
18983
18984 2008-02-01  Roger Sayle  <roger@eyesopen.com>
18985
18986         PR bootstrap/33781
18987         * configure.ac (--enable-fixed-point): Disable unless explicitly
18988         requested on IRIX.
18989         * configure: Regenerate.
18990
18991 2008-02-01  Richard Guenther  <rguenther@suse.de>
18992
18993         PR other/35042
18994         * invoke.texi (-finline-limit): Remove no longer true parts
18995         of the documentation.  Note that there is no default value.
18996
18997 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
18998             Mark Mitchell  <mark@codesourcery.com>
18999             Ben Elliston  <bje@au.ibm.com>
19000
19001         PR c/29326
19002         * doc/extend.texi (Other Builtins): Document.
19003
19004 2008-01-31  Tom Browder <tom.browder@gmail.com>
19005
19006         * doc/c-tree.texi (Types): Fix grammar.
19007         (Expression trees): Ditto.
19008         * doc/passes.texi (Tree-SSA passes): Ditto.
19009
19010         * doc/configterms.texi (Configure Terms): Fix typo.
19011         * doc/cpp.texi (Common Predefined Macros): Ditto.
19012         * doc/md.texi (Machine Constraints): Ditto.
19013
19014         * doc/makefile.texi (Makefile): Add comma.
19015
19016 2008-01-31  Tom Browder  <tom.browder@gmail.com>
19017             Gerald Pfeifer  <gerald@pfeifer.com>
19018
19019         * doc/sourcebuild.texi (Front End): Remove references to CVS
19020         and CVSROOT/modules.
19021         (Texinfo Manuals): Replace reference to CVS by one to SVN.
19022         (Back End): Remove reference to CVS.
19023
19024 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
19025
19026         PR target/34900
19027         * config/mips/mips.c (gen_load_const_gp): New function, taking a
19028         comment from...
19029         (mips16_gp_pseudo_reg): ...here.
19030         * config/mips/mips.md (load_const_gp): Replace with...
19031         (load_const_gp_<mode>): ...this :P-based insn.
19032
19033 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
19034
19035         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
19036         options. Minor fixes.
19037         (-std): Move reference to standards closer to where language
19038         standards are first mentioned.
19039
19040 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
19041
19042         PR rtl-optimization/34995
19043         * reload.c (alternative_allows_const_pool_ref): Take an rtx
19044         parameter and return a bool.  If the rtx parameter is nonnull,
19045         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
19046         (find_reloads): Update call accordingly.  Pass the new operand
19047         if it needed no address reloads, otherwise pass null.
19048
19049 2008-01-30  Richard Henderson  <rth@redhat.com>
19050
19051         PR c/34993
19052         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
19053         for unbounded arrays.
19054
19055 2008-01-30  Silvius Rus  <rus@google.com>
19056
19057         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
19058
19059 2008-01-30  Jan Hubicka  <jh@suse.cz>
19060
19061         PR target/34982
19062         * i386.c (init_cumulative_args): Use real function declaration when
19063         calling locally.
19064
19065 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
19066
19067         PR rtl-optimization/34998
19068         * global.c (build_insn_chain): Treat non-subreg_lowpart
19069         SUBREGs of pseudos as clobbering all the words covered by the
19070         SUBREG, not just all the bytes.
19071         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
19072         original df_ref rather than an extract parameter.
19073         (global_conflicts): Update call accordingly.
19074
19075 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
19076
19077         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
19078         the overflow check to make it easier to read.
19079         (__fixtfdi): Change the type of the ll member in union
19080         long_double to UDItype_x.
19081
19082 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
19083
19084         PR middle-end/34969
19085         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
19086         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
19087         * tree-inline.c (fold_marked_statements): Call
19088         cgraph_update_edges_for_call_stmt if folding a call statement.
19089         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
19090         debug_generic_stmt calls, reset it back afterwards.
19091
19092         PR c/35017
19093         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
19094         static decls.
19095         * c-typeck.c (build_external_ref): Don't pedwarn about
19096         static vars in current function's scope.
19097
19098 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
19099
19100         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
19101
19102 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
19103
19104         PR c/35002
19105         * ipa-struct-reorg.c: Fix spelling.
19106         * params.def: Ditto.
19107
19108 2008-01-29  Richard Guenther  <rguenther@suse.de>
19109
19110         PR middle-end/35006
19111         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
19112         field.
19113         * tree-inline.c (remap_type): Increment remapping_type_depth
19114         around remapping types.
19115         (copy_body_r): Only add referenced variables if they are referenced
19116         from code, not types.
19117
19118 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
19119
19120         PR c++/34055
19121         PR c++/34103
19122         PR c++/34219
19123         PR c++/34606
19124         PR c++/34753
19125         PR c++/34754
19126         PR c++/34755
19127         PR c++/34919
19128         PR c++/34961
19129         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
19130         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
19131
19132 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
19133
19134         PR target/34412
19135         * config/avr/avr.c (expand_prologue): Use correct QI mode frame
19136         pointer for tiny stack.
19137
19138 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
19139
19140         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
19141
19142 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
19143
19144         * config/vx-common.h: Fix typo in comment.
19145
19146 2008-01-28  Ian Lance Taylor  <iant@google.com>
19147
19148         PR c++/34862
19149         PR c++/33407
19150         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
19151         coalesce pointers if they have different DECL_NO_TBAA_P values.
19152         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
19153         between variables with different DECL_NO_TBAA_P values.
19154
19155 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
19156
19157         PR 31535
19158         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
19159         are not legitimate small data references on SPE targets.
19160
19161 2008-01-28  David Daney  <ddaney@avtrex.com>
19162
19163         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
19164
19165 2008-01-28  David Daney  <ddaney@avtrex.com>
19166
19167         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
19168
19169 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
19170
19171         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
19172         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
19173         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
19174         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
19175         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
19176         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
19177         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
19178         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
19179
19180 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
19181
19182         * basic-block.h (condjump_equiv_p): Fix comment.
19183
19184 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
19185
19186         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
19187         print_generic_stmt_indented): Fix comment.
19188
19189 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
19190
19191         * configure.ac (__stack_chk_fail): Add detecion for availability
19192         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
19193         * configure: Regenerate.
19194
19195 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
19196
19197         PR middle-end/34688
19198         * final.c (output_addr_const): Handle TRUNCATE.
19199
19200 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
19201
19202         PR target/34711
19203         * tree-ssa-loop-ivopts.c (comp_cost): New type.
19204         (zero_cost, infinite_cost): New constants.
19205         (struct cost_pair): Change type of cost to comp_cost.
19206         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
19207         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
19208         New functions.
19209         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
19210         split_address_cost, ptr_difference_cost, difference_cost,
19211         get_computation_cost_at, get_computation_cost,
19212         determine_use_iv_cost_generic, determine_use_iv_cost_address,
19213         determine_use_iv_cost_condition, determine_use_iv_costs,
19214         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
19215         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
19216         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
19217         Change type of cost to comp_cost.
19218         (determine_iv_cost): Increase cost of non-original ivs, instead
19219         of decreasing the cost of original ones.
19220         (get_address_cost): Indicate the complexity of the addressing mode
19221         in comp_cost.
19222         (try_add_cand_for): Prefer using ivs not specific to some object.
19223         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
19224
19225 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
19226             Janis Johnson  <janis187@us.ibm.com>
19227
19228         PR target/34814
19229         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
19230         (TARGET_INSTANTIATE_DECLS): Likewise.
19231         * target.h (expand_to_rtl_hook): New target hook.
19232         (instantiate_decls): Likewise.
19233         * function.c (instantiate_decl): Make non-static.  Rename to...
19234         (instantiate_decl_rtl): ... this.
19235         (instantiate_expr): Use instantiate_decl_rtl.
19236         (instantiate_decls_1): Likewise.
19237         (instantiate_decls): Likewise.
19238         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
19239         * function.h (instantiate_decl_rtl): Add prototype.
19240         * cfgexpand.c (target.h): New include.
19241         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
19242         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
19243         (TARGET_INSTANTIATE_DECLS): Likewise.
19244         (TARGET_INITIALIZER): New target hooks added.
19245         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
19246         New prototype.
19247         * config/rs6000/rs6000.c (tree-flow.h): New include.
19248         (machine_function): Add sdmode_stack_slot field.
19249         (rs6000_alloc_sdmode_stack_slot): New function.
19250         (rs6000_instantiate_decls): Likewise.
19251         (rs6000_secondary_memory_needed_rtx): Likewise.
19252         (rs6000_check_sdmode): Likewise.
19253         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
19254         (TARGET_INSTANTIATE_DECLS): Likewise.
19255         (rs6000_hard_regno_mode_ok): Allow SDmode.
19256         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
19257         (rs6000_emit_move): Handle SDmode.
19258         (function_arg_advance): Likewise.
19259         (function_arg): Likewise.
19260         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
19261         SDmode var args for 32-bit compiles.
19262         (rs6000_secondary_reload_class): Handle SDmode.
19263         (rs6000_output_function_epilogue): Likewise.
19264         (rs6000_function_value): Simplify if statement.
19265         (rs6000_libcall_value): Likewise.
19266         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
19267         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
19268         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
19269         (movsd_hardfloat): New define_insn.
19270         (movsd_softfloat): Likewise.
19271         (movsd_store): Likewise.
19272         (movsd_load): Likewise.
19273         (extendsddd2): Likewise.
19274         (extendsdtd2): Likewise.
19275         (truncddsd2): Likewise.
19276         (movdd_hardfloat64): Fixup comment.
19277         (UNSPEC_MOVSD_LOAD): New constant.
19278         (UNSPEC_MOVSD_STORE): Likewise.
19279
19280 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
19281
19282         PR c++/34965
19283         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
19284         TRUTH_XOR_EXPR.
19285         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
19286         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
19287         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
19288         and TRUTH_XOR_EXPR.
19289
19290 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
19291
19292         PR target/34794
19293         * config.gcc: Separate AIX 5.3 from AIX 6.1.
19294         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
19295         __LONGDOUBLE128 too.
19296         * config/rs6000/aix61.h: New file.
19297
19298 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
19299
19300         PR rtl-optimization/34959
19301         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
19302         popcount and parity rtxes the same mode as their operand.
19303         Truncate or extend the result to the return value's mode
19304         if necessary.
19305
19306 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
19307
19308         PR target/34981
19309         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
19310         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
19311         to GOT_VERSION_REGNUM.
19312         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
19313         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
19314         * config/mips/mips.c (mips_emit_call_insn): New function.
19315         (mips_call_tls_get_addr): Call mips_expand_call directly.
19316         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
19317         emit_call_insn.
19318         (mips16_build_call_stub): Likewise.  Return the call insn or null.
19319         (mips_expand_call): Update the call to mips16_build_call_stub
19320         accordingly and a remove redundant condition.  Assert that MIPS16
19321         stubs do not use lazy binding.  Use mips_emit_call_insn and return
19322         the call insn.
19323         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
19324         TARGET_USE_GOT.
19325         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
19326         (mips_avoid_hazard): Remove hazard_set handling.
19327         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
19328         (UNSPEC_RESTORE_GP): ...this.
19329         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
19330         (FAKE_CALL_REGNO): Rename to...
19331         (GOT_VERSION_REGNUM): ...this.
19332         (type): Add "ghost" value.  Add an associated insn reservation.
19333         (hazard_set): Remove.
19334         (exception_receiver): Rename to...
19335         (restore_gp): ...this and update the unspec identifier accordingly.
19336         (exception_receiver, nonlocal_got_receiver): New expanders.
19337         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
19338         FAKE_CALL_REGNO.  Remove hazard_set attribute.
19339         (set_got_version, update_got_version): New patterns.
19340
19341 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
19342
19343         PR target/34970
19344         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
19345
19346 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
19347
19348         PR other/31955
19349         * doc/install.texi2html: Generate gcc-vers.texi.
19350
19351 2008-01-25  DJ Delorie  <dj@redhat.com>
19352
19353         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
19354
19355 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
19356
19357         * config/c4x: Remove directory.
19358         * config.gcc (crx-*, mt-*): Mark obsolete.
19359         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
19360         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
19361         sh-*-rtemscoff*): Remove cases.
19362         * defaults.h (C4X_FLOAT_FORMAT): Remove.
19363         * real.c (encode_c4x_single, decode_c4x_single,
19364         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
19365         c4x_extended_format): Remove.
19366         * real.h (c4x_single_format, c4x_extended_format): Remove.
19367         * doc/extend.texi (interrupt, naked): Remove mention of attributes
19368         on C4x.
19369         (Pragmas): Remove comment about c4x pragmas.
19370         * doc/install.texi (c4x): Remove target-specific instructions.
19371         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
19372         * doc/md.texi (Machine Constraints): Remove C4x documentation.
19373         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
19374         refer to C4x source files as examples.
19375         (C4X_FLOAT_FORMAT): Remove documentation.
19376
19377 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
19378
19379         * config/bfin/bfin.c (override_options): Reorder tests so that
19380         flag_pic gets enabled for -msep-data.
19381
19382 2008-01-25  Richard Guenther  <rguenther@suse.de>
19383
19384         PR middle-end/32244
19385         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
19386         to its bitfield precision if required.
19387
19388 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
19389
19390         PR middle-end/33880
19391         * tree-nested.c (walk_omp_for): New function.
19392         (convert_nonlocal_reference, convert_local_reference): Call
19393         walk_omp_for on OMP_FOR.
19394         (convert_call_expr): Call walk_body on OMP_FOR's
19395         OMP_FOR_PRE_INIT_BODY.
19396
19397 2008-01-25  Richard Guenther  <rguenther@suse.de>
19398
19399         PR tree-optimization/34966
19400         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
19401         default defs and PHI_NODEs we have to insert after the
19402         defining statement.
19403
19404 2008-01-24  Nick Clifton  <nickc@redhat.com>
19405
19406         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
19407         Provide a default definition.
19408         (LIBGCC2_UNITS_PER_WORD): Likewise.
19409
19410         * config/stormy16/stormy16.c: Include df.h for the prototype
19411         for df_regs_ever_live_p.
19412         (xstormy16_expand_builtin_va_start): Convert the stack offset
19413         into a component_ref and then use POINTER_PLUS_EXPR to add it
19414         to the incoming_virtual_args_rtx.
19415         (xstormy16_gimplify_va_arg_expr): Rename to
19416         xstormy16_gimplify_va_arg_expr.
19417         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
19418         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
19419         xstormy16_gimplify_va_arg_expr.
19420         Fix up some formatting issues.
19421
19422         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
19423         Move to predicates.md.
19424         (xs_hi_general_operand): Likewise.
19425         (xs_hi_nonmemory_operand): Likewise.
19426         * config/stormy16/predicates.md:
19427         (xstormy16_carry_plus_operand): New predicate.
19428         (xs_hi_general_operand): New predicate.
19429         (xs_hi_nonmemory_operand): New predicate.
19430         * config/stormy16/stormy16-protos.h:
19431         (xstormy16_carry_plus_operand): Delete prototype.
19432         (xs_hi_general_operand): Likewise.
19433         (xs_hi_nonmemory_operand): Likewise.
19434
19435         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
19436         modifiers as they are no longer needed and they can trigger
19437         reload spill failures.
19438
19439         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
19440         with a match_operand in order to help reload.
19441
19442         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
19443         constraint with 'e' for the 8th alternative as this version of
19444         the mov.w instruction only accepts the lower 8 registers.
19445
19446 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
19447
19448         PR target/34856
19449         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
19450         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
19451         vector elements.
19452
19453 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
19454
19455         PR middle-end/33333
19456         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
19457
19458 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
19459
19460         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
19461         New functions.
19462         (remove_structure): Update allocations list before removing structure.
19463
19464 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
19465
19466         * ipa-struct-reorg.c (is_safe_cond_expr,
19467         create_new_stmts_for_cond_expr): Use integer_zerop function,
19468         that recognize not only zero-pointer, but zero-integer too.
19469
19470 2008-01-25  Ben Elliston  <bje@au.ibm.com>
19471
19472         PR other/22232
19473         * fixproto: Escape "." in sed expression that strips leading "./".
19474
19475 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
19476
19477         PR driver/34904
19478         * gcc.c (SWITCH_OK): Removed.
19479         (SWITCH_LIVE): Changed to bit.
19480         (SWITCH_FALSE): Likewise.
19481         (SWITCH_IGNORE): Likewise.
19482         (switchstr): Change live_cond to unsigned int.
19483         (process_command): Replace SWITCH_OK with 0.
19484         (do_self_spec): Likewise.
19485         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
19486         (give_switch): Likewise.
19487         (used_arg): Likewise.
19488         (do_spec_1): Set the SWITCH_IGNORE bit.
19489         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
19490         bits.  Set the SWITCH_LIVE bit.
19491
19492 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
19493
19494         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
19495
19496 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
19497
19498         PR tree-optimization/34472
19499         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
19500         parameter to a "bool *" and set *DATA to false if there is
19501         an unsafe access.  Do not delete the structure here.
19502         (check_cond_exprs): Delete it here instead.
19503         (check_cond_exprs, exclude_cold_structs): Do not increase
19504         I when removing a structure.
19505
19506 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
19507
19508         PR target/34856
19509         * config/i386/i386.c (ix86_expand_vector_init): Consider only
19510         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
19511
19512 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
19513
19514         PR middle-end/34934
19515         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
19516         a fixed vector for stack.
19517
19518 2008-01-24  Ben Elliston  <bje@au.ibm.com>
19519
19520         PR c++/25701
19521         * doc/gcc.texi (Software development): Add a direntry for g++.
19522
19523 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
19524
19525         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
19526         stale and straggling -fforce-addr comments above.
19527
19528         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
19529         define.
19530         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
19531         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
19532
19533 2008-01-23  Michael Matz  <matz@suse.de>
19534
19535         PR debug/34895
19536         * dwarf2out.c (force_type_die): Use modified_type_die instead of
19537         gen_type_die.
19538
19539 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
19540
19541         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
19542         malloc result type.
19543
19544 2008-01-23 Anatoly Sokolov <aesok@post.ru>
19545
19546         * config/avr/avr.c (avr_current_arch): New variable.
19547         (avr_arch_types): Add 'avr31' and 'avr51' entries.
19548         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
19549         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
19550         (avr_override_options): Init 'avr_current_arch'.
19551         (base_arch_s): Move from here...
19552         * config/avr/avr.h (base_arch_s): ... here. Add new members
19553         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
19554         'mega' to 'have_jmp_call'.
19555         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
19556         "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
19557         macros.
19558         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
19559         architectures.
19560         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
19561         MULTILIB_MATCHES): Ditto.
19562
19563 2008-01-23  Richard Guenther  <rguenther@suse.de>
19564
19565         PR middle-end/31529
19566         * cgraphunit.c (cgraph_reset_node): Always mark the node
19567         not reachable if it is not queued already.
19568
19569 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
19570
19571         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
19572         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
19573         (cputype_selected): New static variable.
19574         (bfin_handle_option): Set it if -mcpu is used.
19575         (override_option): Select default set of workarounds if no cpu type
19576         selected on the command line.
19577         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
19578
19579         From  Michael Frysinger  <michael.frysinger@analog.com>
19580         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
19581         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
19582
19583         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
19584         for bf547, bf523, bf524, and bf526.
19585         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
19586         bf526.
19587         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
19588         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
19589         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
19590         __ADSPBF547__ and __ADSPBF54x__ for bf547.
19591         * doc/invoke.texi (Blackfin Options): Document that
19592         -mcpu now accept bf547, bf523, bf524, and bf526.
19593
19594 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
19595
19596         PR rtl-optimization/34628
19597         * combine.c (try_combine): Stop and undo after the first combination
19598         if an autoincrement side-effect on the first insn has effectively
19599         been lost.
19600
19601 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
19602
19603         PR target/34529
19604         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
19605         Offset addresses are not valid for Altivec or paired float modes.
19606
19607 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
19608
19609         PR c++/34607
19610         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
19611         if DECL_INITIAL (decl) is error_mark_node.
19612
19613         PR c++/34914
19614         * c-common.c (handle_vector_size_attribute): Only allow
19615         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
19616         the same way as pointer, array etc. types.
19617         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
19618
19619         PR c++/34917
19620         * tree.c (build_type_attribute_qual_variant): Call
19621         build_qualified_type if attributes are equal, but quals are not.
19622
19623 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
19624
19625         PR 32102
19626         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
19627         * flags.h (warn_strict_aliasing): Remove.
19628         (warn_strict_overflow): Remove.
19629         * opts.c (warn_strict_aliasing): Remove.
19630         (warn_strict_overflow): Remove.
19631         * c-opts.c (c_common_handle_option): -Wall only sets
19632         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
19633         (c_common_post_options): Give default values to -Wstrict-aliasing
19634         and -Wstrict-overflow if they are uninitialized.
19635         * common.opt (Wstrict-aliasing): Specify Var and Init.
19636         (Wstrict-overflow): Likewise.
19637
19638 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
19639
19640         PR rtl-optimization/26854
19641         PR rtl-optimization/34400
19642         PR rtl-optimization/34884
19643         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
19644         DF_RD->gen.
19645         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
19646         (df_rd_bb_info.expanded_lr_out): Deleted
19647         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
19648         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
19649         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
19650         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
19651         Removed code to allocate, initialize or free expanded_lr_out.
19652         (df_rd_bb_local_compute_process_def): Restructured to make more
19653         understandable.
19654         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
19655         sets if the sets are being trimmed.
19656
19657 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
19658
19659         PR bootstrap/32287
19660         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
19661         (as_vers): Likewise.
19662         * configure: Regenerated.
19663
19664 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
19665
19666         PR middle-end/33092
19667         * tree-pass.h (pass_build_alias): New pass.
19668         * tree-ssa-alias.c (gate_build_alias): New.
19669         (pass_build_alias): New.
19670         * passes.c (init_optimization_passes): Add pass_build_alias after
19671         pass_create_structure_vars.
19672
19673 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
19674
19675         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
19676         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
19677         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
19678         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
19679         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
19680         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
19681         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
19682         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
19683         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
19684         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
19685         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
19686         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
19687         * config/s390/s390.md (FP_ALL): New mode iterator.
19688         (_d): New mode attribute.
19689         ("*signbit<mode>2>"): Changed mode of first operand.
19690         ("isinf<mode>2"): Changed mode of first operand.
19691         ("*TDC_insn"): Adaptation for DFP modes.
19692
19693 2008-01-22  Ben Elliston  <bje@au.ibm.com>
19694
19695         * tree.c (check_qualified_type): Improve function description.
19696
19697 2008-01-21  Jason Merrill  <jason@redhat.com>
19698
19699         PR c++/34196
19700         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
19701         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
19702         if it is set.
19703
19704 2008-01-21  DJ Delorie  <dj@redhat.com>
19705
19706         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
19707         return zero.
19708
19709 2008-01-21  Richard Guenther  <rguenther@suse.de>
19710
19711         PR middle-end/34856
19712         * tree-cfg.c (verify_expr): Allow all invariant expressions
19713         instead of just constant class ones as reference argument.
19714         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
19715         like any other constant.
19716         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
19717
19718 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
19719
19720         * regmove.c (fixup_match_1): Update call crossed frequencies.
19721
19722 2008-01-21  Richard Guenther  <rguenther@suse.de>
19723
19724         PR c/34885
19725         * tree-inline.c (setup_one_parameter): Deal with mismatched
19726         types using a VIEW_CONVERT_EXPR.
19727
19728 2008-01-21  Alon Dayan  <alond@il.ibm.com>
19729             Olga Golovanevsky  <olga@il.ibm.com>
19730
19731         PR tree-optimization/34701
19732         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
19733         when the structure size is not a power of 2.
19734
19735 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
19736
19737         * doc/install.texi: Add doc for --enable-checking=df.
19738
19739 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
19740
19741         PR rtl-optimization/34808
19742         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
19743
19744 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
19745
19746         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
19747         input.
19748
19749 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
19750
19751         PR rtl-optimization/26854
19752         PR rtl-optimization/34400
19753         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
19754         DF_RD->gen.
19755         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
19756         (df_rd_bb_info.expanded_lr_out): New.
19757         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
19758         * loop_iv.c (iv_analysis_loop_init): Ditto.
19759         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
19760         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
19761         Added code to allocate, initialize or free expanded_lr_out.
19762         (df_rd_bb_local_compute_process_def): Restructured to make
19763         more understandable.
19764         (df_rd_confluence_n): Add code to do nothing with fake edges and
19765         code to no apply invalidate_by_call sets if the sets are being trimmed.
19766         (df_lr_local_finalize): Renamed to df_lr_finalize.
19767         (df_live_local_finalize): Renamed to df_live_finalize.
19768
19769 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
19770
19771         PR target/34831
19772         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
19773         deciding whether to use reciprocal instructions.
19774
19775 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
19776
19777         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
19778         dwarf2out_note_section_used if cold_text_section is NULL.
19779
19780 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
19781
19782         PR gcov-profile/34610
19783         * tree-cfg.c (make_edges): Mark both outgoing edges from
19784         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
19785         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
19786         from OMP_FOR and OMP_CONTINUE outgoing edges.
19787
19788         * tree-profile.c (tree_profiling): Return early if
19789         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
19790         at the end.
19791         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
19792         from cfun to child_cfun.
19793         * function.h (struct function): Add after_tree_profile bit.
19794
19795 2008-01-19 Anatoly Sokolov <aesok@post.ru>
19796
19797         * config/avr/avr.S (_exit): Disable interrupt.
19798
19799 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
19800             Steven Bosscher  <stevenb.gcc@gmail.com>
19801
19802         PR rtl-optimization/26854
19803         PR rtl-optimization/34400
19804         * df-problems.c (df_live_scratch): New scratch bitmap.
19805         (df_live_alloc): Allocate df_live_scratch when doing df_live.
19806         (df_live_reset): Clear the proper bitmaps.
19807         (df_live_bb_local_compute): Only process the artificial defs once
19808         since the order is not important.
19809         (df_live_init): Init the df_live sets only with the variables
19810         found live by df_lr.
19811         (df_live_transfer_function): Use the df_lr sets to prune the
19812         df_live sets as they are being computed.
19813         (df_live_free): Free df_live_scratch.
19814
19815 2008-01-18  Ian Lance Taylor  <iant@google.com>
19816
19817         * common.opt: Add fmerge-debug-strings.
19818         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
19819         flag_merge_debug_strings rather than flag_merge_constants.
19820         * doc/invoke.texi (Option Summary): Mention
19821         -fmerge-debug-strings.
19822         (Debugging Options): Document -fmerge-debug-strings.
19823
19824 2008-01-18  Ian Lance Taylor  <iant@google.com>
19825
19826         PR c++/33407
19827         * tree.h (DECL_IS_OPERATOR_NEW): Define.
19828         (struct tree_function_decl): Add new field operator_new_flag.
19829         * tree-inline.c (expand_call_inline): When inlining a call to
19830         operator new, force the return value to go into a variable, and
19831         set DECL_NO_TBAA_P on that variable.
19832         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
19833
19834 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
19835
19836         PR debug/34484
19837         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
19838         DWARF2_DEBUGGING_INFO.
19839         (dwarf2out_note_section_used): Ditto.  Add prototype.
19840         (have_multiple_function_sections, text_section_used,
19841         cold_text_section_used, *cold_text_sections): Move declarations
19842         before their uses.
19843
19844 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
19845
19846         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
19847         field and add signal_ra.
19848         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
19849         assignments to frame state pc.  Move end of stack check after
19850         MD_FALLBACK_FRAME_STATE_FOR.
19851         (uw_update_context_1): Use frame state signal_regs if set, instead
19852         of checking signal_frame flag.
19853         (uw_update_context): Use frame state signal_ra if set.
19854         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
19855         * config/xtensa/linux-unwind.h: New file.
19856
19857 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
19858
19859         * modulo-sched.c (get_sched_window): Fix comment typo.
19860
19861 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
19862
19863         PR tree-optimization/34648
19864         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
19865
19866 2008-01-17  Anatoly Sokolov <aesok@post.ru>
19867
19868         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
19869         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
19870
19871 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
19872
19873         PR rtl-optimization/34400
19874         * df-core.c (df_worklist_dataflow_overeager,
19875         df_worklist_dataflow_doublequeue): New functions.
19876         (df_worklist_dataflow): Two different worklist solvers.
19877         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
19878         New param.
19879
19880 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
19881
19882         PR testsuite/34821
19883         * doc/invoke.texi: Document the dependence on pthread for fopenmp
19884         and ftree-parallelize-loops.
19885
19886 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
19887
19888         PR rtl-optimization/34826
19889         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
19890
19891 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
19892
19893         * global.c (find_reg): Mark the eh regs as used if necessary.
19894         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
19895         * ra.h (struct allocno): no_eh_reg field added.  Changed
19896         no_stack_reg type to bitfield.
19897
19898 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
19899
19900         * tree.c (substitute_in_expr): Add missing 'break'.
19901
19902 2008-01-17  Richard Guenther  <rguenther@suse.de>
19903
19904         PR tree-optimization/34825
19905         * tree-ssa-math-opts.c (is_division_by): Do not recognize
19906         x / x as division to handle.
19907
19908 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19909
19910         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
19911         "-pthread" is specified.
19912         * pa-hpux11.h (LIB_SPEC): Likewise.
19913
19914 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
19915             Peter Bergner  <bergner@vnet.ibm.com>
19916
19917         PR rtl-optimization/33796
19918         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
19919
19920 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19921
19922         PR libgfortran/34699
19923         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
19924         static links.
19925         * pa-hpux10.h (LINK_SPEC): Likewise.
19926         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
19927
19928 2008-01-16  Richard Guenther  <rguenther@suse.de>
19929
19930         PR middle-end/32628
19931         * fold-const.c (fold_convert_const_int_from_int): Do not
19932         set overflow if that occured only because of a sign extension
19933         change when converting from/to a sizetype with the same
19934         precision and signedness.
19935
19936 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
19937
19938         PR debug/34249
19939         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
19940         location address to the correct place.  Update copyright year.
19941
19942 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
19943
19944         * lambda-code.c (lambda_transform_legal_p): Handle the case of
19945         no dependences in the dependence_relations vector.
19946
19947 2008-01-16  Jan Hubicka  <jh@suse.cz>
19948
19949         PR rtl-optimization/31396
19950         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
19951         * cfg.c (dump_reg_info): Print it.
19952         * regs.h (struct reg_info_t): add freq_calls_crossed.
19953         (REG_FREQ_CALLS_CROSSED): New macro.
19954         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
19955         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
19956         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
19957         regmove_optimize): Update call crossed frequencies.
19958         * local-alloc.c (struct qty): Add freq_calls_crossed.
19959         (alloc_qty): Copute freq_calls_crossed.
19960         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
19961         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
19962         * ra.h (struct allocno): Add freq_calls_crossed.
19963
19964 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
19965
19966         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
19967         libgomp when compiling with ftree-parallelize-loops.
19968         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
19969
19970 2008-01-16  Richard Guenther  <rguenther@suse.de>
19971
19972         PR tree-optimization/34769
19973         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
19974         * tree.c (int_cst_value): Instead make this function more
19975         permissive in what it accepts as valid input.  Document this
19976         function always sign-extends the value.
19977
19978 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
19979             Richard Guenther  <rguenther@suse.de>
19980
19981         PR c/34668
19982         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
19983         (gimple_fold_indirect_ref_rhs): ... this.
19984         (gimple_fold_indirect_ref): New function with foldings
19985         that preserve lvalueness.
19986         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
19987         * tree-flow.h (gimple_fold_indirect_ref): Declare.
19988         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
19989         to fold an INDIRECT_REF, fall back to the old use of
19990         fold_indirect_ref_1.
19991
19992 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
19993
19994         * tree-data-ref.c (subscript_dependence_tester_1): Call
19995         free_conflict_function.
19996         (compute_self_dependence): Same.
19997
19998 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
19999
20000         PR debug/34249
20001         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
20002         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
20003         function global.
20004         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
20005         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
20006         for DWARF2_UNWIND_INFO targets.
20007
20008 2008-01-16  Richard Guenther  <rguenther@suse.de>
20009
20010         PR c/34768
20011         * c-typeck.c (common_pointer_type): Do not merge inconsistent
20012         type qualifiers for function types.
20013
20014 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
20015
20016         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
20017         loop_iterator li from previous commit.
20018
20019 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
20020
20021         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
20022
20023 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
20024
20025         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
20026         (parallelize_loops): Don't parallelize irreducible components.
20027
20028 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
20029
20030         PR c++/24924
20031         * c-opts (c_common_post_options): Do not enable CPP
20032         flag_pedantic_errors by default.
20033
20034 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
20035
20036         PR rtl-optimization/31944
20037         * cse.c (remove_pseudo_from_table): New function.
20038         (merge_equiv_classes): Use above function to remove pseudo-registers.
20039         (invalidate): Likewise.
20040
20041 2008-01-13  Richard Guenther  <rguenther@suse.de>
20042
20043         PR middle-end/34601
20044         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
20045         instead of TYPE_MODE to deal with calls from expand_one_error_var.
20046
20047 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
20048
20049         * gcse.c (cprop_jump): Call validate_unshare_change instead of
20050         validate_change to unshare the source of the PC set.
20051
20052 2008-01-12  Jan Hubicka  <jh@suse.cz>
20053
20054         PR middle-end/32135
20055         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
20056         references above array bounds.  This might trigger bounds checks for
20057         pointers to arrays.
20058
20059 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
20060
20061         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
20062         new_replaceable_dependencies.
20063
20064 2008-01-12  Doug Kwan  <dougkwan@google.com>
20065
20066         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
20067         instead of OPT_Wreturn_type in warning due to ignored return type
20068         qualifiers.
20069         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
20070         options included in -Wextra.
20071         * c.opt: New option -Wignored_qualifiers.
20072         * doc/invoke.texi (Warning Options, -Wextra): Add new option
20073         -Wignore_qualifiers.
20074         (-Wignored-qualifiers): Document.
20075         (-Wreturn-type): Remove description of functionality now handled
20076         by -Wignored-qualifiers.
20077
20078 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
20079
20080         PR ada/33788
20081         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
20082         NOP_EXPR if it is between integral types with the same precision.
20083
20084 2008-01-12  Jan Hubicka  <jh@suse.cz>
20085
20086         PR other/28023
20087         * invoke.texi (max-inline-recursive-depth): Fix default value.
20088
20089 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
20090
20091         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
20092         correct type.
20093
20094 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
20095
20096         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
20097
20098 2008-01-11  James E. Wilson  <wilson@specifix.com>
20099
20100         PR target/26015
20101         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
20102
20103 2008-01-11  Anatoly Sokolov <aesok@post.ru>
20104
20105         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
20106         save/restore frame pointer register and don't use 'call-prologues'
20107         optimization in function with "OS_task" attribute.
20108
20109 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
20110
20111         PR middle-end/31309
20112         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
20113         when copying to memory.
20114
20115 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
20116
20117         PR rtl-optimization/30905
20118         * cfgcleanup.c: Include dce.h
20119         (crossjumps_occured): New global variable.
20120         (try_crossjump_bb): Exit loop after finding a fallthru edge.
20121         If something changed, set crossjumps_occured to true.
20122         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
20123         Don't add/remove fake edges to exit here...
20124         (cleanup_cfg): ...but do it here, when crossjumping.
20125         Run a fast DCE when successful crossjumps occured in the latest
20126         iteration of try_optimize_cfg.
20127
20128 2008-01-11  Richard Guenther  <rguenther@suse.de>
20129
20130         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
20131         (struct vn_unary_op_s): Likewise.
20132         (vn_reference_insert): Free old reference on hash collision.
20133
20134 2008-01-10  Raksit Ashok  <raksit@google.com>
20135
20136         PR rtl-optimization/27971
20137         * combine.c (find_split_point): Split PLUS expressions which are
20138         inside a MEM rtx, and whose first operand is complex.
20139
20140 2008-01-10  DJ Delorie  <dj@redhat.com>
20141
20142         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
20143         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
20144         (m32c_hard_regno_ok): Call the underlying function.
20145
20146 2008-01-10  Richard Guenther  <rguenther@suse.de>
20147
20148         PR middle-end/34683
20149         * tree-cfg.c (tree_merge_blocks): Do not go through the
20150         full-blown folding and stmt updating path if we just deal
20151         with virtual operands.
20152         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
20153         test for abnormal SSA_NAMEs.
20154
20155 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
20156
20157         PR middle-end/34641
20158         * reload.c (push_reload): Add assertions.  All constants from
20159         reg_equiv_constant should have been used for replacing the respective
20160         pseudo earlier.
20161         (find_reloads_address): Invoke find_reloads_address_part for
20162         constant taken from the reg_equiv_constant array.
20163
20164 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
20165
20166         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
20167         field (valnum) the first in the struct.  Replace bools with
20168         unit bit fields.
20169
20170 2008-01-10  Richard Guenther  <rguenther@suse.de>
20171
20172         PR tree-optimization/34651
20173         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
20174         types and ordering for masking and converting.
20175
20176 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
20177
20178         PR tree-optimization/34017
20179         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
20180         also for PHI_NODE expressions.
20181
20182 2008-01-09  Jan Hubicka  <jh@suse.cz>
20183
20184         PR tree-optimization/34708
20185         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
20186         based on number of case labels.
20187         (init_inline_once): Remove switch_cost.
20188         * tree-inline.h (eni_weights_d): Remove switch_cost.
20189
20190 2008-01-09  Richard Guenther  <rguenther@suse.de>
20191         Andrew Pinski  <andrew_pinski@playstation.sony.com>
20192
20193         PR middle-end/30132
20194         * gimplify.c (gimplify_cond_expr): Do not create an addressable
20195         temporary if an rvalue is ok or an lvalue is not required.
20196
20197 2008-01-09  Richard Guenther  <rguenther@suse.de>
20198
20199         PR middle-end/34458
20200         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
20201         adjust return type.
20202
20203 2008-01-09  Richard Guenther  <rguenther@suse.de>
20204
20205         PR middle-end/34679
20206         * tree.c (host_integerp): Check for sizetype only if the
20207         type is an integer type.
20208
20209 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
20210
20211         PR debug/26364
20212         * opts.c (decode_options): Disable inlining of functions called
20213         once if not in unit-at-a-time mode.
20214
20215 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
20216
20217         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
20218
20219 2008-01-08  Richard Guenther  <rguenther@suse.de>
20220
20221         PR middle-end/31863
20222         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
20223         out early if the result will be unused.
20224
20225 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
20226
20227         PR target/34709
20228         Revert:
20229
20230         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
20231         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
20232         for TARGET_RECIP.
20233
20234 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
20235
20236         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
20237         for vectorization tuned.
20238
20239 2008-01-08  Richard Guenther  <rguenther@suse.de>
20240
20241         PR tree-optimization/34683
20242         * tree-ssa-operands.c (operand_build_cmp): Export.
20243         * tree-ssa-operands.h (operand_build_cmp): Declare.
20244         * tree-vn.c (vuses_compare): Remove.
20245         (sort_vuses): Use operand_build_cmp.
20246         (sort_vuses_heap): Likewise.
20247         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
20248         to re-use old VEC if available.  Do not sort already sorted VUSEs.
20249         (vdefs_to_vec): Do not sort already sorted VDEFs.
20250
20251 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
20252
20253         PR middle-end/34694
20254         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
20255
20256 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
20257
20258         PR target/34702
20259         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
20260         limitations of reciprocal sequences on x86 targets.
20261
20262 2008-01-08  Richard Guenther  <rguenther@suse.de>
20263
20264         PR tree-optimization/34683
20265         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
20266
20267 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
20268
20269         PR target/34622
20270         * config/darwin.c (darwin_mergeable_string_section): Don't use
20271         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
20272
20273 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
20274
20275         PR target/34682
20276         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
20277         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
20278         predicates of op0 and op1 to register_operand.
20279         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
20280         expander using X87MODEF mode iterator.  Change predicates of
20281         op0 and op1 to register_operand.
20282         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
20283         corresponding patterns and macroize using MODEF macro.  Change
20284         predicates of op0 and op1 to register_operand and remove
20285         "m" constraint. Disparage "r" alternative with "!".
20286         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
20287         macroize using X87MODEF macro.  Change predicates of op0 and op1
20288         to register_operand and remove "m" constraint.  Disparage "r"
20289         alternative with "!".
20290         (absneg splitter with memory operands): Remove.
20291         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
20292         patterns and macroize using X87MODEF mode iterator.
20293         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
20294         Change predicate of op1 to register_operand.
20295         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
20296         for memory operands.
20297
20298 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
20299
20300         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
20301
20302 2008-01-07  Richard Guenther  <rguenther@suse.de>
20303
20304         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
20305         fields.
20306
20307 2008-01-07  Richard Guenther  <rguenther@suse.de>
20308
20309         PR tree-optimization/34683
20310         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
20311         VOPs of the needed size to save memory.  Use VEC_quick_push
20312         to save compile-time.
20313         (vdefs_to_vec): Likewise.
20314
20315 2008-01-07  Sa Liu  <saliu@de.ibm.com>
20316
20317         * config/spu/spu.md (divdf3): Genetate inline code for double
20318         division.  The implementation doesn't handle INF or NAN, therefore it
20319         only applies when -ffinite-math-only is given.
20320
20321 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
20322
20323         PR libstdc++/34680
20324         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
20325         * doc/cpp.texi ([Common Predefined Macros]): Document.
20326
20327 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
20328
20329         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
20330         order to use commutative addition instead of subtraction.
20331
20332 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
20333             Mircea Namolaru  <namolaru@il.ibm.com>
20334             Vladimir Yanovsky  <yanov@il.ibm.com>
20335             Revital Eres  <eres@il.ibm.com>
20336
20337         PR tree-optimization/34263
20338         * tree-outof-ssa.c (process_single_block_loop_latch,
20339         contains_tree_r): New functions.
20340         (analyze_edges_for_bb): Call process_single_block_loop_latch
20341         function to empty single-basic-block latch block if possible.
20342
20343 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
20344
20345         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
20346         for TARGET_RECIP.
20347         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
20348
20349 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
20350
20351         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
20352
20353 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
20354
20355         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
20356
20357 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
20358
20359         PR tree-optimization/34618
20360         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
20361         flag from T.
20362
20363 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
20364
20365         PR target/34673
20366         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
20367         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
20368         Update copyright year.
20369
20370         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
20371         Update copyright year.
20372         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
20373         using NR fixup.
20374
20375 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
20376
20377         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
20378         edge does not point to current bb before changing need_assert.
20379
20380 2008-01-04  Richard Guenther  <rguenther@suse.de>
20381
20382         PR middle-end/34029
20383         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
20384         for verifying purposes if they are is_gimple_min_invariant.
20385
20386 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
20387
20388         PR tree-optimization/34448
20389         PR tree-optimization/34465
20390         * gimplify.c (gimplify_init_constructor): Add new parameter
20391         notify_temp_creation.  Use it.
20392         (gimplify_modify_expr_rhs): Take volatiles into account when
20393         optimizing constructors.
20394         Do not optimize constructors if gimplify_init_constructor will dump to
20395         memory.
20396         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
20397         * gcc.c-torture/compile/pr34448.c: New.
20398
20399 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
20400
20401         PR gcov-profile/34609
20402         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
20403         return_slot if result is TREE_ADDRESSABLE.
20404
20405 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
20406
20407         * config/mips/mips.md (sqrt_condition): Tweak comment.
20408         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
20409
20410 2008-01-03  Tom Tromey  <tromey@redhat.com>
20411
20412         PR c/34457
20413         * c-common.c (c_type_hash): Handle VLAs.
20414
20415 2008-01-03  Jan Hubicka  <jh@suse.cz>
20416
20417         PR tree-optimization/31081
20418         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
20419         0 when inlining and not inlining to first basic block.
20420         (remap_decl): When var is initialized to 0, don't set default_def.
20421         (expand_call_inline): Set entry_bb.
20422         * tree-inline.h (copy_body_data): Add entry_bb.
20423
20424 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
20425
20426         PR c++/34619
20427         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
20428         before returning.
20429
20430         PR tree-optimization/29484
20431         * tree-inline.c (inline_forbidden_p_2): New function.
20432         (inline_forbidden_p): Disallow inlining if some static var
20433         has an address of a local LABEL_DECL in its initializer.
20434         * doc/extend.texi (Labels as Values): Document &&foo behaviour
20435         vs. inlining.
20436
20437 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
20438
20439         PR tree-optimization/34635
20440         * tree-data-ref.c (add_other_self_distances): Make sure that the
20441         evolution step is constant.
20442
20443 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
20444
20445         PR middle-end/34608
20446         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
20447
20448 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
20449
20450         * tree-sra.c (scalarize_init): Insert the generate_element_init
20451         statements after the generate_element_zero statements.
20452
20453 2008-01-02  Richard Guenther  <rguenther@suse.de>
20454
20455         PR middle-end/34093
20456         PR middle-end/31976
20457         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
20458         for very large number of operands instead of ICEing.
20459
20460 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
20461
20462         PR target/34013
20463         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
20464         while stack probing.
20465
20466 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
20467
20468         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
20469         in C++0x mode.
20470
20471 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
20472
20473         PR libmudflap/26442
20474         * tree-mudflap.c (mx_register_decls): Guard warning by
20475         !DECL_ARTIFICIAL check.
20476
20477 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
20478
20479         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
20480         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
20481         sse5_perm<mode>): Fix constraints.