OSDN Git Service

PR middle-end/37278
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-08-29  Jan Hubicka  <jh@suse.cz>
2
3         PR middle-end/37278
4         * predict.c (optimize_loop_nest_for_speed_p): Do not ICE
5         for cold internal loops.
6
7 2008-08-29  Richard Guenther  <rguenther@suse.de>
8
9         * tree-ssa-structalias.c (create_variable_info_for): Do not
10         create fields for heap vars or vars with a noalias state.
11         For NO_ALIAS_ANYTHING variables add a self-constraint, not one
12         from ESCAPED.
13
14 2008-08-29  Richard Guenther  <rguenther@suse.de>
15
16         * common.opt (ftree-store-ccp): Mark as preserved for
17         backward compatibility.
18         * doc/invoke.texi (-ftree-store-ccp): Remove documentation.
19         * tree-pass.h (pass_store_ccp): Remove.
20         * tree-ssa-propagate.h (struct prop_value_d): Remove mem_ref field.
21         (first_vdef): Remove declaration.
22         (get_value_loaded_by): Likewise.
23         * tree-ssa-ccp.c (do_store_ccp): Remove.
24         (get_default_value): Simplify as do_store_ccp is always false
25         now.  Do not initialize mem_ref.
26         (set_value_varying): Likewise.
27         (canonicalize_float_value): Likewise.
28         (set_lattice_value): Likewise.
29         (likely_value): Likewise.
30         (surely_varying_stmt_p): Likewise.
31         (ccp_initialize): Likewise.
32         (ccp_lattice_meet): Likewise.
33         (ccp_visit_phi_node): Likewise.
34         (ccp_fold): Likewise.
35         (evaluate_stmt): Likewise.
36         (visit_assignment): Likewise.
37         (ccp_visit_stmt): Likewise.
38         (execute_ssa_ccp): Fold into ...
39         (do_ssa_ccp): ... this.
40         (do_ssa_store_ccp): Remove.
41         (gate_store_ccp): Likewise.
42         (pass_store_ccp): Likewise.
43         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not
44         initialize mem_ref.
45         * tree-ssa-propagate.c (first_vdef): Remove.
46         (get_value_loaded_by): Likewise.
47         (replace_vuses_in): Likewise.
48         (substitute_and_fold): Do not call replace_vuses_in.
49         * opts.c (decode_options): Do not set flag_tree_store_ccp.
50
51 2008-08-29  Richard Guenther  <rguenther@suse.de>
52
53         PR middle-end/37236
54         * tree-ssa-structalias.c (intra_create_variable_infos): Mark
55         PARAM_NOALIAS tags with is_heapvar.
56         * tree-ssa-operands.c (access_can_touch_variable): Offset
57         based tests do not apply for heapvars.  Fix offset test.
58
59 2008-08-29  Jan Hubicka  <jh@suse.cz>
60
61         * doc/invoke.texi (-fipa-cp): Enabled by default at -O2/-Os/-O3
62         (-fipa-cp-clone): Enabled by default at -O3.
63         * opts.c (decode_options): Enable ipa-cp at -O2, ipa-cp-clone at -O3;
64         make ipa-cp-clone to imply ipa-cp; disable cloning at -Os.
65
66 2008-08-29  Jan Hubicka  <jh@suse.cz>
67
68         * tree.c (build_function_type_skip_args, build_function_decl_skip_args):
69         New functions.
70         * tree.h (build_function_type_skip_args, build_function_decl_skip_args):
71         Declare.
72         * gimple.c (giple_copy_call_skip_args): New function.
73         (giple_copy_call_skip_args): Declare.
74
75         * cgraph.h (cgraph_function_versioning): Add skip_args arugmnet
76         * ipa-cp.c (ipcp_node_not_modifiable_p): Rename to ...
77         (ipcp_node_modifiable_p): ... this one; use tree_versionable_function_p.
78         (ipcp_create_replace_map): Improve debug output.
79         (ipcp_need_redirect_p): Return false when not clonning.
80         (ipcp_update_callgraph): Skip args.
81         (ipcp_insert_stage): UPdate call of !ipcp_node_modifiable_p;
82         skip args.
83         * cgraphunit.c (cgraph_function_versioning): Add skip_args argument.
84         (save_inline_function_body): Update call of tree_function_versioning.
85         * ipa-prop.c (ipa_edge_removal_hook): Do not ICE on unanalyzed nodes.
86         * tree-inline.c (copy_arguments_for_versioning): Add skip_args argument.
87         (tree_function_versioning): Likewise.
88         * tree-inline.h (tree_function_versioning): Update prototype.
89
90 2008-08-29  Jan Hubicka  <jh@suse.cz>
91
92         * loop-unswitch.c (unswitch_single_loop): Use optimize_loop_for_speed_p.
93         * tree-ssa-threadupdate.c (mark_threaded_blocks): Use optimize_function_for_size_p.
94         * tracer.c (ignore_bb_p): Use optimize_bb_for_size_p.
95         * postreload-gcse.c (eliminate_partially_redundant_load): Use optimize_bb_for_size_p.
96         * value-prof.c (gimple_divmod_fixed_value_transform,
97         gimple_mod_pow2_value_transform, gimple_mod_subtract_transform,
98         gimple_stringops_transform): Use optimize_bb_for_size_p.
99         * ipa-cp.c (ipcp_insert_stage): Use optimize_function_for_size_p.
100         * final.c (compute_alignments): Use optimize_function_for_size_p.
101         * builtins.c (fold_builtin_cabs): Use optimize_function_for_speed_p.
102         (fold_builtin_strcpy, fold_builtin_fputs): Use
103         optimize_function_for_size_p.
104         * fold-const.c (tree_swap_operands_p): Use optimize_function_for_size_p.
105         * recog.c (relax_delay_slots): Likewise.
106         * tree-ssa-math-opts.c (replace_reciprocal): Use optimize_bb_for_speed_p.
107         (execute_cse_reciprocals): Use optimize_bb_for_size_p.
108         * ipa-inline.c (cgraph_decide_recursive_inlining): Use
109         optimize_function_for_size_p.
110         (cgraph_decide_inlining_of_small_function): Use
111         optimize_function_for_size_p.
112         * global.c (find_reg): Use optimize_function_for_size_p.
113         * opts.c (decode_options): Do not clear flag_tree_ch, flag_inline_functions,
114         flag_unswitch_loops, flag_unroll_loops, flag_unroll_all_loops and
115         flag_prefetch_loop_arrays. Those can work it out from profile.
116         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Use
117         optimize_loop_for_speed_p.
118         * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p): Constify
119         argument.
120         (optimize_loop_nest_for_size_p, optimize_loop_nest_for_speed_p): New.
121         * tree-parloops.c (parallelize_loops): Use optimize_loop_for_size_p.
122         * tree-eh.c (decide_copy_try_finally): Use optimize_function_for_size_p.
123         * local-alloc.c (block_alloc): Pass BB pointer.
124         (find_free_reg): Add BB pointer, use optimize_bb_for_size_p.
125         * gcse.c (gcse_main): Use optimize_function_for_size_p.
126         * loop-unroll.c (decide_unrolling_and_peeling): Use optimize_loop_for_size_p.
127         (decide_peel_completely): Likewise.
128         * tree-vect-analyze.c (vect_mark_for_runtime_alias_test): Use
129         optimize_loop_for_size_p.
130         (vect_enhance_data_refs_alignment): Likewise.
131         * tree-ssa-coalesce.c (coalesce_cost): Add optimize_for_size argument.
132         (coalesce_cost_bb, coalesce_cost_edge, create_outofssa_var_map): Update call.
133         * cfgcleanup.c (outgoing_edges_match): Use optimize_bb_for_speed_p.
134         (try_crossjump_bb): Use optimize_bb_for_size_p.
135         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
136         optimize_loop_for_speed_p.
137         * bb-reorder.c (find_traces_1_round): Likewise.
138         (copy_bb): Use optimize_bb_for_speed_p.
139         (duplicate_computed_gotos): Likewise.
140         * basic-block.h (optimize_loop_nest_for_size_p,
141         optimize_loop_nest_for_speed_p): New.
142         * stmt.c (expand_case): Use optimize_insn_for_size_p.
143
144 2008-08-29  Tristan Gingold  <gingold@adacore.com>
145
146         * gcov.c (main): Call expandargv.
147
148 2008-08-29  Jan Hubicka  <jh@suse.cz>
149
150         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Check that loop
151         is not cold.
152         * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
153         Constify arguments.
154         (optimize_loop_for_size_p, optimize_loop_for_speed_p): New functions.
155         * basic-block.h (optimize_bb_for_size_p, optimize_bb_for_speed_p):
156         Constify.
157         (optimize_loop_for_size_p, optimize_loop_for_speed_p): Declare.
158
159 2008-08-29  Jan Hubicka  <jh@suse.cz>
160
161         * tree-pass.h (pass_strip_predict_hints): Declare.
162         * predict.c (strip_builtin_expect): Rename to ...
163         (strip_predict_hints): ... this one; strip also GIMPLE_PREDICT.
164         (tree_bb_level_predictions): Do not remove GIMPLE_PREDICT.
165         (tree_estimate_probability): Do not strip builtin_expect.
166         (pass_strip_predict_hints): New pass.
167         * tree-inline.c (expand_call_inline): When inlining cold function, predict
168         it as unlikely.
169         * passes.c (init_optimization_passes): Add pass_strip_predict_hints.
170
171 2008-08-29  Richard Guenther  <rguenther@suse.de>
172
173         PR tree-optimization/37207
174         * tree-vrp.c (extract_range_from_binary_expr): Also try
175         to constant fold if only one of the operands is a constant.
176
177 2008-08-29  Nick Clifton  <nickc@redhat.com>
178
179         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Treat LABEL_REFs in
180         the same way as SYMBOL_REFs.
181
182 2008-08-28  Bob Wilson  <bob.wilson@acm.org>
183
184         * config/xtensa/xtensa.md (<u>mulsidi3): Use a temporary register.
185
186 2008-08-28  Adam Nemet  <anemet@caviumnetworks.com>
187
188         * config/mips/mips.h (ISA_HAS_BBIT): New macro.
189         * config/mips/mips.md (branch_likely): Remove const.  Fix
190         comment formatting.
191         (define_delay for type "branch"): Change to only apply for branch
192         with likely variant.
193         (define_delay for type "branch" and "branch_likely" no).  New delay
194         definition.
195         (equality_op): New code iterator.
196         (bbv, bbinv): New code attributes.
197         (*branch_bit<bbv><mode>, *branch_bit<bbv><mode>_inverted): New
198         patterns.
199
200 2008-08-28  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
201             Andrew Pinski  <pinskia@gcc.gnu.org>
202
203         PR 18050
204         * c-common.c (verify_tree): Fix handling of ADDR_EXPR.
205
206 2008-08-28  Paolo Carlini  <paolo.carlini@oracle.com>
207
208         * gtrh-posix.h: Fix uses of _POSIX_TIMEOUTS per the normal Posix
209         rule that a symbolic constant must be defined and >= 0 for the
210         corresponding facility to be present at compile-time.
211         * gthr-posix.c: Likewise.
212
213 2008-08-28  Adam Nemet  <anemet@caviumnetworks.com>
214
215         * config/mips/mips.h (ISA_HAS_DMUL3): New macro.
216         * config/mips/mips.md (D): New mode attribute.
217         (mulsi3, muldi3): Merge it into ...
218         (mul<mode>3): ... new template.  Use _mul3 ending for 3-op
219         patterns.
220         (muldi3_mul3): New pattern.
221         (mulsi3_mult3): Rename to mulsi3_mul3.
222
223 2008-08-28  Jan Hubicka  <jh@suse.cz>
224
225         * expmed.c (store_bit_field_1): Be prepared for movstrict expander
226         to fail.
227         * predict.c (always_optimize_for_size_p): Rename to ...
228         (optimize_function_for_size): ... this one; make extern.
229         (optimize_function_for_speed_p): New.
230         (optimize_bb_for_size_p, optimize_bb_for_size_p,
231         optimize_edge_for_size_p,optimize_edge_for_size_p,
232         optimize_insn_for_size_p, optimize_insn_for_size_p): Update.
233         * basic-block.h (optimize_function_for_size_p,
234         optimize_function_for_speed_p): Declare.
235         * i386.md (optimize_size checks): Replace them by appropriate
236         predicate.
237         (standard_80387_constant_p, ix86_compute_frame_layout,
238         ix86_expand_epilogue, ix86_decompose_address,
239         print_operand, emit_i387_cw_initialization,
240         inline_memory_move_cost, ix86_pad_returns,
241         ix86_reorg): Replace optimize_size checks.
242
243 2008-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
244
245         * rtl.h (simplify_subreg_regno): Declare.
246         * rtlanal.c (simplify_subreg_regno): New function, split out from...
247         * simplify-rtx.c (simplify_subreg): ...here.
248         * reload.c (find_reloads): Use simplify_subreg_regno instead of
249         subreg_offset_representable_p.
250
251 2008-08-28  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
252
253         PR c/30949
254         * c-typeck.c (convert_for_assignment): Give a note describing what
255         was passed and what was expected.
256
257 2008-08-28  Joey Ye  <joey.ye@intel.com>
258
259         * doc/extend.texi: Document AVX built-in functions.
260         * doc/invoke.texi: Document -mavx.
261
262 2008-08-28  H.J. Lu  <hongjiu.lu@intel.com>
263             Joey Ye  <joey.ye@intel.com>
264             Xuepeng Guo  <xuepeng.guo@intel.com>
265
266         * config.gcc (extra_headers): Add gmmintrin.h for x86 and x86-64.
267
268         * config/i386/cpuid.h (bit_FMA): New.
269         (bit_XSAVE): Likewise.
270         (bit_OSXSAVE): Likewise.
271         (bit_AVX): Likewise.
272
273         * config/i386/gas.h (ASM_OUTPUT_OPCODE): Undefine before
274         define.  Use ASM_OUTPUT_AVX_PREFIX.
275
276         * config/i386/gmmintrin.h: New.
277
278         * config/i386/i386.c (x86_64_reg_class): Add X86_64_AVX_CLASS.
279         (OPTION_MASK_ISA_AVX_SET): New.
280         (OPTION_MASK_ISA_FMA_SET): Likewise.
281         (OPTION_MASK_ISA_AVX_UNSET): Likewise.
282         (OPTION_MASK_ISA_FMA_SET): Likewise.
283         (OPTION_MASK_ISA_SSE4_2_UNSET): Updated.
284         (ix86_handle_option): Handle OPT_mavx and OPT_mfma.
285         (pta_flags): Add PTA_AVX and PTA_FMA.
286         (override_options): Handle PTA_AVX and PTA_FMA.
287         (init_cumulative_args): Handle warn_avx.
288         (classify_argument): Return 0 for COImode and OImode.  Return
289         1 and X86_64_AVX_CLASS for 256bit vector types.
290         (examine_argument): Handle X86_64_AVX_CLASS.
291         (construct_container): Likewise.
292         (function_arg_advance_32): Pass OImode and 256bit vector types
293         in AVX register.
294         (function_arg_advance_64): Take a new argument to indicate if a
295         parameter is named.  Handle 256bit vector types.  Return
296         immediately for unnamed 256bit vector mode parameters.
297         (function_arg_advance): Updated.
298         (function_arg_32): Add comments for TImode.  Handle OImode
299         and 256bit vector types.
300         (function_arg_64): Take a new argument to indicate if a
301         parameter is named.  Handle 256bit vector types.  Return NULL
302         for unnamed 256bit vector mode parameters.
303         (function_arg): Updated.
304         (setup_incoming_varargs_64): Support
305         AVX encoding for *sse_prologue_save_insn.
306         (ix86_gimplify_va_arg): Handle 256bit vector mode parameters.
307         (standard_sse_constant_p): Return -2 for all 1s if SSE2 isn't
308         enabled.  For all 1s in 256bit vector modes, return 3 if AVX is
309         enabled, otherwise return -3.
310         (standard_sse_constant_opcode): Handle AVX and 256bit vector
311         modes.
312         (print_reg): Support AVX registers.  Handle 'x' and 't'.
313         Handle 'd' to duplicate the operand.
314         (print_operand): Likewise.  Also support AVX vector compare
315         instructions.
316         (output_387_binary_op): Support AVX.
317         (output_fp_compare): Likewise.
318         (ix86_expand_vector_move_misalign): Likewise.
319         (ix86_attr_length_vex_default): New.
320         (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
321         IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
322         IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
323         IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
324         IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_BLENDPD256,
325         IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
326         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DIVPD256,
327         IX86_BUILTIN_DIVPS256, IX86_BUILTIN_DPPS256,
328         IX86_BUILTIN_HADDPD256, IX86_BUILTIN_HADDPS256,
329         IX86_BUILTIN_HSUBPD256, IX86_BUILTIN_HSUBPS256,
330         IX86_BUILTIN_MAXPD256, IX86_BUILTIN_MAXPS256,
331         IX86_BUILTIN_MINPD256, IX86_BUILTIN_MINPS256,
332         IX86_BUILTIN_MULPD256, IX86_BUILTIN_MULPS256,
333         IX86_BUILTIN_ORPD256, IX86_BUILTIN_ORPS256,
334         IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
335         IX86_BUILTIN_SUBPD256, IX86_BUILTIN_SUBPS256,
336         IX86_BUILTIN_XORPD256, IX86_BUILTIN_XORPS256,
337         IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
338         IX86_BUILTIN_CMPPS, IX86_BUILTIN_CMPPD256,
339         IX86_BUILTIN_CMPPS256, IX86_BUILTIN_CVTDQ2PD256,
340         IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
341         IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
342         IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
343         IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_EXTRACTF128PD256,
344         IX86_BUILTIN_EXTRACTF128PS256, IX86_BUILTIN_EXTRACTF128SI256,
345         IX86_BUILTIN_VZEROALL, IX86_BUILTIN_VZEROUPPER,
346         IX86_BUILTIN_VZEROUPPER_REX64, IX86_BUILTIN_VPERMILVARPD,
347         IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
348         IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_VPERMILPD,
349         IX86_BUILTIN_VPERMILPS, IX86_BUILTIN_VPERMILPD256,
350         IX86_BUILTIN_VPERMILPS256, IX86_BUILTIN_VPERMIL2PD,
351         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256,
352         IX86_BUILTIN_VPERMIL2PS256, IX86_BUILTIN_VPERM2F128PD256,
353         IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
354         IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
355         IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
356         IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_VINSERTF128PD256,
357         IX86_BUILTIN_VINSERTF128PS256, IX86_BUILTIN_VINSERTF128SI256,
358         IX86_BUILTIN_LOADUPD256, IX86_BUILTIN_LOADUPS256,
359         IX86_BUILTIN_STOREUPD256, IX86_BUILTIN_STOREUPS256,
360         IX86_BUILTIN_LDDQU256, IX86_BUILTIN_LOADDQU256,
361         IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_MASKLOADPD,
362         IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKSTOREPD,
363         IX86_BUILTIN_MASKSTOREPS, IX86_BUILTIN_MASKLOADPD256,
364         IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKSTOREPD256,
365         IX86_BUILTIN_MASKSTOREPS256, IX86_BUILTIN_MOVSHDUP256,
366         IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
367         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
368         IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
369         IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
370         IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
371         IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
372         IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
373         IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
374         IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
375         IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
376         IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
377         IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
378         IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
379         IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
380         IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
381         IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
382         IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
383         IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256
384         and IX86_BUILTIN_MOVMSKPS256,
385         (ix86_special_builtin_type): Add V32QI_FTYPE_PCCHAR,
386         V8SF_FTYPE_PCV4SF, V8SF_FTYPE_PCFLOAT, V4DF_FTYPE_PCV2DF,
387         V4DF_FTYPE_PCDOUBLE, V8SF_FTYPE_PCV8SF_V8SF,
388         V4DF_FTYPE_PCV4DF_V4DF, V4SF_FTYPE_PCV4SF_V4SF,
389         V2DF_FTYPE_PCV2DF_V2DF, VOID_FTYPE_PCHAR_V32QI,
390         VOID_FTYPE_PFLOAT_V8SF, VOID_FTYPE_PDOUBLE_V4DF,
391         VOID_FTYPE_PV8SF_V8SF_V8SF, VOID_FTYPE_PV4DF_V4DF_V4DF,
392         VOID_FTYPE_PV4SF_V4SF_V4SF and VOID_FTYPE_PV2DF_V2DF_V2DF,
393         (ix86_builtin_type): Add INT_FTYPE_V8SF_V8SF_PTEST,
394         INT_FTYPE_V4DI_V4DI_PTEST, INT_FTYPE_V4DF_V4DF_PTEST,
395         INT_FTYPE_V4SF_V4SF_PTEST, INT_FTYPE_V2DF_V2DF_PTEST,
396         INT_FTYPE_V8SF, INT_FTYPE_V4DF, V8SI_FTYPE_V8SF, V8SI_FTYPE_V4SI,
397         V8SF_FTYPE_V8SF, V8SF_FTYPE_V8SI, V8SF_FTYPE_V4SF,
398         V4SI_FTYPE_V8SI, V4SI_FTYPE_V4DF, V4DF_FTYPE_V4DF,
399         V4DF_FTYPE_V4SI, V4DF_FTYPE_V4SF, V4DF_FTYPE_V2DF,
400         V4SF_FTYPE_V4DF, V4SF_FTYPE_V8SF, V2DF_FTYPE_V4DF,
401         V8SF_FTYPE_V8SF_V8SF, V8SF_FTYPE_V8SF_V8SI,
402         V4DF_FTYPE_V4DF_V4DF, V4DF_FTYPE_V4DF_V4DI,
403         V4SF_FTYPE_V4SF_V4SI, V2DF_FTYPE_V2DF_V2DI,
404         V8SF_FTYPE_V8SF_INT, V4SI_FTYPE_V8SI_INT, V4SF_FTYPE_V8SF_INT,
405         V2DF_FTYPE_V4DF_INT, V4DF_FTYPE_V4DF_INT,
406         V8SF_FTYPE_V8SF_V8SF_V8SF, V4DF_FTYPE_V4DF_V4DF_V4DF,
407         V8SI_FTYPE_V8SI_V8SI_INT, V8SF_FTYPE_V8SF_V8SF_INT,
408         V4DF_FTYPE_V4DF_V4DF_INT, V4DF_FTYPE_V4DF_V2DF_INT,
409         V8SF_FTYPE_V8SF_V8SF_V8SI_INT, V4DF_FTYPE_V4DF_V4DF_V4DI_INT,
410         V4SF_FTYPE_V4SF_V4SF_V4SI_INT and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
411         (bdesc_special_args): Add IX86_BUILTIN_VZEROALL,
412         IX86_BUILTIN_VZEROUPPER. IX86_BUILTIN_VZEROUPPER_REX64,
413         IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
414         IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
415         IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_LOADUPD256,
416         IX86_BUILTIN_LOADUPS256, IX86_BUILTIN_STOREUPD256,
417         IX86_BUILTIN_STOREUPS256, IX86_BUILTIN_LOADDQU256,
418         IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_LDDQU256,
419         IX86_BUILTIN_MASKLOADPD, IX86_BUILTIN_MASKLOADPS,
420         IX86_BUILTIN_MASKLOADPD256, IX86_BUILTIN_MASKLOADPS256,
421         IX86_BUILTIN_MASKSTOREPD, IX86_BUILTIN_MASKSTOREPS,
422         IX86_BUILTIN_MASKSTOREPD256 and IX86_BUILTIN_MASKSTOREPS256.
423         (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
424         IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
425         IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
426         IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
427         IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_DIVPD256,
428         IX86_BUILTIN_DIVPS256, IX86_BUILTIN_HADDPD256,
429         IX86_BUILTIN_HSUBPS256, IX86_BUILTIN_HSUBPD256,
430         IX86_BUILTIN_HADDPS256, IX86_BUILTIN_MAXPD256,
431         IX86_BUILTIN_MAXPS256, IX86_BUILTIN_MINPD256,
432         IX86_BUILTIN_MINPS256, IX86_BUILTIN_MULPD256,
433         IX86_BUILTIN_MULPS256, IX86_BUILTIN_ORPD256,
434         IX86_BUILTIN_ORPS256, IX86_BUILTIN_SUBPD256,
435         IX86_BUILTIN_SUBPS256, IX86_BUILTIN_XORPD256,
436         IX86_BUILTIN_XORPS256, IX86_BUILTIN_VPERMILVARPD,
437         IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
438         IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_BLENDPD256,
439         IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
440         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DPPS256,
441         IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
442         IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
443         IX86_BUILTIN_CMPPS,
444         IX86_BUILTIN_CMPPD256,IX86_BUILTIN_CMPPS256,
445         IX86_BUILTIN_EXTRACTF128PD256, IX86_BUILTIN_EXTRACTF128PS256,
446         IX86_BUILTIN_EXTRACTF128SI256, IX86_BUILTIN_CVTDQ2PD256,
447         IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
448         IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
449         IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
450         IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_VPERM2F128PD256,
451         IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
452         IX86_BUILTIN_VPERMILPD, IX86_BUILTIN_VPERMILPS,
453         IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
454         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMILPS,
455         IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
456         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
457         IX86_BUILTIN_VPERMIL2PD256, IX86_BUILTIN_VPERMIL2PS256,
458         IX86_BUILTIN_VINSERTF128PD256, IX86_BUILTIN_VINSERTF128PS256,
459         IX86_BUILTIN_VINSERTF128SI256, IX86_BUILTIN_MOVSHDUP256,
460         IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
461         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
462         IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
463         IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
464         IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
465         IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
466         IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
467         IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
468         IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
469         IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
470         IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
471         IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
472         IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
473         IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
474         IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
475         IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
476         IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
477         IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256 and
478         IX86_BUILTIN_MOVMSKPS256.
479         (ix86_init_mmx_sse_builtins): Support AVX builtins.
480         (ix86_expand_args_builtin): Likewise.
481         (ix86_expand_special_args_builtin): Likewise.
482         (ix86_hard_regno_mode_ok): Handle AVX modes.
483         (ix86_expand_vector_init_duplicate): Likewise.
484         (ix86_expand_vector_init_one_nonzero): Likewise.
485         (ix86_expand_vector_init_one_var): Likewise.
486         (ix86_expand_vector_init_concat): Likewise.
487         (ix86_expand_vector_init_general): Likewise.
488         (ix86_expand_vector_set): Likewise.
489         (ix86_vector_mode_supported_p): Likewise.
490         (x86_extended_reg_mentioned_p): Check INSN_P before using
491         PATTERN.
492
493         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
494         OPTION_MASK_ISA_AVX and OPTION_MASK_ISA_FMA.
495
496         * config/i386/i386.h (TARGET_AVX): New.
497         (TARGET_FMA): Likewise.
498         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AVX and TARGET_FMA.
499         (BIGGEST_ALIGNMENT): Set to 256 for TARGET_AVX.
500         (VALID_AVX256_REG_MODE): New.
501         (AVX256_VEC_FLOAT_MODE_P): Likewise.
502         (AVX_FLOAT_MODE_P): Likewise.
503         (AVX128_VEC_FLOAT_MODE_P): Likewise.
504         (AVX256_VEC_FLOAT_MODE_P): Likewise.
505         (AVX_VEC_FLOAT_MODE_P): Likewise.
506         (ASM_OUTPUT_AVX_PREFIX): Likewise.
507         (ASM_OUTPUT_OPCODE): Likewise.
508         (UNITS_PER_SIMD_WORD): Add a FIXME for 32byte vectorizer
509         support.
510         (SSE_REG_MODE_P): Allow 256bit vector modes.
511         (ix86_args): Add a warn_avx field.
512
513         * config/i386/i386.md (UNSPEC_PCMP): New.
514         (UNSPEC_VPERMIL): Likewise.
515         (UNSPEC_VPERMIL2): Likewise.
516         (UNSPEC_VPERMIL2F128): Likewise.
517         (UNSPEC_MASKLOAD): Likewise.
518         (UNSPEC_MASKSTORE): Likewise.
519         (UNSPEC_CAST): Likewise.
520         (UNSPEC_VTESTP): Likewise.
521         (UNSPECV_VZEROALL): Likewise.
522         (UNSPECV_VZEROUPPER): Likewise.
523         (XMM0_REG): Likewise.
524         (XMM1_REG): Likewise.
525         (XMM2_REG): Likewise.
526         (XMM3_REG): Likewise.
527         (XMM4_REG): Likewise.
528         (XMM5_REG): Likewise.
529         (XMM6_REG): Likewise.
530         (XMM8_REG): Likewise.
531         (XMM9_REG): Likewise.
532         (XMM10_REG): Likewise.
533         (XMM11_REG): Likewise.
534         (XMM12_REG): Likewise.
535         (XMM13_REG): Likewise.
536         (XMM14_REG): Likewise.
537         (XMM15_REG): Likewise.
538         (prefix): Likewise.
539         (prefix_vex_imm8): Likewise.
540         (prefix_vex_w): Likewise.
541         (length_vex): Likewise.
542         (maxmin): Likewise.
543         (movoi): Likewise.
544         (*avx_ashlti3): Likewise.
545         (*avx_lshrti3): Likewise.
546         (*avx_setcc<mode>): Likewise.
547         (*fop_<mode>_comm_mixed_avx): Likewise.
548         (*fop_<mode>_comm_avx): Likewise.
549         (*fop_<mode>_1_mixed_avx): Likewise.
550         (*fop_<mode>_1_avx): Likewise.
551         (*avx_<code><mode>3): Likewise.
552         (*avx_ieee_smin<mode>3): Likewise.
553         (*avx_ieee_smax<mode>3): Likewise.
554         (mode): Add OI, V8SF and V4DF.
555         (length): Support VEX prefix.
556         (*cmpfp_i_mixed): Set prefix attribute.
557         (*cmpfp_i_sse): Likewise.
558         (*cmpfp_iu_mixed): Likewise.
559         (*cmpfp_iu_sse): Likewise.
560         (*movsi_1): Support AVX.
561         (*movdi_2): Likewise.
562         (*movdi_1_rex64): Likewise.
563         (*movti_internal): Likewise.
564         (*movti_rex64): Likewise.
565         (*movsf_1): Likewise.
566         (*movdf_nointeger): Likewise.
567         (*movdf_integer_rex64): Likewise.
568         (*movtf_internal): Likewise.
569         (zero_extendsidi2_32): Likewise.
570         (zero_extendsidi2_rex64): Likewise.
571         (*extendsfdf2_mixed): Likewise.
572         (*extendsfdf2_sse): Likewise.
573         (*truncdfsf_fast_mixed): Likewise.
574         (*truncdfsf_fast_sse): Likewise.
575         (*truncdfsf_mixed): Likewise.
576         (fix_trunc<mode>di_sse): Likewise.
577         (fix_trunc<mode>si_sse): Likewise.
578         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
579         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
580         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
581         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
582         (*rcpsf2_sse): Likewise.
583         (*rsqrtsf2_sse): Likewise.
584         (*sqrt<mode>2_sse): Likewise.
585         (sse4_1_round<mode>2): Likewise.
586         (*sse_prologue_save_insn): Disallow REX prefix for AVX.
587         Support AVX.  Set length attribute properly for AVX.
588
589         * config/i386/i386-modes.def (VECTOR_MODES (INT, 32)): New.
590         (VECTOR_MODES (FLOAT, 32)): Likewise.
591         (VECTOR_MODE (INT, DI, 8)): Likewise.
592         (VECTOR_MODE (INT, HI, 32)): Likewise.
593         (VECTOR_MODE (INT, QI, 64)): Likewise.
594         (VECTOR_MODE (FLOAT, DF, 8)): Likewise.
595         (VECTOR_MODE (FLOAT, SF, 16)): Likewise.
596         (VECTOR_MODE (INT, DI, 4)): Removed.
597         (VECTOR_MODE (INT, SI, 8)): Likewise.
598         (VECTOR_MODE (INT, HI, 16)): Likewise.
599         (VECTOR_MODE (INT, QI, 32)): Likewise.
600         (VECTOR_MODE (FLOAT, SF, 8)): Likewise.
601         (INT_MODE (OI, 32)): Likewise.
602
603         * config/i386/i386.opt (mavx): New.
604         (mfma): Likewise.
605
606         * config/i386/i386-protos.h (ix86_attr_length_vex_default): New.
607
608         * config/i386/mmx.md (*mov<mode>_internal_rex64): Support AVX.
609         (*mov<mode>_internal_avx): New.
610         (*movv2sf_internal_rex64_avx): Likewise.
611         (*movv2sf_internal_avx): Likewise.
612
613         * config/i386/predicates.md (const_4_to_5_operand): New.
614         (const_6_to_7_operand): Likewise.
615         (const_8_to_11_operand): Likewise.
616         (const_12_to_15_operand): Likewise.
617         (avx_comparison_float_operator): Likewise.
618
619         * config/i386/sse.md (AVX256MODEI): New.
620         (AVX256MODE): Likewise.
621         (AVXMODEQI): Likewise.
622         (AVXMODE): Likewise.
623         (AVX256MODEF2P): Likewise.
624         (AVX256MODE2P): Likewise.
625         (AVX256MODE4P): Likewise.
626         (AVX256MODE8P): Likewise.
627         (AVXMODEF2P): Likewise.
628         (AVXMODEF4P): Likewise.
629         (AVXMODEDCVTDQ2PS): Likewise.
630         (AVXMODEDCVTPS2DQ): Likewise.
631         (avxvecmode): Likewise.
632         (avxvecpsmode): Likewise.
633         (avxhalfvecmode): Likewise.
634         (avxscalarmode): Likewise.
635         (avxcvtvecmode): Likewise.
636         (avxpermvecmode): Likewise.
637         (avxmodesuffixf2c): Likewise.
638         (avxmodesuffixp): Likewise.
639         (avxmodesuffixs): Likewise.
640         (avxmodesuffix): Likewise.
641         (vpermilbits): Likewise.
642         (pinsrbits): Likewise.
643         (mov<mode>): Likewise.
644         (*mov<mode>_internal): Likewise.
645         (push<mode>1): Likewise.
646         (movmisalign<mode>): Likewise.
647         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Likewise.
648         (avx_movdqu<avxmodesuffix>): Likewise.
649         (avx_lddqu<avxmodesuffix>): Likewise.
650         (<plusminus_insn><mode>3): Likewise.
651         (*avx_<plusminus_insn><mode>3): Likewise.
652         (*avx_vm<plusminus_insn><mode>3): Likewise.
653         (mul<mode>3): Likewise.
654         (*avx_mul<mode>3): Likewise.
655         (*avx_vmmul<mode>3): Likewise.
656         (divv8sf3): Likewise.
657         (divv4df3): Likewise.
658         (avx_div<mode>3): Likewise.
659         (*avx_div<mode>3): Likewise.
660         (*avx_vmdiv<mode>3): Likewise.
661         (avx_rcpv8sf2): Likewise.
662         (*avx_vmrcpv4sf2): Likewise.
663         (sqrtv8sf2): Likewise.
664         (avx_sqrtv8sf2): Likewise.
665         (*avx_vmsqrt<mode>2): Likewise.
666         (rsqrtv8sf2): Likewise.
667         (avx_rsqrtv8sf2): Likewise.
668         (*avx_vmrsqrtv4sf2): Likewise.
669         (<code><mode>3): Likewise.
670         (*avx_<code><mode>3_finite): Likewise.
671         (*avx_<code><mode>3): Likewise.
672         (*avx_vm<code><mode>3): Likewise.
673         (*avx_ieee_smin<mode>3): Likewise.
674         (*avx_ieee_smax<mode>3): Likewise.
675         (avx_addsubv8sf3): Likewise.
676         (avx_addsubv4df3): Likewise.
677         (*avx_addsubv4sf3): Likewise.
678         (*avx_addsubv2df3): Likewise.
679         (avx_h<plusminus_insn>v4df3): Likewise.
680         (avx_h<plusminus_insn>v8sf3): Likewise.
681         (*avx_h<plusminus_insn>v4sf3): Likewise.
682         (*avx_h<plusminus_insn>v2df3): Likewise.
683         (avx_cmpp<avxmodesuffixf2c><mode>3): Likewise.
684         (avx_cmps<ssemodesuffixf2c><mode>3): Likewise.
685         (*avx_maskcmp<mode>3): Likewise.
686         (avx_nand<mode>3): Likewise.
687         (*avx_<code><mode>3): Likewise.
688         (*avx_nand<mode>3): Likewise.
689         (*avx_<code><mode>3): Likewise.
690         (*avx_cvtsi2ss): Likewise.
691         (*avx_cvtsi2ssq): Likewise.
692         (*avx_cvtsi2sd): Likewise.
693         (*avx_cvtsi2sdq): Likewise.
694         (*avx_cvtsd2ss): Likewise.
695         (avx_cvtss2sd): Likewise.
696         (avx_cvtdq2ps<avxmodesuffix>): Likewise.
697         (avx_cvtps2dq<avxmodesuffix>): Likewise.
698         (avx_cvttps2dq<avxmodesuffix>): Likewise.
699         (*avx_cvtsi2sd): Likewise.
700         (*avx_cvtsi2sdq): Likewise.
701         (avx_cvtdq2pd256): Likewise.
702         (avx_cvtpd2dq256): Likewise.
703         (avx_cvttpd2dq256): Likewise.
704         (*avx_cvtsd2ss): Likewise.
705         (*avx_cvtss2sd): Likewise.
706         (avx_cvtpd2ps256): Likewise.
707         (avx_cvtps2pd256): Likewise.
708         (*avx_movhlps): Likewise.
709         (*avx_movlhps): Likewise.
710         (avx_unpckhps256): Likewise.
711         (*avx_unpckhps): Likewise.
712         (avx_unpcklps256): Likewise.
713         (*avx_unpcklps): Likewise.
714         (avx_movshdup256): Likewise.
715         (avx_movsldup256): Likewise.
716         (avx_shufps256): Likewise.
717         (avx_shufps256_1): Likewise.
718         (*avx_shufps_<mode>): Likewise.
719         (*avx_loadhps): Likewise.
720         (*avx_storelps): Likewise.
721         (*avx_loadlps): Likewise.
722         (*avx_movss): Likewise.
723         (*vec_dupv4sf_avx): Likewise.
724         (*vec_concatv2sf_avx): Likewise.
725         (*vec_concatv4sf_avx): Likewise.
726         (*vec_setv4sf_0_avx): Likewise.
727         (*vec_setv4sf_avx): Likewise.
728         (*avx_insertps): Likewise.
729         (avx_vextractf128<mode>): Likewise.
730         (vec_extract_lo_<mode>): Likewise.
731         (vec_extract_hi_<mode>): Likewise.
732         (vec_extract_lo_<mode>): Likewise.
733         (vec_extract_hi_<mode>): Likewise.
734         (vec_extract_lo_v16hi): Likewise.
735         (vec_extract_hi_v16hi): Likewise.
736         (vec_extract_lo_v32qi): Likewise.
737         (vec_extract_hi_v32qi): Likewise.
738         (avx_unpckhpd256): Likewise.
739         (*avx_unpckhpd): Likewise.
740         (avx_movddup256): Likewise.
741         (*avx_movddup): Likewise.
742         (avx_unpcklpd256): Likewise.
743         (*avx_unpcklpd): Likewise.
744         (avx_shufpd256): Likewise.
745         (avx_shufpd256_1): Likewise.
746         (*avx_punpckhqdq): Likewise.
747         (*avx_punpcklqdq): Likewise.
748         (*avx_shufpd_<mode>): Likewise.
749         (*avx_storehpd): Likewise.
750         (*avx_loadhpd): Likewise.
751         (*avx_loadlpd): Likewise.
752         (*avx_movsd): Likewise.
753         (*vec_concatv2df_avx): Likewise.
754         (*avx_<plusminus_insn><mode>3): Likewise.
755         (*avx_<plusminus_insn><mode>3): Likewise.
756         (*avx_mulv8hi3): Likewise.
757         (*avxv8hi3_highpart): Likewise.
758         (*avx_umulv8hi3_highpart): Likewise.
759         (*avx_umulv2siv2di3): Likewise.
760         (*avx_mulv2siv2di3): Likewise.
761         (*avx_pmaddwd): Likewise.
762         (*avx_mulv4si3): Likewise.
763         (*avx_ashr<mode>3): Likewise.
764         (*avx_lshr<mode>3): Likewise.
765         (*avx_ashl<mode>3): Likewise.
766         (*avx_<code><mode>3): Likewise.
767         (*avx_eq<mode>3): Likewise.
768         (*avx_gt<mode>3): Likewise.
769         (*avx_nand<mode>3): Likewise.
770         (*avx_nand<mode>3): Likewise.
771         (*avx_<code><mode>3): Likewise.
772         (*avx_<code><mode>3): Likewise.
773         (*avx_packsswb): Likewise.
774         (*avx_packssdw): Likewise.
775         (*avx_packuswb): Likewise.
776         (*avx_punpckhbw): Likewise.
777         (*avx_punpcklbw): Likewise.
778         (*avx_punpckhwd): Likewise.
779         (*avx_punpcklwd): Likewise.
780         (*avx_punpckhdq): Likewise.
781         (*avx_punpckldq): Likewise.
782         (*avx_pinsr<avxmodesuffixs>): Likewise.
783         (*avx_pinsrq): Likewise.
784         (*avx_loadld): Likewise.
785         (*vec_extractv2di_1_rex64_avx): Likewise.
786         (*vec_extractv2di_1_avx): Likewise.
787         (*vec_dupv2di_avx): Likewise.
788         (*vec_concatv2si_avx): Likewise.
789         (*vec_concatv4si_1_avx): Likewise.
790         (*vec_concatv2di_avx): Likewise.
791         (*vec_concatv2di_rex64_avx): Likewise.
792         (*avx_uavgv16qi3): Likewise.
793         (*avx_uavgv8hi3): Likewise.
794         (*avx_psadbw): Likewise.
795         (avx_movmskp<avxmodesuffixf2c>256): Likewise.
796         (*avx_phaddwv8hi3): Likewise.
797         (*avx_phadddv4si3): Likewise.
798         (*avx_phaddswv8hi3): Likewise.
799         (*avx_phsubwv8hi3): Likewise.
800         (*avx_phsubdv4si3): Likewise.
801         (*avx_phsubswv8hi3): Likewise.
802         (*avx_pmaddubsw128): Likewise.
803         (*avx_pmulhrswv8hi3): Likewise.
804         (*avx_pshufbv16qi3): Likewise.
805         (*avx_psign<mode>3): Likewise.
806         (*avx_palignrti): Likewise.
807         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
808         (avx_blendvp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
809         (avx_dpp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
810         (*avx_mpsadbw): Likewise.
811         (*avx_packusdw): Likewise.
812         (*avx_pblendvb): Likewise.
813         (*avx_pblendw): Likewise.
814         (avx_vtestp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
815         (avx_ptest256): Likewise.
816         (avx_roundp<avxmodesuffixf2c>256): Likewise.
817         (*avx_rounds<ssemodesuffixf2c>): Likewise.
818         (*avx_aesenc): Likewise.
819         (*avx_aesenclast): Likewise.
820         (*avx_aesdec): Likewise.
821         (*avx_aesdeclast): Likewise.
822         (avx_vzeroupper): Likewise.
823         (avx_vzeroupper_rex64): Likewise.
824         (avx_vpermil<mode>): Likewise.
825         (avx_vpermilvar<mode>3): Likewise.
826         (avx_vpermil2<mode>3): Likewise.
827         (avx_vperm2f128<mode>3): Likewise.
828         (avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>): Likewise.
829         (avx_vbroadcastss256): Likewise.
830         (avx_vbroadcastf128_p<avxmodesuffixf2c>256): Likewise.
831         (avx_vinsertf128<mode>): Likewise.
832         (vec_set_lo_<mode>): Likewise.
833         (vec_set_hi_<mode>): Likewise.
834         (vec_set_lo_<mode>): Likewise.
835         (vec_set_hi_<mode>): Likewise.
836         (vec_set_lo_v16hi): Likewise.
837         (vec_set_hi_v16hi): Likewise.
838         (vec_set_lo_v32qi): Likewise.
839         (vec_set_hi_v32qi): Likewise.
840         (avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
841         (avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>): Likewise.
842         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
843         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Likewise.
844         (vec_init<mode>): Likewise.
845         (*vec_concat<mode>_avx): Likewise.
846         (blendbits): Support V8SF and V4DF.
847         (sse2_movq128): Support AVX.
848         (<sse>_movnt<mode>): Likewise.
849         (sse2_movntv2di): Likewise.
850         (sse_rcpv4sf2): Likewise.
851         (sse_sqrtv4sf2): Likewise.
852         (sse_rsqrtv4sf2): Likewise.
853         (<sse>_comi): Likewise.
854         (<sse>_ucomi): Likewise.
855         (sse_cvtss2si): Likewise.
856         (sse_cvtss2si_2): Likewise.
857         (sse_cvtss2siq): Likewise.
858         (sse_cvtss2siq_2): Likewise.
859         (sse_cvttss2si): Likewise.
860         (sse_cvttss2siq): Likewise.
861         (sse2_cvtsd2si): Likewise.
862         (sse2_cvtsd2si_2): Likewise.
863         (sse2_cvtsd2siq): Likewise.
864         (sse2_cvtsd2siq_2): Likewise.
865         (sse2_cvttsd2si): Likewise.
866         (sse2_cvttsd2siq): Likewise.
867         (sse2_cvtdq2pd): Likewise.
868         (*sse2_cvtpd2dq): Likewise.
869         (*sse2_cvttpd2dq): Likewise.
870         (*sse2_cvtpd2ps): Likewise.
871         (sse2_cvtps2pd): Likewise.
872         (sse3_movshdup): Likewise.
873         (sse3_movsldup): Likewise.
874         (sse_storehps): Likewise.
875         (*sse4_1_extractps): Likewise.
876         (sse2_storelpd): Likewise.
877         (vec_dupv2df_sse3): Likewise.
878         (*vec_concatv2df_sse3): Likewise.
879         (*sse4_1_pextrb): Likewise.
880         (*sse4_1_pextrb_memory): Likewise.
881         (*sse2_pextrw): Likewise.
882         (*sse4_1_pextrw_memory): Likewise.
883         (*sse4_1_pextrd): Likewise.
884         (*sse4_1_pextrq): Likewise.
885         (sse2_pshufd_1): Likewise.
886         (sse2_pshuflw_1): Likewise.
887         (sse2_pshufhw_1): Likewise.
888         (*sse2_storeq_rex64): Likewise.
889         (*vec_dupv4si): Likewise.
890         (<sse>_movmskp<ssemodesuffixf2c>): Likewise.
891         (sse2_pmovmskb): Likewise.
892         (*sse2_maskmovdqu): Likewise.
893         (*sse2_maskmovdqu_rex64): Likewise.
894         (sse_ldmxcsr): Likewise.
895         (sse_stmxcsr): Likewise.
896         (abs<mode>2): Likewise.
897         (sse4_1_movntdqa): Likewise.
898         (sse4_1_phminposuw): Likewise.
899         (sse4_1_extendv8qiv8hi2): Likewise.
900         (*sse4_1_extendv8qiv8hi2): Likewise.
901         (sse4_1_extendv4qiv4si2): Likewise.
902         (*sse4_1_extendv4qiv4si2): Likewise.
903         (sse4_1_extendv2qiv2di2): Likewise.
904         (*sse4_1_extendv2qiv2di2): Likewise.
905         (sse4_1_extendv4hiv4si2): Likewise.
906         (*sse4_1_extendv4hiv4si2): Likewise.
907         (sse4_1_extendv2hiv2di2): Likewise.
908         (*sse4_1_extendv2hiv2di2): Likewise.
909         (sse4_1_extendv2siv2di2): Likewise.
910         (*sse4_1_extendv2siv2di2): Likewise.
911         (sse4_1_zero_extendv8qiv8hi2): Likewise.
912         (*sse4_1_zero_extendv8qiv8hi2): Likewise.
913         (sse4_1_zero_extendv4qiv4si2): Likewise.
914         (*sse4_1_zero_extendv4qiv4si2): Likewise.
915         (sse4_1_zero_extendv2qiv2di2): Likewise.
916         (*sse4_1_zero_extendv2qiv2di2): Likewise.
917         (sse4_1_zero_extendv4hiv4si2): Likewise.
918         (*sse4_1_zero_extendv4hiv4si2): Likewise.
919         (sse4_1_zero_extendv2hiv2di2): Likewise.
920         (*sse4_1_zero_extendv2hiv2di2): Likewise.
921         (sse4_1_zero_extendv2siv2di2): Likewise.
922         (*sse4_1_zero_extendv2siv2di2): Likewise.
923         (sse4_1_ptest): Likewise.
924         (sse4_1_roundp<ssemodesuffixf2c>): Likewise.
925         (sse4_2_pcmpestri): Likewise.
926         (sse4_2_pcmpestrm): Likewise.
927         (sse4_2_pcmpistri): Likewise.
928         (sse4_2_pcmpistrm): Likewise.
929         (aesimc): Likewise.
930         (aeskeygenassist): Likewise.
931
932 2008-08-28  Uros Bizjak  <ubizjak@gmail.com>
933
934         * config/i386/predicates.md (vzeroall_operation): New.
935
936         * config/i386/sse.md (avx_vzeroall): New.
937         (*avx_vzeroall): Likewise.
938
939 2008-08-28  Paul Brook  <paul@codesourcery.com>
940             Mark Shinwell  <shinwell@codesourcery.com>
941             Richard Earnshaw  <richard.earnshaw@arm.com>
942
943         * config/arm/arm.c (TARGET_MAX_ANCHOR_OFFSET): New.
944         (TARGET_MIN_ANCHOR_OFFSET): New.
945         (arm_override_options): Set correct anchor ranges for Thumb-1
946         and Thumb-2 if required.
947         (legitimize_pic_address): Handle case involving a TLS symbol
948         reference with an addend.
949         (arm_optimization_options): Enable section anchors at -O1 and
950         above.
951         * config/arm/arm.h (OPTIMIZATION_OPTIONS): New.
952         * config/arm/arm-protos.h (arm_optimization_options): New.
953
954 2008-08-28  Nick Clifton  <nickc@redhat.com>
955
956         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Define.
957         * config/stormy16/stormy16.md (zero_extendqihi2): Fix length
958         attribute.
959
960         * config/v850/v850.h (IRA_COVER_CLASSES): Define.
961         * config/v850/v850.md (return): Remove frame size restriction.  
962
963         * config/mcore/mcore.h (IRA_COVER_CLASSES): Define.
964
965         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Define.
966
967         * config/fr30/fr30.h (IRA_COVER_CLASSES): Define.
968
969         * config/m32r/m32r.h (IRA_COVER_CLASSES): Define.
970
971 2008-08-28  Paul Brook  <paul@codesourcery.com>
972
973         * config/arm/vfp11.md: Update license notice.
974         * config/arm/cortex-r4.md: Ditto.
975
976 2008-08-28  Richard Guenther  <rguenther@suse.de>
977
978         PR tree-optimization/37207
979         * tree-ssa-ifcombine.c (recognize_single_bit_test): Fix
980         tuplification bug.
981
982 2008-08-28  Dodji Seketeli  <dodji@redhat.com>
983
984         PR c++/36741
985         * tree.c (int_fits_type_p): Don't forget unsigned integers
986           of type sizetype which higher end word equals -1.
987
988 2008-08-28  Ira Rosen  <irar@il.ibm.com>
989
990         * target.h (struct vectorize): Add new target builtin.
991         * tree-vectorizer.c (destroy_loop_vec_info): Call 
992         vect_free_slp_instance instead of vect_free_slp_node.
993         * tree-vectorizer.h (enum slp_load_perm_type): New.
994         (struct _slp_instance): Add new fields.
995         (SLP_INSTANCE_LOAD_PERMUTATION): New.
996         (SLP_INSTANCE_LOADS): New.
997         (vect_free_slp_tree): Remove.
998         (vect_free_slp_instance): Declare.        
999         (SLP_TREE_LOADS_PERM_TYPE, TARG_VEC_PERMUTE_COST): New.
1000         (vectorizable_load): Add argument.
1001         (vect_transform_slp_perm_load): New.
1002         * tree-vect-analyze.c (vect_analyze_operations): Add an argument to 
1003         vectorizable_load.
1004         (vect_get_place_in_interleaving_chain): New function.
1005         (vect_free_slp_tree): Make static.
1006         (vect_free_slp_instance): New function.
1007         (vect_build_slp_tree): Add new arguments. Allow load permutations and 
1008         collect the load location in the interleaving chain.
1009         (vect_supported_slp_permutation_p): New function.
1010         (vect_supported_load_permutation_p): Likewise.
1011         (vect_analyze_slp_instance): In case of loads permutation, call
1012         vect_supported_load_permutation_p to check that the permutation is 
1013         supported.
1014         * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM): New.
1015         * tree-vect-transform.c (vect_transform_stmt): Add new argument.
1016         (vect_create_mask_and_perm): New function.
1017         (vect_get_mask_element, vect_transform_slp_perm_load): Likewise.
1018         (vectorizable_load): Add an argument. Don't keep the created vectors  
1019         statements in the node if permutation is required. Call 
1020         vect_transform_slp_perm_load to generate the permutation.
1021         (vect_transform_stmt): Add new argument. Call vectorizable_load with 
1022         additional argument.
1023         (vect_schedule_slp_instance): In case of loads permutation, allocate  
1024         vectorized statements structure for all the related SLP nodes. Call 
1025         vect_transform_stmt with addditional argument.
1026         (vect_transform_loop): Call vect_transform_stmt with correct arguments. 
1027         * config/spu/spu.c (spu_builtin_vec_perm): New. 
1028         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
1029         * config/spu/spu.h (TARG_VEC_PERMUTE_COS): Define.
1030         * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): New.
1031         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
1032
1033 2008-08-28  Chris Fairles  <chris.fairles@gmail.com>
1034
1035         * gthr-posix.h (__gthread_create,  __gthread_join, __gthread_detach,
1036         __gthread_mutex_timed_lock, __gthread_recursive_mutex_timed_lock,
1037         __gthread_cond_signal, __gthread_cond_timedwait,
1038         __gthread_cond_timedwait_recursive): New functions.
1039         * gthr-posix.c (pthread_mutex_timedlock, pthread_cond_timedwait):
1040         Likewise.
1041         * gthr.h: Comment on defining __GTHREADS_CXX0X macro in conforming
1042         thread interfaces.
1043
1044 2008-08-28  Richard Guenther  <rguenther@suse.de>
1045
1046         PR middle-end/37005
1047         * fold-const.c (maybe_canonicalize_comparison_1): Require
1048         undefined overflow only for canonicalizing A +- CST cmp CST.
1049         Make sure to not generate new constants that are not inside
1050         their TYPE_MIN/MAX_VALUE range.
1051         (maybe_canonicalize_comparison): Remove undefined overflow
1052         checking from here.
1053         (fold_binary): Remove now duplicate folding.
1054
1055 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
1056
1057         * c-typeck.c (convert_for_assignment): Adjust WARN_FOR_ASSIGNMENT
1058         use not updated in the last change.
1059
1060 2008-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
1061
1062         * config/sh/sh.h (REG_CLASS_CONTENTS): Drop fr32 from FPUL_REGS.
1063         (IRA_COVER_CLASSES): Add FPUL_REGS.
1064
1065 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1066
1067         PR 37217
1068         * c-common.c (conversion_warning): Check for null operands.
1069
1070 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1071
1072         PR c/31673
1073         * c-decl.c (check_for_loop_decls): Improve error message. Give
1074         hint.
1075
1076 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1077
1078         PR c/37186
1079         * c-typeck.c (WARN_FOR_ASSIGNMENT): Add OPT parameter.
1080         (convert_for_assignment): Pass corrent OPT_W* parameter to
1081         WARN_FOR_ASSIGNMENT.
1082
1083 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
1084
1085         PR c++/35321
1086         * c-common.c (fold_offsetof_1): Handle TARGET_EXPR like CALL_EXPR.
1087
1088 2008-08-27  Paul Brook  <paul@codesourcery.com>
1089
1090         * config.gcc: Loosen checks for arm uclinux eabi targets.
1091
1092 2008-08-27  Paul Brook  <paul@codesourcery.com>
1093
1094         * config/arm/t-arm-coff (LIB1ASMFUNCS): Add missing undescrore on
1095         _clzsi2.
1096         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
1097
1098 2008-08-26  Douglas Gregor  <doug.gregor@gmail.com>
1099
1100         * c-common.c (do_switch_warnings): Look through the CONST_DECLs in
1101         the enumerators of an ENUMERAL_TYPE.
1102         * dbxout.c (dbxout_type): Ditto.
1103
1104 2008-08-26  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1105
1106         PR rtl-opt/37219
1107         * fwprop.c (fwprop): Check that the loop_father is the outer loop.
1108         (fwprop_addr): Check that the loop_father is not the outer loop.
1109
1110 2008-08-26  Paul Brook  <paul@codesourcery.com>
1111
1112         * config/arm/vfp.md: Document fmul{s,d} and fmac{s,d} types.
1113         Remove documentation entry for fmul type.
1114         Use fmuls to annotate single-precision multiplication patterns,
1115         fmuld to annotate double-precision multiplication patterns,
1116         fmacs to annotate single-precision multiply-accumulate patterns
1117         and fmacd to annotate double-precision multiply-accumulate patterns.
1118         * config/arm/vfp11.md: Update reservations accordingly.
1119         * config/arm/arm.md: Note that certain values of the "type"
1120         attribute are documented in vfp.md.
1121         * config/arm/arm1020e.md: Remove out of date duplicate comment.
1122         (v10_cvt): Use new fmul types.
1123
1124 2008-08-26  Paul Brook   <paul@codesourcery.com>
1125
1126         * config/arm/vfp.md: Move pipeline description for VFP11 to...
1127         * config/arm/vfp11.md: ...here.  New.
1128         * config/arm/arm.md: Include vfp11.md.
1129
1130 2008-08-26  Hans-Peter Nilsson  <hp@axis.com>
1131
1132         * opts.c (decode_options) [!IRA_COVER_CLASSES]: Add missing
1133         parameter to inform call.
1134
1135 2008-08-26  Jeff Law  <law@redhat.com>
1136
1137         * mn10300.md (movqi, movhi): Split i->d*a case into two cases to
1138         avoid the possibility of getting DATA_OR_ADDRESS_REGS as the
1139         preferred class when copying a constant into a partial word register.
1140
1141 2008-08-26  Ben Elliston  <bje@au.ibm.com>
1142
1143         * rtlanal.c: Fix uses of "it's" with "its" where appropriate.
1144         * cp/typeck.c: Likewise.
1145         * cp/tree.c: Likewise.
1146         * gimple-low.c: Likewise.
1147         * jump.c: Likewise.
1148
1149 2008-08-26  Vladimir Makarov  <vmakarov@redhat.com>
1150
1151         * ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
1152         ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.
1153
1154         * doc/passes.texi: Describe IRA.
1155
1156         * doc/tm.texi (IRA_COVER_CLASSES,
1157         IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.
1158
1159         * doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
1160         (-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
1161         -fira-propagate-cost, -fno-ira-share-save-slots,
1162         -fno-ira-share-spill-slots, -fira-verbose): Describe new options.
1163
1164         * flags.h (ira_algorithm): New enumeration.
1165         (flag_ira_algorithm, flag_ira_verbose): New external variable
1166         declarations.
1167
1168         * postreload.c (gate_handle_postreload): Don't do post reload
1169         optimizations unless the reload is completed.
1170
1171         * reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
1172         IRA.
1173
1174         * tree-pass.h (pass_ira): New external variable declaration.
1175
1176         * reload.h: Add 2008 to the Copyright.
1177     
1178         * cfgloopanal.c: Include params.h.
1179         (estimate_reg_pressure_cost): Decrease cost for IRA optimization
1180         mode.
1181     
1182         * params.h (IRA_MAX_LOOPS_NUM): New macro.
1183
1184         * toplev.c (ira.h): New include.
1185         (flag_ira_algorithm, flag_ira_verbose): New external variables.
1186         (backend_init_target): Call ira_init.
1187         (backend_init): Call ira_init_once.
1188         (finalize): Call finish_ira_once.
1189
1190         * toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
1191         flag_ira_share_save_slots, flag_ira_share_spill_slots): New
1192         external variables.
1193
1194         * regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
1195         may_move_out_cost): New external variable declarations.
1196         (move_table): New typedef.
1197     
1198         * caller-save.c: Include headers output.h and ira.h.
1199         (no_caller_save_reg_set): New global variable.
1200         (save_slots_num, save_slots): New variables.
1201         (reg_save_code, reg_restore_code, add_stored_regs): Add
1202         prototypes.
1203         (init_caller_save): Set up no_caller_save_reg_set.
1204         (init_save_areas): Reset save_slots_num.
1205         (saved_hard_reg): New structure.
1206         (hard_reg_map, saved_regs_num, all_saved_regs): New variables.
1207         (initiate_saved_hard_regs, new_saved_hard_reg,
1208         finish_saved_hard_regs, saved_hard_reg_compare_func): New
1209         functions.
1210         (setup_save_areas): Add code for sharing stack slots.
1211         (all_blocks): New variable.
1212         (save_call_clobbered_regs): Process pseudo-register too.
1213         (mark_set_regs): Process pseudo-register too.
1214         (insert_one_insn): Put the insn after bb note in a empty basic
1215         block.  Add insn check.
1216     
1217         * global.c (eliminable_regset): Make it external.
1218         (mark_elimination): Use DF_LR_IN for IRA.
1219         (pseudo_for_reload_consideration_p): New.
1220         (build_insn_chain): Make it external.  Don't ignore spilled
1221         pseudos for IRA.  Use pseudo_for_reload_consideration_p.
1222         (gate_handle_global_alloc): New function.
1223         (pass_global_alloc): Add the gate function.
1224
1225         * opts.c (decode_options): Set up flag_ira.  Print the warning for
1226         -fira.
1227         (common_handle_option): Process -fira-algorithm and -fira-verbose.
1228
1229         * timevar.def (TV_IRA, TV_RELOAD): New passes.
1230
1231         * regmove.c (regmove_optimize): Don't do replacement of output for
1232         IRA.
1233
1234         * hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
1235         New external variable declarations.
1236
1237         * local-alloc.c (update_equiv_regs): Make it external.  Return
1238         true if jump label rebuilding should be done.  Rescan new_insn for
1239         notes.
1240         (gate_handle_local_alloc): New function.
1241         (pass_local_alloc): Add the gate function.
1242
1243         * alias.c (value_addr_p, stack_addr_p): New functions.
1244         (nonoverlapping_memrefs_p): Use them for IRA.
1245
1246         * common.opt (fira, fira-algorithm, fira-coalesce,
1247         fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
1248         fira-verbose): New options.
1249
1250         * regclass.c (reg_class_subclasses, contains_reg_of_mode,
1251         move_cost, may_move_in_cost, may_move_out_cost): Make the
1252         variables external.
1253         (move_table): Remove typedef.
1254         (init_move_cost): Make it external.
1255         (allocate_reg_info, resize_reg_info, setup_reg_classes): New
1256         functions.
1257
1258         * rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
1259         setup_reg_classes): New function prototypes.
1260         (eliminable_regset): New external variable declaration.
1261         (build_insn_chain, update_equiv_regs): New function prototypes.
1262     
1263         * Makefile.in (IRA_INT_H): New definition.
1264         (OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
1265         ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
1266         (reload1.o, toplev.o): Add dependence on ira.h.
1267         (cfgloopanal.o): Add PARAMS_H.
1268         (caller-save.o): Add dependence on output.h and ira.h.
1269         (ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
1270         ira-emit.o, ira-lives.o): New entries.
1271
1272         * passes.c (pass_ira): New pass.
1273
1274         * params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.
1275
1276         * reload1.c (ira.h): Include the header.
1277         (changed_allocation_pseudos): New bitmap.
1278         (init_reload): Initiate the bitmap.
1279         (compute_use_by_pseudos): Permits spilled registers in FROM.
1280         (temp_pseudo_reg_arr): New variable.
1281         (reload): Allocate and free temp_pseudo_reg_arr.  Sort pseudos for
1282         IRA.  Call alter_reg with the additional parameter.  Don't clear
1283         spilled_pseudos for IRA.  Restore original insn chain for IRA.
1284         Clear changed_allocation_pseudos at the end of reload.
1285         (calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
1286         (hard_regno_to_pseudo_regno): New variable.
1287         (count_pseudo): Check spilled pseudos.  Set up
1288         hard_regno_to_pseudo_regno.
1289         (count_spilled_pseudo): Check spilled pseudos. Update
1290         hard_regno_to_pseudo_regno.
1291         (find_reg): Use better_spill_reload_regno_p.  Check
1292         hard_regno_to_pseudo_regno.
1293         (alter_reg): Set up spilled_pseudos.  Add a new parameter.  Add
1294         code for IRA.
1295         (eliminate_regs_1): Use additional parameter for alter_reg.
1296         (finish_spills): Set up pseudo_previous_regs only for spilled
1297         pseudos.  Call reassign_pseudos once for all spilled pseudos, pass
1298         more arguments.  Don't clear live_throughout and dead_or_set for
1299         spilled pseudos.  Use additional parameter for alter_reg.  Call
1300         mark_allocation_change.  Set up changed_allocation_pseudos.
1301         Remove sanity check.
1302         (emit_input_reload_insns, delete_output_reload): Use additional
1303         parameter for alter_reg.  Call mark_allocation_change.
1304         (substitute, gen_reload_chain_without_interm_reg_p): New
1305         functions.
1306         (reloads_conflict): Use gen_reload_chain_without_interm_reg_p.
1307     
1308         * testsuite/gcc.dg/20080410-1.c: New file.
1309         
1310         * config/s390/s390.h (IRA_COVER_CLASSES,
1311         IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.
1312
1313         * config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.
1314
1315         * config/i386/i386.h (IRA_COVER_CLASSES): Ditto.
1316
1317         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
1318
1319         * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
1320
1321         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
1322     
1323         * config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.
1324     
1325         2008-08-24  Jeff Law  <law@redhat.com>
1326         * ira.c (setup_reg_class_intersect_union): Prefer smallest class
1327         when ignoring unavailable registers.
1328
1329         2008-08-24  Jeff Law  <law@redhat.com>
1330         * ira-color.c (coalesced_pseudo_reg_slot_compare): Check
1331         FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
1332         * ira.c (setup_eliminable_regset): Check stack_realign_needed.
1333         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.
1334
1335         2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com>
1336         * ira-build.c (allocno_range_compare_func): Stabilize sort.
1337
1338         2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com>
1339         * config/avr/avr.h (IRA_COVER_CLASSES): New macro.
1340         * reload1.c (find_reg): Process registers in register allocation order.
1341
1342         2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
1343         * toplev.c (backend_init_target): Move ira_init call from
1344         here...
1345         (lang_dependent_init_target): ...to here.
1346
1347         2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
1348         * ira.c (setup_class_subset_and_memory_move_costs): Don't
1349         calculate memory move costs for NO_REGS.
1350
1351         2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org>
1352         * ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
1353         STACK_REGS is defined.
1354
1355         2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
1356         * config/spu/spu.h (IRA_COVER_CLASSES): New macro.
1357
1358         2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com>
1359         * config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.
1360
1361         2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org>
1362         * config/sh/sh.h (IRA_COVER_CLASSES): Define.
1363         * config/sh/sh.md (movsicc_true+3): Check if emit returns a
1364         barrier.
1365
1366 2008-08-26  Victor Kaplansky  <victork@il.ibm.com>
1367             Dorit Nuzman  <dorit@il.ibm.com>
1368
1369         * gcc/config/spu/spu.md (vec_extract_evenv4si,
1370         vec_extract_evenv4sf, vec_extract_evenv8hi,
1371         vec_extract_evenv16qi, vec_extract_oddv4si,
1372         vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
1373         vec_interleave_highv4sf, vec_interleave_lowv4sf,
1374         vec_interleave_highv4si, vec_interleave_lowv4si,
1375         vec_interleave_highv8hi, vec_interleave_lowv8hi,
1376         vec_interleave_highv16qi, vec_interleave_lowv16qi,
1377         vec_pack_trunc_v8hi, vec_pack_trunc_v4si): Implement.S
1378
1379 2008-08-25  Janis Johnson  <janis187@us.ibm.com>
1380
1381         PR target/36756
1382         * config/rs6000/rs6000.c (optimization_options): Don't default to
1383         section anchors without toplevel reorder.
1384
1385 2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1386
1387         * config/spu/spu_mfcio.h (mfc_begin_critical_section): New function.
1388         (mfc_end_critical_section): Likewise.
1389
1390 2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1391
1392         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Propagate
1393         all type qualifiers from element type to vector type.
1394
1395 2008-08-25  David Daney  <ddaney@avtrex.com>
1396
1397         * config/mips/mips.md (immediate_insn): Move up in file, fix
1398         comment typo, reformat.
1399         (fetchop_bit, atomic_hiqi_op memory_barrier,
1400         sync_compare_and_swap<mode>, compare_and_swap_12, sync_add<mode>,
1401         sync_<optab><mode>, sync_<optab>_12, sync_old_<optab><mode>,
1402         sync_old_<optab>_12, sync_new_<optab><mode>, sync_new_<optab>_12,
1403         sync_nand<mode>, sync_nand_12, sync_old_nand<mode>,
1404         sync_old_nand_12, sync_new_nand<mode>, sync_new_nand_12,
1405         sync_sub<mode>, sync_old_add<mode>, sync_old_sub<mode>,
1406         sync_new_add<mode>, sync_new_sub<mode>, sync_<optab><mode>,
1407         sync_old_<optab><mode>, sync_new_<optab><mode>, sync_nand<mode>,
1408         sync_old_nand<mode>, sync_new_nand<mode>,
1409         sync_lock_test_and_set<mode>, sync_lock_test_and_set<mode>,
1410         test_and_set_12): Moved to sync.md.
1411         (sync.md): Include.
1412         * config/mips/sync.md: New file.
1413
1414 2008-08-25  Richard Henderson  <rth@redhat.com>
1415
1416         * dwarf2out.c (def_cfa_1): Don't scale by DWARF_CIE_DATA_ALIGNMENT.
1417         (regsave): Likewise.
1418         (lookup_cfa_1): Don't rescale by DWARF_CIE_DATA_ALIGNMENT.
1419         (output_cfi_directive): Likewise.
1420         (div_data_align): New.
1421         (output_cfi): Use it.
1422
1423 2008-08-24  Adam Nemet  <anemet@caviumnetworks.com>
1424
1425         * config.gcc (mips64*-*-linux*): Handle mips64octeon*-*-linux*.
1426         * config/mips/mips.h (enum processor_type): Add PROCESSOR_OCTEON.
1427         (TARGET_OCTEON): New macro.
1428         (TARGET_CPU_CPP_BUILTINS): Define __OCTEON__ for Octeon.
1429         (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC): Handle -march=octeon.
1430         (ISA_HAS_POP): New macro.
1431         * config/mips/driver-native.c (host_detect_local_cpu): Handle
1432         Octeon.
1433         * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
1434         Handle Octeon.
1435         * config/mips/mips.md (cpu): Add octeon.
1436         (type): Add pop attribute value.
1437         (popcount<mode>2): New pattern.
1438         * doc/invoke.texi (-march=@var{arch}): Add octeon.
1439
1440 2008-08-24  Jan Hubicka  <jh@suse.cz>
1441
1442         * doc/invoke.texi (-fipa-cp-clone): New option.
1443         (-fipa-cp): Update docs.
1444         (--param ipcp-unit-growth):New.
1445         * ipa-cp.c: Include fibheap.h, params.h
1446         (ipcp_initialize_node_lattices): When not cloning, all externally
1447         visible functions are bottom.
1448         (ipcp_need_redirect_p): Accept clones.
1449         (ipcp_insert_stage): Use cost driven heuristics.
1450         (max_count, dead_nodes): New static vars.
1451         (ipcp_need_original_clone_p, ipcp_estimate_cloning_cost,
1452         ipcp_const_param_count): New functions.
1453         * common.opt (ipa-cp-clone): New command line option.
1454         * params.def (ipcp-unit-growth): New.
1455
1456 2008-08-24  Jan Hubicka  <jh@suse.cz>
1457
1458         * tree-inline.c (tree_function_versioning): Look harder
1459         for referenced vars.
1460
1461 2008-08-24  Razya Ladelsky  <razya@il.ibm.com>
1462
1463         PR tree-optimization/37185
1464         * matrix-reorg.c (transform_access_sites): Update changed stmt.
1465
1466 2008-08-23  Jan Hubicka  <jh@suse.cz>
1467
1468         * ipa-cp.c (ipcp_analyze_node): New function.
1469         (ipcp_update_cloned_node): Use it.
1470         (ipcp_init_stage): Likewise.
1471         * ipa-inline.c (function_insertion_hook_holder): New static var.
1472         (analyze_function): Break out from ....
1473         (inline_generate_summary): Here; register insertion hook.
1474         (cgraph_decide_inlining): Remove hook.
1475         (add_new_function): New function.
1476
1477 2008-08-23  Jan Hubicka  <jh@suse.cz>
1478
1479         * opts.c (decode_options): Revert accidental change enabling ipa-cp.
1480
1481 2008-08-23  Jan Hubicka  <jh@suse.cz>
1482
1483         * ipa-cp.c (constant_val_insert): Remove.
1484         (ipcp_propagate_one_const): Remove.
1485         (ipcp_create_replace_map): Always insert replacements to the map.
1486         (ipcp_insert_stage): Do not try to insert statements by hand.
1487         * tree-inline.c (insert_init_stmt): Break out from ...
1488         (setup_one_parameter): ... here; allow NULL BB pointer.
1489         (tree_function_versioning): Use setup_one_parameter to process
1490         replacement map.
1491
1492 2008-08-23  Jan Hubicka  <jh@suse.cz>
1493
1494         * tree.c (decl_address_ip_invariant_p): New function.
1495         * tree.h (decl_address_ip_invariant_p): Declare.
1496         * gimple.c (strip_invariant_refs): Break out from ...
1497         (is_gimple_invariant_address): ... here
1498         (is_gimple_ip_invariant_address): New function.
1499         (is_gimple_ip_invariant): New function.
1500         * gimple.h (is_gimple_ip_invariant_address, is_gimple_ip_invariant):
1501         Declare.
1502
1503         * ipa-cp.c (ipcp_lat_is_const): Remove handling of IPA_CONST_VALUE_REF.
1504         (ipcp_lat_is_insertable): All constants are insertable.
1505         (ipcp_lattice_from_jfunc, ipcp_print_all_lattices): Remove handling of
1506         IPA_CONST_VALUE_REF.
1507         (ipcp_initialize_node_lattices): Propagate all types of operands.
1508         (build_const_val): Do not handle IPA_CONST_VALUE_REF.
1509         (ipcp_create_replace_map): Reformat.
1510         (ipcp_need_redirect_p): Simplify.
1511         (ipcp_insert_stage): Check that argument is used before clonning.
1512         * ipa-prop.c (ipa_print_node_jump_functions): Do not handle IPA_CONST_REF.
1513         (compute_scalar_jump_functions): Simplify using is_gimple_ip_invariat.
1514         (determine_cst_member_ptr): Keep wrapping ADDR_EXPR of members.
1515         (update_call_notes_after_inlining): Expect ADDR_EXPR in operand.
1516         * ipa-prop.h (jump_func_type): Remove IPA_CONST_REF.
1517         (jump_func_type): Remove IPA_CONST_VALUE_REF.
1518         * tree-inline.c (tree_function_versioning): Add variables referenced by
1519         replacing trees.
1520
1521 2008-08-23  Jan Hubicka  <jh@suse.cz>
1522
1523         PR target/37094
1524         * i386.c (standard_80387_constant_p): Use optimize_size.
1525
1526 2008-08-23  Ira Rosen  <irar@il.ibm.com>
1527
1528         PR tree-optimization/37161
1529         * tree-vectorizer.h (vect_get_smallest_scalar_type): Declare.
1530         * tree-vect-analyze.c (vect_get_smallest_scalar_type): New function.
1531         (vect_determine_vectorization_factor): Move the scalar type
1532         retrieval to vect_get_smallest_scalar_type.
1533         (vect_build_slp_tree): Call vect_get_smallest_scalar_type to get
1534         scalar type. Remove redundant computation.
1535         * tree-vect-transform.c (vect_get_constant_vectors): Add argument.
1536         (vect_get_slp_defs): Take the type of RHS into account if
1537         necessary by calling vect_get_smallest_scalar_type. Call
1538         vect_get_constant_vectors with additional argument.
1539
1540 2008-08-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1541
1542         PR 35648
1543         * doc/invoke.texi (Wwrite-strings): Clarify description.
1544         
1545 2008-08-23  Ira Rosen  <irar@il.ibm.com>
1546
1547         PR tree-optimization/37174
1548         * tree-vect-analyze.c (vect_get_and_check_slp_defs): Check that the
1549         def stmt is a part of the loop before accessing its stmt_vec_info.
1550
1551 2008-08-22  Anatoly Sokolov  <aesok@post.ru>
1552
1553         PR target/11259
1554         * config/avr/avr.md (UNSPEC_SWAP): New constants.
1555         (*swap): New insn pattern.
1556         (*ashlqi3): Rename from ashlqi3 insn pattern.
1557         (ashlqi3): New expanders.
1558         (*lshrqi3): Rename from lshrqi3 insn pattern.
1559         (lshrqi3): New expanders.       
1560         (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, lshrqi3_const4,
1561         lshrqi3_const5, lshrqi3_const6): New splitters.
1562         (andi, ashlqi3_l_const4, ashlqi3_l_const5, ashlqi3_l_const6,
1563         lshrqi3_l_const4, lshrqi3_l_const5, lshrqi3_l_const6): Define
1564         peephole2 patterns.
1565
1566 2008-08-22  Richard Guenther  <rguenther@suse.de>
1567
1568         PR tree-optimization/37078
1569         * tree-vrp.c (extract_range_from_unary_expr): Avoid generating
1570         [+INF, +INF] ranges.
1571
1572 2008-08-22  Richard Guenther  <rguenther@suse.de>
1573
1574         PR tree-optimization/37143
1575         * tree-vect-transform.c (vect_create_cond_for_align_checks): Build
1576         a conversion statement instead of a copy.
1577
1578 2008-08-22  Uros Bizjak  <ubizjak@gmail.com>
1579
1580         PR target/37184
1581         * config/i386/i386.c (ix86_match_ccmode): Handle CCAmode,
1582         CCCmode, CCOmode and CCSmode destination modes.
1583
1584         PR target/37191
1585         * config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers
1586         from different units in a single alternative.
1587         (*vec_extractv2sf_1): Ditto.
1588         (*vec_extractv2si_0): Ditto.
1589         (*vec_extractv2si_1): Ditto.
1590         * config/i386/sse.md (sse2_storehpd): Ditto.
1591         (sse2_storelpd): Ditto.
1592         (sse2_loadhpd): Ditto.
1593         (sse2_loadlpd): Ditto.
1594
1595         PR target/37197
1596         * config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints.
1597         (popcountsi2): Ditto.
1598         (clzdi2_abm): Ditto.
1599         (popcountdi2): Ditto.
1600         (clzhi2_abm): Ditto.
1601         (popcounthi2): Ditto.
1602
1603 2008-08-22  Richard Guenther  <rguenther@suse.de>
1604
1605         PR middle-end/36548
1606         PR middle-end/37125
1607         * fold-const.c (extract_muldiv_1): Optimize (X * C1) % C2 only
1608         if the multiplication does not overflow.
1609
1610 2008-08-21  Nathan Sidwell  <nathan@codesourcery.com>
1611
1612         * c-ppoutput.c (init_pp_output): Initialize src_line to 1.
1613
1614 2008-08-21  Richard Henderson  <rth@redhat.com>
1615
1616         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Remove
1617         spurrious comma from test.
1618         * configure: Rebuild.
1619
1620 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1621
1622         PR 30457
1623         * builtins.c (fold_builtin_next_arg): Add warning about undefined
1624         behaviour.
1625         
1626 2008-08-21  Aldy Hernandez  <aldyh@redhat.com>
1627
1628         * c-tree.h (grokfield): New argument.
1629         * c-decl.c (grokfield): Handle new location argument.
1630         * c-parser.c (c_parser_struct_declaration): Pass location to
1631         grokfield.
1632
1633 2008-08-21  Richard Guenther  <rguenther@suse.de>
1634
1635         * tree-ssa-ccp.c (ccp_fold): Fold VIEW_CONVERT_EXPRs of constants.
1636
1637 2008-08-21  Jan Hubicka  <jh@suse.cz>
1638
1639         * cgraph.c (first_cgraph_function_insertion_hook): New variable.
1640         (cgraph_add_function_insertion_hook,
1641         cgraph_remove_function_insertion_hook,
1642         cgraph_call_function_insertion_hooks): New functions.
1643         * cgraph.h (cgraph_add_function_insertion_hook,
1644         cgraph_remove_function_insertion_hook,
1645         cgraph_call_function_insertion_hooks): Declare.
1646         * ipa-reference.c (function_insertion_hook_holder): New variable.
1647         (check_operand, look_for_address_of): When checking late, do not care
1648         about module bitmaps.
1649         (add_new_function): New function.
1650         (generate_summary): Register hooks; zero module bitmaps.
1651         (propagate): Unregister hooks.
1652         * ipa-pure-const.c (function_insertion_hook_holder): New variable.
1653         (add_new_function): New function.
1654         (generate_summary): Register hook.
1655         (propagate): Remove hook.
1656
1657         * ipa-cp.c (ipcp_need_redirect_p): Fix to not be constant 0.
1658
1659         * tree-pass.h (pass_ipa_cp): Make ipa_opt_pass.
1660         * ipa-cp.c (ipcp_update_cloned_node): New function.
1661         (build_const_val): Handle functions correctly; bring type logic
1662         into sync with tree-inline.c
1663         (ipcp_init_stage):  Take care of computing stuff needed by
1664         indirect inlining; update clones.
1665         (ipcp_generate_summary): Break out of ipcp_driver.
1666         (ipcp_driver): Do only execution and transformation.
1667         (pass_ipa_cp): Make IPA_PASS.
1668         * tree-ssa-ccp.c (fold_stmt_r): Check type before trying to fold
1669         offset to address.
1670         * ipa-inline.c (inline_indirect_intraprocedural_analysis): When doing
1671         ipcp, some info is already available.
1672         * ipa-prop.c (ipa_count_arguments): Grow edge lists as needed.
1673         * tree-inline.c (remap_ssa_name): Unshare expression.
1674
1675 2008-08-21  Richard Guenther  <rguenther@suse.de>
1676
1677         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
1678         a PHI ask VN if it is already available.
1679         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
1680         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
1681
1682 2008-08-21  Richard Guenther  <rguenther@suse.de>
1683
1684         PR middle-end/36817
1685         * tree-chrec.c (chrec_apply): Always call chrec_fold_plus which
1686         makes sure to produce a result of the correct type.
1687
1688 2008-08-21  Jan Hubicka  <jh@suse.cz>
1689         Backport from LTO branch:
1690
1691         2008-05-05  Kenneth Zadeck <zadeck@naturalbridge.com>
1692                     Jan Hubicka  <jh@suse.cz>
1693         
1694         * ipa-pure-const.c
1695         (init_state, finish_state, set_function_state, generate_summary):
1696         New functions.
1697         (scan_stmt): Renamed from scan_function.  Changed to keep state in
1698         local static vars rather than cgraph aux field.
1699         (propagate): Renamed from static_execute. Changed to keep state in
1700         local static vars rather than cgraph aux field.
1701         (pass_ipa_pure_const): Changed from SIMPLE_IPA_PASS to IPA_PASS.
1702         * tree-pass.h (pass_ipa_pure_const): Turn into IPA_PASS.
1703
1704         2008-07-15  Kenneth Zadeck <zadeck@naturalbridge.com>
1705
1706         * tree-pass.h (pass_ipa_reference): Make into ipa_opt_pass.
1707         * ipa-reference.c (init_function_info, generate_summary, 
1708         propagate): New functions.
1709         (analyze_function):  Call init_function_info.
1710         (static_execute): Stripped into generate_summary and propagate.
1711         (pass_ipa_reference): Made into ipa_opt_pass.
1712
1713 2008-08-21  Richard Guenther  <rguenther@suse.de>
1714
1715         PR tree-optimization/37181
1716         * tree-vrp.c (extract_range_from_binary_expr): Check for NULL
1717         folding result.
1718         (extract_range_from_unary_expr): Likewise.
1719
1720 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1721
1722         * diagnostic.c (pedwarn_at): Rename as pedwarn.
1723         (pedwarn): Delete.
1724         * toplev.h (pedwarn_at): Likewise.
1725         * builtins.c: Update all calls to pedwarn.
1726         * c-lex.c: Likewise.
1727         * toplev.c: Likewise.
1728         * c-tree.h: Likewise.
1729         * c-decl.c: Likewise.
1730         * c-errors.c: Likewise.
1731         * c-typeck.c: Likewise.
1732         * c-common.c: Likewise.
1733         * c-parser.c: Likewise.
1734
1735 2008-08-20  Joseph Myers  <joseph@codesourcery.com>
1736
1737         PR target/31070
1738         * config/sparc/sparc.c (function_arg_slotno): Handle structure
1739         with MODE_VECTOR_INT mode.
1740
1741 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1742
1743         PR middle-end/179
1744         * tree-ssa.c (warn_uninit): Do not warn for variables that can be
1745         initialized outside the current module.
1746         (warn_uninitialized_var): Ignore left-hand side when walking the
1747         trees. Ignore address expressions. Examine VUSE operands in gimple
1748         statements with a variable declaration on the right-hand side.
1749
1750 2008-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
1751
1752         PR bootstrap/37155
1753         * rtlanal.c (subreg_offset_representable_p): Revert last change.
1754
1755 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1756
1757         PR 35701
1758         * c-common.c (conversion_warning): Do not warn if applying bit-and
1759         operator to unsigned constant that fits in the target type.
1760
1761 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1762
1763         PR c++/35602
1764         * c-common.c (conversion_warning): Do not warn for artificial
1765         expressions.
1766
1767 2008-08-20  Richard Guenther  <rguenther@suse.de>
1768
1769         * tree-vrp.c (op_with_constant_singleton_value_range): New function.
1770         (extract_range_from_binary_expr): Fall back to constant propagation.
1771         (extract_range_from_unary_expr): Likewise.
1772
1773 2008-08-20  Richard Guenther  <rguenther@suse.de>
1774
1775         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Do not mess
1776         with TREE_THIS_VOLATILE on shared nodes.
1777         (fold_stmt_r): Likewise.
1778
1779 2008-08-20  Jakub Jelinek  <jakub@redhat.com>
1780
1781         PR c/37171
1782         * c-parser.c (c_parser_attributes): For keywords use canonical
1783         spelling for attr_name.
1784
1785 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1786
1787         * value-prof.c (check_counter): Revert wrong call to error.
1788         
1789 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1790
1791         * profile.c: Update calls to inform.
1792         * value-prof.c: Update calls to inform.
1793         
1794 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1795
1796         * diagnostic.c (inform): Add an explicit location_t parameter.
1797         * toplev.h (inform): Update declaration.
1798         * builtins.c: Update all calls to inform.
1799         * c-common.c: Likewise.
1800         * c-decl.c: Likewise.
1801         * c-opts.c: Likewise.
1802         * c-pch.c: Likewise.
1803         * c-pragma.c: Likewise.
1804         * c-typeck.c: Likewise.
1805         * coverage.c: Likewise.
1806         * opts.c: Likewise.
1807         * toplev.c: Likewise.
1808         * tree-cfg.c: Likewise.
1809         * tree-ssa.c: Likewise.
1810
1811 2008-08-20  H.J. Lu  <hongjiu.lu@intel.com>
1812
1813         PR target/37169
1814         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): In
1815         V2DI mode, for SSE4.1, use movq instead of vector set if the
1816         second element is zero and inter-unit moves are OK.
1817
1818 2008-08-20  Richard Guenther  <rguenther@suse.de>
1819
1820         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): More
1821         properly handle conversion/copy chains after tuplification.
1822
1823 2008-08-20  Richard Guenther  <rguenther@suse.de>
1824
1825         * passes.c (init_optimization_passes): Move the second
1826         forwprop pass before alias computation.  Remove the second
1827         DCE pass.  Remove the first dominator and phi copy/const
1828         prop passes.
1829
1830 2008-08-20  Nick Clifton  <nickc@redhat.com>
1831
1832         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Always test for assembler
1833         support of this feature.  Do not assume that a sufficiently new
1834         assembler will support the feature regardless of the target type.
1835         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
1836         * configure: Regenerate.
1837
1838 2008-08-20  Richard Guenther  <rguenther@suse.de>
1839
1840         * tree-vrp.c (found_in_subgraph): Remove.
1841         (live): New global static.
1842         (live_on_edge): New function.
1843         (blocks_visited): Remove.
1844         (register_edge_assert_for_2): Use live_on_edge.
1845         (find_conditional_asserts): Remove code dealing with
1846         found_in_subgraph.  Do not walk the CFG.
1847         (find_switch_asserts): Likewise.
1848         (find_assert_locations_1): Renamed from find_assert_locations.
1849         Move finding assert locations for conditional and switch
1850         statements first.  Update live bitmap.  Do not walk the CFG.
1851         (find_assert_locations): New function.
1852         (insert_range_assertions): Remove entry of CFG walk.
1853         Adjust call to find_assert_locations.
1854         * tree-ssa-pre.c (do_regular_insertion): Ignore critical edges
1855         that only can appear because of fake exit edges but assert we
1856         never try to insert on those.
1857         (fini_pre): Do not remove fake exit edges here...
1858         (execute_pre): ...but here, before committing edge inserts.
1859
1860 2008-08-19  Richard Guenther  <rguenther@suse.de>
1861
1862         * passes.c (init_optimization_passes): Exchange store-ccp
1863         with a ccp pass.
1864
1865 2008-08-19  Rafael Espindola  <espindola@google.com>
1866
1867         * varasm.c (weak_decls): Move earlier in the file.
1868         (assemble_external): Add weak decls to the weak_decls list.
1869         (declare_weak): Don't add decls to the weak_decls list.
1870
1871 2008-08-19  H.J. Lu  <hongjiu.lu@intel.com>
1872
1873         PR target/37157
1874         * config/i386/sse.md (sse2_punpckhqdq, sse2_punpcklqdq): Moved
1875         before (sse2_shufpd_<mode>).
1876
1877 2008-08-19  Jakub Jelinek  <jakub@redhat.com>
1878
1879         PR debug/37156
1880         * pretty-print.c (pp_base_format): Deal with recursive BLOCK trees.
1881         * tree.c (block_nonartificial_location): Likewise.
1882
1883 2008-08-19  Richard Guenther  <rguenther@suse.de>
1884
1885         PR tree-optimization/35972
1886         PR tree-optimization/23094
1887         * tree-ssa-sccvn.h (vn_reference_lookup_pieces): Add maywalk
1888         parameter.
1889         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
1890         handle MISALIGNED_INDIRECT_REF.
1891         (get_ref_from_reference_ops): New helper.
1892         (vn_reference_lookup_pieces): Walk the use-def chain using the
1893         alias-oracle if requested.
1894         * tree-ssa-pre.c (phi_translate_1): Do reference lookup with
1895         walking the use-def chain.
1896         (compute_avail): But not here.
1897         (create_component_ref_by_pieces_1): Properly handle
1898         MISALIGNED_INDIRECT_REF.
1899         (do_regular_insertion): Handle fully redundant
1900         expressions after PHI-translation also for SSA_NAME values, not
1901         only constants.  Correctly use edoubleprime for that.
1902
1903 2008-08-19  Ira Rosen  <irar@il.ibm.com>
1904
1905         * tree-vectorizer.c (supportable_widening_operation): Support
1906         multi-step conversion, return the number of steps in such conversion
1907         and the required intermediate types.
1908         (supportable_narrowing_operation): Likewise.
1909         * tree-vectorizer.h (vect_pow2): New function.
1910         (supportable_widening_operation): Change argument types.
1911         (supportable_narrowing_operation): Likewise.
1912         (vectorizable_type_promotion): Add an argument.
1913         (vectorizable_type_demotion): Likewise.
1914         * tree-vect-analyze.c (vect_analyze_operations): Call 
1915         vectorizable_type_promotion and vectorizable_type_demotion with
1916         additional argument.
1917         (vect_get_and_check_slp_defs): Detect patterns.
1918         (vect_build_slp_tree): Add an argument, don't fail in case of multiple
1919         types. 
1920         (vect_analyze_slp_instance): Don't fail in case of multiple types. Call
1921         vect_build_slp_tree with correct arguments. Calculate unrolling factor
1922         according to the smallest type in the loop.
1923         (vect_detect_hybrid_slp_stmts): Include statements from patterns.
1924         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call 
1925         supportable_widening_operation with correct arguments. 
1926         * tree-vect-transform.c (vect_get_slp_defs): Allocate output vector 
1927         operands lists according to the number of vector statements in left
1928         or right node, if exists.
1929         (vect_gen_widened_results_half): Remove unused argument.
1930         (vectorizable_conversion): Call supportable_widening_operation, 
1931         supportable_narrowing_operation, and vect_gen_widened_results_half
1932         with correct arguments. 
1933         (vectorizable_assignment): Change documentation, support multiple
1934         types in SLP. 
1935         (vectorizable_operation): Likewise.
1936         (vect_get_loop_based_defs): New function.
1937         (vect_create_vectorized_demotion_stmts): Likewise.
1938         (vectorizable_type_demotion): Support loop-aware SLP and general
1939         multi-step conversion. Call vect_get_loop_based_defs and
1940         vect_create_vectorized_demotion_stmts for transformation.
1941         (vect_create_vectorized_promotion_stmts): New function.
1942         (vectorizable_type_promotion): Support loop-aware SLP and general
1943         multi-step conversion. Call vect_create_vectorized_promotion_stmts
1944         for transformation.     
1945         (vectorizable_store): Change documentation, support multiple
1946         types in SLP. 
1947         (vectorizable_load): Likewise.
1948         (vect_transform_stmt): Pass SLP_NODE to 
1949         vectorizable_type_promotion and vectorizable_type_demotion.
1950         (vect_schedule_slp_instance): Move here the calculation of number
1951         of vectorized statements for each node from...
1952         (vect_schedule_slp): ... here.
1953         (vect_transform_loop): Call vect_schedule_slp without the last
1954         argument.
1955
1956 2008-08-19  Dorit Nuzman  <dorit@il.ibm.com>
1957
1958         PR bootstrap/37152
1959         * tree-vect-transform.c (vect_create_epilog_for_reduction): Change = 
1960         to == in assert statement.
1961         (vectorizable_reduction): Fix typo.
1962
1963 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
1964
1965         PR bootstrap/37153
1966         * value-prof.c (check_counter): Dereference pointer to overall
1967         count when printing it.
1968
1969 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
1970
1971         * profile.h: Really add it.
1972
1973 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
1974
1975         * mcf.c: Really add it.
1976
1977 2008-08-18  Paul Yuan  <yingbo.com@gmail.com>
1978             Vinodha Ramasamy  <vinodha@google.com>
1979
1980         * cgraph.c (cgraph_edge): Handle inconsistent counts when setting
1981         count_scale.
1982         * value-prof.c (check_counter): Fix the counter if
1983         flag_profile_correction is true.
1984         (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
1985         tree_mod_subtract_transform):
1986         Follow check_counter parameter change.
1987         * common.opt (fprofile-correction): New option.
1988         * mcf.c: New file.
1989         * profile.h: Likewise.
1990         * profile.c (edge_info, EDGE_INFO): Moved to new file profile.h.
1991         (sum_edge_counts, is_edge_inconsistent, correct_negative_edge_counts,
1992         is_inconsistent, set_bb_counts, read_profile_edge_counts): New
1993         functions.
1994         (compute_branch_probabilities): Refactored. Invokes mcf_smooth_cfg if
1995         flag_profile_correction is set.
1996
1997 2008-08-18  Richard Sandiford  <rdsandiford@googlemail.com>
1998
1999         * rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
2000
2001 2008-08-18  Tomas Bily  <tbily@suse.cz>
2002
2003         * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P.
2004         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Use
2005         CONVERT_EXPR_P.
2006         * tree-data-ref.c (split_constant_offset_1): Likewise.
2007         * tree-inline.c (estimate_operator_cost): Use CASE_CONVERT.
2008         * tree-sra.c (sra_walk_expr): Likewise.
2009         * matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise.
2010         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
2011         * gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P.
2012         * tree-ssa-structalias.c (find_func_aliases, find_func_aliases):
2013         Likewise.
2014         * gimple.c (gimple_assign_unary_nop_p): Likewise.
2015         * tree-vect-transform.c (vectorizable_type_demotion)
2016         (vectorizable_type_promotion): Likewise.
2017         * tree-inline.c (expand_call_inline): 
2018         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
2019         (forward_propagate_addr_expr_1, forward_propagate_comparison)
2020         (tree_ssa_forward_propagate_single_use_vars): Likewise.
2021         * expr.c (expand_expr_real_1): Likewise.
2022         * tree-ssa-dom.c (hashable_expr_equal_p, iterative_hash_hashable_expr)
2023         (gimple_assign_unary_useless_conversion_p): Likewise.
2024         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
2025         * tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise.
2026         * fold-const.c (fold_unary): Likewise.
2027         * tree.h (CONVERT_EXPR_P): Likewise.
2028         * tree.c (simple_cst_equal, iterative_hash_expr): Likewise.
2029         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
2030         * tree-vrp.c: 
2031         (register_edge_assert_for_2, extract_range_from_unary_expr)
2032         (register_edge_assert_for_1): Likewise.
2033         
2034 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2035
2036         * real.h (dconst_e, dconst_third, dconst_sqrt2, dconst_e_ptr,
2037         dconst_third_ptr, dconst_sqrt2_ptr): Declare.
2038         (enum real_value_const): Delete.
2039         (get_real_const): Delete.
2040         * real.c (get_real_const): Delete.
2041         (dconst_e_ptr): Define.
2042         (dconst_third_ptr): Define.
2043         (dconst_sqrt2_ptr): Define.
2044         * builtins.c: Update all callers.
2045
2046 2008-08-18  Richard Guenther  <rguenther@suse.de>
2047
2048         * tree-ssa-reassoc.c (reassociate_bb): Properly reset the
2049         statement iterator after statement removal.
2050
2051 2008-08-18  Andreas Tobler  <a.tobler@schweiz.org>
2052
2053         * config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.
2054         (detect_processor_freebsd): Likewise.
2055         (host_detect_local_cpu): Call newly added functions for FreeBSD.
2056
2057 2008-08-18  Richard Guenther  <rguenther@suse.de>
2058
2059         * tree-cfg.c (verify_types_in_gimple_assign): Verify copies
2060         and loads have the correct types.
2061
2062 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2063
2064         PR cpp/7263
2065         * c-opts.c (cpp_opts): Remove static.
2066         * c-parser.c (cpp_opts): Declare it extern.
2067         (disable_extension_diagnostics): Handle cpp options.
2068         (enable_extension_diagnostics): Likewise.
2069
2070 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2071
2072         * diagnostics.c (permerror_at): Rename as permerror.
2073         (permerror): Delete.
2074         * toplev.h: Likewise.
2075
2076 2008-08-18  Richard Guenther  <rguenther@suse.de>
2077
2078         * passes.c (init_optimization_passes): Remove cleanup_cfg1,
2079         sdse1 and addressables2 passes.  Replace dce1 with cddce1.
2080         Move call_cdce before build_alias.  Move copyrename2,
2081         cunrolli and ccp2 beafore build_alias.  Re-add addressable2
2082         right after final inlining.
2083         * tree-cfg.c (build_gimple_cfg): Do not dump function here.
2084         (pass_build_cfg): But instead via TODO_dump_func.
2085
2086 2008-08-18  Richard Guenther  <rguenther@suse.de>
2087
2088         * tree-sra.c (generate_element_init_1): Deal with NULL constructor
2089         element index.
2090         (scalarize_init): If we failed to generate some initializers
2091         do not generate zeros for not instantiated members.  Instead
2092         rely on the copy out.
2093         * tree-ssa-operands.c (get_addr_dereference_operands): Warn
2094         about missing flow-sensitive alias info only if we have
2095         aliases computed.
2096
2097 2008-08-17  Nick Clifton  <nickc@redhat.com>
2098
2099         * doc/extend.texi (Function Attributes): Fix typo in description
2100         if hot function attribute.
2101
2102 2008-08-17  Daniel Jacobowitz  <dan@codesourcery.com>
2103             Richard Sandiford  <rdsandiford@googlemail.com>
2104
2105         * doc/install.texi (--with-mips-plt): Document.
2106         * doc/invoke.texi (-mplt, -mno-plt): Document.
2107         * config.gcc (mips*-*-*): Add mips-plt to supported_defaults
2108         and handle ${with_mips_plt}.
2109         * config/mips/mips.opt (mplt): New option.
2110         * config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
2111         (TARGET_ABICALLS_PIC2): Likewise.
2112         (TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
2113         (OPTION_DEFAULT_SPECS): Add a mips-plt entry.
2114         (ASM_SPEC): Use !mabi=* instead of !mabi*.
2115         (MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
2116         to decide whether to output ".option picX" directives.
2117         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
2118         Pass -call_nonpic rather than -KPIC for -mplt.
2119         (BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
2120         on the command line.  Also remove it when -mabi=64 is used without
2121         -msym32.
2122         * config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
2123         * config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
2124         TARGET_ABICALLS_PIC0.
2125         (mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
2126         TARGET_ABICALLS.
2127         (mips16_build_function_stub): Only output ".option pic" directives
2128         and PIC stubs if TARGET_ABICALLS_PIC2.  Call through $25 instead of $1.
2129         (mips16_build_call_stub): Fix comment and remove redundant
2130         ".set at"/"set .noat" directives.
2131         (mips_function_rodata_section): Use the default behaviour for
2132         TARGET_ABSOLUTE_ABICALLS.
2133         (mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
2134         (mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
2135         (mips_restore_gp): Do nothing if the current function doesn't use
2136         a global pointer.
2137         (mips_expand_prologue): Only save $gp if the current function uses it.
2138         Use a normal move for TARGET_ABICALLS_PIC0.
2139         (mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.
2140
2141 2008-08-17  Richard Sandiford  <rdsandiford@googlemail.com>
2142
2143         * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest
2144         of function when handling GLOBAL_POINTER_REGNUM.
2145
2146 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
2147
2148         PR ada/20548
2149         * common.opt (-fstack-check): Do not declare the variable here.
2150         (-fstack-check=): New option variant.
2151         * doc/invoke.texi (Code Gen Options): Document it.
2152         * expr.h (STACK_OLD_CHECK_PROTECT): New macro.
2153         (STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used.
2154         (STACK_CHECK_STATIC_BUILTIN): New macro.
2155         * doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN.
2156         * opts.c: Include expr.h.
2157         (common_handle_option) <OPT_fold_stack_check_>: New case.
2158         <OPT_fstack_check>: Likewise.
2159         * calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT
2160         consistently in the test for variable-sized types.  Adjust for
2161         new behaviour of flag_stack_check.
2162         * explow.c: Include except.h.
2163         (allocate_dynamic_stack_space): Do not take into account
2164         STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking.
2165         * function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test
2166         for variable-sized parameters.  Treat all parameters whose size is
2167         greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic
2168         stack checking is enabled.
2169         * gimplify.c (gimplify_decl_expr): Treat non-static objects whose
2170         size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized
2171         if generic stack checking is enabled.
2172         (expand_function_end): Adjust for new behaviour of flag_stack_check.
2173         * reload1.c (reload): Likewise.
2174         * stmt.c (expand_decl): Assert that all automatic variables have
2175         fixed size at this point and remove dead code.
2176         * flags.h (stack_check_type): New enumeration type.
2177         (flag_stack_check): Declare.
2178         * toplev.c (flag_stack_check): New global variable.
2179         * Makefile.in (opts.o): Add dependency on EXPR_H.
2180         (explow.o): Add dependency on except.h.
2181
2182 2008-08-16  Andy Hutchinson  <hutchinsonandy@aim.com>
2183
2184         * config/avr/avr.c (avr_override_options): Reduce value of 
2185         PARAM_INLINE_CALL_COST.
2186
2187 2008-08-15  Eric Botcazou  <ebotcazou@adacore.com>
2188
2189         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: When converting
2190         to BLKmode, try to fetch an inner memory reference.  Use 'mode' in
2191         lieu of TYPE_MODE (type) throughout.
2192
2193 2008-08-15  Joseph Myers  <joseph@codesourcery.com>
2194
2195         * config/arm/arm.c (add_minipool_backward_ref): Check for
2196         8-byte-aligned entries in second case of forcing insertion after a
2197         particular entry.  Change third case to avoid inserting
2198         non-8-byte-aligned entries before 8-byte-aligned ones.
2199
2200 2008-08-15  Richard Guenther  <rguenther@suse.de>
2201
2202         * tree-ssa-ccp.c (maybe_fold_offset_to_reference): Do not
2203         strip components for unknown size accesses.
2204
2205 2008-08-15  Wolfgang Gellerich  <gellerich@de.ibm.com>
2206
2207         * config/s390/2097.md New file.
2208         * config/s390/s390.md ("z10prop" attribute): Define none,
2209         z10_super, z10_super_E1, z10_super_A1, z10_super_c,
2210         z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
2211         z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
2212         possible values and apply them to insns as appropriate.
2213         ("type" attribute): Removed itof and added ftrunctf,ftruncdf,
2214         ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
2215         fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
2216         fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible
2217         values.
2218         ("bfp" mode attribute): Removed.  Every occurence replaced
2219         with <mode>.
2220         * config/s390/s390.c (struct "z10_cost"): Updated entries.
2221         * config/s390/2084.md (insn_reservation "x_itof"): Updated
2222           type attribute.
2223
2224 2008-08-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2225
2226         PR c/28152
2227         * c-parser.c (c_lex_one_token): Do not store the canonical spelling
2228         for keywords.
2229         
2230 2008-08-14  Dorit Nuzman  <dorit@il.ibm.com>
2231
2232         * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an
2233         additional argument. Support reduction when duplication is needed due
2234         to data-types of different sizes in the loop.
2235         (get_initial_def_for_induction): Fix printout.
2236         (vect_get_vec_def_for_stmt_copy): Support case where the
2237         vec_stmt_for_operand is a phi node.
2238         (vectorizable_reduction): Support reduction when duplication is needed 
2239         due to data-types of different sizes in the loop.
2240         (vectorizable_call): Remove restriction to not vectorize in case we 
2241         have data-types of different sizes in the loop.
2242         (vectorizable_conversion): Likewise.
2243         (vectorizable_operation): Likewise.
2244         (vectorizable_type_demotion): Likewise.
2245         (vectorizable_type_promotion): Likewise.
2246         (vectorizable_induction): Add restriction to not vectorize in case 
2247         we have data-types of different sizes in the loop.
2248
2249 2008-08-14  Christophe Saout  <christophe@saout.de>
2250             Uros Bizjak  <ubizjak@gmail.com>
2251
2252         PR target/37101
2253         * config/i386/sse.md (vec_concatv2di): Remove movlps alternative.
2254         (*vec_concatv2di_rex64_sse4_1): Ditto.
2255         (*vec_concatv2di_rex64_sse): Ditto.
2256
2257 2008-08-14  Jakub Jelinek  <jakub@redhat.com>
2258
2259         PR middle-end/37103
2260         * fold-const.c (fold_widened_comparison): Do not allow
2261         sign changes that change the result even if shorter type
2262         is wider than arg1_unw's type.
2263
2264 2008-08-13  Kazu Hirata  <kazu@codesourcery.com>
2265
2266         * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c:
2267         Skip if the multilib testing specifies -march that does not
2268         agree with the one specified in the testcase.
2269
2270 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
2271
2272         * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or
2273         zero extend SImode values being converted to TFmode before passing
2274         to libcalls.
2275
2276 2008-08-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2277
2278         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
2279         __PPU__ when targeting the Cell/B.E. PPU processor.
2280
2281 2008-08-13  Eric Botcazou  <ebotcazou@adacore.com>
2282
2283         * gimple.h (gimple_call_set_chain): Accept SSA variables.
2284         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>:
2285         Rematerialize the static chain, if any.
2286         * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the
2287         static chain.
2288
2289 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
2290
2291         * dwarf2out.c (dwarf_stack_op_name): Remove prototype.
2292         (new_loc_descr): Likewise.
2293         (add_loc_descr): Likewise.
2294         (size_of_loc_descr): Likewise.
2295         (size_of_locs): Likewise.
2296         (output_loc_operands): Likewise.
2297         (output_loc_sequence): Likewise.
2298         (new_reg_loc_descr): New.
2299         (build_cfa_loc): Use it.
2300         (build_cfa_aligned_loc): Likewise.
2301         (one_reg_loc_descriptor): Likewise.
2302         (based_loc_descr): Likewise.
2303
2304 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2305
2306         PR 30551
2307         * doc/invoke.texi (Wmain): Update.
2308         * c-decl.c (start_decl): warn_main is only 0 or 1.
2309         (start_function): Likewise. Fix formatting.
2310         (finish_function): Delete redundant warning.
2311         * c.opt (Wmain): Add Var(warn_main) and Init(-1).
2312         * c-opts (c_common_handle_option): -Wall only has effect if
2313         warn_main is uninitialized. OPT_Wmain is automatically
2314         handled. -pedantic also enables Wmain.
2315         (c_common_post_options): Handle all logic for Wmain here.
2316         * c-common.c (warn_main): Delete.
2317         (check_main_parameter_types): Make pedwarns conditional on
2318         OPT_Wmain.
2319         * c-common.h (warn_main): Delete.
2320
2321 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
2322
2323         PR middle-end/36701
2324         * expr.c (emit_group_store): Allocate stack temp with the
2325         largest alignment when copying from register to stack.
2326
2327 2008-08-13  Richard Guenther  <rguenther@suse.de>
2328
2329         * tree.h (maybe_fold_offset_to_address): Declare.
2330         * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit.
2331         (ccp_fold): Handle pointer conversions the same as fold_stmt.
2332         Likewise for POINTER_PLUS_EXPR.
2333         (maybe_fold_offset_to_reference): Enable disabled code.
2334         (maybe_fold_offset_to_address): New function.
2335         (fold_stmt_r): Use it.
2336         (fold_gimple_assign): Likewise.
2337         * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address.
2338         (gimplify_expr): Likewise.
2339
2340 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2341
2342         * toplev.h (pedwarn_at): Fix declaration.
2343         
2344 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
2345
2346         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
2347         LINK_SPEC): Use %R in -Y P argument.
2348
2349 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2350
2351         PR c/15236
2352         * diagnostic.c (pedwarn_at): New.
2353         * toplev.h (pedwarn_at): Declare.
2354         * c-tree.h (build_enumerator): Update declaration.
2355         * c-decl.c (finish_enum): Update comment.
2356         (build_enumerator): Take a location parameter. Give a pedwarn but do
2357         not perform any conversion.
2358         * c-parser.c (c_parser_enum_specifier): Set correct location for
2359         enumerator.
2360
2361 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2362
2363         PR 35635
2364         * c-common.c (conversion_warning): Use a switch. Ignore boolean
2365         expressions except for conversions to signed:1 bitfields. Handle
2366         COND_EXPR with constant operands.
2367         
2368 2008-08-13  Richard Guenther  <rguenther@suse.de>
2369
2370         PR tree-optimization/15255
2371         * tree-ssa-reassoc.c (linearize_expr_tree): Declare.
2372         (struct oecount_s): New struct and VEC types.
2373         (cvec): New global.
2374         (oecount_hash): New function.
2375         (oecount_eq): Likewise.
2376         (oecount_cmp): Likewise.
2377         (zero_one_operation): New function.
2378         (build_and_add_sum): Likewise.
2379         (undistribute_ops_list): Perform un-distribution of multiplication
2380         and division on the chain of summands.
2381         (should_break_up_subtract): Also break up subtracts for factors.
2382         (reassociate_bb): Delete dead visited statements.
2383         Call undistribute_ops_list.  Re-sort and optimize if it did something.
2384         * passes.c (init_optimization_passes): Move DSE before
2385         reassociation.
2386         * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle
2387         PHI nodes.
2388
2389 2008-08-12  Janis Johnson  <janis187@us.ibm.com>
2390
2391         * doc/invoke.texi (-fipa-pta): Say the option is experimental.
2392
2393         * doc/invoke.texi: Revert unintended checkin.
2394
2395 2008-08-12  Nathan Froyd  <froydnj@codesourcery.com>
2396
2397         PR libgomp/26165
2398         * gcc.c (include_spec_function): Tweak call to find_a_file.
2399
2400 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
2401
2402         PR middle-end/37014
2403         * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
2404         and TRUTH_ORIF_EXPR.
2405         * dojump.c (do_jump): Likewise.
2406
2407         PR tree-optimization/37084
2408         * tree-inline.c (copy_bb): Call gimple_regimplify_operands
2409         if id->regimplify, don't assume stmt is a cast assignment.
2410
2411 2008-08-12  Anatoly Sokolov  <aesok@post.ru>
2412
2413         * final.c (final_scan_insn): Use app_enable/app_disable functions.
2414
2415 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2416
2417         PR bootstrap/37097
2418         * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced
2419         by last change.
2420
2421 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2422
2423         * defaults.h (TARGET_FLOAT_FORMAT): Remove.
2424         (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove.
2425
2426         * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove.
2427         * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove.
2428         * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove.
2429         * config/score/score.h (TARGET_FLOAT_FORMAT): Remove.
2430         * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove.
2431
2432         * doc/tm.texi (Storage Layout): Remove documentation for
2433         TARGET_FLOAT_FORMAT.
2434
2435         * simplify-rtx.c (simplify_binary_operation_1): Replace
2436         TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks.
2437
2438 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2439
2440         * real.h (struct real_format): New member has_sign_dependent_rounding.
2441         * real.c (ieee_single_format, mips_single_format, motorola_single_format,
2442         spu_single_format, ieee_double_format, mips_double_format,
2443         motorola_double_format, ieee_extended_motorola_format,
2444         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
2445         ieee_extended_intel_96_round_53_format, ibm_extended_format,
2446         mips_extended_format, ieee_quad_format, mips_quad_format,
2447         vax_f_format, vax_d_format, vax_g_format): Initialize it.
2448         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
2449
2450         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
2451         MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
2452         * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
2453         MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
2454         (ROUND_TOWARDS_ZERO): Likewise.
2455
2456         * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion.
2457         (FLOAT_MODE_FORMAT): New macro.
2458         (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ...
2459         (MODE_COMPOSITE_P): ... this new macro.
2460         (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
2461         MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros.
2462         * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode.
2463
2464         * flags.h: Include "real.h".
2465
2466         * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of
2467         REAL_MODE_FORMAT_COMPOSITE_P.
2468         * simplify-rtx.c (simplify_const_binary_operation): Likewise.
2469
2470         * doc/tm.texi (Storage Layout): Remove documentation of
2471         MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
2472         MODE_HAS_SIGN_DEPENDENT_ROUNDING.  Update documentation of
2473         ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify
2474         they only apply to libgcc2.a.
2475
2476 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2477
2478         * config/spu/float_disf.c: New file.
2479         * config/spu/float_unsdisf.c: New file.
2480         * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them.
2481         (LIB2FUNCS_EXCLUDE): Define.
2482
2483 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2484             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2485
2486         * real.h (struct real_format): New member round_towards_zero.
2487         * real.c (round_for_format): Respect fmt->round_towards_zero.
2488         (ieee_single_format, mips_single_format, motorola_single_format,
2489         spu_single_format, ieee_double_format, mips_double_format,
2490         motorola_double_format, ieee_extended_motorola_format,
2491         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
2492         ieee_extended_intel_96_round_53_format, ibm_extended_format,
2493         mips_extended_format, ieee_quad_format, mips_quad_format,
2494         vax_f_format, vax_d_format, vax_g_format): Initialize it.
2495         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
2496
2497         * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of
2498         real_format to choose rounding mode when calling MPFR functions.
2499         (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise.
2500         (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise.
2501
2502         * real.h (real_to_decimal_for_mode): Add prototype.
2503         * real.c (real_to_decimal_for_mode): Renames old real_to_decimal.
2504         Respect target rounding mode when generating decimal representation.
2505         (real_to_decimal): New stub for backwards compatibility.
2506         * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use
2507         real_to_decimal_for_mode instead of real_to_decimal.
2508
2509         * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New.
2510
2511 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2512             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2513
2514         * real.c (spu_single_format): New variable.
2515         * real.h (spu_single_format): Declare.
2516
2517         * config/spu/spu.c (spu_override_options): Install SFmode format.
2518         (spu_split_immediate): Use integer mode to operate on pieces of
2519         floating-point values in all cases.
2520
2521         * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New.
2522         ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND.
2523         ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE.
2524
2525 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2526
2527         * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA.
2528
2529 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2530
2531         * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define.
2532
2533 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
2534
2535         PR c++/36688
2536         * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY
2537         on the VAR_DECL instead of TYPE_READONLY on its type.
2538
2539 2008-08-12  Ira Rosen  <irar@il.ibm.com>
2540
2541         * tree-vectorizer.c: Depend on langhooks.h.
2542         (supportable_widening_operation): Add two arguments. Support double
2543         type conversions.
2544         (supportable_narrowing_operation): Likewise.
2545         * tree-vectorizer.h (supportable_widening_operation): Add two 
2546         arguments.
2547         (supportable_narrowing_operation): Likewise.
2548         * tree-vect-patterns.c (vect_recog_widen_mult_pattern) : Call
2549         supportable_widening_operation with correct arguments.
2550         * tree-vect-transform.c (vectorizable_conversion): Likewise.
2551         (vectorizable_type_demotion): Support double type conversions.
2552         (vectorizable_type_promotion): Likewise.
2553         * Makefile.in (tree-vectorizer.o): Depend on langhooks.h.
2554
2555 2008-08-11  Michael Matz  <matz@suse.de>
2556
2557         * i386/i386.c (override_options): Move initialisation from
2558         flag_schedule_insns_after_reload to here from ...
2559         (optimization_options): ... here.
2560
2561 2008-08-11  Jakub Jelinek  <jakub@redhat.com>
2562
2563         PR rtl-optimization/36998
2564         * dwarf2out.c (compute_barrier_args_size_1,
2565         compute_barrier_args_size): Temporarily remove assertions.
2566
2567 2008-08-10  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2568
2569         PR middle-end/20644
2570         * tree-ssa.c (struct walk_data): Add new flag
2571         warn_possibly_uninitialized.
2572         (warn_uninitialized_var): Use it.
2573         (warn_uninitialized_vars): New.
2574         (execute_early_warn_uninitialized): Call it.
2575         (execute_late_warn_uninitialized): Likewise.
2576
2577 2008-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2578
2579         PR middle-end/36238
2580         * reload1.c (gen_reload): Guard calls to get_secondary_mem
2581         for memory subregs.
2582
2583 2008-08-09  Jan Hubicka  <jh@suse.cz>
2584
2585         PR target/37055
2586         * optabs.c (maybe_emit_unop_insn): Remove produced code if
2587         expansion failed.
2588         (expand_fix): Be prepared for expansion to fail.
2589         (expand_sfix_optab): Remove instructions if expansion failed.
2590
2591 2008-08-09  Anatoly Sokolov  <aesok@post.ru>
2592
2593         * config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to
2594         avr31 architecture.
2595         * config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.).
2596         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
2597
2598 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
2599
2600         * config.gcc (mips*-*-linux*, mips64*-*-linux*): Add
2601         mips/t-libgcc-mips16 to tmake_file.
2602         * config/mips/mips-protos.h (mips_call_type): New enum.
2603         (mips_pic_base_register, mips_got_load): Declare.
2604         (mips_restore_gp): Take an rtx argument.
2605         (mips_use_pic_fn_addr_reg_p): Declare.
2606         (mips_expand_call): Replace the sibcall_p argument with
2607         a mips_call_type argument.  Add a lazy_p parameter.
2608         (mips_split_call): Declare.
2609         * config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro.
2610         (MIPS16_PIC_TEMP): Likewise.
2611         (reg_class): Delete M16_NA_REGS.
2612         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
2613         (SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros.
2614         (mips_split_hi_p): Declare.
2615         * config/mips/mips.c (mips_split_hi_p): New array.
2616         (mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS.
2617         (mips_got_symbol_type_p): New function.
2618         (mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P.
2619         (mips16_stub_function_p): New function.
2620         (mips16_local_function_p): Likewise.
2621         (mips_use_pic_fn_addr_reg_p): Likewise.
2622         (mips_cannot_force_const_mem): Return false for HIGHs.
2623         Extend CONST_INT and symbolic handling to MIPS16, using
2624         mips_symbol_insns to check that the base symbol type is a
2625         legitimate constant.  Reject GOT-based constants if
2626         TARGET_MIPS16_PCREL_LOADS.
2627         (mips_const_insns): Check targetm.cannot_force_const_mem when
2628         decomposing a symbolic base and a large offset.
2629         (mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters.
2630         When calling a function that needs $25 from MIPS16 code,
2631         move the target address into $25 separately and add a USE
2632         to the call insn.
2633         (mips16_gp_pseudo_reg): Insert the initializer immediately
2634         before the first real insn.
2635         (mips_pic_base_register, mips_got_load): New functions.
2636         (mips_split_symbol): Generalize the name of the LO_SUM_OUT
2637         parameter to LOW_OUT.  Say that it can be any valid SET_SRC
2638         when splitting a load-address operation.  Split SYMBOL_GOT_DISP
2639         constants and highs of SYMBOL_GOT_PAGE_OFST constants.
2640         (mips_call_tls_get_addr): Update the call to mips_expand_call,
2641         also passing NULL_RTX rather than const0_rtx as the aux argument.
2642         (mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p
2643         instead of TARGET_EXPLICIT_RELOCS.
2644         (mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P.
2645         (mips_load_call_address): Replace the sibcall_p argument with
2646         a mips_call_type argument.  Use mips_got_load.
2647         (mips16_local_alias): New structure.
2648         (mips16_local_aliases): New variable.
2649         (mips16_local_aliases_hash): New function.
2650         (mips16_local_aliases_eq): Likewise.
2651         (mips16_local_alias): Likewise.
2652         (mips16_stub_function): Likewise.
2653         (mips16_build_function_stub): Create a local alias for the target
2654         function.  Handle TARGET_ABICALLS.  For PIC abicalls, emit a
2655         .cpload directive and an R_MIPS_NONE relocation for the target
2656         function, then load the alias rather than the function itself.
2657         Wrap the non-PIC abicalls version in ".option pic0/.option pic2".
2658         (mips16_copy_fpr_return_value): Use mips16_stub_function and
2659         mips_expand_call.  Set SYMBOL_REF_BIND_NOW on the symbol.
2660         (mips16_build_call_stub): Replace the FN parameter with an
2661         FN_PTR parameter.  Force the address into a register if it
2662         isn't a call_insn_operand; don't rely on the caller to do this.
2663         If a call to a locally-defined and locally-binding MIPS16
2664         function must be made indirectly, redirect the call to the
2665         function's local alias.  Use mips16_stub_function_p,
2666         mips16_stub_function, mips_expand_call and use_reg.
2667         Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols.
2668         Use explicit %hi and %lo accesses where possible.
2669         Use MIPS_CALL to generate the correct code form of a
2670         jal instruction.  Add clobbers of $18 instead of uses.
2671         Update the call to mips_emit_call_insn.
2672         (mips_expand_call): Replace the SIBCALL_P argument with a
2673         mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value.
2674         Take a LAZY_P parameter.  Call mips16_build_call_stub first,
2675         allowing it to modify the call address.  Update the calls to
2676         mips_load_call_address and mips_emit_call_insn.
2677         (mips_split_call): New function.
2678         (mips_init_relocs): Clear mips_split_hi_p.  Only use %gp_rel if
2679         !TARGET_MIPS16.  Split SYMBOL_GOT_DISP, and the high parts of
2680         SYMBOL_GOT_PAGE_OFST, for MIPS16 code.
2681         (mips_global_pointer): Check mips16_cfun_returns_in_fpr_p.
2682         (mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM
2683         if TARGET_MIPS16.
2684         (mips_cprestore_slot): New function.
2685         (mips_restore_gp): Take a TEMP parameter.  Handle TARGET_MIPS16
2686         and use mips_cprestore_slot.
2687         (mips_output_function_prologue): Handle TARGET_MIPS16 for
2688         LOADGP_OLDABI.
2689         (mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16,
2690         then use a copygp_mips16 instruction to set up $28.
2691         (mips_expand_prologue): Initialize the cprestore slot for MIPS16 too.
2692         (mips16_lay_out_constants): Call split_all_insns_noflow.
2693         (mips_reorg_process_insns): Explicitly set all_noreorder_p to
2694         false if TARGET_MIPS16.
2695         (mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16.
2696         (mips_output_mi_thunk): Use mips_got_symbol_type_p.  Use the
2697         mips_dangerous_for_la25_p approach for MIPS16 PIC calls too.
2698         (mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for
2699         MIPS16 code.  Allow MIPS16 o32 PIC.
2700         (mips_override_options): Allow MIPS16 o32 PIC.
2701         * config/mips/mips.md: Lower CONST_GP_P moves into register moves
2702         after reload if TARGET_USE_GOT.
2703         (UNSPEC_COPYGP): New constant.
2704         (length): Use a default length of 8 for MIPS16 GOT loads.
2705         (*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT.
2706         (*got_page<mode>): Check mips_split_hi_p.
2707         (*got_disp<mode>, *got_page<mode>): Use mips_got_load.
2708         (unspec_got<mode>, unspec_call<mode>): New expanders.
2709         (load_got<mode>, load_call<mode>): Remove the length attributes.
2710         Use a got attribute instead of a type attribute.
2711         (copygp_mips16): New insn.
2712         (restore_gp): Add a scratch clobber and pass it to mips_restore_gp.
2713         (load_call<mode>): Use a "d" constraint instead of an "r" constraint.
2714         (sibcall, sibcall_value, call, call_value): Update the calls
2715         to mips_expand_call.
2716         (call_internal, call_value_internal): Use mips_split_call.
2717         (call_value_multiple_internal): Likewise.
2718         (call_split): Move after call_internal (the insn it is split from).
2719         (call_internal_direct, call_value_internal_direct): Turn into
2720         define_insn_and_splits.  Split if TARGET_SPLIT_CALLS.
2721         (call_direct_split, call_value_direct_split): New patterns.
2722         * config/mips/constraints.md (c): Handle TARGET_MIPS16 first
2723         and use M16_REGS instead of M16_NA_REGS.
2724         * config/mips/predicates.md (const_call_insn_operand): Replace
2725         the TARGET_ABSOLUTE_ABICALLS-based check with a more general
2726         mips_use_pic_fn_addr_reg_p check.
2727         (move_operand): Reject HIGHs if mips_split_hi_p.
2728         * config/mips/mips16.S: Assembly as empty if the ABI is not suitable.
2729         (__mips16_floatunsisf): Inline __mips16_floatsisf.
2730         (CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25.
2731         * config/mips/libgcc-mips16.ver: New file.
2732         * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add
2733         $(srcdir)/config/mips/libgcc-mips16.ver.
2734
2735 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
2736
2737         * config/mips/mips.c (mips_unspec_address_offset): Move earlier in file.
2738         (mips_unspec_address, mips_unspec_offset_high): Likewise.
2739         (mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise.
2740         (mips16_cfun_returns_in_fpr_p): Likewise.
2741
2742 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
2743
2744         * config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary.
2745         * config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2
2746         rather than 4 to PC.
2747
2748 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
2749
2750         * config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
2751         (FUNCTION_PROFILER): Save the static chain pointer into $2
2752         beforehand and restore it aftewards.
2753         (TRAMPOLINE_TEMPLATE): Adjust accordingly.  Load the target
2754         address directly into $25 and call the function through $25;
2755         do not clobber $3.  Pad the DImode version to cover the space
2756         left by the deleted $25 <- $3 move.
2757         (TRAMPOLINE_SIZE): Adjust the size of the SImode version after
2758         the removal of the $25 <- $3 move.
2759         (INITIALIZE_TRAMPOLINE): Update offsets accordingly.
2760         * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
2761
2762 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
2763             Daniel Jacobowitz  <dan@codesourcery.com>
2764
2765         * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete.
2766         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete.
2767         (ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete.
2768         * config/mips/mips.c (mips_start_function_definition): New function.
2769         (mips_end_function_definition): Likewise.
2770         (mips_output_function_prologue): Use mips_start_function_definition.
2771         (mips_output_function_epilogue): Use mips_end_function_definition.
2772         (build_mips16_function_stub): Use mips_start_function_definition
2773         and mips_end_function_definition.
2774         (build_mips16_call_stub): Likewise.
2775
2776 2008-08-09  Richard Guenther  <rguenther@suse.de>
2777
2778         * gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
2779         * gimple.h (gimple_call_fn): Adjust comment.
2780         (gimple_call_set_fndecl): New function.
2781         (gimple_call_fndecl): Adjust for GIMPLE_CALL no
2782         longer having bare FUNCTION_DECL operand.
2783         (gimple_call_return_type): Likewise.
2784         * tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL.
2785
2786         * value-prof.c (gimple_divmod_fixed_value): Do not emit labels.
2787         (gimple_mod_pow2): Likewise.
2788         (gimple_mod_subtract): Likewise.
2789         (gimple_ic): Likewise.
2790         (gimple_stringop_fixed_value): Likewise.
2791         (gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no
2792         longer having bare FUNCTION_DECL operand.
2793         * ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl.
2794         * omp-low.c (optimize_omp_library_calls): Likewise.
2795         * cgraphunit.c (update_call_expr): Likewise.
2796         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
2797         (execute_convert_to_rsqrt): Likewise.
2798         * cfgexpand.c (gimple_to_tree): Simplify.
2799         (release_stmt_tree): Fix for GIMPLE_CALL no longer having
2800         bare FUNCTION_DECL operand.
2801         * tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type.
2802         (convert_gimple_call): Use gimple_call_fndecl.
2803         * c-common.c (c_warn_unused_result): Likewise.
2804
2805 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2806
2807         PR c/17880
2808         * c-typeck.c (digest_init): Call verify_sequence_points from here.
2809         (c_finish_return): Likewise.
2810         (c_start_case): Likewise.
2811         * c-common.c (warn_for_collisions_1): Use explicit location in
2812         warning.
2813         * c-parser.c (c_parser_condition): New. Call
2814         verify_sequence_points.
2815         (c_parser_paren_condition): Call c_parser_condition.
2816         (c_parser_for_statement): Call c_parser_condition.
2817
2818 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2819
2820         PR 36901
2821         * diagnostic.def (DK_PEDWARN, DK_PERMERROR): New.  
2822         * diagnostic.c (pedantic_warning_kind, permissive_error_kind):
2823         Moved from diagnostic.h
2824         (diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and
2825         DK_PERMERROR.
2826         (emit_diagnostic): New.
2827         (warning0, pedwarn0): Delete.
2828         (warning, warning_at, pedwarn, permerror): Return bool.  
2829         * diagnostic.h (pedantic_warning_kind, permissive_error_kind):
2830         Moved to diagnostic.c.
2831         (struct diagnostic_context): Use correct type for
2832         classify_diagnostic.
2833         (diagnostic_report_diagnostic): Update declaration.
2834         (emit_diagnostic): Declare.
2835         * errors.c (warning): Return bool.  
2836         * errors.h (warning): Update declaration.
2837         * toplev.h (warning0, pedwarn0): Delete.
2838         (warning, warning_at, pedwarn, permerror): Return bool.
2839         * c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN.
2840         * c-decl.c (locate_old_decl): Delete 'diag' argument. Always use
2841         inform. Update all calls.
2842         (diagnose_mismatched_decls): Check return value of warning/pedwarn
2843         before giving informative note.
2844         (implicit_decl_warning): Likewise.  
2845         * c-typeck.c (build_function_call): Likewise.  
2846         * tree-sssa.c (warn_uninit): Likewise.  
2847         * builtins.c (gimplify_va_arg_expr): Likewise.
2848
2849 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2850
2851         PR 7651
2852         * doc/invoke.texi (-Wextra): Move warning from here...
2853         (-Wuninitialized): ... to here.
2854         
2855 2008-08-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2856
2857         PR 28875
2858         * flags.h (set_Wunused): Delete
2859         * toplev.c (process_options): Handle Wunused flags here.
2860         * opts.c (maybe_warn_unused_parameter): Delete.
2861         (common_handle_option): Replace set_Wunused by warn_unused.
2862         (set_Wextra): Do not handle Wunused-parameter here.
2863         (set_Wunused): Delete.
2864         * c-opts.c (c_common_handle_option): Replace set_Wunused by
2865         warn_unused.
2866         * common.opt (Wunused): Add Var and Init.
2867         (Wunused-function): Likewise.
2868         (Wunused-label): Likewise.
2869         (Wunused-parameter): Likewise.
2870         (Wunused-value): Likewise.
2871         (Wunused-variable): Likewise.
2872         
2873 2008-08-08  Peter Bergner  <bergner@vnet.ibm.com>
2874
2875         * doc/invoke.texi: Add cpu_type power7.
2876         * config.in (HAVE_AS_VSX): New.
2877         * config.gcc: Add cpu_type power7.
2878         * configure.ac (HAVE_AS_VSX): Check for assembler support of the
2879         VSX instructions.
2880         * configure: Regenerate.
2881         * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to
2882         power5.
2883         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define.
2884         (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7.
2885         (EXTRA_SPECS): Add asm_cpu_power7 spec string.
2886
2887 2008-08-08  Dorit Nuzman  <dorit@il.ibm.com>
2888
2889         * tree-vect-transform.c (vectorizable_conversion): Pass the integral
2890         type to vectorize.builtin_conversion.
2891         (vectorizable_conversion): Likewise.
2892         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes
2893         integral type as input.
2894         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
2895         FIX_TRUNC_EXPR.
2896         (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS
2897         and ALTIVEC_BUILTIN_VCTSXS.
2898         (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix
2899         formatting. 
2900
2901 2008-08-08  Richard Guenther  <rguenther@suse.de>
2902
2903         * tree-ssa-ccp.c (likely_value): Calls are not all varying.
2904         (surely_varying_stmt_p): Calls are varying only if they are
2905         non-builtin and not indirect or have no result.
2906         (ccp_fold): Re-instantiate code before the tuples merge.
2907
2908 2008-08-08  Richard Guenther  <rguenther@suse.de>
2909
2910         PR tree-optimization/37056
2911         * gimple.h (gimple_assign_rhs_class): New helper function.
2912         * tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle
2913         unary operations properly.
2914
2915 2008-08-07  Jan Hubicka  <jh@suse.cz>
2916
2917         * i386.h (ix86_size_cost): Declare.
2918         (ix86_cur_cost): New function macro.
2919         * i386.md (peepholes expanding size and splitters): Predicate by
2920         optimize_insn_for_speed_p.
2921         (peepholes reduce size and splitters): Predicate by
2922         optimize_insn_for_size_p.
2923         * i386.c (ix86_size_cost): Rename from ...
2924         (size_cost): This one.
2925         (override_options): Update.
2926         (decide_alg): Likewise.
2927         (ix86_expand_clear): Use RTL profile.
2928         (ix86_pad_returns): Use RTL profile.
2929
2930 2008-08-07  Jan Hubicka  <jh@suse.cz>
2931
2932         * recog.c (split_all_insns): Set RTL profile
2933         (peephole2_optimize): Likewise.
2934         * function.c (thread_prologue_and_epilogue_insns): Likewise.
2935         * combine.c (combine_instructions): Likewise.
2936
2937 2008-08-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2938
2939         * c-common.c (c_common_reswords): Also warn about keyword "bool".
2940
2941 2008-08-07  Bob Wilson  <bob.wilson@acm.org>
2942         
2943         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming
2944         value in a6 after the set_frame_ptr insn.
2945         
2946 2008-08-07  Richard Henderson  <rth@redhat.com>
2947
2948         PR debug/37033
2949         * gcc.c (cpp_options): Pass along -g*.
2950
2951 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
2952
2953         * config/arm/arm.c (output_move_neon): Update comment describing
2954         big-endian vector layout.
2955         (arm_assemble_integer): Do not handle big-endian NEON vectors
2956         specially.
2957         * config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>,
2958         neon_vget_lane<mode>_sext_internal,
2959         neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust
2960         element indices for big-endian.
2961
2962 2008-08-07  Richard Henderson  <rth@redhat.com>
2963
2964         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New.
2965         * configure, config.in: Rebuild.
2966         * debug.h (dwarf2out_do_cfi_asm): Declare.
2967         * c-cppbuiltin.c (c_cpp_builtins): Use it.
2968         * dwarf2out.c (dwarf2out_do_cfi_asm): New.
2969         (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info,
2970         dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it.
2971
2972 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
2973
2974         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
2975         movv2si_internal): Combine into mov<mode>_internal.
2976         (movv2si_internal_2): Remove.
2977
2978 2008-08-07  Jan Hubicka  <jh@suse.cz>
2979
2980         PR target/37048
2981         * i386.md (single stringop patterns): Enable unconditionally. 
2982
2983 2008-08-07  H.J. Lu  <hongjiu.lu@intel.com>
2984
2985         PR target/36992
2986         * config/i386/emmintrin.h (_mm_move_epi64): Use
2987         __builtin_ia32_movq128.
2988
2989         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128.
2990         (bdesc_args): Add IX86_BUILTIN_MOVQ128.
2991
2992         * config/i386/sse.md (sse2_movq128): New.
2993
2994         * doc/extend.texi: Document __builtin_ia32_movq128.
2995
2996 2008-08-07  Richard Guenther  <rguenther@suse.de>
2997
2998         PR middle-end/37042
2999         * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all
3000         pointers can access anything.
3001
3002 2008-08-06  Jan Hubicka  <jh@suse.cz>
3003
3004         * optabs.c (emit_unop_insn): Break out to ...
3005         (maybe_emit_unop_insn): ... this one.
3006         (expand_sfix_optab): Use maybe variant.
3007         * optabs.h (maybe_emit_unop_insn): Declare.
3008
3009         * i386.md (mov0 patterns): Enable by default.
3010         (FP conversion expanders): Disable expansion of code expanding
3011         sequences when instruction should be optimized for size.
3012         (single strinop patterns): Enable when optimizing for size.
3013         (string expanders): Disable expanding of code expanding sequences
3014         when optimizning instruction for size.
3015         * i386.c (ix86_expand_vector_move_misalign): Do code size optimization
3016         per BB basis.
3017         (ix86_fp_comparison_sahf_cost): Likewise.
3018         (ix86_expand_branch): Likewise.
3019         (ix86_expand_ashl_const): Likewise.
3020         (ix86_split_ashl): Likewise.
3021         (ix86_expand_strlen): Likewise.
3022         (ix86_emit_fp_unordered_jump): Likewie.
3023
3024 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3025
3026         * c-common.c: Fix typo.
3027         (c_common_reswords): Activate more C++ keyword warnings.
3028
3029         * matrix-reorg.c (compute_offset): Avoid C++ keywords.
3030
3031 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3032
3033         PR 26785
3034         * diagnostic.c (permerror_at): New.
3035         * toplev.h (permerror_at): Declare.
3036         
3037 2008-08-06  Victor Kaplansky  <victork@il.ibm.com>
3038             Ira Rosen  <irar@il.ibm.com>
3039
3040         * tree-vect-transform.c (vect_model_simple_cost): Return
3041         immediately if stmt is pure SLP.
3042         (vect_model_store_cost): Ditto.
3043         (vect_model_load_cost): Ditto.
3044         (vectorizable_store): Remove PURE_SLP check before call
3045         to vect_model_store_cost.
3046         (vect_model_store_cost): When checking whether stmt describe
3047         strided access, add a check that it is not slp_node.
3048
3049 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3050
3051         PR 8715
3052         * c-common.c (warn_for_sign_compare): New. Handle separately the
3053         case that 'constant' is zero.
3054         * c-typeck.c (build_binary_op): Move code to c-common.c
3055         
3056 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3057
3058         * config/alpha/alpha.c (alpha_preferred_reload_class,
3059         alpha_secondary_reload, alpha_emit_set_const_1, function_value,
3060         alpha_output_mi_thunk_osf): Avoid C++ keywords.
3061         * config/arm/arm.c (output_move_vfp, output_move_neon): Likewise.
3062         * config/arm/arm.md: Likewise.
3063         * config/avr/avr-protos.h (preferred_reload_class,
3064         test_hard_reg_class, avr_simplify_comparison_p,
3065         out_shift_with_cnt, class_max_nregs): Likewise.
3066         * config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p,
3067         output_movqi, output_movhi, output_movsisf, out_shift_with_cnt,
3068         preferred_reload_class, test_hard_reg_class): Likewise.
3069         * config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok,
3070         bfin_memory_move_cost, bfin_secondary_reload,
3071         bfin_output_mi_thunk): Likewise.
3072         * config/crx/crx.c (crx_secondary_reload_class,
3073         crx_memory_move_cost): Likewise.
3074         * config/frv/frv-protos.h (frv_secondary_reload_class,
3075         frv_class_likely_spilled_p, frv_class_max_nregs): Likewise.
3076         * config/frv/frv.c (frv_override_options, frv_alloc_temp_reg,
3077         frv_secondary_reload_class, frv_class_likely_spilled_p,
3078         frv_class_max_nregs): Likewise.
3079         * config/h8300/h8300.c (h8300_classify_operand,
3080         h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count):
3081         Likewise.
3082         * config/i386/winnt.c (i386_pe_declare_function_type): Likewise.
3083         * config/ia64/ia64.c (ia64_preferred_reload_class,
3084         ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise.
3085         * config/iq2000/iq2000.c (gen_int_relational): Likewise.
3086         * config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare):
3087         Likewise.
3088         * config/m68hc11/m68hc11.c (preferred_reload_class,
3089         m68hc11_memory_move_cost): Likewise.
3090         * config/mcore/mcore.c (mcore_secondary_reload_class,
3091         mcore_reload_class): Likewise.
3092         * config/mips/mips.c (mips_hard_regno_mode_ok_p,
3093         mips_class_max_nregs, mips_cannot_change_mode_class,
3094         mips_preferred_reload_class, mips_secondary_reload_class,
3095         mips_output_mi_thunk): Likewise.
3096         * config/mmix/mmix.c (mmix_preferred_reload_class,
3097         mmix_preferred_output_reload_class, mmix_secondary_reload_class):
3098         Likewise.
3099         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
3100         Likewise.
3101         * config/pa/pa.c (pa_secondary_reload, pa_combine_instructions,
3102         pa_can_combine_p, pa_cannot_change_mode_class): Likewise.
3103         * config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
3104         * config/rs6000/rs6000.c (paired_expand_vector_init,
3105         rs6000_secondary_reload_class, rs6000_output_mi_thunk,
3106         compare_section_name, rs6000_memory_move_cost): Likewise.
3107         * config/s390/s390.c (s390_emit_compare_and_swap,
3108         s390_preferred_reload_class, s390_secondary_reload,
3109         legitimize_pic_address, legitimize_tls_address,
3110         legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic,
3111         s390_class_max_nregs): Likewise.
3112         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
3113         * config/s390/s390.md: Likewise.
3114         * config/score/score-protos.h (score_secondary_reload_class,
3115         score_preferred_reload_class): Likewise.
3116         * config/score/score.c (score_preferred_reload_class,
3117         score_secondary_reload_class): Likewise.
3118         * config/score/score3.c (score3_output_mi_thunk,
3119         score3_preferred_reload_class, score3_secondary_reload_class,
3120         score3_hard_regno_mode_ok): Likewise.
3121         * config/score/score3.h (score3_preferred_reload_class,
3122         score3_secondary_reload_class): Likewise.
3123         * config/score/score7.c (score7_output_mi_thunk,
3124         score7_preferred_reload_class, score7_secondary_reload_class,
3125         score7_hard_regno_mode_ok): Likewise.
3126         * config/score/score7.h (score7_preferred_reload_class,
3127         score7_secondary_reload_class): Likewise.
3128         * config/sh/sh.c (prepare_move_operands, output_far_jump,
3129         output_branchy_insn, add_constant, gen_block_redirect,
3130         sh_insn_length_adjustment, sh_cannot_change_mode_class,
3131         sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload):
3132         Likewise.
3133         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
3134         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
3135         xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
3136         xstormy16_preferred_reload_class): Likewise.
3137         * config/xtensa/xtensa.c (xtensa_expand_compare_and_swap,
3138         xtensa_expand_atomic, override_options,
3139         xtensa_preferred_reload_class, xtensa_secondary_reload_class):
3140         Likewise.
3141         * reorg.c (try_merge_delay_insns): Likewise.
3142         * tree.c (merge_dllimport_decl_attributes): Likewise.
3143
3144         * config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA.
3145
3146 2008-08-06  Michael Matz  <matz@suse.de>
3147
3148         * Makefile.in (write_entries_to_file): Quote words.
3149         * gengtype.c: (read_input_line): Skip over leading white-space.
3150
3151 2008-08-06  Marc Gauthier  <marc@tensilica.com>
3152
3153         * config.gcc: Match more processor names for Xtensa.
3154         * configure.ac: Likewise.
3155         * doc/install.texi (Specific): Likewise.
3156         * configure: Regenerate.
3157
3158 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3159
3160         * builtins.c (expand_builtin_profile_func): Avoid C++ keywords.
3161         * calls.c (avoid_likely_spilled_reg): Likewise.
3162         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
3163         * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise.
3164         * config/i386/i386.c (ix86_expand_special_args_builtin,
3165         ix86_secondary_reload): Likewise.
3166         * except.c (struct eh_region, gen_eh_region_catch,
3167         remove_unreachable_regions, duplicate_eh_regions,
3168         assign_filter_values, build_post_landing_pads,
3169         sjlj_find_directly_reachable_regions, remove_eh_handler,
3170         reachable_next_level, foreach_reachable_handler,
3171         can_throw_internal_1, can_throw_external_1,
3172         collect_one_action_chain): Likewise.
3173         * expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise.
3174         * fold-const.c (twoval_comparison_p, eval_subst): Likewise.
3175         * function.c (update_temp_slot_address, instantiate_new_reg,
3176         instantiate_virtual_regs_in_rtx,
3177         instantiate_virtual_regs_in_insn): Likewise.
3178         * gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise.
3179         * gimplify.c (gimplify_call_expr, gimplify_init_constructor,
3180         gimplify_cleanup_point_expr): Likewise.
3181         * ipa-cp.c (ipcp_lattice_changed): Likewise.
3182         * passes.c (next_pass_1): Likewise.
3183         * print-tree.c (print_node_brief, print_node): Likewise.
3184         * profile.c (branch_prob): Likewise.
3185         * tree-dump.c (dump_register): Likewise.
3186         * tree-eh.c (replace_goto_queue_cond_clause, lower_catch):
3187         Likewise.
3188         * tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks,
3189         copy_statement_list, remap_gimple_op_r, copy_tree_body_r,
3190         copy_edges_for_bb, copy_cfg_body, copy_tree_r,
3191         copy_arguments_for_versioning, copy_static_chain): Likewise.
3192         * tree-into-ssa.c (names_replaced_by, add_to_repl_tbl,
3193         add_new_name_mapping, register_new_name_mapping): Likewise.
3194         * tree-mudflap.c (mf_xform_derefs): Likewise.
3195         * tree-predcom.c (struct chain, dump_chain, replace_ref_with,
3196         get_init_expr, combine_chains): Likewise.
3197         * tree-pretty-print.c (dump_generic_node): Likewise.
3198         * tree-ssa-structalias.c (create_variable_info_for): Likewise.
3199         * tree-vrp.c (simplify_cond_using_ranges): Likewise.
3200         * tree.c (substitute_in_expr, iterative_hash_expr): Likewise.
3201         * value-prof.c (gimple_duplicate_stmt_histograms): Likewise.
3202
3203 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
3204
3205         PR middle-end/37010
3206         * calls.c (expand_call): Use the biggest preferred stack
3207         boundary.
3208
3209 2008-08-06  Michael Matz  <matz@suse.de>
3210
3211         PR target/36613
3212         * reload.c (push_reload): Merge in,out,in_reg,out_reg members
3213         for reused reload, instead of overwriting them.
3214
3215 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
3216
3217         PR middle-end/37009
3218         * cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary
3219         for incoming stack boundary.
3220
3221         * function.c (assign_parm_find_entry_rtl): Update
3222         parm_stack_boundary.
3223
3224         * function.h (rtl_data): Add parm_stack_boundary.
3225
3226         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Check
3227         parm_stack_boundary for incoming stack boundary.
3228
3229 2008-08-06  Joseph Myers  <joseph@codesourcery.com>
3230
3231         * jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset
3232         for unrepresentable subregs or treat them as equal to other regs
3233         or subregs with the same register number.
3234
3235 2008-08-06  Aldy Hernandez  <aldyh@redhat.com>
3236
3237         PR middle-end/35432
3238         * gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types
3239         if want_value.
3240
3241 2008-08-06  Jan Hubicka  <jh@suse.cz>
3242
3243         * predict.c (maybe_hot_frequency_p): When profile is absent, all
3244         frequencies might be hot.
3245
3246 2008-08-06  Andreas Krebbel  <krebbel1@de.ibm.com>
3247
3248         * reload.c (find_reloads): Force constants into literal pool
3249         also if they are wrapped in a SUBREG.
3250
3251 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3252
3253         PR target/35659
3254         * haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ...
3255         * sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here.
3256         Don't allow predicated instructions for data speculation.
3257         * sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move
3258         declaration.
3259
3260 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3261
3262         * haifa-sched.c (extend_global): Split to extend_global_data and
3263         extend_region_data.  Update all uses.
3264         (extend_all): Rename to extend_block_data.
3265
3266 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3267
3268         * sched-rgn.c (new_ready): Check if instruction can be
3269         speculatively scheduled before attempting speculation.
3270         (debug_rgn_dependencies): Remove wrongful assert.
3271
3272 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
3273
3274         * config/xtensa/t-xtensa: Remove dependency for gt-xtensa.h.
3275         
3276 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
3277         
3278         * config/xtensa/xtensa.c (xtensa_va_start): Unshare valist.
3279         (xtensa_gimplify_va_arg_expr): Unshare valist, orig_ndx, ndx, array,
3280         va_size, and type_size.
3281         
3282 2008-08-04  Jason Merrill  <jason@redhat.com>
3283
3284         PR c++/37016
3285         * tree-ssa.c (useless_type_conversion_p_1): Call langhook
3286         if TYPE_STRUCTURAL_EQUALITY_P is true for both types.
3287
3288 2008-08-05  Richard Henderson  <rth@redhat.com>
3289
3290         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Check .cfi_personality.
3291         * configure: Rebuild.
3292
3293 2008-08-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3294
3295         PR tree-opt/37024
3296         * tree-tailcall.c (process_assignment): Use gimple_assign_cast_p
3297         instead of IS_CONVERT_EXPR_CODE_P for seeing if the assignment
3298         is a conversion.
3299
3300 2008-08-05  Richard Henderson  <rth@redhat.com>
3301
3302         * Makefile.in (c-cppbuiltin.o): Depend on debug.h.
3303         * c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM.
3304         * doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it.
3305         * common.opt (fdwarf2-cfi-asm): New.
3306         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): New.
3307         * config.in, configure: Rebuild.
3308         * dwarf2asm.c (dw2_asm_output_data_raw): New.
3309         (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw): New.
3310         (dw2_force_const_mem): Externalize.
3311         * dwarf2asm.h: Update.
3312         * dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't
3313         generate a real label.
3314         (output_cfi_directive): New.
3315         (add_fde_cfi): If flag_dwarf2_cfi_asm, use it.
3316         (output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm.
3317         (dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality,
3318         and .cfi_lsda.
3319         (dwarf2out_end_epilogue): Emit .cfi_endproc.
3320         (output_loc_operands_raw, output_loc_sequence_raw): New.
3321         (output_cfa_loc_raw): New.
3322         
3323 2008-08-05  Paul Brook  <paul@codesourcery.com>
3324
3325         * doc/invoke.texi: Document new ARM -mfpu= and -mcpu= options.
3326         * config/arm/arm.c (all_fpus): Add vfpv3 and vfpv3-d16.
3327         (fp_model_for_fpu): Add entry for FPUTYPE_VFP3D16.
3328         (arm_file_start): Add FPUTYPE_VFP3D16.  Rename vfp3 to vfpv3.
3329         * config/arm/arm.h (TARGET_VFPD32): Define.
3330         (TARGET_VFP3): Use TARGET_VFPD32.
3331         (fputype): Add FPUTYPE_VFP3D16.
3332         (LAST_VFP_REGNUM): Use TARGET_VFPD32.
3333         * config/arm/constraints.md ("w"): Use TARGET_VFPD32.
3334         * config/arm/arm-cores.def: Add cortex-r4f.
3335         * config/arm/arm-tune.md: Regenerate.
3336
3337 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3338
3339         * config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus.
3340         Reword some comments throughout the file.
3341
3342         (MFC_MIN_DMA_LIST_ELEMENTS): New define.
3343         (MFC_MAX_DMA_LIST_ELEMENTS): Likewise.
3344         (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of MFC_MIN_DMA_LIST_ELEMENTS.
3345         (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of MFC_MAX_DMA_LIST_ELEMENTS.
3346
3347         (MFC_START_ENABLE): Remove PPU-only define.
3348         (MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise.
3349         (MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise.
3350
3351         (MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants.
3352         (MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise.
3353         (MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise.
3354         (MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise.
3355         (MFC_GETB_CMD, MFC_GETF_CMD): Likewise.
3356         (MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise.
3357         (MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise.
3358
3359         (MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines.
3360         (MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise.
3361         (mfc_sdcrt, mfc_sdcrtst): Likewise.
3362         (mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise.
3363
3364         (spu_read_machine_status): Fix typo.
3365
3366 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3367
3368         * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized
3369         SUBREG of multi-word hard register.
3370         * config/spu/spu.c (valid_subreg): Likewise.
3371         (adjust_operand): Handle SUBREGs of multi-word hard registers.
3372
3373 2008-08-04  Richard Guenther  <rguenther@suse.de>
3374
3375         * tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add
3376         the candidate with the stripped base if that base is different
3377         from the original base even for offset zero.
3378
3379 2008-08-04  Richard Guenther  <rguenther@suse.de>
3380
3381         PR middle-end/36691
3382         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly
3383         check for no_overflow.
3384
3385 2008-08-04  Richard Guenther  <rguenther@suse.de>
3386
3387         * tree-vect-transform.c (vectorizable_call): Fix tuplification.
3388
3389 2008-08-04  Paul Brook  <paul@codesourcery.com>
3390
3391         * cofig/arm/arm.c (thumb_core_reg_alloc_order): New.
3392         (arm_order_regs_for_local_alloc): New function.
3393         * config/arm/arm-protos.h (arm_order_regs_for_local_alloc): Add
3394         prototype.
3395         * config/arm/arm.h (ORDER_REGS_FOR_LOCAL_ALLOC): Define.
3396
3397 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
3398
3399         PR target/37012
3400         * config/i386/i386.c (ix86_expand_prologue): Use UNITS_PER_WORD
3401         instead of STACK_BOUNDARY / BITS_PER_UNIT to align stack.
3402         (ix86_expand_epilogue): Likewise.
3403
3404 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
3405
3406         * config/i386/i386.c (ix86_compute_frame_layout): Fix a typo
3407         in comments.
3408
3409 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
3410
3411         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x
3412         to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES.
3413         (*movv2sf_internal_rex64): Ditto.
3414
3415 2008-08-03  Jan Hubicka  <jh@suse.cz>
3416
3417         * optabs.c (expand_binop, expand_builtin_pow, expand_builtin_powi,
3418         expand_builtin_strcat): Upse optimize_insn_for_speed predicate.
3419         * expmed.c (expand_smod_pow2): Likewise.
3420
3421 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
3422
3423         PR target/36992
3424         * config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
3425         alternative 0 of operand 1.
3426         (*vec_concatv2di_rex64_sse): Ditto.
3427         (*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
3428         of operand 1.
3429         (*sse2_storeq_rex64): Penalize allocation of "r" registers.
3430         * config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation
3431         of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
3432         (*movv2sf_internal_rex64): Ditto.
3433
3434 2008-08-02  Richard Guenther  <rguenther@suse.de>
3435
3436         PR target/35252
3437         * config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators.
3438         (ssedoublesizemode): New mode attribute.
3439         (sse_shufps): Call gen_sse_shufps_v4sf.
3440         (sse_shufps_1): Macroize.
3441         (sse2_shufpd): Call gen_Sse_shufpd_v2df.
3442         (sse2_shufpd_1): Macroize.
3443         (vec_extract_odd, vec_extract_even): New expanders.
3444         (vec_interleave_highv4sf, vec_interleave_lowv4sf,
3445         vec_interleave_highv2df, vec_interleave_lowv2df): Likewise.
3446         * i386.c (ix86_expand_vector_init_one_nonzero): Call
3447         gen_sse_shufps_v4sf instead of gen_sse_shufps_1.
3448         (ix86_expand_vector_set): Likewise.
3449         (ix86_expand_reduc_v4sf): Likewise.
3450
3451 2008-08-01  Doug Kwan  <dougkwan@google.com>
3452
3453         * matrix-reorg.c: Re-enable all code.
3454         (struct malloc_call_data): Change CALL_STMT to gimple type.
3455         (collect_data_for_malloc_call): Tuplify.
3456         (struct access_site_info): Change STMT to gimple type.
3457         (struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT,
3458         and MALLOC_FOR_LEVEL to gimple and gimple pointer type.
3459         (struct free_info): Change STMT to gimple type.
3460         (struct matrix_access_phi_node):  Change PHI to gimple type.
3461         (get_inner_of_cast_expr): Remove.
3462         (may_flatten_matrices_1): Tuplify.
3463         (may_flatten_matrices): Ditto.
3464         (mark_min_matrix_escape_level): Ditto.
3465         (ssa_accessed_in_tree): Refactor statement RHS related code into ...
3466         (ssa_accessed_in_call_rhs): New
3467         (ssa_accessed_in_assign_rhs): New
3468         (record_access_alloc_site_info): Tuplify.
3469         (add_allocation_site): Ditto.
3470         (analyze_matrix_allocation_site): Ditto.
3471         (analyze_transpose): Ditto.
3472         (get_index_from_offset): Ditto.
3473         (update_type_size): Ditto.
3474         (analyze_accesses_for_call_expr): Tuplify and renamed into ...
3475         (analyze_accesses_for_call_stmt): New. Also handle LHS of a call.
3476         (analyze_accesses_for_phi_node): Tuplify.
3477         (analyze_accesses_for_modify_stmt): Tuplify and renamed into ...
3478         (analyze_accesses_for_assign_stmt): Remove code for handling call LHS.
3479         (analyze_matrix_accesses): Tuplify.
3480         (check_var_data): New call-back type for check_var_notmodified_p.
3481         (check_var_notmodified_p): Tuplify and use call-back struct to
3482         return statement found.
3483         (can_calculate_expr_before_stmt): Factor out statement related code
3484         into ...
3485         (can_calculate_stmt_before_stmt): New.
3486         (check_allocation_function): Tuplify.
3487         (find_sites_in_func): Ditto.
3488         (record_all_accesses_in_func): Ditto.
3489         (transform_access_sites): Ditto.
3490         (transform_allocation_sites): Ditto.
3491         (matrix_reorg): Re-enable.
3492         (gate_matrix_reorg): Re-enable.
3493
3494 2008-08-01  Jakub Jelinek  <jakub@redhat.com>
3495
3496         * dwarf2out.c (compute_barrier_args_size): Set barrier_args_size
3497         for labels for which it hasn't been set yet.  If it has been set,
3498         stop walking insns and continue with next worklist item.
3499         (dwarf2out_stack_adjust): Don't call compute_barrier_args_size
3500         if the only BARRIER is at the very end of a function.
3501
3502 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
3503
3504         * cfgexpand.c (expand_stack_alignment): Assert that
3505         stack_realign_drap and drap_rtx must match.
3506
3507         * function.c (instantiate_new_reg): If DRAP is used to realign
3508         stack, replace virtual_incoming_args_rtx with internal arg
3509         pointer.
3510
3511 2008-08-01  Richard Guenther  <rguenther@suse.de>
3512
3513         * tree-ssa-pre.c (fini_pre): Take in_fre parameter.  Free
3514         loop information only if we initialized it.
3515         (execute_pre): Call fini_pre with in_fre.
3516         * tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump
3517         if we do not unroll because we hit max-completely-peeled-insns.
3518         Use our estimation for consistency, do allow shrinking.
3519
3520 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
3521
3522         * config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY
3523         with MIN_STACK_BOUNDARY.
3524         (ix86_update_stack_boundary): Likewise.
3525         (ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of
3526         STACK_BOUNDARY.
3527
3528         * config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ...
3529         (MIN_STACK_BOUNDARY): This.
3530
3531 2008-08-01  Richard Guenther  <rguenther@suse.de>
3532
3533         PR middle-end/36997
3534         * gimplify.c (gimplify_call_expr): Set error_mark_node on GS_ERROR.
3535
3536 2008-08-01  Richard Guenther  <rguenther@suse.de>
3537
3538         PR tree-optimization/36988
3539         * tree-ssa-ccp.c (ccp_fold): Conversions of constants only
3540         do not matter if that doesn't change volatile qualification.
3541
3542 2008-08-01  Paolo Bonzini  <bonzini@gnu.org>
3543
3544         * configure.ac: Do not generate libada-mk.  Do not subst
3545         host_cc_for_libada.
3546         * libada-mk.in: Remove.
3547         * Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars.
3548         * configure: Regenerate.
3549
3550 2008-08-01  Basile Starynkevitch  <basile@starynkevitch.net>
3551
3552         * tree-pass.h: Added comment about not dumping passes with name
3553         starting with star in struct opt_pass.
3554         * passes.c (register_dump_files_1): Don't do dump for a pass with
3555         name starting with star.
3556         * doc/passes.texi (Pass manager): Mention pass names and special
3557         meaning of star prefix to avoid dump.
3558
3559 2008-07-31  Adam Nemet  <anemet@caviumnetworks.com>
3560
3561         * config.gcc (mipsisa64r2*-*-linux*): New configuration.  Set ISA
3562         to MIPS64r2.
3563         * config/mips/mips.h (GENERATE_MIPS16E): Update comment.
3564         (ISA_MIPS64R2): New macro.
3565         (TARGET_CPU_CPP_BUILTINS, MULTILIB_ISA_DEFAULT): Handle it.
3566         (ISA_HAS_64BIT_REGS, ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE,
3567         ISA_HAS_8CC, ISA_HAS_FP4, ISA_HAS_PAIRED_SINGLE,
3568         ISA_HAS_MADD_MSUB, ISA_HAS_NMADD4_NMSUB4, ISA_HAS_CLZ_CLO,
3569         ISA_HAS_ROR, ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX, ISA_HAS_SEB_SEH,
3570         ISA_HAS_EXT_INS, ISA_HAS_MXHC1, ISA_HAS_HILO_INTERLOCKS,
3571         ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Return true for ISA_MIPS64R2.
3572         (MIPS_ISA_LEVEL_SPEC, ASM_SPEC, LINK_SPEC): Handle -mips64r2.
3573         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF):
3574         Move up to keep list alphabetically sorted.
3575         (TUNE_20KC, TUNE_24K, TUNE_74K, TUNE_LOONGSON_2EF): Likewise.
3576         * config/mips/mips.c (mips_cpu_info_table): Add default MIPS64r2
3577         processor.
3578         * doc/invoke.texi (MIPS Options): Add -mips64r2.
3579         (-march=@var{arch}): Add mips64r2.
3580
3581 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
3582
3583         * config/i386/darwin.h (MAIN_STACK_BOUNDARY): Define to 128.
3584
3585 2008-07-31  Steve Ellcey  <sje@cup.hp.com>
3586
3587         * expr.c (expand_assignment): Check for complete type.
3588
3589 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
3590
3591         PR debug/36977
3592         * cfgexpand.c (expand_stack_alignment): Set stack_realign_tried.
3593
3594         * dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried
3595         for stack alignment.
3596
3597         * function.h (rtl_data): Add stack_realign_tried.  Update comments.
3598
3599 2008-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
3600
3601         * config/sh/sh.c (sh_canonical_va_list_type): Remove.
3602         (TARGET_CANONICAL_VA_LIST_TYPE): Remove.
3603
3604 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
3605
3606         PR rtl-optimization/36419
3607         * dwarf2out.c (barrier_args_size): New variable.
3608         (compute_barrier_args_size, compute_barrier_args_size_1): New
3609         functions.
3610         (dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size
3611         if not called yet in the current function, use barrier_args_size
3612         array to find the new args_size value.
3613         (dwarf2out_frame_debug): Free and clear barrier_args_size.
3614
3615 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
3616
3617         PR debug/36980
3618         * dwarf2out.c (dwarf2out_frame_debug_expr): Move rule 17 before
3619         rule 19.
3620
3621 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
3622
3623         PR debug/36976
3624         * dwarf2out.c (dwarf2out_args_size_adjust): New.
3625         (dwarf2out_stack_adjust): Use it.
3626         (dwarf2out_frame_debug_expr): Likewise.
3627
3628 2008-07-31  Richard Guenther  <rguenther@suse.de>
3629
3630         PR tree-optimization/36978
3631         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Do not fold
3632         the generated condition.
3633
3634 2008-07-31  Richard Guenther  <rguenther@suse.de>
3635
3636         * passes.c (init_optimization_passes): Always call
3637         pass_early_warn_uninitialized.
3638         * opts.c (decode_options): Do not warn about -Wuninitialized at -O0.
3639         * doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0.
3640         * doc/passes.texi (Warn for uninitialized variables): Adjust.
3641
3642 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
3643
3644         PR c/36970
3645         * builtins.c (maybe_emit_free_warning): New function.
3646         (expand_builtin): Process BUILT_IN_FREE even at -O0.  Call
3647         maybe_emit_free_warning for BUILT_IN_FREE.
3648
3649         PR debug/36278
3650         * dwarf2out.c (get_context_die): New function.
3651         (force_decl_die, force_type_die): Use it.
3652         (dwarf2out_imported_module_or_decl): Likewise.  If base_type_die
3653         returns NULL, force generation of DW_TAG_typedef and put that into
3654         DW_AT_import.
3655
3656         PR preprocessor/36649
3657         * c-pch.c (c_common_read_pch): Save and restore
3658         line_table->trace_includes across PCH restore.
3659
3660 2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>
3661
3662         PR ada/36554
3663         * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.
3664
3665 2008-07-30  Rafael Avila de Espindola  <espindola@google.com>
3666
3667         PR 36974
3668         * final.c (call_from_call_insn): Handle COND_EXEC.
3669
3670 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
3671
3672         * builtins.c (std_gimplify_va_arg_expr): Replace
3673         PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT.
3674         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
3675
3676 2008-07-30  Joey Ye  <joey.ye@intel.com>
3677             H.J. Lu  <hongjiu.lu@intel.com>
3678
3679         * builtins.c (expand_builtin_setjmp_receiver): Replace
3680         virtual_incoming_args_rtx with crtl->args.internal_arg_pointer.
3681         (expand_builtin_apply_args_1): Likewise.
3682         (expand_builtin_longjmp): Need DRAP for stack alignment.
3683         (expand_builtin_apply): Likewise.
3684
3685         * caller-save.c (setup_save_areas): Call assign_stack_local_1
3686         instead of assign_stack_local to allow alignment reduction.
3687
3688         * calls.c (emit_call_1): Need DRAP for stack alignment if
3689         return pops.
3690         (expand_call): Replace virtual_incoming_args_rtx with
3691         crtl->args.internal_arg_pointer.
3692         * stmt.c (expand_nl_goto_receiver): Likewise.
3693
3694         * cfgexpand.c (get_decl_align_unit): Estimate stack variable
3695         alignment and store to stack_alignment_estimated and
3696         max_used_stack_slot_alignment.
3697         (expand_one_var): Likewise.
3698         (expand_stack_alignment): New function.
3699         (tree_expand_cfg): Initialize max_used_stack_slot_alignment
3700         and stack_alignment_estimated fields in rtl_data.  Call
3701         expand_stack_alignment at end.
3702
3703         * defaults.h (INCOMING_STACK_BOUNDARY): New.
3704         (MAX_STACK_ALIGNMENT): Likewise.
3705         (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise.
3706         (SUPPORTS_STACK_ALIGNMENT): Likewise.
3707
3708         * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for
3709         stack alignment when generating virtual registers.
3710
3711         * function.c (assign_stack_local): Renamed to ...
3712         (assign_stack_local_1): This.  Add a parameter to indicate
3713         if it is OK to reduce alignment.
3714         (assign_stack_local): Use it.
3715         (instantiate_new_reg): Instantiate virtual incoming args rtx
3716         to vDRAP if stack realignment and DRAP is needed.
3717         (assign_parms): Collect parameter/return type alignment and
3718         contribute to stack_alignment_estimated.
3719         (locate_and_pad_parm): Likewise.
3720         (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx
3721         with crtl->args.internal_arg_pointer.
3722
3723         * function.h (rtl_data): Add new field drap_reg,
3724         max_used_stack_slot_alignment, stack_alignment_estimated,
3725         stack_realign_needed, need_drap, stack_realign_processed and
3726         stack_realign_finalized.
3727         (stack_realign_fp): New macro.
3728         (stack_realign_drap): Likewise.
3729
3730         * global.c (compute_regsets): Frame pointer is needed when
3731         stack is realigned.  Can eliminate frame pointer when stack is
3732         realigned and dynamic realigned argument pointer isn't used.
3733
3734         * reload1.c (update_eliminables):  Frame pointer is needed
3735         when stack is realigned.
3736         (init_elim_table): Can eliminate frame pointer when stack is
3737         realigned and dynamic realigned argument pointer isn't used.
3738
3739         * rtl.h (assign_stack_local_1): Declare new funtion.
3740
3741         * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New.
3742         (TARGET_GET_DRAP_RTX): Likewise.
3743         (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and
3744         TARGET_GET_DRAP_RTX.
3745
3746         * target.h (gcc_target): Add update_stack_boundary and get_drap_rtx.
3747
3748         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
3749         STACK_BOUNDARY with MAX_STACK_ALIGNMENT.
3750
3751 2008-07-30  Xuepeng Guo  <xuepeng.guo@intel.com>
3752             H.J. Lu  <hongjiu.lu@intel.com>
3753
3754         * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg,
3755         vdrap_reg, stack_realign and drap_reg_saved.
3756         (add_cfi): Don't allow redefining CFA when DRAP is used.
3757         (reg_save): Handle stack alignment.
3758         (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack
3759         alignment.  Don't generate DWARF information for (set fp sp)
3760         when DRAP is used.
3761         (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg
3762         to INVALID_REGNUM.
3763         (int_loc_descriptor): Move prototype forward.  Also define if
3764         DWARF2_UNWIND_INFO is true.
3765         (output_cfa_loc): Handle DW_CFA_expression.
3766         (build_cfa_aligned_loc): New.
3767         (based_loc_descr): Update assert for stack realign.  For local
3768         variables, use sp+offset when stack is aligned without drap and
3769         fp+offset when stack is aligned with drap.  For arguments, use
3770         cfa+offset when drap is used to align stack.
3771
3772 2008-07-30  Joey Ye  <joey.ye@intel.com>
3773             H.J. Lu  <hongjiu.lu@intel.com>
3774
3775         * config/i386/i386.c (ix86_force_align_arg_pointer_string):
3776         Break long line.
3777         (ix86_gen_andsp): New.
3778         (ix86_user_incoming_stack_boundary): Likewise.
3779         (ix86_default_incoming_stack_boundary): Likewise.
3780         (ix86_incoming_stack_boundary): Likewise.
3781         (ix86_can_eliminate): Likewise.
3782         (find_drap_reg): Likewise.
3783         (ix86_update_stack_boundary): Likewise.
3784         (ix86_get_drap_rtx): Likewise.
3785         (ix86_finalize_stack_realign_flags): Likewise.
3786         (TARGET_UPDATE_STACK_BOUNDARY): Likewise.
3787         (TARGET_GET_DRAP_RTX): Likewise.
3788         (override_options): Overide option value for new options.
3789         (ix86_function_ok_for_sibcall): Remove check for
3790         force_align_arg_pointer.
3791         (ix86_handle_cconv_attribute): Likewise.
3792         (ix86_function_regparm): Likewise.
3793         (setup_incoming_varargs_64): Don't set stack_alignment_needed here.
3794         (ix86_va_start): Replace virtual_incoming_args_rtx with
3795         crtl->args.internal_arg_pointer.
3796         (ix86_select_alt_pic_regnum): Check DRAP register.
3797         (ix86_save_reg): Replace force_align_arg_pointer with drap_reg.
3798         (ix86_compute_frame_layout): Compute frame layout wrt stack
3799         realignment.
3800         (ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx.
3801         (ix86_expand_prologue): Decide if stack realignment is needed
3802         and generate prologue code accordingly.
3803         (ix86_expand_epilogue): Generate epilogue code wrt stack
3804         realignment is really needed or not.
3805         
3806         * config/i386/i386.h (MAIN_STACK_BOUNDARY): New.
3807         (ABI_STACK_BOUNDARY): Likewise.
3808         (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise.
3809         (STACK_REALIGN_DEFAULT): Likewise.
3810         (INCOMING_STACK_BOUNDARY): Likewise.
3811         (MAX_STACK_ALIGNMENT): Likewise.
3812         (ix86_incoming_stack_boundary): Likewise.
3813         (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed.
3814         (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG.
3815         (CAN_ELIMINATE): Defined with ix86_can_eliminate.
3816         (machine_function): Remove force_align_arg_pointer.
3817
3818         * config/i386/i386.md (BX_REG): New.
3819         (R13_REG): Likewise.
3820
3821         * config/i386/i386.opt (mforce_drap): New.
3822         (mincoming-stack-boundary): Likewise.
3823         (mstackrealign): Add Init(-1).
3824
3825         * config/i386/i386-protos.h (ix86_can_eliminate): New
3826
3827 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
3828
3829         * doc/extend.texi: Update force_align_arg_pointer.
3830
3831         * doc/invoke.texi: Document -mincoming-stack-boundary.  Update
3832         -mstackrealign.
3833
3834         * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro.
3835         (INCOMING_STACK_BOUNDARY): Likewise.
3836         (TARGET_UPDATE_STACK_BOUNDARY): New target hook.
3837         (TARGET_GET_DRAP_RTX): Likewise.
3838
3839 2008-07-30  Andreas Schwab  <schwab@suse.de>
3840
3841         PR rtl-optimization/36929
3842         * dse.c (replace_inc_dec): Use emit_insn_before instead of
3843         add_insn_before and fix argument order.
3844         (replace_inc_dec_mem): Handle NULL rtx.
3845
3846 2008-07-30  Andrew Jenner  <andrew@codesourcery.com>
3847
3848         * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
3849         function.
3850         (arm_compute_initial_elimination_offset): Use it.
3851         (arm_compute_save_reg_mask): Include static chain save slot when
3852         calculating alignment.
3853         (arm_get_frame_offsets): Ditto.
3854         (thumb1_compute_save_reg_mask): Ensure we have a low register saved
3855         that we can use to decrement the stack when the stack decrement
3856         could be too big for an immediate value in a single insn.
3857         (thumb1_expand_prologue): Avoid using r12 for stack decrement.
3858
3859 2008-07-30  Richard Guenther  <rguenther@suse.de>
3860
3861         PR tree-optimization/36967
3862         * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p.
3863         Release defs of statements we remove.
3864
3865 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
3866
3867         * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
3868         instead of NULL_RTVEC.
3869
3870 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
3871
3872         PR target/35866
3873
3874         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
3875         vector modes.
3876
3877 2008-07-30  Rafael Avila de Espindola  <espindola@google.com>
3878
3879         * final.c (call_from_call_insn): New.
3880         (final_scan_insn): Call assemble_external on FUNCTION_DECLs.
3881
3882 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
3883
3884         * configure.ac: Substitute ADA_CFLAGS.
3885         * configure: Regenerate.
3886         * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files.
3887         * Makefile.in: Remove mention of X_* variables.
3888         * config/pa/x-ada-hpux10: Remove.
3889         * config/pa/x-ada: Remove.
3890
3891         * doc/fragments.texi: Update.
3892
3893 2008-07-30  Olivier Hainque  <hainque@adacore.com>
3894
3895         * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
3896         * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
3897         __dso_handle explicitly here.
3898
3899 2008-07-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3900
3901         PR 34389
3902         * c-typeck.c (build_binary_op): Encapsulate code into...
3903         * c-common.c (shorten_binary_op): ...this new function.
3904         (conversion_warning): Use the new function. Handle non-negative
3905         constant in bitwise-and.
3906         * c-common.h (shorten_binary_op): Declare.
3907
3908 2008-07-30  Olivier Hainque  <hainque@adacore.com>
3909
3910         * scan.c (make_sstring_space): Add explicit conversions of
3911         allocator's return value.
3912         * fix-header.c (recognized_function): Likewise.
3913
3914 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3915
3916         * doc/cpp.texi: Update to GFDL 1.2.
3917         * doc/gcc.texi: Do not list GPL as Invariant Section.
3918         * doc/gccint.texi: Likewise.  Update copyright years.
3919         * doc/install.texi: Update copyright years.
3920
3921 2008-07-30  Alan Modra  <amodra@bigpond.net.au>
3922
3923         PR target/36955
3924         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
3925         a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.
3926
3927 2008-07-29  Jan Hubicka  <jh@suse.cz>
3928
3929         * c-decl.c (merge_decls): Do not handle DECL_INLINE.
3930         (grokdeclarator): Likewise.
3931         * langhooks.c (lhd_warn_unused_global_decl): Use
3932         DECL_DECLARED_INLINE_P.
3933         * print-tree.c (print_node): Remove DECL_INLINE check.
3934
3935 2008-07-29  Richard Guenther  <rguenther@suse.de>
3936
3937         PR tree-optimization/36945
3938         * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
3939         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
3940         Record invariant addresses un-decomposed.
3941         (copy_reference_ops_from_call): Record reference call
3942         arguments properly.  Simplify.
3943         * tree-ssa-pre.c (create_component_ref_by_pieces_1): New
3944         helper split out from ...
3945         (create_component_ref_by_pieces): ... here.  Simplify.
3946         Prepare for recursive invocation for call arguments.
3947         (create_expression_by_pieces): Adjust call to
3948         create_component_ref_by_pieces.
3949         (compute_avail): Process operand 2 of reference ops.
3950
3951 2008-07-29  Richard Guenther  <rguenther@suse.de>
3952
3953         * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for OBJ_TYPE_REF.
3954
3955 2008-07-29  Jakub Jelinek  <jakub@redhat.com>
3956
3957         * c-format.c (check_format_types): Revert unwanted checkin.
3958
3959 2008-07-29  Jan Hubicka  <jh@suse.cz>
3960
3961         * flags.h (flag_really_no_inline): Remove.
3962         * cgraph.c (cgraph_function_possibly_inlined_p): Simplify.
3963         * toplev.c (flag_really_no_inline): Remove.
3964         * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline.
3965         * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline.
3966         (cgraph_decide_inlining_incrementally): Likewise.
3967         (compute_inline_parameters): Likewise.
3968         * opts.c (decode_options): Simplify.
3969         * c-opts.c (c_common_post_options): Do not set flag_no_inline.
3970         * common.opt (finline): Initialize to 1.
3971         * tree-inline.c (inlinable_function_p): Check flag_no_inline.
3972
3973 2008-07-29  Jan Hubicka  <jh@suse.cz>
3974
3975         * predict.c (always_optimize_for_size_p): New function.
3976         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
3977         optimize_edge_for_size_p, optimize_edge_for_speed_p,
3978         optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
3979         functions.
3980         (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
3981         * function.c (prepare_function_start): Set default profile.
3982         * function.h (rtl_data): Add maybe_hot_insn_p.
3983         * cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
3984         (construct_exit_block): Likewise.
3985         (tree_expand_cfg): Likewise.
3986         * basic-block.h
3987         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
3988         optimize_edge_for_size_p, optimize_edge_for_speed_p,
3989         optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
3990         (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
3991         Declare.
3992
3993 2008-07-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3994
3995         PR 34985
3996         * c-decl.c (merge_decls): Merge USED flags.
3997
3998 2008-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
3999
4000         * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
4001         valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit,
4002         next_stack, lab_false and lab_over trees.
4003
4004 2008-07-28  Richard Guenther  <rguenther@suse.de>
4005
4006         PR tree-optimization/36957
4007         * tree-flow.h (tree_ssa_useless_type_conversion): Remove.
4008         (useless_type_conversion_p): Remove.
4009         (types_compatible_p): Remove.
4010         * gimple.h (tree_ssa_useless_type_conversion): Declare.
4011         (useless_type_conversion_p): Declare.
4012         (types_compatible_p): Declare.
4013         (gimple_expr_type): Return the base type only if it is
4014         trivially convertible to the subtype.
4015
4016 2008-07-28  Andreas Tobler  <a.tobler@schweiz.org>
4017
4018         * configure.ac: Use the m4_do macro to concatenate the warnings into
4019         one string in ACX_PROG_CC_WARNING_OPTS,
4020         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and ACX_PROG_CC_WARNINGS_ARE_ERRORS.
4021         * configure: Regenerate.
4022
4023 2008-07-28  Richard Guenther  <rguenther@suse.de>
4024
4025         * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code.
4026         (insert_fake_stores): Remove.
4027         (realify_fake_stores): Likewise.
4028         (execute_pre): Remove dead code.
4029         * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary case.
4030         (find_func_aliases): Deal with it here instead.
4031         Re-enable gcc_unreachable call.
4032
4033 2008-07-28  Richard Guenther  <rguenther@suse.de>
4034
4035         Merge from gimple-tuples-branch.
4036
4037         * ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
4038         * gimple.def: New file.
4039         * gsstruct.def: Likewise.
4040         * gimple-iterator.c: Likewise.
4041         * gimple-pretty-print.c: Likewise.
4042         * tree-gimple.c: Removed.  Merged into ...
4043         * gimple.c: ... here.  New file.
4044         * tree-gimple.h: Removed.  Merged into ...
4045         * gimple.h: ... here.  New file.
4046
4047         * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
4048         * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
4049         --enable-checking=gimple flag.
4050         * config.in: Likewise.
4051         * configure: Regenerated.
4052
4053         * tree-ssa-operands.h: Tuplified.
4054         * tree-vrp.c: Likewise.
4055         * tree-loop-linear.c: Likewise.
4056         * tree-into-ssa.c: Likewise.
4057         * tree-ssa-loop-im.c: Likewise.
4058         * tree-dump.c: Likewise.
4059         * tree-complex.c: Likewise.
4060         * cgraphbuild.c: Likewise.
4061         * tree-ssa-threadupdate.c: Likewise.
4062         * tree-ssa-loop-niter.c: Likewise.
4063         * tree-pretty-print.c: Likewise.
4064         * tracer.c: Likewise.
4065         * gengtype.c: Likewise.
4066         * tree-loop-distribution.c: Likewise.
4067         * tree-ssa-loop-unswitch.c: Likewise.
4068         * cgraph.c: Likewise.
4069         * cgraph.h: Likewise.
4070         * tree-ssa-loop-manip.c: Likewise.
4071         * value-prof.c: Likewise.
4072         * tree-ssa-loop-ch.c: Likewise.
4073         * tree-tailcall.c: Likewise.
4074         * value-prof.h: Likewise.
4075         * tree.c: Likewise.
4076         * tree.h: Likewise.
4077         * tree-pass.h: Likewise.
4078         * ipa-cp.c: Likewise.
4079         * tree-scalar-evolution.c: Likewise.
4080         * tree-scalar-evolution.h: Likewise.
4081         * target.h: Likewise.
4082         * lambda-mat.c: Likewise.
4083         * tree-phinodes.c: Likewise.
4084         * diagnostic.h: Likewise.
4085         * builtins.c: Likewise.
4086         * tree-ssa-alias-warnings.c: Likewise.
4087         * cfghooks.c: Likewise.
4088         * fold-const.c: Likewise.
4089         * cfghooks.h: Likewise.
4090         * omp-low.c: Likewise.
4091         * tree-ssa-dse.c: Likewise.
4092         * ipa-reference.c: Likewise.
4093         * tree-ssa-uncprop.c: Likewise.
4094         * toplev.c: Likewise.
4095         * tree-gimple.c: Likewise.
4096         * tree-gimple.h: Likewise.
4097         * tree-chrec.c: Likewise.
4098         * tree-chrec.h: Likewise.
4099         * tree-ssa-sccvn.c: Likewise.
4100         * tree-ssa-sccvn.h: Likewise.
4101         * cgraphunit.c: Likewise.
4102         * tree-ssa-copyrename.c: Likewise.
4103         * tree-ssa-ccp.c: Likewise.
4104         * tree-ssa-loop-ivopts.c: Likewise.
4105         * tree-nomudflap.c: Likewise.
4106         * tree-call-cdce.c: Likewise.
4107         * ipa-pure-const.c: Likewise.
4108         * c-format.c: Likewise.
4109         * tree-stdarg.c: Likewise.
4110         * tree-ssa-math-opts.c: Likewise.
4111         * tree-ssa-dom.c: Likewise.
4112         * tree-nrv.c: Likewise.
4113         * tree-ssa-propagate.c: Likewise.
4114         * ipa-utils.c: Likewise.
4115         * tree-ssa-propagate.h: Likewise.
4116         * tree-ssa-alias.c: Likewise.
4117         * gimple-low.c: Likewise.
4118         * tree-ssa-sink.c: Likewise.
4119         * ipa-inline.c: Likewise.
4120         * c-semantics.c: Likewise.
4121         * dwarf2out.c: Likewise.
4122         * expr.c: Likewise.
4123         * tree-ssa-loop-ivcanon.c: Likewise.
4124         * predict.c: Likewise.
4125         * tree-ssa-loop.c: Likewise.
4126         * tree-parloops.c: Likewise.
4127         * tree-ssa-address.c: Likewise.
4128         * tree-ssa-ifcombine.c: Likewise.
4129         * matrix-reorg.c: Likewise.
4130         * c-decl.c: Likewise.
4131         * tree-eh.c: Likewise.
4132         * c-pretty-print.c: Likewise.
4133         * lambda-trans.c: Likewise.
4134         * function.c: Likewise.
4135         * langhooks.c: Likewise.
4136         * ebitmap.h: Likewise.
4137         * tree-vectorizer.c: Likewise.
4138         * function.h: Likewise.
4139         * langhooks.h: Likewise.
4140         * tree-vectorizer.h: Likewise.
4141         * ipa-type-escape.c: Likewise.
4142         * ipa-type-escape.h: Likewise.
4143         * domwalk.c: Likewise.
4144         * tree-if-conv.c: Likewise.
4145         * profile.c: Likewise.
4146         * domwalk.h: Likewise.
4147         * tree-data-ref.c: Likewise.
4148         * tree-data-ref.h: Likewise.
4149         * tree-flow-inline.h: Likewise.
4150         * tree-affine.c: Likewise.
4151         * tree-vect-analyze.c: Likewise.
4152         * c-typeck.c: Likewise.
4153         * gimplify.c: Likewise.
4154         * coretypes.h: Likewise.
4155         * tree-ssa-phiopt.c: Likewise.
4156         * calls.c: Likewise.
4157         * tree-ssa-coalesce.c: Likewise.
4158         * tree.def: Likewise.
4159         * tree-dfa.c: Likewise.
4160         * except.c: Likewise.
4161         * except.h: Likewise.
4162         * cfgexpand.c: Likewise.
4163         * tree-cfgcleanup.c: Likewise.
4164         * tree-ssa-pre.c: Likewise.
4165         * tree-ssa-live.c: Likewise.
4166         * tree-sra.c: Likewise.
4167         * tree-ssa-live.h: Likewise.
4168         * tree-predcom.c: Likewise.
4169         * lambda.h: Likewise.
4170         * tree-mudflap.c: Likewise.
4171         * ipa-prop.c: Likewise.
4172         * print-tree.c: Likewise.
4173         * tree-ssa-copy.c: Likewise.
4174         * ipa-prop.h: Likewise.
4175         * tree-ssa-forwprop.c: Likewise.
4176         * ggc-page.c: Likewise.
4177         * c-omp.c: Likewise.
4178         * tree-ssa-dce.c: Likewise.
4179         * tree-vect-patterns.c: Likewise.
4180         * tree-ssa-ter.c: Likewise.
4181         * tree-nested.c: Likewise.
4182         * tree-ssa.c: Likewise.
4183         * lambda-code.c: Likewise.
4184         * tree-ssa-loop-prefetch.c: Likewise.
4185         * tree-inline.c: Likewise.
4186         * tree-inline.h: Likewise.
4187         * tree-iterator.c: Likewise.
4188         * tree-optimize.c: Likewise.
4189         * tree-ssa-phiprop.c: Likewise.
4190         * tree-vect-transform.c: Likewise.
4191         * tree-object-size.c: Likewise.
4192         * tree-outof-ssa.c: Likewise.
4193         * cfgloop.c: Likewise.
4194         * system.h: Likewise.
4195         * tree-profile.c: Likewise.
4196         * cfgloop.h: Likewise.
4197         * c-gimplify.c: Likewise.
4198         * c-common.c: Likewise.
4199         * tree-vect-generic.c: Likewise.
4200         * tree-flow.h: Likewise.
4201         * c-common.h: Likewise.
4202         * basic-block.h: Likewise.
4203         * tree-ssa-structalias.c: Likewise.
4204         * tree-switch-conversion.c: Likewise.
4205         * tree-ssa-structalias.h: Likewise.
4206         * tree-cfg.c: Likewise.
4207         * passes.c: Likewise.
4208         * ipa-struct-reorg.c: Likewise.
4209         * ipa-struct-reorg.h: Likewise.
4210         * tree-ssa-reassoc.c: Likewise.
4211         * cfgrtl.c: Likewise.
4212         * varpool.c: Likewise.
4213         * stmt.c: Likewise.
4214         * tree-ssanames.c: Likewise.
4215         * tree-ssa-threadedge.c: Likewise.
4216         * langhooks-def.h: Likewise.
4217         * tree-ssa-operands.c: Likewise.
4218         * config/alpha/alpha.c: Likewise.
4219         * config/frv/frv.c: Likewise.
4220         * config/s390/s390.c: Likewise.
4221         * config/m32c/m32c.c: Likewise.
4222         * config/m32c/m32c-protos.h: Likewise.
4223         * config/spu/spu.c: Likewise.
4224         * config/sparc/sparc.c: Likewise.
4225         * config/i386/i386.c: Likewise.
4226         * config/sh/sh.c: Likewise.
4227         * config/xtensa/xtensa.c: Likewise.
4228         * config/stormy16/stormy16.c: Likewise.
4229         * config/ia64/ia64.c: Likewise.
4230         * config/rs6000/rs6000.c: Likewise.
4231         * config/pa/pa.c: Likewise.
4232         * config/mips/mips.c: Likewise.
4233
4234 2008-07-28  Simon Baldwin  <simonb@google.com>
4235
4236         * c-pragma.c (handle_pragma_message): New function.
4237         (init_pragma): Register handle_pragma_message.
4238         * doc/extend.texi (Diagnostic Pragmas): Added #pragma message
4239         documentation.
4240
4241 2008-07-27  Victor Kaplansky  <victork@il.ibm.com>
4242
4243         PR tree-optimization/35252
4244         * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
4245         REALPART_EXPR to be considered as same load operation.
4246
4247 2008-07-27  Eric Botcazou  <ebotcazou@adacore.com>
4248
4249         PR tree-optimization/36830
4250         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
4251         (expressions_equal_p): Return false if only one operand is null.
4252
4253 2008-07-26  Gerald Pfeifer  <gerald@pfeifer.com>
4254
4255         * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
4256         version requirements.
4257
4258 2008-07-26  Olivier Hainque  <hainque@adacore.com>
4259
4260         * collect2.c (symkind): New enum.  Symbol kinds we care about.
4261         (is_ctor_dtor): Return symkind instead of int.  Adjust prototype,
4262         code and head comment accordingly.
4263         (scan_prog_file): Use symkind names instead of bare integers.
4264
4265 2008-07-25  Jan Hubicka  <jh@suse.cz>
4266
4267         * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on
4268         DECL_INLINE.
4269         * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
4270         (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
4271         * dojump.c (clear_pending_stack_adjust): Likewise.
4272         * print-tree.c (print_node): Ignore DECL_INLINE.
4273         * tree-inline.c (inlinable_function_p): Likewise.
4274
4275 2008-07-25  Michael Meissner  <gnu@the-meissners.org>
4276
4277         * doc/extend.texi (hot attribute): Document that the hot attribute
4278         turns on -O3 for some ports.
4279         (cold attribute): Document that the cold attribute turns on -Os
4280         for some ports
4281
4282         * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
4283         reflect function specific option support.
4284
4285         * target.h (struct target_option_hooks): Add fields to say whether
4286         the cold attribute implies -Os and the hot attribute implies -O3.
4287
4288         * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
4289         By default, do not turn on -Os for cold functions.
4290         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
4291         not turn on -O3 for hot functions.
4292
4293         * c-common.c (handle_hot_attribute): Use target hook to determine
4294         if hot functions should enable -O3.
4295         (handle_cold_attribute): Use target hook to determine if cold
4296         functions should enable -Os.
4297
4298         * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
4299         (override_options): Move disable scheduling to
4300         optimization_options.
4301         (optimization_options): Disable scheduling here, not
4302         override_options.
4303         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
4304         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
4305
4306         * config/ia64/ia64.c (ia64_override_options): Move setting
4307         scheduling flags to ia64_optimization_options.
4308         (ia64_optimization_options): Disable scheduling options here, and
4309         not in ia64_override_options.
4310         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
4311         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
4312
4313 2008-07-25  H.J. Lu  <hongjiu.lu@intel.com>
4314
4315         PR target/36936
4316         * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
4317
4318 2008-07-25  Martin Jambor  <mjambor@suse.cz>
4319
4320         PR tree-optimization/36926
4321         * ipa-prop.c (ipa_analyze_call_uses): Call
4322         ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
4323
4324 2008-07-25  Joseph Myers  <joseph@codesourcery.com>
4325
4326         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
4327         movv2si_internal): Add mem = reg alternative.
4328
4329 2008-07-25  Andreas Tobler  <a.tobler@schweiz.org>
4330
4331         PR bootstrap/36918
4332         * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
4333         DEFAULT_PCC_STRUCT_RETURN to 127.
4334
4335 2008-07-24  Jan Hubicka  <jh@suse.cz>
4336
4337         * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
4338         (build_cgraph_edges): Likewise.
4339         * cgraph.c (cgraph_node): Do not update assembler hash.
4340         (cgraph_remove_node): Drop non-unit-at-a-time code.
4341         * tree-pass.h (pass_O0_always_inline): Remove.
4342         * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
4343         * toplev.c (process_options): Flag unit-at-a-time does not imply
4344         no section anchors.
4345         * cgraphunit.c: Update comments.
4346         (decide_is_function_needed): Drop non-unit-at-a-time mode.
4347         (cgraph_assemble_pending_functions): Remove.
4348         (cgraph_reset_node): Drop non-unit-at-a-time code.
4349         (cgraph_finalize_function): Likewise.
4350         (cgraph_analyze_function): Likewise.
4351         (cgraph_finalize_compilation_unit): Likewise.
4352         (cgraph_expand_function): Likewise.
4353         (cgraph_optimize): Likesise.
4354         (save_inline_function_body): Likewise.
4355         * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
4356         * tree-ssa-alias.c (maybe_be_aliased): Likewise.
4357         * ipa-inline.c: Update comments.
4358         (enum inlining_mode): remove INLINE_SPEED.
4359         (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
4360         (cgraph_mark_inline_edge): Likewise.
4361         (try_inline): Likewise.
4362         (cgraph_decide_inlining_incrementally): Likewise.
4363         (cgraph_gate_inlining): Remove.
4364         (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
4365         (cgraph_gate_early_inlining): Likewise.
4366         (gate_inline_passes): Remove.
4367         (pass_inline_parameters, pass_ipa_inline): Remove gates.
4368         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
4369         pass_O0_always_inline): Remove.
4370         * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
4371         * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
4372         * opts.c (no_unit_at_a_time_default): Remove.
4373         (decode_options): Remove flag_unit_at_a_time reset and warning.
4374         * opts.h (no_unit_at_a_time_default): Remove.
4375         * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
4376         early in GNU dialect.
4377         (merge_decls): Update comment; drop unit-at-a-time check.
4378         (finish_decl): Likewise.
4379         (grok_declaration): Remove flag_inline_trees code.
4380         (finish_functions): Return on function returning non-void on all
4381         statics.
4382         * ipa-tye-escape.c (gate_type_escape_vars): Remove.
4383         * cfgexpand.c (expand_one_static_var): Remove.
4384         (expand_one_var): Remove expand_one_static_var call.
4385         (expand_used_vars_for_block): Remove flag_unit_a_time check.
4386         * c-opts.c (c_common_post_options): Remove flag_inline_trees code
4387         and flag_unit_at_a-time compatibility checks.
4388         * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
4389         * tree-inline.c (flag_inline_trees): Remove.
4390         (inlinable_function_p): Don't check it.
4391         (expand_call_inline): Remove non-unit-at-a-time code.
4392         * tree-inline.h (flag_inline_trees): Remove.
4393         * tree-optimize.c (execute_early_local_optimizations): Remove
4394         unit-at-a-time checks.
4395         (tree_rest_of_compilation): Likewise.
4396         * combine.c (setup_incoming_promotions): Likewise.
4397         * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
4398         * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
4399         * passes.c (pass_inline_parameters): Update comments; remove
4400         O0_alwaysinline pass.
4401         (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
4402         (execute_one_pass): Likewise.
4403         * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
4404         (ix86_function_sseregparm): Likewise.
4405         * arm.c (arm_function_in_section_p): Likewise.
4406         * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
4407         * varpool.c: Update comments.
4408         (decide_is_variable_needed): Remove unit-at-a-time checks.
4409         (varpool_finalize_decl): Likewise.
4410
4411 2008-07-24  Kaz Kojima  <kkojima@gcc.gnu.org>
4412
4413         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
4414         to 2 instead of -1.
4415         (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal to 2.
4416
4417 2008-07-24  Kai Tietz  <kai.tietz@onevision.com>
4418
4419         * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
4420         imp symbol extension.
4421
4422         2008-07-23  Ian Lance Taylor  <iant@google.com>
4423
4424         * tree-vrp.c (infer_value_range): Ignore asm statements when
4425         looking for memory accesses for -fdelete-null-pointer-checks.
4426
4427 2008-07-24  Ben Elliston  <bje@au.ibm.com>
4428
4429         * config/spu/spu-c.c (__vector_keyword): New variable.
4430         (vector_keyword): Likewise.
4431         (spu_categorize_keyword): New function.
4432         (spu_macro_to_expand): Likewise.
4433         (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
4434         compiling an ISO C dialect.
4435
4436 2008-07-24  Ben Elliston  <bje@au.ibm.com>
4437
4438         * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
4439         conventional usage.
4440
4441 2008-07-23  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
4442
4443         * configure: Regenerate.
4444         * configure.ac: Require texinfo 4.7.
4445         * doc/install.texi: Document texinfo 4.7 requirement.
4446
4447 2008-07-23  Martin Jambor  <mjambor@suse.cz>
4448
4449         * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
4450         rather than for DECL_SAVED_TREE.
4451         * ipa-prop.c: Include diagnostic.h.
4452         (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
4453         thoroughly.
4454         (ipa_detect_param_modifications): Function rewritten from scratch.
4455         (ipa_compute_jump_functions): Changed accesses to modification flags.
4456         (ipa_free_node_params_substructures): Update flags destruction.
4457         (ipa_node_duplication_hook): Update flags duplication.
4458         (ipa_print_all_params_modified): Updated flag access.
4459         * ipa-prop.h (struct ipa_param_flags): New structure.
4460         (struct ipa_node_params): New field modification_analysis_done,
4461         modified_flags changed into param_flags.
4462         (ipa_is_ith_param_modified): Changed to use new flags.
4463         * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
4464
4465         * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
4466         ipa-cp.c and split into two functions.
4467         (ipa_print_node_jump_functions): New function.
4468         (compute_scalar_jump_functions): New function.
4469         (type_like_member_ptr_p): New function.
4470         (compute_pass_through_member_ptrs): New function.
4471         (fill_member_ptr_cst_jump_function): New function.
4472         (determine_cst_member_ptr): New function.
4473         (compute_cst_member_ptr_arguments): New function.
4474         (ipa_compute_jump_functions): Complete rewrite.
4475         * ipa-prop.h (enum jump_func_type): Make explicit that we depend
4476         on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
4477         (struct ipa_member_ptr_cst): New structure.
4478         (union jump_func_value): New field member_cst.
4479         * ipa-cp.c (ipcp_lat_is_insertable): New function.
4480         (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
4481         jump function types.
4482         (ipcp_print_all_lattices): Slight fprintf rearrangement.
4483         (ipcp_print_all_structures): Call ipa_print_all_jump_functions
4484         instead of ipcp_print_all_jump_functions.
4485         (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
4486         only for replacable scalars.
4487
4488         * doc/invoke.texi (Optimize options): Add description of
4489         -findirect-inlining.
4490         * common.opt (flag_indirect_inlining): New flag.
4491         * opts.c (decode_options): Set flag_indirect_inlining when
4492         optimize >= 3.
4493
4494         * ipa-inline.c: Include ipa-prop.h.
4495         (inline_indirect_intraprocedural_analysis): New function.
4496         (inline_generate_summary): Allocate parameter and argument info
4497         structures, call inline_indirect_intraprocedural_analysis on each
4498         node when doing indirect inlining and deallocate indirect inlining
4499         data structures in the end.
4500         * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
4501         (free_all_ipa_structures_after_iinln): New function.
4502         (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be
4503         done.
4504         * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
4505
4506         * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
4507         (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
4508         of computing the frequency separately.
4509         (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
4510         of computing the frequency separately.
4511         * ipa-cp.c (ipcp_print_all_structures): Replace a call to
4512         ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
4513         * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
4514         (ipa_get_stmt_member_ptr_load_param): New function.
4515         (ipa_is_ssa_with_stmt_def): New function.
4516         (ipa_note_param_call): New function.
4517         (ipa_analyze_call_uses): New function.
4518         (ipa_analyze_stmt_uses): New function.
4519         (ipa_analyze_params_uses): New function.
4520         (ipa_free_node_params_substructures): Also free the param_calls linked
4521         list.
4522         (ipa_node_duplication_hook): Also duplicate the param_calls linked list.
4523         (ipa_print_node_param_flags): New function.
4524         (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
4525         (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
4526         * ipa-prop.h (struct ipa_param_flags): New field called.
4527         (struct ipa_param_call_note): New structure.
4528         (struct ipa_node_params): New fields param_calls and
4529         uses_analysis_done.
4530         (ipa_is_ith_param_called): New function.
4531         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
4532         ipa_analyze_params_uses and dump parameter flags.
4533
4534         * ipa-inline.c (cgraph_decide_recursive_inlining): Call
4535         ipa_propagate_indirect_call_infos if performing indirect inlining,
4536         pass a new parameter new_edges to it.
4537         (add_new_edges_to_heap): New fucntion.
4538         (cgraph_decide_inlining_of_small_functions): New vector
4539         new_indirect_edges for newly found indirect edges , call
4540         ipa_propagate_indirect_call_infos after inlining.
4541         (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
4542         inlining if performing indirect inlining.  Call
4543         free_all_ipa_structures_after_iinln when doing so too.
4544         (inline_generate_summary): Do not call
4545         free_all_ipa_structures_after_iinln here.
4546         * ipa-prop.c (update_jump_functions_after_inlining): New function.
4547         (print_edge_addition_message): New function.
4548         (update_call_notes_after_inlining): New function.
4549         (propagate_info_to_inlined_callees): New function.
4550         (ipa_propagate_indirect_call_infos): New function.
4551         * ipa-prop.h: Include cgraph.h
4552         (struct ipa_param_call_note): Fields reordered, new field processed.
4553         * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
4554         flag indirect_call.
4555         * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
4556         rediscovered call statements.
4557         * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
4558         (dump_cgraph_node): Dump also the indirect_call flag.
4559         (cgraph_clone_edge): Copy also the indirect_call flag.
4560         * tree-inline.c (copy_bb): Do not check for fndecls from call
4561         expressions, check for edge availability when moving clones.
4562         (get_indirect_callee_fndecl): New function.
4563         (expand_call_inline): If callee declaration is not apprent from
4564         the statement, try calling get_indirect_callee_fndecl.  Do not
4565         issue warnings or call sorry when not inlinings an indirect edge.
4566         * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
4567
4568         * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
4569         bit more frandly to matching.
4570         * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
4571         * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
4572         * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
4573
4574 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
4575
4576         PR 36907
4577         * opth-gen.awk: Suppress function specific features when building
4578         target libraries.
4579         * optc-gen.awk: Ditto.
4580
4581 2008-07-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4582
4583         PR 35058
4584         * diagnostic.c (pedwarn): Add opt parameter.
4585         (pedwarn0): New.
4586         * c-tree.h (pedwarn_init): Add opt parameter.
4587         (pedwarn_c90): Likewise.
4588         (pedwarn_c99): Likewise.
4589         * c-errors.c (pedwarn_c99): Likewise.
4590         (pedwarn_c90): Likewise.
4591         * toplev.h (pedwarn): Update declaration.
4592         (pedwarn0): Declare.
4593         * c-lex.c: All calls to pedwarn changed.
4594         * builtins.c: All calls to pedwarn changed.
4595         * toplev.c: All calls to pedwarn changed.
4596         * c-decl.c: All calls to pedwarn changed.
4597         * c-typeck.c: All calls to pedwarn changed.
4598         * c-common.c: All calls to pedwarn changed.
4599         * c-parser.c: All calls to pedwarn changed.
4600
4601 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
4602             Karthik Kumar  <karthikkumar@gmail.com>
4603
4604         * attribs.c (file scope): Include c-common.h.
4605         (decl_attributes): Add support for #pragma GCC optimize and
4606         #pragma GCC option.
4607
4608         * targhooks.c (default_can_inline_p): New function that is the
4609         default for the TARGET_CAN_INLINE_P target hook.
4610
4611         * targhooks.h (default_can_inline_p): Add declaration.
4612
4613         * tree.c (cl_optimization_node): New static tree for building
4614         OPTIMIZATION_NODE tree.
4615         (cl_target_option_node): New static tree for building
4616         TARGET_OPTION_NODE tree.
4617         (cl_option_hash_table): New hash table for hashing
4618         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
4619         (cl_option_hash_hash): New function to provide the hash value for
4620         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
4621         (cl_option_hash_eq): New function to provide an equality test for
4622         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
4623         (tree_code_size): Add support for OPTIMIZATION_NODE and
4624         TARGET_OPTION_NODE trees.
4625         (tree_code_structure): Add support for OPTIMIZATION_NODE and
4626         TARGET_OPTION_NODE trees.
4627         (build_optimization_node): Build a tree that has all of the
4628         current optimization options.
4629         (build_target_option_node): Build a tree that has the target
4630         options that might be changed on a per function basis.
4631
4632         * tree.h (file scope): Include options.h.
4633         (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
4634         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
4635         (TREE_OPTIMIZATION): Ditto.
4636         (TREE_TARGET_SPECIFIC): Ditto.
4637         (struct tree_function_decl): Add fields for remembering the
4638         current optimization options and target specific options.
4639         (struct tree_optimization_option): New tree variant that remembers
4640         the optimization options.
4641         (struct tree_target_option): New tree variant that remembers the
4642         target specific flags that might change for compiling a particular
4643         function.
4644         (union tree_node): Include tree_optimization_option and
4645         tree_target_option fields.
4646         (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
4647         TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
4648         TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
4649         TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
4650         TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
4651         optimization and target options.
4652         (optimization_default_node): New macro to refer to global_trees
4653         field.
4654         (optimization_current_node): Ditto.
4655         (optimization_cold_node): Ditto.
4656         (optimization_hot_node): Ditto.
4657         (target_option_default_node): Ditto.
4658         (target_option_current_node): Ditto.
4659         (current_option_pragma): Ditto.
4660         (current_optimize_pragma): Ditto.
4661
4662         * target.h (struct gcc_target): Add valid_option_attribute_p,
4663         target_option_save, target_option_restore, target_option_print,
4664         target_option_pragma_parse, and can_inline_p hooks.
4665
4666         * toplev.h (parse_optimize_options): Add declaration.
4667         (fast_math_flags_struct_set_p): Ditto.
4668
4669         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
4670         adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
4671         optimize is used.
4672
4673         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
4674         tree_can_inline_p hook to see if one function can inline another.
4675         (cgraph_decide_inlining): Ditto.
4676         (cgraph_decide_inlining_incrementally): Ditto.
4677
4678         * opts.c (decode_options): Add support for running multiple times
4679         to allow functions with different target or optimization options
4680         than was specified on the command line.
4681         (fast_math_flags_struct_set_p): New function that is similar to
4682         fast_math_flags_set_p, except it uses the values in the
4683         cl_optimization structure instead of global variables.
4684
4685         * optc-gen.awk: Add support for TargetSave to allow a back end to
4686         declare new fields that need to be saved when using function
4687         specific options.  Include flags.h and target.h in the options.c
4688         source.  Add support for Save to indicate which options can be set
4689         for individual functions.  Generate cl_optimize_save,
4690         cl_optimize_restore, cl_optimize_print, cl_target_option_save,
4691         cl_target_option_restore, cl_target_option_print functions to
4692         allow functions to use different optimization or target options.
4693
4694         * opt-functions.awk (var_type_struct): Return the type used for
4695         storing the field in a structure.
4696
4697         * opth-gen.awk: Add support for TargetSave to allow a back end to
4698         declare new fields that need to be saved when using function
4699         specific options.  Add support for Save to indicate which options
4700         can be set for individual functions.  Only generate one extern for
4701         Mask fields.  Generate cl_optimization and cl_target_option
4702         structures to remember optimization and target options.
4703
4704         * treestruct.def (TS_OPTIMIZATION): Add support for garbage
4705         collecting new tree nodes.
4706         (TS_TARGET_OPTION): Ditto.
4707
4708         * c-decl.c (merge_decls): Merge function specific target and
4709         optimization options.
4710
4711         * function.c (invoke_set_current_function_hook): If the function
4712         uses different optimization options, change the global variables
4713         to reflect this.
4714
4715         * coretypes.h (struct cl_optimization): Add forward reference.
4716         (struct cl_target_option): Ditto.
4717
4718         * c-pragma.c (option_stack): New static vector to remember the
4719         current #pragma GCC option stack.
4720         (handle_pragma_option): New function to support #pragma GCC option
4721         to change target options.
4722         (optimize_stack): New static vector to remember the current
4723         #pragma GCC optimize stack.
4724         (handle_pragma_optimize): New function to support #pragma GCC
4725         optimize to change optimization options.
4726         (init_pragma): Add support for #pragma GCC optimize and #pragma
4727         GCC option.
4728
4729         * tree.def (OPTIMIZATION_NODE): New tree code for remembering
4730         optimization options.
4731         (TARGET_OPTION_NODE): New tree code for remembering certain target
4732         options.
4733
4734         * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
4735         TARGET_OPTION_NODE trees.
4736
4737         * common.opt (-O): Add Optimization flag.
4738         (-Os): Ditto.
4739         (-fmath-errno): Ditto.
4740         (-falign-functions): Add UInteger flag to make sure flag gets full
4741         int in cl_optimization structure.
4742         (-falign-jumps): Ditto.
4743         (-falign-labels): Ditto.
4744         (-falign-loops): Ditto.
4745         (-fsched-stalled-insns): Ditto.
4746         (-fsched-stalled-insns-dep): Ditto.
4747
4748         * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
4749         definition.
4750         (TARGET_OPTION_SAVE): Ditto.
4751         (TARGET_OPTION_RESTORE): Ditto.
4752         (TARGET_OPTION_PRINT): Ditto.
4753         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
4754         (TARGET_CAN_INLINE_P): Ditto.
4755         (TARGET_INITIALIZER): Add new hooks.
4756
4757         * tree-inline.c (tree_can_inline_p): New function to determine
4758         whether one function can inline another.  Check if the functions
4759         use compatible optimization options, and also call the backend
4760         can_inline_p hook.
4761
4762         * tree-inline.h (tree_can_inline_p): Add declaration.
4763
4764         * c-common.c (c_common_attribute): Add support for option and
4765         optimize attributes.
4766         (handle_option_attribute): Add support for the option attribute to
4767         allow the user to specify different target options for compiling a
4768         specific function.
4769         (handle_optimize_attribute): Add support for the optimize
4770         attribute to allow the user to specify different optimization
4771         options for compiling a specific function.
4772         (handle_hot_attribute): Turn on -O3 optimization for this one
4773         function if it isn't the default optimization level.
4774         (handle_cold_attribute): Turn on -Os optimization for this one
4775         function if it insn't the default optimization.
4776         (const_char_p): New const char * typedef.
4777         (optimize_args): New static vector to remember the optimization
4778         arguments.
4779         (parse_optimize_options): New function to set up the optimization
4780         arguments from either the optimize attribute or #pragma GCC optimize.
4781
4782         * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
4783         (builtin_define_std): Ditto.
4784
4785         * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
4786         Add t-i386 Makefile fragment to add i386-c.o and i386.o dependencies.
4787         (x86_64-*-*): Ditto.
4788
4789         * Makefile.in (TREE_H): Add options.h.
4790         (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
4791
4792         * doc/extend.texi (option attribute): Document new attribute.
4793         (optimize attribute): Ditto.
4794         (hot attribute): Document hot attribute sets -O3.
4795         (cold attribute): Document cold attribute sets -Os.
4796         (#pragma GCC option): Document new pragma.
4797         (#pragma GCC optimize): Ditto.
4798
4799         * doc/options.texi (TargetSave): Document TargetSave syntax.
4800         (UInteger): Document UInteger must be used for certain flags.
4801         (Save): Document Save option to create target specific options
4802         that can be saved/restored on a function specific context.
4803
4804         * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new macro.
4805         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
4806
4807         * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new hook.
4808         (TARGET_OPTION_SAVE): Ditto.
4809         (TARGET_OPTION_RESTORE): Ditto.
4810         (TARGET_OPTION_PRINT): Ditto.
4811         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
4812         (TARGET_CAN_INLINE_P): Ditto.
4813
4814         * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
4815         -mfpmath=sse,387.
4816         (-mfpmath=both): Ditto.
4817
4818 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
4819             Karthik Kumar  <karthikkumar@gmail.com>
4820
4821         * config/i386/i386.h (TARGET_ABM): Move switch into ix86_isa_flags.
4822         (TARGET_POPCNT): Ditto.
4823         (TARGET_SAHF): Ditto.
4824         (TARGET_AES): Ditto.
4825         (TARGET_PCLMUL): Ditto.
4826         (TARGET_CMPXCHG16B): Ditto.
4827         (TARGET_RECIP): Move switch into target_flags.
4828         (TARGET_FUSED_MADD): Ditto.
4829         (ix86_arch_features): Make an unsigned char type.
4830         (ix86_tune_features): Ditto.
4831         (OVERRIDE_OPTIONS): Add bool argument to override_options call.
4832         (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
4833         (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
4834
4835         * config/i386/i386.opt (arch): New TargetSave field to define
4836         fields that need to be saved for function specific option support.
4837         (tune): Ditto.
4838         (fpmath): Ditto.
4839         (branch_cost): Ditto.
4840         (ix86_isa_flags_explicit): Ditto.
4841         (tune_defaulted): Ditto.
4842         (arch_specified): Ditto.
4843         (-m128-long-double): Add Save flag to save option for target
4844         specific option support.
4845         (-m80387): Ditto.
4846         (-maccumulate-outgoing-args): Ditto.
4847         (-malign-double): Ditto.
4848         (-malign-stringops): Ditto.
4849         (-mfancy-math-387): Ditto.
4850         (-mhard-float): Ditto.
4851         (-mieee-fp): Ditto.
4852         (-minline-all-stringops): Ditto.
4853         (-minline-stringops-dynamically): Ditto.
4854         (-mms-bitfields): Ditto.
4855         (-mno-align-stringops): Ditto.
4856         (-mno-fancy-math-387): Ditto.
4857         (-mno-push-args): Ditto.
4858         (-mno-red-zone): Ditto.
4859         (-mpush-args): Ditto.
4860         (-mred-zone): Ditto.
4861         (-mrtd): Ditto.
4862         (-msseregparm): Ditto.
4863         (-mstack-arg-probe): Ditto.
4864         (-m32): Ditto.
4865         (-m64): Ditto.
4866         (-mmmx): Ditto.
4867         (-m3dnow): Ditto.
4868         (-m3dnowa): Ditto.
4869         (-msse): Ditto.
4870         (-msse2): Ditto.
4871         (-msse3): Ditto.
4872         (-msse4.1): Ditto.
4873         (-msse4.2): Ditto.
4874         (-msse4): Ditto.
4875         (-mno-sse4): Ditto.
4876         (-msse4a): Ditto.
4877         (-msse5): Ditto.
4878         (-mrecip): Move flag into target_flags.
4879         (-mcld): Ditto.
4880         (-mno-fused-madd): Ditto.
4881         (-mfused-madd): Ditto.
4882         (-mabm): Move flag into ix86_isa_flags.
4883         (-mcx16): Ditto.
4884         (-mpopcnt): Ditto.
4885         (-msahf): Ditto.
4886         (-maes): Ditto.
4887         (-mpclmul): Ditto.
4888
4889         * config/i386/i386-c.c: New file for #pragma support.
4890         (ix86_target_macros_internal): New function to #define or #undef
4891         target macros based when the user uses the #pragma GCC option to
4892         change target options.
4893         (ix86_pragma_option_parse): New function to add #pragma GCC option
4894         support.
4895         (ix86_target_macros): Move defining the target macros here from
4896         TARGET_CPU_CPP_BUILTINS in i386.h.
4897         (ix86_register_pragmas): Register the #pragma GCC option hook.  If
4898         defined, initialize any subtarget #pragmas.
4899
4900         * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
4901         REGISTER_TARGET_PRAGMAS.
4902
4903         * config/i386/t-i386: New file for x86 dependencies.
4904         (i386.o): Make dependencies mirror the include files used.
4905         (i386-c.o): New file, add dependencies.
4906
4907         * config/i386/i386-protos.h (override_options): Add bool argument.
4908         (ix86_valid_option_attribute_tree): Add declaration.
4909         (ix86_target_macros): Ditto.
4910         (ix86_register_macros): Ditto.
4911
4912         * config/i386/i386.c (ix86_tune_features): Move initialization of
4913         the target masks to initial_ix86_tune_features to allow functions
4914         to have different target options.  Make type unsigned char,
4915         instead of unsigned int.
4916         (initial_ix86_tune_features): New static vector to hold processor
4917         masks for the tune variables.
4918         (ix86_arch_features): Move initialization of the target masks to
4919         initial_ix86_arch_features to allow functions to have different
4920         target options.  Make type unsigned char, instead of unsigned int.
4921         (initial_ix86_arch_features): New static vector to hold processor
4922         masks for the arch variables.
4923         (enum ix86_function_specific_strings): New enum to describe the
4924         string options used for attribute((option(...))).
4925         (ix86_target_string): New function to return a string that
4926         describes the target options.
4927         (ix86_debug_options): New function to print the current options in
4928         the debugger.
4929         (ix86_function_specific_save): New function hook to save the
4930         function specific global variables in the cl_target_option structure.
4931         (ix86_function_specific_restore): New function hook to restore the
4932         function specific variables from the cl_target_option structure to
4933         the global variables.
4934         (ix86_function_specific_print): New function hook to print the
4935         target specific options in the cl_target_option structure.
4936         (ix86_valid_option_attribute_p): New function hook to validate
4937         attribute((option(...))) arguments.
4938         (ix86_valid_option_attribute_tree): New function that is common
4939         code between attribute((option(...))) and #pragma GCC option
4940         support that parses the options and returns a tree holding the options.
4941         (ix86_valid_option_attribute_inner_p): New helper function for
4942         ix86_valid_option_attribute_tree.
4943         (ix86_can_inline_p): New function hook to decide if one function
4944         can inline another on a target specific basis.
4945         (ix86_set_current_function); New function hook to switch target
4946         options if the user used attribute((option(...))) or #pragma GCC
4947         option.
4948         (ix86_tune_defaulted): Move to static file scope from
4949         override_options.
4950         (ix86_arch_specified): Ditto.
4951         (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
4952         ix86_isa_flags.
4953         (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
4954         (OPTION_MASK_ISA_ABM_SET): Ditto.
4955         (OPTION_MASK_ISA_POPCNT_SET): Ditto.
4956         (OPTION_MASK_ISA_CX16_SET): Ditto.
4957         (OPTION_MASK_ISA_SAHF_SET): Ditto.
4958         (OPTION_MASK_ISA_AES_UNSET): Ditto.
4959         (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
4960         (OPTION_MASK_ISA_ABM_UNSET): Ditto.
4961         (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
4962         (OPTION_MASK_ISA_CX16_UNSET): Ditto.
4963         (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
4964         (struct ptt): Move to static file scope from override_options.
4965         (processor_target_table): Ditto.
4966         (cpu_names): Ditto.
4967         (ix86_handle_option): Add support for options that are now isa options.
4968         (override_options): Add support for declaring functions that
4969         support different target options than were specified on the
4970         command line.  Move struct ptt, processor_target_table, cpu_names,
4971         ix86_tune_defaulted, ix86_arch_specified to static file scope.
4972         Add bool argument.  Fix up error messages so the appropriate error
4973         is given for either command line or attribute.
4974         (ix86_previous_fndecl): New static to remember previous function
4975         declaration to see if we need to change target options.
4976         (ix86_builtins_isa): New array to record the ISA of each builtin
4977         function.
4978         (def_builtin): Always create the builtin function, even if the
4979         current ISA doesn't support it.
4980         (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
4981         tests for those builtins.
4982         (ix86_init_builtins): Remove TARGET_MMX test for calling
4983         ix86_init_mmx_sse_builtins.
4984         (ix86_expand_builtin): If the current ISA doesn't support a given
4985         builtin, signal an error.
4986         (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
4987         (TARGET_SET_CURRENT_FUNCTION): Ditto.
4988         (TARGET_OPTION_SAVE): Ditto.
4989         (TARGET_OPTION_RESTORE): Ditto.
4990         (TARGET_OPTION_PRINT): Ditto.
4991         (TARGET_CAN_INLINE_P): Ditto.
4992
4993 2008-07-22  Rafael Avila de Espindola  <espindola@google.com>
4994
4995         * c-typeck.c (build_external_ref): Don't call assemble_external.
4996         * final.c (output_operand): Call assemble_external.
4997
4998 2008-07-21  DJ Delorie  <dj@redhat.com>
4999
5000         * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
5001         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
5002
5003 2008-07-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5004
5005         * config/spu/spu.md ("div<mode>3"): Convert into expander, move
5006         original insn and splitter contents into ...
5007         ("*div<mode>3_fast"): ... this new pattern.  Enable only if
5008         flag_unsafe_math_optimizations.  Add dummy scratch register.
5009         ("*div<mode>3_adjusted"): New insn and splitter.  Enable only if
5010         !flag_unsafe_math_optimizations.  Returns number with next
5011         highest magnitude if this is still less or equal to the true
5012         quotient in magnitude.
5013
5014 2008-07-21  Rafael Avila de Espindola  <espindola@google.com>
5015
5016         * Makefile.in: Replace toplev.h with TOPLEV_H.
5017         * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
5018         * c-lex.c (fe_file_change): Don't set in_system_header.
5019         * c-parser.c (c_token): Remove in_system_header.
5020         (c_lex_one_token): Don't set in_system_header.
5021         (c_parser_set_source_position_from_token): Don't set in_system_header.
5022         * diagnostic.c (diagnostic_report_diagnostic): Use location from
5023         diagnostic_info.
5024         (warning_at): New.
5025         * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
5026         * flags.h (in_system_header): Remove.
5027         * function.c (saved_in_system_header): Remove.
5028         (push_cfun): Don't set in_system_header.
5029         (pop_cfun): Don't set in_system_header.
5030         (push_struct_function): Don't set in_system_header.
5031         * input.h (expanded_location): Add sysp.
5032         (in_system_header_at): New.
5033         (in_system_header): New.
5034         * toplev.c (in_system_header): Remove.
5035         * toplev.h: Include input.h
5036         (warning_at): New.
5037         * tree-cfg.c (execute_warn_function_return): Call warning_at.
5038         * tree-ssa.c (warn_uninit): Call warning_at.
5039         (warn_uninitialized_var): Update calls to warn_uninit.
5040         (warn_uninitialized_phi): Update calls to warn_uninit.
5041         * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
5042         (expand_location): Initialize xloc.sysp.
5043         * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
5044         (tree_decl_with_vis): Remove in_system_header_flag.
5045
5046 2008-07-21  Andreas Krebbel  <krebbel1@de.ibm.com>
5047
5048         PR target/36822
5049         * recog.c (asm_operand_ok): Change the order of the extra
5050         memory constraint checks.
5051
5052 2008-07-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5053
5054         PR tree-opt/36879
5055         * tree-switch-conversion.c (build_one_array): Call
5056         varpool_mark_needed_node and varpool_finalize_decl
5057         instead of assemble_variable.
5058
5059 2008-07-19  Jan Hubicka  <jh@suse.cz>
5060
5061         * cgraph.c (cgraph_add_new_function): Do early local passes.
5062         * tree-nrv.c (gate_pass_return_slot): New gate.
5063         (pass_nrv): Add the gate.
5064         * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
5065         functions.
5066         (coalesce_ssa_name): Coalesce SSA names.
5067         * tree-ssa-live.c (remove_unused_locals): Be more conservative when
5068         not optimizing so unused user vars remains visible.
5069         * common.opt (flag_tree_ter): Always enable by default.
5070         * tree-ssa-ter.c: Include flags.h
5071         (is_replaceable_p): Check that locations match; when aliasing is missing
5072         be conservative about loads.
5073         * tree-optimize.c (gate_init_datastructures): Remove.
5074         (pass_init_datastructures): New.
5075         * passes.c: Reorder passes so we always go into SSA.
5076
5077 2008-07-19  Jan Hubicka  <jh@suse.cz>
5078
5079         * doc/extend.texi (flatten attribute): Remove note about unit-at-a-time
5080         * doc/invoke.texi (--combine): Likewise.
5081         (-finline-functions-called-once): Update levels when enabled.
5082         (-funit-at-a-time): Document new behaviour.
5083         (-ftoplevel-reorder): Document that it is enabled -O0 and imply
5084         -fno-section-anchors when disabled explicitly.
5085         (inline params): They are not ignored now.
5086         (precompiled headers): Remove unit-at-a-time as being incompatible.
5087         * opts.c (decode_options): Handle unit-at-a-time as alias;
5088         imply -fno-section-anchors when toplevel reorder is disabled
5089         explicitly.
5090         * common.opt (ftoplevel-reorder): Set default value to 2.
5091         (funit-at-a-time): Set default value to 1.
5092         * config/rs6000/rs6000.c (optimization_options): Set section anchors
5093         to 2.
5094
5095 2008-07-19  Jan Hubicka  <jh@suse.cz>
5096
5097         * builtins.c (expand_builtin_int_roundingfn,
5098         expand_builtin_int_roundingfn_2): Do not take subtarget argument;
5099         it is not useful.
5100
5101 2008-07-19  Richard Guenther  <rguenther@suse.de>
5102
5103         PR bootstrap/36864
5104         * tree-ssa-sccvn.h (get_constant_value_id): Declare.
5105         * tree-ssa-sccvn.c (get_constant_value_id): New function.
5106         * tree-ssa-pre.c (get_expr_value_id): For newly created
5107         constant value-ids make sure to add the expression to its
5108         expression-set.
5109
5110 2008-07-19  Jakub Jelinek  <jakub@redhat.com>
5111
5112         PR middle-end/36877
5113         * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
5114         return value of the builtin is ignored.
5115
5116 2008-07-19  Olivier Hainque  <hainque@adacore.com>
5117
5118         * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
5119         bits, a C conformant malloc implementation has to provide.
5120         * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
5121
5122 2008-07-19  Joseph Myers  <joseph@codesourcery.com>
5123
5124         PR target/36780
5125         PR target/36827
5126         * reload.c (find_reloads_subreg_address): Only reload address if
5127         reloaded == 0, not for reloaded != 1.
5128
5129         Revert:
5130         2008-07-16  Joseph Myers  <joseph@codesourcery.com>
5131         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
5132         (m32c_legitimate_address_p): Handle "++rii" addresses created by
5133         m32c_legitimize_reload_address.
5134
5135         2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5136         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
5137         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
5138
5139 2008-07-19  Olivier Hainque  <hainque@adacore.com>
5140
5141         * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
5142         argument, saying whether nested array are to be collapsed
5143         into a single array type DIE with multiple subscripts.
5144         (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
5145         issues, centralize the nested array types collapsing control and
5146         disable the transformation for Ada.
5147
5148 2008-07-18  Uros Bizjak  <ubizjak@gmail.com>
5149
5150         PR target/36786
5151         * config/i386/i386.md (x86_64_shift_adj_1): Rename from
5152         x86_64_shift_adj.
5153         (x86_64_shift_adj_2): New expander.
5154         (x86_64_shift_adj_3): Ditto.
5155         * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
5156         to split TImode operands.
5157         (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
5158         (ix86_split_lshr): Ditto.
5159
5160 2008-07-18  Kris Van Hees  <kris.van.hees@oracle.com>
5161
5162         * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
5163         and __CHAR32_TYPE__.
5164         * c-typeck.c (digest_init): Support char16_t and char32_t.
5165         (set_nonincremental_init_from_string): Idem.
5166
5167 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
5168
5169         PR middle-end/36859
5170         * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
5171         PREFERRED_STACK_BOUNDARY.
5172         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
5173
5174 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
5175
5176         PR middle-end/36858
5177         * function.c (locate_and_pad_parm): Cap boundary earlier.
5178
5179 2008-07-17  Julian Brown  <julian@codesourcery.com>
5180
5181         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
5182         no-op for targets which don't use DLLs.
5183
5184 2008-07-17  Martin Jambor  <mjambor@suse.cz>
5185
5186         * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
5187         that nodes are relevant by examining the node->analyzed flag.
5188         (ipcp_init_stage): Check which nodes are relevant, assert that the
5189         relevant ones are also required.
5190         (ipcp_propagate_stage): Check on the side arrays are properly
5191         allocated.
5192         (ipcp_print_all_jump_functions): Make sure not to touch any node
5193         that is not analyzed or an edge that does not have a corresponding
5194         entry in the on-the-side vectors.
5195         (ipcp_function_scale_print): Likewise.
5196         (ipcp_update_callgraph): Check that the node is relevant.
5197         (ipcp_insert_stage): Check that the node is relevant.  Check there is
5198         an info for every node and edge.
5199         * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
5200         (ipa_print_all_tree_maps): Likewise and a new variable info.
5201         (ipa_print_all_params_modified): Likewise.
5202         * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
5203
5204 2008-07-17  Roman Zippel <zippel@linux-m68k.org>
5205
5206         PR target/25343
5207         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
5208
5209 2008-07-17  Paolo Bonzini  <bonzini@gnu.org>
5210
5211         PR rtl-optimization/36753
5212         * fwprop.c (use_killed_between): Don't shortcut
5213         single-definition global registers.
5214
5215 2008-07-16  Jan Hubicka  <jh@suse.cz>
5216
5217         * cgraph.h (varpool_empty_needed_queue): Declare.
5218         * cgraphunit.c (output_in_order): Mark all variables as needed;
5219         empty the queue.
5220         * varpool.c (varpool_assemble_node): Update debug queue.
5221         (varpool_assemble_pending_decls): Don't do it here.
5222         (varpool_empty_needed_queue):  New function.
5223
5224 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5225
5226         * recog.c (peephole2_optimize): Fix formatting.
5227
5228 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5229
5230         * c-pch.c (get_ident): Avoid C++ keywords.
5231         * combine-stack-adj.c (single_set_for_csa): Likewise.
5232         * final.c (asm_insn_count, final_scan_insn, alter_subreg,
5233         output_asm_insn): Likewise.
5234         * reload.c (push_secondary_reload, find_reusable_reload,
5235         push_reload, combine_reloads, find_reloads,
5236         debug_reload_to_stream): Likewise.
5237         * reload.h (struct reload): Likewise.
5238         * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
5239         allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
5240         emit_output_reload_insns): Likewise.
5241         * targhooks.c (default_secondary_reload): Likewise.
5242         * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
5243
5244 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5245
5246         * recog.c (validate_change_1, validate_change,
5247         validate_unshare_change, validate_replace_rtx_1, struct
5248         funny_match, constrain_operands, peephole2_optimize): Avoid C++
5249         keywords.
5250         * reload.c (push_secondary_reload, secondary_reload_class,
5251         scratch_reload_class, find_valid_class, find_reusable_reload,
5252         push_reload, find_dummy_reload, find_reloads_address_1,
5253         find_reloads_address_part, find_equiv_reg): Likewise.
5254         * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
5255         choose_reload_regs): Likewise.
5256         * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
5257         Likewise.
5258         * rtlhooks.c (gen_lowpart_if_possible): Likewise.
5259         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
5260         * sched-rgn.c (concat_INSN_LIST): Likewise.
5261         * stor-layout.c (mode_for_size, mode_for_size_tree,
5262         smallest_mode_for_size): Likewise.
5263
5264 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5265
5266         * cfg.c (dump_reg_info): Avoid C++ keywords.
5267         * dwarf2asm.c (dw2_force_const_mem,
5268         dw2_asm_output_encoded_addr_rtx): Likewise.
5269         * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
5270         * expmed.c (expand_shift): Likewise.
5271         * global.c (find_reg): Likewise.
5272         * graph.c (draw_edge): Likewise.
5273         * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
5274         * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
5275         widen_clz, widen_bswap, expand_parity, expand_unop,
5276         emit_cmp_and_jump_insn_1): Likewise.
5277         * postreload.c (reload_cse_simplify_operands): Likewise.
5278         * ra.h (add_neighbor): Likewise.
5279         * reg-stack.c (remove_regno_note, change_stack): Likewise.
5280         * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
5281         record_reg_classes, copy_cost, record_address_regs,
5282         invalid_mode_change_p): Likewise.
5283         * regrename.c (regrename_optimize, scan_rtx_reg,
5284         dump_def_use_chain, find_oldest_value_reg,
5285         replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
5286
5287 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
5288
5289         * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
5290         MASK_POWERPC64 for power4 in previous commit.
5291
5292 2008-07-16  Olivier Hainque  <hainque@adacore.com>
5293
5294         * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
5295         instead of bare conversion to cast const-ness away.
5296
5297 2008-07-16  Anatoly Sokolov  <aesok@post.ru>
5298
5299         * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
5300         XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
5301         * config/xtensa/xtensa.c (xtensa_function_value): New function.
5302         (TARGET_FUNCTION_VALUE): Define.
5303
5304 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
5305
5306         * config/rs6000/rs6000.c (processor_target_table): Add
5307         MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
5308
5309 2008-07-16  Joseph Myers  <joseph@codesourcery.com>
5310
5311         PR target/36827
5312         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
5313         (m32c_legitimate_address_p): Handle "++rii" addresses created by
5314         m32c_legitimize_reload_address.
5315
5316 2007-07-16  Rafael Avila de Espindola  <espindola@google.com>
5317
5318         * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
5319         DECL_IN_SYSTEM_HEADER in sync.
5320
5321 2008-07-15  Daniel Berlin  <dberlin@dberlin.org>
5322
5323         * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
5324         * tree-ssa-pre.c (pre_expr_eq): Ditto
5325         (get_constant_for_value_id): Take a type as an argument.
5326         (fully_constant_expression): Pass in type.
5327         (find_or_generate_expression): Short circuit constant case.
5328         (create_expression_by_pieces): Remove special casing of
5329         pointer_plus.
5330         (do_regular_insertion): Short circuit constant case.
5331         (do_partial_partial_insertion): Ditto.
5332
5333 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5334
5335         PR target/36782
5336         * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
5337
5338 2008-07-15  Bob Wilson  <bob.wilson@acm.org>
5339
5340         * config/xtensa/libgcc-xtensa.ver: New file.
5341         * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
5342
5343 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5344
5345         * df-problems.c (df_set_note): Avoid C++ keywords.
5346         * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
5347         * dse.c (record_store, remove_useless_values): Likewise.
5348         * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
5349         gen_reg_rtx_offset, operand_subword, change_address_1,
5350         change_address, adjust_address_1, offset_address,
5351         widen_memory_access, emit_copy_of_insn_after): Likewise.
5352         * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
5353         * fwprop.c (should_replace_address, propagate_rtx_1,
5354         propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
5355         Likewise.
5356         * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
5357         gcse_emit_move_after, update_ld_motion_stores): Likewise.
5358         * lcm.c (compute_insert_delete, pre_edge_lcm,
5359         compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
5360         * lower-subreg.c (resolve_reg_notes): Likewise.
5361         * mode-switching.c (optimize_mode_switching): Likewise.
5362
5363 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5364
5365         * bt-load.c (add_btr_def, migrate_btr_def,
5366         branch_target_load_optimize): Avoid C++ keywords.
5367         * caller-save.c (insert_restore, insert_save, insert_one_insn):
5368         Likewise.
5369         * combine.c (subst, simplify_set, make_extraction,
5370         make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
5371         * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
5372         fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
5373
5374 2008-07-15  Richard Guenther  <rguenther@suse.de>
5375
5376         PR middle-end/36369
5377         * c-common.c (strict_aliasing_warning): Do not warn for
5378         TYPE_REF_CAN_ALIAS_ALL pointers.
5379         (c_common_get_alias_set): may_alias types are not special.
5380         * tree.c (build_pointer_type_for_mode): Look up the may_alias
5381         attribute and set can_ref_all accordingly.
5382         (build_reference_type_for_mode): Likewise.
5383         * doc/extend.texi (may_alias): Clarify.
5384
5385 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5386
5387         PR target/36780
5388         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
5389         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
5390
5391 2008-07-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5392
5393         PR target/31568
5394         * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
5395         gcc_assert, instead call output_operand_lossage.
5396
5397 2008-07-15  Kai Tietz  <kai.tietz@onevision.com>
5398
5399         * builtins.c (std_canonical_va_list): Treat structure based
5400         va_list types.
5401
5402 2008-07-15  Ben Elliston  <bje@au.ibm.com>
5403
5404         * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
5405
5406 2007-07-14  Rafael Avila de Espindola  <espindola@google.com>
5407
5408         * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
5409         is set.
5410
5411 2008-07-14  Jan Hubicka  <jh@suse.cz>
5412
5413         * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
5414         * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
5415         fix predicates and constraints.
5416         * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
5417         * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
5418
5419 2008-07-14  Doug Kwan  <dougkwan@google.com>
5420
5421         * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
5422         additional option file arm/eabi.opt.
5423         * config/arm/eabi.h (File): New configuration file for EABI targets.
5424         * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
5425         SUBSUBTARGET_EXTRA_SPECS.
5426         (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
5427         * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
5428         from STARTFILE_SPEC so that it can be referenced in an override.
5429         (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
5430         (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
5431         can be referenced in an override.
5432         (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
5433         * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
5434         so that it can be referenced in an override.
5435         (LINK_SPEC): Use BPABI_LINK_SPEC.
5436         * config/arm/eabi.opt (File): New.
5437
5438 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5439
5440         * Makefile.in (TARGET_DEF_H): Add targhooks.h.
5441         (FIXED_VALUE_H): New variable.
5442         (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
5443         input.h, fixed-value.h.
5444         (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
5445         (BASIC_BLOCK_H): Use $(BITMAP_H).
5446         (FUNCTION_H): Add varray.h.
5447         (IPA_REFERENCE_H): Use $(BITMAP_H).
5448         (CGRAPH_H): Add $(BASIC_BLOCK_H).
5449         (DF_H): Use $(BITMAP_H).
5450         (GGC_H): Add statistics.h.
5451         (INSN_ADDR_H): New.
5452         (INSN_ATTR_H): Use it.
5453         (SYSTEM_H): Add safe-ctype.h, filenames.h.
5454         (INPUT_H): New.
5455         (SYMTAB_H): Add $(OBSTACK_H).
5456         (CPP_INTERNAL_H): New.
5457         (TREE_DUMP_H): Add tree-pass.h.
5458         (TREE_FLOW_H): Use $(BITMAP_H)
5459         (PRETTY_PRINT_H): Use $(INPUT_H).
5460         (EBITMAP_H): Rename from typo-ed EBIMAP_H.
5461         (GSTAB_H): New.
5462         (BITMAP_H): New.
5463         (many object files): Fix lots of header dependencies throughout.
5464
5465 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5466
5467         * Makefile.in (write_entries_to_file, write_entries_to_file_split):
5468         New macros.
5469         (s-gtyp-input): Use them to write tmp-gi.list.
5470         (echo_to_gi.list): Remove.
5471
5472 2008-07-14  Richard Guenther  <rguenther@suse.de>
5473
5474         * tree-ssa-sccvn.c (pre_info): Remove.
5475         (switch_to_PRE_table): Likewise.
5476         (free_scc_vn): Do not clear SSA_NAME_VALUE.  Do not free pre_info.
5477         (set_hashtable_value_ids): Do not create value-ids for the
5478         optimistic tables.
5479         (run_scc_vn): Remove double test.  Remove bogus special-case
5480         in value-number printing.
5481         * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
5482         * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
5483         SSA_NAME_VALUE.
5484         * tree-flow-inline.h (get_value_handle): Remove.
5485         * tree-flow.h (get_value_handle): Remove.
5486
5487 2008-07-14  Martin Jambor  <mjambor@suse.cz>
5488
5489         * tree-switch-conversion.c (gen_inbound_check): Make sure the type
5490         in which we generate arithmetics is not a subrange.
5491
5492 2008-07-14  Martin Jambor  <mjambor@suse.cz>
5493
5494         * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
5495
5496 2008-07-14  Richard Guenther  <rguenther@suse.de>
5497
5498         * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
5499
5500 2008-07-14  Andreas Krebbel  <krebbel1@de.ibm.com>
5501
5502         PR target/36745
5503         * config/s390/s390.c: (s390_secondary_reload): Add a secondary
5504         reload for symbol refs moved to r0 with -fPIC.
5505         (legitimize_pic_address): Use the target register as temporary
5506         reg if possible.
5507         (emit_symbolic_move): Adjust comment.
5508         * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
5509         New expanders.
5510
5511 2008-07-14  Ben Elliston  <bje@au.ibm.com>
5512
5513         * c-common.h (C_CPP_HASHNODE): New macro.
5514         * coretypes.h (struct cpp_token): Forward declare.
5515         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
5516         the context-sensitive keyword method.
5517         * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
5518         __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
5519         expand_bool_pixel): New.
5520         (altivec_categorize_keyword): New function.
5521         (init_vector_keywords): New function.
5522         (rs6000_macro_to_expand): Likewise.
5523         (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
5524         compiling an ISO C dialect.
5525
5526 2008-07-13  Daniel Berlin  <dberlin@dberlin.org>
5527
5528         * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
5529         (create_expression_by_pieces): Fix typo.
5530         (do_regular_insertion): Use debug counter here too.
5531
5532 2008-07-14  Hans-Peter Nilsson  <hp@axis.com>
5533
5534         PR target/35492.
5535         * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
5536         CONST_OK_FOR_LETTER_P.  All port-local users changed.
5537         (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
5538         implement Kp matching power-of-two.
5539         (CONSTRAINT_LEN): Define to match.
5540         * config/cris/cris.md: Replace all use of constraint K with Kc.
5541         ("*btst*): Use Kp for operand 0 of last alternative.
5542
5543 2008-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5544
5545         PR testsuite/36440
5546         * tree-call-cdce.c (check_target_format): Accept MIPS single, double
5547         and quad formats.
5548
5549 2008-07-13  Jan Hubicka  <jh@suse.cz>
5550
5551         * tree.c (decl_assembler_name_equal): Expect assembler name of decl
5552         to be mangled too.
5553
5554 2008-07-13  Richard Guenther  <rguenther@suse.de>
5555
5556         PR middle-end/36811
5557         * langhooks.c (lhd_print_error_function): Deal with recursive
5558         BLOCK trees.
5559
5560 2008-07-12  Jan Hubicka  <jh@suse.cz>
5561
5562         * cgraph.c (assembler_name_hash): New static var.
5563         (hash_node_by_assembler_name, eq_assembler_name): New.
5564         (cgraph_node_for_asm): Use hashtable.
5565         (cgraph_remove_node): Maintain hashtable.
5566         (change_decl_assembler_name): Sanity check that names are not changing
5567         after aliasing was processed.
5568         * cgraph.h (varpoon_node): Add next GGC marker.
5569         * tree.c (decl_assembler_name_equal): Constify.
5570         (decl_assembler_name_hash): New.
5571         * tree.h (decl_assembler_name_equal): Constify.
5572         (decl_assembler_name_hash): Update.
5573
5574 2008-07-12  David Daney  <ddaney@avtrex.com>
5575
5576         * config/mips/driver-native.c (host_detect_local_cpu): Handle
5577         sb1 and r5000 cpus.
5578
5579 2008-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
5580
5581         * doc/md.texi: Document the MIPS "v" constraint.
5582         * config/mips/mips.h (reg_class): Revert last change.
5583         (REG_CLASS_NAMES): Likewise.
5584         (REG_CLASS_CONTENTS): Likewise.
5585         * config/mips/mips.c (mips_regno_to_class): Likewise.
5586         * config/mips/constraints.md (v): Likewise, but add documentation.
5587         Add a comment to say that this constraint should not be used in
5588         gcc code.
5589
5590 2008-07-11  DJ Delorie  <dj@redhat.com>
5591
5592         * config/h8300/h8300.md (length): Fix branch offset limit.
5593
5594 2008-07-11  Anatoly Sokolov  <aesok@post.ru>
5595
5596         * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
5597         * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
5598         (avr_hard_regno_scratch_ok): New function.
5599         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
5600         * config/avr/avr.md (all peepholes that request a scratch register):
5601         Remove avr_peep2_scratch_safe use.
5602
5603 2008-07-11  Tom Tromey  <tromey@redhat.com>
5604             Ian Lance Taylor  <iant@google.com>
5605
5606         * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
5607         (struct c_common_resword): Define.
5608         (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
5609         (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
5610         (c_common_reswords, num_c_common_reswords): Declare.
5611         * c-common.c (c_common_reswords): New global const array.
5612         (num_c_common_reswords): New const int.
5613         * c-parser.c (struct resword, reswords): Don't define.
5614         (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
5615         (c_parse_init): Clarify mask code.  Use c_common_reswords rather
5616         than reswords.  If warning about C++ keywords, give them a special
5617         RID code.
5618         (c_lex_one_token): Warn about C++ keywords.  Call
5619         objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
5620         (c_parser_external_declaration): Look for RID_xxx rather than
5621         RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
5622         (c_parser_statement_after_labels): Likewise.
5623         (c_parser_objc_class_instance_variables): Likewise.
5624         (c_parser_objc_class_declaration): Likewise.
5625         (c_parser_objc_try_catch_statement): Likewise.
5626         * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
5627         (declspecs_add_type): Likewise.
5628
5629 2008-07-11  Angelo Graziosi  <angelo.graziosi@alice.it>
5630
5631         * ggc-page.c (alloc_page):
5632         Substituting xmalloc, xcalloc with
5633         XNEWVEC and XCNEWVAR macros which add the
5634         needed casts.
5635
5636 2008-07-11  Richard Guenther  <rguenther@suse.de>
5637
5638         PR tree-optimization/36765
5639         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
5640         aliases from HEAP vars to SMTs.
5641
5642 2008-07-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5643
5644         * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
5645         * configure.ac (loose_warn): Move -Wc++-compat from here...
5646         (strict_warn): ...to here.
5647         * configure: Regenerate.
5648
5649 2008-07-10  Joseph Myers  <joseph@codesourcery.com>
5650
5651         * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
5652         i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
5653         m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
5654         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
5655         excluding more specific h8300-*-* and sh-*-* targets.
5656
5657 2008-07-10  Daniel Berlin  <dberlin@dberlin.org>
5658
5659         * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
5660         (eliminate): Ditto.
5661         (execute_pre): Call loop_optimizer_finalize in early exit.
5662
5663 2008-07-10  Jakub Jelinek  <jakub@redhat.com>
5664
5665         PR middle-end/36790
5666         * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
5667         uids in the bitmap, not just VAR_DECL uids.
5668
5669         PR rtl-optimization/36419
5670         * combine-stack-adj.c (adjust_frame_related_expr): New function.
5671         (combine_stack_adjustments_for_block): Call it if needed.  Delete
5672         correct insn.
5673         * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
5674         DW_CFA_GNU_args_size if CSA pass merged some adjustments into
5675         prologue sp adjustment.
5676
5677 2008-07-10  Peter Maydell  <pmaydell@chiark.greenend.org.uk>
5678
5679         PR other/28322
5680         * opts.c (print_ignored_options): Report postponed diagnostics for
5681         unknown -Wno-* options as warnings, not errors.
5682         (postpone_unknown_option_error): Renamed to...
5683         (postpone_unknown_option_warning): ... this.
5684
5685 2008-07-09  Doug Kwan  <dougkwan@google.com>
5686
5687         Revert:
5688         2008-07-08  Doug Kwan  <dougkwan@google.com>
5689
5690         * config/arm/arm.opt (mandroid): New option.
5691         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
5692         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
5693         (CC1_SPEC): Same.
5694         (CC1PLUS_SPEC): Same.
5695         (LIB_SPEC): Same.
5696         (STARTFILE_SPEC): Same.
5697         (ENDFILE_SPEC): Same.
5698         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
5699         used.
5700
5701 2008-07-09  Richard Sandiford  <rdsandiford@googlemail.com>
5702
5703         PR target/35802
5704         * config/mips/mips.h (reg_class): Remove V1_REG.
5705         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
5706         * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
5707         instead of V1_REGS.
5708         (mips_get_tp): New function.
5709         (mips_legitimize_tls_address): Use it.
5710         * config/mips/constraints.md (v): Delete.
5711         * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
5712         (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
5713         After reload, split into a move and ...
5714         (*tls_get_tp_<mode>_split): ...this new instruction.
5715
5716 2008-07-09  David Daney  <ddaney@avtrex.com>
5717
5718         * config/mips/driver-native.c: Include coretypes.h and tm.h.
5719
5720 2008-07-09  Jakub Jelinek  <jakub@redhat.com>
5721
5722         * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
5723         (push_gimplify_context): Don't allocate temp_htab nor c itself here.
5724         Add c argument.
5725         (pop_gimplify_context): Check c->temp_htab instead of optimize whether
5726         htab_delete should be called.  Don't free c.
5727         (lookup_tmp_var): Create temp_htab lazily.
5728         (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
5729         gimplify_body, force_gimple_operand): Adjust push_gimplify_context
5730         callers.
5731         * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
5732         lower_omp_ordered, lower_omp_critical, lower_omp_for,
5733         create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
5734         * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
5735         * tree-sra.c (generate_element_init): Likewise.
5736         * tree-mudflap.c (execute_mudflap_function_ops,
5737         execute_mudflap_function_decls): Likewise.
5738         * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
5739         * tree-gimple.h (struct gimplify_ctx): New type.
5740         (push_gimplify_context): Adjust prototype.
5741
5742 2008-07-09  Daniel Berlin  <dberlin@dberlin.org>
5743
5744         * tree-ssa-pre.c (phi_translate_1): Update placement of
5745         add_to_value calls.
5746
5747 2008-07-09  Anatoly Sokolov  <aesok@post.ru>
5748
5749         * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
5750         * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
5751         (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
5752         * targhooks.c (default_hard_regno_scratch_ok): New function.
5753         * targhooks.h (default_hard_regno_scratch_ok): Declare function.
5754         * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
5755         * recog.c:  Include "target.h".
5756         (peep2_find_free_register): Add check for global regs. Add target
5757         specific check.
5758         * Makefile.in (recog.o): Depend on target.h.
5759
5760 2008-07-09  Kaz Kojima  <kkojima@gcc.gnu.org>
5761
5762         * config/sh/sh.c (sh_canonical_va_list_type): New.
5763         (TARGET_CANONICAL_VA_LIST_TYPE): Define.
5764
5765 2008-07-09  Raksit Ashok <raksit@google.com>
5766
5767         * doc/invoke.texi (Option Summary): Mention new option
5768         -Wdisallowed-function-list=...
5769         (Warning Options): Document -Wdisallowed-function-list=...
5770         * common.opt (Wdisallowed-function-list=): New flag.
5771         * flags.h (warn_disallowed_functions): External definition of new
5772         boolean warning flag.
5773         (warn_if_disallowed_function_p): Declare new function.
5774         * opts.c (warning_disallowed_functions): New static variable.
5775         (warn_disallowed_functions): New boolean warning flag.
5776         (warn_if_disallowed_function_p): New function.
5777         (add_comma_separated_to_vector): Rename
5778         add_instrument_functions_exclude_list to this.
5779         (common_handle_option): Handle new option. Rename calls to
5780         add_instrument_functions_exclude_list into calls to
5781         add_comma_separated_to_vector.
5782         * c-parser.c (c_parser_postfix_expression_after_primary): New warning
5783         based on flag warn_disallowed_functions.
5784
5785 2008-07-09  Christian Bruel  <christian.bruel@st.com>
5786
5787         * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
5788          instead of get_attr_length.
5789
5790 2008-07-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5791
5792         * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
5793         keywords.
5794         * genemit.c (gen_insn): Likewise.
5795         * gengtype.c (note_def_vec): Likewise.
5796         * gengtype.h (note_def_vec): Likewise.
5797         * genoutput.c (struct data, output_insn_data, process_template,
5798         gen_expand, gen_split, note_constraint): Likewise.
5799         * genrecog.c (new_decision, add_to_sequence, factor_tests,
5800         make_insn_sequence): Likewise.
5801         * gensupport.c (record_insn_name): Likewise.
5802
5803 2008-07-08  Doug Kwan  <dougkwan@google.com>
5804
5805         * config/arm/arm.opt (mandroid): New option.
5806         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
5807         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
5808         (CC1_SPEC): Same.
5809         (CC1PLUS_SPEC): Same.
5810         (LIB_SPEC): Same.
5811         (STARTFILE_SPEC): Same.
5812         (ENDFILE_SPEC): Same.
5813         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
5814         used.
5815
5816 2008-07-08  Raksit Ashok  <raksit@google.com>
5817
5818         * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
5819         (set_storage_via_setmem): Fix expected_align parameter.
5820         * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
5821         missing from the list.
5822         * doc/md.texi (movmem): Explicitly state that expected alignment is
5823         to be expressed in bytes.
5824         (setmem): Explicitly state that expected alignment is to be expressed
5825         in bytes.
5826
5827 2008-07-08  Joseph Myers  <joseph@codesourcery.com>
5828
5829         * reload.c (find_reloads_subreg_address): Do not require validity
5830         of address in original mode before reloading address.
5831
5832 2008-07-07  Tianwei Sheng  <tianweis@google.com>
5833
5834         * df-core.c (df_remove_problem): Adjust the access to avoid out of
5835         bounds array access.
5836
5837 2008-07-08  Jakub Jelinek  <jakub@redhat.com>
5838
5839         * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
5840
5841 2008-07-05  Daniel Berlin  <dberlin@dberlin.org>
5842
5843         Fix PR tree-optimization/23455
5844         Fix PR tree-optimization/35286
5845         Fix PR tree-optimization/35287
5846         * Makefile.in (OBJS-common): Remove tree-vn.o.
5847         (tree-vn.o): Remove.
5848         * dbgcnt.def: Add treepre_insert debug counter.
5849         * gcc/tree-flow.h (add_to_value): Updated for other changes.
5850         (debug_value_expressions): Ditto.
5851         (print_value_expressions): Ditto.
5852         * tree-pretty-print.c (dump_generic_node): Updated for
5853         VALUE_HANDLE removal.
5854         * tree-ssa-dom.c (record_equality): Ditto.
5855         (cprop_operand): Ditto.
5856         (lookup_avail_expr): Ditto.
5857         * tree-ssa-threadedge.c
5858         (record_temporary_equivalences_from_stmts_at_dest): Ditto.
5859         (simplify_control_stmt_condition): Ditto.
5860         * tree.c (tree_code_size): Ditto.
5861         (tree_node_structure): Ditto.
5862         (iterative_hash_expr): Ditto.
5863         * tree.def: Ditto.
5864         * tree.h (VALUE_HANDLE_ID): Ditto.
5865         (VALUE_HANDLE_EXPR_SET): Ditto.
5866         (struct tree_value_handle): Ditto.
5867         (union tree_node): Ditto.
5868         * treestruct.def: Ditto.
5869         * tree-vn.c: Removed.
5870         * tree-ssa-pre.c: Rewritten entirely.
5871         * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
5872         (constant_value_ids): Ditto.
5873         (vn_nary_op_t): Moved to header.
5874         (vn_phi_t): Ditto.
5875         (vn_reference_op_t): Ditto
5876         (vn_reference_t): Ditto.
5877         (next_value_id): New variable.
5878         (VN_INFO): Add an assert.
5879         (vn_constant_eq): New function.
5880         (vn_constant_hash): Ditto.
5881         (get_or_alloc_constant_value_id): Ditto.
5882         (value_id_constant_p): Ditto.
5883         (vn_reference_compute_hash): De-staticify.
5884         (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
5885         Disable some code with a FIXME.  Remove VALUE_HANDLE use.
5886         (valueize_refs): Update opcode if it changes from ssa name to constant.
5887         (vn_reference_lookup_1): Add new argument.
5888         (vn_reference_lookup):  Ditto.
5889         (vn_reference_lookup_pieces): New function.
5890         (vn_reference_insert): Add return type. Modify to deal with value ids.
5891         (vn_reference_insert_pieces):  New function.
5892         (vn_nary_op_compute_hash): De-staticify.
5893         (vn_nary_op_eq): Ditto.
5894         (vn_nary_op_lookup_pieces): New function.
5895         (vn_nary_op_lookup): Add new argument.
5896         (vn_nary_op_insert_pieces): New function.
5897         (vn_nary_op_insert): Add return type. Modify to deal with value ids.
5898         (vn_phi_insert): Ditto.
5899         (visit_unary_op): Update for callee changes.
5900         (visit_binary_op): Ditto.
5901         (visit_reference_op_load): Ditto.
5902         (visit_reference_op_store): Ditto.
5903         (init_scc_vn): Init next_value_id, constant_to_value_id and
5904         constant_value_ids.
5905         (free_scc_vn): Free them.
5906         (set_hashtable_value_ids): New function.
5907         (run_scc_vn): Use it.
5908         (get_max_value_id): New function.
5909         (get_next_value_id): Ditto.
5910         (expressions_equal_p): Moved from tree-vn.c
5911         (sort_vuses): Ditto.
5912         (sort_vuses_heap): Ditto.
5913         * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
5914         above).
5915         * tree.c (iterative_hash_hashval_t): Made non-static
5916         * tree.h (iterative_hash_hashval_t): Declare it.
5917
5918 2008-07-08  Martin Jambor  <mjambor@suse.cz>
5919
5920         * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
5921         instead of ipa_create_node_params.
5922         (ipcp_driver): Allocate infos with ipa_check_create_node_params and
5923         ipa_check_create_edge_args, free them with
5924         free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
5925
5926         * ipa-prop.c: Include flags.h and tree-inline.h.
5927         (ipa_node_params_vector): New variable.
5928         (ipa_edge_args_vector): New variable.
5929         (edge_removal_hook_holder): New variable.
5930         (node_removal_hook_holder): New variable.
5931         (edge_duplication_hook_holder): New variable.
5932         (node_duplication_hook_holder): New variable.
5933         (ipa_detect_param_modifications): Check for presence of modified flags.
5934         (ipa_compute_jump_functions): Check for presence of jump functions.
5935         (ipa_free_edge_args_substructures): New function.
5936         (ipa_create_node_params): Removed.
5937         (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
5938         (ipa_free_node_params_substructures): New function.
5939         (ipa_free_all_node_params): Changed to deallocate the on-the-side
5940         vector.
5941         (ipa_edge_removal_hook): New function.
5942         (ipa_node_removal_hook): New function.
5943         (duplicate_array): New function.
5944         (ipa_edge_duplication_hook): New function.
5945         (ipa_node_duplication_hook): New function.
5946         (ipa_register_cgraph_hooks): New function.
5947         (ipa_unregister_cgraph_hooks): New function.
5948         (free_all_ipa_structures_after_ipa_cp): New function.
5949
5950         * ipa-prop.h: Include vec.h.
5951         (ipa_node_params_t): New typedef with vector types for it.
5952         (ipa_edge_args_t):  New typedef with vector types for it.
5953         (IPA_NODE_REF): Changed to access an on-the-side vector.
5954         (IPA_EDGE_REF): Changed to access an on-the-side vector.
5955         (ipa_check_create_node_params): New function.
5956         (ipa_check_create_edge_args): New function.
5957
5958         * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h.  Converted
5959         all users.
5960
5961 2008-07-07  Tom Tromey  <tromey@redhat.com>
5962
5963         * configure, config.in: Rebuilt.
5964         * configure.ac: Don't check for scandir or alphasort.
5965
5966 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
5967
5968         * config/arm/arm.c (arm_init_neon_builtins): Register built-in
5969         types immediately after creating them.
5970
5971 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
5972
5973         * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
5974
5975 2008-07-07  Fernando Pereira <fernando@cs.ucla.edu>
5976
5977         * tree-ssa-structalias.c (compute_points_to_sets): Add call to
5978         dump_constraint_graph.
5979         (dump_constraint_edge): New function.
5980         (dump_constraint_graph): New function.
5981         (debug_constraint_graph): New function.
5982         (dump_constraint): Removed useless comparison.
5983         * tree-ssa-structalias.h (dump_constraint_edge): Declare.
5984         (dump_constraint_graph): Declare.
5985         (debug_constraint_graph): Declare.
5986         * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
5987
5988 2008-07-07  Kai Tietz  <kai.tietz@onevision.com>
5989
5990         * config/i386/i386.c (is_va_list_char_pointer): New.
5991         (ix86_va_start): Replace compare with ms_va_list_type_node
5992         by is_va_list_char_pointer.
5993         (ix86_gimplify_va_arg): Likewise.
5994
5995 2008-07-07  Martin Jambor  <mjambor@suse.cz>
5996
5997         * cgraph.c (cgraph_edge_max_uid): New variable.
5998         (struct cgraph_edge_hook_list): New type.
5999         (struct cgraph_node_hook_list): New type.
6000         (struct cgraph_2edge_hook_list): New type.
6001         (struct cgraph_2node_hook_list): New type.
6002         (first_cgraph_edge_removal_hook): New variable.
6003         (first_cgraph_node_removal_hook): New variable.
6004         (first_cgraph_edge_duplicated_hook): New variable.
6005         (first_cgraph_node_duplicated_hook): New variable.
6006         (cgraph_add_edge_removal_hook): New function.
6007         (cgraph_remove_edge_removal_hook): New function.
6008         (cgraph_call_edge_removal_hooks):  New function.
6009         (cgraph_add_node_removal_hook):  New function.
6010         (cgraph_remove_node_removal_hook):  New function.
6011         (cgraph_call_node_removal_hooks):  New function.
6012         (cgraph_add_edge_duplication_hook):  New function.
6013         (cgraph_remove_edge_duplication_hook):  New function.
6014         (cgraph_call_edge_duplication_hooks):  New function.
6015         (cgraph_add_node_duplication_hook):  New function.
6016         (cgraph_remove_node_duplication_hook):  New function.
6017         (cgraph_call_node_duplication_hooks):  New function.
6018         (cgraph_create_edge): Assign to edge uid.
6019         (cgraph_remove_edge): Call edge removal hooks.
6020         (cgraph_node_remove_callees): Call edge removal hooks.
6021         (cgraph_node_remove_callers): Call edge removal hooks.
6022         (cgraph_remove_node): Call node removal hooks.
6023         (cgraph_clone_edge): Call edge duplication hooks.
6024         (cgraph_clone_node): Call node duplication hooks.
6025
6026         * cgraph.h (cgraph_edge): New field uid.
6027         (cgraph_edge_hook): New type.
6028         (cgraph_node_hook): New type.
6029         (cgraph_2edge_hook): New type.
6030         (cgraph_2node_hook): New type.
6031
6032 2008-07-07  Andreas Tobler  <a.tobler@schweiz.org>
6033
6034         * config.in: Regenerate.
6035
6036 2008-07-07  Vladimir Prus  <vladimir@codesourcery.com>
6037
6038         * gcc.c (print_sysroot): New.
6039         (option_map, display_help, process_command): Handle the
6040         -print-sysroot option.
6041         (main): Print the sysroot if requested.
6042         * doc/invoke.texi (Debugging Options): Document -print-sysroot.
6043
6044 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6045
6046         PR target/34780
6047         * unwind-pe.h (size_of_encoded_value): add attribute unused.
6048
6049 2008-07-07  Daniel Jacobowitz  <dan@codesourcery.com>
6050
6051         * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
6052         (assign_parm_setup_block_p): Also check mode of entry_parm.
6053
6054 2008-07-07  Richard Guenther  <rguenther@suse.de>
6055
6056         * tree-ssa-structalias.h (set_used_smts): Remove.
6057         * tree-ssa-structalias.c (used_smts): Likewise.
6058         (set_used_smts): Likewise.
6059         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
6060         call to set_used_smts.
6061
6062 2008-07-07  Richard Guenther  <rguenther@suse.de>
6063
6064         * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
6065         (new_var_info): Set it to false.
6066         (solution_set_add): Correctly handle pointers outside a var and
6067         inside a field.
6068         (type_safe): Treat variables with is_full_var properly.
6069         (do_sd_constraint): Likewise.
6070         (do_ds_constraint): Likewise.
6071         (process_constraint): Remove zeroing offset for !use_field_sensitive.
6072         (get_constraint_for_ptr_offset): New function.
6073         (get_constraint_for_component_ref): For addresses at least include
6074         the last field of the variable.  Handle is_full_vars properly.
6075         (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
6076         (handle_ptr_arith): Remove.
6077         (find_func_aliases): Simplify assignment handling.
6078         (create_function_info_for): For parameter and result varinfos set
6079         is_full_var flag.
6080         (create_variable_info_for): Set is_full_var flag whenever we
6081         just created a single varinfo for a decl.
6082         (init_alias_vars): Initialize use_field_sensitive from
6083         max-fields-for-field-sensitive parameter.
6084
6085 2008-07-07  Richard Guenther  <rguenther@suse.de>
6086
6087         PR tree-optimization/36713
6088         * tree-flow-inline.h (is_call_used): New function.
6089         * tree-nrv.c (dest_safe_for_nrv_p): Use it.
6090         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
6091         * tree-outof-ssa.c (create_temp): Set call-used flag if required.
6092
6093 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
6094
6095         * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
6096
6097 2008-07-07  Mark Shinwell  <shinwell@codesourcery.com>
6098
6099         * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
6100
6101 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
6102             Nathan Sidwell  <nathan@codesourcery.com>
6103
6104         * config.gcc (m68k-*-linux*): Add with_arch.  Add sysroot-suffix.h
6105         to tm_file.  Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
6106         tmake_file.
6107         * config/m68k/t-linux: New.
6108         * doc/install.texi: Document m68k-*-linux is now multilibbed by
6109         default.
6110
6111 2008-07-07  Nathan Sidwell  <nathan@codesourcery.com>
6112
6113         * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
6114         * config/m68k/m68k-devices.def: Remove multilibs that only differ
6115         by MAC/EMAC.
6116
6117 2008-07-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6118
6119         * gcc.c (execute): Fix -Wc++-compat warning.
6120
6121 2008-07-06  H.J. Lu  <hongjiu.lu@intel.com>
6122
6123         PR target/36720
6124         * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
6125         constant for little endian.
6126
6127 2008-07-06  Richard Sandiford  <rdsandiford@googlemail.com>
6128
6129         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
6130         mips_base_mips16 instead of TARGET_MIPS16.
6131         (mips_base_mips16): Declare.
6132         * config/mips/mips.c (mips_base_mips16): Make global.
6133         (was_mips16_p): Remove GTY marker.
6134         (was_mips16_pch_p): New variable.
6135         (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
6136         (mips_override_options): Force to non-MIPS16 mode initially.
6137         Do not complain about MIPS16 PIC incompatibilities here.
6138         Only allow -mgpopt if -mexplicit-relocs is in force for
6139         non-MIPS16 code.
6140
6141 2008-07-06  Andreas Tobler  <a.tobler@schweiz.org>
6142
6143         * configure.ac: Check for caddr_t, define to char * if not defined.
6144         * configure: Regenerate.
6145         * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
6146         (mmap_gt_pch_use_address): Likewise.
6147         * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
6148
6149 2008-07-06  Richard Guenther  <rguenther@suse.de>
6150
6151         * tree-ssa-structalias.c (struct variable_info): Remove has_union.
6152         (new_var_info): Deal with it.
6153         (solution_set_add): Likewise.
6154         (bitpos_of_field): Make signed, fix.
6155         (struct fieldoff): Remove type and decl fields.  Make size field
6156         unsigned HOST_WIDE_INT.  Add has_unknown_size and may_have_pointers
6157         flags.
6158         (fieldoff_compare): Deal with it.
6159         (push_fields_onto_fieldstack): Remove has_union argument, glob
6160         adjacent non-pointer fields together.
6161         (create_function_info_for): Do not set has_union.
6162         (create_variable_info_for): Simplify.
6163
6164 2008-07-06  Kai Tietz  <kai.tietz@onevision.com>
6165
6166         * config.gcc (extra_headers): Add cross-stdarg.h for target
6167         x86_64-*-* and i?86-*-*.
6168         * config/i386/cross-stdarg.h: New.
6169         * builtins.c (std_fn_abi_va_list): New.
6170         (std_canonical_va_list_type): New.
6171         (stabilize_va_list): Replace va_list_type_node use by
6172         mtarget.canonical_va_list_type.
6173         (gimplify_va_arg_expr): Likewise.
6174         (expand_builtin_va_copy): Replace va_list_type_node use by
6175         mtarget.fn_abi_va_list.
6176         * tree-sra.c (is_va_list_type): New helper.
6177         (decl_can_be_decomposed_p): Replace
6178         va_list_type_node use by is_va_list_type.
6179         * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
6180         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
6181         * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
6182         * config/i386/i386-protos.h (ix86_get_valist_type): New.
6183         (ix86_enum_va_list): New.
6184         * config/i386/i386.c (sysv_va_list_type_node): New.
6185         (ms_va_list_type_node): New.
6186         (ix86_function_type_abi): Remove sorry.
6187         (ix86_build_builtin_va_list_abi): New.
6188         (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
6189         for 64-bit targets.
6190         (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
6191         (ix86_init_builtins_va_builtins_abi): New.
6192         (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
6193         for 64-bit targets.
6194         (ix86_handle_abi_attribute): New.
6195         (attribute_spec): Add sysv_abi and ms_abi.
6196         (ix86_fn_abi_va_list): New.
6197         (ix86_canonical_va_list_type): New.
6198         (ix86_enum_va_list): New.
6199         (TARGET_FN_ABI_VA_LIST): New.
6200         (TARGET_CANONICAL_VA_LIST_TYPE): New.
6201         * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
6202         * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
6203         (TARGET_CANONICAL_VA_LIST_TYPE): New.
6204         (TARGET_ENUM_VA_LIST): New.
6205         * expr.h (std_fn_abi_va_list): New.
6206         (std_canonical_va_list_type): New.
6207         * target-def.h (TARGET_FN_ABI_VA_LIST): New.
6208         (TARGET_CANONICAL_VA_LIST_TYPE): New.
6209         (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
6210         TARGET_CANONICAL_VA_LIST_TYPE.
6211         * target.h (struct gcc_target): Add fn_abi_va_list hook
6212         and canonical_va_list_type hook.
6213
6214 2008-07-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6215
6216         * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
6217         integral and pointer types.
6218
6219 2008-07-04  Roger Sayle  <roger@eyesopen.com>
6220
6221         * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
6222         the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
6223
6224 2008-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
6225
6226         PR target/36684
6227         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
6228
6229 2008-07-04  Jakub Jelinek  <jakub@redhat.com>
6230
6231         * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
6232         build_gimple_modify_stmt.
6233         (build_arrays, gen_inbound_check): Likewise.  Force RHS to be
6234         gimple operand.  Use fold_build* instead of build*.
6235
6236 2008-07-04  Richard Guenther  <rguenther@suse.de>
6237
6238         * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
6239         (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
6240         properly to compute the reachability set if we do field-sensitive PTA.
6241         * invoke.texi (max-fields-for-field-sensitive): Document default.
6242         * opts.c (decode_options): Set max-fields-for-field-sensitive to
6243         100 for optimize >= 2.
6244
6245 2008-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6246
6247         * ggc-zone.c (lookup_page_table_if_allocated,
6248         set_page_table_entry, zone_find_object_size, alloc_small_page,
6249         alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
6250         new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
6251         -Wc++-compat and/or -Wcast-qual warnings.
6252
6253 2008-07-04  Alan Modra  <amodra@bigpond.net.au>
6254
6255         PR target/36634
6256         * config/rs6000/rs6000.md (call, call_value): Don't arrange for
6257         pic_offset_table_rtx to be marked as used here.
6258         (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
6259         TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
6260         (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
6261         (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
6262         !TARGET_SECURE_PLT.
6263
6264 2008-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6265
6266         * alloc-pool.c (hash_descriptor, eq_descriptor,
6267         alloc_pool_descriptor): Fix -Wc++-compat warnings.
6268         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
6269         Likewise.
6270         * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
6271         loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
6272         final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
6273         * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
6274         Likewise.
6275
6276 2008-07-03  Eric Botcazou  <ebotcazou@adacore.com>
6277
6278         * tree-flow.h (loop_only_exit_p): Declare.
6279         * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
6280         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
6281         the number of iterations if it is constant.  Otherwise, if this is the
6282         only possible exit of the loop, use the conservative estimate on the
6283         number of iterations of the entire loop if available.
6284
6285 2008-07-03  Richard Sandiford  <rdsandiford@googlemail.com>
6286
6287         * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
6288         * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
6289         Add synchronization functions.
6290         * config/sync.c: New file.
6291         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
6292         (LIBGCC_SYNC_CFLAGS): Likewise.
6293
6294 2008-07-03  Uros Bizjak  <ubizjak@gmail.com>
6295
6296         PR target/36710
6297         * config/i386/i386.md (mode): Add TF to "mode" attribute.
6298         (*pushtf_sse): New insn pattern.
6299         (pushtf splitters): New splitters.
6300
6301 2008-07-03  Michael Meissner  <gnu@the-meissners.org>
6302
6303         PR middle-end/35736
6304         * predict.c (build_predict_expr): Use void_type_node for the tree
6305         type, instead of NULL_TREE.
6306
6307 2008-07-03  H.J. Lu  <hongjiu.lu@intel.com>
6308
6309         * config/i386/i386.c (contains_aligned_value_p): Return true
6310         for TCmode.
6311         (ix86_data_alignment): Align TCmode to 128bits.
6312         (ix86_local_alignment): Likewise.
6313
6314 2008-07-03  Andrew Haley  <aph@redhat.com>
6315
6316         PR bootstrap/33304
6317         * vec.h (VEC_TA): New.
6318         (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
6319         DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
6320         * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
6321         (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
6322         (C_COMMON_FIXED_TYPES): Remove first arg.
6323         (C_COMMON_FIXED_MODE_TYPES): Likewise.
6324         * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
6325         MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
6326         not to use empty macro arguments.
6327
6328 2008-07-02  Joseph Myers  <joseph@codesourcery.com>
6329
6330         * config/alpha/vms_tramp.asm, config/arm/crti.asm,
6331         config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
6332         config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
6333         config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
6334         config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
6335         config/i386/sol2-gc1.asm, config/ia64/crti.asm,
6336         config/ia64/crtn.asm, config/m68hc11/larith.asm,
6337         config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
6338         config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
6339         config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
6340         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
6341         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
6342         config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
6343         config/rs6000/e500crtres64gpr.asm,
6344         config/rs6000/e500crtres64gprctr.asm,
6345         config/rs6000/e500crtrest32gpr.asm,
6346         config/rs6000/e500crtrest64gpr.asm,
6347         config/rs6000/e500crtresx32gpr.asm,
6348         config/rs6000/e500crtresx64gpr.asm,
6349         config/rs6000/e500crtsav32gpr.asm,
6350         config/rs6000/e500crtsav64gpr.asm,
6351         config/rs6000/e500crtsav64gprctr.asm,
6352         config/rs6000/e500crtsavg32gpr.asm,
6353         config/rs6000/e500crtsavg64gpr.asm,
6354         config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
6355         config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
6356         config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
6357         config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
6358         config/sparc/sol2-cn.asm: Remove .file directives.
6359
6360 2008-07-02  Richard Sandiford  <rdsandiford@googlemail.com>
6361
6362         * resource.c (mark_referenced_resources): Look inside
6363         UNSPEC_VOLATILEs and ASM_INPUTs.
6364
6365 2008-07-02  Ian Lance Taylor  <iant@google.com>
6366
6367         * rtlanal.c (add_reg_note): New function.
6368         * rtl.h (add_reg_note): Declare.
6369         * auto-inc-dec.c (attempt_change): Use add_reg_note.
6370         * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
6371         * builtins.c (expand_builtin_longjmp): Likewise.
6372         (expand_builtin_nonlocal_goto): Likewise.
6373         * calls.c (emit_call_1, expand_call): Likewise.
6374         * cfgexpand.c (add_reg_br_prob_note): Likewise.
6375         * cfglayout.c (fixup_reorder_chain): Likewise.
6376         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
6377         (commit_one_edge_insertion): Likewise.
6378         * combine.c (move_deaths, distribute_notes): Likewise.
6379         * df-problems.c (df_set_note): Likewise.
6380         * emit-rtl.c (link_cc0_insns, try_split): Likewise.
6381         (set_unique_reg_note): Likewise.
6382         (emit_copy_of_insn_after): Likewise.
6383         * expr.c (expand_expr_real): Likewise.
6384         * gcse.c (add_label_notes): Likewise.
6385         * haifa-sched.c (create_check_block_twin): Likewise.
6386         * jump.c (mark_jump_label_1): Likewise.
6387         * loop-doloop.c (add_test, doloop_modify): Likewise.
6388         * loop-unswitch.c (compare_and_jump_seq): Likewise.
6389         * lower-subreg.c (move_eh_region_note): Likewise.
6390         * optabs.c (emit_libcall_block): Likewise.
6391         * predict.c (predict_insn): Likewise.
6392         (combine_predictions_for_insn): Likewise.
6393         * recog.c (peephole2_optimize): Likewise.
6394         * regmove.c (try_auto_increment): Likewise.
6395         * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
6396         * reload.c (find_reloads): Likewise.
6397         * reload1.c (fixup_eh_region_note): Likewise.
6398         (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
6399         * reorg.c (delete_prior_computation): Likewise.
6400         (delete_computation, dbr_schedule): Likewise.
6401         * config/pa/pa.c (legitimize_pic_address): Likewise.
6402         * config/sh/sh.c (sh_reorg): Likewise.
6403
6404 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
6405
6406         PR target/36669
6407         * config/libgcc-glibc.ver: Add %exclude.
6408         * config/m32r/libgcc-glibc.ver: Likwise.
6409         * config/s390/libgcc-glibc.ver: Likwise.
6410         * config/sh/libgcc-glibc.ver: Likwise.
6411         * config/sparc/libgcc-sparc-glibc.ver: Likwise.
6412
6413         * config/i386/libgcc-glibc.ver: New.
6414
6415         * config/i386/libgcc-x86_64-glibc.ver: Removed.
6416
6417 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
6418
6419         * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
6420         from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
6421         i[34567]86-*-linux*, x86_64-*-linux*.  Add
6422         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
6423         i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
6424         x86_64-*-linux*.  Add i386/t-linux to tmake_file for
6425         i[34567]86-*-linux*, x86_64-*-linux*.
6426
6427         * libgcc-std.ver: Add empty GCC_4.4.0.
6428
6429         * mkmap-symver.awk: Support multiple versions per symbol.
6430
6431         * config/i386/i386.c (ix86_init_builtins): Always define
6432         __builtin_fabsq and __builtin_copysignq with fallbacks.
6433         (ix86_expand_builtin): Emit normal call for __builtin_fabsq
6434         and __builtin_copysignq if SSE2 isn't available.
6435
6436         * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
6437         (LIBGCC2_TF_CEXT): Likwise.
6438         (TF_SIZE): Likwise.
6439
6440         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
6441
6442         * config/i386/sfp-machine.h: Moved to libgcc.
6443
6444         * config/i386/sfp-machine.h: New.
6445         * config/i386/t-linux: Likwise.
6446
6447         * config/i386/t-darwin: Remove softfp_wrap_start and
6448         softfp_wrap_end.
6449         * config/i386/t-darwin64: Likewise.
6450
6451         * config/i386/t-fprules-softfp64: Renamed to ...
6452         * config/i386/t-fprules-softfp: This.
6453
6454         * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
6455         and softfp_wrap_end.
6456
6457 2008-07-02  Jason Merrill  <jason@redhat.com>
6458
6459         * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
6460
6461         * tree.c (ctor_to_list): New fn.
6462         * tree.h: Declare it.
6463         (CONSTRUCTOR_ELT): New macro.
6464         (CONSTRUCTOR_NELTS): New macro.
6465
6466 2008-07-02  Richard Guenther  <rguenther@suse.de>
6467
6468         * tree-ssa-structalias.c (struct variable_info): Reorder
6469         to fill padding on 64bit hosts.  Make collapsed_to an int.
6470         (get_varinfo_fc): Deal with that.
6471         (new_var_info): Likewise.
6472         (collapse_rest_of_var): Likewise.
6473
6474 2008-07-02  Joshua Sumali  <jsumali@redhat.com>
6475
6476         * doc/install.texi (--enable-java-home): Document.
6477         (--enable-aot-compile-rpm): Likewise.
6478         (--with-arch-directory): Likewise.
6479         (--with-os-directory): Likewise.
6480         (--with-origin-name): Likewise.
6481         (--with-arch-suffix): Likewise.
6482         (--with-jvm-root-dir): Likewise.
6483         (--with-jvm-jar-dir): Likewise.
6484         (--with-python-dir): Likewise.
6485
6486 2008-07-02  Richard Guenther  <rguenther@suse.de>
6487
6488         * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
6489         from decls explicitly.  Merge operand checking from tuples.
6490
6491 2008-07-02  Martin Jambor  <mjambor@suse.cz>
6492
6493         * tree-switch-conversion.c: Included timevar.h which I forgot before.
6494
6495 2008-07-02  Martin Jambor  <mjambor@suse.cz>
6496
6497         * tree-switch-conversion.c: Included timevar.h
6498         (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
6499
6500         * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
6501
6502 2008-07-02  Martin Jambor  <mjambor@suse.cz>
6503
6504         * tree-switch-conversion.c: Corrected various comments and
6505         whitespace issues
6506         (build_constructors): Fixed minor formatting mistakes.
6507
6508         * invoke.texi (Optimize Options): Corrected the
6509         switch-conversion-max-branch-ratio parameter.
6510
6511 2008-07-02  Mark Shinwell  <shinwell@codesourcery.com>
6512
6513         * final.c (asm_insn_count): Return zero for an empty asm body.
6514
6515 2008-07-02  Richard Guenther  <rguenther@suse.de>
6516
6517         * bitmap.h (bitmap_set_bit): Return bool.
6518         (bitmap_clear_bit): Likewise.
6519         * bitmap.c (bitmap_set_bit): Return if the bit changed.  Only
6520         write to the bitmap if it would.
6521         (bitmap_clear_bit): Likewise.
6522         * tree-ssa-structalias.c (add_implicit_graph_edge): Use
6523         bitmap_set_bit return value.
6524         (add_pred_graph_edge): Likewise.
6525         (add_graph_edge): Likewise.
6526         (do_sd_constraint): Likewise.
6527         (do_ds_constraint): Likewise.
6528
6529 2008-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6530
6531         * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
6532         Fix -Wc++-compat and/or -Wcast-qual warnings.
6533         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
6534         gen_regparm_prefix): Likewise.
6535         * vmsdbgout.c (write_modbeg, lookup_filename,
6536         vmsdbgout_source_line, vmsdbgout_init): Likewise.
6537
6538 2008-07-02  Danny Smith  <dannysmith@users.sourceforge.net>
6539
6540         * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
6541         defaults.h definition apply.
6542
6543 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
6544
6545         * function.c (assign_parm_remove_parallels): New.
6546         (assign_parm_setup_block_p): Do not return true for non-BLKmode
6547         PARALLELs.
6548         (assign_parm_setup_block): Do not handle them.
6549         (assign_parm_setup_reg, assign_parm_setup_stack): Call
6550         assign_parm_remove_parallels.
6551
6552 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
6553
6554         * c-typeck.c (convert_for_assignment): Use
6555         vector_targets_convertible_p.
6556         * c-common.c (vector_targets_convertible_p): New.
6557         * c-common.h (vector_targets_convertible_p): New prototype.
6558         * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
6559         opaque_p_V2SI_type_node.
6560
6561 2008-07-01  Steve Ellcey  <sje@cup.hp.com>
6562
6563         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
6564         RFmode constants.
6565
6566 2008-07-01  Uros Bizjak  <ubizjak@gmail.com>
6567
6568         * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
6569         TFmode constants via two element DImode vector for hosts with
6570         HOST_BITS_PER_WIDE_INT < 64.
6571         (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
6572         also for HOST_BITS_PER_WIDE_INT < 64.
6573
6574 2008-07-01  Richard Guenther  <rguenther@suse.de>
6575
6576         PR tree-optimization/36666
6577         * tree-ssa-structalias.c (get_constraint_for_1): Declare.
6578         (get_constraint_exp_from_ssa_var): Split into ...
6579         (get_constraint_exp_for_temp): ... this ...
6580         (get_constraint_for_ssa_var): ... and that.
6581         Return constraint expressions for all touched sub-fields
6582         if the results address is not taken.
6583         (process_constraint): Remove assertion that aggregate
6584         assignments do not happen at this place.
6585         (get_constraint_for_component_ref): Add address_p argument.
6586         Return constraint expressions for all touched sub-fields
6587         if the results address is not taken.
6588         (do_deref): Use get_constraint_exp_for_temp.
6589         (get_constraint_for_1): Rename from ...
6590         (get_constraint_for): ... this.  Add the old function as wrapper.
6591         (do_structure_copy): Use get_constraint_for_1.
6592
6593 2008-07-01  Martin Jambor  <mjambor@suse.cz>
6594
6595         * Makefile.in (tree-switch-conversion.o): Add.
6596         (OBJS-common): Add tree-swtch-conversion.o.
6597         * passes.c (init_optimization_passes): Add pass_convert_switch.
6598         * tree-pass.h: (pass_convert_switch): Add.
6599         * tree-switch-conversion.c: New file.
6600         * gcc.dg/tree-ssa/cswtch.c: New testcase.
6601         * common.opt (ftree-cswtch): New option.
6602         * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
6603         * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
6604         * opts.c (decode_options): Set flag_tree_switch_conversion when
6605         optimization level is >= 2.
6606         * doc/invoke.texi (Optimize Options): Added description of
6607         -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
6608
6609 2008-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6610
6611         * config/darwin-driver.c (darwin_default_min_version): Fix
6612         -Wc++-compat warnings.
6613
6614 2008-06-30  Uros Bizjak  <ubizjak@gmail.com>
6615
6616         * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
6617         of operand 0.
6618
6619 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
6620
6621         * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
6622
6623 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
6624
6625         PR rtl-optimization/34744
6626         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
6627         (df_scan_free_internal): Free data structures not
6628         allocated in storage pools.
6629         (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
6630         (df_refs_add_to_chains): Use df_scan_free_ref_vec and
6631         df_scan_free_mws_vec.
6632         * dse.c (dse_step6): Free offset_map_p and offset_map_n
6633         unconditionally.
6634
6635 2008-06-30  H.J. Lu  <hongjiu.lu@intel.com>
6636
6637         * config/i386/i386.c (contains_aligned_value_p): Return true
6638         for __float128.
6639         (ix86_function_arg_boundary): Return its natural boundary
6640         for __float128.
6641         (return_in_memory_32): Don't check TDmode.
6642         (ix86_split_to_parts): Support splitting into 4 parts and
6643         support TFmode for 32bit target.
6644         (ix86_split_long_move): Support splitting into 4 parts.
6645         (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
6646         for SSE2.
6647         (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
6648         (ix86_init_builtins): Here.
6649         (ix86_scalar_mode_supported_p): Always return true for TFmode.
6650         (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
6651         'q' and 'w', respectively.
6652
6653         * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
6654         TARGET_64BIT.
6655         (movtf_internal): Likewise.
6656         (<code>tf2): Likewise.
6657         (*absnegtf2_sse): Likewise.
6658         (copysign<mode>3): Likewise.
6659         (copysign<mode>3_const): Likewise.
6660         (copysign<mode>3_var): Likewise.
6661         (define_split UNSPEC_COPYSIGN): Likewise.
6662         * config/i386/sse.md (*nandtf3): Likewise.
6663         (<code>tf3): Likewise.
6664         (*<code>tf3): Likewise.
6665
6666 2008-06-30  Joey Ye  <joey.ye@intel.com>
6667             H.J. Lu  <hongjiu.lu@intel.com>
6668
6669         * global.c (compute_regsets): Set frame_pointer_needed here.
6670         * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
6671
6672 2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
6673
6674         * doc/install.texi (specific): Expand Windows build notes.
6675
6676 2008-06-30  Ira Rosen  <irar@il.ibm.com>
6677
6678         PR tree-optimization/36648
6679         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
6680         number of prolog iterations by step. Fix the comment.
6681
6682 2008-06-30  Richard Guenther  <rguenther@suse.de>
6683
6684         PR middle-end/36671
6685         * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
6686         handle calls from ECF_MALLOC functions.
6687         (handle_pure_call): ECF_MALLOC functions do not return
6688         call-used memory.
6689         (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
6690
6691 2008-06-29  Andreas Schwab  <schwab@suse.de>
6692
6693         * config/m68k/m68k.c (print_operand): Always print a float
6694         constant in hex.
6695         * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
6696         (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
6697         Remove macros.
6698
6699         * config/rs6000/x-linux64: Remove never used file.
6700
6701 2008-06-29  Richard Guenther  <rguenther@suse.de>
6702
6703         * tree-ssa-structalias.h (compute_points_to_sets): Adjust
6704         prototype.
6705         (struct alias_info): Move ...
6706         * tree-ssa-alias.c: ... here.
6707         (update_alias_info): Declare.
6708         (compute_may_aliases): Call it.
6709         (update_alias_info): New function.
6710         * tree-ssa-structalias.c (update_alias_info): Move ...
6711         * tree-ssa-alias.c (update_alias_info_1): ... here.
6712         * tree-ssa-structalias.c (process_constraint_1): Remove
6713         unused from_call argument.  Rename to ...
6714         (process_constraint): ... this.  Delete old wrapper.
6715         (make_constraint_to): Adjust callers.
6716         (handle_const_call): Likewise.
6717         (handle_pure_call): Likewise.
6718         (init_base_vars): Likewise.
6719         (handle_lhs_call): Likewise.  Remove unnecessary constraint.
6720         (find_func_aliases): We don't need structure copies for
6721         complex types.
6722         (make_constraint_from_anything): Remove.
6723         (create_variable_info_for): For globals make constraints
6724         from escaped, not from anything.
6725         (compute_points_to_sets): Do not call update_alias_info.
6726         (ipa_pta_execute): Use make_constraint_from.
6727
6728 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6729
6730         * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
6731         (bitmap.o-warn, dominance.o-warn): New.
6732         * configure.ac (cxx_compat_warn): Delete.
6733         (loose_warn): Add -Wcast-qual and -Wc++-compat.
6734         * system.h: Remove #pragma diagnostic for -Wcast-qual and
6735         -Wc++-compat.
6736         * configure: Regenerate.
6737
6738         * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
6739         warnings.
6740
6741 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6742
6743         * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
6744         * df-scan.c (df_notes_rescan): Likewise.
6745         * ggc-page.c (set_page_table_entry): Likewise.
6746         * intl.c (gcc_gettext_width): Likewise.
6747         * varasm.c (get_unnamed_section, get_noswitch_section,
6748         get_section): Likewise.
6749
6750 2008-06-28  Andrew Jenner  <andrew@codesourcery.com>
6751
6752         * regrename.c (build_def_use): Don't copy RTX.
6753
6754 2008-06-28  Sandra Loosemore  <sandra@codesourcery.com>
6755
6756         * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
6757         (Type Attributes): Fix nesting of @table and @subsection.  Adjust
6758         punctuation.  Use @ref instead of @xref.
6759         (Function Names): Remove stray @display/@end display.
6760         (C++ Attributes): Use @ref instead of @xref.
6761         (Deprecated Features): Fix punctuation around @xref.
6762         (Backwards Compatibility): Likewise.
6763         * doc/rtl.texi (Incdec): Remove stray @table/@end table.
6764
6765 2008-06-28  Joseph Myers  <joseph@codesourcery.com>
6766
6767         * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
6768         constants for E500 double.
6769
6770 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6771
6772         * doc/rtl.texi (const_vector): Document const_fixed as legitimate
6773         element type of const_vector.
6774
6775 2008-06-28  Uros Bizjak  <ubizjak@gmail.com>
6776
6777         * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
6778         Remove FLAGS_REG clobber from expander pattern.
6779         (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
6780         (anddi3, andsi3, andhi3, andqi3): Ditto.
6781         (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
6782         (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
6783         (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
6784         (ashlsi3, ashlhi3, ashlqi3): Ditto.
6785         (ashrsi3, ashrhi3, ashrqi3): Ditto.
6786         (lshrsi3, lshrhi3, lshrqi3): Ditto.
6787         (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
6788         (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
6789
6790 2008-06-28  Richard Guenther  <rguenther@suse.de>
6791
6792         * tree-ssa-structalias.c (callused_id, var_callused,
6793         callused_tree): Add.
6794         (handle_pure_call): New function.
6795         (find_func_aliases): Call it.
6796         (find_what_p_points_to): Handle the call-used set.
6797         (clobber_what_escaped): Likewise.
6798         (compute_call_used_vars): New function.
6799         (init_base_vars): Init the call-used variable.
6800         (do_sd_constraint): Do not propagate the solution from CALLUSED
6801         but use CALLUSED as a placeholder.
6802         (solve_graph): Likewise.
6803         * tree-flow-inline.h (gimple_call_used_vars): New function.
6804         * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
6805         (compute_call_used_vars): Declare.
6806         * tree-ssa-alias.c (set_initial_properties): Call
6807         compute_call_used_vars.
6808         (reset_alias_info): Clear call-used variables.
6809         (add_call_clobber_ops): Assert we are not called for const/pure
6810         functions.  Remove handling of them.
6811         (add_call_read_ops): Handle pure functions by adding the
6812         call-used set of variables as VUSEs.
6813         * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
6814         (delete_tree_ssa): Free it.
6815         * tree-dfa.c (remove_referenced_var): Clear the var from the
6816         call-used bitmap.
6817
6818 2008-06-28  Kai Tietz  <kai.tietz@onevision.com>
6819
6820         * tree.c (build_varargs_function_type_list): New.
6821         (build_function_type_list_1): New.
6822         (build_function_type_list): Use build_function_type_list_1.
6823         * tree.h (build_varargs_function_type_list): New.
6824
6825 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6826
6827         PR target/34856
6828         * config/spu/spu.c (spu_builtin_splats): Do not generate
6829         invalid CONST_VECTOR expressions.
6830         (spu_expand_vector_init): Likewise.
6831
6832 2008-06-28  Richard Sandiford  <rdsandiford@googlemail.com>
6833
6834         * optabs.c (libfunc_decls): New variable.
6835         (libfunc_decl_hash, libfunc_decl_eq): New functions.
6836         (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
6837         for the same function twice.
6838
6839 2008-06-27  Uros Bizjak  <ubizjak@gmail.com>
6840
6841         * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
6842         ix86_expand_binary_operator directly.
6843         (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
6844         for operand 2.
6845         (*ashrti3_1): Ditto.
6846         (*lshrti3_1): Ditto.
6847         (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
6848         (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
6849         using only one splitter.  Conditionaly execute splitter before or
6850         after peephole2 pass.
6851         (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
6852         (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
6853         Use only one alternative in asm template.
6854         (x86_64_shld): Compress operand 2 constraints. Use only one alternative
6855         in asm template.
6856         (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
6857         "J" operand constraint for operand 2.
6858         (*ashldi3_cconly_rex64): Ditto.
6859         (*ashrdi3_cmp_rex64): Ditto.
6860         (*ashrdi3_cconly_rex64): Ditto.
6861         (*lshrdi3_cmp_rex64): Ditto.
6862         (*lshrdi3_cconly_rex64): Ditto.
6863         * config/i386/predicates.md (const_1_to_63_operand): New predicate.
6864         * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
6865         (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
6866         gen_x86_shrd_1.
6867
6868 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
6869
6870         * gimplify.c (omp_is_private): Don't return true if decl is not
6871         already private on #pragma omp for or #pragma omp parallel for.
6872
6873         PR debug/36617
6874         * tree-cfg.c (struct move_stmt_d): Replace block field with
6875         orig_block and new_block fields.
6876         (move_stmt_r): Only set TREE_BLOCK to p->new_block if
6877         if it used to be NULL, p->orig_block or if p->orig_block is NULL.
6878         (move_block_to_fn): Replace vars_map and new_label_map arguments
6879         with struct move_stmt_d pointer.
6880         (replace_block_vars_by_duplicates): New function.
6881         (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
6882         move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
6883         all subblocks of ORIG_BLOCK to the new function.  Call
6884         replace_block_vars_by_duplicates.
6885         * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
6886         * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
6887         BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
6888         Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
6889         (expand_omp): Temporarily set input_location to the location of
6890         region's controlling stmt.
6891         (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
6892         BIND_EXPR, push ctx->block_vars and gimplification vars into
6893         the BIND_EXPR and its block's BLOCK_VARS instead of directly
6894         into dest function.
6895         (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
6896         there are any BLOCK_VARS.
6897         (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
6898         OMP_PARALLEL or OMP_TASK stmt.
6899         (lower_omp): Save and restore input_location around the lower_omp_1
6900         call.
6901
6902 2008-06-27  Richard Guenther  <rguenther@suse.de>
6903
6904         PR tree-optimization/36400
6905         PR tree-optimization/36373
6906         PR tree-optimization/36344
6907         * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
6908         var_nonlocal, nonlocal_tree, nonlocal_id): New globals
6909         (update_alias_info): Remove call clobbering code.
6910         (make_constraint_to): New helper function.
6911         (make_escape_constraint): Likewise.
6912         (handle_rhs_call): Use it on all pointer containing arguments.
6913         Also mark the static chain escaped.
6914         (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
6915         instead of ANYTHING.
6916         (make_constraint_from): New helper split out from ...
6917         (make_constraint_from_anything): ... here.
6918         (find_func_aliases): Add constraints for escape sites.
6919         (intra_create_variable_infos): Make constraints from NONLOCAL
6920         for parameters.
6921         (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
6922         as ANYTHING.
6923         (clobber_what_p_points_to): Remove.
6924         (clobber_what_escaped): New function.
6925         (init_base_vars): Init NONLOCAL and ESCAPED.
6926         (do_sd_constraint): Do not propagate the solution from ESCAPED
6927         but use ESCAPED as a placeholder.
6928         (solve_graph): Likewise.
6929         * tree-flow.h (clobber_what_p_points_to): Remove.
6930         (clobber_what_escaped): Declare.
6931         * tree-ssa-alias.c (set_initial_properties): Call it.
6932         Remove code clobbering escaped pointers.
6933
6934 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
6935
6936         * function.c (allocate_struct_function): Only allocate a unique
6937         funcdef_no if the decl is nonzero.
6938
6939 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
6940
6941         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
6942         * config/mips/mips.c (mips_split_const_insns): New function.
6943         * config/mips/mips.md (move_type): New attribute.
6944         (mode): Move attribute definition earlier in file.  Add "TI" and "TF".
6945         (dword_mode): New attribute.
6946         (type): Avoid long line.  Map "move_type"s to "type"s,
6947         choosing "multi" for doubleword moves if appropriate.
6948         Swap MTC/MFC comments to match their declaration order.
6949         (extended_mips16): Default to "yes" if "move_type" is "sll0",
6950         "type" is "branch" or "jal" is "direct".
6951         (length): Handle "extended_mips16" first.  Make the default
6952         "0" for "ghost" instructions.  Set the length from "move_type".
6953         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
6954         of "type", with "sll0" for the register alternative.  Remove the
6955         "extended_mips16" attribute.
6956         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
6957         of "type", with "shift_shift" for the register alternative.
6958         Remove the "length" attribute.
6959         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
6960         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
6961         of "type", with "andi" for the register alternative.
6962         (*zero_extendqihi2): Likewise.
6963         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
6964         of "andi" instead of a "type" of "arith".
6965         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
6966         instead of "type".
6967         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
6968         (mov_<store>r, *mov<mode>_ra): Likewise.
6969         (extendsidi2): Use "move_type" instead of "type", with "move"
6970         for the register alternative.
6971         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
6972         of "type", with "signext" for the register alternative.
6973         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
6974         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
6975         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
6976         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
6977         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
6978         (unnamed branch insn): Likewise.
6979         (*movdi_gp32_fp64): Fold into...
6980         (*movdi_32bit): ...here.
6981         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
6982         (*movdf_hardfloat): ...this new pattern.
6983         (*movdf_softfloat): Remove redundant FPR alternatives.
6984         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
6985         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
6986         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
6987         the "move" attribute.
6988         (*movdi_32bit): Use "move_type" instead of "type" and remove the
6989         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
6990         and "store" for COP loads and stores.
6991         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
6992         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
6993         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
6994         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
6995         (*movtf_mips16, *movv2sf): Likewise.
6996         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
6997         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
6998         (mfhc1<mode>): Use "move_type" instead of "move".
6999         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
7000         (loadgp_blockage): Remove the "length" attribute.
7001         (blockage, set_got_version, update_got_version): Likewise.
7002         (call_internal): Remove the "extended_mips16" attribute.
7003         (call_value_internal, call_value_multiple_internal): Likewise.
7004         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
7005         instead of "move".
7006         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
7007         the "length" attribute.
7008
7009 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7010
7011         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
7012         -Wcast-qual warnings.
7013         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
7014         handle_pragma_pop_macro): Likewise.
7015         * collect2.c (resolve_lib_name): Likewise.
7016         * config/arc/arc.c (arc_init): Likewise.
7017         * config/arm/arm.c (neon_builtin_compare,
7018         locate_neon_builtin_icode): Likewise.
7019         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
7020         * config/bfin/bfin.c (bfin_init_machine_status,
7021         bfin_optimize_loop): Likewise.
7022         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
7023         * config/cris/cris.c (cris_init_expanders): Likewise.
7024         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
7025         * config/darwin.c (machopic_indirection_eq,
7026         machopic_indirection_name, machopic_output_indirection): Likewise.
7027         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
7028         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
7029         frv_optimize_membar): Likewise.
7030         * config/i386/cygwin.h (mingw_scan,
7031         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
7032         * config/i386/cygwin1.c (mingw_scan): Likewise.
7033         * config/i386/i386.c (machopic_output_stub): Likewise.
7034         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
7035         i386_pe_unique_section): Likewise.
7036         * config/ia64/ia64.c (ia64_init_machine_status,
7037         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
7038         Likewise.
7039         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
7040         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
7041         * config/m68k/m68k.c (m68k_handle_option,
7042         m68k_sched_md_init_global): Likewise.
7043         * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
7044         mcore_unique_section): Likewise.
7045         * config/mips/mips.c (mips_block_move_straight,
7046         mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
7047         Likewise.
7048         * config/mmix/mmix.c (mmix_init_machine_status,
7049         mmix_encode_section_info): Likewise.
7050         * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
7051         * config/rs6000/rs6000.c (rs6000_init_machine_status,
7052         print_operand_address, output_toc, redefine_groups,
7053         rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
7054         * config/s390/s390.c (s390_init_machine_status): Likewise.
7055         * config/score/score.c (score_block_move_straight,
7056         score_block_move_loop_body): Likewise.
7057         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
7058         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
7059         * emit-rtl.c (find_auto_inc): Likewise.
7060         * gcc.c (translate_options, process_command): Likewise.
7061         * reorg.c (dbr_schedule): Likewise.
7062         * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
7063         * xcoffout.c (xcoffout_declare_function): Likewise.
7064
7065 2008-06-27  Daniel Berlin  <dberlin@dberlin.org>
7066
7067         * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
7068         ipa-pta working again.
7069
7070 2008-06-27  David Edelsohn  <edelsohn@gnu.org>
7071
7072         * config/rs6000/t-aix52: Append large data option to LDFLAGS for
7073         genautomata.
7074
7075 2008-06-27  Edmar Wienskoski  <edmar@freescale.com>
7076
7077         * config.gcc (powerpc*-*-*): Add new core e500mc.
7078         * config/rs6000/e500mc.md: New file.
7079         * config/rs6000/rs6000.c (processor_costs): Add new costs for
7080         e500mc.
7081         (rs6000_override_options): Add e500mc case to
7082         processor_target_table. Altivec and Spe options not allowed
7083         with e500mc. Add isel instruction to e500mc by
7084         default. Initialize rs6000_cost for e500mc.
7085         (rs6000_issue_rate): Set issue rate for e500mc.
7086         * config/rs6000/rs6000.h (processor_type): Add
7087         PROCESSOR_PPCE500MC.
7088         (ASM_CPU_SPEC): Add e500mc.
7089         Set TARGET_ISEL to rs6000_isel.
7090         * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
7091         (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
7092         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
7093         Include e500mc.md.
7094         * doc/invoke.texi: Add e500mc to list of cpus.
7095
7096 2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7097
7098         PR c/34867
7099         * c-lex.c (lex_charconst): Initialize unsignedp.
7100
7101 2008-06-27  Olivier Hainque  <hainque@adacore.com>
7102
7103         * gimplify.c (gimplify_modify_expr_to_memset): Assert our
7104         documented assumptions.
7105
7106 2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>
7107
7108         * dwarf2out.c: Remove trailing white spaces.  Break long line
7109         in comments.
7110
7111 2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>
7112
7113         * libfuncs.h (LTI_synchronize): New libfunc_index.
7114         (synchronize_libfunc): Declare.
7115         * builtins.c (expand_builtin_synchronize): Consider using
7116         synchronize_libfunc before falling back on an asm blockage.
7117         * config/mips/mips.c: Include libfuncs.h
7118         (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
7119
7120 2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>
7121
7122         * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
7123         parameter.  Copy stack_reg to r11 where appropriate.
7124         (no_global_regs_above): Add gpr parameter.
7125         (rs6000_stack_info): Only add padding for SPE save area if we
7126         are saving SPE GPRs and CR.
7127         (saveres_routine_syms): New variable.
7128         (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
7129         Define.
7130         (rs6000_savres_routine_sym): New function.
7131         (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
7132         split out of...
7133         (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
7134         rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
7135         Tweak FPR out-of-line saving.
7136         (rs6000_make_savres_rtx): New function.
7137         (rs6000_use_multiple_p): New function.
7138         (rs6000_savres_strategy): New function.
7139         (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
7140         out-of-line if appropriate.
7141         * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
7142         if we are optimizing for size.
7143         (GP_SAVE_INLINE): Define.
7144         (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
7145         * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
7146         * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
7147         * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
7148         (*save_fpregs_<mode>): Add use of r11.
7149         (*restore_gpregs_<mode>): New insn.
7150         (*return_and_restore_gpregs_<mode>): New insn.
7151         (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
7152         use r11.
7153         * config/rs6000/spe.md (*save_gpregs_spe): New insn.
7154         (*restore_gpregs_spe): New insn.
7155         (*return_and_restore_gpregs_spe): New insn.
7156         * config/rs6000/predicates.md (save_world_operation): Fix check.
7157
7158 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
7159
7160         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
7161         this point, so assert that.
7162
7163 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
7164
7165         * cfganal.c: Include vec.h and vecprim.h.
7166         (compute_idf): Import from...
7167         * tree-into-ssa (compute_idf): ...here.
7168         * basic-block.h (compute_idf): Export.
7169
7170 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
7171
7172         * c-decl.c (merge_decls): Use !current_function_decl to check for
7173         extern declaration of C99 inline function being at file scope.
7174
7175 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
7176
7177         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
7178
7179 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7180
7181         * alias.c (record_alias_subset, init_alias_analysis): Fix
7182         -Wc++-compat and/or -Wcast-qual warnings.
7183         * attribs.c (lookup_attribute_spec): Likewise.
7184         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
7185         copy_bb, connect_traces,
7186         find_rarely_executed_basic_blocks_and_cr): Likewise.
7187         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
7188         note_btr_set, migrate_btr_defs): Likewise.
7189         * builtins.c (result_vector, expand_builtin_memcpy,
7190         expand_builtin_mempcpy_args, expand_builtin_strncpy,
7191         builtin_memset_read_str, expand_builtin_printf,
7192         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
7193         Likewise.
7194         * caller-save.c (mark_set_regs): Likewise.
7195         * calls.c (expand_call, emit_library_call_value_1): Likewise.
7196         * cgraph.c (cgraph_edge): Likewise.
7197         * combine.c (likely_spilled_retval_1): Likewise.
7198         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
7199         htab_counts_entry_del, get_coverage_counts): Likewise.
7200         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
7201         new_cselib_val): Likewise.
7202         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
7203         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
7204         Likewise.
7205         * df-core.c (df_compact_blocks): Likewise.
7206         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
7207         * df-scan.c (df_grow_reg_info, df_ref_create,
7208         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
7209         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
7210         df_record_entry_block_defs, df_record_exit_block_uses,
7211         df_bb_verify): Likewise.
7212         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
7213         DF_REF_EXTRACT_MODE_CONST): New.
7214         * dominance.c (get_immediate_dominator, get_dominated_by,
7215         nearest_common_dominator, root_of_dom_tree,
7216         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
7217         -Wc++-compat and/or -Wcast-qual warnings.
7218         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
7219         record_store, replace_read, check_mem_read_rtx, scan_insn,
7220         dse_step1, dse_record_singleton_alias_set): Likewise.
7221         * dwarf2asm.c (dw2_force_const_mem): Likewise.
7222
7223 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7224
7225         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
7226         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
7227         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
7228         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
7229         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
7230         add_ranges_num, add_ranges_by_labels, file_info_cmp,
7231         file_name_acquire, output_file_names, add_const_value_attribute,
7232         premark_used_types_helper, file_table_eq, file_table_hash,
7233         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
7234         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
7235         -Wcast-qual warnings.
7236         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
7237         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
7238         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
7239         gen_reg_rtx, start_sequence, init_emit): Likewise.
7240         * et-forest.c (et_new_occ, et_new_tree): Likewise.
7241         * except.c (init_eh_for_function, gen_eh_region,
7242         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
7243         arh_to_landing_pad, arh_to_label, add_action_record,
7244         add_call_site, switch_to_exception_section): Likewise.
7245         * expmed.c (synth_mult): Likewise.
7246         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
7247         store_expr): Likewise.
7248         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
7249         Likewise.
7250         * function.c (assign_stack_temp_for_type,
7251         allocate_struct_function, match_asm_constraints_1): Likewise.
7252         * gcov-io.c (gcov_allocate): Likewise.
7253         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
7254         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
7255         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
7256         record_one_set, insert_expr_in_table, insert_set_in_table,
7257         dump_hash_table, compute_hash_table_work, alloc_hash_table,
7258         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
7259         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
7260         -Wcast-qual warnings.
7261
7262 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7263
7264         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
7265         -Wcast-qual warnings.
7266         * gcc.c (process_command): Likewise.
7267         * genattrtab.c (oballoc): Use XOBNEW.
7268         (oballocvec): Define.
7269         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
7270         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
7271         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
7272         -Wc++-compat and/or -Wcast-qual warnings.
7273         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
7274         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
7275         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
7276         gen_presence_absence_set, gen_automaton, gen_regexp_el,
7277         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
7278         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
7279         add_excls, process_presence_absence_names,
7280         process_presence_absence_patterns, add_presence_absence,
7281         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
7282         get_free_state, add_arc, get_free_automata_list_el,
7283         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
7284         transform_3, cache_presence, create_ainsns, create_automata,
7285         create_state_ainsn_table, dfa_insn_code_enlarge,
7286         output_trans_func, output_min_issue_delay_func,
7287         output_dead_lock_func, output_reset_func,
7288         output_get_cpu_unit_code_func, output_dfa_start_func,
7289         expand_automata): Likewise.
7290         * genextract.c (gen_insn): Likewise.
7291         * gengtype-lex.l: Likewise.
7292         * gengtype.c (read_input_list, adjust_field_type,
7293         process_gc_options): Likewise.
7294         * genoutput.c (note_constraint): Likewise.
7295         * genpreds.c (mangle, add_constraint): Likewise.
7296         * genrecog.c (process_define_predicate, new_decision,
7297         add_to_sequence): Likewise.
7298         * gensupport.c (record_insn_name): Likewise.
7299
7300 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7301
7302         * config/i386/driver-i386.c (detect_caches_amd,
7303         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
7304         and/or -Wcast-qual warnings.
7305         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
7306         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
7307         gt_pch_save): Likewise.
7308         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
7309         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
7310         * global.c (compute_regsets): Likewise.
7311         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
7312         finish_graph_dump_file): Likewise.
7313         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
7314         unlink_bb_notes): Likewise.
7315         * integrate.c (get_hard_reg_initial_val): Likewise.
7316         * ipa-prop.c (ipa_push_func_to_list): Likewise.
7317         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
7318         * local-alloc.c (update_equiv_regs): Likewise.
7319         * loop-invariant.c (check_invariant_table_size,
7320         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
7321         Likewise.
7322         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
7323         altered_reg_used, mark_altered): Likewise.
7324         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
7325         insert_var_expansion_initialization,
7326         combine_var_copies_in_loop_exit, apply_opt_in_copies,
7327         release_var_copies): Likewise.
7328         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
7329         analyze_matrix_decl, add_allocation_site, analyze_transpose,
7330         analyze_accesses_for_phi_node, check_var_notmodified_p,
7331         check_allocation_function, find_sites_in_func,
7332         record_all_accesses_in_func, transform_access_sites,
7333         transform_allocation_sites): Likewise.
7334         * omp-low.c (new_omp_region, create_omp_child_function_name,
7335         check_omp_nesting_restrictions, check_combined_parallel,
7336         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
7337         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
7338         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
7339         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
7340         Likewise.
7341         * opts-common.c (prune_options): Likewise.
7342         * opts.c (add_input_filename, print_filtered_help,
7343         get_option_state): Likewise.
7344         * params.c (add_params): Likewise.
7345         * passes.c (set_pass_for_id, next_pass_1,
7346         do_per_function_toporder, pass_fini_dump_file): Likewise.
7347         * postreload.c (reload_cse_simplify_operands): Likewise.
7348         * predict.c (tree_predicted_by_p, tree_predict_edge,
7349         clear_bb_predictions, combine_predictions_for_bb): Likewise.
7350
7351 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7352
7353         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
7354         warnings.
7355         * recog.c (check_asm_operands, validate_change_1): Likewise.
7356         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
7357         subst_asm_stack_regs): Likewise.
7358         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
7359         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
7360         * regmove.c (reg_is_remote_constant_p): Likewise.
7361         * regrename.c (regrename_optimize, scan_rtx_reg,
7362         kill_clobbered_value, kill_set_value, kill_autoinc_value):
7363         Likewise.
7364         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
7365         regstat_compute_calls_crossed): Likewise.
7366         * reload1.c (init_reload, new_insn_chain,
7367         has_nonexceptional_receiver, reload, copy_reloads,
7368         calculate_needs_all_insns, init_elim_table): Likewise.
7369         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
7370         * rtl.c (shallow_copy_rtx_stat): Likewise.
7371         * rtlanal.c (parms_set): Likewise.
7372         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
7373         sbitmap_resize, sbitmap_vector_alloc): Likewise.
7374         * sched-ebb.c (earliest_block_with_similiar_load,
7375         add_deps_for_risky_insns): Likewise.
7376         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
7377         schedule_region): Likewise.
7378         * see.c (eq_descriptor_pre_extension,
7379         hash_descriptor_pre_extension, hash_del_pre_extension,
7380         eq_descriptor_properties, hash_descriptor_properties,
7381         hash_del_properties, see_seek_pre_extension_expr,
7382         see_initialize_data_structures, see_print_register_properties,
7383         see_print_pre_extension_expr, see_delete_merged_def_extension,
7384         see_delete_unmerged_def_extension, see_emit_use_extension,
7385         see_pre_delete_extension, see_map_extension, see_commit_changes,
7386         see_analyze_merged_def_local_prop,
7387         see_analyze_merged_def_local_prop,
7388         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
7389         see_set_prop_merged_def, see_set_prop_unmerged_def,
7390         see_set_prop_unmerged_use, see_print_one_extension,
7391         see_merge_one_use_extension, see_merge_one_def_extension,
7392         see_store_reference_and_extension, see_update_uses_relevancy,
7393         see_update_defs_relevancy): Likewise.
7394         * statistics.c (hash_statistics_hash, hash_statistics_eq,
7395         hash_statistics_free, curr_statistics_hash): Likewise.
7396         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
7397         expand_asm_operands, expand_return, case_bit_test_cmp,
7398         expand_case): Likewise.
7399         * stor-layout.c (start_record_layout): Likewise.
7400         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
7401         gt_pch_save_stringpool): Likewise.
7402         * tree-data-ref.c (hash_stmt_vertex_info,
7403         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
7404         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
7405
7406 2008-06-25  Uros Bizjak  <ubizjak@gmail.com>
7407
7408         PR target/36627
7409         * config/i386/i386.md : Change constraints of HImode and QImode
7410         immediate operands from "i" to "n".  Change SImode "ni" constraint to
7411         "i" and SImode "rmi" constraint to "g".  Remove all constraints
7412         from const0_operand and const1_operand predicated operands.
7413         (i): Change QImode and HImode attribute from "i" to "n".
7414         (*subqi_2): Change HImode operands to QImode.
7415         (*subqi_3): Ditto.
7416
7417 2008-06-25  Olivier Hainque  <hainque@adacore.com>
7418
7419         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
7420         sed substitutions.
7421
7422 2008-06-25  Richard Guenther  <rguenther@suse.de>
7423
7424         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
7425         not overflow the result type.
7426
7427 2008-06-25  Richard Guenther  <rguenther@suse.de>
7428
7429         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
7430         (vn_lookup): Likewise.
7431
7432 2008-06-25  Richard Guenther  <rguenther@suse.de>
7433
7434         PR tree-optimization/35518
7435         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
7436         * tree-sra.c (instantiate_element): Use fold_build3 to build
7437         BIT_FIELD_REFs.
7438         (try_instantiate_multiple_fields): Likewise.
7439
7440 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7441
7442         * config/rs6000/rs6000.md: Change all string instruction's clobber to
7443         be early clobbers.
7444
7445 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7446
7447         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
7448         use_backchain_to_restore_sp to true
7449         if the offset of the link register save area would go over the 32k - 1
7450         offset limit of the load
7451         instructions.
7452
7453 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
7454
7455         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
7456         anchor for the type-punning blurb.  Cross-reference "Structures
7457         unions enumerations and bit-fields implementation".  Provide a
7458         cast-through-pointer example.  Make final sentence self-contained.
7459         * doc/implement-c.texi (Structures unions enumerations and
7460         bit-fields implementation): Cross-reference the type-punning blurb
7461         in the -fstrict-aliasing documentation.
7462
7463 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7464
7465         PR middle-end/36594
7466         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
7467         the memory instead of the memory itself for the save area.
7468
7469 2008-06-24  Olivier Hainque  <hainque@adacore.com>
7470             Nicolas Roche  <roche@adacore.com>
7471
7472         * gengtype.c (srcdir_len): size_t instead of int.
7473         (get_file_realbasename): New function.  For F a filename, the real
7474         basename of F, with all the path components stripped.
7475         (get_file_srcdir_relative_path): New function.  For F a filename, the
7476         relative path to F from $(srcdir).
7477         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
7478         get_file_realbasename.  Adjust the head comment.
7479         (get_prefix_langdir_index): New function. For F a filename, return the
7480         lang_dir_names[] relative index of the language directory that is
7481         a prefix in F.
7482         (get_file_langdir): For F a filename, return the name of the language
7483         directory where F is located.
7484         (get_file_gtfilename): New function. The gt- output file name for an
7485         input filename F.
7486         (get_output_file_with_visibility): Replace in-line computations with
7487         uses of get_file_gtfilename and get_prefix_langdir_index.
7488         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
7489
7490 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
7491
7492         PR tree-optimization/36504
7493         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
7494         references without base address.
7495
7496 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
7497
7498         PR middle-end/36584
7499         * calls.c (expand_call): Increase alignment for recursive functions.
7500
7501 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
7502
7503         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
7504         (TARGET_FUNCTION_VALUE): New define.
7505         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
7506         * config/avr/avr.h (FUNCTION_VALUE): Remove.
7507
7508 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
7509
7510         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
7511         (fmod<mode>3): Ditto.
7512         (remainderxf3): Ditto.
7513         (remainder<mode>3): Ditto.
7514
7515 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
7516
7517         PR target/36533
7518         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
7519         REG is a hard register.
7520
7521         PR tree-optimization/36508
7522         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
7523         499, don't check it at all in release compilers.
7524
7525 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
7526
7527         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
7528         together with SSE_TARGET_MATH to disable insn pattern.
7529         (*fop_<MODEF:mode>_2_i387): Ditto.
7530         (*fop_<MODEF:mode>_3_i387): Ditto.
7531
7532 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
7533
7534         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
7535
7536 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7537
7538         PR middle-end/34906
7539         * gimplify.c (gimplify_asm_expr): Check the return code of
7540         parse_output_constraint call, set function return and is_inout
7541         value if it failed.
7542
7543 2008-06-22  Ian Lance Taylor  <iant@google.com>
7544
7545         * c-lex.c (narrowest_unsigned_type): Change itk to int.
7546         (narrowest_signed_type): Likewise.
7547         * c-typeck.c (c_common_type): Change local variable mclass to enum
7548         mode_class, twice.
7549         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
7550         tcc_comparison, not the tree code itself.
7551         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
7552         (c_expand_expr): Cast modifier to enum expand_modifier.
7553         * c-common.h (C_RID_CODE): Add casts.
7554         (C_SET_RID_CODE): Define.
7555         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
7556         (c_lex_one_token): Add cast to avoid warning.
7557         (c_parser_objc_type_name): Rename local typename to type_name.
7558         (check_no_duplicate_clause): Change code parameter to enum
7559         omp_clause_code.
7560         (c_parser_omp_var_list_parens): Change kind parameter to enum
7561         omp_clause_code.
7562         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
7563         c_parser_omp_list_var_parens.
7564         (c_parser_omp_threadprivate): Likewise.
7565         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
7566         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
7567         * c-format.c (NO_FMT): Define.
7568         (printf_length_specs): Use NO_FMT.
7569         (asm_fprintf_length_specs): Likewise.
7570         (gcc_diag_length_specs): Likewise.
7571         (scanf_length_specs): Likewise.
7572         (strfmon_length_specs): Likewise.
7573         (gcc_gfc_length_specs): Likewise.
7574         (printf_flag_specs): Change 0 to STD_C89.
7575         (asm_fprintf_flag_specs): Likewise.
7576         (gcc_diag_flag_specs): Likewise.
7577         (gcc_cxxdiag_flag_specs): Likewise.
7578         (scanf_flag_specs): Likewise.
7579         (strftime_flag_specs): Likewise.
7580         (strfmon_flag_specs): Likewise.
7581         (print_char_table): Likewise.
7582         (asm_fprintf_char_table): Likewise.
7583         (gcc_diag_char_table): Likewise.
7584         (gcc_tdiag_char_table): Likewise.
7585         (gcc_cdiag_char_table): Likewise.
7586         (gcc_cxxdiag_char_table): Likewise.
7587         (gcc_gfc_char_table): Likewise.
7588         (scan_char_table): Likewise.
7589         (time_char_table): Likewis.
7590         (monetary_char_table): Likewise.
7591         * c-format.h (BADLEN): Likewise.
7592
7593 2008-06-21  Ian Lance Taylor  <iant@google.com>
7594
7595         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
7596         Define END_OF_BASE_TREE_CODES around inclusion.
7597         * tree.c (tree_code_type): New global array.
7598         (tree_code_length, tree_code_name): Likewise.
7599         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
7600         $(lang_tree_files).
7601         (all-tree.def, s-alltree): New targets.
7602         (gencheck.h, s-gencheck): Remove.
7603         (tree.o): Depend upon all-tree.def.
7604         (build/gencheck.o): Remove gencheck.h dependency.
7605         (mostlyclean): Don't remove gencheck.h.
7606         * c-common.h (enum c_tree_code): Remove.
7607         * c-lang.c (tree_code_type): Remove.
7608         (tree_code_length, tree_code_name): Remove.
7609         * gencheck.c (tree_codes): Include all-tree.def, rather than
7610         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
7611         after it is used.
7612         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
7613         than tree.def.
7614         * cp/cp-tree.h (enum cplus_tree_code): Remove.
7615         (operator_name_info): Size to MAX_TREE_CODES.
7616         (assignment_operator_name_info): Likewise.
7617         * cp/cp-lang.c (tree_code_type): Remove.
7618         (tree_code_length, tree_code_name): Remove.
7619         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
7620         (assignment_operator_name_info): Likewise.
7621         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
7622         MAX_TREE_CODES.
7623         * cp/mangle.c (write_expression): Likewise.
7624         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
7625         * fortran/f95-lang.c (tree_code_type): Remove.
7626         (tree_code_length, tree_code_name): Remove.
7627         * java/java-tree.h (enum java_tree_code): Remove.
7628         * java/lang.c (tree_code_type): Remove.
7629         (tree_code_length, tree_code_name): Remove.
7630         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
7631         * objc/objc-act.h (enum objc_tree_code): Remove.
7632         * objc/objc-lang.c (tree_code_type): Remove.
7633         (tree_code_length, tree_code_name): Remove.
7634         * objcp/objcp-lang.c (tree_code_type): Remove.
7635         (tree_code_length, tree_code_name): Remove.
7636         * ada/ada-tree.h (enum gnat_tree_code): Remove.
7637         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
7638         * ada/misc.c (tree_code_type): Remove.
7639         (tree_code_length, tree_code_name): Remove.
7640
7641 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
7642
7643         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
7644         the grand_bitmap_obstack.
7645
7646 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7647
7648         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
7649         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
7650         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
7651         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
7652         move_stmt_r, new_label_mapper): Likewise.
7653         * tree-complex.c (cvc_lookup): Likewise.
7654         * tree-dfa.c (create_function_ann): Likewise.
7655         * tree-dump.c (dump_register): Likewise.
7656         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
7657         find_phi_replacement_condition): Likewise.
7658         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
7659         tree_function_versioning): Likewise.
7660         * tree-into-ssa.c (cmp_dfsnum): Likewise.
7661         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
7662         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
7663         get_nonlocal_debug_decl, convert_nonlocal_reference,
7664         convert_nonlocal_omp_clauses, get_local_debug_decl,
7665         convert_local_reference, convert_local_omp_clauses,
7666         convert_nl_goto_reference, convert_nl_goto_receiver,
7667         convert_tramp_reference, convert_call_expr): Likewise.
7668         * tree-outof-ssa.c (contains_tree_r): Likewise.
7669         * tree-parloops.c (reduction_phi, initialize_reductions,
7670         eliminate_local_variables_1, add_field_for_reduction,
7671         add_field_for_name, create_phi_for_local_result,
7672         create_call_for_reduction_1, create_loads_for_reductions,
7673         create_stores_for_reduction, create_loads_and_stores_for_name):
7674         Likewise.
7675         * tree-phinodes.c (allocate_phi_node): Likewise.
7676         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
7677         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
7678         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
7679         * tree-ssa-coalesce.c (compare_pairs): Likewise.
7680         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
7681         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
7682         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
7683         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
7684         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
7685         vn_nary_op_insert): Likewise.
7686         * tree-ssa.c (redirect_edge_var_map_add,
7687         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
7688         * tree-vectorizer.c (vectorize_loops): Likewise.
7689         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
7690         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
7691         tree_cons_stat, build1_stat, build_variant_type_copy,
7692         decl_init_priority_lookup, decl_fini_priority_lookup,
7693         decl_priority_info, decl_restrict_base_lookup,
7694         decl_restrict_base_insert, decl_debug_expr_lookup,
7695         decl_debug_expr_insert, decl_value_expr_lookup,
7696         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
7697         type_hash_add, get_file_function_name, tree_check_failed,
7698         tree_not_check_failed, tree_range_check_failed,
7699         omp_clause_range_check_failed, build_omp_clause,
7700         build_vl_exp_stat): Likewise.
7701         * value-prof.c (gimple_histogram_value,
7702         gimple_duplicate_stmt_histograms): Likewise.
7703         * var-tracking.c (attrs_list_insert, attrs_list_copy,
7704         unshare_variable, variable_union_info_cmp_pos, variable_union,
7705         dataflow_set_different_1, dataflow_set_different_2,
7706         vt_find_locations, variable_was_changed, set_variable_part,
7707         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
7708         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
7709         section_entry_hash, object_block_entry_eq,
7710         object_block_entry_hash, create_block_symbol,
7711         initialize_cold_section_name, default_function_rodata_section,
7712         strip_reg_name, set_user_assembler_name, const_desc_eq,
7713         build_constant_desc, output_constant_def, lookup_constant_def,
7714         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
7715         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
7716         default_internal_label): Likewise.
7717         * varray.c (varray_init, varray_grow): Likewise.
7718         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
7719
7720 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
7721
7722         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
7723         operators for "test" insn.  Macroize insn using SWI mode macro.
7724         (*jcc_fused_2): Ditto.
7725         (*jcc_fused_3): Macroize insn using SWI mode macro.
7726         (*jcc_fused_4): Ditto.
7727
7728 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
7729
7730         * tree-ssa-pre.c: Fix typo in comment.
7731         (init_antic, fini_antic): Add explicit funtions for
7732         initializing and deinitializing ANTIC and AVAIL sets.
7733         (create_expression_by_pieces): Fix typo in comment.
7734         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
7735         (execute_pre): Eventually dump details about ANTIC_IN.
7736
7737 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7738
7739         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
7740         * gcc.c (translate_options, init_spec, store_arg, read_specs,
7741         add_to_obstack, file_at_path, find_a_file, execute,
7742         add_preprocessor_option, add_assembler_option, add_linker_option,
7743         process_command, insert_wrapper, do_option_spec, do_self_spec,
7744         spec_path, do_spec_1, is_directory, main, used_arg,
7745         getenv_spec_function): Likewise.
7746         * tlink.c (symbol_hash_lookup, file_hash_lookup,
7747         demangled_hash_lookup, symbol_push, file_push, frob_extension):
7748         Likewise.
7749
7750 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
7751
7752         * doc/rtl.texi: Updated subreg section.
7753
7754 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
7755
7756         PR c++/36523
7757         * cgraphunit.c (cgraph_process_new_functions): Don't clear
7758         node->needed and node->reachable.
7759         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
7760         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
7761         (expand_task_call): Don't call expand_task_copyfn.
7762         (expand_task_copyfn): Renamed to...
7763         (finalize_task_copyfn): ... this.
7764
7765 2008-06-19  Jan Hubicka  <jh@suse.cz>
7766
7767         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
7768         clobbering framepointer.
7769
7770 2008-06-19  Jan Hubicka  <jh@suse.cz>
7771
7772         * tree-optimize.c (execute_early_local_optimizations): Set
7773         cgraph_state only at first invocation.
7774
7775 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7776
7777         * system.h (-Wc++-compat): Activate as a warning, no an error.
7778
7779 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
7780
7781         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
7782         instead of "#" in insn asm template.
7783         (*jcc_fused_2): Ditto.
7784
7785 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
7786
7787         * config/i386/i386.h (ix86_tune_indices)
7788         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
7789         (TARGET_FUSE_CMP_AND_BRANCH): New define.
7790         * config/i386/i386.md (*jcc_fused_1): New insn pattern
7791         (*jcc_fused_2): Ditto.
7792         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
7793         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
7794         (print operand): Handle 'E' and 'e' code.
7795
7796 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
7797
7798         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
7799         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
7800         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
7801
7802 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
7803
7804         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
7805         node->decl.
7806         (cgraph_expand_function): Use local copy of decl.
7807         (cgraph_expand_all_functions): Remove redundant initialization of
7808         order_pos.
7809         (cgraph_optimize): Reword internal_error message.
7810
7811 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
7812
7813         * arm-protos.h (arm_return_in_memory): Remove public
7814         arm_return_in_memory() prototype.
7815         * arm.c (arm_return_in_memory): Add static prototype, add target
7816         hook macro, change definition and comments.
7817         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
7818
7819 2008-06-19  Ben Elliston  <bje@au.ibm.com>
7820
7821         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
7822         real.c: Remove references to IEEE 754R.
7823         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
7824         * doc/libgcc.texi (Decimal float library routines): Likewise.
7825
7826 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7827
7828         * targhooks.h (struct gcc_target): New member unwind_word_mode.
7829         (default_unwind_word_mode): Add prototype.
7830         * targhooks.c (default_unwind_word_mode): New function.
7831         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
7832         instead of word_mode.
7833         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
7834         (TARGET_INITIALIZER): Use it.
7835
7836         * c-common.c (handle_mode_attribute): Support "unwind_word"
7837         mode attribute.
7838         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
7839
7840         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
7841         word_mode to access SjLj_Function_Context member "data".
7842         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
7843         conversion from targetm.eh_return_filter_mode () to
7844         targetm.unwind_word_mode () if they differ.
7845
7846         * builtin-types.def (BT_UNWINDWORD): New primitive type.
7847         (BT_FN_UNWINDWORD_PTR): New function type.
7848         (BT_FN_WORD_PTR): Remove.
7849         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
7850         * except.c (expand_builtin_extend_pointer): Convert pointer to
7851         targetm.unwind_word_mode () instead of word_mode.
7852
7853         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
7854         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
7855         (spu_unwind_word_mode): New function.
7856         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
7857         (TARGET_UNWIND_WORD_MODE): Define.
7858         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
7859
7860 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7861
7862         * config/spu/spu.c (reg_align): Remove.
7863         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
7864         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
7865         (spu_split_store): Likewise.
7866
7867 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
7868
7869         * gcc/tree-vn.c: Fix typo in comment.
7870
7871 2008-06-18  Jan Hubicka  <jh@suse.cz>
7872
7873         * cgraphunit.c (cgraph_optimize): Output debug info when doing
7874         toplevel reorder too.
7875
7876 2008-06-18  Jan Hubicka  <jh@suse.cz>
7877
7878         * c-opts.c (c_common_post_options): PCH is not compatible with
7879         no-unit-at-a-time.
7880         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
7881         -fno-toplevel-reorder by default now.
7882
7883 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7884
7885         PR documentation/30739
7886         * doc/install.texi (Prerequisites): Document dependency on awk.
7887
7888 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
7889             Ian Lance Taylor  <iant@google.com>
7890
7891         PR rtl-optimization/35604
7892         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
7893         only want to change jump destinations, not eventual label comparisons.
7894
7895 2008-06-16  Jan Hubicka  <jh@suse.cz>
7896
7897         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
7898         syntax errors.
7899         (cgraph_analyze_function): Likewise.
7900
7901 2008-06-16  Jan Hubicka  <jh@suse.cz>
7902
7903         * cgraph.h (cgraph_mark_if_needed): New function.
7904         * cgraphunit.c (cgraph_mark_if_needed): New function.
7905         * c-decl.c (duplicate_decl): Use it.
7906
7907 2008-06-16  Jan Hubicka  <jh@suse.cz>
7908
7909         * cgraph.c (cgraph_add_new_function): When in expansion state, do
7910         lowering.
7911
7912 2008-06-16  Jan Hubicka  <jh@suse.cz>
7913
7914         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
7915
7916 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
7917             Kazu Hirata  <kazu@codesourcery.com>
7918             Maxim Kuvyrkov  <maxim@codesourcery.com
7919
7920         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
7921         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
7922         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
7923         EXTRA_SPEC_FUNCTIONS.
7924         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
7925         (DRIVER_SELF_SPECS): Adjust.
7926         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
7927         * config/mips/st.h, config/mips/t-st: New.
7928         * config/mips/driver-native.c, config/mips/x-native: New.
7929         * doc/invoke.texi (MIPS): Document 'native' value for -march and
7930         -mtune options.
7931
7932 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
7933
7934         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
7935         from it.
7936         (ISA_HAS_FP_CONDMOVE): New macro.
7937         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
7938         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
7939         (ISA_HAS_NMADD3_NMSUB3): New macro.
7940         * config/mips/mips.c (mips_rtx_costs): Update.
7941         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
7942         compiling for ST Loongson 2E/2F.
7943         (madd<mode>): Rename to madd4<mode>.  Update.
7944         (madd3<mode>): New pattern.
7945         (msub<mode>): Rename to msub4<mode>.  Update.
7946         (msub3<mode>): New pattern.
7947         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
7948         (nmadd3<mode>): New pattern.
7949         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
7950         (nmadd3<mode>_fastmath): New pattern.
7951         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
7952         (nmsub3<mode>): New pattern.
7953         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
7954         (nmsub3<mode>_fastmath): New pattern.
7955         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
7956
7957 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
7958
7959         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
7960         (DF_REF_INSN_INFO): New.
7961         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
7962         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
7963         with a NULL DF_REF_INSN_INFO.
7964         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
7965         DF_INSN_SET.
7966         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
7967         DF_INSN_INFO_EQ_USES): New.
7968         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
7969         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
7970         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
7971         * df-core.c: Update comment for above changes.
7972         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
7973         DF_INSN_UID_* macros.
7974         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
7975         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
7976         insn rtx.  Update all callers.
7977         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
7978         df_ref_create_structure, df_insn_refs_collect): Likewise.
7979         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
7980         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
7981         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
7982         macros to access the insn refs.
7983         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
7984         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
7985         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
7986         for accessing the refs.
7987         (try_fwprop_subst): Likewise.
7988         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
7989         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
7990         for accessing the refs.
7991         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
7992         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
7993         to look at the insn refs.
7994         (record_uses): Likewise.
7995         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
7996         function anymore.
7997         (mark_artificial_uses): Don't mark_insn for artificial refs.
7998         (mark_reg_rependencies): Likewise.
7999
8000         * doc/rtl.texi: Remove documentation of ADDRESSOF.
8001
8002 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8003
8004         * configure: Regenerate.
8005
8006 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
8007
8008         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
8009         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
8010         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
8011
8012 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
8013
8014         * config/avr/avr.c (avr_mcu_t): Add attiny167.
8015         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
8016         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
8017
8018 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
8019
8020         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
8021         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
8022         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
8023
8024 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
8025
8026         * tree-ssa-sccvn.c: Fix format of comments.
8027
8028 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
8029
8030         * cgraph.c: Remove unneeded forward declarations of eq_node()
8031         and hash_node().
8032
8033 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
8034
8035         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
8036         REG_RETVAL notes.
8037         (see_update_relevancy): Likewise.
8038         * fwprop.c (try_fwprop_subst): Likewise.
8039         * rtlanal.c (noop_move_p): Likewise.
8040         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
8041         notes to non-existing libcall blocks.
8042         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
8043         Remove orig_set.
8044         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
8045         (dead_libcall_p): Remove.
8046         (delete_trivially_dead_insns): Don't use it.
8047         * web.c (union_defs): Remove comment about keeping nops.
8048         * gcse.c (hash_scan_insn): Don't take libcall pointers.
8049         (compute_hash_table_work): Don't track libcall notes.
8050         (do_local_cprop): Don't take libcall pointers.  Don't update
8051         libcall notes.
8052         (adjust_libcall_notes): Deleted.
8053         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
8054         ever have existed in the first place).
8055         (replace_store_insn): Don't try to remove libcall notes.
8056         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
8057         (resolve_reg_notes): Don't call them.
8058         (resolve_simple_move): Likewise.
8059         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
8060         Don't remove REG_RETVAL notes.
8061         * emit-rtl.c (try_split): Don't update libcall notes.
8062         (emit_copy_of_insn_after): Dito.
8063         * cselib.c (cselib_current_insn_in_libcall): Remove.
8064         (cselib_process_insn): Don't set/clear it.
8065         (new_elt_loc_list): Don't record it.
8066         (cselib_init): Don't initialize it.
8067         * cselib.c (struct elt_loc_list): Remove in_libcall field.
8068         * loop-invariant.c (find_invariant_insn): Don't look for libcall
8069         notes.
8070         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
8071         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
8072         (init_deps): Don't initialize it.
8073         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
8074         * combine.c (delete_noop_moves): Don't update libcall notes.
8075         (can_combine_p): Remove now pointless #if 0 block.
8076         (try_combine): Remove another obsolete #if 0 block.
8077         (distribute_notes): Don't distribute libcall notes.
8078         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
8079         * dce.c (libcall_dead_p): Remove.
8080         (delete_unmarked_insns): Don't handle libcall blocks.
8081         (preserve_libcall_for_dce): Remove.
8082         (prescan_insns_for_dce): Don't special-case libcall block insns.
8083         * reload1 (reload): Don't handle libcall notes.
8084         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
8085         documentation.
8086
8087 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
8088
8089         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
8090         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
8091         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
8092
8093 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
8094
8095         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
8096         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
8097         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
8098
8099 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8100
8101         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
8102
8103 2008-06-16  Ira Rosen  <irar@il.ibm.com>
8104
8105         PR tree-optimization/36493
8106         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
8107         the arguments list. Use VECTYPE to create vector pointer.
8108         (vectorizable_store): Fail if accesses through a pointer to vectype
8109         do not alias the original memory reference operands.
8110         Call vect_create_data_ref_ptr without the removed argument.
8111         (vectorizable_load): Likewise.
8112         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
8113         removed argument.
8114
8115 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
8116
8117         PR target/36336
8118         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
8119         reg_equiv_constant.
8120
8121 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
8122
8123         * config/mips/loongson2ef.md: New file.
8124         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
8125         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
8126         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
8127         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
8128         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
8129         and loongson_2f.
8130         (loongson2ef.md): New include.
8131         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
8132         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
8133         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
8134         (loongson_gt_<mode>, loongson_extract_halfword)
8135         (loongson_insert_halfword_0, loongson_insert_halfword_2)
8136         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
8137         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
8138         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
8139         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
8140         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
8141         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
8142         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
8143         (vec_interleave_low<mode>): Define type attribute.
8144         * config/mips/mips.c (mips_ls2): New static variable.
8145         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
8146         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
8147         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
8148         Implement target scheduling hooks.
8149         (mips_multipass_dfa_lookahead): Update to handle tuning for
8150         Loongson 2E/2F.
8151         (mips_sched_init): Initialize data for Loongson scheduling.
8152         (mips_ls2_variable_issue): New static function.
8153         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
8154         Add sanity check.
8155         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
8156         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
8157         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
8158         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
8159         Handle ST Loongson 2E/2F cores.
8160         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
8161
8162 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8163
8164         * omp-low.c (extract_omp_for_data): Fix comment typo.
8165         * c.opt: Fix typo.
8166
8167 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8168
8169         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
8170         FIXME note about gcc/config.guess.
8171         * doc/options.texi (Option file format): Remove non-ASCII bytes.
8172         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
8173         * doc/cppopts.texi: Likewise.
8174         * doc/extend.texi: Likewise.
8175         * doc/gcc.texi: Likewise.
8176         * doc/gccint.texi: Likewise.
8177         * doc/gcov.texi: Likewise.
8178         * doc/gty.texi: Likewise.
8179         * doc/hostconfig.texi: Likewise.
8180         * doc/install.texi: Likewise.
8181         * doc/invoke.texi: Likewise.
8182         * doc/loop.texi: Likewise.
8183         * doc/makefile.texi: Likewise.
8184         * doc/md.texi: Likewise.
8185         * doc/passes.texi: Likewise.
8186         * doc/tm.texi: Likewise.
8187         * doc/tree-ssa.texi: Likewise.
8188         * doc/trouble.texi: Likewise.
8189
8190 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
8191             Nathan Sidwell  <nathan@codesourcery.com>
8192             Maxim Kuvyrkov  <maxim@codesourcery.com>
8193             Richard Sandiford  <rdsandiford@googlemail.com>
8194
8195         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
8196         * config/mips/mips-protos.h (mips_expand_vector_init): New.
8197         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
8198         builtins.
8199         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
8200         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
8201         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
8202         V8QImode cases.
8203         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
8204         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
8205         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
8206         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
8207         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
8208         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
8209         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
8210         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
8211         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
8212         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
8213         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
8214         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
8215         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
8216         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
8217         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
8218         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
8219         (mips_builtins): Add Loongson builtins.
8220         (mips_loongson_2ef_bdesc): New.
8221         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
8222         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
8223         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
8224         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
8225         New.
8226         (mips_expand_vector_init): New.
8227         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
8228         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
8229         if appropriate.
8230         * config/mips/mips.md: Add unspec numbers for Loongson
8231         builtins.  Include loongson.md.
8232         (MOVE64): Include Loongson vector modes.
8233         (SPLITF): Include Loongson vector modes.
8234         (HALFMODE): Handle Loongson vector modes.
8235         * config/mips/loongson.md: New.
8236         * config/mips/loongson.h: New.
8237         * config.gcc: Add loongson.h header for mips*-*-* targets.
8238         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
8239
8240 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
8241
8242         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
8243         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
8244         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
8245         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
8246         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
8247         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
8248         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
8249         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
8250         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
8251         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
8252         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
8253         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
8254         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
8255         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
8256         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
8257         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
8258         Remove use_fixproto=yes.
8259         (ia64*-*-hpux*): Remove comment about using fixproto.
8260         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
8261
8262 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8263
8264         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
8265         library rebuilds.
8266         * configure: Regenerate.
8267
8268 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
8269
8270         PR middle-end/36520
8271         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
8272         before evaluating it.
8273
8274 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
8275
8276         PR c/36507
8277         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
8278         nested inline functions.
8279         (start_decl, start_function): Don't invert DECL_EXTERNAL
8280         for nested inline functions.
8281
8282 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
8283
8284         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
8285         splits that must be made for correctness.
8286
8287 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
8288
8289         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
8290         (AVAIL_NON_MIPS16): Likewise.
8291         (mips_builtin_description): Replace target_flags with a predicate.
8292         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
8293         (dspr2_32): New availability predicates.
8294         (MIPS_BUILTIN): New macro.
8295         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
8296         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
8297         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
8298         Replace the TARGET_FLAGS parameters with AVAIL parameters.
8299         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
8300         (mips_dsp_32only_bdesc): Merge into...
8301         (mips_builtins): ...this new array.
8302         (mips_bdesc_map, mips_bdesc_arrays): Delete.
8303         (mips_init_builtins): Update after above changes.
8304         (mips_expand_builtin_1): Merge into...
8305         (mips_expand_builtin): ...here and update after above changes.
8306
8307 2008-06-12  Paul Brook  <paul@codesourcery.com>
8308
8309         * longlong.h (__arm__): Define count_leading_zeros.
8310         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
8311         (clzsi2, clzdi2): New functions.
8312         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
8313         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
8314         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
8315         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
8316         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
8317         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
8318         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
8319         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
8320         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
8321         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
8322
8323 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
8324
8325         * config/m68k/m68k.c (m68k_tune_flags): New.
8326         (override_options): Compute m68k_tune_flags.
8327         (MULL_COST, MULW_COST): Update for various variants of CFV2.
8328         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
8329
8330 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
8331
8332         PR middle-end/36506
8333         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
8334
8335 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
8336
8337         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
8338         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
8339
8340 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
8341
8342         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
8343         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
8344
8345 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
8346
8347         PR middle-end/36506
8348         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
8349         reductions.
8350
8351 2008-06-12  Richard Guenther  <rguenther@suse.de>
8352
8353         PR tree-optimization/36345
8354         * tree-flow.h (struct ptr_info_def): Align escape_mask,
8355         add memory_tag_needed flag.
8356         (may_alias_p): Declare.
8357         * tree-ssa-alias.c (may_alias_p): Export.
8358         (set_initial_properties): Use memory_tag_needed flag.
8359         (update_reference_counts): Likewise.
8360         (reset_alias_info): Reset memory_tag_needed flag.
8361         (create_name_tags): Check memory_tag_needed flag.
8362         (dump_points_to_info_for): Dump it.
8363         * tree-ssa-structalias.c (struct variable_info): Remove
8364         directly_dereferenced flag.
8365         (new_var_info): Do not initialize it.
8366         (process_constraint_1): Do not set it.
8367         (update_alias_info): Set is_dereferenced flag.
8368         (set_uids_in_ptset): Use may_alias_p.
8369         (set_used_smts): Check memory_tag_needed flag.
8370         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
8371         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
8372         memory_tag_needed flag.
8373         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
8374         from broken design.
8375
8376 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
8377
8378         * config/i386/i386.c (ix86_compute_frame_layout): Disable
8379         red zone for w64 abi.
8380         (ix86_expand_prologue): Likewise.
8381         (ix86_force_to_memory): Likewise.
8382         (ix86_free_from_memory): Likewise.
8383
8384 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
8385
8386         PR target/36425
8387         * config/rs6000/rs6000.c (rs6000_override_options): Set
8388         rs6000_isel conditionally to the absence of comand line override.
8389         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
8390         Remove duplicate rs6000_isel setting.
8391         * config/rs6000/eabispe.h: Ditto.
8392
8393 2008-06-11  Richard Guenther  <rguenther@suse.de>
8394
8395         * alias.c (get_alias_set): Use the element alias-set for arrays.
8396         (record_component_aliases): For arrays and vectors do nothing.
8397         * c-common.c (strict_aliasing_warning): Handle the cases
8398         of alias set zero explicitly.
8399         * Makefile.in (dfp.o-warn): Add -Wno-error.
8400
8401 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
8402
8403         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
8404         tune_32 tune_64.
8405         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
8406         tune_32 tune_64 to supported_defaults.  Allow values not
8407         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
8408         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
8409         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
8410         with_cpu_64 to generic for 64-bit-supporting configurations, not
8411         with_cpu.  Remove FIXMEs.
8412         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
8413         --with-arch-64, --with-tune-32, --with-tune-64): Document.
8414         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
8415         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
8416         arch_32 and arch_64.
8417
8418 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
8419             Olivier Hainque  <hainque@adacore.com>
8420
8421         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
8422         Use DECL_SIZE_UNIT to retrieve the size of the field.
8423
8424 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
8425
8426         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
8427         with function calls after declarations.  Lay out
8428         neon_float_type_node before further use.
8429
8430 2008-06-11  Richard Guenther  <rguenther@suse.de>
8431
8432         * tree-flow.h (may_point_to_global_var): Declare.
8433         * tree-ssa-alias.c (may_point_to_global_var): New function.
8434         * tree-ssa-sink.c (is_hidden_global_store): Use it.
8435
8436 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
8437
8438         * configure.ac: Teach that fido supports .debug_line.
8439         * configure: Regenerate.
8440
8441 2008-06-10  Tom Tromey  <tromey@redhat.com>
8442
8443         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
8444         debug hook.
8445
8446 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
8447
8448         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
8449         (encode_decimal64, decode_decimal64, encode_decimal128,
8450         decode_decimal128): Reverse order of 32-bit parts of value if host
8451         and target endianness differ.
8452
8453 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
8454
8455         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
8456         Avoid division by 0.
8457         (tree_mod_pow2_value_transform): Likewise.
8458         (tree_ic_transform): Likewise.
8459         (tree_stringops_transform): Likewise.
8460         (tree_mod_subtract_transform): Likewise.
8461         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
8462         (copy_edges_for_bb): Likewise.
8463         (initialize_cfun): Likewise.
8464
8465 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
8466
8467         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
8468         nonmemory_operand. Add "N" operand constraint.
8469         (*btsi): Ditto.
8470         (*jcc_btdi_mask_rex64): New instruction and split pattern.
8471         (*jcc_btsi_mask): Ditto.
8472         (*jcc_btsi_mask_1): Ditto.
8473
8474 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
8475
8476         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
8477         TYPE_CANONICAL for copied element type.
8478
8479 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
8480
8481         PR target/36473
8482         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
8483         Add m_CORE2 and m_GENERIC.
8484         * config/i386/predicates.md (bt_comparison_operator): New predicate.
8485         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
8486         (*btsi): Ditto.
8487         (*jcc_btdi_rex64): New instruction and split pattern.
8488         (*jcc_btsi): Ditto.
8489         (*jcc_btsi_1): Ditto.
8490         (*btsq): Fix Intel asm dialect operand order.
8491         (*btrq): Ditto.
8492         (*btcq): Ditto.
8493
8494 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
8495
8496         PR middle-end/36447
8497         * simplify-rtx.c (simplify_subreg): Add check for shift count
8498         greater than size.
8499
8500 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
8501
8502         * doc/md.texi: Synchronize with later constraints.md change.
8503         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
8504         with a C implementation.
8505         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
8506         MFLO handling.
8507         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
8508         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
8509         when moving to and from MD_REGNUM.
8510         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
8511         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
8512         Handle byte and halfword moves.
8513         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
8514         separately.
8515         * config/mips/constraints.md (h): Turn into NO_REGS.
8516         (l, x): Update documentation.
8517         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
8518         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
8519         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
8520         (HILO): New mode iterator.
8521         (MOVE128): Add TI.
8522         (any_div): New code iterator.
8523         (u): Extend code attribute to div and udiv.
8524         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
8525         d_operand in the splitters.  Remove redundant CONST_INT checks.
8526         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
8527         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
8528         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
8529         accordingly, using normal moves instead of unspecs to move LO into
8530         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
8531         (<u>mulsidi3): Handle expansion in C code.
8532         (<u>mulsidi3_32bit_internal): Rename to...
8533         (<u>mulsidi3_32bit): ...this.
8534         (<u>mulsidi3_32bit_r4000): Fix insn separator.
8535         (*<u>mulsidi3_64bit): Rename to...
8536         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
8537         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
8538         to set LO and HI to the multiplication result.  Use a normal move
8539         for MFLO and an unspec for MFHI.
8540         (*<u>mulsidi3_64bit_parts): Replace with...
8541         (<u>mulsidi3_64bit_hilo): ...this new instruction.
8542         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
8543         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
8544         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
8545         instead of HI.  Split the instruction into a separate multiplication
8546         and MFHI if !TARGET_FIX_R4000.
8547         (<su>muldi3_highpart): Likewise.
8548         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
8549         and the "=h" clobber.
8550         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
8551         (<u>mulditi3): New expander.
8552         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
8553         (madsi): Remove "=h" clobber.
8554         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
8555         Force the modulus result to be a GPR and split the instruction into
8556         a division followed by an MFHI after reload.
8557         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
8558         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
8559         the MIPS16 HIGH define_split.
8560         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
8561         of acc<->gpr moves to "multi".
8562         (*movdi_64bit): Replace the single "x" alternative with
8563         alternatives for moving into and out of "a".
8564         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
8565         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
8566         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
8567         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
8568         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
8569         (movti): New expander.
8570         (*movti, *movti_mips16): New insns.
8571         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
8572         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
8573         (mthi<GPR:mode>_<HILO:mode>): Likewise.
8574         * config/mips/predicates.md (fpr_operand): Delete.
8575         (d_operand): New predicate.
8576
8577 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
8578
8579         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
8580         failure on some Bourne shells.
8581         (x86_64-*-*): Ditto.
8582
8583 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
8584
8585         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
8586
8587 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
8588
8589         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
8590         (sparc-sun-solaris2*): Likewise.
8591
8592 2008-06-09  Arnaud Charlet  <charlet@adacore.com
8593
8594         * doc/install.texi: Update requirements to build the Ada compiler.
8595
8596 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
8597
8598         * df-scan.c (struct df_scan_problem_data): Remove the
8599         mw_link_pool alloc pool.
8600         (df_scan_free_internal): Don't free it.
8601         (df_scan_alloc): Don't allocate it.
8602         * df.h (struct df_link): Update comment.
8603
8604 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
8605
8606         * except.h: Correct checks for when SJLJ exceptions must be used.
8607
8608 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8609
8610         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
8611         default.
8612
8613 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
8614
8615         PR tree-optimization/36218
8616         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
8617         configure for the build system.
8618         (BUILD_LDFLAGS): Define.
8619         * configure: Regenerate.
8620         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
8621
8622 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
8623
8624         PR target/36424
8625         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
8626         * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
8627         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
8628
8629 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
8630
8631         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
8632
8633 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
8634
8635         * config.gcc (Obsolete configurations): Remove list of
8636         configurations.
8637         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
8638         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
8639         targets matched by those patterns.
8640         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
8641         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
8642         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
8643         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
8644         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
8645         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
8646         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
8647         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
8648         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
8649         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
8650         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
8651         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
8652         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
8653         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
8654         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
8655         Make code for Solaris 7 and greater unconditional for Solaris.
8656         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
8657         Remove --with-* handling.
8658         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
8659         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
8660         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
8661         LINK_OS_WINDISS_SPEC): Remove.
8662         * config/rs6000/sysv4.opt (mwindiss): Remove.
8663         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
8664         * configure: Regenerate.
8665         * doc/cpp.texi: Don't mention BeOS.
8666         * doc/extend.texi (interrupt): Don't mention MS1.
8667         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
8668         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
8669         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
8670         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
8671         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
8672         Remove.
8673         * doc/invoke.texi (MT Options): Remove.
8674         (-mwindiss): Remove.
8675         (CRIS Options): Remove cris-axis-aout references.
8676         (HPPA Options): Don't mention hppa1.1-*-pro.
8677         * doc/md.texi: (MorphoTech family): Remove.
8678         * libgcc2.c: Don't handle UWIN.
8679         * config/alpha/t-unicosmk: Remove.
8680         * config/alpha/unicosmk.h: Remove.
8681         * config/arm/kaos-arm.h: Remove.
8682         * config/arm/kaos-strongarm.h: Remove.
8683         * config/arm/strongarm-coff.h: Remove.
8684         * config/arm/strongarm-elf.h: Remove.
8685         * config/arm/strongarm-pe.h: Remove.
8686         * config/arm/t-strongarm-pe: Remove.
8687         * config/arm/t-xscale-coff: Remove.
8688         * config/arm/t-xscale-elf: Remove.
8689         * config/arm/xscale-coff.h: Remove.
8690         * config/arm/xscale-elf.h: Remove.
8691         * config/chorus.h: Remove.
8692         * config/cris/aout.h: Remove.
8693         * config/cris/aout.opt: Remove.
8694         * config/cris/t-aout: Remove.
8695         * config/i386/beos-elf.h: Remove.
8696         * config/i386/kaos-i386.h: Remove.
8697         * config/i386/ptx4-i.h: Remove.
8698         * config/i386/sco5.h: Remove.
8699         * config/i386/sco5.opt: Remove.
8700         * config/i386/sysv4-cpp.h: Remove.
8701         * config/i386/sysv5.h: Remove.
8702         * config/i386/t-beos: Remove.
8703         * config/i386/t-sco5: Remove.
8704         * config/i386/t-uwin: Remove.
8705         * config/i386/uwin.asm: Remove.
8706         * config/i386/uwin.h: Remove.
8707         * config/kaos.h: Remove.
8708         * config/mips/windiss.h: Remove.
8709         * config/mt: Remove directory.
8710         * config/pa/pa-osf.h: Remove.
8711         * config/pa/pa-pro-end.h: Remove.
8712         * config/pa/t-pro: Remove.
8713         * config/ptx4.h: Remove.
8714         * config/rs6000/beos.h: Remove.
8715         * config/rs6000/kaos-ppc.h: Remove.
8716         * config/rs6000/t-beos: Remove.
8717         * config/rs6000/windiss.h: Remove.
8718         * config/sh/kaos-sh.h: Remove.
8719         * config/sol2-6.h: Remove.
8720         * config/sparc/sol26-sld.h: Remove.
8721         * config/sparc/sysv4-only.h: Remove.
8722         * config/vax/bsd.h: Remove.
8723         * config/vax/t-memfuncs: Remove.
8724         * config/vax/ultrix.h: Remove.
8725         * config/vax/vaxv.h: Remove.
8726         * config/windiss.h: Remove.
8727
8728 2008-06-06  Uros Bizjak <ubizjak@gmail.com>
8729
8730         PR rtl-optimization/36438
8731         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
8732         for vector shifts with constant scalar shift operands.
8733
8734 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
8735
8736         * doc/invoke.texi: Document -march=xlr.
8737         * config/mips/xlr.md: New file.
8738         * config/mips/mips.md: Include it.
8739         (cpu): Add "xlr".
8740         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
8741         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
8742         (mips_rtx_cost_data): Likewise.
8743
8744 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
8745
8746         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
8747         PRE_INC and PRE_DEC cases.
8748
8749 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
8750
8751         PR rtl-optimization/36419
8752         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
8753         the emitting jump insn.
8754
8755         PR target/36362
8756         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
8757         is not bool, boolify the whole *expr_p and convert to the desired type.
8758
8759 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
8760
8761         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
8762         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
8763         Add omp_private_outer_ref hook, add another argument to
8764         omp_clause_default_ctor hook.
8765         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
8766         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
8767         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
8768         hook_tree_tree_tree_tree_null.
8769         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
8770         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
8771         * hooks.c (hook_tree_tree_tree_tree_null): New function.
8772         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
8773         * tree.def (OMP_TASK): New tree code.
8774         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
8775         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
8776         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
8777         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
8778         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
8779         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
8780         OMP_CLAUSE_COLLAPSE_EXPR): Define.
8781         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
8782         (OMP_DIRECTIVE_P): Add OMP_TASK.
8783         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
8784         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
8785         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
8786         and OMP_CLAUSE_UNTIED entries.
8787         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
8788         num_ops to 2.
8789         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
8790         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
8791         * tree-pretty-print.c (dump_omp_clause): Handle
8792         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
8793         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
8794         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
8795         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
8796         warning about unsigned iterators.  Change decl/init/cond/incr
8797         arguments to TREE_VECs, check arguments for all collapsed loops.
8798         (c_finish_omp_taskwait): New function.
8799         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
8800         ws_clauses.
8801         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
8802         default_function_array_conversion on init.  Add par_clauses argument.
8803         If decl is present in parallel's lastprivate clause, change it to
8804         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
8805         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
8806         collapse count in clauses.
8807         (c_parser_omp_for, c_parser_omp_parallel): Adjust
8808         c_parser_omp_for_loop callers.
8809         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
8810         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
8811         (c_parser_omp_clause_name): Handle collapse and untied clauses.
8812         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
8813         functions.
8814         (c_parser_omp_clause_schedule): Handle schedule(auto).
8815         Include correct location in the error message.
8816         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
8817         and PRAGMA_OMP_CLAUSE_UNTIED.
8818         (OMP_TASK_CLAUSE_MASK): Define.
8819         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
8820         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
8821         * tree-nested.c (convert_nonlocal_omp_clauses,
8822         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
8823         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
8824         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
8825         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
8826         OMP_CLAUSE_DECL.
8827         (conver_nonlocal_reference, convert_local_reference,
8828         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
8829         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
8830         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
8831         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
8832         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
8833         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
8834         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
8835         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
8836         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
8837         OMP_CLAUSE_UNTIED.
8838         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
8839         * c-common.h (c_finish_omp_taskwait): New prototype.
8840         * gimple-low.c (lower_stmt): Handle OMP_TASK.
8841         * tree-parloops.c (create_parallel_loop): Create 1 entry
8842         vectors for OMP_FOR_{INIT,COND,INCR}.
8843         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
8844         (make_edges): Handle OMP_TASK.
8845         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
8846         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
8847         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
8848         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
8849         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
8850         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
8851         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
8852         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
8853         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
8854         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
8855         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
8856         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
8857         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
8858         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
8859         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
8860         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
8861         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
8862         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
8863         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
8864         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
8865         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
8866         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
8867         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
8868         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
8869         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
8870         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
8871         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
8872         original iterator is present in lastprivate clause or if
8873         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
8874         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
8875         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
8876         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
8877         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
8878         if it is set, lookup var in outer contexts too.  Handle
8879         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
8880         to be implicitly determined firstprivate for task regions.
8881         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
8882         if it is set, lookup var in outer contexts too.  Set
8883         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
8884         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
8885         OMP_CLAUSE_UNTIED.  Take region_type as last argument
8886         instead of in_parallel and in_combined_parallel.
8887         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
8888         Adjust callers.
8889         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
8890         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
8891         (new_omp_context): Set default_kind to
8892         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
8893         (omp_region_type): New enum.
8894         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
8895         fields, add region_type.
8896         (new_omp_context): Take region_type as argument instead of is_parallel
8897         and is_combined_parallel.
8898         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
8899         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
8900         ctx->is_combined_parallel checks.
8901         (gimplify_omp_task): New function.
8902         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
8903         OMP_CLAUSE_UNTIED.
8904         * omp-low.c (extract_omp_for_data): Use schedule(static)
8905         for schedule(auto).  Handle pointer and unsigned iterators.
8906         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
8907         Add loops argument.  Extract data for collapsed OMP_FOR loops.
8908         (expand_parallel_call): Assert sched_kind isn't auto,
8909         map runtime schedule to index 3.
8910         (struct omp_for_data_loop): New type.
8911         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
8912         Add loop, loops, collapse and iter_type fields.
8913         (workshare_safe_to_combine_p): Disallow combined for if
8914         iter_type is unsigned long long.  Don't combine collapse > 1 loops
8915         unless all bounds and steps are constant.  Adjust extract_omp_for_data
8916         caller.
8917         (expand_omp_for_generic): Handle pointer, unsigned and long long
8918         iterators.  Handle collapsed OMP_FOR loops.  Adjust
8919         for struct omp_for_data changes.  If libgomp function doesn't return
8920         boolean_type_node, add comparison of the return value with 0.
8921         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
8922         pointer, unsigned and long long iterators.  Adjust for struct
8923         omp_for_data changes.
8924         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
8925         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
8926         unsigned long long.  Allocate loops array, pass it to
8927         extract_omp_for_data.  For collapse > 1 loops use always
8928         expand_omp_for_generic.
8929         (omp_context): Add sfield_map and srecord_type fields.
8930         (is_task_ctx, lookup_sfield): New functions.
8931         (use_pointer_for_field): Use is_task_ctx helper.  Change first
8932         argument's type from const_tree to tree.  Clarify comment.
8933         In OMP_TASK disallow copy-in/out sharing.
8934         (build_sender_ref): Call lookup_sfield instead of lookup_field.
8935         (install_var_field): Add mask argument.  Populate both record_type
8936         and srecord_type if needed.
8937         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
8938         in srecord_type.
8939         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
8940         and DECL_FIELD_OFFSET.
8941         (scan_sharing_clauses): Adjust install_var_field callers.  For
8942         firstprivate clauses on explicit tasks allocate the var by value in
8943         record_type unconditionally, rather than by reference.
8944         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
8945         Use is_taskreg_ctx instead of is_parallel_ctx.
8946         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
8947         (create_omp_child_function_name): Add task_copy argument, use
8948         *_omp_cpyfn* names if it is true.
8949         (create_omp_child_function): Add task_copy argument, if true create
8950         *_omp_cpyfn* helper function.
8951         (scan_omp_parallel): Adjust create_omp_child_function callers.
8952         Rename parallel_nesting_level to taskreg_nesting_level.
8953         (scan_omp_task): New function.
8954         (lower_rec_input_clauses): Don't run constructors for firstprivate
8955         explicit task vars which are initialized by *_omp_cpyfn*.
8956         Pass outer var ref to omp_clause_default_ctor hook if
8957         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
8958         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
8959         OMP_CLAUSE_REDUCTION_INIT.
8960         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
8961         avoid duplicate setting of fields.  Handle
8962         OMP_CLAUSE_PRIVATE_OUTER_REF.
8963         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
8964         copy-out if TREE_READONLY, only copy-in.
8965         (expand_task_copyfn): New function.
8966         (expand_task_call): New function.
8967         (struct omp_taskcopy_context): New type.
8968         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
8969         New functions.
8970         (lower_omp_parallel): Rename to...
8971         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
8972         Call create_task_copyfn if srecord_type is needed.  Adjust
8973         sender_decl type.
8974         (task_shared_vars): New variable.
8975         (check_omp_nesting_restrictions): Warn if work-sharing,
8976         barrier, master or ordered region is closely nested inside OMP_TASK.
8977         Add warnings for barrier if closely nested inside of work-sharing,
8978         ordered, or master region.
8979         (scan_omp_1): Call check_omp_nesting_restrictions even for
8980         GOMP_barrier calls.  Rename parallel_nesting_level to
8981         taskreg_nesting_level.  Handle OMP_TASK.
8982         (lower_lastprivate_clauses): Even if some lastprivate is found on a
8983         work-sharing construct, continue looking for them on parent parallel
8984         construct.
8985         (lower_omp_for_lastprivate): Add lastprivate clauses
8986         to the beginning of dlist rather than end.  Adjust for struct
8987         omp_for_data changes.
8988         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
8989         not after it.  Handle collapsed OMP_FOR loops, adjust for
8990         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
8991         (get_ws_args_for): Adjust extract_omp_for_data caller.
8992         (scan_omp_for): Handle collapsed OMP_FOR
8993         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
8994         (lower_omp_single_simple): If libgomp function doesn't return
8995         boolean_type_node, add comparison of the return value with 0.
8996         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
8997         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
8998         (parallel_nesting_level): Rename to...
8999         (taskreg_nesting_level): ... this.
9000         (is_taskreg_ctx): New function.
9001         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
9002         of is_parallel_ctx.
9003         (execute_lower_omp): Rename parallel_nesting_level to
9004         taskreg_nesting_level.
9005         (expand_omp_parallel): Rename to...
9006         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
9007         Call omp_task_call for OMP_TASK regions.
9008         (expand_omp): Adjust caller, handle OMP_TASK.
9009         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
9010
9011         * bitmap.c (bitmap_default_obstack_depth): New variable.
9012         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
9013         if argument is NULL and bitmap_default_obstack is already initialized.
9014         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
9015         at the end.
9016         * matrix-reorg.c (matrix_reorg): Likewise.
9017
9018 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
9019
9020         * config/i386/i386.md (*indirect_jump): Macroize using P
9021         mode iterator.  Remove !TARGET_64BIT from insn constraints.
9022         (*tablejump_1): Ditto.
9023         (*indirect_jump_rex64): Remove insn pattern.
9024         (*tablejump_1_rex64): Ditto.
9025         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
9026         and eh_return_si insn patterns.
9027
9028 2008-06-06  Richard Guenther  <rguenther@suse.de>
9029
9030         * tree-ssa-structalias.c (merge_smts_into): Remove.
9031         (find_what_p_points_to): Do not bother to compute the
9032         points-to set for pt_anything pointers.
9033         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
9034         for pt_anything pointers is ok.
9035
9036 2008-06-06  Jan Hubicka  <jh@suse.cz>
9037
9038         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
9039
9040 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9041
9042         * cgraph.c: Fix typos in comments.
9043         (cgraph_availability_names): Fix string typo.
9044         * fold-const.c: Fix typos in comments.
9045         (fold_binary): Fix typo in warning.
9046         * genautomata.c: Fix typos in comments.
9047         (check_presence_pattern_sets): Fix typo in local variable.
9048         (output_description): Fix typo in output.
9049         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
9050         * hwint.h: Likewise.
9051         * matrix-reorg.c (check_allocation_function): Likewise.
9052         * omega.c (smooth_weird_equations): Likewise.
9053         * auto-inc-dec.c: Fix typos in comments.
9054         * bb-reorder.c: Likewise.
9055         * builtins.c: Likewise.
9056         * c-common.c: Likewise.
9057         * c-cppbuiltin.c: Likewise.
9058         * c-parser.c: Likewise.
9059         * c-pretty-print.c: Likewise.
9060         * cfgcleanup.c: Likewise.
9061         * cfgexpand.c: Likewise.
9062         * cfghooks.c: Likewise.
9063         * cfglayout.c: Likewise.
9064         * cfgloopmanip.c: Likewise.
9065         * cgraphunit.c: Likewise.
9066         * coverage.c: Likewise.
9067         * dbxout.c: Likewise.
9068         * df-byte-scan.c: Likewise.
9069         * df-core.c: Likewise.
9070         * df-problems.c: Likewise.
9071         * df-scan.c: Likewise.
9072         * dfp.c: Likewise.
9073         * dominance.c: Likewise.
9074         * domwalk.c: Likewise.
9075         * dse.c: Likewise.
9076         * dwarf2out.c: Likewise.
9077         * emit-rtl.c: Likewise.
9078         * et-forest.c: Likewise.
9079         * function.c: Likewise.
9080         * function.h: Likewise.
9081         * gcc.c: Likewise.
9082         * gcov-io.c: Likewise.
9083         * gcov.c: Likewise.
9084         * gcse.c: Likewise.
9085         * genattrtab.c: Likewise.
9086         * ggc-page.c: Likewise.
9087         * gimplify.c: Likewise.
9088         * gthr-lynx.h: Likewise.
9089         * haifa-sched.c: Likewise.
9090         * ipa-cp.c: Likewise.
9091         * ipa-inline.c: Likewise.
9092         * ipa-prop.h: Likewise.
9093         * ipa-pure-const.c: Likewise.
9094         * ipa-struct-reorg.c: Likewise.
9095         * ipa-struct-reorg.h: Likewise.
9096         * ipa-type-escape.c: Likewise.
9097         * ipa.c: Likewise.
9098         * loop-doloop.c: Likewise.
9099         * mips-tfile.c: Likewise.
9100         * mkmap-flat.awk: Likewise.
9101         * mkmap-symver.awk: Likewise.
9102         * modulo-sched.c: Likewise.
9103         * omp-low.c: Likewise.
9104         * optabs.c: Likewise.
9105         * optabs.h: Likewise.
9106         * opts.c: Likewise.
9107         * passes.c: Likewise.
9108         * postreload-gcse.c: Likewise.
9109         * postreload.c: Likewise.
9110         * predict.c: Likewise.
9111         * pretty-print.h: Likewise.
9112         * profile.c: Likewise.
9113         * protoize.c: Likewise.
9114         * ra-conflict.c: Likewise.
9115         * real.c: Likewise.
9116         * recog.c: Likewise.
9117         * regclass.c: Likewise.
9118         * regs.h: Likewise.
9119         * reload.c: Likewise.
9120         * rtl-error.c: Likewise.
9121         * rtlanal.c: Likewise.
9122         * scan.h: Likewise.
9123         * sched-rgn.c: Likewise.
9124         * see.c: Likewise.
9125         * stmt.c: Likewise.
9126         * target.h: Likewise.
9127         * tree-dfa.c: Likewise.
9128         * tree-eh.c: Likewise.
9129         * tree-flow-inline.h: Likewise.
9130         * tree-inline.c: Likewise.
9131         * tree-into-ssa.c: Likewise.
9132         * tree-loop-distribution.c: Likewise.
9133         * tree-nested.c: Likewise.
9134         * tree-parloops.c: Likewise.
9135         * tree-pass.h: Likewise.
9136         * tree-pretty-print.c: Likewise.
9137         * tree-profile.c: Likewise.
9138         * tree-scalar-evolution.c: Likewise.
9139         * tree-sra.c: Likewise.
9140         * tree-ssa-alias-warnings.c: Likewise.
9141         * tree-ssa-ccp.c: Likewise.
9142         * tree-ssa-coalesce.c: Likewise.
9143         * tree-ssa-dom.c: Likewise.
9144         * tree-ssa-dse.c: Likewise.
9145         * tree-ssa-forwprop.c: Likewise.
9146         * tree-ssa-live.c: Likewise.
9147         * tree-ssa-live.h: Likewise.
9148         * tree-ssa-loop-im.c: Likewise.
9149         * tree-ssa-loop-ivopts.c: Likewise.
9150         * tree-ssa-loop-niter.c: Likewise.
9151         * tree-ssa-loop-prefetch.c: Likewise.
9152         * tree-ssa-phiopt.c: Likewise.
9153         * tree-ssa-phiprop.c: Likewise.
9154         * tree-ssa-sccvn.c: Likewise.
9155         * tree-ssa-ter.c: Likewise.
9156         * tree-ssa-threadupdate.c: Likewise.
9157         * tree-ssa.c: Likewise.
9158         * tree-vect-analyze.c: Likewise.
9159         * tree-vect-transform.c: Likewise.
9160         * tree-vectorizer.c: Likewise.
9161         * tree-vn.c: Likewise.
9162         * tree-vrp.c: Likewise.
9163         * tree.c: Likewise.
9164         * tree.def: Likewise.
9165         * tree.h: Likewise.
9166         * unwind-dw2-fde.c: Likewise.
9167         * unwind.inc: Likewise.
9168         * value-prof.c: Likewise.
9169         * vmsdbgout.c: Likewise.
9170
9171 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
9172
9173         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
9174         always place FP constants in the TOC for TARGET_POWERPC64.
9175         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
9176
9177 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
9178
9179         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
9180         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
9181         enable for TARGET_E500_DOUBLE.
9182         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
9183         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
9184         floating-point modes like integer modes for E500 double.
9185         (rs6000_legitimate_offset_address_p): Likewise.
9186         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
9187         addressing for DDmode for E500 double.
9188         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
9189         modes as using 64-bits of registers for E500 double.
9190         (spe_build_register_parallel): Do not handle DDmode or TDmode.
9191         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
9192         specially for E500 double.
9193         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
9194         TDmode for E500 double.
9195         (rs6000_gimplify_va_arg): Only handle SDmode in registers
9196         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
9197         (rs6000_split_multireg_move): Do not handle TDmode specially for
9198         E500 double.
9199         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
9200         using 64-bit registers for E500 double.
9201         (emit_frame_save): Do not handle DDmode specially for E500 double.
9202         (gen_frame_mem_offset): Likewise.
9203         (rs6000_function_value): Do not call spe_build_register_parallel
9204         for DDmode or TDmode.
9205         (rs6000_libcall_value): Likewise.
9206         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
9207         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
9208         for E500 double.
9209
9210 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
9211
9212         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
9213         in comments.
9214
9215 2008-06-04  Junjie Gu <jgu@tensilica.com>
9216
9217         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
9218         comparison for frame pointers.
9219
9220 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
9221
9222         PR target/27386
9223         * config/avr/avr.h (PUSH_ROUNDING): Remove.
9224
9225 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
9226
9227         PR target/30243
9228         * builtins.c (expand_builtin_signbit): Don't take lowpart when
9229         register is already smaller or equal to required mode.
9230
9231 2008-06-04  Xinliang David Li  <davidxl@google.com>
9232
9233         * tree-call-cdce.c: New file.
9234         (cond_dead_built_in_calls): New static variable.
9235         (input_domain): New struct.
9236         (check_pow): New function.
9237         (check_builtin_call): Ditto.
9238         (check_target_format): Ditto.
9239         (is_call_dce_candidate): Ditto.
9240         (gen_one_condition): Ditto.
9241         (gen_conditions_for_domain): Ditto.
9242         (get_domain): Ditto.
9243         (gen_conditions_for_pow_cst_base): Ditto.
9244         (gen_conditions_for_pow_int_base): Ditto.
9245         (gen_conditions_for_pow): Ditto.
9246         (get_no_error_domain): Ditto.
9247         (gen_shrink_wrap_conditions): Ditto.
9248         (shrink_wrap_one_built_in_call): Ditto.
9249         (shink_wrap_conditional_dead_built_in_calls): Ditto.
9250         (tree_call_cdce): Ditto.
9251         (gate_call_cdce): Ditto.
9252         (pass_call_cdce): New gimple pass.
9253         * passes.c: (init_optimization_passes): New pass.
9254         * tree-pass.h: New pass declaration.
9255         * opts.c (decode_options): New flag setting.
9256         * common.opt: Add -ftree-builtin-call-dce flag.
9257         * Makefile.in: Add new source file.
9258         * tempvar.def: New tv_id.
9259         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
9260
9261 2008-06-04  Richard Guenther  <rguenther@suse.de>
9262
9263         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
9264         (is_call_clobbered): Always check var_ann->call_clobbered.
9265         (mark_call_clobbered): Always set var_ann->call_clobbered.
9266         (clear_call_clobbered): Always clear var_ann->call_clobbered.
9267         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
9268         (reset_alias_info): Clear call clobbering info on MTAGs and
9269         globals as well.
9270         (set_pt_anything): Set pt_global_mem.
9271         (create_tag_raw): Adjust comment.
9272         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
9273
9274 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
9275             Maxim Kuvyrkov  <maxim@codesourcery.com>
9276
9277         * config/m68k/m68k.opt (mxgot): New option.
9278         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
9279         (m68k_output_addr_const_extra): New.
9280         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
9281         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
9282         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
9283         * doc/invoke.texi (M680x0 Options): Document -mxgot.
9284
9285 2008-06-04  Richard Guenther  <rguenther@suse.de>
9286
9287         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
9288         negative or non-representable offsets.
9289
9290 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
9291
9292         * config/i386/i386.c (ix86_gen_leave): New.
9293         (ix86_gen_pop1): Likewise.
9294         (ix86_gen_add3): Likewise.
9295         (ix86_gen_sub3): Likewise.
9296         (ix86_gen_sub3_carry): Likewise.
9297         (ix86_gen_one_cmpl2): Likewise.
9298         (ix86_gen_monitor): Likewise.
9299         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
9300         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
9301         ix86_gen_one_cmpl2 and ix86_gen_monitor.
9302         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
9303         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
9304         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
9305         (ix86_expand_epilogue): Updated.
9306         (print_operand): Handle integer register operand for 'z'.
9307         (ix86_expand_strlensi_unroll_1): Likewise.
9308         (ix86_expand_strlen): Likewise.
9309         (ix86_expand_builtin): Likewise.
9310         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
9311         mov{q}/mov{l} and add{q}/add{l}.
9312
9313 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
9314
9315         * config/i386/i386.md (P): New mode iterator.
9316         (SFmode push_operand splitter): Macroize DImode and SImode pushes
9317         using P mode iterator.
9318         (DFmode push_operand splitter): Ditto.
9319         (XFmode push_operand splitter): Ditto.
9320         (DFmode float_extend SFmode push_operand splitter): Ditto.
9321         (XFmode float_extend SFmode push_operand splitter): Do not generate
9322         SImode pushes for 64bit target.  Macroize Dimode and SImode
9323         pushes using P mode iterator.
9324         (XFmode float_extend DFmode push_operand splitter): Ditto.
9325
9326 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
9327
9328         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
9329         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
9330         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
9331         return type to int.
9332         (ix86_call_abi_override): Remove check for call_used_regs.
9333
9334 2008-06-03  Richard Guenther  <rguenther@suse.de>
9335
9336         * tree-ssa-structalias.c (find_func_aliases): Add constraints
9337         for the lhs of calls if the return type contains pointers.
9338
9339 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
9340
9341         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
9342         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
9343         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
9344         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
9345         of cfun and DEFAULT_ABI to deceide abi mode.
9346         (DEFAULT_ABI): New.
9347         (REG_PARM_STACK_SPACE): Removed.
9348         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
9349         (STACK_BOUNDARY): Use default target to deceide stack boundary.
9350         * config/i386/i386-protos.h (ix86_cfun_abi): New.
9351         (ix86_function_abi): Likewise.
9352         (ix86_function_type_abi): Likewise.
9353         (ix86_call_abi_override): Likewise.
9354         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
9355         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
9356         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
9357         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
9358         specific defines.
9359         (X86_64_REGPARM_MAX): New.
9360         (X86_64_SSE_REGPARM_MAX): New.
9361         (X64_REGPARM_MAX): New.
9362         (X64_SSE_REGPARM_MAX): New.
9363         (X86_32_REGPARM_MAX): New.
9364         (X86_32_SSE_REGPARM_MAX): New.
9365         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
9366         (ix86_function_regparm): Handle user calling abi.
9367         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
9368         by DEFAULT_ABI versus SYSV_ABI check.
9369         (ix86_reg_parm_stack_space): New.
9370         (ix86_function_type_abi): New.
9371         (ix86_call_abi_override): New.
9372         (ix86_function_abi): New.
9373         (ix86_cfun_abi): New.
9374         (init_cumulative_args): Call abi specific initialization.
9375         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
9376         (function_arg_64): Extend SSE_REGPARM_MAX check.
9377         (function_arg (): Remove TARGET_64BIT_MS_ABI.
9378         (ix86_pass_by_reference): Likewise.
9379         (ix86_function_value_regno_p): Likewise.
9380         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
9381         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
9382         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
9383         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
9384         (setup_incoming_varargs_64): Adjust regparm for call abi.
9385         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
9386         (ix86_va_start): Likewise.
9387         (ix86_gimplify_va_arg): Likewise.
9388         (ix86_expand_prologue): Likewise.
9389         (output_pic_addr_const): Likewise.
9390         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
9391         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
9392         (x86_output_mi_thunk): Likewise.
9393         (x86_function_profiler): Likewise.
9394         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
9395         (SYSV_ABI, MS_ABI): New constants.
9396         (DEFAULT_ABI): New.
9397         (init_regs): Add prototype of function in regclass.c file.
9398         (OVERRIDE_ABI_FORMAT): New.
9399         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
9400         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
9401         (OUTGOING_REG_PARM_STACK_SPACE): New.
9402         (ix86_reg_parm_stack_space): New prototype.
9403         (CUMULATIVE_ARGS): Add call_abi member.
9404         (machine_function): Add call_abi member.
9405         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
9406         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
9407
9408 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com>
9409
9410         PR target/34879
9411         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
9412         (avr_builtin_setjmp_frame_value): New function.
9413         * config/avr/avr.md (nonlocal_goto_receiver): Define.
9414         (nonlocal_goto): Define.
9415
9416 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
9417
9418         * config/mips/mips.c (mips_emit_loadgp): Return early if
9419         there is nothing do to, otherwise emit a blockage if
9420         !TARGET_EXPLICIT_RELOCS || crtl->profile.
9421         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
9422
9423 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9424
9425         * configure.ac: Drop unneeded backslash ending up in config.in.
9426         * acinclude.m4: Likewise.
9427         * config.in: Regenerate.
9428
9429 2008-05-26  Jan Hubicka  <jh@suse.cz>
9430
9431         * predict.c (maybe_hot_frequency_p): Break out of...
9432         (maybe_hot_bb_p): ... here.
9433         (maybe_hot_edge_p): New.
9434         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
9435         * basic-block.h (maybe_hot_edge_p): Declare.
9436
9437 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
9438
9439         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
9440         (*cmpfp_<mode>_cc): Ditto.
9441         (*fp_jcc_8<mode>_387): Ditto.
9442         (*fop_<MODEF:mode>_2_i387): Ditto.
9443         (*fop_<MODEF:mode>_3_i387): Ditto.
9444         (*fop_xf_2_i387): Ditto.
9445         (*fop_xf_3_i387): Ditto.
9446
9447 2008-06-02  Tomas Bily  <tbily@suse.cz>
9448
9449         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
9450
9451 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
9452
9453         * config/mips/mips.c (mips_valid_offset_p): New function.
9454         (mips_valid_lo_sum_p): Likewise.
9455         (mips_classify_address): Use them.
9456         (mips_force_address): New function.
9457         (mips_legitimize_address): Use it.
9458         * config/mips/mips.md (MOVE128): New mode iterator.
9459         (movtf): Require TARGET_64BIT.  Remove empty strings.
9460         (*movtf_internal): Rename to...
9461         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
9462         of "R" and use {,fp}{load,store} attributes instead of "multi".
9463         Use a separate define_split.
9464         (*movtf_mips16): New pattern.
9465
9466 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
9467
9468         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
9469         * config/mips/mips.c (mips_expand_before_return): New function.
9470         (mips_expand_epilogue): Call it.
9471         * config/mips/mips.md (return): Turn into a define_expand.
9472         (*return): New insn.
9473
9474 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
9475
9476         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
9477         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
9478         functions.  Do not emit uses and clobbers of CONCATs; individually
9479         use and clobber their operands.
9480         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
9481         gen_clobber, emit_use and gen_use.
9482         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
9483         (expand_builtin_return): Likewise.
9484         * cfgbuild.c (count_basic_blocks): Likewise.
9485         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
9486         * explow.c (emit_stack_restore): Likewise.
9487         * expmed.c (extract_bit_field_1): Likewise.
9488         * expr.c (convert_move, emit_move_complex_parts): Likewise.
9489         (emit_move_multi_word, store_constructor): Likewise.
9490         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
9491         (thread_prologue_and_epilogue_insns): Likewise.
9492         * lower-subreg.c (resolve_simple_move): Likewise.
9493         * optabs.c (widen_operand, expand_binop): Likewise.
9494         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
9495         * reload.c (find_reloads): Likewise.
9496         * reload1.c (eliminate_regs_in_insn): Likewise.
9497         * stmt.c (expand_nl_goto_receiver): Likewise.
9498         * config/alpha/alpha.md (builtin_longjmp): Likewise.
9499         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
9500         * config/arm/arm.c (arm_load_pic_register): Likewise.
9501         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
9502         * config/arm/arm.md (untyped_return): Likewise.
9503         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
9504         * config/avr/avr.c (expand_prologue): Likewise.
9505         * config/bfin/bfin.c (do_unlink): Likewise.
9506         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
9507         * config/cris/cris.c (cris_expand_prologue): Likewise.
9508         * config/darwin.c (machopic_indirect_data_reference): Likewise.
9509         (machopic_legitimize_pic_address): Likewise.
9510         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
9511         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
9512         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
9513         (ix86_expand_convert_uns_didf_sse): Likewise.
9514         (ix86_expand_vector_init_general): Likewise.
9515         * config/ia64/ia64.md (eh_epilogue): Likewise.
9516         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
9517         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
9518         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
9519         (config/iq2000/iq2000.c): Likewise.
9520         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
9521         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
9522         (builtin_longjmp): Likewise.
9523         * config/mn10300/mn10300.md (call, call_value): Likewise.
9524         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
9525         * config/pdp11/pdp11.md (abshi2): Likewise.
9526         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
9527         * config/s390/s390.c (s390_emit_prologue): Likewise.
9528         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
9529         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
9530         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
9531         * config/sh/sh.c (prepare_move_operands): Likewise.
9532         (output_stack_adjust, sh_expand_epilogue): Likewise.
9533         (sh_set_return_address, sh_expand_t_scc): Likewise.
9534         * config/sparc/sparc.c (load_pic_register): Likewise.
9535         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
9536         * config/spu/spu.c (spu_expand_epilogue): Likewise.
9537         * config/v850/v850.c (expand_epilogue): Likewise.
9538
9539 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
9540
9541         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
9542         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
9543         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
9544         * config/avr/avr.c (expand_prologue, expand_epilogue): Use
9545         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
9546         stack pointer register.
9547         (output_movhi): Remove code for interrupt specific writing to the
9548         stack pointer register.
9549
9550 2008-05-31  Richard Guenther  <rguenther@suse.de>
9551
9552         PR tree-optimization/34244
9553         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
9554         (tree_expr_nonzero_warnv_p): Likewise.
9555         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
9556         ssa_name_nonnegative_p.
9557         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
9558         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
9559         not tree_expr_nonzero_warnv_p.
9560
9561         PR tree-optimization/36262
9562         Revert
9563         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
9564
9565         PR tree-optimization/34244
9566         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
9567         (record_numbers_of_iterations): New function.
9568         (execute_vrp): Cache the numbers of iterations of loops.
9569         * tree-scalar-evolution.c (scev_reset_except_niters):
9570         New function.
9571         (scev_reset): Use scev_reset_except_niters.
9572         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
9573
9574 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
9575
9576         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
9577         __WORKAROUND_RETS when appropriate.
9578
9579 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
9580
9581         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
9582         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
9583         mode iterator.
9584         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
9585         *fop_df_comm_sse insn patterns using MODEF mode iterator.
9586         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
9587         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
9588         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
9589         *fop_df_1_mixed insn patterns using MODEF mode iterator.
9590         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
9591         *fop_df_1_sse insn patterns using MODEF mode iterator.
9592         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
9593         *fop_df_1_i387 insn patterns using MODEF mode iterator.
9594         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
9595         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
9596         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
9597         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
9598         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
9599         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
9600         (*fop_xf_4_i387): Use <MODE> for mode attribute.
9601         (*fop_xf_5_i387): Ditto.
9602         (*fop_xf_6_i387): Ditto.
9603
9604 2008-05-30  Richard Guenther  <rguenther@suse.de>
9605
9606         * builtins.c (build_string_literal): Avoid generating
9607         a non-gimple_val result.
9608
9609 2008-05-30  DJ Delorie  <dj@redhat.com>
9610
9611         * exec-tool.in: Use an environment variable (private) instead of a
9612         file (shared) as a semaphore, so as to not break parallel builds.
9613
9614 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
9615
9616         * optabs.c (maybe_encapsulate_block): Remove.
9617         (emit_libcall_block): Adjust accordingly.
9618         * optabs.h (maybe_encapsulate_block): Remove prototype.
9619
9620         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
9621         Don't use maybe_encapsulate_block.
9622
9623 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
9624
9625         * config/rs6000/rs6000.c (rs6000_legitimize_address,
9626         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
9627         rtx is a SYMBOL_REF before calling get_pool_constant.
9628
9629 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
9630
9631         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
9632
9633 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
9634
9635         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
9636         rather than OS names to choose INO_T_EQ definition.
9637         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
9638         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
9639
9640 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
9641
9642         PR target/36348
9643         * config/darwin-f.c: New.
9644         * config/t-darwin: Added rule to build darwin-f.o.
9645         * config.gcc: Defined new variable, fortran_target_objs.
9646         (*-*-darwin*): Set fortran_target_objs.
9647         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
9648         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
9649         * configure: Regenerated.
9650
9651 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
9652
9653         PR target/35771
9654         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
9655         canonical type if needed.
9656
9657 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
9658
9659         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
9660
9661 2008-05-29  Richard Guenther  <rguenther@suse.de>
9662
9663         PR tree-optimization/36343
9664         PR tree-optimization/36346
9665         PR tree-optimization/36347
9666         * tree-flow.h (clobber_what_p_points_to): Declare.
9667         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
9668         pointed-to variable is dereferenced is irrelevant to whether
9669         the pointer can access the pointed-to variable.
9670         (clobber_what_p_points_to): New function.
9671         * tree-ssa-alias.c (set_initial_properties): Use it.
9672         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
9673         call clobber check for NMTs.
9674
9675 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
9676
9677         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
9678         for printing gcov_type.
9679
9680 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
9681
9682         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
9683         and the eh region information.
9684         * value-prof.c (gimple_move_stmt_histograms): New function.
9685         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
9686
9687 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
9688
9689         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
9690
9691 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
9692
9693         * value-prof.c (tree_ic_transform): Print counts.
9694         * tree-profile.c (tree_gen_ic_func_profiler):
9695         Clear __gcov_indreict_call_callee variable to avoid misattribution
9696         of the profile.
9697
9698 2008-05-28  Rafael Espindola  <espindola@google.com>
9699
9700         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
9701         invalid sharing.
9702
9703 2008-05-28  Richard Guenther  <rguenther@suse.de>
9704
9705         PR tree-optimization/36339
9706         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
9707         and clobbering code out of the loop.
9708
9709 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
9710
9711         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
9712         letters defined.
9713
9714         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
9715         s390_contiguous_bitmask_p, s390_symref_operand_p,
9716         s390_check_symref_alignment, s390_reload_larl_operand,
9717         s390_reload_symref_address): New functions.
9718         (s390_branch_condition_mnemonic): Support compare and branch
9719         instructions.
9720         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
9721         and 'W' constraints.
9722         (s390_secondary_reload): Add secondary reloads for unaligned
9723         symbol refs or symbol refs to floating point or QI/TI mode
9724         integer values.
9725         (legitimate_address_p): Accept symbol references as addresses.
9726         (s390_expand_insv): Use rotate and insert selected bits
9727         instruction for insv when building for z10.
9728         (print_operand_address): Handle symbol ref addresses.
9729         (print_operand): Output modifier 'c' added for signed byte values.
9730         (s390_encode_section_info): Mark symbol refs with
9731         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
9732
9733         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
9734         (length attribute): RRF, RRR have 4 byte length.
9735         (FPALL, INTALL): New mode iterators added.
9736         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
9737         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
9738         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
9739         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
9740         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
9741         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
9742         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
9743         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
9744         instructions.
9745         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
9746         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
9747         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
9748         reload<INTALL:mode><P:mode>_toreg_z10,
9749         reload<FPALL:mode><P:mode>_tomem_z10,
9750         reload<FPALL:mode><P:mode>_toreg_z10,
9751         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
9752         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
9753         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
9754         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
9755         definition.
9756         (movmem, clrmem, cmpmem): New splitters added.
9757
9758         * config/s390/predicates.md (larl_operand): Use
9759         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
9760         SYMBOL_REF_ALIGN1_P.
9761         (s390_signed_integer_comparison,
9762         s390_unsigned_integer_comparison): New predicates.
9763
9764         * config/s390/s390-protos.h (s390_check_symref_alignment,
9765         s390_contiguous_bitmask_p, s390_reload_larl_operand,
9766         s390_reload_symref_address,
9767         s390_compare_and_branch_condition_mask): Prototypes added.
9768
9769         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
9770         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
9771         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
9772
9773 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
9774
9775         * config/s390/s390.c (z10_cost): New cost function for z10.
9776         (s390_handle_arch_option, override_options): Support -march=z10 switch.
9777         (s390_issue_rate): Adjust issue rate for z10.
9778         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
9779         (processor_flags): Add PF_Z10.
9780         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
9781         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
9782         * gcc/config.gcc: Add z10.
9783
9784 2008-05-28  Richard Guenther  <rguenther@suse.de>
9785
9786         PR tree-optimization/36291
9787         * tree-flow. h (struct gimple_df): Remove var_anns member.
9788         * tree-flow-inline.h (gimple_var_anns): Remove.
9789         (var_ann): Simplify.
9790         * tree-dfa.c (create_var_ann): Simplify.
9791         (remove_referenced_var): Clear alias info from var_anns of globals.
9792         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
9793         (delete_tree_ssa): Clear alias info from var_anns of globals.
9794         Do not free var_anns.
9795         (var_ann_eq): Remove.
9796         (var_ann_hash): Likewise.
9797
9798 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
9799
9800         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
9801         and loongson2f entries.
9802         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
9803         * config/mips/mips.h (processor_type): Add Loongson-2E
9804         and Loongson-2F entries.
9805         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
9806         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
9807         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
9808         * doc/invoke.texi (MIPS Options): Document loongson2e
9809         and loongson2f processor names.
9810
9811 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
9812
9813         PR target/35767
9814         PR target/35771
9815         * config/i386/i386.c (ix86_function_arg_boundary): Use
9816         alignment of canonical type.
9817         (ix86_expand_vector_move): Check unaligned memory access for
9818         all SSE modes.
9819
9820 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
9821
9822         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
9823         Moved to the front of file.
9824
9825 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
9826             H.J. Lu  <hongjiu.lu@intel.com>
9827
9828         * dwarf2out.c (current_fde): New.
9829         (add_cfi): Use it.
9830         (lookup_cfa:): Likewise.
9831         (dwarf2out_end_epilogue): Likewise.
9832         (dwarf2out_note_section_used): Likewise.
9833
9834 2008-05-27  Michael Matz  <matz@suse.de>
9835
9836         PR c++/27975
9837         * c.opt (Wenum-compare): New warning option.
9838         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
9839
9840 2008-05-27  Michael Matz  <matz@suse.de>
9841
9842         PR middle-end/36326
9843         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
9844         non-BLKmode types.
9845         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
9846         into memory as tail calls.
9847
9848 2008-05-27  Richard Guenther  <rguenther@suse.de>
9849
9850         PR tree-optimization/36339
9851         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
9852         pointers cause all addressable variables to be call clobbered.
9853
9854 2008-05-27  Richard Guenther  <rguenther@suse.de>
9855
9856         PR tree-optimization/36245
9857         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
9858
9859 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
9860
9861         * config/s390/s390.md: Replace all occurences of the 'm'
9862         constraint with 'RT'.
9863
9864 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
9865
9866         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
9867         definitions added.
9868         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
9869         "*movdi_64".
9870         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
9871         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
9872         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
9873
9874 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
9875
9876         * reload.c: (find_reloads): Skip alternatives according to the
9877         "enabled" attribute. Constify the constraint variable.
9878         * recog.c (get_attr_enabled): Add default implementation.
9879         (extract_insn): Set the alternative_enabled_p array
9880         in the recog_data struct.
9881         (preprocess_constraints, constrain_operands): Skip
9882         alternatives according to the "enabled" attribute
9883         * recog.h (struct recog_data): New field alternative_enabled_p.
9884         (skip_alternative): New inline function.
9885         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
9886         (record_reg_classes): Skip alternative according to the
9887         "enabled" attribute.
9888
9889         * doc/md.texi: Add documention for the "enabled" attribute.
9890
9891 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
9892
9893         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
9894         * postreload.c (reload_cse_simplify_operands): Replace 'm'
9895         constraint with TARGET_MEM_CONSTRAINT.
9896         * recog.c (asm_operand_ok, preprocess_constraints,
9897         constrain_operands): Likewise.
9898         * regclass.c (record_reg_classes): Likewise.
9899         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
9900         * reload1.c (maybe_fix_stack_asms): Likewise.
9901         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
9902         * recog.h: Adjust comment.
9903         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
9904         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
9905         * doc/md.texi: Add a note to description of 'm' constraint.
9906         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
9907
9908 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
9909
9910         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
9911         that the bitfield is of integral type before testing its precision.
9912
9913 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
9914             Sa Liu  <saliu@de.ibm.com>
9915
9916         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
9917         __modti3, __udivti3, __umodti3 and __udivmodti4.
9918         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
9919         that implement TImode mul and div functions.
9920         * config/spu/multi3.c: New. Implement __multi3.
9921         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
9922         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
9923         functions on SPU.
9924
9925 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
9926
9927         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
9928         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
9929         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
9930         tls_sysv_suffix): New mode and mode attribute iterators.
9931         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
9932         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
9933         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
9934         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
9935         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
9936         iterators.
9937
9938 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
9939
9940         PR tree-optimization/36329
9941         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
9942         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
9943         * cgraphbuild.c (initialize_inline_failed): Use the latter
9944         macro in lieu of the former.
9945         * ipa-inline.c (cgraph_mark_inline): Likewise.
9946         (cgraph_decide_inlining_of_small_function): Likewise.
9947         (cgraph_decide_inlining): Likewise.
9948         (cgraph_decide_inlining_incrementally): Likewise.
9949
9950 2008-05-26  Tristan Gingold  <gingold@adacore.com>
9951             Anatoly Sokolov  <aesok@post.ru>
9952
9953         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
9954         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
9955         * config/avr/avr.c (expand_prologue): Tune "call_prologue"
9956         optimization for 'avr6' architecture.
9957
9958 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
9959
9960         PR target/34932
9961         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
9962
9963 2008-05-26  Richard Guenther  <rguenther@suse.de>
9964
9965         * tree-ssa-sccvn.c (expr_has_constants): Declare.
9966         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
9967
9968 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
9969
9970         PR middle-end/36253
9971         * caller-save.c (insert_restore): Verify alignment of spill space.
9972         (insert_save): Likewise.
9973         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
9974         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
9975         (STACK_SLOT_ALIGNMENT): Likewise.
9976         * function.c (LOCAL_ALIGNMENT): Removed.
9977         (get_stack_local_alignment): New.
9978         (assign_stack_local): Use it.  Set alignment on stack slot.
9979         (assign_stack_temp_for_type): Use get_stack_local_alignment.
9980         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
9981         (STACK_SLOT_ALIGNMENT): New.
9982         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
9983         stack slot in XFmode.
9984
9985         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
9986
9987 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
9988
9989         PR/36321
9990         * config/i386/i386.md (allocate_stack_worker_64): Make sure
9991         argument operand in rax isn't removed.
9992
9993 2008-05-26  Richard Guenther  <rguenther@suse.de>
9994
9995         PR middle-end/36300
9996         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
9997         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
9998
9999 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
10000
10001         PR bootstrap/36331
10002         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
10003
10004 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
10005
10006         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
10007         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
10008
10009 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
10010
10011         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
10012         build a trampoline if we don't want one.
10013         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
10014         return zero for nested functions if we don't want a trampoline.
10015
10016 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
10017
10018         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
10019
10020 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
10021
10022         PR fortran/18428
10023         * c.opt: Removed undocumented option '-lang-fortran'.
10024         * c-common.h: Removed global variable 'lang_fortran'.
10025         * c-opts.c (c_common_handle_option): Removed code to handle
10026         option '-lang-fortran'. Updated includes.
10027         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
10028         definition of '__GFORTRAN__'.
10029         (define__GNUC__): Reimplemented to use BASEVER and
10030         cpp_define_formatted.
10031         (builtin_define_with_value_n): Removed.
10032         * c-incpath.h: Renamed to ...
10033         * incpath.h: ... this.
10034         * c-incpath.c: Renamed to ...
10035         * incpath.c: ... this. Updated includes.
10036         * fix-header.c: Updated includes.
10037         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
10038         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
10039         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
10040
10041 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
10042
10043         * tree.h: Update the table of flags used on tree nodes.
10044         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
10045         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
10046         (FORCED_LABEL): Add access check.
10047         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
10048         (ASM_INPUT_P): Likewise.
10049         (ASM_VOLATILE_P): Likewise.
10050         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
10051         (OMP_SECTION_LAST): Access private_flag directly.
10052         (OMP_RETURN_NOWAIT): Likewise.
10053         (OMP_PARALLEL_COMBINED): Likewise.
10054         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
10055         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
10056         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
10057         deprecated_flag directly.
10058
10059 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
10060
10061         * final.c (frame_pointer_needed): Removed.
10062         * flags.h (frame_pointer_needed): Likewise.
10063
10064         * function.h (rtl_data): Add frame_pointer_needed.
10065         (frame_pointer_needed): New.
10066
10067 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
10068
10069         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
10070
10071 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
10072
10073         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
10074         SRC is a REG.
10075
10076 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
10077
10078         * c-common.c (strip_array_types): Move function to..
10079         * tree.c: ..here.
10080         (get_inner_array_type): Delete.
10081         * c-common.h (strip_array_types): Move declaration to..
10082         * tree.h: ..here.
10083         (get_inner_array_type): Delete.
10084         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
10085         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
10086         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
10087         * config/pa/pa.c (emit_move_sequence): Likewise.
10088
10089 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
10090
10091         * config/i386/i386.md (*sse_prologue_save_insn): Set length
10092         attribute to 34.
10093
10094 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
10095
10096         * function.c: Include target hook for nonlocal_goto frame value.
10097
10098 2008-05-24  Richard Guenther  <rguenther@suse.de>
10099
10100         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
10101         variable can be only accessed through a pointer or a union.
10102
10103 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10104
10105         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
10106         * doc/extend.texi: Likewise.
10107
10108 2008-05-23  DJ Delorie  <dj@redhat.com>
10109
10110         * config/m32c/jump.md (untyped_call): Add.
10111
10112         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
10113         for A24 to PSImode.
10114         (m32c_address_cost): Detail costs for indirect offsets.
10115
10116 2008-05-23  Rafael Espindola  <espindola@google.com>
10117
10118         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
10119         if a node is a SUBREG.
10120         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
10121         is a SUBREG.
10122
10123 2008-05-23  Paul Brook  <paul@codesourcery.com>
10124             Carlos O'Donell  <carlos@codesourcery.com>
10125
10126         * doc/extend.texi: Clarify use of __attribute__((naked)).
10127         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
10128         * target.h (gcc_target): Add allocate_stack_slots_for_args.
10129         * function.c (use_register_for_decl): Use
10130         targetm.calls.allocate_stack_slots_for_args.
10131         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
10132         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
10133         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
10134
10135 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
10136
10137         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
10138
10139 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
10140
10141         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
10142         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
10143         is only rounded once.
10144
10145 2008-05-23  Richard Guenther  <rguenther@suse.de>
10146
10147         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
10148
10149 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
10150             Jakub Jelinek  <jakub@redhat.com>
10151
10152         PR target/36079
10153         * configure.ac: Handle --enable-cld.
10154         * configure: Regenerated.
10155         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
10156         * config/i386/i386.h (struct machine_function): Add needs_cld field.
10157         (ix86_current_function_needs_cld): New define.
10158         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
10159         (cld): New isns pattern.
10160         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
10161         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
10162         * config/i386/i386.opt (mcld): New option.
10163         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
10164         TARGET_CLD and ix86_current_function_needs_cld.
10165         (override_options): Use -mcld by default for 32-bit code if
10166         USE_IX86_CLD.
10167
10168         * doc/install.texi (Options specification): Document --enable-cld.
10169         * doc/invoke.texi (Machine Dependent Options)
10170         [i386 and x86-64 Options]: Add -mcld option.
10171         (Intel 386 and AMD x86-64 Options): Document -mcld option.
10172
10173 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
10174         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
10175         (return_in_memory_64): Likewise.
10176         (return_in_memory_ms_64): Likewise.
10177
10178 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10179
10180         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
10181         * builtins.c (fold_builtin_fpclassify): New.
10182         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
10183         * builtins.def (BUILT_IN_FPCLASSIFY): New.
10184         * c-common.c (handle_type_generic_attribute): Adjust to accept
10185         fixed arguments before an elipsis.
10186         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
10187         * doc/extend.texi: Document __builtin_fpclassify.
10188
10189 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
10190
10191         * omp-low.c (gate_expand_omp_ssa): Remove.
10192         (pass_expand_omp_ssa): Remove.
10193         (gate_expand_omp): Do not check for flag_openmp_ssa.
10194         * common.opt (-fopenmp-ssa): Remove.
10195         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
10196
10197 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
10198
10199         * config/sh/sh.opt (mfixed-range): New option.
10200         * config/sh/sh-protos.h (sh_fix_range): Declare.
10201         * config/sh/sh.c (sh_fix_range): New function.
10202         * config/sh/sh.h (sh_fixed_range_str): Declare.
10203         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
10204         is not empty.
10205         * doc/invoke.texi (SH Options): Document -mfixed-range.
10206
10207 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
10208
10209         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
10210         it before the redeclaration.
10211
10212 2008-05-22  Anatoly Sokolov <aesok@post.ru>
10213
10214         * config/avr/avr.c (get_sequence_length): Add new function.
10215         (expand_prologue, expand_epilogue): Remove duplicate code.
10216
10217 2008-05-22  Rafael Espindola  <espindola@google.com>
10218
10219         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
10220         sharing.
10221
10222 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
10223
10224         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
10225         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
10226
10227         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
10228         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
10229         (vect_update_misalignment_for_peel): Likewise.
10230         (vector_alignment_reachable_p): Likewise.
10231         * tree-vect-transform.c (vectorizable_load): Likewise.
10232         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
10233         (get_vectype_for_scalar_type): Pass mode of scalar_type
10234         to UNITS_PER_SIMD_WORD.
10235
10236         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
10237         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
10238         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
10239         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
10240         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
10241
10242 2008-05-22  Ira Rosen  <irar@il.ibm.com>
10243
10244         PR tree-optimization/36293
10245         * tree-vect-transform.c (vect_transform_strided_load): Don't check
10246         if the first load must be skipped because of a gap.
10247
10248 2008-05-22  Richard Guenther  <rguenther@suse.de>
10249
10250         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
10251         more cases of offset disambiguation that is possible if
10252         strict-aliasing rules apply.
10253         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
10254         for basic offset and type-based disambiguation.
10255
10256 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
10257
10258         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
10259         ix86_expand_vector_set on V16QImode for SSE4.1.
10260
10261 2008-05-21  Tom Tromey  <tromey@redhat.com>
10262
10263         * c.opt (Wimport): Mark as undocumented.
10264         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
10265         -Wno-import.
10266         (Warning Options): Likewise.
10267         * doc/cppopts.texi: Don't mention -Wimport.
10268
10269 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
10270
10271         PR tree-optimization/36287
10272         PR tree-optimization/36286
10273         * lambda-code.c (build_access_matrix): Do not use the loop->num
10274         for computing the number of induction variables: use the loop depth
10275         instead.
10276
10277 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
10278
10279         PR/36280
10280         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
10281         option -f(no-)leading-underscore.
10282
10283 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
10284
10285         * config/i386/i386.c (ix86_expand_vector_init_general): Use
10286         GET_MODE_NUNITS (mode).
10287
10288 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
10289
10290         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
10291         (-mmulhw): Add 464 to description.
10292         (-mdlmzb): Likewise.
10293         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
10294         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
10295         464fp entries.
10296         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
10297         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
10298         * config/rs6000/rs6000.md: Update comments for 464.
10299
10300 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
10301
10302         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
10303
10304 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
10305
10306         * config/i386/sse.md (vec_extractv4sf): Removed.
10307         (vec_extractv2df): Likewise.
10308         (vec_extractv2di): Likewise.
10309         (vec_extractv4si): Likewise.
10310         (vec_extractv8hi): Likewise.
10311         (vec_extractv16qi): Likewise.
10312         (vec_extract<mode>): New.
10313
10314 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
10315
10316         * config/i386/sse.md (vec_setv4sf): Removed.
10317         (vec_setv2df): Likewise.
10318         (vec_setv2di): Likewise.
10319         (vec_setv4si): Likewise.
10320         (vec_setv8hi): Likewise.
10321         (vec_setv16qi): Likewise.
10322         (vec_set<mode>): New.
10323
10324 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
10325
10326         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
10327         goto for vec_concat and vec_interleave.
10328
10329 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
10330
10331         * config/i386/sse.md (vec_initv4sf): Removed.
10332         (vec_initv2df): Likewise.
10333         (vec_initv2di): Likewise.
10334         (vec_initv4si): Likewise.
10335         (vec_initv8hi): Likewise.
10336         (vec_initv16qi): Likewise.
10337         (vec_init<mode>): New.
10338
10339 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
10340
10341         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
10342
10343 2008-05-21  Tom Tromey  <tromey@redhat.com>
10344
10345         * ggc-zone.c (lookup_page_table_if_allocated): New function.
10346         (zone_find_object_offset): Likewise.
10347         (gt_ggc_m_S): Likewise.
10348         (highest_bit): Likewise.
10349         * ggc-page.c (gt_ggc_m_S): New function.
10350         * stringpool.c (string_stack): Remove.
10351         (init_stringpool): Update.
10352         (ggc_alloc_string): Use ggc_alloc.
10353         (maybe_delete_ident): New function.
10354         (ggc_purge_stringpool): Likewise.
10355         (gt_ggc_m_S): Remove.
10356         * ggc-common.c (ggc_protect_identifiers): New global.
10357         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
10358         ggc_protect_identifiers.
10359         * ggc.h (ggc_protect_identifiers): Declare.
10360         (gt_ggc_m_S): Update.
10361         (ggc_purge_stringpool): Declare.
10362         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
10363         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
10364         special case.
10365         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
10366
10367 2008-05-21  David S. Miller  <davem@davemloft.net>
10368
10369         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
10370         tmake_file.
10371
10372 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
10373
10374         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
10375         once finished.
10376
10377 2008-05-20  David Daney  <ddaney@avtrex.com>
10378
10379         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
10380         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
10381         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
10382         UNSPEC_UPDATE_GOT_VERSION): Renumber.
10383         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
10384         (atomic_hiqi_op): New define_code_iterator.
10385         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
10386         mips_expand_compare_and_swap_12.
10387         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
10388         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
10389         (sync_<optab><mode>, sync_old_<optab><mode>,
10390         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
10391         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
10392         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
10393         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
10394         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
10395         (test_and_set_12): New insn.
10396         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
10397         sync_new_<optab><mode>, sync_old_nand<mode>,
10398         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
10399         clobber to operand 0 for SI and DI mode insns.
10400         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
10401         mips_gen_fn_4): New typedefs.
10402         (mips_gen_fn_ptrs): Define new union type.
10403         (mips_expand_compare_and_swap_12): Remove declaration.
10404         (mips_expand_atomic_qihi): Declare function.
10405         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
10406         (mips_expand_atomic_qihi): ... this.  Use new generator function
10407         parameter.
10408         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
10409         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
10410         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
10411         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
10412         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
10413         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
10414         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
10415         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
10416         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
10417         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
10418         New macros.
10419
10420 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
10421
10422         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
10423         the missing break.
10424
10425 2008-05-20  Anatoly Sokolov <aesok@post.ru>
10426
10427         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
10428         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
10429         (avr_attribute_table): Add 'OS_main' function attribute.
10430         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
10431         functions with 'OS_main' attribute.
10432
10433 2008-05-20  Richard Guenther  <rguenther@suse.de>
10434
10435         PR tree-optimization/35204
10436         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
10437         helper, split out from ...
10438         (DFS): ... here.  Make the DFS walk non-recursive.
10439
10440 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
10441             Jan Sjodin  <jan.sjodin@amd.com>
10442
10443         PR tree-optimization/36181
10444         * tree-parloops.c (loop_has_vector_phi_nodes): New.
10445         (parallelize_loops): Don't parallelize when the loop has vector
10446         phi nodes.
10447
10448 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
10449             Sebastian Pop  <sebastian.pop@amd.com>
10450
10451         * tree-loop-linear.c (gather_interchange_stats): Look in the access
10452         matrix, and never look at the tree representation of the memory
10453         accesses.
10454         (linear_transform_loops): Computes parameters and access matrices.
10455         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
10456         when fails.
10457         (access_matrix_get_index_for_parameter): New.
10458         * tree-data-ref.h (struct access_matrix): New.
10459         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
10460         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
10461         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
10462         am_vector_index_for_loop): New.
10463         (struct data_reference): Add field access_matrix.
10464         (DR_ACCESS_MATRIX): New.
10465         (compute_data_dependences_for_loop): Update declaration.
10466         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
10467         * lambda.h (lambda_vector_vec_p): Declared.
10468         * lambda-code.c: Depend on pointer-set.h.
10469         (lambda_collect_parameters_from_af, lambda_collect_parameters,
10470         av_for_af_base, av_for_af, build_access_matrix,
10471         lambda_compute_access_matrices): New.
10472         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
10473
10474 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
10475
10476         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
10477         $SOURCEDIR/include.
10478
10479 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
10480             Sebastian Pop  <sebastian.pop@amd.com>
10481
10482         PR tree-optimization/36206
10483         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
10484         FOLD_CONVERSIONS.
10485         (instantiate_scev_1): Rename flags to fold_conversions.
10486         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
10487         outeside instantiation_loop.
10488         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
10489         (evolution_function_is_affine_or_constant_p): Removed.
10490         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
10491         instantiate_scev.
10492         (analyze_siv_subscript): Pass in the loop nest number.
10493         Call evolution_function_is_affine_in_loop instead of
10494         evolution_function_is_affine_p.
10495         (analyze_overlapping_iterations): Pass in the loop nest number.
10496
10497 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
10498             Sebastian Pop  <sebastian.pop@amd.com>
10499
10500         PR tree-optimization/36206
10501         * tree-chrec.h (chrec_fold_op): New.
10502         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
10503         and other trees.
10504
10505 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
10506
10507         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
10508         (DIRS_EQ): New.
10509         (remove_duplicates): Do not set inode on non-inode systems.
10510         Use DIRS_EQ.
10511
10512 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
10513
10514         * config.gcc (tm_file): Update comments about relative pathnames.
10515
10516 2008-05-20  Richard Guenther  <rguenther@suse.de>
10517
10518         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
10519         * tree-ssa-sccvn.c (process_scc): Likewise.
10520         * tree-ssa-sink.c (execute_sink_code): Likewise.
10521         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
10522         * tree-vrp.c (process_assert_insertions): Likewise.
10523         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
10524         (perform_tree_ssa_dce): Likewise.
10525         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
10526         (dump_dominator_optimization_stats): Likewise.
10527         * tree-vectorizer.c (vectorize_loops): Likewise.
10528
10529 2008-05-20  Richard Guenther  <rguenther@suse.de>
10530
10531         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
10532
10533 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
10534
10535         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
10536         (ix86_i386elf_return_in_memory): Likewise.
10537         (ix86_i386interix_return_in_memory): Likewise.
10538         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
10539         (SUBTARGET_RETURN_IN_MEMORY): New.
10540         * config/i386/i386elf.h: Likewise.
10541         * config/i386/ptx4-i.h: Likewise.
10542         * config/i386/sol2-10.h: Likewise.
10543         * config/i386/sysv4.h: Likewise.
10544         * config/i386/vx-common.h: Likewise.
10545         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
10546         * config/i386/i386.c (ix86_return_in_memory): Made static and
10547         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
10548         (ix86_i386elf_return_in_memory): Removed.
10549         (ix86_i386interix_return_in_memory): Removed.
10550         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
10551         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
10552
10553 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
10554
10555         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
10556
10557 2008-05-19  Xinliang David Li  <davidxl@google.com>
10558
10559         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
10560         * opts.c: Ditto.
10561         * common.opt: Ditto.
10562         * doc/invoke.texi: Ditto.
10563
10564 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
10565
10566         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
10567         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
10568
10569 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
10570
10571         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
10572         sizes of operand array from 8/4 to 4/2.
10573         (ix86_expand_vector_init_general): Change size of operand array
10574         from 32 to 16.  Remove op0, op1 and half_mode.
10575
10576 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
10577
10578         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
10579         (ix86_expand_vector_init_interleave): Likewise.
10580         (ix86_expand_vector_init_general): Use them.  Assert
10581         word_mode == SImode when n_words == 4.
10582
10583 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
10584
10585         * config/i386/i386.c (ix86_secondary_reload): New static function.
10586         (TARGET_SECONDARY_RELOAD): New define.
10587         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
10588         * config/i386/i386.md (reload_outqi): Remove.
10589
10590 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10591
10592         PR middle-end/35509
10593         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
10594         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
10595         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
10596         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
10597         (fold_builtin_1): Likewise.
10598         * builtins.def (BUILT_IN_ISINF_SIGN): New.
10599         c-common.c (check_builtin_function_arguments): Handle
10600         BUILT_IN_ISINF_SIGN.
10601         * doc/extend.texi: Document __builtin_isinf_sign.
10602         * fold-const.c (operand_equal_p): Handle COND_EXPR.
10603
10604 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
10605
10606         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
10607         EH cleanup at the end of the pass, search for those that have been
10608         turned into forwarder blocks and do the cleanup on their successor.
10609
10610 2008-05-18  Richard Guenther  <rguenther@suse.de>
10611
10612         * tree-cfg.c (verify_gimple_expr): Allow conversions from
10613         pointers to sizetype and vice versa.
10614
10615 2008-05-18 Xinliang David Li   <davidxl@google.com>
10616
10617         * gcc/tree-ssa-dce.c: Coding style fix.
10618         (check_pow): Documentation comment.
10619         (check_log): Documenation comment. Coding style fix.
10620         (is_unnecessary_except_errno_call): Ditto.
10621         (gen_conditions_for_pow): Ditto.
10622         (gen_conditions_for_log): Ditto.
10623         (gen_shrink_wrap_conditions): Ditto.
10624         (shrink_wrap_one_built_in_calls): Ditto.
10625         * gcc/doc/invoke.texi: Better documentation string.
10626         * ChangeLog: Fix wrong change log entries from
10627         May 17 checkin on function call DCE.
10628
10629 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
10630
10631         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
10632
10633 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
10634
10635         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
10636         * df-problems.c (simulation routines): Fixed block comment to
10637         properly say how to add forwards scanning functions.
10638
10639 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
10640
10641         * tree-inline.c (setup_one_parameter): Remove dead code.
10642
10643 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
10644
10645         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
10646         a BIT_AND_EXPR only for an INTEGER_TYPE.
10647
10648 2008-05-17 Xinliang David Li   <davidxl@google.com>
10649
10650         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
10651         (check_pow, check_log, is_unnecessary_except_errno_call): New
10652         functions to check for eliminating math functions that are pure
10653         except for setting errno.
10654         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
10655         general condition expressions for shrink-wrapping pow/log calls.
10656         (gen_shrink_wrap_conditions): Ditto.
10657         (shrink_wrap_one_built_in_call): Ditto.
10658         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
10659         (mark_operand_necessary): If debugging, output if OP is necessary.
10660         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
10661         unnecessary.
10662         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
10663         opt level >= 2.
10664         * gcc/common.opt: New user flag -ftree-builtin-dce.
10665         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
10666
10667 2008-05-16  David S. Miller  <davem@davemloft.net>
10668
10669         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
10670         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
10671
10672 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
10673
10674         PR target/36246
10675         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
10676
10677 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
10678
10679         * ifcvt.c (dead_or_predicable): Rename
10680         df_simulate_one_insn_backwards to df_simulate_one_insn.
10681         * recog.c (peephole2_optimize): Ditto.
10682         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
10683         Ditto.
10684         * df.h: Rename df_simulate_one_insn_backwards to
10685         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
10686         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
10687         scanning of defs and uses.
10688         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
10689         (df_simulate_one_insn_forwards): Removed.
10690
10691 2008-05-16  Doug Kwan  <dougkwan@google.com>
10692
10693         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
10694         QNaN & SNaN.
10695         (real_from_string): Handle NaNs and Inf as approriate.
10696
10697 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
10698
10699         * doc/gty.texi (Source Files Containing Type Information): Note
10700         that headers should appear first in the gtfiles list.
10701
10702 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
10703
10704         * tree.def (COND_EXEC): Properly documented this code.
10705
10706 2008-05-16  Diego Novillo  <dnovillo@google.com>
10707
10708         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
10709         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
10710         the new field.
10711
10712 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
10713
10714         * tree-ssa-dse (max_stmt_uid): Removed.
10715         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
10716         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
10717         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
10718         * function.h (cfun.last_stmt_uid): New field.
10719         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
10720         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
10721         New functions.
10722         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
10723         (create_stmt_ann): Initialize the ann->uid field.
10724         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
10725         with new calls.
10726         * tree-flow.h (renumber_gimple_stmt_uids): New function.
10727
10728 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
10729
10730         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
10731         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
10732         (init_empty_tree_cfg): Call it.
10733
10734 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
10735
10736         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
10737         Update all users.
10738
10739 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
10740
10741         * doc/invoke.text (-fdump-tree-*-verbose): New option.
10742         * tree-dump.c (dump_options): New verbose option.
10743         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
10744         Add verbose dump.
10745         * tree-pass.h (TDF_VERBOSE): New dump flag.
10746         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
10747         (tree-flow.h): Added include.
10748         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
10749
10750 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
10751
10752         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
10753
10754         From Jie Zhang  <jie.zhang@analog.com>
10755         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
10756         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
10757         mcpu=bf561-none and mcpu=bf561-0.2.
10758         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
10759         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
10760         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
10761         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
10762         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
10763         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
10764         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
10765         option.
10766         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
10767         (cputype_selected): Remove.
10768         (bfin_handle_option): Don't use cputype_selected.
10769         (override_options): When no mcpu option, enable all workarounds.
10770         Don't use bfin_workarounds.
10771         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
10772         processor type.
10773         (DEFAULT_CPU_TYPE): Don't define.
10774
10775 2008-05-16  Richard Guenther  <rguenther@suse.de>
10776
10777         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
10778         on deletion of the last stmt.
10779
10780 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
10781
10782         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
10783         V8HImode for SSE2 and V16QImode for SSE4.1.
10784
10785 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
10786
10787         * cgraph.h (compute_inline_parameters): Made public.
10788         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
10789         variable_generate_summary, function_write_summary,
10790         variable_write_summary, variable_read_summary.  Added generate_summary,
10791         write_summary, read_summary.
10792         * cgraphunit.c (cgraph_process_new_functions): Changed call from
10793         pass_ipa_inline.function_generate_summary, to
10794         compute_inline_parameters.
10795         * ipa-inline.c (compute_inline_parameters): Made public and added
10796         node parameter.
10797         (compute_inline_parameters_for_current): New function.
10798         (pass_inline_param): Now calls compute_inline_parameters_for_current.
10799         (inline_generate_summary): Removed parameter and made to loop over
10800         all cgraph nodes.
10801         (pass_ipa_inline): Updated for new IPA_PASS structure.
10802         * passes.c (execute_ipa_summary_passes): Now is called once per
10803         pass rather than once per node*pass.
10804
10805 2008-05-15  Anatoly Sokolov <aesok@post.ru>
10806
10807         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
10808         avr_have_mul_p, avr_asm_only_p): Remove variables.
10809         (avr_override_options): Remove initialization of removed variables.
10810         (avr_file_start):  Convert removed variables to fields of
10811         'struct base_arch_s *avr_current_arch'.
10812         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
10813         (AVR_HAVE_MUL): (Ditto.).
10814         (AVR_HAVE_MOVW): (Ditto.).
10815         (AVR_HAVE_LPMX): (Ditto.).
10816         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
10817         avr_asm_only_p): Remove declaration.
10818
10819 2008-05-15  Diego Novillo  <dnovillo@google.com>
10820
10821         * config/arm/arm.c (arm_return_in_memory): Fix return type.
10822         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
10823
10824 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
10825
10826         PR middle-end/36194
10827         * combine.c (check_conversion): Rename back to check_promoted_subreg.
10828         Don't call record_truncated_value from here.
10829         (record_truncated_value): Turn it into a for_each_rtx callback.
10830         (record_truncated_values): New function.
10831         (combine_instructions): Call note_uses with record_truncated_values.
10832         Change name of check_conversion to check_promoted_subreg.
10833
10834 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
10835
10836         * doc/sourcebuild.texi: Document support for torture tests.
10837
10838 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
10839
10840         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
10841         to alternative 4 of operand 2.
10842
10843 2008-05-15  Richard Guenther  <rguenther@suse.de>
10844
10845         * tree-pass.h (current_pass): Declare.
10846         (get_pass_for_id): Likewise.
10847         * passes.c (passes_by_id, passes_by_id_size): New globals.
10848         (set_pass_for_id): New function.
10849         (get_pass_for_id): Likewise.
10850         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
10851         (execute_function_todo): Flush per function statistics.
10852         * toplev.c (compile_file): Init statistics.
10853         (general_init): Do early statistics initialization.
10854         (finalize): Finish statistics.
10855         * statistics.h (statistics_early_init): Declare.
10856         (statistics_init): Likewise.
10857         (statistics_fini): Likewise.
10858         (statistics_fini_pass): Likewise.
10859         (statistics_counter_event): Likewise.
10860         (statistics_histogram_event): Likewise.
10861         * statistics.c: New file.
10862         * Makefile.in (OBJS-common): Add statistics.o.
10863         (statistics.o): Add dependencies.
10864         * doc/invoke.texi (-fdump-statistics): Document.
10865
10866         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
10867         (insert): Likewise.
10868         (execute_pre): Use statistics_counter_event.
10869         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
10870         (substitute_and_fold): Increment it.  Use statistics_counter_event.
10871
10872 2008-05-15  Diego Novillo  <dnovillo@google.com>
10873
10874         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
10875
10876         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
10877         * tree-ssa-alias.c (new_type_alias): Remove references to
10878         sub-variables from comment.
10879         * tree-ssa-operands.c (swap_tree_operands): Likewise.
10880
10881 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
10882
10883         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
10884         attribute to 1 only for insertps alternative.
10885
10886 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
10887
10888         * config/bfin/bfin.md (loadbytes): New pattern.
10889         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
10890         (bfin_init_builtins): Initialize it.
10891         (bdesc_1arg): Add it.
10892
10893 2008-05-15  Sa Liu  <saliu@de.ibm.com>
10894
10895         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
10896         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
10897         * testsuite/lib/target-supports.exp: Add
10898         check_effective_target_fortran_integer_16.
10899
10900 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
10901
10902         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
10903         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
10904         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
10905         (TARGET_RETURN_IN_MEMORY): Define.
10906
10907 2008-05-15  Richard Guenther  <rguenther@suse.de>
10908
10909         PR middle-end/36244
10910         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
10911         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
10912         represent unmodifiable vars.
10913
10914 2008-05-15  Richard Guenther  <rguenther@suse.de>
10915
10916         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
10917         INDIRECT_REF and TARGET_MEM_REF.
10918         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
10919         TARGET_MEM_REF.
10920
10921 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
10922             H.J. Lu  <hongjiu.lu@intel.com>
10923
10924         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
10925         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
10926         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
10927         insn alternatives.  Add missing alternatives.
10928         (*vec_concatv2di_rex64_sse4_1): Likewise.
10929         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
10930         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
10931         Require TARGET_SSE.
10932
10933 2008-05-15  Richard Guenther  <rguenther@suse.de>
10934
10935         PR tree-optimization/36009
10936         PR tree-optimization/36204
10937         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
10938         (determine_invariantness_stmt): Record the loop a store is
10939         always executed in.
10940         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
10941         dependency.
10942
10943 2008-05-15  Richard Guenther  <rguenther@suse.de>
10944
10945         PR tree-optimization/34330
10946         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
10947         through the pointer will alias the SMT.
10948
10949 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
10950
10951         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
10952
10953 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
10954
10955         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
10956
10957 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
10958             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
10959
10960         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
10961         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
10962         (vashl_optab): New optab for vector/vector shifts.
10963         (vashr_optab): Ditto.
10964         (vlshr_optab): Ditto.
10965         (vrotl_optab): Ditto.
10966         (vrotr_optab): Ditto.
10967         (optab_subtype): New enum for optab_for_tree_code call.
10968         (optab_for_tree_code): Add enum optab_subtype argument.
10969
10970         * optabs.c (optab_for_tree_code): Take an additional argument to
10971         distinguish between a vector shift by a scalar and vector shift by
10972         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
10973         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
10974         vector shift by a vector.
10975         (expand_widen_pattern_expr): Pass additional argument to
10976         optab_for_tree_code.
10977
10978         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
10979         vrotl_optab, vrotr_optab.
10980
10981         * expr.c (expand_expr_real_1): Update calls to
10982         optab_for_tree_code to distinguish between vector shifted by a
10983         scalar and vector shifted by a vector.
10984         * tree-vectorizer.c (supportable_widening_operation): Ditto.
10985         (supportable_narrowing_operation): Ditto.
10986         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
10987         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
10988         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
10989         (vect_create_epilog_for_reduction): Ditto.
10990         (vectorizable_reduction): Ditto.
10991         (vectorizable_operation): Ditto.
10992         (vect_strided_store_supported): Ditto.
10993         (vect_strided_load_supported): Ditto.
10994         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
10995         * expmed.c (expand_shift): Ditto.
10996
10997         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
10998         scalar type.
10999         (ashr@var{m}3): Ditto.
11000         (vashl@var{m}3): Document new vector/vector shift standard name.
11001         (vashr@var{m}3): Ditto.
11002         (vlshr@var{m}3): Ditto.
11003         (vrotl@var{m}3): Ditto.
11004         (vrotr@var{m}3): Ditto.
11005
11006         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
11007         (PPERM_INVERT): Ditto.
11008         (PPERM_REVERSE): Ditto.
11009         (PPERM_REV_INV): Ditto.
11010         (PPERM_ZERO): Ditto.
11011         (PPERM_ONES): Ditto.
11012         (PPERM_SIGN): Ditto.
11013         (PPERM_INV_SIGN): Ditto.
11014         (PPERM_SRC1): Ditto.
11015         (PPERM_SRC2): Ditto.
11016
11017         * config/i386/sse.md (mulv2di3): Add SSE5 support.
11018         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
11019         allows a memory operand to be the value being added, and split it
11020         to improve vectorization.
11021         (sse5_pmacsdqh_mem): Ditto.
11022         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
11023         (sse5_mulv2div2di3_high): Ditto.
11024         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
11025         (vec_pack_trunc_v4si): Ditto.
11026         (vec_pack_trunc_v2di): Ditto.
11027         (sse5_pcmov_<mode>): Remove code that tried to use use
11028         andps/andnps instead of pcmov.
11029         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
11030         pmacsdqh instructions.
11031         (vec_widen_smult_lo_v4si): Ditto.
11032
11033         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
11034         (PPERM_INVERT): Ditto.
11035         (PPERM_REVERSE): Ditto.
11036         (PPERM_REV_INV): Ditto.
11037         (PPERM_ZERO): Ditto.
11038         (PPERM_ONES): Ditto.
11039         (PPERM_SIGN): Ditto.
11040         (PPERM_INV_SIGN): Ditto.
11041         (PPERM_SRC1): Ditto.
11042         (PPERM_SRC2): Ditto.
11043         (ix86_expand_sse_movcc): Move the SSE5 test after the if
11044         true/false tests.
11045         (ix86_expand_int_vcond): If SSE5 generate all possible integer
11046         comparisons.
11047         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
11048         says ignore whether the last reference is a memory operand.
11049
11050 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
11051             Paolo Bonzini <bonzini at gnu dot org>
11052
11053         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
11054         shift patterns.
11055
11056         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
11057         (vlshr<mode>3): Rename from vlshr<mode>3.
11058         (vashr<mode>3): Rename from vashr<mode>3.
11059         (mulv4sf3): Change the names of vector shift patterns.
11060         (mulv4si3): Ditto.
11061         (negv4sf2): Ditt.
11062
11063         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
11064         shift insns.
11065
11066         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
11067         (SI_SHLHI): Ditto.
11068         (SI_SHL): Ditto.
11069         (SI_SHLI): Ditto.
11070         (SI_ROTH): Ditto.
11071         (SI_ROTHI): Ditto.
11072         (SI_ROT): Ditto.
11073         (SI_ROTI): Ditto.
11074         (SPU_RL_0): Ditto.
11075         (SPU_RL_1): Ditto.
11076         (SPU_RL_2): Ditto.
11077         (SPU_RL_3): Ditto.
11078         (SPU_RL_4): Ditto.
11079         (SPU_RL_5): Ditto.
11080         (SPU_RL_6): Ditto.
11081         (SPU_RL_7): Ditto.
11082         (SPU_SL_0): Ditto.
11083         (SPU_SL_1): Ditto.
11084         (SPU_SL_2): Ditto.
11085         (SPU_SL_3): Ditto.
11086         (SPU_SL_4): Ditto.
11087         (SPU_SL_5): Ditto.
11088         (SPU_SL_6): Ditto.
11089         (SPU_SL_7): Ditto.
11090
11091         * config/spu/spu.md (v): New iterator macro to add v for vector types.
11092         (floatunssidf2_internal): Change vector/vector shift names.
11093         (floatunsdidf2_internal): Ditto.
11094         (mulv8hi3): Ditto.
11095         (ashrdi3): Ditto.
11096         (ashrti3): Ditto.
11097         (cgt_df): Ditto.
11098         (cgt_v2df): Ditto.
11099         (dftsv): Ditto.
11100         (vashl<mode>3): Rename from ashl<mode>3.
11101         (vashr<mode>3): Rename from ashr<mode>3.
11102         (vlshr<mode>3): Rename from lshr<mode>3.
11103         (vrotl<mode>3): Rename from rotl<mode>3.
11104
11105 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
11106
11107         PR target/36224
11108         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
11109         multiply gives the wrong value when doing widening multiplies.
11110         (vec_widen_smult_lo_v4si): Ditto.
11111
11112 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
11113
11114         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
11115         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
11116         emit_library_call_value.
11117         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
11118         * tree.h (ECF_LIBCALL_BLOCK): Removed.
11119         * calls.c (initialize_argument_information, precompute_arguments,
11120         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
11121         (precompute_arguments): Removed flags parameter.
11122         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
11123
11124 2008-05-14  Richard Guenther  <rguenther@suse.de>
11125
11126         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
11127         Make sure to register the store if the use is a PHI_NODE.
11128
11129 2008-05-14  Olivier Hainque  <hainque@adacore.com>
11130
11131         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
11132         memory if the component is to be referenced in BLKmode according
11133         to get_inner_reference.
11134
11135 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
11136
11137         * calls.c (emit_library_call_value_1): Restore code clearing
11138         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
11139
11140 2008-05-14  Olivier Hainque  <hainque@adacore.com>
11141             Nicolas Roche  <roche@adacore.com>
11142
11143         * configure.ac: Add support for a "gcc_subdir" variable in
11144         config-lang.in, to denote a subdirectory where the language/GCC
11145         integration files are to be found.
11146         * configure: Regenerate.
11147
11148 2008-05-14  Ira Rosen  <irar@il.ibm.com>
11149
11150         PR tree-optimization/36098
11151         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
11152         value for the first load in the group in case of a gap.
11153         (vect_build_slp_tree): Check that there are no gaps in loads.
11154
11155 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
11156
11157         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
11158         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
11159         expand_copysign_bit, ): Change call to emit_no_conflict_block to
11160         emit_insn and remove unneeded code to construct extra args.
11161         (emit_no_conflict_block): Removed.
11162         * optabls.h: (emit_no_conflict_block): Removed.
11163         * cse.c (cse_extended_basic_block): Remove search for
11164         REG_NO_CONFLICT note.
11165         * global.c: Removed incorrect comment added in revision 117.
11166         * expr.c (convert_move): Change call to emit_no_conflict_block to
11167         emit_insn.
11168         * recog.c: Change comments so that they do not mention
11169         REG_NO_CONFLICT.
11170         * local_alloc.c (combine_regs): Removed last parameter.
11171         (no_conflict_p): Removed.
11172         (block_alloc): Removed note, no_conflict_combined_regno and set
11173         local vars. Removed all code to process REG_NO_CONFLICT blocks.
11174         (combine_regs): Removed already_dead and code to look for
11175         REG_NO_CONFLICT notes.
11176         * lower_subreg (remove_retval_note): Removed code to look for
11177         REG_NO_CONFLICT block.
11178         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
11179         (resolve_clobber): Remove code to process libcalls that have
11180         REG_NO_CONFLICT notes.
11181         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
11182         case.
11183         * combine.c (can_combine_p, distribute_notes):  Removed
11184         REG_NO_CONFLICT case.
11185         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
11186         to emit_insns.
11187         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
11188         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
11189         Ditto.
11190         * reg-notes.def (NO_CONFLICT): Removed.
11191
11192 2008-05-14  David S. Miller  <davem@davemloft.net>
11193
11194         * config/sparc/sparc.c (sparc_profile_hook): If
11195         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
11196         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
11197         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
11198
11199 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
11200
11201         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
11202
11203 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
11204
11205         PR target/36222
11206         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
11207         and op1 expansion before vector concat to have less live pseudos.
11208
11209 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
11210
11211         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
11212         ix86_expand_vector_set if supported.
11213
11214 2008-05-13  Diego Novillo  <dnovillo@google.com>
11215             Kenneth Zadeck  <zadeck@naturalbridge.com>
11216
11217         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
11218
11219         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
11220         phinodes_print_statistics, init_ssanames, fini_ssanames,
11221         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
11222         release_ssa_name, release_defs, replace_ssa_name_symbol,
11223         ssanames_print_statistics): Move ...
11224         * tree-flow.h: ... here.
11225         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
11226         Use FN instead of cfun.
11227         (make_ssa_name_fn): Rename from make_ssa_name.
11228         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
11229         * tree-flow-inline.h (make_ssa_name): Move from
11230         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
11231         * omp-low.c (expand_omp_parallel):
11232         * tree-flow-inline.h (redirect_edge_var_map_result):
11233         * tree-ssa.c (init_tree_ssa): Add argument FN.
11234         Use it instead of cfun.  Update all users.
11235
11236 2008-05-13  Tom Tromey  <tromey@redhat.com>
11237
11238         PR preprocessor/22168:
11239         * doc/cpp.texi (Top): Update menu.
11240         (Alternatives to Wrapper #ifndef): New node.
11241         (Other Directives): Document deprecation.
11242         (Obsolete Features): Remove menu.
11243         (Assertions): Merge node into Obsolete Features.
11244         (Obsolete once-only headers): Move earlier; rename to Alternatives
11245         to Wrapper #ifndef.
11246         * doc/cppopts.texi: Update.
11247         * c.opt (Wdeprecated): Enable for C and ObjC.
11248         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
11249         (C++ Dialect Options): Move -Wno-deprecated from here to...
11250         (Warning Options): ... here.
11251
11252 2008-05-13  Richard Guenther  <rguenther@suse.de>
11253
11254         PR middle-end/36227
11255         * fold-const.c (fold_sign_changed_comparison): Do not allow
11256         changes in pointer-ness.
11257
11258 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
11259
11260         PR target/24713
11261         * config/sh/sh.c (sh_expand_prologue): Don't clear
11262         RTX_FRAME_RELATED_P for push insns.
11263
11264 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
11265
11266         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
11267
11268 2008-05-12  Anatoly Sokolov <aesok@post.ru>
11269
11270         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
11271         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
11272         Use 'machine->is_leaf' instead of 'leaf_func_p'.
11273
11274 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
11275
11276         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
11277         (*vec_concatv4sf_sse): This.
11278         (*sse2_concatv2si): Renamed to ...
11279         (*vec_concatv2si_sse2): This.
11280         (*sse1_concatv2si): Renamed to ...
11281         (*vec_concatv2si_sse): This.
11282         (*vec_concatv2di_rex): Renamed to ...
11283         (*vec_concatv2di_rex64): This.
11284         (*vec_concatv2si_sse4_1): New.
11285         (*vec_concatv2di_rex64_sse4_1): Likewise.
11286
11287 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
11288
11289         PR rtl-optimization/36111
11290         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
11291         that was created for swappable operands.
11292
11293 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
11294
11295         PR ada/36001
11296         * Makefile.in: Substitute GNATMAKE and GNATBIND.
11297         * configure.ac: Add call to ACX_PROG_GNAT.
11298
11299 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
11300
11301         * optc-gen.awk: Fix comment typo.
11302
11303 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
11304
11305         * pretty-print.c (pp_integer_with_precision): Use
11306         HOST_LONG_LONG_FORMAT.
11307
11308 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
11309
11310         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
11311
11312 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
11313
11314         * config/i386/i386.c (bdesc_ptest): Removed.
11315         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
11316         (bdesc_args): Add __builtin_ia32_ptestz128,
11317         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
11318         (ix86_init_mmx_sse_builtins): Updated.
11319         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
11320         (ix86_expand_builtin): Updated.
11321
11322 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
11323
11324         * tree-cfg.c (valid_fixed_convert_types_p): New function.
11325         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
11326
11327 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
11328
11329         * value-prof.c (interesting_stringop_to_profile): Do not
11330         return early for BUILT_IN_MEMPCPY.
11331
11332 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
11333
11334         * calls.c (expand_call): Don't use callgraph to increase
11335         preferred_stack_boundary.
11336
11337         * cgraph.h (cgraph_rtl_info): Use unsigned on
11338         preferred_incoming_stack_boundary.
11339
11340         * final.c (rest_of_clean_state): Use unsigned on
11341         preferred_stack_boundary.
11342
11343 2008-05-09  Tom Tromey  <tromey@redhat.com>
11344
11345         PR preprocessor/22231:
11346         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
11347         proceeding.
11348
11349 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
11350
11351         PR tree-optimization/36129
11352         * tree-ssa-ccp.c: Include value-prof.h.
11353         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
11354         built-in function was folded to a constant.
11355         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
11356
11357 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
11358             Sebastian Pop  <sebastian.pop@amd.com>
11359
11360         * tree-scalar-evolution.c: Document instantiate_scev.
11361         (instantiate_parameters_1): Renamed instantiate_scev_1.
11362         Don't use the same loop for instantiation_loop and evolution_loop.
11363         (instantiate_scev): New.
11364         (instantiate_parameters): Moved...
11365         (resolve_mixers): Update call to instantiate_scev_1 to pass the
11366         same loop twice.  Maintains the semantics for this function.
11367         * tree-scalar-evolution.h (instantiate_scev): Declare.
11368         (instantiate_parameters): ...here.  Now static inline.
11369         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
11370         instead of resolve_mixers.
11371
11372 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
11373
11374         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
11375
11376 2008-05-09  Tomas Bily  <tbily@suse.cz>
11377
11378         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
11379         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
11380         * tree-ssa-structalias.c (get_constraint_for): Likewise.
11381         * c-common.c (c_common_truthvalue_conversion): Likewise.
11382         * tree-object-size.c (compute_object_offset): Likewise.
11383         * tree-inline.c (estimate_num_insns_1): Likewise.
11384         * varasm.c (const_hash_1, compare_constant, copy_constant)
11385         (compute_reloc_for_constant, output_addressed_constants)
11386         (initializer_constant_valid_p): Likewise.
11387         * c-omp.c (check_omp_for_incr_expr): Likewise.
11388         * gimplify.c (gimplify_expr): Likewise.
11389         * c-typeck.c (c_finish_return): Likewise.
11390         * tree-vectorizer.c (supportable_widening_operation)
11391         (supportable_narrowing_operation): Likewise.
11392         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
11393         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
11394         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
11395         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
11396         (descr_info_loc): Likewise.
11397         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
11398         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
11399         (fold_unary): Likewise.
11400         * builtins.c (get_pointer_alignment): Likewise.
11401         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
11402         (instantiate_parameters_1): Likewise.
11403         * tree.c (expr_align, stabilize_reference): Likewise.
11404         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
11405         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
11406         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
11407         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
11408         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
11409         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
11410         Likewise.
11411         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
11412         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
11413         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
11414         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
11415         (forward_propagate_comparison)
11416         (tree_ssa_forward_propagate_single_use_vars): Likewise.
11417         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
11418         * emit-rtl.c (component_ref_for_mem_expr)
11419         (set_mem_attributes_minus_bitpos): Likewise.
11420         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
11421         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
11422         Likewise.
11423         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
11424         (build_function_call, pointer_diff, build_compound_expr)
11425         (c_finish_return): Likewise.
11426         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
11427         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
11428         Likewise.
11429         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
11430         * expr.c (is_aligning_offset): Likewise.
11431         * tree-ssa-alias.c (is_escape_site): Likewise.
11432         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
11433         (check_all_va_list_escapes): Likewise.
11434         * tree-ssa-loop-ivopts.c (determine_base_object)
11435         (determine_common_wider_type): Likewise.
11436         * dojump.c (do_jump): Likewise.
11437         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
11438         * tree-gimple.c (is_gimple_cast): Likewise.
11439         * fold-const.c (decode_field_reference, )
11440         (fold_sign_changed_comparison, fold_unary, fold_comparison)
11441         (fold_binary): Likewise.
11442         * tree-ssa-alias-warnings.c (find_alias_site_helper)
11443         (already_warned_in_frontend_p): Likewise.
11444         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
11445         * tree.c (really_constant_p, get_unwidened): Likewise.
11446         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
11447         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
11448         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
11449         Likewise.
11450         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
11451         CONVERT_EXPR_P.
11452         (CONVERT_EXPR_P): Define.
11453         (CASE_CONVERT): Define.
11454
11455 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
11456
11457         PR middle-end/36117
11458         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
11459         (delete_unmarked_insns): When deleting a call, call
11460         delete_unreachable_blocks.
11461         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
11462         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
11463
11464 2008-05-08  Richard Guenther  <rguenther@suse.de>
11465
11466         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
11467         (-ftree-salias): Likewise.
11468         (salias-max-implicit-fields): Remove param documentation.
11469         (salias-max-array-elements): Likewise.
11470         * tree-pass.h (pass_create_structure_vars): Remove.
11471         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
11472         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
11473         * tree-ssa-alias.c (create_structure_vars): Remove.
11474         (gate_structure_vars): Likewise.
11475         (pass_create_structure_vars): Likewise.
11476         (gate_build_alias): Likewise.
11477         (pass_build_alias): Adjust to run always and dump the function.
11478         * common.opt (ftree-salias): Hide.
11479         * passes.c (init_optimization_passes): Remove
11480         pass_create_structure_vars, adjust comment.
11481         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
11482         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
11483         * opts.c (decode_options): Do not set flag_tree_salias.
11484         (common_handle_option): Add OPT_ftree_salias to the backward
11485         compatibility section.
11486
11487 2008-05-08  Richard Guenther  <rguenther@suse.de>
11488
11489         * tree-flow-inline.h (var_can_have_subvars): Move ...
11490         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
11491         * tree-flow.h (var_can_have_subvars): Remove.
11492         (push_fields_onto_fieldstack): Remove.
11493         (sort_fieldstack): Likewise.
11494         (struct fieldoff): Move ...
11495         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
11496         alias_set and base_for_components fields.
11497         (sort_fieldstack): Make static.
11498         (push_fields_onto_fieldstack): Likewise.  Remove code that
11499         handles anything but RECORD_TYPEs.  Remove alias_set and
11500         base_for_components handling.
11501         (create_variable_info_for): Adjust.
11502
11503 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
11504
11505         * common.opt (Wframe-larger-than=): Shorten the help message
11506         to one line.
11507         * doc/invoke.texi (Wframe-larger-than=): Add more description.
11508
11509 2008-05-08  Rafael Espindola  <espindola@google.com>
11510
11511         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
11512         trap.
11513         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
11514         trap and that both operands are gimple values.
11515         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
11516         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
11517         is a fp operation.
11518
11519 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
11520
11521         * read-rtl.c (join_c_conditions): Return the first string if the
11522         two strings are equal.
11523
11524 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
11525
11526         * gensupport.h (pred_data): Add a "num_codes" field.
11527         (add_predicate_code): Declare.
11528         * gensupport.c (add_predicate_code): New function.
11529         (std_pred_table): Add an "allows_const_p" field.
11530         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
11531         Remove the (incomplete) list of such codes from the codes field.
11532         (init_predicate_table): Use add_predicate_code.  Add all
11533         RTX_CONST_OBJs if allows_const_p is true.
11534         * genrecog.c (process_define_predicate): Use add_predicate_code.
11535
11536 2008-05-08  David Daney  <ddaney@avtrex.com>
11537             Richard Sandiford  <rsandifo@nildram.co.uk>
11538
11539         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
11540         special case of constant zero operands.
11541         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
11542         old and new values.  Special case constant zero values.
11543         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
11544         fails.
11545         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
11546         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
11547
11548 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
11549
11550         PR target/36090
11551         * simplify-rtx.c (simplify_plus_minus): Create CONST of
11552         similar RTX_CONST_OBJ before CONST_INT.
11553
11554 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
11555
11556         * stmt.c (expand_stack_restore): Change sa mode if needed.
11557
11558 2008-05-08  Richard Guenther  <rguenther@suse.de>
11559
11560         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
11561         return type to bool.
11562         (ix86_sol10_return_in_memory): Likewise.
11563         (ix86_i386elf_return_in_memory): Likewise.
11564         (ix86_i386interix_return_in_memory): Likewise.
11565         * config/i386/i386.c (ix86_return_in_memory): Likewise.
11566         (ix86_sol10_return_in_memory): Likewise.
11567         (ix86_i386elf_return_in_memory): Likewise.
11568         (ix86_i386interix_return_in_memory): Likewise.
11569
11570 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
11571
11572         PR bootstrap/36180
11573         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
11574         fndecl argument.
11575         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
11576         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
11577         declared in front.
11578
11579 2008-05-08  Richard Guenther  <rguenther@suse.de>
11580
11581         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
11582         * tree-data-ref.h (struct dr_alias): Remove subvars field.
11583         (DR_SUBVARS): Remove.
11584         * tree-dfa.c (dump_subvars_for): Remove.
11585         (debug_subvars_for): Likewise.
11586         (dump_variable): Do not dump subvars.
11587         (remove_referenced_var): Do not remove subvars.
11588         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
11589         (lookup_subvars_for_var): Remove.
11590         (get_subvars_for_var): Likewise.
11591         (get_subvars_at): Likewise.
11592         (get_first_overlapping_subvar): Likewise.
11593         (overlap_subvar): Likewise.
11594         * tree-flow.h (subvar_t): Remove.
11595         (struct var_ann_d): Remove subvars field.
11596         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
11597         argument.  Remove special handling of SFTs.
11598         (compute_tag_properties): Likewise.
11599         (set_initial_properties): Likewise.
11600         (compute_call_clobbered): Likewise.
11601         (count_mem_refs): Likewise.
11602         (compute_memory_partitions): Likewise.
11603         (compute_flow_insensitive_aliasing): Likewise.
11604         (setup_pointers_and_addressables): Likewise.
11605         (new_type_alias): Likewise.
11606         (struct used_part): Remove.
11607         (used_portions): Likewise.
11608         (struct used_part_map): Likewise.
11609         (used_part_map_eq): Likewise.
11610         (used_part_map_hash): Likewise.
11611         (free_used_part_map): Likewise.
11612         (up_lookup): Likewise.
11613         (up_insert): Likewise.
11614         (get_or_create_used_part_for): Likewise.
11615         (create_sft): Likewise.
11616         (create_overlap_variables_for): Likewise.
11617         (find_used_portions): Likewise.
11618         (create_structure_vars): Likewise.
11619         * tree.def (STRUCT_FIELD_TAG): Remove.
11620         * tree.h (MTAG_P): Adjust.
11621         (struct tree_memory_tag): Remove base_for_components and
11622         unpartitionable flags.
11623         (struct tree_struct_field_tag): Remove.
11624         (SFT_PARENT_VAR): Likewise.
11625         (SFT_OFFSET): Likewise.
11626         (SFT_SIZE): Likewise.
11627         (SFT_NONADDRESSABLE_P): Likewise.
11628         (SFT_ALIAS_SET): Likewise.
11629         (SFT_UNPARTITIONABLE_P): Likewise.
11630         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
11631         (union tree_node): Remove sft field.
11632         * alias.c (get_alias_set): Remove special handling of SFTs.
11633         * print-tree.c (print_node): Remove handling of SFTs.
11634         * tree-dump.c (dequeue_and_dump): Likewise.
11635         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
11636         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
11637         * tree-predcom.c (set_alias_info): Do not set subvars.
11638         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
11639         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
11640         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
11641         (add_vars_for_offset): Remove.
11642         (add_virtual_operand): Remove special handling of SFTs.
11643         (add_call_clobber_ops): Likewise.
11644         (add_call_read_ops): Likewise.
11645         (get_asm_expr_operands): Likewise.
11646         (get_modify_stmt_operands): Likewise.
11647         (get_expr_operands): Likewise.
11648         (add_to_addressable_set): Likewise.
11649         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
11650         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
11651         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
11652         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
11653         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
11654         (tree_node_structure): Likewise.
11655         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
11656         handling of SFTs.
11657         (find_what_p_points_to): Likewise.
11658
11659 2008-05-08  Sa Liu  <saliu@de.ibm.com>
11660
11661         * config/spu/spu.md: Fixed subti3 pattern.
11662
11663 2008-05-08  Richard Guenther  <rguenther@suse.de>
11664
11665         PR middle-end/36154
11666         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
11667         sure to create a representative for trailing arrays for PTA.
11668
11669 2008-05-08  Richard Guenther  <rguenther@suse.de>
11670
11671         PR middle-end/36172
11672         * fold-const.c (operand_equal_p): Two objects which types
11673         differ in pointerness are not equal.
11674
11675 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
11676
11677         * calls.c (compute_argument_block_size): Add argument tree fndecl.
11678         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
11679         (emit_library_call_value_1): Add new variable fndecl initialized by
11680         NULL_TREE. It should be the decl type of orgfun, but this information
11681         seems not to be available here, so it uses the default calling abi.
11682         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
11683         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
11684         by TARGET_RETURN_IN_MEMORY.
11685         * config/i386/i386-interix.h: Likewise.
11686         * config/i386/i386.h: Likewise.
11687         * config/i386/i386elf.h: Likewise.
11688         * config/i386/ptx4-i.h: Likewise.
11689         * config/i386/sol2-10.h: Likewise.
11690         * config/i386/sysv4.h: Likewise.
11691         * config/i386/vx-common.h: Likewise.
11692         * config/cris/cris.h: Removed #if 0 clause.
11693         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
11694         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
11695         argument.
11696         (ix86_sol10_return_in_memory): Likewise.
11697         (ix86_i386elf_return_in_memory): New.
11698         (ix86_i386interix_return_in_memory): New.
11699         * config/mt/mt-protos.h (mt_return_in_memory): New.
11700         * config/mt/mt.c: Likewise.
11701         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
11702         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
11703         * config/bfin/bfin.h: Likewise.
11704         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
11705         argument.
11706         * config/bfin/bfin.c: Likewise.
11707         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
11708         * config/alpha/unicosmk.h: Likewise.
11709         * config/i386/cygming.h: Likewise.
11710         * config/iq2000/iq2000.h: Likewise.
11711         * config/mips/mips.h: Likewise.
11712         * config/mn10300/mn10300.h: Likewise.
11713         * config/rs6000/rs6000.h: Likewise.
11714         * config/score/score.h: Likewise.
11715         * config/spu/spu.h: Likewise.
11716         * config/v850/v850.h: Likewise.
11717         * defaults.h: Likewise.
11718         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
11719         * expr.c (emit_block_move): Adjust use of
11720         OUTGOING_REG_PARM_STACK_SPACE.
11721         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
11722         OUTGOING_REG_PARM_STACK_SPACE.
11723         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
11724
11725 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
11726
11727         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
11728         on OMP_RETURN for OMP_FOR.
11729
11730         PR debug/35896
11731         * dwarf2out.c (dw_expand_expr, common_check): Removed.
11732         (fortran_common): New function.
11733         (gen_variable_die): Call fortran_common instead of common_check,
11734         adjust for it returning tree instead of rtx.  Formatting.
11735
11736 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
11737
11738         PR rtl/7335
11739         PR rtl/33826
11740         * see.c (see_copy_insn): Copy new pure const attributes for new call.
11741         * c-decl.c (merge_decls): Ditto.
11742         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
11743         to RTL_CONST_OR_PURE_CALL_P.
11744         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
11745         Initialized DECL_LOOPING_CONST_PURE.
11746         (process_call_operands): Set tree_side_effects properly.
11747         * tree.h (TREE_READONLY_DECL_P): Removed.
11748         (DECL_IS_PURE): Renamed to DECL_PURE_P.
11749         (DECL_LOOPING_OR_CONST_P): New macro.
11750         (struct tree_function_decl): Added looping_const_or_pure_p.
11751         (ECF_*) Renumbered.
11752         (ECF_LOOPING_OR_CONST_P): New macro.
11753         * rtlanal.c (pure_const_p): Removed.
11754         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
11755         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
11756         to RTL_CONST_CALL_P.
11757         * ipa-pure-const.c (pure_const_state_e): Added looping field.
11758         (check_decl, check_tree, check_call, scan_function): Initialize
11759         looping.
11760         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
11761         (static_execute): Set looping true for recursive functions.
11762         Undo setting state to IPA_NEITHER for recursive functions.
11763         * cse.c (cse_insn):
11764         * ifcvt.c (noce_can_store_speculate_p): Changed
11765         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
11766         RTL_CONST_OR_PURE_CALL_P.
11767         * dse.c (scan_insn): Ditto.
11768         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
11769         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
11770         RTL_CONST_OR_PURE_CALL_P.
11771         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
11772         pure_call_p to RTL_CONST_CALL_P.
11773         * gimplify.c (gimplify_call_expr): Clear side effects for
11774         non-looping pure and constant calls.
11775         * calls.c (emit_call_1): Set rtl flags from ecf flags.
11776         (flags_from_decl_or_type): Set ecf flags from decl flags.
11777         (initialize_argument_information): Turn off
11778         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
11779         Change const to pure if callee_copies is true rather than just
11780         turning off const.
11781         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
11782         way of marking pure calls.
11783         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
11784         Remove hack that was supposed to fix pr7335 and remove old
11785         way of marking pure calls.
11786         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
11787         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
11788         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
11789         RTL_CONST_OR_PURE_CALL_P.
11790         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
11791         * loop-invariant.c (find_exits, find_invariant_bb): Changed
11792         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
11793         * sched-deps.c (schedule_analyze): Ditto.
11794         * rtl.h (struct rtx_def): Use call field, unchanging field, and
11795         return_val field of calls to represent pure and const function info.
11796         (CONST_OR_PURE_CALL_P): Deleted macro.
11797         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
11798         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
11799         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
11800         TREE_READONLY.
11801         * tree-optimize.c (execute_fixup_cfg): Added test for
11802         ECF_LOOPING_CONST_OR_PURE.
11803         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
11804         DECL_PURE_P.
11805         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
11806         effects for looping pure or const calls.
11807         (verify_gimple_expr): Added verification code.
11808         * config/alpha/alpha.c (alpha_legitimize_address,
11809         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
11810         RTL_CONST_CALL_P.
11811         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
11812         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
11813         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
11814         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
11815         RTL_CONST_OR_PURE_CALL_P.
11816         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
11817         and const calls to be deleted.
11818
11819 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
11820
11821         PR target/35714
11822         * config/i386/mmx.md (mmx_subv2sf3): New expander.
11823         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
11824         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
11825         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
11826         to handle nonimmediate operands.
11827         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
11828         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
11829         to handle nonimmediate operands.
11830         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
11831         (mmx_pmulhrwv4hi3): New expander.  Use
11832         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11833         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
11834         (sse2_umulv1siv1di3): New expander.  Use
11835         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11836         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
11837         (mmx_eq<mode>3): New expander.  Use
11838         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11839         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
11840         (mmx_uavgv8qi3): New expander.  Use
11841         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11842         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
11843         (mmx_uavgv4hi3): New expander.  Use
11844         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11845
11846         * config/i386/sse.md
11847         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
11848         to handle nonimmediate operands.
11849         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
11850         to handle nonimmediate operands.
11851         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
11852         to handle nonimmediate operands.
11853         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
11854         to handle nonimmediate operands.
11855         (sse2_unpckhpd_exp): New expander.  Use
11856         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11857         (sse2_unpcklpd_exp): New expander.  Use
11858         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11859         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
11860         to handle nonimmediate operands.
11861         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
11862         to handle nonimmediate operands.
11863         (*sse2_<plusminus_insn><mode>3): Rename from
11864         sse2_<plusminus_insn><mode>3 insn pattern.
11865         (sse2_<plusminus_insn><mode>3): New expander.  Use
11866         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11867         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
11868         (sse2_umulv2siv2di3): New expander.  Use
11869         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11870         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
11871         (sse4_1_mulv2siv2di3): New expander.  Use
11872         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11873         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
11874         (sse2_pmaddwd): New expander.  Use
11875         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11876         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
11877         (sse2_eq<mode>3): New expander.  Use
11878         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11879         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
11880         (sse4_1_eqv2di3): New expander.  Use
11881         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11882         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
11883         (sse2_uavgv16qi3): New expander.  Use
11884         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11885         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
11886         (sse2_uavgv16qi3): New expander.  Use
11887         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11888         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
11889         (sse2_uavgv8hi3): New expander.  Use
11890         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11891         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
11892         (ssse3_pmulhrswv8hi3): New expander.  Use
11893         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11894         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
11895         (ssse3_pmulhrswv4hi3): New expander.  Use
11896         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11897
11898         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
11899         (<sse>_vmmul<mode>3): Ditto.
11900         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
11901         (divv2df3): Ditto.
11902         (ssse3_pmaddubsw128): Use register_operand for operand 1.
11903         (ssse3_pmaddubsw): Ditto.
11904
11905         * config/i386/i386.c (struct_builtin_description)
11906         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
11907         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
11908         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
11909         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
11910         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
11911         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
11912         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
11913         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
11914         (ix86_fixup_binary_operands): Assert that src1
11915         and src2 must have the same mode when swapped.
11916         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
11917         and ix86_binary_operator_ok.  Do not force operands in registers
11918         when optimizing.
11919
11920 2008-05-07  Jan Hubicka  <jh@suse.cz>
11921
11922         * cgraph.c (dump_cgraph_node): Update.
11923         * cgraph.h (cgraph_local_info): Break out inline summary.
11924         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
11925         hook.
11926         * ipa-inline (inline_summary): New accestor function.
11927         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
11928         cgraph_decide_inlining, compute_inline_parameters): Update.
11929         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
11930
11931 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
11932
11933         Cleanup ColdFire scheduling support and add V4 pipeline model.
11934
11935         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
11936         (define_attr cpu): Add cfv4 value.
11937         (define_attr type, define_attr type1): Merge into a single 'type'
11938         attribute.  Update all uses.
11939         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
11940         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
11941         Update all uses.
11942         (define_attr opx_mem, define_attr opy_mem): Remove.
11943         (define_attr op_mem): Clean up, update comment.
11944         (define_attr size): Use specific values instead of general int.
11945         (define_attr guess, define_attr split): Remove.  Update all uses.
11946         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
11947         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
11948         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
11949         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
11950         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
11951         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
11952         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
11953         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
11954         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
11955         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
11956         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
11957         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
11958         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
11959         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
11960         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
11961         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
11962         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
11963         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
11964         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
11965         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
11966         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
11967         Update or set attributes.
11968         (stack_tie): New fake instruction.
11969
11970         * config/m68k/m68k.h (TUNE_CFV4): New macro.
11971         (m68k_sched_attr_size): Update declaration.
11972         (m68k_sched_attr_type2): Remove.
11973         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
11974         Declare new bypass predicates.
11975
11976         * config/m68k/m68k.c (m68k_sched_issue_rate,
11977         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
11978         implementations.
11979         (TARGET_SCHED_ISSUE_RATE,
11980         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
11981         (override_options): Handle scheduling for ColdFire V4 core.
11982         (m68k_expand_prologue): Emit stack_tie.
11983         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
11984         'OP_TYPE_FPN'.  Update all uses.
11985         (sched_guess_p): Remove.
11986         (sched_address_type): Handle symbolic addresses.
11987         (sched_get_operand): New static function.
11988         (sched_operand_type): Merge into sched_attr_op_type.
11989         (sched_attr_op_type): Handle FP registers, handle quick constants,
11990         update.
11991         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
11992         (m68k_sched_attr_size): Update.  Move logic to ...
11993         (sched_get_attr_size_int): New static function.
11994         (sched_get_opxy_mem_type): New static function.
11995         (m68k_sched_attr_op_mem): Update.
11996         (m68k_sched_attr_type2): Remove.
11997         (sched_cfv4_bypass_data): New static variable.
11998         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
11999         (m68k_sched_issue_rate): Implement scheduler hook.
12000         (struct _sched_ib: enabled_p): New field.
12001         (m68k_sched_variable_issue): Update.  Handle V4.
12002         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
12003         sched_dump_class_func_t, sched_dump_split_class,
12004         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
12005         sched_dump_dfa_class, m68k_sched_dump): Remove.
12006         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
12007         hook.
12008         (m68k_sched_init_global): Remove statisctics dumping, introduce
12009         sanity check that all instructions have pipeline reservations.  Handle
12010         ColdFire V4 core.
12011         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
12012         Handle ColdFire V4 core.
12013         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
12014         New static functions.
12015         (m68k_sched_address_bypass_p): New bypass predicate.
12016         (sched_get_indexed_address_scale): New static function.
12017         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
12018
12019         * cf.md: Update comments.
12020         (define_attr type2): Remove.  Use 'type' attribute instead.
12021         Update all uses.
12022         (cf_ib): Rename to cfv123_ib.  Update all uses.
12023         (cf_oep): Rename to cfv123_oep.  Update all uses.
12024         (cf_chr): Rename to cfv123_chr.  Update all uses.
12025         (cf_mem): Rename to cfv123_mem.  Update all uses.
12026         (cf_mac): Move to more appropriate place.
12027         (cfv123_guess): New automaton and cpu_unit.
12028         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
12029         Update uses of 'size' attribute.  Handle before reload scheduling.
12030         (cfv123_guess): New dummy reservation for unhandled instructions.
12031         (cfv4_*): Pipeline description of ColdFire V4 core.
12032         (ignore): New reservation to handle 'ignore' type.
12033
12034 2008-05-07  Ian Lance Taylor  <iant@google.com>
12035
12036         PR middle-end/36013
12037         * gimplify.c (find_single_pointer_decl_1): Don't look through
12038         indirections.
12039         (find_single_pointer_decl): Adjust comments.
12040
12041 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
12042
12043         PR middle-end/36137
12044         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
12045         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
12046
12047         PR middle-end/36106
12048         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
12049         integral type rather than floating point, then VIEW_CONVERT_EXPR
12050         to the floating point type.
12051
12052 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
12053
12054         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
12055         TFmode op0 to register.
12056
12057 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
12058
12059         * c-decl.c (grokdeclarator): Comment typo.
12060
12061 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
12062
12063         * tree-flow.h: Remove prototype for computed_goto_p.
12064         * tree-cfg.c (computed_goto_p): Make static.
12065
12066 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
12067
12068         PR target/35657
12069         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
12070         (contains_aligned_value_p): This.  Handle _Decimal128.
12071         (ix86_function_arg_boundary): Only align _Decimal128 to its
12072         natural boundary and handle it properly.
12073
12074 2008-05-06  Martin Jambor  <mjambor@suse.cz>
12075
12076         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
12077         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
12078         (ipcp_method_set_orig_node): Removed.
12079         (ipcp_cval_get_cvalue_type): Removed.
12080         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
12081         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
12082         (ipcp_cval_set_cvalue_type): Removed.
12083         (ipcp_cval_get_cvalue): Removed.
12084         (ipcp_cval_set_cvalue): Removed.
12085         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
12086         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
12087         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
12088         (ipcp_cval_meet): Renamed to ipa_lattice_meet
12089         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
12090         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
12091         (ipcp_get_ith_lattice): Changed parameters.
12092         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
12093         (ipcp_lattice_from_jfunc): Changed parameters.
12094         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
12095         (ipcp_method_cval_print): Added temporary variable info.
12096         (ipcp_redirect): Removed already unused local variable caller.
12097         (ipcp_redirect): New temporary variable orig_callee_info
12098         (ipcp_redirect): Removed newly unused local variable callee.
12099         (ipcp_redirect): Removed (a bit confusing) local variable type.
12100         (ipcp_insert_stage): Added local variable info.
12101         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
12102         renamed too
12103         (ipcp_formal_create): Removed.
12104         (ipcp_method_cval_set): Removed.
12105         (ipcp_propagate_stage): Renamed lattice variables.
12106         (ipcp_method_cval_set_cvalue_type): Removed.
12107         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
12108         (ipcp_print_all_lattices): Changed printed strings to refer to
12109         lattices rather than cvals.
12110         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
12111         (ipcp_propagate_const): Changed formal parameters.
12112         (build_const_val): Changed formal parameters.
12113         (ipcp_insert_stage): Removed useless variable cvalue
12114         (build_const_val): Changed formal parameters.
12115         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
12116         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
12117         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
12118         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
12119         (ipcp_print_func_profile_counts): Changed string from "method" to
12120         "function"
12121         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
12122         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
12123         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
12124         (ipcp_structures_print): Renamed to ipcp_print_all_structures
12125         (ipcp_profile_print): Renamed to ipcp_print_profile_data
12126         (ipcp_lat_is_const): Changed parameters and made inline.
12127         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
12128         (ipcp_redirect): Renamed to ipcp_need_redirect_p
12129         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
12130         the predicate condition directly
12131         (ipcp_propagate_stage): Added local variable args. Removed local
12132         variable callee.  (Both are mere code simplifications.)
12133         (ipcp_method_dont_insert_const): Renamed to
12134         ipcp_node_not_modifiable_p.
12135         (ipcp_node_not_modifiable_p): Made inline.
12136         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
12137         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
12138         (ipcp_print_all_lattices): Removed variable cvalue
12139         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
12140         Updated comments.
12141
12142 2008-05-06  Olivier Hainque  <hainque@adacore.com>
12143
12144         * tree-sra.c (try_instantiate_multiple_fields): Early return
12145         if field has POINTER_TYPE.
12146
12147 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
12148
12149         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
12150         by using 'q' specifier for instruction.
12151         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
12152
12153 2008-05-06  Anatoly Sokolov <aesok@post.ru>
12154
12155         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
12156         Change mode of zero_extract from QImode to HImode.
12157         (sign bit tests peepholes): (Ditto.).
12158
12159 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
12160
12161         * config/i386/mmx.md: Remove double backslashes from asm templates.
12162         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
12163         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
12164         to handle nonimmediate operands.
12165         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
12166         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
12167         to handle nonimmediate operands.
12168         (*mmx_<code>v2sf3_finite): New insn pattern.
12169         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
12170         (mmx_<code>v2sf3): New expander.  Use
12171         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12172         (mmx_<plusminus_insn><mode>3): New expander.  Use
12173         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12174         (*mmx_<plusminus_insn><mode>3): New insn pattern.
12175         (mmx_add<mode>3): Removed.
12176         (mmx_ssadd<mode>3): Ditto.
12177         (mmx_usadd<mode>3): Ditto.
12178         (mmx_sub<mode>3): Ditto.
12179         (mmx_sssub<mode>3): Ditto.
12180         (mmx_ussub<mode>3): Ditto.
12181         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
12182         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
12183         to handle nonimmediate operands.
12184         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
12185         insn pattern.
12186         (mmx_smulv4hi3_highpart): New expander.  Use
12187         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12188         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
12189         insn pattern.
12190         (mmx_umulv4hi3_highpart): New expander.  Use
12191         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12192         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
12193         (mmx_<code>v4hi3): New expander.  Use
12194         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12195         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
12196         (mmx_<code>v8qi3): New expander.  Use
12197         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12198         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
12199         (mmx_<code><mode>3): New expander.  Use
12200         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12201
12202 2008-05-05  Jan Hubicka  <jh@suse.cz>
12203
12204         PR tree-optimization/36118
12205         * passes.c (pass_init_dump_file): Fix dump header.
12206
12207 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12208
12209         PR middle-end/36141
12210         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
12211         VCE for function decls.
12212
12213 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
12214
12215         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
12216
12217 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
12218
12219         * config/i386/i386.md (sat_plusminus): New.
12220         (plusminus_insn): Likewise.
12221         (plusminus_mnemonic): Likewise.
12222         (addsub): Removed.
12223         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
12224         (*<addsub><mode>3_cc_overflow): Renamed to ...
12225         (*<plusminus_insn><mode>3_cc_overflow): This.
12226         (*<addsub>si3_zext_cc_overflow): Renamed to ...
12227         (*<plusminus_insn>si3_zext_cc_overflow): This.
12228
12229         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
12230         (<plusminus_insn><mode>3): This.
12231         (*<addsub><mode>3): Renamed to ...
12232         (*<plusminus_insn><mode>3): This.
12233         (<sse>_vm<addsub><mode>3): Renamed to ...
12234         (<sse>_vm<plusminus_insn><mode>3): This.
12235         (sse3_h<addsub>v4sf3): Renamed to ...
12236         (sse3_h<plusminus_insn>v4sf3): This.
12237         (sse3_h<addsub>v2df3): Renamed to ...
12238         (sse3_h<plusminus_insn>v2df3): This.
12239         (<plusminus_insn><mode>3): New.
12240         (*<plusminus_insn><mode>3): Likewise.
12241         (sse2_<plusminus_insn><mode>3): Likewise.
12242         (add<mode>): Removed.
12243         (*add<mode>3): Likewise.
12244         (sse2_ssadd<mode>3): Likewise.
12245         (sse2_usadd<mode>3): Likewise.
12246         (sub<mode>3): Likewise.
12247         (*sub<mode>3): Likewise.
12248         (sse2_sssub<mode>3): Likewise.
12249         (sse2_ussub<mode>3): Likewise.
12250
12251 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
12252
12253         * gthr-single.h: Add in required interface elements as per gthr.h.
12254         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
12255         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
12256         Generalize UNUSED macro.
12257         (__gthread_once): Add.
12258         (__gthread_key_create): Add.
12259         (__gthread_key_delete): Add.
12260         (__gthread_getspecific): Add.
12261         (__gthread_setspecific): Add.
12262
12263 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
12264
12265         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
12266         the same size types for the indirect reference on the rhs, then
12267         create a VCE.
12268
12269 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
12270
12271         * config/i386/i386.md
12272         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
12273         one insn template instead of template series.
12274         (*xordi_1_rex64): Ditto.
12275         (*xordi_2_rex64): Ditto.
12276
12277 2008-05-05  Ira Rosen  <irar@il.ibm.com>
12278
12279         PR tree-optimization/36119
12280         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
12281         in case of SLP.
12282
12283 2008-06-04  Jan Hubicka  <jh@suse.cz>
12284
12285         tree-optimization/36100
12286         * tree-pass.h (pass_O0_always_inline): Declare.
12287         * ipa-inline.c (inline_transform): Remove dead code.
12288         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
12289         pass_O0_always_inline): New.
12290         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
12291
12292 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
12293
12294         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
12295         mnemonic in this_param move for TARGET_64BIT.
12296
12297 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
12298
12299         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
12300         (*strmovsi_rex_1): Ditto.
12301         (*strsetsi_1): Ditto.
12302         (*strsetsi_rex_1): Ditto.
12303
12304         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
12305         adddicc expanders using SWI mode iterator.
12306
12307 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
12308
12309         PR target/36121
12310         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
12311         argument handling.
12312
12313 2008-05-04  David S. Miller  <davem@davemloft.net>
12314
12315         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
12316         (sparc*-*-linux*): Use linux.h in tm_file.
12317         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
12318         compiler defaulting to 32-bit.
12319         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
12320         no longer needed.
12321         * config/sparc/linux.h: Remove definitions now obtained
12322         properly from linux.h
12323         * config/sparc/linux64.h: Likewise.
12324         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
12325         don't want this setting for 32-bit builds in a biarch compiler.
12326         * doc/install.texi: Add sparc-linux to list of targets
12327         supporting --enable-targets=all.
12328
12329 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
12330
12331         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
12332
12333 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
12334
12335         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
12336         after V4SI_FTYPE_V8HI.
12337         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
12338         case V4SI_FTYPE_V2DF.
12339
12340 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
12341
12342         * doc/invoke.texi (max-flow-memory-locations): Removed.
12343         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
12344
12345 2008-05-03  Richard Guenther  <rguenther@suse.de>
12346
12347         PR middle-end/34973
12348         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
12349
12350 2008-05-02  David S. Miller  <davem@davemloft.net>
12351
12352         * config.gcc (need_64bit_hwint): Document libcpp dependency.
12353
12354 2008-05-02  Simon Baldwin <simonb@google.com>
12355
12356         PR bootstrap/36108
12357         * c-common.h (warn_array_subscript_range): Removed.
12358         * c-common.c (warn_array_subscript_range): Ditto.
12359         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
12360         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
12361
12362 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
12363
12364         * config/i386/i386.c (ix86_special_builtin_type): New.
12365         (bdesc_special_args): Likewise.
12366         (ix86_expand_special_args_builtin): Likewise.
12367         (ix86_init_mmx_sse_builtins): Updated.
12368         (ix86_expand_builtin): Updated.
12369         (ix86_expand_store_builtin): Removed.
12370         (ix86_expand_unop_builtin): Likewise.
12371
12372         * config/i386/mm3dnow.h (__v2sf): Moved to ...
12373         * config/i386/mmintrin.h (__v2sf): Here.
12374
12375         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
12376         const __v2sf.
12377         (_mm_loadl_pi): Likewise.
12378         (_mm_storeh_pi): Replace __v2si with __v2sf.
12379         (_mm_storel_pi): Likewise.
12380
12381         * doc/extend.texi: Correct __builtin_ia32_loadhps,
12382         __builtin_ia32_loadlps, __builtin_ia32_storehps,
12383         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
12384         __builtin_ia32_loadlpd.
12385
12386 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
12387
12388         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
12389         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
12390         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
12391         (ix86_init_mmx_sse_builtins): Updated.
12392         (ix86_expand_args_builtin): Likewise.
12393         (ix86_expand_builtin): Likewise.
12394         (ix86_expand_unop1_builtin): Renamed to ...
12395         (ix86_expand_unop_vec_merge_builtin): This.
12396
12397 2008-05-01  Jan Hubicka  <jh@suse.cz>
12398
12399         PR bootstrap/36100
12400         * ipa-inline.c (inline_generate_summary): Make static.
12401         (inline_transform): Do not call inlining at -O0; make static.
12402         * passes.c (execute_todo): Add sanity check.
12403         (execute_one_ipa_transform_pass): Execute proper flags.
12404
12405 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
12406
12407         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
12408         (DECL_NONADDRESSABLE_P): Likewise.
12409         * alias.c (record_component_aliases): Fix comment.
12410
12411 2008-05-01  Simon Baldwin <simonb@google.com>
12412
12413         * c-common.h (warn_array_subscript_range): New function.
12414         * c-common.c (warn_array_subscript_range): Ditto.
12415         * tree-vrp.c (check_array_ref): Corrected code to agree with
12416         comment, ignoring only arrays of size 0 or size 1.
12417         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
12418
12419 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
12420
12421         * config/i386/i386.c (ix86_builtin_type): Replace
12422         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
12423         (bdesc_args): Updated.
12424         (ix86_init_mmx_sse_builtins): Likewise.
12425         (ix86_expand_args_builtin): Likewise.
12426
12427         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
12428         with __v1di.
12429
12430         * doc/extend.texi: Correct __builtin_ia32_palignr.
12431
12432 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
12433
12434         PR target/36095
12435         * config/i386/i386.c (bdesc_crc32): Removed.
12436         (ix86_expand_crc32): Likewise.
12437         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
12438         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
12439         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
12440         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
12441         UINT_FTYPE_UINT_UCHAR.
12442         (bdesc_args): Updated. Add crc32 builtins.
12443         (ix86_init_mmx_sse_builtins): Updated.
12444         (ix86_expand_args_builtin): Updated to support subreg.
12445
12446         * doc/extend.texi: Correct __builtin_ia32_crc32di.
12447
12448 2008-05-01  Jan Hubicka  <jh@suse.cz>
12449
12450         * tree-pass.h (opt_pass): Add IPA_PASS.
12451         (varpool_node, cgraph_node): Forward declare.
12452         (ipa_opt_pass): Define.
12453         (pass_ipa_inline): Turn into ipa_opt_pass.
12454         (pass_apply_inline): Remove.
12455         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
12456         (apply_inline): Turn into ....
12457         (inline_transform): ... this one.
12458         (inline_generate_summary): New function.
12459         (pass_apply_inline): Remove.
12460         * function.h (ipa_opt_pass): Forward declare structure; typedef;
12461         vector.
12462         (struct function): Add ipa_transforms_to_apply.
12463         * passes.c (register_one_dump_file): Work on IPA_PASS.
12464         (init_optimization_passes): Remove pass_inline_parameters and
12465         pass_apply_inline.
12466         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
12467         (execute_one_pass) ... here; apply transforms when possible.
12468         (add_ipa_transform_pass, execute_ipa_summary_asses,
12469         execute_one_ipa_transform_pass): New.
12470         (execute_ipa_pass_list): Update for IPA_PASS type.
12471
12472 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
12473
12474         * config/i386/i386.c (ix86_builtin_type): Add
12475         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
12476         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
12477         (bdesc_args): Add SSE4a builtins.
12478         (ix86_init_mmx_sse_builtins): Updated.
12479         (ix86_expand_args_builtin): Likewise.
12480         (ix86_expand_builtin): Likewise.
12481
12482 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
12483
12484         * config/i386/i386.c (ix86_builtin_type): Add
12485         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
12486         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
12487         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
12488         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
12489         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
12490         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
12491         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
12492         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
12493         and DI_FTYPE_DI_DI_INT.
12494         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
12495         (ix86_init_mmx_sse_builtins): Updated.
12496         (ix86_expand_args_builtin): Likewise.
12497         (ix86_expand_builtin): Likewise.
12498         (ix86_expand_binop_imm_builtin): Removed.
12499
12500         * doc/extend.texi: Correct __builtin_ia32_palignr128.
12501
12502 2008-04-30  Richard Guenther  <rguenther@suse.de>
12503
12504         PR tree-optimization/32921
12505         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
12506
12507 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
12508
12509         * config/arm/arm.c (arm_unwind_emit): Use
12510         crtl->all_throwers_are_sibcalls instead of
12511         cfun->all_throwers_are_sibcalls.
12512         (arm_output_fn_unwind): Likewise.
12513         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
12514         instead of cfun->uses_pic_offset_table.
12515         (frv_expand_prologue): Likewise.
12516         (frv_frame_pointer_required): Likewise.
12517         (frv_expand_fdpic_call): Likewise.
12518         (frv_emit_movsi): Likewise.
12519         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
12520         cfun->returns_pcc_struct instead of
12521         current_function_returns_pcc_struct.
12522         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
12523         instead of cfun->calls_eh_return.
12524         (m32c_pushm_popm): Likewise.
12525         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
12526         "extern" declaration.
12527
12528 2008-04-30  Richard Guenther  <rguenther@suse.de>
12529
12530         PR tree-optimization/21636
12531         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
12532         constant address.
12533         (evaluate_stmt): Print the likely value.
12534         (ccp_visit_stmt): Avoid excessive vertical spacing.
12535
12536 2008-04-30  Rafael Espindola  <espindola@google.com>
12537
12538         * builtins.c (fold_call_expr): Return realret.
12539         * tree-ssa-threadedge.c
12540         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
12541         __builtin_object_size.
12542
12543 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
12544
12545         * gcc.c (wrapper_string): New variable.
12546         (insert_wrapper): New function.
12547         (execute): New option -wrapper.
12548         * doc/invoke.texi (Overall Options): New driver option -wrapper.
12549
12550 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
12551
12552         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
12553         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
12554         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
12555         from...
12556         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
12557         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
12558         config/rs6000/e500crtres64gprctr.asm,
12559         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
12560         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
12561         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
12562         config/rs6000/e500crtsav64gprctr.asm,
12563         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
12564         config/rs6000/e500crtsavg64gprctr.asm: New files.
12565         * config/rs6000/t-ppccomm: Add build rules for new files.
12566         (LIB2FUNCS_STATIC_EXTRA): Add new files.
12567         * config/rs6000/t-netbsd: Add build rules for new files.
12568         (LIB2FUNCS_STATIC_EXTRA): New variable.
12569         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
12570         (CRTSAVRES_DEFAULT_SPEC): Likewise.
12571         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
12572
12573 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
12574
12575         * config/i386/i386.c (ix86_builtin_type): Add
12576         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
12577         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
12578         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
12579         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
12580         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
12581         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
12582         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
12583         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
12584         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
12585         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
12586         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
12587         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
12588         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
12589         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
12590         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
12591         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
12592         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
12593         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
12594         V1DI_FTYPE_V2SI_V2SI.
12595         (bdesc_2arg): Moved to ...
12596         (bdesc_args): Here.
12597         (ix86_init_mmx_sse_builtins): Updated.
12598         (ix86_expand_args_builtin): Updated.  Take a pointer
12599         to const struct builtin_description.  Handle comparison
12600         builtin functions.
12601         (ix86_expand_sse_compare): Take a new argument for swapping operands.
12602         (ix86_expand_builtin): Updated.
12603
12604         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
12605         (ssse3_pmaddubsw128): This.
12606         (ssse3_pmaddubswv4hi3): Renamed to ...
12607         (ssse3_pmaddubsw): This.
12608
12609         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
12610         (__builtin_ia32_packssdw128): Likewise.
12611         (__builtin_ia32_packuswb128): Likewise.
12612         (__builtin_ia32_pmaddubsw): Likewise.
12613         (__builtin_ia32_pmaddubsw128): Likewise.
12614
12615 2008-04-30  Richard Guenther  <rguenther@suse.de>
12616
12617         PR tree-optimization/14847
12618         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
12619         (recognize_bits_test): Use it.
12620         (recognize_single_bit_test): Likewise.
12621
12622 2008-04-30  Martin Jambor  <mjambor@suse.cz>
12623
12624         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
12625         instead of setting number of formal parameters to zero.
12626         (ipcp_init_stage): Do not set the number of actual parameters to zero
12627         either.
12628         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
12629         which are called with variable number of arguments.
12630         (ipcp_insert_stage): Explicitely skipping all nodes which are
12631         called with variable number of arguments.
12632         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
12633         number of parameters.
12634
12635         * ipa-prop.h (struct ipa_node_params): Added flag
12636         called_with_var_arguments
12637         (ipa_set_param_count): Added.  Changed sole setter to use it.
12638         (ipa_get_param_count): Added.  All readers of param_count
12639         converted to use it instead.
12640         (ipa_set_called_with_variable_arg): Added.
12641         (ipa_is_called_with_var_arguments): Added.
12642         (ipa_get_ith_param): Added.  All readers of param_decls converted
12643         to use it instead.
12644         (ipa_set_cs_argument_count): Added, sole writer to argument_count
12645         changed to use it.
12646         (ipa_get_cs_argument_count): Added, all readers of argument_count
12647         changed to cal it.
12648         (ipa_get_ith_jump_func): Added. Accessors of jump values changed
12649         to use it.
12650
12651         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
12652         (struct ipcp_lattice): Renamed cval_type to type
12653         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
12654
12655         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
12656         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
12657         (ipcp_insert_stage): Changed the type of variable cvalue to tree
12658         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
12659         (build_const_val): Changed the type of parameter cvalue to tree
12660         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
12661         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
12662
12663         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
12664         constant
12665
12666         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
12667         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
12668         (ipa_add_method): Renamed to ipa_push_func_to_list
12669         (ipa_remove_method): Renamed to ipa_pop_func_from_list
12670         (ipa_callsite_param_count): Removed.
12671         (ipa_callsite_param_count_set): Removed.
12672         (ipa_callsite_param): Removed.
12673         (ipa_callsite_callee): Removed.
12674         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
12675         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
12676         (ipa_method_formal_count): Removed.
12677         (ipa_method_formal_count_set): Removed.
12678         (ipa_method_get_tree): Removed.
12679         (ipa_method_tree_map_create): Removed.
12680         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
12681         (ipa_create_param_decls_array): Creates the array itself
12682         (ipa_create_param_decls_array): Temporary variable info instead of
12683         a few dereferences.
12684         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
12685         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
12686         (get_type): Removed.
12687         (ipa_jf_get_info_type): Removed.
12688         (ipa_node_create): Renamed to ipa_create_node_params
12689         (ipa_free): Renamed to ipa_free_all_node_params
12690         (ipa_nodes_create): Renamed to ipa_create_all_node_params
12691         (ipa_edges_create): Renamed to ipa_create_all_edge_args
12692         (ipa_edges_free): Renamed to ipa_free_all_edge_args
12693         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
12694         (ipa_free_all_node_params): Deallocation to jump_functions moved to
12695         ipa_free_all_edge_args
12696         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
12697         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
12698         (ipa_create_methodlist_node): Removed.
12699         (ipa_methodlist_method): Removed.
12700         (ipa_methodlist_method_set): Removed.
12701         (ipa_methodlist_next_method): Removed.
12702         (ipa_methodlist_next_method_set): Removed.
12703         (ipa_method_is_modified): Removed.
12704         (ipa_method_modify_create): Removed.
12705         (ipa_method_modify_init): Temporary variable info instead of a few
12706         dereferences.
12707         (ipa_detect_param_modifications): Temporary variable info instead of
12708         a few dereferences.
12709         (ipa_compute_jump_functions): Temporary variable info instead of
12710         a few dereferences.
12711         (ipa_method_modify_set): Removed.
12712         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
12713         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
12714         than craph_node as the first parameter.
12715         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
12716         (ipa_method_modify_init): Removed.
12717         (ipa_compute_jump_functions): Added a temp variable instead of
12718         repeatadly dereferencing the cgraph_edge.aux pointer
12719         (ipa_callsite_param_set_type): Removed.
12720         (ipa_compute_jump_functions): i renamed to index and moved to
12721         an inner block
12722         (ipa_callsite_param_set_info_type_formal): Removed.
12723         (ipa_callsite_param_set_info_type): Removed.
12724         (ipa_callsite_param_map_create): Removed.
12725         (ipa_callsite_tree): Removed.
12726         (ipa_callsite_caller): Removed.
12727         (ipa_pop_func_from_list): return_method removed to return_func
12728
12729         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
12730         prefixed all values with IPA_. Changed all users.
12731         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
12732         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
12733         and FORMAL_IPATYPE IPA_PASS_THROUGH.
12734         (union parameter_info): Renamed to jump_func_value.
12735         (union jump_func_value): Renamed value to constant
12736         (struct ipa_jump_func): Renamed info_type to value
12737         (struct ipa_node): Renamed to ipa_node_params
12738         (struct ipa_node_params): Renamed ipa_arg_num to param_count
12739         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
12740         (struct ipa_node_params): Renamed ipa_mod to modified_flags
12741         (struct ipa_edge): Renamed to ipa_edge_args
12742         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
12743         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
12744         (struct ipa_methodlist): Renamed to ipa_func_list
12745         (struct ipa_func_list): method_p renamed to node, next_method
12746         renamed to next
12747         (ipa_methodlist_p): Removed, switched all users to struct pointer
12748         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
12749
12750 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
12751
12752         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
12753         (rs6000_emit_epilogue): Use backchain to restore only when we
12754         have a large frame.  Make use of frame pointer to restore if we
12755         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
12756
12757 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
12758
12759         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
12760         Add mode to zero_extract.
12761         (sign bit tests peepholes): (Ditto.).
12762
12763 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
12764
12765         * config/i386/i386.c (ix86_builtins): Replace Prescott New
12766         Instructions in comments with SSE3.
12767         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
12768         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
12769         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
12770         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
12771         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
12772         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
12773         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
12774         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
12775         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
12776         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
12777         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
12778         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
12779         (bdesc_sse_args): Renamed to ...
12780         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
12781         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
12782         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
12783         IX86_BUILTIN_FABSQ.
12784         (bdesc_1arg): Moved to ...
12785         (bdesc_args): Here.
12786         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
12787         Instructions in comments with SSE3.
12788         (ix86_expand_sse_operands_builtin): Renamed to ...
12789         (ix86_expand_args_builtin): This.  Updated.
12790         (ix86_expand_unop1_builtin): Update comments.
12791         (ix86_expand_builtin): Updated.
12792
12793 2008-04-29  Richard Guenther  <rguenther@suse.de>
12794
12795         PR tree-optimization/36078
12796         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
12797         Update virtual SSA form after cleaning up the CFG.
12798
12799 2008-04-29  Richard Guenther  <rguenther@suse.de>
12800
12801         PR middle-end/15255
12802         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
12803
12804 2008-04-29  Richard Guenther  <rguenther@suse.de>
12805
12806         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
12807         (compute_may_aliases): Do not call finalize_ref_all_pointers.
12808         (compute_flow_insensitive_aliasing): Do not treat
12809         PTR_IS_REF_ALL pointers special.
12810         (get_smt_for): Likewise.
12811         (may_alias_p): Re-structure.
12812         (is_escape_site): A ref-all pointer conversion is not an escape site.
12813         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
12814         PTR_IS_REF_ALL pointers special.
12815         * tree-ssa-structalias.h (struct alias_info): Remove
12816         ref_all_symbol_mem_tag field.
12817         (PTR_IS_REF_ALL): Remove.
12818
12819 2008-04-29  Richard Guenther  <rguenther@suse.de>
12820
12821         PR middle-end/36077
12822         * fold-const.c (extract_muldiv_1): In combining division constants
12823         make sure to never overflow.
12824
12825 2008-04-29  Nick Clifton  <nickc@redhat.com>
12826
12827         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
12828
12829 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12830
12831         PR bootstrap/35169
12832         * optc-gen.awk: Work around HP-UX/IA awk bug.
12833
12834 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
12835
12836         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
12837         2008-04-25 commit.
12838
12839 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
12840
12841         PR target/36073
12842         * config/i386/i386.md
12843         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
12844         Change operand 1 predicate to nonimmediate_operand.
12845
12846 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
12847
12848         PR debug/36060
12849         * dwarf2out.c (struct die_struct): Mark as chain_circular through
12850         die_sub field.
12851         * gengtype.c (walk_type, write_func_for_structure): Handle
12852         chain_circular.
12853         * doc/gty.texi: Document chain_circular.
12854
12855 2008-04-28  Richard Guenther  <rguenther@suse.de>
12856
12857         PR tree-optimization/36066
12858         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
12859         SCEV and loop.
12860
12861 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
12862
12863         PR target/36064
12864         * config/i386/i386.md
12865         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
12866         Use match_scratch instead of match_operand for operands 3 and 4.
12867
12868 2008-04-27  Richard Guenther  <rguenther@suse.de>
12869
12870         PR tree-optimization/18754
12871         PR tree-optimization/34223
12872         * tree-pass.h (pass_complete_unrolli): Declare.
12873         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
12874         loop size before and after unconditionally of UL_NO_GROWTH in effect.
12875         Rewrite loop into loop closed SSA form if it is not already.
12876         (tree_unroll_loops_completely): Re-structure to iterate over
12877         innermost loops with intermediate CFG cleanups.
12878         Unroll outermost loops only if requested or the code does not grow
12879         doing so.
12880         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
12881         loops are available.
12882         (tree_vectorize): Instead do so here.
12883         (tree_complete_unroll): Also unroll outermost loops.
12884         (tree_complete_unroll_inner): New function.
12885         (gate_tree_complete_unroll_inner): Likewise.
12886         (pass_complete_unrolli): New pass.
12887         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
12888         uses outside of the loop.
12889         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
12890         form if it is available.
12891         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
12892         * passes.c (init_optimization_passes): Schedule complete inner
12893         loop unrolling pass before the first CCP pass after final inlining.
12894
12895 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
12896
12897         * targhooks.h (default_emutls_var_fields,
12898         default_emutls_var_init): Declare.
12899         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
12900         * target.h (struct gcc_target): Add struct emutls member.
12901         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
12902         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
12903         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
12904         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
12905         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
12906         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
12907         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
12908         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
12909         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
12910         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
12911         emit debug information.
12912         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
12913         * varasm.c: Include targhooks.h.
12914         (emutls_object_section, emutls_tmpl_section): New.
12915         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
12916         (EMUTLS_SEPARATOR): New.
12917         (prefix_name): New.
12918         (get_emutls_object_name): New.
12919         (default_emutls_var_fields): New, broken out of ...
12920         (get_emutls_object_type): ... here.  Adjust to use target hooks.
12921         (get_emutls_init_templ_addr): Adjust to use target hooks.
12922         (emutls_decl): Adjust to use target hooks.
12923         (emutls_finish): Likewise.
12924         (default_emutls_var_init): New, broken out of ...
12925         (assemble_variable): ... here.  Adjust to use target hooks.
12926         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
12927         SECCAT_EMUTLS_TMPL.
12928         * c-common.c (handle_section_attribute): Prevent overriding
12929         sections for emulated tls with special sections.
12930         * config/i386/i386.c (x86_64_elf_select_section): Add
12931         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
12932         (x86_64_elf_unique_section): Likewise.
12933         * config/vxworks.c: Include tree.h.
12934         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
12935         (vxworks_override_options): Set TLS scheme.
12936         * doc/tm.texi (Emulated TLS): New node.
12937
12938 2008-04-26  Simon Baldwin <simonb@google.com>
12939
12940         PR c/35652
12941         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
12942         with propagated string constants.
12943
12944 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
12945
12946         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
12947         constraint for operand 2 when operand 0 is memory operand.
12948         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
12949         operand 0 is memory operand.
12950         (fix_trunc<mode>_i387_with_temp): Ditto.
12951         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
12952         operand 2 when operand 1 is memory operand.
12953         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
12954         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
12955         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
12956         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
12957         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
12958         operands 2,3 and 4 when operand 1 is memory operand.
12959         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
12960         is memory operand.
12961         (fistdi2_floor_with_temp): Ditto.
12962         (fist<mode>2_floor_with_temp): Ditto.
12963         (fistdi2_ceil_with_temp): Ditto.
12964         (fist<mode>2_ceil_with_temp): Ditto.
12965         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
12966
12967 2008-04-26  David Daney  <ddaney@avtrex.com>
12968
12969         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
12970         unspec_volitile.
12971         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
12972         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
12973         UNSPEC_UPDATE_GOT_VERSION): Renumber.
12974         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
12975         (compare_and_swap_12): New insn.
12976         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
12977         * config/mips/mips.c (mips_force_binary): New function.
12978         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
12979         (mips_expand_compare_and_swap_12): New function.
12980         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
12981
12982 2008-04-25  Jan Hubicka  <jh@suse.cz>
12983
12984         PR testsuite/35843
12985         * cfgexpand.c (pass_expand): Turn into RTL pass.
12986         * passes.c (execute_one_pass): Do pass typechecking after execution.
12987         * tree-pass.h (pass_expand): Turn into RTL pass.
12988
12989         * function.h (struct rtl_data): Move here fields
12990         accesses_prior_frames, calls_eh_return, saves_all_registers,
12991         has_nonlocal_goto, has_asm_statement, is_thunk,
12992         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
12993         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
12994         arg_pointer_save_area_init from struct function; turn into bool.
12995         (struct function): Move
12996         calls_eh_return, saves_all_registers, has_nonlocal_goto,
12997         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
12998         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
12999         tail_call_emit, arg_pointer_save_area_init
13000         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
13001         (current_function_returns_struct, current_function_returns_pcc_struct,
13002         current_function_calls_setjmp, current_function_calls_alloca,
13003         current_function_accesses_prior_frames,
13004         current_function_calls_eh_return, current_function_is_thunk,
13005         current_function_stdarg, current_function_profile,
13006         current_function_limit_stack, current_function_uses_pic_offset_table,
13007         current_function_uses_const_pool, current_function_has_nonlocal_label,
13008         current_function_saves_all_registers,
13009         current_function_has_nonlocal_goto,
13010         current_function_has_asm_statement): Remove accesor macros.
13011         * ra-conflict.c (global_conflicts): Update.
13012         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
13013         (suitable_for_tail_call_opt_p): Update.
13014         * builtins.c (expand_builtin_return_addr): Update.
13015         (expand_builtin_setjmp_setup): Update.
13016         (expand_builtin_nonlocal_goto): Update.
13017         * final.c (final_start_function): Update.
13018         (profile_function): Update.
13019         (leaf_function_p): Update.
13020         (only_leaf_regs_used): Update.
13021         * df-scan.c (df_get_exit_block_use_set): Update.
13022         * dojump.c (clear_pending_stack_adjust): Update.
13023         * tree-stdarg.c (gate_optimize_stdarg): Update.
13024         * gimple-low.c (lower_function_body): Update.
13025         * global.c (compute_regsets): Update.
13026         (global_alloc): Update.
13027         * dwarf2out.c (dwarf2out_begin_prologue): Update.
13028         * expr.c (expand_assignment): Update.
13029         * dse.c (dse_step0): Update.
13030         (dse_step1): Update.
13031         * c-decl.c (store_parm_decls): Update.
13032         * local-alloc.c (combine_regs): Update.
13033         (find_free_reg): Update.
13034         * function.c (assign_parms_augmented_arg_list): Update.
13035         (assign_parm_find_data_types): Update.
13036         (assign_parms): Update.
13037         (allocate_struct_function): Update.
13038         (expand_function_start): Update.
13039         (expand_function_end): Update.
13040         (get_arg_pointer_save_area): Update.
13041         (thread_prologue_and_epilogue_insns): Update.
13042         (rest_of_match_asm_constraints): Update.
13043         * stor-layout.c (variable_size): Update.
13044         * gcse.c (gcse_main): Update.
13045         (bypass_jumps): Update.
13046         * gimplify.c (gimplify_function_tree): Update.
13047         * calls.c (emit_call_1): Update.
13048         (expand_call): Update.
13049         * bt-load.c (compute_defs_uses_and_gen): Update.
13050         * except.c (sjlj_assign_call_site_values): Update.
13051         (sjlj_emit_function_enter): Update.
13052         (can_throw_external): Update.
13053         (set_nothrow_function_flags): Update.
13054         (expand_builtin_unwind_init): Update.
13055         (expand_eh_return): Update.
13056         (convert_to_eh_region_ranges): Update.
13057         (output_function_exception_table): Update.
13058         * emit-rtl.c (gen_tmp_stack_mem): Update.
13059         * cfgexpand.c (expand_used_vars): Update.
13060         (tree_expand_cfg): Update.
13061         * cfgcleanup.c (rest_of_handle_jump): Update.
13062         * explow.c (allocate_dynamic_stack_space): Update.
13063         * varasm.c (assemble_start_function): Update.
13064         (force_const_mem): Update.
13065         (mark_constant_pool): Update.
13066         * tree-optimize.c (tree_rest_of_compilation): Update.
13067         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
13068         * tree-cfg.c (notice_special_calls): Update.
13069         (is_ctrl_altering_stmt): Update.
13070         (tree_can_make_abnormal_goto): Update.
13071         (tree_purge_dead_abnormal_call_edges): Update.
13072         * config/alpha/predicates.md: Update.
13073         * config/alpha/alpha.c (alpha_sa_mask): Update.
13074         (alpha_sa_size): Update.
13075         (alpha_does_function_need_gp): Update.
13076         (alpha_expand_prologue): Update.
13077         (alpha_start_function): Update.
13078         (alpha_output_function_end_prologue): Update.
13079         (alpha_expand_epilogue): Update.
13080         * config/frv/frv.c (frv_stack_info): Update.
13081         (frv_expand_epilogue): Update.
13082         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
13083         (s390_register_info): Update.
13084         (s390_frame_info): Update.
13085         (s390_init_frame_layout): Update.
13086         (s390_can_eliminate): Update.
13087         (save_gprs): Update.
13088         * config/spu/spu.c (spu_split_immediate): Update.
13089         (need_to_save_reg): Update.
13090         (spu_expand_prologue): Update.
13091         (spu_expand_epilogue): Update.
13092         * config/sparc/sparc.md: Update.
13093         * config/sparc/sparc.c (eligible_for_return_delay): Update.
13094         (sparc_tls_got): Update.
13095         (legitimize_pic_address): Update.
13096         (sparc_emit_call_insn): Update.
13097         (sparc_expand_prologue): Update.
13098         (output_return): Update.
13099         (print_operand): Update.
13100         (sparc_function_ok_for_sibcall): Update.
13101         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
13102         * config/m32r/m32r.md: Update.
13103         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
13104         (m32r_compute_frame_size): Update.
13105         (m32r_expand_prologue): Update.
13106         (m32r_expand_epilogue): Update.
13107         (m32r_legitimize_pic_address): Update.
13108         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
13109         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
13110         * config/i386/i386.c (ix86_frame_pointer_required): Update.
13111         (gen_push): Update.
13112         (ix86_save_reg): Update.
13113         (ix86_compute_frame_layout): Update.
13114         (ix86_expand_prologue): Update.
13115         (ix86_expand_epilogue): Update.
13116         * config/sh/sh.c (output_stack_adjust): Update.
13117         (calc_live_regs): Update.
13118         (sh5_schedule_saves): Update.
13119         (sh_expand_prologue): Update.
13120         (sh_expand_epilogue): Update.
13121         (sh_setup_incoming_varargs): Update.
13122         (sh_allocate_initial_value): Update.
13123         (sh_get_pr_initial_val): Update.
13124         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
13125         * config/sh/sh.md (label:): Update.
13126         * config/avr/avr.c (out_movhi_mr_r): Update.
13127         * config/crx/crx.h (enum): Update.
13128         * config/xtensa/xtensa.h (along): Update.
13129         * config/stormy16/stormy16.c Update.
13130         (xstormy16_compute_stack_layout): Update.
13131         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
13132         (fr30_expand_prologue): Update.
13133         * config/cris/cris.c (cris_conditional_register_usage): Update.
13134         (cris_reg_saved_in_regsave_area): Update.
13135         (cris_initial_frame_pointer_offset): Update.
13136         (cris_simple_epilogue): Update.
13137         (cris_expand_prologue): Update.
13138         (cris_expand_epilogue): Update.
13139         (cris_expand_pic_call_address): Update.
13140         (cris_asm_output_symbol_ref): Update.
13141         (cris_asm_output_label_ref): Update.
13142         * config/cris/cris.md Update.
13143         * config/iq2000/iq2000.c (compute_frame_size): Update.
13144         (iq2000_expand_epilogue): Update.
13145         * config/mt/mt.h (save_direction): Update.
13146         * config/mn10300/mn10300.c (mn10300_function_value): Update.
13147         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
13148         (ia64_secondary_reload_class): Update.
13149         * config/m68k/m68k.c (m68k_save_reg): Update.
13150         (m68k_expand_prologue): Update.
13151         (m68k_expand_epilogue): Update.
13152         (legitimize_pic_address): Update.
13153         * config/rs6000/rs6000.c (rs6000_got_register): Update.
13154         (first_reg_to_save): Update.
13155         (first_altivec_reg_to_save): Update.
13156         (compute_vrsave_mask): Update.
13157         (compute_save_world_info): Update.
13158         (rs6000_stack_info): Update.
13159         (spe_func_has_64bit_regs_p): Update.
13160         (rs6000_ra_ever_killed): Update.
13161         (rs6000_emit_eh_reg_restore): Update.
13162         (rs6000_emit_allocate_stack): Update.
13163         (rs6000_emit_prologue): Update.
13164         (rs6000_emit_epilogue): Update.
13165         (rs6000_output_function_epilogue): Update.
13166         (output_profile_hook): Update.
13167         (rs6000_elf_declare_function_name): Update.
13168         * config/rs6000/rs6000.h (rs6000_args): Update.
13169         * config/rs6000/rs6000.md: Update.
13170         * config/mcore/mcore.c (mcore_expand_prolog): Update.
13171         * config/arc/arc.c (arc_output_function_epilogue): Update.
13172         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
13173         * config/darwin.c (machopic_function_base_name): Update.
13174         * config/score/score3.c (score3_compute_frame_size): Update.
13175         (rpush): Update.
13176         (rpop): Update.
13177         (score3_epilogue): Update.
13178         * config/score/score7.c (score7_compute_frame_size): Update.
13179         (score7_prologue): Update.
13180         (score7_epilogue): Update.
13181         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
13182         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
13183         * config/arm/arm.c (use_return_insn): Update.
13184         (require_pic_register): Update.
13185         (arm_load_pic_register): Update.
13186         (arm_compute_save_reg0_reg12_mask): Update.
13187         (arm_compute_save_reg_mask): Update.
13188         (thumb1_compute_save_reg_mask): Update.
13189         (output_return_instruction): Update.
13190         (arm_output_function_prologue): Update.
13191         (arm_output_epilogue): Update.
13192         (arm_get_frame_offsets): Update.
13193         (arm_expand_prologue): Update.
13194         (thumb_pushpop): Update.
13195         (thumb_exit): Update.
13196         (thumb1_expand_prologue): Update.
13197         (thumb1_expand_epilogue): Update.
13198         (arm_unwind_emit): Update.
13199         (arm_output_fn_unwind): Update.
13200         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
13201         * config/arm/arm.md: Update.
13202         * config/pa/pa.md: Update.
13203         * config/pa/pa.c (legitimize_pic_address): Update.
13204         (compute_frame_size): Update.
13205         (hppa_expand_prologue): Update.
13206         (hppa_expand_epilogue): Update.
13207         (borx_reg_operand): Update.
13208         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
13209         (HARD_REGNO_RENAME_OK): Update.
13210         * config/mips/mips.c (mips_global_pointer): Update.
13211         (mips_save_reg_p): Update.
13212         (mips_compute_frame_info): Update.
13213         (mips_frame_pointer_required): Update.
13214         (mips_expand_prologue): Update.
13215         (mips_expand_epilogue): Update.
13216         (mips_can_use_return_insn): Update.
13217         (mips_reorg_process_insns): Update.
13218         * config/v850/v850.c (compute_register_save_size): Update.
13219         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
13220         * config/mmix/mmix.c (along): Update.
13221         (mmix_expand_epilogue): Update.
13222         * config/bfin/bfin.c (legitimize_pic_address): Update.
13223         (must_save_p): Update.
13224         (stack_frame_needed_p): Update.
13225         (add_to_reg): Update.
13226         (bfin_expand_prologue): Update.
13227         * stmt.c (expand_asm_operands): Update.
13228         * reload1.c (reload): Update.
13229         (init_elim_table): Update.
13230
13231 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
13232
13233         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
13234
13235 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
13236
13237         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
13238         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
13239         (mov<mode>): Removed.
13240         (*movv4sf_internal): Likewise.
13241         (*movv2df_internal): Likewise.
13242
13243 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
13244
13245         * config.gcc (crx-*-elf): Remove deprecation.
13246
13247 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
13248
13249         * config/i386/cygming-crtend.c (register_frame_ctor): Register
13250         __gcc_deregister_frame with atexit.
13251         (deregister_frame_dtor): Remove.
13252
13253 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
13254             Nathan Sidwell  <nathan@codesourcery.com>
13255
13256         * config/rs6000/rs6000.opt (mspe): Remove Var property.
13257         (misel): Likewise.
13258         * config/rs6000/rs6000.h (rs6000_spe): Declare.
13259         (rs6000_isel): Likewise.
13260         * config/rs6000/rs6000.c (rs6000_spe): New variable.
13261         (rs6000_isel): New variable.
13262         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
13263
13264 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
13265
13266         PR c++/35758
13267         * c-common.c (handle_vector_size_attribute): Call
13268         lang_hooks.types.reconstruct_complex_type instead of
13269         reconstruct_complex_type.
13270         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
13271         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
13272         * langhooks.h (struct lang_hooks_for_types): Add
13273         reconstruct_complex_type hook.
13274         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
13275         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
13276
13277 2008-04-24  Richard Guenther  <rguenther@suse.de>
13278
13279         * c-common.h (check_builtin_function_arguments): Declare.
13280         * c-common.c (validate_nargs): New function.
13281         (check_builtin_function_arguments): Likewise.
13282         * c-typeck.c (build_function_call): Call
13283         check_builtin_function_arguments.
13284         * builtins.c (fold_builtin_classify): Remove error reporting code.
13285         (fold_builtin_unordered_cmp): Likewise.
13286         (fold_builtin_1): Likewise.
13287         (fold_builtin_n): Likewise.
13288
13289 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
13290
13291         PR tree-optimization/36008
13292         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
13293         the original op1, rather than delta by step.
13294
13295 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
13296             Sebastian Pop  <sebastian.pop@amd.com>
13297
13298         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
13299         eliminate_local_variables_stmt, eliminate_local_variables,
13300         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
13301         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
13302         of code delimited by two edges in the CFG.
13303         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
13304         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
13305         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate
13306         the case of parallelisation of reductions.
13307         (expr_invariant_in_region_p): New.
13308
13309         * tree-flow.h (gather_blocks_in_sese_region): Declared.
13310         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
13311
13312 2008-04-24  Ira Rosen  <irar@il.ibm.com>
13313             Richard Guenther  <rguenther@suse.de>
13314
13315         PR tree-optimization/36034
13316         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
13317         incapable of dealing with loads with gaps.
13318
13319 2008-04-24  Rafael Espindola  <espindola@google.com>
13320
13321         * tree-flow.h (vrp_evaluate_conditional): Change signature.
13322         * tree-ssa-propagate.c (fold_predicate_in): Update call to
13323         vrp_evaluate_conditional.
13324         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
13325         (vrp_evaluate_conditional): Split the cond argument.
13326         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
13327         (simplify_stmt_for_jump_threading): Update call to
13328         vrp_evaluate_conditional.
13329
13330 2008-04-24  Ira Rosen  <irar@il.ibm.com>
13331
13332         PR tree-optimization/35982
13333         * tree-vect-analyze.c (vect_check_interleaving): Check that the
13334         interleaved data-refs are of the same type.
13335
13336 2008-04-24  Danny Smith  <dannysmith@users.net>
13337
13338         * c-format.c (check_format_info_main): Use strncmp rather than a
13339         magic prefix to handle multichar length specs.
13340         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
13341         Don't prefix "I64" and "I32" with '\0'.
13342
13343 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
13344
13345         PR target/36015
13346         * config/i386/i386.c (init_cumulative_args): Don't pass anything
13347         in registers for -m32 only if stdarg_p (fntype).
13348
13349 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
13350
13351         PR rtl-optimization/36006
13352         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
13353         temp to op0 in order to avoid invalid rtx sharing.
13354
13355 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
13356
13357         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
13358         check TREE_INVARIANT.
13359         * tree-gimple.c (is_gimple_address): New.
13360         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
13361         * tree-gimple.h (is_gimple_address): New.
13362         * tree.h (decl_address_invariant_p): New.
13363         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
13364         (build_string): Likewise.
13365         (decl_address_invariant_p): New, from is_gimple_invariant_address.
13366         (tree_invariant_p_1): Likewise.
13367         (save_expr): Use it.
13368         (tree_invariant_p): New.
13369         (skip_simple_arithmetic): Use it.
13370         (stabilize_reference_1): Use it.
13371         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
13372         simplify.
13373         (build1_stat): Drop code to compute TREE_INVARIANT.
13374         (build2_stat): Drop code to compute TREE_INVARIANT.
13375         (build3_stat): Drop code to compute TREE_INVARIANT.
13376         (build4_stat): Drop code to compute TREE_INVARIANT.
13377         (build5_stat): Drop code to compute TREE_INVARIANT.
13378         (build7_stat): Drop code to compute TREE_INVARIANT.
13379         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
13380         * tree.h (struct tree_base): Remove invariant_flag.
13381         (TREE_INVARIANT): Remove.
13382         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
13383         (fold_builtin_expect): Check TREE_CONSTANT.
13384         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
13385         * c-tree.h (c_expr_to_decl): Drop third parameter.
13386         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
13387         (build_c_cast): Don't set TREE_INVARIANT.
13388         (pop_init_level): Don't set TREE_INVARIANT.
13389         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
13390         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
13391         TREE_CONSTANT.
13392         (gimplify_init_constructor): Don't set TREE_INVARIANT.
13393         (gimplify_addr_expr): Adjust comment.
13394         * tree-mudflap.c (mf_build_string):
13395         * print-tree.c (print_node): Don't print TREE_INVARIANT.
13396         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
13397         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
13398         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
13399         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
13400         * langhooks.h (struct lang_hooks): Drop third parameter from
13401         expr_to_decl.
13402
13403 2008-04-23  Richard Guenther  <rguenther@suse.de>
13404
13405         PR tree-optimization/27799
13406         PR tree-optimization/32921
13407         PR tree-optimization/32624
13408         * tree-ssa-structalias.c (merge_smts_into): Only merge the
13409         SMTs aliases and the tag itself into the solution.
13410         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
13411         merge the points-to solution back into the SMT aliases.
13412         (may_alias_p): Use alias_set_subset_of instead of
13413         aliases_conflict_p.  A pointer which points to
13414         memory with alias set zero may access any variable.
13415
13416 2008-04-23  Richard Guenther  <rguenther@suse.de>
13417
13418         * alias.c (alias_set_subset_of): Correctly handle asking
13419         if zero is a subset of an alias set with zero child.
13420         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
13421         (compute_flow_insensitive_aliasing): Correctly walk all
13422         pointers.  Do not unnecessarily union sets.
13423
13424 2008-04-23  Richard Guenther  <rguenther@suse.de>
13425
13426         PR middle-end/36021
13427         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
13428
13429 2008-04-22  Tomas Bily  <tbily@suse.cz>
13430
13431         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
13432         unreachable case.
13433         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
13434         NON_LVALUE_EXPR.
13435         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
13436         * tree-ssa-structalias.c (get_constraint_for): Likewise.
13437         * tree-inline.c (estimate_num_insns_1): Likewise.
13438         * varasm.c (const_hash_1, compare_constant, copy_constant)
13439         (compute_reloc_for_constant, output_addressed_constants): Likewise.
13440         * emit-rtl.c (component_ref_for_mem_expr)
13441         (set_mem_attributes_minus_bitpos): Likewise.
13442         * expr.c (highest_pow2_factor, expand_expr_real_1, )
13443         (is_aligning_offset): Likewise.
13444         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
13445         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
13446         * dojump.c (do_jump): Likewise.
13447         * builtins.c (get_pointer_alignment, get_memory_rtx)
13448         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
13449         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
13450
13451 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
13452
13453         PR rtl-optimization/36017
13454         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
13455         expanding the library call.
13456
13457 2008-04-22  Ian Lance Taylor  <iant@google.com>
13458
13459         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
13460         than size_in_bytes.
13461
13462 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
13463
13464         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
13465         of LR/CTR moves for Power6.
13466
13467 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
13468
13469         PR middle-end/36003
13470         * passes.c (init_optimization_passes): Remove
13471         pass_fast_rtl_byte_dce.
13472
13473 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
13474
13475         PR target/29096
13476         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
13477         builtin functions to generate faster code.
13478         (_mm_cvtpu16_ps): Ditto.
13479         (_mm_cvtpi32x2_ps): Ditto.
13480
13481 2008-04-22  Nick Clifton  <nickc@redhat.com>
13482
13483         * common.opt (ftree-loop-distribution): Add Optimization
13484         attribute.
13485
13486         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
13487         (frv_expand_builtin_va_start): Likewise.
13488
13489         * config/arm/arm.c (thumb_find_work_register): Fix location of
13490         argument register count.
13491
13492 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
13493
13494         Support scheduling for ColdFire V1 and V3 microarchitecture.
13495         Improve scheduling of multiplication instructions.
13496
13497         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
13498         (mac): New instruction attribute.
13499         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
13500         (m68k_sched_mac): New variable.
13501         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
13502         Handle cfv1 and cfv3.
13503         (max_insn_size): New static variable.
13504         (struct _sched_ib): New type.
13505         (sched_ib): New static variable.
13506         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
13507         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
13508         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
13509         Update.
13510         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
13511         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
13512         new variables.  Update.
13513         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
13514         Add modeling of cfv3 instruction buffer.  Update.
13515         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
13516         * config/m68k/m68k.h (TUNE_CFV3): New macro.
13517         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
13518         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
13519         a particular reservation applies to.
13520         (type2): Reorganize attribute values.  Rename alu to alu_reg,
13521         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
13522         to mul_l and mul_w.
13523         (cf_ib_*): Simplify description of instruction buffer.
13524         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
13525         (cf_mem): Split into cf_mem1 and cf_mem2.
13526         (cf_v2_move_??): Rename to cfv12_alu_??.
13527         (cf_v2_move_l_??): Rename to cfv12_omove_??.
13528         (cf_v2_mul_??): Remove reservations.
13529         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
13530         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
13531         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
13532         appropriate place.
13533         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
13534         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
13535         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
13536         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
13537         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
13538         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
13539         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
13540         expansions of the above reservations for instructions of sizes
13541         1, 2 and 3 words.
13542
13543 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
13544
13545         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
13546
13547 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
13548
13549         * coverage.c: Include tree-pass.h.
13550         (coverage_counter_alloc): Print da_file_name to the dump file.
13551
13552 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
13553
13554         * sbitmap.c (sbitmap_range_empty_p): New function.
13555         * sbitmap.h (sbitmap_range_empty_p): New function.
13556         * bitmap.h: Now includes obstack.h.
13557
13558 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
13559             Kenneth Zadeck  <zadeck@naturalbridge.com>
13560
13561         * dbgcnt.def (ra_byte_scan): Added.
13562         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
13563         when the last hit happens for a counter.
13564         * timevar.def (TV_DF_BYTE_LR): New variable.
13565         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
13566         * passes.c (pass_fast_rtl_byte_dce): New pass.
13567         * fwprop.c (update_df): Added mode to call df_ref_create.
13568         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
13569         DF_REF_EXTRACT_OFFSET.
13570         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
13571         DF_BYTE_LR_OUT, df_byte_lr): New macro.
13572         (df_mm): New enum.
13573         (df_ref_extract): Added mode field.
13574         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
13575         DF_REF_EXTRACT_OFFSET.
13576         (DF_REF_EXTRACT_MODE): New macro.
13577         (df_byte_lr_bb_info): New structure.
13578         (df_print_byte_regset, df_compute_accessed_bytes,
13579         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
13580         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
13581         df_byte_lr_simulate_uses,
13582         df_byte_lr_simulate_artificial_refs_at_top,
13583         df_byte_lr_simulate_artificial_refs_at_end,
13584         df_compute_accessed_bytes): New function.
13585         (df_ref_create): Add parameter.
13586         (df_byte_lr_get_bb_info): New inline function.
13587         * df-scan.c (df_ref_record, df_uses_record,
13588         df_ref_create_structure): Added mode parameter.
13589         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
13590         df_defs_record, df_uses_record, df_get_conditional_uses,
13591         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
13592         df_entry_block_defs_collect, df_exit_block_uses_collect):
13593         Added mode parameter to calls to df_ref_record, df_uses_record,
13594         df_ref_create_structure.
13595         (df_ref_equal_p, df_ref_compare): Added test for modes.
13596         (df_ref_create_structure): Added code to set mode.  Renamed
13597         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
13598         DF_REF_EXTRACT_OFFSET.
13599         * df-core.c (df_print_byte_regset): New function.
13600         * df-byte-scan.c: New file.
13601         * df-problems.c (df_rd_transfer_function): Removed unnecessary
13602         calls to BITMAP_FREE.
13603         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
13604         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
13605         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
13606         df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
13607         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
13608         df_byte_lr_local_compute, df_byte_lr_init,
13609         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
13610         df_byte_lr_transfer_function, df_byte_lr_free,
13611         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
13612         df_byte_lr_add_problem, df_byte_lr_simulate_defs,
13613         df_byte_lr_simulate_uses,
13614         df_byte_lr_simulate_artificial_refs_at_top,
13615         df_byte_lr_simulate_artificial_refs_at_end): New function.
13616         * dce.c (byte_dce_process_block): New function.
13617         (dce_process_block): au is now passed in rather than computed
13618         locally.  Changed loops that look at artificial defs to not look
13619         for conditional or partial ones, because there never are any.
13620         (fast_dce): Now is able to drive byte_dce_process_block or
13621         dce_process_block depending on the kind of dce being done.
13622         (rest_of_handle_fast_dce): Add parameter to fast_dce.
13623         (rest_of_handle_fast_byte_dce): New function.
13624         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
13625         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
13626
13627 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
13628
13629         PR fortran/35019
13630         * gcc.h: Added fortran options that take arguments to
13631         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
13632         macros.
13633
13634 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
13635
13636         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
13637         scalarization if on the LHS and not a full access.
13638
13639 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13640
13641         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
13642
13643 2008-04-18  Rafael Espindola  <espindola@google.com>
13644
13645         * tree-vrp.c (find_case_label_index): Fix the binary search.
13646         (find_case_label_range): New.
13647         (vrp_visit_switch_stmt): Use find_case_label_range.
13648         (simplify_switch_using_ranges): Use find_case_label_range.
13649
13650 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
13651
13652         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
13653         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
13654
13655 2008-04-18  Tom Tromey  <tromey@redhat.com>
13656
13657         PR libcpp/15500:
13658         * doc/cpp.texi (Implementation-defined behavior): Mention
13659         -finput-charset.
13660
13661 2008-04-18  Ian Lance Taylor  <iant@google.com>
13662
13663         * fold-const.c (pointer_may_wrap_p): New static function.
13664         (fold_comparison): Add another test for pointer overflow.  Use
13665         pointer_may_wrap_p to disable some false positives.
13666
13667 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
13668
13669         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
13670         (fname_as_string): Match updated cpp_interpret_string prototype.
13671         (fix_string_type): Support char16_t* and char32_t*.
13672         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
13673         derivative) nodes.  Register as builtin if C++0x.
13674         (c_parse_error): Support CPP_CHAR{16,32}.
13675         * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
13676         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
13677         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
13678         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
13679         CTI_CHAR32_ARRAY_TYPE>: New elements.
13680         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
13681         char32_type_node, signed_char32_type_node, char16_array_type_node,
13682         char32_array_type_node): New defines.
13683         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
13684         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
13685         (lex_string): Support CPP_STRING{16,32}, match updated
13686         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
13687         (lex_charconst): Support CPP_CHAR{16,32}.
13688         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
13689         and CPP_STRING{16,32}.
13690
13691 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
13692
13693         PR bootstrap/35457
13694         * aclocal.m4: Regenerate.
13695         * configure: Regenerate.
13696
13697 2008-04-18  Jan Hubicka  <jh@suse.cz>
13698
13699         * except.c (dw2_size_of_call_site_table,
13700         sjlj_size_of_call_site_table): Use vector API for call_site_record.
13701
13702         * cgraphbuild.c (build_cgraph_edges): Update.
13703         * tree-pass.h: Update comment.
13704         * final.c (leaf_function_p): Update.
13705         (leaf_renumber_regs): Update.
13706         (rest_of_clean_state): Update.
13707         * omp-low.c (expand_omp_parallel): Update.
13708         * ipa-reference.c (analyze_function): Update.
13709         * reorg.c (find_end_label): Update.
13710         (optimize_skip): Update.
13711         (fill_simple_delay_slots): Update.
13712         (fill_simple_delay_slots): Update.
13713         (make_return_insns): Update.
13714         (dbr_schedule): Update.
13715         * gimple-low.c (record_vars_into): Update.
13716         * cfgbuild.c (make_edges): Update.
13717         * function.c (assign_stack_local): Update.
13718         (assign_parm_adjust_stack_rtl): Update.
13719         (locate_and_pad_parm): Update.
13720         (allocate_struct_function): Do not initialize stack_alignment_needed
13721         and preferred_stack_boundary here.
13722         (stack_protect_prologue): Update.
13723         (stack_protect_epilogue): Update.
13724         (expand_function_start): Initialize stack_alignment_needed,
13725         preferred_stack_boundary and max_jumptable_ents.
13726         (expand_function_end): Update.
13727         (free_after_compilation): Do not NULLify epilogue_delay_list.
13728         * function.h (struct rtl_data): Add stack_protect_guard,
13729         stack_alignment_needed,
13730         preferred_stack_boundary, epilogue_delay_list.
13731         (struct function): Remove value_histograms, stack_alignment_needed,
13732         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
13733         last_label_uid,
13734         unexpanded_var_list, stack_protect_guard.
13735         (current_function_epilogue_delay_list): Remove.
13736         * ipa-type-escape.c (analyze_function): Update.
13737         * gimplify.c (pop_gimplify_context): Update comment.
13738         * calls.c (expand_call): Update.
13739         (emit_library_call_value_1): Update.
13740         * except.c (set_nothrow_function_flags): Update.
13741         * cfgexpand.c (get_decl_align_unit): Update.
13742         (create_stack_guard): Update.
13743         (estimated_stack_frame_size): Update.
13744         (expand_used_vars): Update.
13745         (tree_expand_cfg): Free histogram earliers, init expansion variables.
13746         * explow.c (allocate_dynamic_stack_space): Update.
13747         * tree-ssa-live.c (remove_unused_locals): Update.
13748         * varasm.c (mark_constant_pool): Update.
13749         * tree-inline.c (remap_decls): Update.
13750         (initialize_cfun): Update.
13751         (declare_return_variable): Update.
13752         (inline_forbidden_p): Update.
13753         (expand_call_inline): Update.
13754         (declare_inline_vars): Update.
13755         (tree_function_versioning): Update.
13756         * tree-flow.h (value_histograms): New.
13757         (VALUE_HISTOGRAMS): New macro.
13758         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
13759         last_label_uid.
13760         * tree-cfg.c (set_bb_for_stmt): Update.
13761         (replace_by_duplicate_decl): Update.
13762         (move_block_to_fn): Update.
13763         (new_label_mapper): Update.
13764         (dump_function_to_file): Update.
13765         * ipa-struct-reorg.c (build_data_structure): Update.
13766         * cfgrtl.c (print_rtl_with_bb): Update.
13767         * reload1.c (reload): Update.
13768         (reload): Update.
13769         * config/i386/i386.c (setup_incoming_varargs_64,
13770         ix86_compute_frame_layout): Update.
13771         * config/arc/arc.c (arc_output_function_epilogue): Update.
13772
13773 2008-04-18  Marius Strobl <marius@FreeBSD.org>
13774
13775         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
13776         for FreeBSD as well.
13777         * gthr-posix95.h: Likewise.
13778
13779 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
13780
13781         PR rtl-optimization/35838
13782         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
13783         out the byte offset of the first subreg.
13784
13785 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
13786
13787         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
13788         to split_ti instead of three separate calls with single member arrays.
13789         (subti3 splitter): Ditto.
13790         (adddi3 splitter): Ditto with split_di.
13791         (subdi3 splitter): Ditto.
13792         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
13793         two separate calls with single member arrays.  Swap match_dup
13794         operands 1 and 2 to better fit into the array.
13795         (negdi2 splitter): Ditto with split_di.
13796         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
13797         two separate calls with single member arrays.  Swap match_dup operands
13798         6 and 7 to better fit into the array.
13799
13800 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
13801
13802         * config/i386/i386.c (sse_builtin_type): New.
13803         (bdesc_sse_args): Likewise.
13804         (bdesc_sse_3arg): Removed.
13805         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
13806         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
13807         IX86_BUILTIN_ROUNDPS.
13808         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
13809         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
13810         IX86_BUILTIN_ROUNDPS.
13811         (ix86_expand_sse_4_operands_builtin): Removed.
13812         (ix86_expand_sse_operands_builtin): New.
13813         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
13814         and CODE_FOR_sse4_1_roundps.
13815         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
13816         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
13817
13818 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
13819
13820         PR target/35907
13821         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
13822         regs before frame pop when needed.  If use_backchain_to_restore_sp
13823         then load backchain into a temp reg to restore vr and vrsave.  Add
13824         code to restore vr after frame pop if possible.
13825
13826 2008-04-17  Richard Guenther  <rguenther@suse.de>
13827
13828         * tree-vn.c (expressions_equal_p): Do not check type
13829         equality or compatibility before calling operand_equal_p.
13830         * fold-const.c (operand_equal_p): Check equivalence of
13831         integer constants before bailing out due to signedness or
13832         precision differences.
13833         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
13834         spurious differences in type qualification.  Ignore types
13835         for COMPONENT_REFs at all.
13836
13837 2008-04-17  Christian Bruel  <christian.bruel@st.com>
13838
13839         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
13840         msw_skip comparison.
13841
13842 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
13843
13844         PR c/35739
13845         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
13846         reg type.
13847
13848         PR tree-optimization/35899
13849         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
13850         rather than TREE_OPERAND.
13851
13852 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
13853
13854         PR target/35944
13855         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
13856         temporary registers.  Change operand predicate to general_operand.
13857         (remainderxf3): Ditto.
13858
13859 2008-04-16  Richard Guenther  <rguenther@suse.de>
13860
13861         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
13862         * tree-affine.c (aff_combination_expand): Look through some
13863         conversions.
13864
13865 2008-04-15  Doug Kwan  <dougkwan@google.com>
13866
13867         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
13868         for hex printing.
13869         * tree-pretty-print.c (dump_generic_node): Ditto.
13870         * final.c (output_addr_const): Ditto.
13871         * dwarf2out.c (output_cfi): Ditto.
13872         * c-pretty-print.c (pp_c_integer_constant): Ditto.
13873         * print-rtl.c (print_rtx): Ditto.
13874         * print-tree.c (print_node_brief, print_node): Ditto.
13875         * c-common.c (match_case_to_enum_1): Ditto.
13876         * sched-vis.c (print_value): Ditto.
13877         * config/i386/i386.c (print_operand): Cast to long unsigned int
13878         for hex printing.
13879
13880 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
13881         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
13882         MS Windows VirtualProtect function.
13883
13884 2008-04-15  Jan Hubicka  <jh@suse.cz>
13885
13886         * gengtype.c (write_root): Param_is argument is OK.
13887         * expr.c (expand_expr_real_1): Update call of get_exception_*.
13888         * function.h: Include varray.h
13889         (rtl_eh): New stucture based on except.c one.
13890         (call_site_record): New forward declaration and vector type.
13891         * calls.c (emit_call_1): Do not call
13892         note_current_region_may_contain_throw.
13893         * except.c (eh_status): Remove cur_region, try_region since they are
13894         unused.
13895         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
13896         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
13897         sjlj_fc, sjlj_exit_after to rth_eh in function.h.
13898         Remove call_site_data_used, call_site_data_size.
13899         Turn call_site_record into vector in function.h.
13900         (note_current_region_may_contain_throw): Remove.
13901         (get_exception_pointer, get_exception_filter): Do not take struct
13902         function argument; update.
13903         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
13904         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
13905         build_post_landing_pads, dw2_build_landing_pads,
13906         sjlj_assign_call_site_values, sjlj_mark_call_sites,
13907         sjlj_emit_function_enter, sjlj_emit_function_enter,
13908         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
13909         sjlj_build_landing_pads, finish_eh_generation,
13910         remove_exception_handler_label, remove_eh_handler,
13911         maybe_remove_eh_handler, add_reachable_handler,
13912         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
13913         add_action_record, collect_one_action_chain, add_call_site,
13914         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
13915         sjlj_output_call_site_table, output_function_exception_table,
13916         * except.h (note_current_region_may_contain_throw): Remove
13917         (get_exception_pointer, get_exception_filter): Do not take struct
13918         function argument.
13919         * Makefile.in (GTFILES): Put varargs before struct function.
13920
13921 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
13922
13923         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
13924         punt for STRING_CST.
13925         (get_constraint_for): Deal with STRING_CST here instead.
13926
13927 2008-04-15  Richard Guenther  <rguenther@suse.de>
13928
13929         * tree-ssa-propagate.c (substitute_and_fold): Substitute
13930         statements in a basic-block with a backward walk.  Do not
13931         substitute into dead statements but instead remove those.
13932
13933 2008-04-15  Richard Guenther  <rguenther@suse.de>
13934
13935         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
13936         to zero, thus disable creation of SFTs.
13937
13938 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
13939
13940         * tree-predcom.c (suitable_reference_p): Return false if the
13941         reference can throw.
13942
13943 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
13944
13945         PR c/35751
13946         * c-decl.c (finish_decl): If extern or static var has variable
13947         size, set TREE_TYPE (decl) to error_mark_node.
13948
13949 2008-04-15  Rafael Espindola  <espindola@google.com>
13950
13951         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
13952         variable arg1.
13953
13954 2008-04-15  Richard Guenther  <rguenther@suse.de>
13955
13956         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
13957         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
13958         (visit_reference_op_load): Do walk vuse-vdef chains on
13959         vn_reference_lookup.
13960         (visit_reference_op_store): But do not here.
13961         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
13962         vn_reference_lookup.
13963         (vn_lookup_with_vuses): But do so here.
13964
13965 2008-04-14  Ian Lance Taylor  <iant@google.com>
13966
13967         * fold-const.c (fold_overflow_warning): Remove assertion.
13968
13969 2008-04-15  Ben Elliston  <bje@au.ibm.com>
13970
13971         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
13972         temp1 local variables.
13973
13974 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
13975
13976         PR target/35661
13977         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
13978         ".text.unlikely" section as executable.
13979
13980 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
13981
13982         * config/ia64/ia64.c (rtx_needs_barrier): Handle
13983         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
13984         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
13985         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
13986         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
13987         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
13988         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
13989
13990 2008-04-14  Ian Lance Taylor  <iant@google.com>
13991
13992         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
13993         * fold-const.c (fold_comparison): If appropriate, test
13994         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
13995         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
13996         reassociating a pointer type.
13997         * doc/invoke.texi (Optimize Options): Document that
13998         -fstrict-overflow applies to pointer wraparound.
13999
14000 2008-04-13  Jan Hubicka  <jh@suse.cz>
14001
14002         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
14003
14004 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
14005
14006         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
14007         we are going to "save the world".
14008
14009 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
14010
14011         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
14012         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
14013         operand 0 constraint, not "=".
14014
14015 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
14016
14017         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
14018
14019 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
14020
14021         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
14022         of size of positions_needed * CHAR_BIT.
14023
14024 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
14025
14026         PR middle-end/35897
14027         * dse.c (store_info): Change positions_needed to unsigned
14028         HOST_WIDE_INT.
14029         (lowpart_bitmask): New.
14030         (record_store): Cast to unsigned HOST_WIDE_INT for
14031         positions_needed.  Assert width <= size of positions_needed *
14032         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
14033         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
14034         lowpart_bitmask to set mask.
14035
14036 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
14037
14038         * config/bfin/constraints.md: New file.
14039         * config/bfin/bfin.md: Include it.
14040         (adddi3): Use satisfies_constraint functions instead of the old macros.
14041         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
14042         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
14043         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
14044         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
14045         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
14046         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
14047         EXTRA_CONSTRAINT): Delete.
14048         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
14049         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
14050         of the old macros.
14051         * config/bfin/bfin.c: Include "tm-constrs.h".
14052         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
14053         Use satisfies_constraint functions instead of the old macros.
14054         * doc/md.texi (Blackfin Constraints): Update file name reference.
14055
14056 2008-04-11  Richard Guenther  <rguenther@suse.de>
14057
14058         PR tree-optimization/35869
14059         * tree-vrp.c (execute_vrp): Move switch statement update after
14060         jump threading.  Schedule another cfg cleanup run.
14061
14062 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
14063
14064         PR c/35744
14065         * attribs.c (decl_attributes): Return early on errorneous node.
14066
14067 2008-04-10  Oleg Ryjkov  <olegr@google.com>
14068
14069         * tree.h (struct tree_base): Added a new flag default_def_flag.
14070         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
14071
14072 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
14073
14074         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
14075
14076 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14077
14078         PR target/35768
14079         * pa.md: Define mode iterator P.  Define mode attribute dwc.
14080         (dcacheflush): Update pattern to use iterator P and attribute dwc.
14081         (icacheflush): Likewise.
14082         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
14083         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
14084
14085 2008-04-11  Ben Elliston  <bje@au.ibm.com>
14086
14087         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
14088
14089 2008-04-10  Rafael Espindola  <espindola@google.com>
14090
14091         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
14092         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
14093         (extract_range_from_expr): The same.
14094
14095 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
14096
14097         * config/mips/mips.md (GPR2): New mode iterator.
14098         (seq): Add comment.
14099         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
14100         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
14101         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
14102         Rewrite these to take two modes, the mode of comparison and the
14103         mode of the destination.
14104         * config/mips/mips.c (mips_expand_scc): Instead of having
14105         paradoxical subreg as destination, expand "narrowing" scc if mode
14106         of comparison is SI and target is requested in DI mode.
14107         (mips_emit_int_order_test): Update comment.  Make mode of
14108         comparison match CMP0 rather than TARGET.  When creating inverse
14109         target use mode of TARGET.
14110
14111 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
14112
14113         * gcov-dump.c (tag_summary): Only print summaries for the first
14114         GCOV_COUNTERS_SUMMABLE counters.
14115
14116 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
14117
14118         * config/i386/i386.md (absneg): New code iterator.
14119         (absnegprefix): New code attribute.
14120         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
14121         patterns using absneg code iterator.
14122         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
14123         using absneg code iterator.
14124         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
14125         *neg<mode>2 patterns using absneg code iterator.
14126         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
14127         *negextendsfdf2 patterns using absneg code iterator.
14128         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
14129         *negextendsfxf2 patterns using absneg code iterator.
14130         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
14131         *negextendsfdf2 patterns using absneg code iterator.
14132         * config/i386/sse.md (<code><mode>2): Macroize expander from
14133         abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
14134
14135 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
14136
14137         * config/s390/s390.h: Remove the remains of the recent search
14138         & replace action of current_function_outgoing_args_size.
14139
14140 2008-04-10  Ira Rosen  <irar@il.ibm.com>
14141
14142         PR tree-optimization/35821
14143         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
14144         NEW_STMT_LIST is not NULL.
14145
14146 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
14147
14148         PR libstdc++/35597
14149         * toplev.c (process_options): Remove -ffunction-sections debugging
14150         warning.
14151
14152 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
14153
14154         PR middle-end/PR28690
14155         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
14156         than gen_rtx_fmt_ee to perform more canonicalizations.
14157
14158 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14159
14160         PR driver/35665
14161         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
14162
14163 2008-04-09  Richard Guenther  <rguenther@suse.de>
14164
14165         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
14166         (dump_function_to_file): Dump function arguments with types.
14167
14168 2008-04-08  Richard Guenther  <rguenther@suse.de>
14169
14170         * fold-const.c (fold_widened_comparison): Do not allow
14171         sign-changes that change the result.
14172
14173 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
14174
14175         PR target/35839
14176         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
14177         kinds of indirect references.
14178
14179 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
14180
14181         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
14182         GNU Fortran language string.
14183
14184 2008-04-08  Rafael Espindola  <espindola@google.com>
14185
14186         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
14187         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
14188         * tree.h (tree_call_nonnegative_warnv_p): New.
14189
14190 2008-04-08  Jan Hubicka  <jh@suse.cz>
14191
14192         * function.c (free_after_compilation): Clear out regno_reg_rtx
14193         pointer.
14194
14195 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
14196
14197         Revert
14198         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
14199
14200         PR middle-end/PR28690
14201         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
14202         same precedence as REG_POINTER and MEM_POINTER operands.
14203
14204 2008-04-08  Richard Guenther  <rguenther@suse.de>
14205
14206         PR middle-end/35834
14207         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
14208         for adding index to base.
14209
14210 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
14211
14212         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
14213         (MINGW_ENABLE_EXECUTE_STACK): New.
14214         (IN_LIBGCC2): For libgcc include windows.h file for
14215         function declarations.
14216
14217 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
14218
14219         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
14220         and tem2 if tem1 is not a REG or MULT.
14221
14222 2008-04-08  Jan Hubicka  <jh@suse.cz>
14223
14224         * function.h (incomming_args): Break out of struct function.
14225         (function_subsections): Break out of struct function.
14226         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
14227         return_rtx and hard_reg_initial_vals from struct function.
14228         Kill inl_max_label_num.
14229         (current_function_pops_args, current_function_args_info,
14230         current_function_args_size, current_function_args_size,
14231         current_function_pretend_args_size,
14232         current_function_outgoing_args_size,
14233         current_function_internal_arg_pointer, current_function_return_rtx):
14234         Kill compatibility accestor macros.
14235         * builtins.c (expand_builtin_apply_args_1): Update.
14236         (expand_builtin_next_arg): Update.
14237         * df-scan.c (df_get_call_refs): Update.
14238         * dbxout.c (dbxout_function_end): Update.
14239         * dwarf2out.c (dwarf2out_switch_text_section): Update.
14240         (output_line_info): Update.
14241         (secname_for_decl): Update.
14242         (dwarf2out_var_location): Update.
14243         * function.c (free_after_compilation): Update.
14244         (assign_parm_find_stack_rtl): Update.
14245         (assign_parms): Update.
14246         (expand_dummy_function_end): Update.
14247         (expand_function_end): Update.
14248         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
14249         (expand_call): Update.
14250         (emit_library_call_value_1): Update.
14251         (store_one_arg): Update.
14252         * varasm.c (initialize_cold_section_name): Update.
14253         (unlikely_text_section): Update.
14254         (unlikely_text_section_p): Update.
14255         (assemble_start_function): Update.
14256         (assemble_end_function): Update.
14257         (default_section_type_flags): Update.
14258         (switch_to_section): Update.
14259         * integrate.c (set_decl_abstract_flags): Update.
14260         (get_hard_reg_initial_val): Update.
14261         (has_hard_reg_initial_val): Update.
14262         (allocate_initial_values): Update.
14263         * resource.c (init_resource_info): Update.
14264         * config/alpha/alpha.c (NUM_ARGS): Update.
14265         (direct_return): Update.
14266         (alpha_va_start): Update.
14267         (alpha_sa_size): Update.
14268         (alpha_initial_elimination_offset): Update.
14269         (alpha_expand_prologue): Update.
14270         (alpha_start_function): Update.
14271         (alpha_expand_epilogue): Update.
14272         (unicosmk_initial_elimination_offset):
14273         * config/alpha/alpha.md (call expander): Update.
14274         * config/s390/s390.c (s390_register_info): Update.
14275         (s390_register_info): Update.
14276         (s390_frame_info): Update.
14277         (s390_initial_elimination_offset): Update.
14278         (s390_build_builtin_va_list): Update.
14279         (s390_va_start): Update.
14280         * config/spu/spu.c (direct_return): Update.
14281         (spu_expand_prologue): Update.
14282         (spu_initial_elimination_offset): Update.
14283         (spu_build_builtin_va_list): Update.
14284         (spu_va_start): Update.
14285         * config/sparc/sparc.c (sparc_init_modes): Update.
14286         (sparc_compute_frame_size): Update.
14287         (function_value): Update.
14288         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
14289         * config/i386/i386.md (return expander): Update.
14290         * config/i386/i386.c (ix86_va_start): Update.
14291         (ix86_can_use_return_insn_p): Update.
14292         (ix86_compute_frame_layout): Update.
14293         (ix86_expand_epilogue): Update.
14294         * config/sh/sh.c (output_stack_adjust): Update.
14295         (calc_live_regs): Update.
14296         (sh_expand_prologue): Update.
14297         (sh_builtin_saveregs): Update.
14298         (sh_va_start): Update.
14299         (initial_elimination_offset): Update.
14300         (sh_allocate_initial_value): Update.
14301         (sh_function_ok_for_sibcall): Update.
14302         (sh_get_pr_initial_val): Update.
14303         * config/sh/sh.md (return expander): Update.
14304         * config/avr/avr.c (frame_pointer_required_p): UPdate.
14305         * config/crx/crx.c (crx_compute_frame): UPdate.
14306         (crx_initial_elimination_offset): UPdate.
14307         * config/xtensa/xtensa.c (compute_frame_size): Update
14308         (xtensa_builtin_saveregs): Update.
14309         (xtensa_va_start): Update.
14310         (order_regs_for_local_alloc): Update.
14311         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
14312         (xstormy16_expand_builtin_va_start): Update.
14313         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
14314         * config/m68hc11/m68hc11.md (return expanders): Update.
14315         * config/m68hc11/m68hc11.c (expand_prologue): Update.
14316         (expand_epilogue): Update.
14317         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
14318         (cris_simple_epilogue): Update.
14319         (cris_expand_prologue): Update.
14320         (cris_expand_epilogue): Update.
14321         * config/iq2000/iq2000.c (iq2000_va_start): Update.
14322         (compute_frame_size): Update.
14323         * config/mt/mt.c (mt_compute_frame_size): Update.
14324         * config/mn10300/mn10300.c (expand_prologue): Update.
14325         (expand_epilogue): Update.
14326         (initial_offset): Update.
14327         (mn10300_builtin_saveregs):
14328         * config/mn10300/mn10300.md (return expander): Update.
14329         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
14330         (ia64_initial_elimination_offset): Update.
14331         (ia64_initial_elimination_offset): Update.
14332         (ia64_expand_prologue): Update.
14333         * config/m68k/m68k.md (return expander): Update.
14334         * config/rs6000/rs6000.c (rs6000_va_start): Update.
14335         (rs6000_stack_info): Update.
14336         * config/mcore/mcore.c (layout_mcore_frame): Update.
14337         (mcore_expand_prolog): Update.
14338         * config/arc/arc.c (arc_compute_frame_size): Update.
14339         * config/score/score3.c (score3_compute_frame_size): Update.
14340         * config/score/score7.c (score7_compute_frame_size): Update.
14341         * config/arm/arm.c (use_return_insn): Update.
14342         (thumb_find_work_register): Update.
14343         (arm_compute_save_reg_mask): Update.
14344         (arm_output_function_prologue): Update.
14345         (arm_output_epilogue): Update.
14346         (arm_size_return_regs): Update.
14347         (arm_get_frame_offsets): Update.
14348         (arm_expand_prologue): Update.
14349         (thumb_exit): Update.
14350         (thumb_unexpanded_epilogue): Update.
14351         (thumb1_output_function_prologue): Update.
14352         * config/pa/pa.md (return expander): Update.
14353         * config/pa/pa.c (compute_frame_size): Update.
14354         (hppa_builtin_saveregs): Update.
14355         * config/mips/mips.c (mips_va_start): Update.
14356         (mips16_build_function_stub): Update.
14357         (mips_compute_frame_info): Update.
14358         (mips_restore_gp): Update.
14359         (mips_output_function_prologue): Update.
14360         (mips_expand_prologue): Update.
14361         * config/v850/v850.c (compute_frame_size): Update.
14362         (expand_prologue): * config/mmix/mmix.c (along): update.
14363         (mmix_initial_elimination_offset): update.
14364         (mmix_reorg): update.
14365         (mmix_use_simple_return): update.
14366         (mmix_expand_prologue): update.
14367         (mmix_expand_epilogue): Update.
14368         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
14369         (emit_link_insn): Update.
14370
14371 2008-04-08  Anatoly Sokolov <aesok@post.ru>
14372
14373         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
14374         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
14375         instructions.
14376         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
14377         atmega103 device.
14378
14379 2008-04-07  Jan Hubicka  <jh@suse.cz>
14380
14381         * function.h (rtl): Rename to x_rtl.
14382         (crtl): New define.
14383         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
14384         frame_offset, stack_check_probe_note, arg_pointer_save_area,
14385         used_temp_slots avail_temp_slots, temp_slot_level,
14386         nonlocal_goto_handler_labels): Update accesstors.
14387         (rtl): New global variable.
14388         (struct function): Move some fileds to rtl_data.
14389         (get_arg_pointer_save_area): Update prototype.
14390         * builtins.c (expand_builtin_setjmp_receiver): Update call of
14391         get_arg_pointer_save_area.
14392         * expr.c (init_expr): Update
14393         * function.c (get_frame_size): Update
14394         (assign_stack_local): Update
14395         (expand_function_end): Update.
14396         (get_art_pointer_save_area): Update
14397         * function.h
14398         * emit-rtl.c (rtl): Declare.
14399         (regno_reg_rtx): Declare.
14400         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
14401         Update.
14402         (gen_reg_rtx): Update.
14403         * varasm.c (n_deferred_constatns): Update accestor.
14404         (init_varasm_status): Do not allocate varasm_status.
14405         (force_const_mem, get_pool_size, output_constant_pool): Update.
14406         * stmt.c (force_label_rtx): Do not use x_ prefixes.
14407         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
14408         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
14409         * sparc/sparc.h (INIT_EXPANDERS): Update.
14410         * ia64/ia64.h (INIT_EXPANDERS): Update.
14411
14412 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
14413
14414         * reload.c (push_secondary_reload): Add missing break to for loop.
14415
14416 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
14417
14418         PR middle-end/PR28690
14419         * rtlanal.c: Update copyright years.
14420         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
14421         as REG_POINTER and MEM_POINTER operands.
14422         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
14423         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
14424         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
14425         * gcse.c: Update copyright years.
14426         (pre_delete): Call gen_reg_rtx_and_attrs.
14427         (hoist_code): Likewise.
14428         (build_store_vectors): Likewise.
14429         (delete_store): Likewise.
14430         * loop-invariant.c (move_invariant_reg): Likewise.
14431         Update copyright years.
14432
14433 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
14434
14435         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
14436         control string instead of quoted.
14437
14438 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
14439
14440         * doc/rtl.texi: Rewrite of subreg section.
14441
14442 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
14443
14444         PR/35842
14445         * config/i386/i386.c (legitimize_pic_address): Add treating
14446         of dllimport SYM_REF's.
14447         (legitimize_dllimport_symbol): Add prototype.
14448
14449 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
14450
14451         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
14452         reference in constructor with non self-referential type.
14453
14454 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
14455
14456         Removal of Return with Depressed Stack Pointer support
14457         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
14458         (ECF_SP_DEPRESSED): Likewise.
14459         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
14460         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
14461         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
14462         (expand_call): Do not test ECF_SP_DEPRESSED.
14463         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
14464         * function.c (keep_stack_depressed): Delete.
14465         (handle_epilogue_set): Likewise.
14466         (update_epilogue_consts): Likewise.
14467         (emit_equiv_load): Likewise.
14468         (thread_prologue_and_epilogue_insns): Remove support for Return with
14469         Depressed Stack Pointer.
14470         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
14471
14472 2008-04-06  Richard Guenther  <rguenther@suse.de>
14473
14474         PR tree-optimization/35400
14475         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
14476         information from SSA_NAMEs.
14477
14478 2008-04-06  Anatoly Sokolov <aesok@post.ru>
14479
14480         * config/avr/avr.h (avr_mega_p): Remove declaration.
14481         (AVR_MEGA): Remove macro.
14482         * config/avr/avr.c (avr_mega_p): Remove variable.
14483         (avr_override_options): Remove inicializion of avr_mega_p.
14484         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
14485         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
14486         (avr_jump_mode): (Ditto.).
14487         (avr_output_progmem_section_asm_op): (Ditto.).
14488         (avr_asm_init_sections): (Ditto.).
14489         (avr_asm_init_sections): (Ditto.).
14490         (avr_rtx_costs): (Ditto.).
14491         * config/avr/avr.md: (Ditto.).
14492         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
14493         '__AVR_MEGA__'.
14494
14495 2008-04-06  Richard Guenther  <rguenther@suse.de>
14496
14497         PR tree-optimization/35842
14498         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
14499         is_gimple_invariant_address.
14500
14501 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
14502
14503         * gcc.c (default_compilers): Sync Fortran extensions list with
14504         that in fortran/lang-specs.h.
14505         * doc/invoke.texi: Likewise.
14506         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
14507         * dwarf2out.c (gen_compile_unit_die): Likewise.
14508
14509 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
14510
14511         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
14512
14513 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
14514
14515         PR target/12329
14516         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
14517         attribute is used for nested functions.
14518
14519 2008-04-05  Jan Hubicka  <jh@suse.cz>
14520
14521         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
14522
14523         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
14524         letter argument.
14525         (dump_files): Update.
14526         (enable_rtl_dump_file): Do not accept letter argument.
14527         * tree-pass.h (dump_file_info): Remove letter argument.
14528         * toplev.c (decode_d_option): Update -da handling.
14529         * toplev.h (enable_rtl_dump_file): Update prototype.
14530         * passes.c (register_one_dump_file): Do not accept IPA argument; work
14531         it out based on pass type.
14532         (register_dump_files_1): Likewise.
14533         (init_optimization_passes): Update register_one_dump_file calls.
14534         (execute_one_pass): Sanity check that IPA passes are called at IPA
14535         level and RTL passes at RTL level.
14536         (execute_pass_list): IPA pass can not be after or subpass of
14537         GIMPLE/RTL pass.
14538         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
14539         disallov RTL subpasses of IPA subpasses.
14540
14541 2008-04-05  Ben Elliston  <bje@au.ibm.com>
14542
14543         * tree-cfg.c (need_fake_edge_p): Return false for calls to
14544         builtins that return exactly once and do not throw. Cache call to
14545         call_expr_flags.
14546
14547 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
14548
14549         PR rtl-optimization/34916
14550         PR middle-end/35519
14551         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
14552         between instruction pairs.
14553
14554 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
14555
14556         * doc/invoke.texi: Document -mbitops for SH.
14557         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
14558         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
14559         * config/sh/sh.c (print_operand): Add %t operand code.
14560         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
14561         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
14562         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
14563         (extendqihi2): Likewise.
14564         (movqi_i): Likewise.
14565         (insv): Use bset, bclr and bst instructions for SH2A if possible.
14566         (extv): Use bld instruction for SH2A if possible.
14567         (extzv): Likewise.
14568         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
14569         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
14570         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
14571         (bset.b, bclr.b): Define peepholes.
14572         * config/sh/sh.opt (mbitops): New option.
14573
14574 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
14575
14576         PR target/35620
14577         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
14578         and view convert expression.
14579
14580 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
14581
14582         PR target/35364
14583         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
14584
14585 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
14586
14587         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
14588
14589         * config/i386/cpuid.h (bit_AES): New.
14590         (bit_PCLMUL): Likewise.
14591
14592         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
14593         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
14594         SSE2 if AES or PCLMUL is enabled.
14595         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
14596         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
14597         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
14598         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
14599         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
14600         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
14601         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
14602         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
14603         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
14604         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
14605         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
14606         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
14607         __builtin_ia32_aeskeygenassist128 and
14608         __builtin_ia32_pclmulqdq128.
14609         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
14610         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
14611         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
14612
14613         * config/i386/i386.h (TARGET_AES): New.
14614         (TARGET_PCLMUL): Likewise.
14615         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
14616
14617         * config/i386/i386.md (UNSPEC_AESENC): New.
14618         (UNSPEC_AESENCLAST): Likewise.
14619         (UNSPEC_AESDEC): Likewise.
14620         (UNSPEC_AESDECLAST): Likewise.
14621         (UNSPEC_AESIMC): Likewise.
14622         (UNSPEC_AESKEYGENASSIST): Likewise.
14623         (UNSPEC_PCLMUL): Likewise.
14624
14625         * config/i386/i386.opt (maes): New.
14626         (mpclmul): Likewise.
14627
14628         * config/i386/sse.md (aesenc): New pattern.
14629         (aesenclast): Likewise.
14630         (aesdec): Likewise.
14631         (aesdeclast): Likewise.
14632         (aesimc): Likewise.
14633         (aeskeygenassist): Likewise.
14634         (pclmulqdq): Likewise.
14635
14636         * config/i386/wmmintrin.h: New.
14637
14638         * doc/extend.texi: Document AES and PCLMUL built-in function.
14639
14640         * doc/invoke.texi: Document -maes and -mpclmul.
14641
14642 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
14643
14644         * function.c (free_after_parsing): Replace with
14645         cxx_push_function_context from C++ front-end.
14646         (allocate_struct_function): Don't call langhook.
14647         * langhooks.h (struct lang_hooks_for_functions): Delete.
14648         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
14649         member "function".
14650         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
14651         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
14652         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
14653         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
14654         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
14655         remove LANG_HOOKS_FUNCTION_INITIALIZER.
14656         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
14657
14658         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
14659         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
14660
14661 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
14662
14663         PR c/35440
14664         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
14665         for all types.
14666
14667 2008-04-04  Richard Guenther  <rguenther@suse.de>
14668
14669         PR middle-end/35823
14670         * fold-const.c (optimize_minmax_comparison): Use the correct
14671         type for the constant in the simplified comparison.
14672
14673 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
14674
14675         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
14676         Pass L2 size as "--param l2-cache-size" to the compiler.
14677         (decode_l2_cache): New function to decode L2 cache parameters using
14678         0x8000006 extended cpuid function.
14679         (detect_caches_amd): Determine parameters of L2 cache using
14680         decode_l2_caches function.
14681         (decode_caches_intel): Decode L2 cache parameters.
14682         (detect_caches_intel): Determine L2 cache parameters using
14683         decode_caches_intel and decode_l2_caches functions.
14684
14685 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
14686
14687         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
14688         secondary input reload for subword loads from the constant pool.
14689
14690 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
14691
14692         PR target/35713
14693         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
14694           constants of the appropriate size for runtime calculations.
14695
14696         PR c/35712
14697         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
14698           decimal-float literal constant zero.
14699
14700 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
14701
14702         PR c/35738
14703         * c-parser.c (c_parser_omp_atomic): Call
14704         default_function_array_conversion on the RHS.
14705
14706         PR middle-end/35818
14707         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
14708         call is_variable_sized if decl has incomplete type.
14709
14710 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
14711
14712         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
14713
14714 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
14715
14716         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
14717         iterators.
14718         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
14719         (sgt<u>): Merge sgt and sgtu into new expander.
14720         (sgt, sgtu): Remove expanders.
14721         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
14722         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
14723         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
14724         *sgtu_<mode>_mips16 into new pattern.
14725         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
14726         (sge<u>): Merge sge and sgeu into new expander.
14727         (sge, sgeu): Remove expanders.
14728         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
14729         new pattern.
14730         (*sge_<mode>, second *sge_<mode>): Remove patterns.
14731         (slt<u>): Merge slt and sltu into new expander.
14732         (slt, sltu): Remove expanders.
14733         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
14734         (*slt_<mode>, *sltu_<mode>): Remove patterns.
14735         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
14736         *sltu_<mode>_mips16 into new pattern.
14737         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
14738         (sle<u>): Merge sle and sleu into new expander.
14739         (sle, sleu): Remove expanders.
14740         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
14741         (*sle_<mode>, *sleu_<mode>): Remove patterns.
14742         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
14743         *sleu_<mode>_mips16 into new pattern.
14744         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
14745
14746 2008-04-03  Jan Hubicka  <jh@suse.cz>
14747
14748         PR tree-optimization/35795
14749         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
14750         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
14751         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
14752         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
14753         * score/score3.c (score3_output_mi_thunk): Likewise.
14754         * score/score7.c (score7_output_mi_thunk): Likewise.
14755         * mips/mips.c (mips_output_mi_thunk): Likewise.
14756
14757 2008-04-03  Richard Guenther  <rguenther@suse.de>
14758
14759         * tree-vrp.c (extract_range_from_unary_expr): Handle all
14760         conversions.  Simplify code.
14761
14762 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
14763
14764         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
14765
14766 2008-04-03  Tom Tromey  <tromey@redhat.com>
14767             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14768
14769         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
14770         * config/bfin/t-bfin-linux (generated_files): Add
14771         linux-sysroot-suffix.h.
14772         * doc/install.texi (Prerequisites): Require make 3.80.
14773         * doc/sourcebuild.texi (Front End Directory): Document new
14774         variable.
14775         * Makefile.in (generated_files): New variable.
14776         (ALL_HOST_OBJS): New variable.
14777         ($(ALL_HOST_OBJS)): New target.
14778
14779 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
14780
14781         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
14782         (remap_block): Call id->transform_lang_insert_block instead
14783         of langhook.
14784         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
14785         Set id.transform_lang_insert_block to NULL.
14786         (clone_body): Move to cp/optimize.c
14787         * tree-inline.h (struct copy_body_data): Change
14788         transform_lang_insert_block to function pointer.
14789         (copy_generic_body, copy_decl_no_change): Export.
14790         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
14791         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
14792         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
14793
14794         * c-tree.h (insert_block): Kill.
14795         * c-decl.c (insert_block): Kill.
14796
14797 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
14798
14799         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
14800         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
14801         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
14802         argument.
14803         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
14804         argument, call {push,pop}_function_context from here.
14805         * c-parser.c: Use c_{push,pop}_function_context.
14806
14807         * function.c (push_function_context_to): Move meat ...
14808         (push_function_context): ... here.  Simplify.
14809         * function.c (pop_function_context_from): Move meat ...
14810         (pop_function_context): ... here.  Simplify.
14811         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
14812         leave_nested).
14813         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
14814         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
14815         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
14816         * tree.h (push_function_context_to, pop_function_context_from): Remove.
14817
14818 2008-04-03  Ben Elliston  <bje@au.ibm.com>
14819
14820         * expmed.c (extract_force_align_mem_bit_field): Remove.
14821
14822 2008-04-03  Richard Guenther  <rguenther@suse.de>
14823
14824         PR middle-end/35800
14825         * expr.h (try_casesi): Adjust prototype.
14826         * expr.c (try_casesi): Take fallback label as extra parameter.
14827         Use that for gen_casesi if default_label is NULL.
14828         * stmt.c (expand_case): Pass fallback label to try_casesi,
14829         make sure to fill gaps with a fallback label if default_label
14830         is not present.
14831
14832 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
14833
14834         PR target/35801
14835         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
14836
14837 2008-04-03  Ben Elliston  <bje@au.ibm.com>
14838
14839         * expmed.c (extract_split_bit_field): Remove if (0) code.
14840         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
14841         (do_ds_constraint): Likewise.
14842
14843 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
14844
14845         * doc/cppopts.texi (-dU): Document.
14846         * c-common.h (flag_dump_macros): Update comment.
14847         * c-opts.c (handle_OPT_d): Handle -dU.
14848         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
14849         dump_queued_macros, cb_used_define, cb_used_undef): New.
14850         (init_pp_output): Handle -dU.
14851         (cb_line_change): Call dump_queued_macros.
14852         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
14853
14854 2008-04-02  Anatoly Sokolov <aesok@post.ru>
14855
14856         * config/avr/predicates.md (io_address_operand): New predicate.
14857         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
14858         * config/avr/avr.c (avr_io_address_p): Remove function.
14859         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
14860         'avr_io_address_p' function.
14861         (out_movhi_r_mr): (Ditto.).
14862         (out_movqi_mr_r): (Ditto.).
14863         (out_movhi_mr_r): (Ditto.).
14864         (avr_address_cost): (Ditto.).
14865
14866 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
14867
14868         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
14869         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
14870         in 32bit mode when XMM registers are available to avoid store
14871         forwarding stalls.
14872         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
14873         corresponding post-reload splitters.
14874
14875 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
14876
14877         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
14878         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
14879         __builtin_ia32_roundss.
14880         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
14881         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
14882         __builtin_ia32_roundss.
14883         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
14884         IX86_BUILTIN_SHUFPD here.
14885
14886 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
14887
14888         * config/i386/i386.md (plogic): New.
14889         (plogicprefix): Likewise.
14890
14891         * config/i386/mmx.md (mmx_<code><mode>3): New.
14892         (mmx_and<mode>3): Removed.
14893         (mmx_ior<mode>3): Likewise.
14894         (mmx_xor<mode>3): Likewise.
14895
14896         * config/i386/sse.md (<code><mode>3): New.
14897         (*<code><mode>3): Likewise.
14898         (*<code><mode>3): Likewise.
14899         (<code><mode>3): Likewise.
14900         (*sse_<code><mode>3): Likewise.
14901         (*sse2_<code><mode>3): Likewise.
14902         (<code>tf3): Likewise.
14903         (*<code>tf3): Likewise.
14904         (and<mode>3): Likewise.
14905         (*and<mode>3): Likewise.
14906         (ior<mode>3): Removed.
14907         (*ior<mode>3): Likewise.
14908         (xor<mode>3): Likewise.
14909         (*xor<mode>3): Likewise.
14910         (*and<mode>3): Likewise.
14911         (*ior<mode>3): Likewise.
14912         (*xor<mode>3): Likewise.
14913         (and<mode>3): Likewise.
14914         (*sse_and<mode>3): Likewise.
14915         (*sse2_and<mode>3): Likewise.
14916         (andtf3): Likewise.
14917         (*andtf3): Likewise.
14918         (ior<mode>3): Likewise.
14919         (*sse_ior<mode>3): Likewise.
14920         (*sse2_ior<mode>3): Likewise.
14921         (iortf3): Likewise.
14922         (*iortf3): Likewise.
14923         (xor<mode>3): Likewise.
14924         (*sse_xor<mode>3): Likewise.
14925         (*sse2_xor<mode>3): Likewise.
14926         (xortf3): Likewise.
14927         (*xortf3): Likewise.
14928
14929 2008-04-02  Richard Guenther  <rguenther@suse.de>
14930
14931         PR tree-optimization/14495
14932         PR tree-optimization/34793
14933         * tree-vrp.c (struct switch_update): New structure.
14934         (to_remove_edges, to_update_switch_stmts): New VECs.
14935         (simplify_switch_using_ranges): New function.  Remove not taken
14936         case labels and edges.
14937         (simplify_stmt_using_ranges): Call it.
14938         (identify_jump_threads): Mark edges we have queued for removal
14939         so we don't thread them.
14940         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
14941         case label vector.
14942         * tree-cfg.c (group_case_labels): Deal with missing default label.
14943         (tree_verify_flow_info): Allow missing default label.
14944         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
14945         (emit_case_nodes): Likewise.
14946         (expand_case): Do not rely on the default label to be present.
14947         * expr.c (try_casesi): Deal with NULL default_label.
14948         (do_tablejump): Likewise.
14949
14950 2008-04-02  Richard Guenther  <rguenther@suse.de>
14951
14952         PR tree-optimization/14495
14953         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
14954         SWITCH_EXPR here ...
14955         (vrp_visit_switch_stmt): ... but here (new function).
14956         (find_case_label_index): New helper function.
14957         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
14958
14959 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
14960
14961         * fwprop.c: Fix ISO-C99ism.
14962
14963 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
14964
14965         PR bootstrap/35752
14966         * Makefile.in (objdir): Set it here.
14967         * configure.ac: Not here.  Find dynamic linker characteristics.
14968         * exec-tool.in: Use them.
14969         * aclocal.m4: Regenerate.
14970         * configure: Regenerate.
14971
14972 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
14973
14974         * expr.c (expand_var): Delete it.
14975         * expr.h (expand_var): Delete prototype.
14976         * function.c (expand_function_start): Use expand_decl instead.
14977         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
14978         langhook.
14979
14980 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
14981
14982         PR rtl-optimization/35542
14983         * fwprop.c (forward_propagate_and_simplify): Replace
14984         loc_reg_mentioned_in_p with reg_mentioned_p.
14985
14986 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
14987
14988         PR rtl-optimization/35281
14989         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
14990         (propagate_rtx_1): Handle PR_HANDLE_MEM.
14991         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
14992         (varying_mem_p): Move above propagate_rtx.
14993         (all_uses_available_at): Do not check MEMs.
14994
14995 2008-04-02  Rafael Espindola  <espindola@google.com>
14996
14997         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
14998         (register_edge_assert_for_2): Split the cond argument.
14999         (register_edge_assert_for_1): Adjust for the change in
15000         register_edge_assert_for_2.
15001         (register_edge_assert_for): Split the cond argument.
15002         (find_switch_asserts): Adjust for the change in
15003         register_edge_assert_for.
15004
15005 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
15006
15007         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
15008         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
15009         offsets for 64-bit mingw.
15010         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
15011         abi for x86_64-pc-mingw.
15012
15013 2008-04-02  Richard Guenther  <rguenther@suse.de>
15014
15015         * tree-vrp.c (extract_range_from_assert): Make sure to not
15016         produce range min/max with TREE_OVERFOW set.
15017         If merging a anti-range and a range keep the anti-range if
15018         the range covers all values of the type.
15019         (register_edge_assert_for_2): Only allow sign-changing
15020         conversions in detecting canonical range checks.  Also
15021         register an assert for the unsigned name if useful.
15022
15023         PR tree-optimization/35787
15024         * tree-vrp.c (vrp_val_max): New function.
15025         (vrp_val_min): Likewise.
15026         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
15027         (vrp_val_is_min): Likewise.
15028         (supports_overflow_infinity): Use vrp_val_{min,max}.
15029         (negative_overflow_infinity): Likewise.
15030         (positive_overflow_infinity): Likewise.
15031         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
15032         (is_positive_overflow_infinity): Likewise.
15033         (is_overflow_infinity): Likewise.
15034         (avoid_overflow_infinity): Use vrp_val_{min,max} and
15035         vrp_val_is_{min,max}.
15036         (set_and_canonicalize_value_range): Canonicalize anti-ranges
15037         to ranges if possible.  Avoid empty ranges.
15038
15039 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15040
15041         PR middle-end/35705
15042         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
15043         the expression is a function address.
15044
15045 2008-04-01  George Helffrich  <george@gcc.gnu.org>
15046
15047         PR fortran/35154, fortran/23057
15048         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
15049         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
15050         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
15051         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
15052         in common.
15053         (dbxout_syms): Check for COMMON-based symbol and wrap in
15054         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
15055         in bracket for efficiency.
15056
15057         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
15058         using DW_TAG_common_block + member offset.
15059         (add_pubname_string): New function.
15060         (dw_expand_expr): New function to find block name and offset for
15061         COMMON var.
15062         (common_check): New function to check whether symbol in Fortran COMMON.
15063         (gen_variable_die): If COMMON, use DW_TAG_common_block.
15064
15065 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
15066
15067         PR c/35436
15068         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
15069
15070 2008-04-02  Ben Elliston  <bje@au.ibm.com>
15071
15072         * config/v850/v850.md (casesi): Remove if (0) code.
15073         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
15074         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
15075
15076 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
15077
15078         * config/i386/i386.md (rex64suffix): New mode attribute.
15079         (floathi<mode>2): Disable expander for SSE math.
15080         (*floathi<mode>2_1): New insn insn_and_split pattern.
15081         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
15082         corresponding post-reload splitters.
15083         (*floathi<mode>2_i387): New macroized insn pattern.
15084         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
15085         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
15086         insn_and_split pattern.
15087         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
15088         New macroized instruction patterns and corresponding post-reload
15089         splitters.
15090         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
15091         and corresponding post-reload splitters.
15092         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
15093         New macroized instruction patterns.
15094         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
15095         macroized instruction patterns and corresponding post-reload splitters.
15096         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
15097         corresponding post-reload splitters.
15098         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
15099         New macroized instruction patterns.
15100         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
15101         corresponding post-reload splitters.
15102         (*floatsi<mode>2_i387): New macroized instruction patterns.
15103
15104 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
15105
15106         * config/i386/i386.md (smaxmin): New.
15107         (umaxmin): Likewise.
15108         (maxminiprefix): Likewise.
15109         (maxminfprefix): Likewise.
15110         (<code><mode>3): Likewise.
15111         (smin<mode>3): Removed.
15112         (smax<mode>3): Likewise.
15113
15114         * config/i386/mmx.md (mmx_<code>v2sf3): New.
15115         (mmx_<code>v4hi3): Likewise.
15116         (mmx_<code>v8qi3): Likewise.
15117         (mmx_smaxv2sf3): Removed.
15118         (mmx_sminv2sf3): Likewise.
15119         (mmx_umaxv8qi3): Likewise.
15120         (mmx_smaxv4hi3): Likewise.
15121         (mmx_uminv8qi3): Likewise.
15122         (mmx_sminv4hi3): Likewise.
15123
15124         * config/i386/sse.md (<addsub><mode>3): New.
15125         (*<addsub><mode>3): Likewise.
15126         (<sse>_vm<addsub><mode>3): Likewise.
15127         (<maxmin><mode>3): Likewise.
15128         (*<maxmin><mode>3_finite): Likewise.
15129         (*<maxmin><mode>3): Likewise.
15130         (<sse>_vm<maxmin><mode>3): Likewise.
15131         (sse3_h<addsub>v4sf3): Likewise.
15132         (sse3_h<addsub>v2df3): Likewise.
15133         (<maxmin>v16qi3): Likewise.
15134         (*<maxmin>v16qi3): Likewise.
15135         (<maxmin>v8hi3): Likewise.
15136         (*<maxmin>v8hi3): Likewise.
15137         (*sse4_1_<maxmin><mode>3): Likewise.
15138         (*sse4_1_<maxmin><mode>3): Likewise.
15139         (add<mode>3): Removed.
15140         (*add<mode>3): Likewise.
15141         (<sse>_vmadd<mode>3): Likewise.
15142         (sub<mode>3): Likewise.
15143         (*sub<mode>3): Likewise.
15144         (<sse>_vmsub<mode>3): Likewise.
15145         (smin<mode>3): Likewise.
15146         (*smin<mode>3_finite): Likewise.
15147         (*smin<mode>3): Likewise.
15148         (<sse>_vmsmin<mode>3): Likewise.
15149         (smax<mode>3): Likewise.
15150         (*smax<mode>3_finite): Likewise.
15151         (*smax<mode>3): Likewise.
15152         (<sse>_vmsmax<mode>3): Likewise.
15153         (sse3_haddv4sf3): Likewise.
15154         (sse3_haddv2df3): Likewise.
15155         (sse3_hsubv4sf3): Likewise.
15156         (sse3_hsubv2df3): Likewise.
15157         (umaxv16qi3): Likewise.
15158         (*umaxv16qi3): Likewise.
15159         (smaxv8hi3): Likewise.
15160         (*smaxv8hi3): Likewise.
15161         (*sse4_1_smax<mode>3): Likewise.
15162         (*sse4_1_umax<mode>3): Likewise.
15163         (uminv16qi3): Likewise.
15164         (*uminv16qi3): Likewise.
15165         (sminv8hi3): Likewise.
15166         (*sminv8hi3): Likewise.
15167         (*sse4_1_smin<mode>3): Likewise.
15168         (*sse4_1_umin<mode>3): Likewise.
15169
15170 2008-04-01  Rafael Espindola  <espindola@google.com>
15171
15172         * tree-cfg.c (verify_expr): remove in_phi.
15173         (verify_stmt): Don't call walk_tree with verify_expr. Use
15174         is_gimple_min_invariant instead of is_gimple_val.
15175
15176 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
15177
15178         * doc/include/gpl_v3.texi: Update for manpage generation.
15179         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
15180         gpl.texi.
15181         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
15182         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
15183         gpl_v3.texi instead of gpl.texi.
15184         (gpl.pod): New.
15185
15186 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
15187
15188         PR pch/13675
15189         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
15190
15191 2008-04-01  Rafael Espindola  <espindola@google.com>
15192
15193         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
15194         (extract_code_and_val_from_cond): Use
15195         extract_code_and_val_from_cond_with_ops.
15196
15197 2008-04-01  Jan Hubicka  <jh@suse.cz>
15198
15199         * function.c (free_after_compilation): Free epilogue_delay_list.
15200         (prepare_function_start): Assert that previous compilation was freed.
15201
15202 2008-04-01  Jan Hubicka  <jh@suse.cz>
15203             Jim Wilson  <wilson@tuliptree.org>
15204             Andreas Tobler <andreast@gcc.gnu.org>
15205
15206         PR middle-end/35781
15207         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
15208         rtl.emit instead cfun->emit.
15209         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
15210         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
15211
15212 2008-04-01  Ben Elliston  <bje@au.ibm.com>
15213
15214         * doc/c-tree.texi (Function Basics): Fix grammatical error.
15215
15216 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
15217
15218         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
15219         New options
15220         (fprofile-use): Add var flag_profile_use
15221         * coverage.c (coverage_begin_output): Do not open a gcno file for
15222         output only if -ftest-coverage is set.
15223         Do not add getpwd() to gcda file path.
15224         (build_gcov_info): Check the new flag
15225         flag_profile_datafile_relative_path.
15226         (coverage_init): Use profile_data_prefix.
15227         Read profile counter only if flag_profile_use is set.
15228         * opts.c (common_handle_option): New option fprofile-use=,
15229         fprofile-dir=, fprofile-generate=.
15230         * toplev.c (profile_data_prefix): New variable definition.
15231         * toplev.h (profile_data_prefix): New declaration.
15232         * doc/invoke.tex (Option Summary, Optimization Options):
15233         Add new options.
15234
15235 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
15236
15237         * varasm.c (output_constant_pool_1): In LABEL_REF check,
15238         use tmp consistently.
15239
15240         PR target/35695
15241         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
15242         * config/ia64/ia64.c (rtx_needs_barrier): Handle
15243         UNSPEC_FR_RECIP_APPROX_RES.
15244         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
15245
15246 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
15247
15248         PR c/35750
15249         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
15250
15251 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15252
15253         PR middle-end/30186
15254         * fold-const.c (fold_indirect_ref_1): Support accessing non first
15255         element of the vector via a pointer.
15256
15257 2008-03-31  Ian Lance Taylor  <iant@google.com>
15258
15259         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
15260
15261 2008-03-31  Jan Hubicka  <jh@suse.cz>
15262
15263         * builtins.c (expand_builtin_setjmp_receiver): Update call of
15264         get_arg_pointer_save_area.
15265         * expr.c (init_expr): Just clear out rtl.expr.
15266         * function.c (free_after_compilation): Clear out whole RTL structure.
15267         (get_func_frame_size): Merge into ...
15268         (get_frame_size): ... this one.
15269         (assign_stack_local_1): Merge into ...
15270         (assign_stack_local): ... this one.
15271         (expand_function_end): Update call of get_arg_pointer_save_area.
15272         (get_art_pointer_save_area): Remove cfun argument.
15273         * function.h (emit_status): regno_pointer_align does not need length
15274         attribute. Move x_regno_reg_rtx to ...
15275         (regno_reg_rtx): ... new global array.
15276         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
15277         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
15278         apply_args_value, forced_labels, stack_pointer_delta):
15279         Update accestors.
15280         (struct varasm_status): Move here from varasm.c
15281         (struct rtl_data): New. Move here some fields from struct function.
15282         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
15283         frame_offset, stack_check_probe_note, arg_pointer_save_area,
15284         used_temp_slots avail_temp_slots, temp_slot_level,
15285         nonlocal_goto_handler_labels): Update accesstors.
15286         (rtl): New global variable.
15287         (struct function): Move some fileds to rtl_data.
15288         (get_arg_pointer_save_area): Update prototype.
15289         * emit-rtl.c (rtl): Declare.
15290         (regno_reg_rtx): Declare.
15291         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
15292         Update.
15293         (gen_reg_rtx): Update.
15294         (init_virtual_regs): Do not tate emit_status argument.
15295         (init_emit): Do not allocate emit.
15296         * varasm.c (varasm_statuc): Move to function.h.
15297         (n_deferred_constatns): Update accestor.
15298         (init_varasm_status): Do not allocate varasm_status.
15299         (force_const_mem, get_pool_size, output_constant_pool): Update.
15300         * stmt.c (force_label_rtx): Do not use x_ prefixes.
15301         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
15302
15303 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
15304
15305         PR rtl-optimization/35729
15306         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
15307         references.
15308
15309 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
15310
15311         PR target/32000
15312         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
15313         load/store if memory is unaligned.
15314         (*movti_rex64): Likewise.
15315
15316         * config/i386/predicates.md (misaligned_operand): New.
15317
15318 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
15319
15320         PR tree-opt/35431
15321         * tree-ssa-phiopt.c (conditional_replacement): Return early for
15322         complex types.
15323
15324 2008-03-31  Jan Beulich  <jbeulich@novell.com>
15325
15326         * config/ia64/constraints.md: Add 'j' constraint.
15327         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
15328         (movdi_internal): Likewise.
15329
15330 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
15331
15332         PR c/35748
15333         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
15334
15335 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
15336
15337         PR target/35757
15338         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
15339         proper error message for the third argument on blendpd and
15340         blendps.
15341
15342         * config/i386/sse.md (blendbits): New.
15343         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
15344
15345 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
15346
15347         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
15348
15349 2008-03-30  Richard Guenther  <rguenther@suse.de>
15350
15351         PR middle-end/31023
15352         * fold-const.c (fold_sign_changed_comparison): Do leave
15353         conversions to base-types alone.
15354
15355 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15356
15357         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
15358         the link register if one altivec register is be saved.
15359
15360 2008-03-30  Ben Elliston  <bje@au.ibm.com>
15361
15362         * final.c (final_scan_insn): Remove if (0) code.
15363
15364 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
15365
15366         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
15367
15368 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
15369
15370         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
15371         of V4SFmode to ix86_binary_operator_ok.
15372
15373 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
15374
15375         * config/i386/i386.c (override_options): Initialize
15376         ix86_veclib_handler to ix86_veclibabi_svml when
15377         -mveclibabi=svml is used.
15378         (ix86_veclibabi_svml): New function for SVML ABI style
15379         vectorization support.
15380         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
15381
15382 2008-03-28  Rafael Espindola  <espindola@google.com>
15383
15384         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
15385         (tree_binary_nonnegative_warnv_p): Make it public.
15386         (tree_single_nonnegative_warnv_p): Make it public.
15387         (tree_invalid_nonnegative_warnv_p): Make it public.
15388         (tree_unary_nonzero_warnv_p): Make it public.
15389         (tree_binary_nonzero_warnv_p): Make it public
15390         (tree_single_nonzero_warnv_p): Make it public.
15391         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
15392         (extract_range_from_binary_expr): Split the expr argument.
15393         (extract_range_from_unary_expr): Split the expr argument.
15394         (extract_range_from_comparison): Split the expr argument.
15395         (extract_range_from_expr): Use the new aux functions.
15396         (vrp_evaluate_conditional_warnv): Use
15397         vrp_evaluate_conditional_warnv_with_ops.
15398         * tree.h (tree_unary_nonzero_warnv_p): Declare.
15399         (tree_binary_nonzero_warnv_p): Declare.
15400         (tree_single_nonzero_warnv_p): Declare.
15401         (tree_expr_nonzero_warnv_p): Declare.
15402         (tree_unary_nonnegative_warnv_p): Declare.
15403         (tree_binary_nonnegative_warnv_p): Declare.
15404         (tree_single_nonnegative_warnv_p): Declare.
15405         (tree_invalid_nonnegative_warnv_p): Declare.
15406
15407 2008-03-28  Richard Guenther  <rguenther@suse.de>
15408
15409         PR tree-optimization/30317
15410         PR tree-optimization/30911
15411         PR tree-optimization/34793
15412         * tree-vrp.c (set_and_canonicalize_value_range): New function.
15413         (struct assert_locus_d): New member EXPR.
15414         (register_new_assert_for): Add EXPR parameter to support
15415         ASSERT_EXPR <name, expr OP limit>.
15416         (register_edge_assert_for_1): Adjust callers.
15417         (find_assert_locations): Likewise.
15418         (process_assert_insertions_for): Build condition from expression.
15419         (extract_range_from_assert): Handle ASSERT_EXPRs
15420         of the form ASSERT_EXPR <name, expr OP limit>.
15421         (register_edge_assert_for_2): New helper registering
15422         asserts for comparisons.  Recognize range tests of the form
15423         (unsigned)i - CST1 OP CST2.
15424         (register_edge_assert_for_1): Use it.
15425         (register_edge_assert_for): Likewise.
15426         (needs_overflow_infinity): Integer sub-types
15427         do not need overflow infinities.
15428         (vrp_val_is_max): The extreme values of integer sub-types
15429         are those of the base type.
15430         (vrp_val_is_min): Likewise.
15431         * tree.def (ASSERT_EXPR): Document extra allowed conditional
15432         expressions.
15433
15434 2008-03-28  Nick Clifton  <nickc@redhat.com>
15435
15436         PR target/31110
15437         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
15438         Return GENERAL_REGS for stack adjustment reloads.
15439
15440 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15441
15442         PR target/31334
15443         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
15444         const_vector when all the vectors are constant.
15445
15446 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
15447
15448         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
15449         comparisons.
15450         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
15451         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
15452         (scc_sf): New.
15453         (s<code>_sf): Use new scc_sf attribute for opcode names.
15454
15455 2008-03-27  Tom Tromey  <tromey@redhat.com>
15456
15457         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
15458         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
15459         config/spu/t-spu-elf, config/i386/t-interix,
15460         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
15461         config/i386/x-darwin, config/i386/x-mingw32,
15462         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
15463         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
15464         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
15465         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
15466         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
15467         config/rs6000/x-darwin, config/rs6000/t-rs6000,
15468         config/score/t-score-elf, config/arm/t-strongarm-pe,
15469         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
15470         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
15471         Revert automatic dependency patch.
15472
15473 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15474
15475         PR target/35657
15476         * config/i386/i386.c (ix86_function_arg_boundary): Align
15477         decimal floating point to its natural boundary.
15478
15479 2008-03-27  Richard Guenther  <rguenther@suse.de>
15480
15481         PR middle-end/35716
15482         * fold-const.c (fold_comparison): Restrict distinct decl
15483         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
15484         solely rely on operand_equal_p.
15485
15486 2008-03-27  Richard Guenther  <rguenther@suse.de>
15487
15488         PR c/32511
15489         * c-common.c (handle_weak_attribute): Reject combination of
15490         weak and inline.
15491
15492 2008-03-27  Richard Guenther  <rguenther@suse.de>
15493
15494         PR tree-optimization/32810
15495         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
15496         conversions from DECL_INITIAL.
15497         (fold_const_aggregate_ref): Likewise from constructor elements.
15498
15499 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
15500
15501         * tree-affine.h (aff_combination_expand): Declare.
15502         (get_inner_reference_aff): Likewise.
15503         * tree-affine.c (aff_combination_expand): Split out from
15504         tree_to_aff_combination_expand.
15505         (get_inner_reference_aff): New function.
15506         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
15507         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
15508         (struct lim_aux_data): sm_done field removed.
15509         (mem_ref_loc_p, mem_ref_locs_p): New types.
15510         (struct mem_ref): Added id, stored, accesses_in_loop,
15511         indep_loop, dep_loop, indep_ref, dep_ref fields.
15512         Removed is_stored, locs and next fields.
15513         (memory_accesses): New variable.
15514         (movement_possibility): Do not allow moving statements
15515         that store to memory.
15516         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
15517         New functions.
15518         (determine_max_movement): For statements with memory references,
15519         find the outermost loop in that the reference is independent.
15520         (move_computations_stmt): Mark the virtual operands for renaming.
15521         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
15522         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
15523         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
15524         add_vop_ref_mapping, create_vop_ref_mapping_loop,
15525         create_vop_ref_mapping, analyze_memory_references,
15526         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
15527         get_all_locs_in_loop, ref_always_accessed_p,
15528         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
15529         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
15530         store_motion_loop, store_motion): New functions.
15531         (struct vop_to_refs_elt): New type.
15532         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
15533         memref_hash, memref_eq, hoist_memory_references): Rewritten.
15534         (schedule_sm): Replaced by...
15535         (execute_sm): ... this.
15536         (determine_lsm_ref, hoist_memory_references,
15537         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
15538         find_more_ref_vops, free_mem_ref, free_mem_refs,
15539         determine_lsm_loop, determine_lsm): Removed.
15540         (tree_ssa_lim_finalize): Free data structures used by store motion.
15541         (tree_ssa_lim): Call analyze_memory_references.  Use
15542         store_motion instead of determine_lsm.
15543
15544 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
15545
15546         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
15547         rename tmake_file to m68hc11/t-m68hc11.
15548         (mcore): Set inhibit_libc to true.
15549         * config.host (alpha*-dec-*vms*): Set extra_programs.
15550         (interix3*): Don't use host_xmake_file.
15551         * configure.ac: Let config.gcc override inhibit_libc.
15552         * configure: Regenerate.
15553
15554         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
15555         * config/t-openbsd-thread: Remove commented out lines.
15556
15557         * config/x-interix: Remove.
15558
15559         * config/m68hc11/t-m68hc11-gas: Rename to...
15560         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
15561
15562         * config/mcore/t-mcore: Remove T_CFLAGS.
15563         * config/mcore/t-mcore-pe: Likewise.
15564
15565 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
15566
15567         * configure.ac: Replace custom __GNU_SOURCE test with
15568         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
15569         * aclocal.m4: Regenerate.
15570         * configure: Regenerate.
15571         * config.in: Regenerate.
15572
15573 2008-03-27  Richard Guenther  <rguenther@suse.de>
15574
15575         * fold-const.c (target.h): Include.
15576         (fold_comparison): Fold comparison of addresses of decls
15577         that bind locally or of constants.  Consolidate address folding code.
15578         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
15579         results from fold_binary_to_constant.
15580         (compare_values_warnv): Likewise.
15581
15582 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
15583
15584         PR middle-end/35429
15585         * fold-const.c (fold_truthop): Check for integeral types when folding
15586         a == 0 && b == 0 and a != 0 || b != 0 .
15587
15588 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
15589
15590         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
15591
15592 2008-03-26  Andreas Schwab  <schwab@suse.de>
15593
15594         * doc/invoke.texi: Fix use of @item vs. @itemx.
15595
15596 2008-03-26  Tom Tromey  <tromey@redhat.com>
15597
15598         * Makefile.in (build/gensupport.o, build/print-rtl.o,
15599         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
15600         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
15601         build/gencodes.o, build/genconditions.o, build/genconfig.o,
15602         build/genconstants.o, build/genemit.o, build/genextract.o,
15603         build/genflags.o, build/genmddeps.o, build/genopinit.o,
15604         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
15605         options.h.
15606
15607 2008-03-26  Richard Guenther  <rguenther@suse.de>
15608
15609         Revert
15610         2008-03-26  Richard Guenther  <rguenther@suse.de>
15611
15612         * fold-const.c (target.h): Include.
15613         (fold_comparison): Fold comparison of addresses of two decls
15614         that bind locally.  Consolidate address folding code.
15615
15616 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15617
15618         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
15619         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
15620         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
15621         dconstsqrt2, dconstthird, dconste and/or dconst10.
15622         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
15623         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
15624         dconstsqrt2, dconste): Delete.
15625         (init_emit_once): Likewise.  Simplify initializing dconstm1.
15626         Constify variable.
15627         * real.c (get_real_const): New.
15628         * real.h (dconst3, dconst10, dconstm2, dconstthird,
15629         dconstsqrt2, dconste): Delete.
15630         (real_value_const, get_real_const): New.
15631
15632 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
15633
15634         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
15635
15636         * config/i386/i386.c (ix86_function_arg_boundary): Check
15637         BIGGEST_ALIGNMENT instead of 128.
15638         (setup_incoming_varargs_64): Likewise.
15639
15640 2008-03-26  Tom Tromey  <tromey@redhat.com>
15641
15642         * Makefile.in (DEPFILES): Add missing '/'.
15643
15644 2008-03-26  Richard Guenther  <rguenther@suse.de>
15645
15646         * fold-const.c (target.h): Include.
15647         (fold_comparison): Fold comparison of addresses of two decls
15648         that bind locally.  Consolidate address folding code.
15649
15650 2008-03-26  Nick Clifton  <nickc@redhat.com>
15651
15652         PR target/31232
15653         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
15654         not allow INT+INT as a legitimate addressing mode.
15655
15656 2008-03-26  Richard Guenther  <rguenther@suse.de>
15657
15658         * tree-flow.h (widen_bitfield): Remove declaration.
15659         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
15660         (widen_bitfield): Remove function.
15661         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
15662         code.
15663
15664 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15665
15666         PR target/31558
15667         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
15668         error_mark_node's.
15669
15670 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
15671
15672         PR rtl-optimization/35232
15673         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
15674         (forget_old_reloads_1, forget_marked_reloads): Don't clear
15675         reg_reloaded_call_part_clobbered here.
15676         (reload_regs_reach_end_p): New function.
15677         (reload_reg_rtx_for_input): New variable.
15678         (reload_reg_rtx_for_output): Likewise.
15679         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
15680         when reassigning a pseudo register.  Load reloadreg from
15681         reload_reg_rtx_for_input, moving the mode and register
15682         calculation to...
15683         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
15684         instead of the original when deciding whether an input reload
15685         would be a no-op or whether an output reload can be deleted.
15686         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
15687         when setting up new_spill_reg_store.  Load it from
15688         reload_reg_rtx_for_output, moving the mode and register
15689         calculation to...
15690         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
15691         instead of the original when deciding whether an output reload
15692         would be a no-op.  Do the same when modifying insn notes.
15693         Use rtx_equal_p instead of == to compare the registers.
15694         (inherit_piecemeal_p): Take a mode and two register numbers
15695         as argument.
15696         (emit_reload_insns): Clear new_spill_reg_store for every hard
15697         register in the reload register.  Remove spill registers
15698         from reg_reloaded_valid before considering whether to record
15699         inheritance information for them.  Use reload_reg_rtx_for_output
15700         instead of reg_rtx when recording output reloads.  Use
15701         reload_reg_rtx_for_input instead of reg_rtx when recording
15702         input reloads.  Set or clear reg_reloaded_call_part_clobbered
15703         at the same time as setting reg_reloaded_valid.
15704         (delete_output_reload): Add a new_reload_reg parameter and use it
15705         instead of rld[j].reg_rtx.
15706         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
15707         calls accordingly.
15708
15709 2008-03-25  Tom Tromey  <tromey@redhat.com>
15710
15711         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
15712         (build/genattr.o): Likewise.
15713         (build/genattrtab.o): Likewise.
15714         (build/gencodes.o): Likewise.
15715         (build/genconfig.o): Likewise.
15716         (build/genconstants.o): Likewise.
15717         (build/genemit.o): Likewise.
15718         (build/genextract.o): Likewise.
15719         (build/genflags.o): Likewise.
15720
15721 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
15722
15723         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
15724         instead of size_int for integer types.
15725         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
15726         to match type of MINUS_EXPR.
15727
15728 2008-03-25  Tom Tromey  <tromey@redhat.com>
15729
15730         * configure: Rebuilt.
15731         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
15732         Makefile.
15733
15734 2008-03-25  Tom Tromey  <tromey@redhat.com>
15735
15736         * config/x-solaris (host-solaris.o): Update.
15737         * config/x-linux (host-linux.o): Update.
15738         * config/x-hpux (host-hpux.o): Update.
15739         * config/x-darwin (host-darwin.o): Update.
15740         * config/v850/t-v850e (v850-c.o): Update.
15741         * config/v850/t-v850 (v850-c.o): Update.
15742         * config/t-vxworks (vxworks.o): Update.
15743         * config/t-sol2 (sol2-c.o, sol2.o): Update.
15744         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
15745         * config/spu/t-spu-elf (spu-c.o): Update.
15746         (spu.o): Remove.
15747         * config/sh/t-symbian (sh-c.o): Update.
15748         (symbian.o): Update.
15749         * config/sh/t-sh (sh-c.o): Update.
15750         * config/score/t-score-elf (score7.o, score3.o): Update.
15751         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
15752         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
15753         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
15754         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
15755         (rs6000.o): Remove.
15756         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
15757         * config/m32c/t-m32c (m32c-pragma.o): Update.
15758         * config/ia64/t-ia64 (ia64-c.o): Update.
15759         * config/i386/x-mingw32 (host-mingw32.o): Update.
15760         * config/i386/x-i386 (driver-i386.o): Update.
15761         * config/i386/x-darwin (host-i386-darwin.o): Update.
15762         * config/i386/x-cygwin (host-cygwin.o): Update.
15763         * config/i386/t-nwld (nwld.o): Update.
15764         * config/i386/t-netware (netware.o): Update.
15765         * config/i386/t-interix (winnt.o): Update.
15766         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
15767         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
15768         msformat-c.o): Update.
15769         * config/bfin/t-bfin-linux (generated_files): Add
15770         linux-sysroot-suffix.h.
15771         * config/arm/t-wince-pe (pe.o): Update.
15772         * config/arm/t-strongarm-pe (pe.o): Update.
15773         * config/arm/t-pe (pe.o): Update.
15774         * config/arm/t-arm (arm-c.o): Update.
15775         * doc/install.texi (Prerequisites): Require make 3.80.
15776         * Makefile.in: Remove .o targets.
15777         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
15778         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
15779         (simple_generated_h, simple_generated_c): Move earlier.
15780         (generated_files): New variable.
15781         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
15782         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
15783         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
15784         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
15785         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
15786         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
15787         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
15788         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
15789         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
15790         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
15791         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
15792         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
15793         (.c.o): Remove.
15794         (COMPILE.base, COMPILE): New variables.
15795         (%.o): New pattern rule.
15796         (ALL_HOST_OBJS): New variable.
15797         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
15798         (dummy-checksum.o, cc1-checksum.o): Remove.
15799         (DRIVER_SHLIB): New variable.
15800         (DRIVER_DEFINES): Use it.
15801         (gencondmd.c): Move out of build/.
15802         (s-conditions): Update.
15803         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
15804         (ALL_BUILD_OBJS): Likewise.
15805         (build/%.o): Use BUILDCOMPILE.
15806         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
15807         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
15808         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
15809         build/gencheck.o, build/gencodes.o, build/genconditions.o,
15810         build/genconfig.o, build/genconstants.o, build/genemit.o,
15811         build/genextract.o, build/genflags.o, build/genmddeps.o,
15812         build/genopinit.o, build/genoutput.o, build/genpeep.o,
15813         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
15814         build/gen-protos.o, build/scan.o, build/fix-header.o,
15815         build/scan-decls.o): Simplify.
15816         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
15817         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
15818         prefix.o, toplev.o): Reduce to variable setting.
15819         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
15820         ($(out_object_file), gcc-options.o): New targets.
15821         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
15822         * configure: Rebuilt.
15823         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
15824         * doc/sourcebuild.texi (Front End Directory): Document new variable.
15825
15826 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
15827
15828         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
15829         complain when we hit an error, return ERROR_MARK_NODE.
15830
15831 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
15832
15833         * config/sh/constraints.md (Pso, Psz): New constraints.
15834         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
15835         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
15836
15837 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
15838
15839         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
15840         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
15841
15842 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
15843
15844         * config/sh/sh.md (prefetch): Add condition for SH2A target.
15845         (prefetch_sh2a): New.
15846
15847 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
15848             Naveen.H.S  <naveen.hs@kpitcummins.com>
15849
15850         * config/sh/constraints.md (I28): New constraint.
15851         * config/sh/sh.c (broken_move): Add support for movi20s.
15852         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
15853
15854 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
15855             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
15856             Naveen.H.S  <naveen.hs@kpitcummins.com>
15857
15858         * config/sh/sh.c (SH_ATTRIBUTES): Define.
15859         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
15860         (print_operand): Handle resbank in %@ operand code.
15861         (sh_encode_section_info): New.
15862         (push_regs): Add conditions for resbank.
15863         (sh_expand_epilogue): Likewise.
15864         (sh_insert_attributes): Likewise.
15865         (sh_attribute_table): Likewise.
15866         (sh_handle_resbank_handler_attribute): New.
15867         (sh2a_handle_function_vector_handler_attribute): New.
15868         (sh2a_is_function_vector_call): New.
15869         (sh2a_get_function_vector_number): New.
15870         (sh2a_function_vector_p): New.
15871         (sh_cfun_resbank_handler_p): New.
15872         * config/sh/sh.md (calli): Emit jsr/n if possible.
15873         (calli_tbr_rel): New.
15874         (calli_pcrel): Emit jsr/n if possible.
15875         (return_i): Emit rts/n if possible.
15876         (call_valuei_tbr_rel): New.
15877         (call_valuei_pcrel): Add condition for SH2A target.
15878         (call_value): Likewise.
15879         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
15880         (sh2a_get_function_vector_number): Likewise.
15881         (sh2a_is_function_vector_call): Likewise.
15882         * doc/extend.texi: Document TBR relative addressing of SH2A.
15883         (resbank): Add description for SH2A.
15884
15885 2008-03-24  Richard Guenther  <rguenther@suse.de>
15886
15887         PR c/22371
15888         * gimplify.c (gimplify_modify_expr): For frontend type-correct
15889         pointer assignments change conversions according to middle-end rules.
15890         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
15891         * configure.ac: Include type checking in yes.
15892         * configure: Regenerate.
15893
15894 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15895
15896         * diagnostic.c (diagnostic_count_diagnostic): Delete.
15897         (diagnostic_report_diagnostic): Update. Handle ICEs here.
15898
15899 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
15900
15901         * gthr-vxworks.h (UNUSED): Define.
15902
15903 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
15904
15905         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
15906
15907 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
15908
15909         * doc/extend.texi (Function Attributes): Add missing comma in the
15910         example of the "alloc_size" attribute.
15911
15912 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
15913
15914         Revert:
15915         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
15916
15917         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
15918         32bit host.
15919
15920         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
15921
15922         PR target/35496
15923         * stor-layout.c (update_alignment_for_field): Set minimum alignment
15924         of the underlying type of a MS bitfield layout to the natural
15925         alignment of the type.
15926
15927         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
15928
15929         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
15930         to their natural alignment to avoid store forwarding stalls.
15931
15932 2008-03-22  Richard Guenther  <rguenther@suse.de>
15933
15934         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
15935         For PHI nodes verify the address is invariant.
15936         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
15937         (get_symbol_constant_value): Use is_gimple_min_invariant.
15938         (maybe_fold_stmt_indirect): Likewise.
15939
15940 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
15941
15942         PR rtl-optimization/33927
15943         * Makefile.in (dse.o): Depend on $(TM_P_H).
15944         * expr.h (extract_low_bits): Declare.
15945         * expmed.c (extract_low_bits): New function.
15946         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
15947         * dse.c: Include tm_p.h.
15948         (find_shift_sequence): Remove the read_reg argument and return the
15949         read value.  Emit the instructions instead of returning them.
15950         Iterate on new_mode rather than calculating it each time.
15951         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
15952         source to NEW_MODE and extract_low_bits to convert the shifted
15953         value to READ_MODE.
15954         (replace_read): Allow the load and store to have different mode
15955         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
15956         or extraction instructions before trying the replacement.  Update
15957         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
15958
15959 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
15960
15961         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
15962         to their natural alignment to avoid store forwarding stalls.
15963
15964 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15965
15966         PR target/27946
15967         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
15968         encouraging but not allowing gprs for input;
15969         change the input constraint to !f#r.
15970         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
15971         gprs for output;
15972         change the output constraint to !f#r.
15973
15974 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
15975
15976         PR target/13958
15977         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
15978         corresponding post-reload splitters.
15979         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
15980         when x87 FP math is selected.
15981         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
15982         New function prototype.
15983         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
15984         unreachable function to ease macroization of insn patterns.
15985
15986 2008-03-21  Martin Jambor  <mjambor@suse.cz>
15987
15988         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
15989         reference dumps if ddr is NULL or dependence is unknown.
15990
15991 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
15992
15993         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
15994         unsigned extension into account.
15995         (ATOMIC_COMPARE_AND_SWAP): Likewise.
15996         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
15997         Do computations on a scratch register.
15998
15999 2008-03-21  Richard Guenther  <rguenther@suse.de>
16000
16001         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
16002         Use is_gimple_min_invariant instead of TREE_INVARIANT.
16003         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
16004         * tree-ssa-dom.c (record_equality): Likewise.
16005         * tree-inline.c (copy_body_r): Likewise.
16006         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
16007         TREE_INVARIANT.
16008
16009 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
16010
16011         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
16012         as 'delete_unused' argument.
16013
16014 2008-03-20  Richard Guenther  <rguenther@suse.de>
16015
16016         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
16017         special casing of constant qualifiers.
16018         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
16019         care about them in general.
16020         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
16021         regardless of their type.
16022         (fold_stmt_r): Forcefully fold *& if we end up with that.
16023
16024 2008-03-20  Paul Brook  <paul@codesourcery.com>
16025
16026         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
16027         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
16028         linker flags.
16029         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
16030         definition.
16031         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
16032         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
16033
16034 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
16035
16036         * common.opt (Wmudflap): New option.
16037         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
16038         (mx_register_decls): Likewise.
16039         (mudflap_finish_file): Likewise.
16040         * doc/invoke.texi: Document -Wno-mudflap.
16041
16042 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
16043
16044         * c-format.c (replace_format_name_to_system_name): New.
16045         (cmp_attribs): New.
16046         (convert_format_name_to_system_name): New.
16047         (decode_format_attr): Add use of convert_format_name_to_system_name.
16048         (format_types_orig): Add gnu_ prefix to names.
16049         (check_format_info_main): Special treating of \0 escaped names for
16050         supporting multi-character format specifiers as I32, I64.
16051         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
16052         (gnu_target_overrides_format_attributes): New.
16053         * c-format.h: Add structure target_ovr_attr to hold
16054         system specific formatter names.
16055         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
16056         msformat-c.o file to c_target_objs and cxx_target_objs.
16057         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
16058         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
16059         (TARGET_N_FORMAT_TYPES): New.
16060         * config/i386/msformat-c.c: New.
16061         * config/i386/t-cygming: Add build rule for msformat-c.o.
16062         * doc/extend.texi: Add new format names gnu_* and ms_* and
16063         further details.
16064         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
16065
16066 2008-03-20  Ira Rosen  <irar@il.ibm.com>
16067
16068         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
16069         optimizations turned on under -O3.
16070         (ftree-vectorize): Add that the flag is turned on with -O3.
16071
16072 2008-03-20  Ben Elliston  <bje@au.ibm.com>
16073
16074         * regmove.c (try_auto_increment): Fix spelling error in comment.
16075         * final.c (final_scan_insn): Likewise.
16076
16077 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
16078
16079         PR target/14552
16080         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
16081         allocator preferences for "y" and "r" class registers.
16082         ("*mov<mode>_internal"): Ditto.
16083         ("*movv2sf_internal_rex64"): Ditto.
16084         ("*movv2sf_internal"): Ditto.
16085
16086 2008-03-19  Michael Matz  <matz@suse.de>
16087
16088         PR middle-end/35616
16089         * calls.c (expand_call): Check overlap of arguments with call
16090         address for sibcalls.
16091
16092 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
16093
16094         PR target/35496
16095         * stor-layout.c (update_alignment_for_field): Set minimum alignment
16096         of the underlying type of a MS bitfield layout to the natural
16097         alignment of the type.
16098
16099 2008-03-19  Jan Hubicka  <jh@suse.cz>
16100
16101         PR other/35094
16102         * toplev.c (decode_d_option): Handle all CPP flags.
16103         * tree-vrp.c: Update tree_pass descriptors.
16104         * regrename.c: Update tree_pass descriptors.
16105         * fwprop.c: Update tree_pass descriptors.
16106         * doc/invoke.texi: Remove documentation of dropped -d? flags.
16107         * tree-into-ssa.c: Update tree_pass descriptors.
16108         * tree-dump.c: Update tree_pass descriptors.
16109         * tree-complex.c: Update tree_pass descriptors.
16110         * tree-dump.h: Update tree_pass descriptors.
16111         * see.c: Update tree_pass descriptors.
16112         * cgraphbuild.c: Update tree_pass descriptors.
16113         * tracer.c: Update tree_pass descriptors.
16114         * tree-loop-distribution.c: Update tree_pass descriptors.
16115         * cgraph.c: Update tree_pass descriptors.
16116         * postreload-gcse.c: Update tree_pass descriptors.
16117         * postreload.c: Update tree_pass descriptors.
16118         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
16119         * tree-tailcall.c: Update tree_pass descriptors.
16120         * tree-pass.h (tree_opt_pass): Rename to ...
16121         (opt_pass) ... this one; add "type" field and remove letter field.
16122         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
16123         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
16124         all_lowering_passes): Update declaration.
16125         * ipa-cp.c: Update tree_pass descriptors.
16126         * final.c: Update tree_pass descriptors.
16127         * omp-low.c: Update tree_pass descriptors.
16128         * tree-ssa-dse.c: Update tree_pass descriptors.
16129         * ipa-reference.c: Update tree_pass descriptors.
16130         * tree-ssa-uncprop.c: Update tree_pass descriptors.
16131         * auto-inc-dec.c: Update tree_pass descriptors.
16132         * reorg.c: Update tree_pass descriptors.
16133         * cgraphunit.c: Update tree_pass descriptors.
16134         * tree-ssa-copyrename.c: Update tree_pass descriptors.
16135         * tree-ssa-ccp.c: Update tree_pass descriptors.
16136         * df-core.c: Update tree_pass descriptors.
16137         * mode-switching.c: Update tree_pass descriptors.
16138         * tree-nomudflap.c: Update tree_pass descriptors.
16139         * modulo-sched.c: Update tree_pass descriptors.
16140         * ipa-pure-const.c: Update tree_pass descriptors.
16141         * cse.c: Update tree_pass descriptors.
16142         * web.c: Update tree_pass descriptors.
16143         * tree-stdarg.c: Update tree_pass descriptors.
16144         * tree-ssa-math-opts.c: Update tree_pass descriptors.
16145         * tree-ssa-dom.c: Update tree_pass descriptors.
16146         * tree-nrv.c: Update tree_pass descriptors.
16147         * tree-ssa-alias.c: Update tree_pass descriptors.
16148         * loop-init.c: Update tree_pass descriptors.
16149         * gimple-low.c: Update tree_pass descriptors.
16150         * ipa-inline.c: Update tree_pass descriptors.
16151         * tree-ssa-sink.c: Update tree_pass descriptors.
16152         * global.c: Update tree_pass descriptors.
16153         * ifcvt.c: Update tree_pass descriptors.
16154         * jump.c: Update tree_pass descriptors.
16155         * predict.c: Update tree_pass descriptors.
16156         * tree-ssa-loop.c: Update tree_pass descriptors.
16157         * recog.c: Update tree_pass descriptors.
16158         * dse.c: Update tree_pass descriptors.
16159         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
16160         * tree-eh.c: Update tree_pass descriptors.
16161         * regmove.c: Update tree_pass descriptors.
16162         * local-alloc.c
16163         * function.c: Update tree_pass descriptors.
16164         * tree-vectorizer.c: Update tree_pass descriptors.
16165         * gcse.c: Update tree_pass descriptors.
16166         * ipa-type-escape.c: Update tree_pass descriptors.
16167         * tree-if-conv.c: Update tree_pass descriptors.
16168         * init-regs.c: Update tree_pass descriptors.
16169         * ipa.c: Update tree_pass descriptors.
16170         * tree-ssa-phiopt.c: Update tree_pass descriptors.
16171         * rtl-factoring.c: Update tree_pass descriptors.
16172         * lower-subreg.c: Update tree_pass descriptors.
16173         * bt-load.c: Update tree_pass descriptors.
16174         * tree-dfa.c: Update tree_pass descriptors.
16175         * except.c: Update tree_pass descriptors.
16176         * emit-rtl.c: Update tree_pass descriptors.
16177         * cfgexpand.c: Update tree_pass descriptors.
16178         * tree-cfgcleanup.c: Update tree_pass descriptors.
16179         * cfgcleanup.c: Update tree_pass descriptors.
16180         * tree-ssa-pre.c: Update tree_pass descriptors.
16181         * tree-sra.c: Update tree_pass descriptors.
16182         * tree-mudflap.c: Update tree_pass descriptors.
16183         * tree-ssa-copy.c: Update tree_pass descriptors.
16184         * cfglayout.c: Update tree_pass descriptors.
16185         * tree-ssa-forwprop.c: Update tree_pass descriptors.
16186         * tree-ssa-dce.c: Update tree_pass descriptors.
16187         * tree-ssa.c: Update tree_pass descriptors.
16188         * regclass.c: Update tree_pass descriptors.
16189         * integrate.c: Update tree_pass descriptors.
16190         * tree-optimize.c: Update tree_pass descriptors.
16191         * tree-ssa-phiprop.c: Update tree_pass descriptors.
16192         * tree-object-size.c: Update tree_pass descriptors.
16193         * combine.c: Update tree_pass descriptors.
16194         * tree-outof-ssa.c: Update tree_pass descriptors.
16195         * bb-reorder.c: Update tree_pass descriptors.
16196         * stack-ptr-mod.c: Update tree_pass descriptors.
16197         * var-tracking.c: Update tree_pass descriptors.
16198         * tree-profile.c: Update tree_pass descriptors.
16199         * tree-vect-generic.c: Update tree_pass descriptors.
16200         * reg-stack.c: Update tree_pass descriptors.
16201         * sched-rgn.c: Update tree_pass descriptors.
16202         * tree-ssa-structalias.c: Update tree_pass descriptors.
16203         * tree-cfg.c: Update tree_pass descriptors.
16204         * passes.c (current_pass): Update declaration.
16205         (finish_optimization_passes): Update.
16206         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
16207         (register_one_dump_file, register_dump_files_1, next_pass_1):
16208         Update arguments.
16209         (init_optimization_passes): Update handling of new types.
16210         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
16211         * ipa-struct-reorg.c: Update tree_pass descriptors.
16212         * tree-ssa-reassoc.c: Update tree_pass descriptors.
16213         * combine-stack-adj.c: Update tree_pass descriptors.
16214         * cfgrtl.c: Update tree_pass descriptors.
16215         * dce.c: Update tree_pass descriptors.
16216         * tree-ssanames.c: Update tree_pass descriptors.
16217
16218 2008-03-19  Richard Guenther  <rguenther@suse.de>
16219
16220         PR middle-end/35609
16221         * tree-ssa.c (walk_data): New structure.
16222         (warn_uninitialized_var): If not always_executed warn with "maybe"
16223         instead of "is".
16224         (execute_early_warn_uninitialized): Compute post-dominators.
16225         Initialize always_executed before processing each basic block.
16226
16227 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
16228
16229         PR target/35504
16230         * config/i386/i386.c (x86_this_parameter): Calculate correct location
16231         of "this" pointer when "regparm = N" or "fastcall" is in effect.
16232
16233 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16234
16235         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
16236
16237 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
16238
16239         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
16240         is true.
16241         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
16242         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
16243         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
16244         target after ignore has been set, and move there also the commputation
16245         of subtarget and original_target.
16246         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
16247         (LANG_HOOKS_INITIALIZER): Remove it.
16248         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
16249
16250 2008-03-18  Richard Guenther  <rguenther@suse.de>
16251
16252         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
16253         found an expression with constants, note that in the VN for the lhs.
16254         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
16255         fold them to constants if possible.  Run cleanup_cfg if done so.
16256         (execute_pre): Return todo.
16257         (do_pre): Likewise.
16258         (execute_fre): Likewise.
16259         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
16260         of constants.
16261         (get_prop_source_stmt): Look through pointer conversions.
16262
16263 2008-03-18  Jan Hubicka  <jh@suse.cz>
16264
16265         * tree-pretty-print.c: Include predict.h.
16266         (dump_generic_node): Dump predictor.
16267         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
16268         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
16269         * gimple-low.c (lower_stmt): Likewise.
16270         * expr.c (expand_expr_real): Likewise.
16271         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
16272         them.
16273         (build_predict_expr, build_predict_expr): New.
16274         * predict.h (predictor_name, build_predict_expr): Update.
16275         * c-typeck.c (c_finish_bc_stmt): Add prediction.
16276         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
16277         * predict.def (PRED_CONTINUE): Update hitrate.
16278         * tree.def (PREDICT_EXPR): Define.
16279         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
16280         do not handle BIND_EXPR.
16281         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
16282         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
16283         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
16284         operands.
16285
16286 2008-03-18  Michael Matz  <matz@suse.de>
16287
16288         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
16289
16290 2008-03-18  Richard Guenther  <rguenther@suse.de>
16291
16292         * tree-gimple.h (is_gimple_invariant_address): Declare.
16293         (is_gimple_constant): Likewise.
16294         * tree-gimple.c (is_gimple_constant): New function.
16295         (is_gimple_invariant_address): Likewise.
16296         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
16297         and is_gimple_invariant_address.
16298         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
16299         previous change.
16300         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
16301         an addressable base.
16302
16303 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
16304
16305         PR middle-end/35611
16306         * gimplify.c (gimplify_expr): Gimplify second operand of
16307         OMP_ATOMIC_LOAD.
16308
16309 2008-03-17  Richard Guenther  <rguenther@suse.de>
16310
16311         PR tree-optimization/19637
16312         * fold-const.c (fold_unary): Remove restrictions of removing
16313         intermediate pointer-conversions (P2)(P1)P0.
16314         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
16315         conversion to void pointer.
16316         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
16317
16318 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
16319
16320         PR debug/31510
16321         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
16322         emulated thread local variables.
16323
16324 2008-03-16  Richard Guenther  <rguenther@suse.de>
16325
16326         PR middle-end/35607
16327         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
16328         expand TREE_INVARIANT operations that are not gimple invariant.
16329
16330 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
16331
16332         * doc/extend.texi (Alignment): Say that the ABI controls
16333         the __alignof__ for non-strict-alignment targets rather
16334         than being a recommendation.
16335
16336 2008-03-15  Paul Brook  <paul@codesourcery.com>
16337
16338         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
16339         annotations.
16340         (arm_output_fn_unwind): Mark functions that can not be unwound.
16341
16342 2008-03-15  Paul Brook  <paul@codesourcery.com>
16343
16344         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
16345         extension instructions.
16346
16347 2008-03-15  Richard Guenther  <rguenther@suse.de>
16348
16349         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
16350         and fold constant aggregate refs.
16351         (fold_const_aggregate_ref): Handle string constants
16352         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
16353         (evaluate_stmt): Simplify now that ccp_fold folds constant
16354         aggregate refs.
16355
16356 2008-03-15  Paul Brook  <paul@codesourcery.com>
16357
16358         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
16359         (extzv): Use gen_extzv_t2.
16360         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
16361
16362 2008-03-15  Richard Guenther  <rguenther@suse.de>
16363
16364         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
16365         (fold_const_aggregate_ref): Likewise.
16366         (get_value): Return NULL if we don't have any values.
16367         (ccp_finalize): Set const_val to NULL after freeing it.
16368         * tree-flow.h (get_symbol_constant_value): Declare.
16369         (fold_const_aggregate_ref): Likewise.
16370         * tree-ssa-sccvn.c (try_to_simplify): Use them.
16371
16372 2008-03-15  Richard Guenther  <rguenther@suse.de>
16373
16374         PR middle-end/35593
16375         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
16376         to not produce negative array indices if not allowed.  Add
16377         parameter to indicate that.
16378         (maybe_fold_offset_to_component_ref): Allow negative array
16379         indices only for the first member of a structure.
16380         (maybe_fold_offset_to_reference): Allow negative array indices.
16381         (maybe_fold_stmt_addition): Likewise.
16382
16383 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
16384             Anatoly Sokolov <aesok@post.ru>
16385
16386         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
16387         (avr_arch): Add ARCH_AVR6.
16388         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
16389         (initial_elimination_offset): Initialize and use 'avr_pc_size'
16390         instead of fixed value 2.
16391         (print_operand_address): Use gs() asm specifier instead of pm().
16392         (avr_assemble_integer): (Ditto.).
16393         (avr_output_addr_vec_elt): (Ditto.).
16394         (print_operand): Handle "!" code.
16395         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
16396         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
16397         (AVR_HAVE_EIJMP_EICALL): Define.
16398         (AVR_3_BYTE_PC): Redefine.
16399         (AVR_2_BYTE_PC): (Ditto.).
16400         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
16401         (LINK_SPEC): Add atmega2560 and atmega2561.
16402         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
16403         (crtm2561.o).
16404         * config/avr/avr.md (call_insn): Use eicall instead of icall
16405         for 3 byte PC devices.
16406         (call_value_insn): (Ditto.).
16407         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
16408         (indirect_jump): Use only for for 2 byte PC devices.
16409         (*tablejump): (Ditto.).
16410         (*indirect_jump_avr6): Add insn.
16411         (*tablejump_rjmp): Don't use for 3 byte PC devices.
16412         * config/avr/libgcc.S (__prologue_saves__): Use eijmp
16413         instead of ijmp for 3 byte PC devices.
16414         (__tablejump2__): (Ditto.).
16415         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
16416         (MULITLIB_DIRNAMES): (Ditto.).
16417         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
16418
16419 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
16420
16421         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
16422         "sse2_umulsidi3".  Use V1DI mode for operand 0.
16423         ("mmx_psadbw"): Use V1DI mode for operand 0.
16424         * config/i386/i386-modes.def (V1SI): New vector mode.
16425         * config/i386/i386.c (struct builtin_description)
16426         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
16427         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
16428         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
16429         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
16430         v1di_ftype_v8qi_v8qi type.
16431         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
16432
16433         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
16434         __builtin_ia32_pmuludq]: Fix the mode of return value.
16435
16436 2008-03-15  Richard Guenther  <rguenther@suse.de>
16437
16438         PR middle-end/35595
16439         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
16440         being a PHI_NODE.
16441
16442 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
16443
16444         * doc/invoke.texi (Option Summary, Xtensa Options): Document
16445         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
16446         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
16447         unless TARGET_SERIALIZE_VOLATILE is enabled.
16448         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
16449         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
16450         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
16451
16452 2008-03-14  Richard Guenther  <rguenther@suse.de>
16453
16454         PR tree-optimization/34172
16455         * tree-flow.h (refs_may_alias_p): Declare.
16456         (get_single_def_stmt): Likewise.
16457         (get_single_def_stmt_from_phi): Likewise.
16458         (get_single_def_stmt_with_phi): Likewise.
16459         * tree-dfa.c (refs_may_alias_p): New function.
16460         (get_single_def_stmt): Likewise.
16461         (get_single_def_stmt_from_phi): Likewise.
16462         (get_single_def_stmt_with_phi): Likewise.
16463         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
16464         (vn_reference_lookup_1): New helper function.
16465         (vn_reference_lookup): Walk the virtual use-def chain to
16466         continue searching for a match if the def does not alias the
16467         reference we are looking for.
16468
16469 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
16470
16471         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
16472         archive and Perzl.  Update The Written Word listing.
16473
16474 2008-03-14  Richard Guenther  <rguenther@suse.de>
16475
16476         PR tree-optimization/34043
16477         PR tree-optimization/33989
16478         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
16479         when doing FRE.
16480         (bitmap_find_leader): Use extra argument to verify dominance
16481         relationship inside a basic-block.
16482         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
16483         (find_leader_in_sets): Adjust.
16484         (create_component_ref_by_pieces): Take extra argument for
16485         dominance check, handle lookup failures.
16486         (find_or_generate_expression): Likewise.
16487         (create_expression_by_pieces): Likewise.
16488         (insert_into_preds_of_block): Adjust.
16489         (create_value_expr_from): If asked for, verify all operands
16490         are in the blocks AVAIL_OUT set.
16491         (make_values_for_stmt): Check for SSA_NAMEs that are life
16492         over an abnormal edge.
16493         (compute_avail): Remove such check.
16494         (do_SCCVN_insertion): New function.
16495         (eliminate): If we do not find a leader suitable for replacement
16496         insert a replacement expression from SCCVN if available.
16497         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
16498         (struct vn_ssa_aux): Add needs_insertion flag.
16499         * tree-ssa-sccvn.c (may_insert): New global flag.
16500         (copy_reference_ops_from_ref): Value-number union member access
16501         based on its size, not type and member if insertion is allowed.
16502         (visit_reference_op_load): For a weak match from union type
16503         punning lookup a view-converted value and insert a SSA_NAME
16504         for that value if that is not found.
16505         (visit_use): Make dumps shorter.  Do not disallow value numbering
16506         SSA_NAMEs that are life over an abnormal edge to constants.
16507         (free_scc_vn): Release inserted SSA_NAMEs.
16508         (run_scc_vn): New flag to specify whether insertion is allowed.
16509         Process SSA_NAMEs in forward order.
16510         * tree-ssa-loop-im.c (for_each_index): Handle invariant
16511         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
16512         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
16513         pointer type to/from integral types that do not change the
16514         precision to regular conversions.
16515
16516 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
16517
16518         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
16519         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
16520         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
16521         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
16522         input arguments and the mode of return value.  Built-in functions
16523         that operate on whole 64-bit MMX register now use V1DI mode.
16524
16525 2008-03-13  Alon Dayan  <alond@il.ibm.com>
16526             Olga Golovanevsky  <olga@il.ibm.com>
16527
16528         PR tree-optimization/35041
16529         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
16530         to locate the right position in a statement.
16531
16532 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
16533
16534         PR target/34000
16535         PR target/35553
16536         * config/i386/xmmintrin.h:  Change all static inline functions to
16537         extern inline and add __gnu_inline__ attribute.
16538         * config/i386/bmintrin.h: Ditto.
16539         * config/i386/smmintrin.h: Ditto.
16540         * config/i386/tmmintrin.h: Ditto.
16541         * config/i386/mmintrin-common.h: Ditto.
16542         * config/i386/ammintrin.h: Ditto.
16543         * config/i386/emmintrin.h: Ditto.
16544         * config/i386/pmmintrin.h: Ditto.
16545         * config/i386/mmintrin.h: Ditto.
16546         * config/i386/mm3dnow.h: Ditto.
16547
16548 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
16549
16550         PR middle-end/35185
16551         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
16552         (lower_omp_2): New function.
16553         (lower_omp_1, lower_omp): Rewritten.
16554
16555 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
16556
16557         PR 35054
16558         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
16559         with the phrase "Microsoft Windows compilers".
16560         (Push/Pop Macro Pragmas): New subsection. Document
16561         #pragma push_macro and pragma pop_macro.
16562
16563 2008-03-12  Paul Brook  <paul@codesourcery.com>
16564
16565         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
16566
16567 2008-03-12  Paul Brook  <paul@codesourcery.com>
16568
16569         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
16570         (thumb2_alusi3_short): Exclude PLUS and MINUS.
16571         (thumb2_addsi_shortim): Rename ...
16572         (thumb2_addsi_short): ... to this.  Allow register operands.
16573         (thumb2_subsi_short): New pattern.
16574         (thumb2_one_cmplsi2_short,
16575         thumb2_negsi2_short): New patterns and peepholes.
16576
16577 2008-03-12  Paul Brook  <paul@codesourcery.com>
16578
16579         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
16580
16581 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
16582
16583         * config/i386/i386.md (int_cond): New code iterator.
16584         (fp_cond): Ditto.
16585         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
16586         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
16587         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
16588         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
16589         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
16590         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
16591         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
16592         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
16593
16594 2008-03-12  Paul Brook  <paul@codesourcery.com>
16595
16596         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
16597         instead of {arm,thumb}_compute_save_reg_mask.
16598         (output_return_instruction): Ditto.
16599         (thumb_unexpanded_epilogue): Ditto.
16600         (thumb1_expand_prologue): Ditto.
16601         (thumb1_output_function_prologue): Ditto.
16602         (arm_set_return_address): Ditto.
16603         (thumb_set_return_address): Ditto.
16604         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
16605         regs to achieve stack alignment.
16606         (thumb1_compute_save_reg_mask): Fix compiler warning.
16607         (arm_output_epilogue): Use offsets->saved_regs_mask.
16608         Adjust stack pointer by poping call clobered registers.
16609         (arm_expand_prologue): Use offsets->saved_regs_mask.
16610         Adjust stack pointer by pushing extra registers.
16611         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
16612
16613 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
16614
16615         PR tree-opt/35422
16616         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
16617         conversion to the operands of a multiplication.
16618
16619 2008-03-12  Richard Guenther  <rguenther@suse.de>
16620
16621         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
16622         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
16623         * timevar.def (TV_TREE_PHIPROP): Add.
16624         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
16625         pass description.  Use TV_TREE_PHIPROP.
16626         * tree-ssa-forwprop.c: Remove phiprop code.
16627
16628 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
16629
16630         PR middle-end/35549
16631         * omp-low.c (maybe_lookup_decl): Constify first argument.
16632         (use_pointer_for_field): Change last argument from bool to
16633         omp_context *.  Disallow shared copy-in/out in nested
16634         parallel if decl is shared in outer parallel too.
16635         (build_outer_var_ref, scan_sharing_clauses,
16636         lower_rec_input_clauses, lower_copyprivate_clauses,
16637         lower_send_clauses, lower_send_shared_vars): Adjust callers.
16638
16639 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
16640             Ira Rosen  <irar@il.ibm.com>
16641
16642         * tree-vectorizer.c (free_stmt_vec_info): New function.
16643         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
16644         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
16645         * tree-vectorizer.h (free_stmt_vec_info): Declare.
16646         * tree-vect-transform.c (vectorizable_conversion): Free
16647         vec_oprnds0 if it was allocated.
16648         (vect_permute_store_chain): Remove unused VECs.
16649         (vectorizable_store): Free VECs that are allocated in the..
16650         function.
16651         (vect_transform_strided_load, vectorizable_load): Likewise.
16652         (vect_remove_stores): Simplify the code.
16653         (vect_transform_loop): Move code to vect_remove_stores().
16654         Call vect_remove_stores() and free_stmt_vec_info().
16655
16656 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16657
16658         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
16659         TARGET_HPUX.  Revise comment.
16660         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
16661         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
16662         Use sr4 variant of `be' instruction when not generating PIC code.
16663         (attr_length_call): Adjust for above change.
16664
16665 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16666
16667         * ipa-reference.c (static_execute): Remove module_statics_const and
16668         associated setting code.
16669
16670 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
16671
16672         PR target/35540
16673         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
16674         predicate for operand 1.
16675         (paritysi2_cmp): Use register_operand predicate for operand 2.
16676         Use earlyclobber modifier for operand 1.  Remove support for
16677         memory operands.
16678         (paritydi2_cmp): Use register_operand predicate for operand 3.
16679         Use earlyclobber modifier for operand 1.  Remove support for
16680         memory operands.
16681
16682 2008-03-11  Paul Brook  <paul@codesourcery.com>
16683             Vladimir Prus  <vladimir@codesourcery.com>
16684
16685         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
16686         (arm_compute_save_reg0_reg12_mask): Always
16687         check if register 11 must be saved.  Always safe hard frame pointer
16688         when frame_pointer_needeed.
16689         (arm_compute_save_reg_mask): Save IP and PC
16690         only with apcs frames.
16691         (arm_output_epilogue): Adjust Thumb2 codepath to
16692         be also invoked and work for ARM non-apcs frames.
16693         (arm_expand_prologue): Don't bother saving IP
16694         for non-apcs frame, since it's not clobbered by
16695         prologue code.  Implement non-apcs frame
16696         layout.
16697
16698 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
16699
16700         PR rtl-optimization/35281
16701         * expr.c (convert_move): Use a new pseudo for the intermediate
16702         from_mode->word_mode result.
16703
16704 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
16705
16706         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
16707         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
16708         * toplev.c (compile_file): Don't call it.
16709
16710 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
16711
16712         PR middle-end/35526
16713         * expr.c (store_expr): Call emit_block_move if the mode
16714         of "temp" RTX is BLKmode.
16715
16716 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16717             Richard Guenther  <rguenther@suse.de>
16718
16719         PR tree-optimization/31358
16720         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
16721         the step with a NULL_TREE.
16722         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
16723         to sizetype if type is a pointer type.
16724         (add_candidate_1): Don't convert the base and step to
16725         the generic type if the orginal type is a pointer type.
16726         (add_iv_value_candidates): Use sizetype for the step
16727         if type is a pointer type.
16728         (cand_value_at): Likewise.
16729         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
16730         for pointer types.
16731         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
16732         Don't convert the tem affine to the type.
16733         (add_elt_to_tree): Use sizetype for the step if a pointer.
16734         Use POINTER_PLUS_EXPR for pointers.
16735         (aff_combination_to_tree): Use sizetype for the step if a
16736         pointer.
16737
16738 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
16739
16740         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
16741         Remove commutativity hint.
16742
16743 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
16744
16745         PR c/35438
16746         PR c/35439
16747         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
16748         errorneous type.  Check that v is a VAR_DECL.
16749
16750         PR middle-end/35099
16751         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
16752
16753 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
16754
16755         PR tree-optimization/35494
16756         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
16757         may be overriden at link and run time.
16758
16759 2008-03-10  Richard Guenther  <rguenther@suse.de>
16760
16761         PR tree-optimization/34677
16762         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
16763         (poolify_tree): Likewise.
16764         (modify_expr_template): Likewise.
16765         (poolify_modify_stmt): Likewise.
16766         (insert_fake_stores): Handle all component-ref style stores
16767         in addition to INDIRECT_REF.  Also handle complex types.
16768         Do not poolify the inserted load.
16769         (realify_fake_stores): Do not rebuild the tree but only
16770         make it a SSA_NAME copy.
16771         (init_pre): Remove initialzation of modify_expr_template.
16772         Do not allocate modify_expr_node_pool.
16773         (fini_pre): Do not free modify_expr_node_pool.
16774
16775 2008-03-10  Paul Brook  <paul@codesourcery.com>
16776
16777         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
16778         to avoid conflicts.
16779
16780 2008-03-10  Paul Brook  <paul@codesourcery.com>
16781             Mark Shinwell  <shinwell@codesourcery.com>
16782
16783         * config/arm/cortex-r4.md: New.
16784         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
16785         insn attributes.
16786         * config/arm/arm.md: Include cortex-r4.md.
16787         (insn): Add smmls, sdiv and udiv values.
16788         (generic_sched): Don't use generic scheduling for Cortex-R4.
16789         (arm_issue_rate): New function.
16790         (TARGET_SCHED_ISSUE_RATE): Define.
16791
16792 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
16793
16794         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
16795
16796 2008-03-10  Richard Guenther  <rguenther@suse.de>
16797
16798         * tree-ssa-pre.c (get_sccvn_value): Simplify.
16799         (compute_avail): Do not add stmt uses to AVAIL_OUT.
16800
16801 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
16802
16803         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
16804         Set default to true.
16805
16806 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16807
16808         * c.opt (Wsynth): Deprecate.
16809         * doc/invoke.texi (Option Summary, Warning Options): Document
16810         -Wno-format-contains-nul.
16811
16812 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
16813
16814         PR target/35496
16815         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
16816         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
16817
16818 2008-03-09  Ira Rosen  <irar@il.ibm.com>
16819
16820         * config/rs6000/rs6000.c (builtin_description): Rename vector
16821         left shift operations.
16822         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
16823         (altivec_vsl<VI_char>): Rename to ...
16824         (ashl<mode>3): ... new name.
16825         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
16826         gen_ashlv4si3.
16827         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
16828
16829 2008-03-08  Richard Guenther  <rguenther@suse.de>
16830
16831         * coverage.h (tree_coverage_counter_addr): Declare.
16832         * coverage.c (tree_coverage_counter_addr): New function.
16833         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
16834         before using again.
16835         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
16836         (tree_gen_one_value_profiler): Likewise.
16837         (tree_gen_ic_profiler): Likewise.
16838         (tree_gen_average_profiler): Likewise.
16839         (tree_gen_ior_profiler): Likewise.
16840
16841 2008-03-08  Richard Guenther  <rguenther@suse.de>
16842
16843         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
16844         (vn_binary_op_insert): Likewise.
16845         (vn_unary_op_lookup): Likewise.
16846         (vn_unary_op_insert): Likewise.
16847         (vn_nary_op_lookup): Declare.
16848         (vn_nary_op_insert): Likewise.
16849         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
16850         and binary hashes, use a single obstack for unary_op_pool
16851         and binary_op_pool.
16852         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
16853         a single struct vn_nary_op_s.  Store tree code length and
16854         a variable number of operands.
16855         (struct vn_reference_op_struct): Remove unused op2.
16856         (vn_reference_op_eq): Do not compare op2.
16857         (vn_reference_op_compute_hash): Do not compute hash of op2.
16858         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
16859         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
16860         with vn_nary_op_compute_hash.
16861         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
16862         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
16863         vn_nary_op_lookup.
16864         (vn_unary_op_insert, vn_binary_op_insert): Replace with
16865         vn_nary_op_insert.
16866         (visit_unary_op): Call nary functions.
16867         (visit_binary_op): Likewise.
16868         (process_scc): Adjust for struct vn_tables_s changes.
16869         (allocate_vn_table): Likewise.
16870         (free_vn_table): Likewise.
16871         * tree-vn.c (vn_add): Call nary functions.
16872         (vn_lookup): Likewise.
16873
16874 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
16875
16876         PR target/35498
16877         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
16878         wdst back after sync_compare_and_swapqhi_internal.
16879
16880 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
16881
16882         PR target/22152
16883         * config/i386/i386-modes.def (V1DI): New vector mode.
16884         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
16885         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
16886         (MMXMODE248): Ditto.
16887         (MMXMODE): Add V1DI mode.
16888         (mmxvecsize): Change DI mode to V1DI mode.
16889         ("mov<mode>): Use MMXMODEI8 mode iterator.
16890         ("*mov<mode>_internal_rex64"): Ditto.
16891         ("*mov<mode>_internal"): Ditto.
16892         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
16893         ("mmx_sub<mode>3"): Ditto.
16894         ("mmx_adddi3"): Remove insn pattern.
16895         ("mmx_subdi3"): Ditto.
16896         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
16897         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
16898         ("mmx_ashl<mode>3"): Ditto.
16899         ("mmx_lshrdi3"): Remove insn pattern.
16900         ("mmx_ashldi3"): Ditto.
16901         * config/i386/i386.c (classify_argument): Handle V1DImode.
16902         (function_arg_advance_32): Ditto.
16903         (function_arg_32): Ditto.
16904         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
16905         mmx_addv1di3 insn pattern.
16906         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
16907         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
16908         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
16909         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
16910         Remove definitions of built-in functions.
16911         (V1DI_type_node): New node.
16912         (v1di_ftype_v1di_int): Ditto.
16913         (v1di_ftype_v1di_v1di): Ditto.
16914         (v2si_ftype_v2si_si): Ditto.
16915         (v4hi_ftype_v4hi_di): Remove node.
16916         (v2si_ftype_v2si_di): Ditto.
16917         (ix86_init_mmx_sse_builtins): Handle V1DImode.
16918         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
16919         Redefine builtins using def_builtin_const with *_ftype_*_int node.
16920         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
16921         Add new builtins using def_builtin_const.
16922         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
16923         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
16924         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
16925         * config/i386/mmintrin.h (__v1di): New typedef.
16926         (_mm_add_si64): Cast arguments to __v1di type.
16927         (_mm_sub_si64): Ditto.
16928         (_mm_sll_pi16): Cast __count to __v4hi type.
16929         (_mm_sll_pi32): Cast __count to __v2si type.
16930         (_mm_sll_si64): Cast arguments to __v1di type.
16931         (_mm_srl_pi16): Cast __count to __v4hi type.
16932         (_mm_srl_pi32): Cast __count to __v2si type.
16933         (_mm_srl_si64): Cast arguments to __v1di type.
16934         (_mm_sra_pi16): Cast __count to __v4hi type.
16935         (_mm_sra_pi32): Cast __count to __v2si type.
16936         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
16937         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
16938         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
16939         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
16940         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
16941         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
16942         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
16943         (_mm_srai_pi32): Use __builtin_ia32_psradi.
16944         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
16945         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
16946         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
16947         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
16948
16949 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
16950
16951         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
16952
16953 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
16954
16955         PR target/35373
16956         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
16957         reg+const addressing for Altivec modes.  Don't generate reg+reg
16958         addressing for TFmode or TDmode quantities.
16959
16960 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
16961
16962         * c-common.c (vector_types_convertible_p): Call langhook
16963         instead of comptypes.
16964
16965 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16966
16967         PR tree-opt/35402
16968         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
16969         integral and scalar float variables which have a
16970         NULL DECL_INITIAL.
16971
16972 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
16973
16974         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
16975         dwarf_register_span hook when emitting unwind information for
16976         register-to-memory saves.
16977         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
16978         (rs6000_frame_related): Remove call to spe_synthesize_frame.
16979
16980 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
16981
16982         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
16983         for the same VAR_DECL.
16984
16985 2008-03-06  Tom Tromey  <tromey@redhat.com>
16986
16987         * treelang: Delete.
16988         * doc/standards.texi (Standards): Don't mention treelang.
16989         * doc/invoke.texi (Overall Options): Don't mention treelang.
16990         * doc/install.texi (Prerequisites): Don't mention bison or
16991         treelang.
16992         (Configuration): Don't mention treelang.
16993         (Building): Likewise.
16994         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
16995
16996 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
16997
16998         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
16999         word-extractions out of a multi-word object.
17000
17001 2008-03-06  Richard Guenther  <rguenther@suse.de>
17002
17003         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
17004         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
17005         result type and precision.
17006         * expr.c (get_inner_reference): Set unsignedp based on the result
17007         type of BIT_FIELD_REF.
17008         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
17009         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
17010         (try_instantiate_multiple_fields): Likewise.  Use the correct type
17011         for BIT_FIELD_REF.
17012         (sra_build_assignment): Likewise.
17013         (sra_build_elt_assignment): Likewise.
17014         (sra_explode_bitfield_assignment): Likewise.
17015         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
17016         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
17017         set BIT_FIELD_REF_UNSIGNED.
17018         (vectorizable_load): Likewise.
17019
17020 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
17021
17022         * cse.c (cse_extended_basic_block): Invalidate artificial defs
17023         at bb start.
17024
17025 2008-03-06  Richard Guenther  <rguenther@suse.de>
17026
17027         * alias.c (struct alias_set_entry): Move has_zero_child field
17028         to pack with alias_set.
17029
17030 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
17031
17032         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
17033         32bit host.
17034
17035 2008-03-05  Ian Lance Taylor  <iant@google.com>
17036
17037         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
17038
17039 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
17040
17041         * fwprop.c (update_df): Support width and offset parameters of
17042         df_ref_create.
17043         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
17044         global_conflicts): Change DF_REF_EXTRACT to either
17045         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
17046         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
17047         * df-scan.c (df_ref_record, df_defs_record,
17048         df_ref_create_structure, df_def_record_1, df_uses_record,
17049         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
17050         df_bb_refs_collect, df_entry_block_defs_collect,
17051         df_exit_block_uses_collect): Support new width and offset fields.
17052         (ref_extract_pool): New storage pool.
17053         (df_free_ref): New function.
17054         (df_reg_chain_unlink, df_free_collection_rec,
17055         df_sort_and_compress_refs): Call df_free_ref.
17056         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
17057         of df_ref_extract.
17058         (df_ref_create_structure): Allocate df_ref_extract if offset and
17059         width fields are used.
17060         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
17061         (df_uses_record): Get offset and width from ZERO_EXTRACT
17062         and SIGN_EXTRACT.
17063         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
17064         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
17065         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
17066         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
17067         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
17068         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
17069         (df_ref_extract): New structure.
17070         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
17071         (df_ref_create): Add width and offset parameters.
17072
17073 2008-03-05  Richard Guenther  <rguenther@suse.de>
17074
17075         * tree-ssa-structalias.c (get_constraint_for_component_ref):
17076         Use ranges_overlap_p.
17077         (offset_overlaps_with_access): Rename
17078         to ranges_overlap_p and move ...
17079         * tree-flow-inline.h (ranges_overlap_p): ... here.
17080
17081         * tree.h (get_inner_reference, handled_component_p): Update
17082         comments.
17083
17084         * tree.h (record_component_aliases, get_alias_set,
17085         alias_sets_conflict_p, alias_sets_must_conflict_p,
17086         objects_must_conflict_p): Move declarations ...
17087         * alias.h (record_component_aliases, get_alias_set,
17088         alias_sets_conflict_p, alias_sets_must_conflict_p,
17089         objects_must_conflict_p): ... here.
17090         Include coretypes.h.
17091         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
17092
17093 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
17094
17095         * cfg.c: Include tree-flow.h.
17096         (remove_edge_raw): Call redirect_edge_var_map_clear.
17097         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
17098         * tree-flow-inline.h (redirect_edge_var_map_def): New.
17099         (redirect_edge_var_map_result): New.
17100         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
17101         PENDING_STMT use with redirect_edge_var_map_*.
17102         * tree-ssa.c (edge_var_maps): New definition.
17103         (redirect_edge_var_map_add): New.
17104         (redirect_edge_var_map_clear): New.
17105         (redirect_edge_var_map_dup): New.
17106         (redirect_edge_var_map_vector): New.
17107         (redirect_edge_var_map_destroy): New.
17108         (ssa_redirect_edge): Replace PENDING_STMT use with
17109         redirect_edge_var_map_*.
17110         (flush_pending_stmts): Same.
17111         (delete_tree_ssa): Destroy edge var map.
17112         * tree-flow.h (struct _edge_var_map): New.
17113         Define edge_var_map vector type.
17114         Declare redirect_edge_var_map_* prototypes.
17115         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
17116         * tree-cfg.c (reinstall_phi_args): Replace
17117         PENDING_STMT use with redirect_edge_var_map_*.
17118
17119 2008-03-05  Richard Guenther  <rguenther@suse.de>
17120
17121         PR tree-optimization/35472
17122         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
17123         whose single use_stmt has a overlapping set of loaded and
17124         stored symbols as that use_stmt might be a noop assignment then.
17125
17126 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
17127
17128         * gthr-rtems.h: Implement __gthread_mutex_destroy.
17129
17130 2008-03-05  Richard Guenther  <rguenther@suse.de>
17131
17132         PR c++/35336
17133         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
17134         should be constants.
17135         * tree-cfg.c (verify_expr): Verify it.
17136         * fold-const.c (fold_truthop): Remove code generating
17137         BIT_FIELD_REFs of structure bases.
17138         (fold_binary): Likewise.
17139         (fold_ternary): Position and size of BIT_FIELD_REFs are
17140         always host integers.
17141         (make_bit_field_ref): Remove.
17142         (optimize_bit_field_compare): Remove.
17143         (all_ones_mask_p): Remove.
17144
17145 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
17146
17147         PR gcc/33009
17148         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
17149         (split_block_and_df_analyze): New. Split basic block and rebuild
17150         dataflow.
17151         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
17152         SPLIT_BLOCK.
17153         (split_pattern_seq): Likewise.
17154         (erase_matching_seqs): Likewise.
17155         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
17156
17157 2008-03-04  Geoff Keating  <geoffk@apple.com>
17158
17159         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
17160         declaration and code.
17161         (tree_invalid_nonnegative_warnv_p): Likewise.
17162
17163 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
17164
17165         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
17166         examples.  Truncate option-names then causing overfull hbox.
17167
17168 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17169
17170         PR target/35222
17171         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
17172         on hpux10.
17173         * configure: Rebuilt.
17174
17175 2008-03-04  Rafael Espindola  <espindola@google.com>
17176
17177         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
17178         (tree_unary_nonnegative_warnv_p): New.
17179         (tree_binary_nonnegative_warnv_p): New.
17180         (tree_single_nonnegative_warnv_p): New.
17181         (tree_invalid_nonnegative_warnv_p): New.
17182         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
17183
17184 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17185
17186         PR 28322
17187         * opts.c (handle_option): Postpone 'unknown option' errors only for
17188         warning options.
17189
17190 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
17191
17192         PR target/35453
17193         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
17194         (_SIDD_XXX): This.
17195
17196 2008-03-04  Rafael Espindola  <espindola@google.com>
17197
17198         * fold-const.c (tree_unary_nonzero_warnv_p): New.
17199         (tree_binary_nonzero_warnv_p): New.
17200         (tree_single_nonzero_warnv_p): New.
17201         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
17202
17203 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
17204
17205         PR middle-end/35456
17206         * fold-const.c (fold_cond_expr_with_comparison): Prevent
17207         transformations for modes that have signed zeros.
17208         * ifcvt.c (noce_try_abs): Ditto.
17209
17210 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
17211
17212         * config/i386/i386.c (override_options): Force
17213         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
17214
17215 2008-03-04  Jan Hubicka  <jh@suse.cz>
17216
17217         PR c++/35262
17218         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
17219         in last commit.
17220
17221 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
17222
17223         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
17224         label to probe the stack.
17225
17226 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
17227
17228         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
17229         (__gthr_win32_mutex_destroy): Declare.
17230         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
17231         __gthr_win32_mutex_destroy.
17232         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
17233
17234 2008-03-03  Jan Hubicka  <jh@suse.cz>
17235
17236         PR c++/35262
17237         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
17238         aggressive on inlining cold calls.
17239
17240 2008-03-03  Richard Guenther  <rguenther@suse.de>
17241
17242         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
17243         struct copies into the expression table.
17244         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
17245         (try_to_simplify): Likewise.
17246         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
17247         integral and pointer arguments which do not change the
17248         precision to NOP_EXPRs.
17249         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
17250         VIEW_CONVERT_EXPR case.
17251
17252 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
17253
17254         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
17255         defined in a loop at depth 0 is invariant.
17256         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
17257         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
17258         be called at loop depth 0.
17259
17260 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
17261
17262         PR driver/35420
17263         * gcc.c (process_command): Update copyright notice dates.
17264         * gcov.c (print_version): Likewise.
17265         * gcov-dump.c (print_version): Likewise.
17266         * mips-tfile.c (main): Likewise.
17267         * mips-tdump.c (main): Likewise.
17268
17269 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17270
17271         PR 24924
17272         * c-common.c (flag_permissive): Delete.
17273         (constant_expression_warnings): Check flags first.
17274         (constant_expression_error): New.
17275         * c-common.h (flag_permissive): Delete.
17276         (constant_expression_error): Declare.
17277         * flags.h (flag_permissive): Declare. Update description.
17278         * diagnostic.c (pedwarn): Update.
17279         (permerror): New.
17280         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
17281         (permissive_error_kind): New.
17282         * toplev.c (flag_permissive): Define. Update description.
17283         * toplev.h (permissive_error_kind): Declare.
17284         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
17285         (pedwarn_c90): Use pedantic_warning_kind.
17286         * c-opts.c (c_common_post_options): flag_permissive does not affect
17287         flag_pedantic_errors.
17288
17289 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
17290
17291         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
17292         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
17293         __absvsi2, __absvDI2): Use unsigned arithmetic.
17294
17295 2008-03-02  Andi Kleen  <ak@suse.de>
17296             Richard Guenther  <rguenther@suse.de>
17297
17298         * struct-equiv.c: Remove file.
17299         * cfg_cleanup.c (condjump_equiv_p): Remove.
17300         * Makefile.in (OBJS-common): Remove struct-equiv.o.
17301         (struct-equiv.o): Remove rule.
17302         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
17303         insns_match_p, struct_equiv_block_eq, struct_equiv_init,
17304         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
17305
17306 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
17307
17308         * ifcvt.c (noce_process_if_block): Try to handle only the then
17309         block if the else block exists but isn't suitable.
17310
17311 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
17312
17313         PR gcc/35063
17314         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
17315         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
17316         regression from previous patch.
17317
17318 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
17319
17320         PR gcc/35063
17321         * gthr.h: Add __gthread_mutex_destroy as a function that must be
17322         implemented.
17323         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
17324         * gthr-single.h (__gthread_mutex_destroy): Likewise.
17325         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
17326         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
17327         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
17328         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
17329         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
17330         (__gthread_mutex_destroy_function): Rename to
17331         __gthread_mutex_destroy.
17332         * gthr-dce.h (__gthread_mutex_destroy): Call
17333         pthread_mutex_destroy.
17334         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
17335         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
17336         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
17337
17338 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
17339
17340         * df-scan.c (df_ref_chain_change_bb): Simplify.
17341         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
17342         set_block_for_insn if there's any change.
17343         * df.h ((df_insn_change_bb): Fix prototype.
17344         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
17345         df_insn_change_bb, don't call set_block_for_insn.
17346         * emit-rtl.c (reorder_insns): Likewise.
17347         * haifa-sched.c (move_insn): Likewise.
17348
17349 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
17350
17351         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
17352
17353 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
17354
17355         * tree-flow-inline.h (next_readonly_imm_use): Return
17356         NULL_USE_OPERAND_P after the end.
17357
17358 2008-03-01  Richard Guenther  <rguenther@suse.de>
17359
17360         PR tree-optimization/35411
17361         * tree-sra.c (sra_build_assignment): Split conversion to
17362         final type to a separate statement if we are not assigning
17363         to a register.
17364
17365 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
17366
17367         * fold-const.c (fold_convertible_p): Correct the logic to follow
17368         that in fold_convert().
17369
17370 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
17371
17372         PR c++/35315
17373         * tree-inline.c (build_duplicate_type): When we make a
17374         duplicate type, make it unique in the canonical types system.
17375
17376 2008-02-29  Tom Tromey  <tromey@redhat.com>
17377
17378         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
17379         input_file_stack_history, input_file_stack_restored): Remove.
17380         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
17381         * input.h (struct file_stack): Remove.
17382         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
17383         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
17384         Likewise.
17385         * diagnostic.h (struct diagnostic_context) <last_module>: Change
17386         type.
17387         (diagnostic_last_module_changed): Add 'map' argument.
17388         (diagnostic_set_last_function): Likewise.
17389         * diagnostic.c (undiagnostic_report_current_module): Iterate using
17390         line map, not input_file_stack.
17391         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
17392
17393 2008-02-29  Paul Brook  <paul@codesourcery.com>
17394
17395         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
17396
17397 2008-02-29  Paul Brook  <paul@codesourcery.com>
17398
17399         * config/arm/ieee754-df.S (muldf3): Use RET macros.
17400
17401 2008-02-29  Richard Guenther  <rguenther@suse.de>
17402
17403         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
17404         vn_lookup_or_add.
17405         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
17406         value for comparing for a store match.
17407         (simplify_unary_expression): Do nothing for SSA_NAMEs.
17408         (try_to_simplify): Do not do a full-blown reference lookup.
17409
17410 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
17411
17412         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
17413         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
17414
17415         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
17416
17417 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
17418
17419         * tree-loop-linear.c (try_interchange_loops): Compare memory access
17420         strides against cache sizes.
17421
17422 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
17423
17424         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
17425         constant to fpul.
17426
17427 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
17428
17429         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
17430         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
17431         is smaller than the original promoted value.
17432         (simplify_subreg): If OP is a SUBREG, try to preserve its
17433         SUBREG_PROMOTED_VAR_P information.
17434
17435 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
17436
17437         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
17438         (VN_INFO_GET): Allocate new objects on the obstack.
17439         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
17440         for rpo_numbers_temp, for consistency.
17441         (free_scc_vn): Free the obstack.
17442
17443 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
17444
17445         * doc/invoke.texi: Document -ftree-loop-distribution.
17446         * tree-loop-distribution.c: New.
17447         * tree-pass.h (pass_loop_distribution): New.
17448         * graphds.h (struct graph): Add htab_t indices.
17449         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
17450         * tree-vectorizer.c (rename_variables_in_loop): Extern.
17451         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
17452         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
17453         * tree-data-ref.c (debug_data_dependence_relations): New.
17454         (dump_data_dependence_relation): Also print data references.
17455         (free_data_ref): Extern.
17456         (same_access_functions): Moved...
17457         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
17458         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
17459         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
17460         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
17461         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
17462         (stmts_from_loop): Skip LABEL_EXPR.
17463         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
17464         New.
17465         (build_rdg): Initialize rdg->indices htab.
17466         (free_rdg, stores_from_loop, ref_base_address,
17467         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
17468         have_similar_memory_accesses_1, ref_base_address_1,
17469         remove_similar_memory_refs): New.
17470         * tree-data-ref.h: Depend on tree-chrec.h.
17471         (debug_data_dependence_relations, free_data_ref): Declared.
17472         (same_access_functions): ... here.
17473         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
17474         New.
17475         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
17476         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
17477         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
17478         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
17479         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
17480         rdg_vertex_for_stmt): Declared.
17481         (struct rdg_edge): Add level.
17482         (RDGE_LEVEL): New.
17483         (free_rdg, stores_from_loop, remove_similar_memory_refs,
17484         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
17485         Declared.
17486         (rdg_has_similar_memory_accesses): New.
17487         * tree-vect-analyze.c: Remove unused static decls.
17488         * lambda.h (dependence_level): New.
17489         * common.opt (ftree-loop-distribution): New.
17490         * tree-flow.h (mark_virtual_ops_in_bb,
17491         slpeel_tree_duplicate_loop_to_edge_cfg,
17492         rename_variables_in_loop): Declared.
17493         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
17494         (OBJS-common): Add tree-loop-distribution.o.
17495         (tree-loop-distribution.o): New rule.
17496         * tree-cfg.c (mark_virtual_ops_in_bb): New.
17497         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
17498         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
17499
17500 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
17501
17502         PR target/33963
17503         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
17504         other than structures and unions.
17505
17506 2008-02-28  Richard Guenther  <rguenther@suse.de>
17507
17508         Revert:
17509         2008-02-26  Richard Guenther  <rguenther@suse.de>
17510
17511         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
17512         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
17513         (lookup_decl_from_uid): Declare.
17514         (remove_decl_from_map): Likewise.
17515         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
17516         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
17517         (decl_for_uid_map): New global hashtable mapping DECL_UID
17518         to the decl tree.
17519         (init_ttree): Allocate it.
17520         (insert_decl_to_uid_decl_map): New helper function.
17521         (make_node_stat): Insert new decls into the map.
17522         (copy_node_stat): Likewise.
17523         (lookup_decl_from_uid): New function.
17524         (remove_decl_from_map): Likewise.
17525         (print_decl_for_uid_map_statistics): New helper.
17526         (dump_tree_statistics): Call it.
17527
17528         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
17529         (referenced_var_iterator): Adjust.
17530         (FOR_EACH_REFERENCED_VAR): Adjust.
17531         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
17532         (num_referenced_vars): Adjust.
17533         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
17534         (first_referenced_var): Remove.
17535         (end_referenced_vars_p): Likewise.
17536         (next_referenced_var): Likewise.
17537         (referenced_var_iterator_set): New helper function.
17538         * tree-dfa.c (referenced_var_lookup): Adjust.
17539         (referenced_var_check_and_insert): Likewise.
17540         (remove_referenced_var): Likewise.
17541         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
17542         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17543         (verify_call_clobbering): Likewise.
17544         (verify_memory_partitions): Likewise.
17545         (init_tree_ssa): Allocate bitmap instead of hashtable for
17546         referenced_vars.
17547         (delete_tree_ssa): Adjust.
17548         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
17549         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17550         (compute_tag_properties): Likewise.
17551         (set_initial_properties): Likewise.
17552         (find_partition_for): Likewise.
17553         (update_reference_counts): Likewise.
17554         (dump_may_aliases_for): Likewise.
17555         * tree-ssa-operands.c (add_virtual_operand): Likewise.
17556         (add_call_clobber_ops): Likewise.
17557         (add_call_read_ops): Likewise.
17558         (get_asm_expr_operands): Likewise.
17559         * tree-into-ssa.c (dump_decl_set): Likewise.
17560         (update_ssa): Likewise.
17561         * tree-sra.c (scan_function): Likewise.
17562         (decide_instantiations): Likewise.
17563         (scalarize_parms): Likewise.
17564         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
17565         (dsa_named_for): Likewise.
17566         * tree-ssa-structalias.c (update_alias_info): Likewise.
17567         (merge_smts_into): Likewise.
17568
17569 2008-02-27  David Daney  <ddaney@avtrex.com>
17570
17571         PR target/34409
17572         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
17573         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
17574         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
17575         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
17576         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
17577
17578 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
17579
17580         PR target/25477
17581         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
17582         (BUILT_IN_NEXTTOWARD): Remove.
17583         (BUILT_IN_NEXTTOWARDF): Ditto.
17584         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
17585         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
17586
17587 2008-02-27  Tom Tromey  <tromey@redhat.com>
17588
17589         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
17590         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
17591
17592 2008-02-27  Jan Beulich  <jbeulich@novell.com>
17593
17594         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
17595         update the respective field on newdecl.
17596
17597 2008-02-27  Revital Eres  <eres@il.ibm.com>
17598
17599         PR rtl-optimization/34999
17600         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
17601         crossing edges that ends with a call insn.
17602         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
17603         call insn and clear the EDGE_CROSSING flag of the crossing edge
17604         when fixing fallthru edges.
17605
17606 2008-02-27  Richard Guenther  <rguenther@suse.de>
17607
17608         PR middle-end/35390
17609         * fold-const.c (fold_unary): Return the correct argument,
17610         converted to the result type.
17611
17612 2008-02-27  Richard Guenther  <rguenther@suse.de>
17613
17614         PR middle-end/34971
17615         * expr.c (expand_expr_real_1): Assert on rotates that operate
17616         on partial modes.
17617         * fold-const.c (fold_binary): Use the types precision, not the
17618         bitsize of the mode if folding rotate expressions.  Build rotates
17619         only for full modes.
17620
17621 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
17622
17623         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
17624         and CPP_PRAGMA_EOL.
17625         * c-pragma.c (pragma_ns_name): New typedef.
17626         (registered_pp_pragmas): New variable.
17627         (c_pp_lookup_pragma): New function.
17628         (c_register_pragma_1): If flag_preprocess_only, do nothing
17629         for non-expanded pragmas, for expanded ones push pragma's
17630         namespace and name into registered_pp_pragmas vector.
17631         (c_invoke_pragma_handler): Register OpenMP pragmas even when
17632         flag_preprocess_only, don't register GCC pch_preprocess
17633         pragma if flag_preprocess_only.
17634         * c-opts.c (c_common_init): Call init_pragma even if
17635         flag_preprocess_only.
17636         * c-pragma.c (c_pp_lookup_pragma): New prototype.
17637         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
17638         cpp_register_pragma if flag_preprocess_only.
17639
17640 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17641
17642         PR c/28800
17643         * c-parser.c (c_parser_translation_unit): Warn for empty
17644         translation unit, not empty source file.
17645
17646 2008-02-26  Paul Brook  <paul@codesourcery.com>
17647
17648         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
17649         operand for Thumb-2.
17650         * config/arm/arm.h (reg_class): Add CORE_REGS.
17651         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
17652         (BASE_REG_CLASS): Use CORE_REGS.
17653         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
17654         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
17655         (REGNO_OK_FOR_INDEX_P): Exclude SP.
17656         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
17657         ARM_REGNO_OK_FOR_INDEX_P.
17658         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
17659         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
17660         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
17661         (ldm/stm peepholes): Ditto.
17662         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
17663         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
17664         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
17665         * config/arm/constraints.md: Enable "k" constraint on ARM.
17666
17667 2008-02-27  Ben Elliston  <bje@au.ibm.com>
17668
17669         * config/rs6000/rs6000.c: Annotate cache line size field in all
17670         instances of struct processor_costs.
17671
17672 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
17673
17674         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
17675         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
17676         jump_bypass): New counters.
17677         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
17678         * dce.c (gate_ud_dce): Same.
17679         (gate_fast_dce): Same.
17680         * dse.c (gate_dse1): New function.
17681         (gate_dse2): New function.
17682         (gate_dse): Merge results of new gate functions.
17683         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
17684         (gate_handle_jump_bypass): Add dbg_cnt.
17685         (gate_handle_gcse): Add dbg_cnt.
17686         * ifcvt.c (gate_handle_if_conversion): Same.
17687         (gate_handle_if_after_combine): Same.
17688         (gate_handle_if_after_reload): Same.
17689         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
17690
17691 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
17692
17693         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
17694         line sizes.
17695         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
17696
17697 2008-02-26  Jason Merrill  <jason@redhat.com>
17698
17699         PR c++/35315
17700         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
17701         alone if it's the naming decl for the type's main variant.
17702
17703 2008-02-26  Tom Tromey  <tromey@redhat.com>
17704
17705         * system.h (USE_MAPPED_LOCATION): Poison.
17706         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
17707         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
17708         (make_goto_expr_edges): Likewise.
17709         (remove_bb): Likewise.
17710         (execute_warn_function_return): Likewise.
17711         * basic-block.h (struct edge_def) <goto_locus>: Change type to
17712         location_t.
17713         * c-common.c (fname_decl): Remove old location code.
17714         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
17715         location code.
17716         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
17717         variant.
17718         (ASM_INPUT_SOURCE_LOCATION): Likewise.
17719         (gen_rtx_ASM_INPUT): Likewise.
17720         (gen_rtx_ASM_INPUT_loc): Likewise.
17721         (get_rtx_asm_OPERANDS): Remove.
17722         * cfglayout.c (insn_locators_alloc): Remove old location code.
17723         (set_curr_insn_source_location): Likewise.
17724         (curr_insn_locator): Likewise.
17725         * print-tree.c (print_node): Remove old location code.
17726         * tree-mudflap.c (mf_varname_tree): Remove old location code.
17727         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
17728         * cfgexpand.c (expand_gimple_cond_expr): Don't use
17729         location_from_locus.
17730         (construct_exit_block): Remove old location code.
17731         * emit-rtl.c (force_next_line_note): Remove old location code.
17732         * profile.c (branch_prob): Remove old location code.
17733         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
17734         LOC_LINE): Remove old-location variants.
17735         * langhooks.c (lhd_print_error_function): Remove old location
17736         code.
17737         * configure, config.in: Rebuilt.
17738         * configure.ac (--enable-mapped-location): Remove.
17739         * c-decl.c (c_init_decl_processing): Remove old location code.
17740         (finish_function): Likewise.
17741         * recog.c (decode_asm_operands): Remove old location code.
17742         * c-pch.c (c_common_read_pch): Remove old location code.
17743         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
17744         variants.
17745         * gimple-low.c (lower_function_body): Remove old location code.
17746         * toplev.c (unknown_location): Remove.
17747         (push_srcloc): Remove old-location variant.
17748         (process_options): Remove old location code.
17749         (lang_dependent_init): Likewise.
17750         * input.h (UNKNOWN_LOCATION): Move definition.
17751         (location_t): Undeprecate.
17752         (source_locus): Remove.
17753         (location_from_locus): Remove.
17754         (struct location_s): Remove.
17755         Remove all old-location code.
17756         (input_line, input_filename): Remove.
17757         * final.c (final_scan_insn): Remove old location code.
17758         * diagnostic.c (diagnostic_build_prefix): Remove
17759         USE_MAPPED_LOCATION test.
17760         * tree.h (gimple_stmt) <locus>: Now a location_t.
17761         (tree_exp) <locus>: Likewise.
17762         (DECL_IS_BUILTIN): Remove old-location variant.
17763         (annotate_with_file_line, annotate_with_locus): Likewise.
17764         (expr_locus, set_expr_locus): Update.
17765         * tree.c (build1_stat): Remove old location code.
17766         (last_annotated_node): Remove.
17767         (annotate_with_file_line): Remove old-location variant.
17768         (annotate_with_locus): Likewise.
17769         (expr_location): Remove old location code.
17770         (set_expr_location): Likewise.
17771         (expr_has_location): Likewise.
17772         (expr_locus): Likewise.
17773         (set_expr_locus): Likewise.
17774         (expr_filename): Don't use location_from_locus.
17775         (expr_lineno): Likewise.
17776         * rtl-error.c (location_for_asm): Remove old location code.
17777         * c-lex.c (cb_line_change): Remove old location code.
17778         (fe_file_change): Likewise.
17779         (cb_def_pragma): Likewise.
17780         (c_lex_with_flags): Likewise.
17781         * gengtype.c (do_typedef): Don't special-case location types.
17782         (define_location_structures): Remove.
17783         (main): Don't call define_location_structures.
17784         * tree-pretty-print.c (dump_implicit_edges): Remove old location
17785         code.
17786
17787 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17788
17789         PR 26264
17790         * builtins.def (BUILT_IN_STDARG_START): Remove.
17791         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
17792         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
17793         * tree-inline.c (inline_forbidden_p_1): Likewise.
17794
17795 2008-02-26  Richard Guenther  <rguenther@suse.de>
17796
17797         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
17798         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
17799         (lookup_decl_from_uid): Declare.
17800         (remove_decl_from_map): Likewise.
17801         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
17802         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
17803         (decl_for_uid_map): New global hashtable mapping DECL_UID
17804         to the decl tree.
17805         (init_ttree): Allocate it.
17806         (insert_decl_to_uid_decl_map): New helper function.
17807         (make_node_stat): Insert new decls into the map.
17808         (copy_node_stat): Likewise.
17809         (lookup_decl_from_uid): New function.
17810         (remove_decl_from_map): Likewise.
17811         (print_decl_for_uid_map_statistics): New helper.
17812         (dump_tree_statistics): Call it.
17813
17814         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
17815         (referenced_var_iterator): Adjust.
17816         (FOR_EACH_REFERENCED_VAR): Adjust.
17817         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
17818         (num_referenced_vars): Adjust.
17819         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
17820         (first_referenced_var): Remove.
17821         (end_referenced_vars_p): Likewise.
17822         (next_referenced_var): Likewise.
17823         (referenced_var_iterator_set): New helper function.
17824         * tree-dfa.c (referenced_var_lookup): Adjust.
17825         (referenced_var_check_and_insert): Likewise.
17826         (remove_referenced_var): Likewise.
17827         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
17828         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17829         (verify_call_clobbering): Likewise.
17830         (verify_memory_partitions): Likewise.
17831         (init_tree_ssa): Allocate bitmap instead of hashtable for
17832         referenced_vars.
17833         (delete_tree_ssa): Adjust.
17834         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
17835         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17836         (compute_tag_properties): Likewise.
17837         (set_initial_properties): Likewise.
17838         (find_partition_for): Likewise.
17839         (update_reference_counts): Likewise.
17840         (dump_may_aliases_for): Likewise.
17841         * tree-ssa-operands.c (add_virtual_operand): Likewise.
17842         (add_call_clobber_ops): Likewise.
17843         (add_call_read_ops): Likewise.
17844         (get_asm_expr_operands): Likewise.
17845         * tree-into-ssa.c (dump_decl_set): Likewise.
17846         (update_ssa): Likewise.
17847         * tree-sra.c (scan_function): Likewise.
17848         (decide_instantiations): Likewise.
17849         (scalarize_parms): Likewise.
17850         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
17851         (dsa_named_for): Likewise.
17852         * tree-ssa-structalias.c (update_alias_info): Likewise.
17853         (merge_smts_into): Likewise.
17854
17855 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17856
17857         PR 34351
17858         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
17859         * c-opts.c (c_common_handle_option): Wall enables
17860         Wvolatile-register-var.
17861         * common.opt: Move Wvolatile-register-var to...
17862         * c.opt: ...here.
17863
17864 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17865
17866         * common.opt (Wlarger-than=): New.
17867         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
17868         -Wlarger-than=.
17869         * opts.c (common_handle_option): Handle -Wlarger-than=.
17870         * optc-gen.awk: Likewise.
17871         * opth-gen.awk: Likewise.
17872         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
17873         * tree-optimize.c (tree_rest_of_compilation): Likewise.
17874
17875 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
17876
17877         * c-common.c (match_case_to_enum_1): Add appropriate
17878         OPT_W* parameter to warning.
17879         (c_do_switch_warnings): Likewise.
17880         * c-typeck.c (warning_init): Add one more parameter following
17881         'warning' function.
17882         (push_init_level): Update call to warning_init.
17883         (pop_init_level): Likewise.
17884         (add_pending_init): Likewise.
17885         (output_init_element: Likewise.
17886
17887 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17888
17889         PR 28322
17890         * toplev.c (toplev_main): If there are warnings or error, print
17891         errors for ignored options.
17892         * opts.c (ignored_options): New static variable.
17893         (postpone_unknown_option_error): New.
17894         (print_ignored_options): New.
17895         (handle_option): Postpone errors for unknown -Wno-* options.
17896         * opts.h (print_ignored_options): Declare.
17897
17898 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
17899
17900         * config/mips/mips.md (loadgp_blockage, blockage): Change type
17901         to "ghost".
17902
17903 2008-02-25  Richard Guenther  <rguenther@suse.de>
17904
17905         Revert:
17906         2008-02-25  Richard Guenther  <rguenther@suse.de>
17907
17908         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
17909         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
17910         (lookup_decl_from_uid): Declare.
17911         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
17912         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
17913         (decl_for_uid_map): New global hashtable mapping DECL_UID
17914         to the decl tree.
17915         (init_ttree): Allocate it.
17916         (insert_decl_to_uid_decl_map): New helper function.
17917         (make_node_stat): Insert new decls into the map.
17918         (copy_node_stat): Likewise.
17919         (lookup_decl_from_uid): New function.
17920         (print_decl_for_uid_map_statistics): New helper.
17921         (dump_tree_statistics): Call it.
17922
17923         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
17924         (referenced_var_iterator): Adjust.
17925         (FOR_EACH_REFERENCED_VAR): Adjust.
17926         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
17927         (num_referenced_vars): Adjust.
17928         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
17929         (first_referenced_var): Remove.
17930         (end_referenced_vars_p): Likewise.
17931         (next_referenced_var): Likewise.
17932         (referenced_var_iterator_set): New helper function.
17933         * tree-dfa.c (referenced_var_lookup): Adjust.
17934         (referenced_var_check_and_insert): Likewise.
17935         (remove_referenced_var): Likewise.
17936         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
17937         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17938         (verify_call_clobbering): Likewise.
17939         (verify_memory_partitions): Likewise.
17940         (init_tree_ssa): Allocate bitmap instead of hashtable for
17941         referenced_vars.
17942         (delete_tree_ssa): Adjust.
17943         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
17944         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17945         (compute_tag_properties): Likewise.
17946         (set_initial_properties): Likewise.
17947         (find_partition_for): Likewise.
17948         (update_reference_counts): Likewise.
17949         (dump_may_aliases_for): Likewise.
17950         * tree-ssa-operands.c (add_virtual_operand): Likewise.
17951         (add_call_clobber_ops): Likewise.
17952         (add_call_read_ops): Likewise.
17953         (get_asm_expr_operands): Likewise.
17954         * tree-into-ssa.c (dump_decl_set): Likewise.
17955         (update_ssa): Likewise.
17956         * tree-sra.c (scan_function): Likewise.
17957         (decide_instantiations): Likewise.
17958         (scalarize_parms): Likewise.
17959         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
17960         (dsa_named_for): Likewise.
17961         * tree-ssa-structalias.c (update_alias_info): Likewise.
17962         (merge_smts_into): Likewise.
17963
17964 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
17965
17966         PR fortran/29549
17967         * doc/invoke.texi (-fcx-limited-range): Document new option.
17968         * toplev.c (process_options): Handle -fcx-fortran-rules.
17969         * common.opt: Add documentation for -fcx-fortran-rules.
17970
17971 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
17972
17973         PR c/35162
17974         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
17975         actual behaviour and C99.
17976
17977 2008-02-26  Ben Elliston  <bje@au.ibm.com>
17978
17979         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
17980         (ASM_CPU_POWER6_SPEC): Likewise.
17981         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
17982         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
17983         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
17984
17985 2008-02-25  Richard Guenther  <rguenther@suse.de>
17986
17987         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
17988         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
17989         (lookup_decl_from_uid): Declare.
17990         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
17991         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
17992         (decl_for_uid_map): New global hashtable mapping DECL_UID
17993         to the decl tree.
17994         (init_ttree): Allocate it.
17995         (insert_decl_to_uid_decl_map): New helper function.
17996         (make_node_stat): Insert new decls into the map.
17997         (copy_node_stat): Likewise.
17998         (lookup_decl_from_uid): New function.
17999         (print_decl_for_uid_map_statistics): New helper.
18000         (dump_tree_statistics): Call it.
18001
18002         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
18003         (referenced_var_iterator): Adjust.
18004         (FOR_EACH_REFERENCED_VAR): Adjust.
18005         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
18006         (num_referenced_vars): Adjust.
18007         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
18008         (first_referenced_var): Remove.
18009         (end_referenced_vars_p): Likewise.
18010         (next_referenced_var): Likewise.
18011         (referenced_var_iterator_set): New helper function.
18012         * tree-dfa.c (referenced_var_lookup): Adjust.
18013         (referenced_var_check_and_insert): Likewise.
18014         (remove_referenced_var): Likewise.
18015         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
18016         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
18017         (verify_call_clobbering): Likewise.
18018         (verify_memory_partitions): Likewise.
18019         (init_tree_ssa): Allocate bitmap instead of hashtable for
18020         referenced_vars.
18021         (delete_tree_ssa): Adjust.
18022         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
18023         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
18024         (compute_tag_properties): Likewise.
18025         (set_initial_properties): Likewise.
18026         (find_partition_for): Likewise.
18027         (update_reference_counts): Likewise.
18028         (dump_may_aliases_for): Likewise.
18029         * tree-ssa-operands.c (add_virtual_operand): Likewise.
18030         (add_call_clobber_ops): Likewise.
18031         (add_call_read_ops): Likewise.
18032         (get_asm_expr_operands): Likewise.
18033         * tree-into-ssa.c (dump_decl_set): Likewise.
18034         (update_ssa): Likewise.
18035         * tree-sra.c (scan_function): Likewise.
18036         (decide_instantiations): Likewise.
18037         (scalarize_parms): Likewise.
18038         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
18039         (dsa_named_for): Likewise.
18040         * tree-ssa-structalias.c (update_alias_info): Likewise.
18041         (merge_smts_into): Likewise.
18042
18043 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
18044
18045         PR target/35258
18046         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
18047         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
18048         * alias.h (nonoverlapping_memrefs_p): Likewise.
18049
18050 2008-02-25  Jan Beulich  <jbeulich@novell.com>
18051
18052         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
18053         * config/i386/netware-libgcc.exp: Add __bswap?i2,
18054         __emultls_get_address, __emultls_register_common,
18055         __floatundi?f, and _Unwind_GetIPInfo.
18056         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
18057         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
18058         (gen_regparm_prefix): Likewise.
18059         (i386_nlm_encode_section_info): Sync with
18060         config/i386/winnt.c:i386_pe_encode_section_info().
18061         (i386_nlm_maybe_mangle_decl_assembler_name): New.
18062         i386_nlm_mangle_decl_assembler_name): New.
18063         (netware_override_options): New.
18064         * config/i386/netware.h (netware_override_options): Declare.
18065         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
18066         (i386_nlm_mangle_decl_assembler_name): Declare.
18067         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
18068
18069 2008-02-25  Ben Elliston  <bje@au.ibm.com>
18070
18071         PR other/32948
18072         * c-decl.c (grokdeclarator): Remove unused local variables
18073         `typedef_type' and `type_as_written'.
18074         * bb-reorder.c
18075         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
18076         unused local variable `has_hot_blocks'.
18077         (fix_crossing_conditional_branches): Remove unused local variable
18078         `prev_bb'.
18079
18080 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
18081
18082         PR middle-end/19984
18083         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
18084         using DEF_C99_BUILTIN.
18085         (BUILT_IN_NANF): Ditto.
18086         (BUILT_IN_NANL): Ditto.
18087
18088 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
18089             Revital Eres  <eres@il.ibm.com>
18090
18091         * modulo-sched.c (calculate_must_precede_follow): Address TODO
18092         regarding the order of two dependent insns in the same row.
18093
18094 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
18095
18096         * stor-layout.c (layout_decl): Do not bump the alignment of a
18097         bit-field to more than byte alignment if it is packed.
18098
18099 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
18100
18101         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
18102         e300c2 and e300c3.
18103
18104 2008-02-24  Diego Novillo  <dnovillo@google.com>
18105
18106         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
18107
18108         PR 33738
18109         * tree-vrp.c (vrp_evaluate_conditional): With
18110         -Wtype-limits, emit a warning when comparing against a
18111         constant outside the natural range of OP0's type.
18112         * c.opt (Wtype-limits): Move ...
18113         * common.opt (Wtype-limits): ... here.
18114
18115 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
18116
18117         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
18118         * config/rs6000/e300c2c3.md: New file.
18119         * config/rs6000/rs6000.c (processor_costs): Add new costs for
18120         e300c2 and e300c3.
18121         (rs6000_override_options): Add e300c2 and e300c3 cases to
18122         processor_target_table. Do not allow usage of Altivec or Spe
18123         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
18124         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
18125         * config/rs6000/rs6000.h (processor_type): Add
18126         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
18127         (ASM_CPU_SPEC): Add e300c2 and e300c3.
18128         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
18129         and ppce300c3. Include e300c2c3.md.
18130
18131 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
18132
18133         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
18134         instead of TARGET_STRICT_ALIGN.
18135
18136 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
18137
18138         * explow.c (memory_address): Assert that the generated address is
18139         valid.
18140
18141 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
18142
18143         PR target/25477
18144         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
18145         * config/darwin-ppc-ldouble-patch.def: New file.
18146         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
18147         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
18148         SUBTARGET_INIT_BUILTINS if defined.
18149         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
18150         New functions.
18151
18152 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
18153
18154         PR rtl-opt/33512
18155         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
18156         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
18157
18158 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
18159
18160         PR pch/35027
18161         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
18162         file" warning condtional on -Winvalid-PCH.
18163
18164 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
18165
18166         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
18167
18168 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
18169
18170         PR target/22076
18171         PR target/34256
18172         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
18173         prevent reload from using MMX registers.
18174         (*mov<mode>_internal): Ditto.
18175         (*movv2sf_internal_rex64): Ditto.
18176         (*movv2sf_internal): Ditto.
18177
18178 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18179
18180         PR documentation/31569
18181         * doc/install.texi2html: Use makeinfo --no-number-sections.
18182
18183 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
18184
18185         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
18186         ensure that we can address an entire entity > 8 bytes.  Don't
18187         generate reg+reg addressing for such data.
18188
18189 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
18190
18191         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
18192         strings when optimizing for size, unless the target cares about
18193         alignment.
18194
18195 2008-02-22  Tom Tromey  <tromey@redhat.com>
18196
18197         * regclass.c (current_pass): Remove declaration.
18198
18199 2008-02-22  Anatoly Sokolov <aesok@post.ru>
18200
18201         * config/avr/libgcc.S (__RAMPZ__): Define.
18202         (__do_copy_data): Add for devices with 128KB code memory.
18203
18204 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
18205
18206         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
18207         Use spe_abi.
18208         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
18209
18210 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
18211
18212         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
18213         GENNONACR_REGS.
18214
18215 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18216
18217         PR c/19999
18218         * c-typeck.c (build_binary_op): Warn about floating point
18219         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
18220
18221 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
18222
18223         PR target/34526
18224         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
18225         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
18226         add vrsave.
18227         (rs6000_override_options): Set altivec_abi as default, not override,
18228         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
18229         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
18230         is used; use new member spe_abi.
18231         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
18232         spe_abi and altivec_abi.
18233
18234 2008-02-22  Tomas Bily  <tbily@suse.cz>
18235
18236         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
18237
18238 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18239
18240         PR bootstrap/35273
18241         * config.build (build_file_translate): Set to `CMD //c' only if
18242         it works.
18243         * Makefile.in (build_file_translate): Improve comment.
18244
18245 2008-02-21  Jan Hubicka  <jh@suse.cz>
18246
18247         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
18248         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
18249         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
18250
18251 2008-02-21  Michael Matz  <matz@suse.de>
18252
18253         PR target/35264
18254         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
18255
18256 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
18257
18258         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
18259         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
18260         as insn constraint.
18261         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
18262         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
18263         SSE_VEC_FLOAT_MODE_P as insn constraint.
18264         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
18265         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
18266         sse4a_movntdf using MODEF mode iterator.
18267         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
18268         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
18269         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
18270         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
18271         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
18272         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
18273         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
18274
18275 2008-02-21  Richard Guenther  <rguenther@suse.de>
18276
18277         * tree.def (PAREN_EXPR): New tree code.
18278         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
18279         and PAREN_EXPR.
18280         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
18281         * expr.c (expand_expr_real_1): Likewise.
18282         * tree-inline.c (estimate_num_insns_1): Likewise.
18283         * tree-complex.c (expand_complex_move): Likewise.
18284         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
18285         as plain x.
18286
18287 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
18288
18289         PR target/35225
18290         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
18291
18292 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
18293
18294         PR target/35190
18295         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
18296
18297         * config/sh/sh.c (find_barrier): Don't go past
18298         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
18299
18300 2008-02-20  DJ Delorie  <dj@redhat.com>
18301
18302         * config/h8300/h8300.md (insv): Force source operand to be a register.
18303
18304         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
18305         as a jump, not as a plain insn.
18306
18307 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
18308
18309         * doc/invoke.texi (Warning Options): Add new option
18310         -Wframe-larger-than=.
18311         (-Wframe-larger-than): Document.
18312
18313         * flags.h (warn_frame_larger_than, frame_larger_than_size):
18314         Add declarations for new option variables.
18315
18316         * final.c (final_start_function): Check the frame size
18317         before emission and issue a Wframe-larger-than warning.
18318
18319         * opts.c (warn_frame_larger_than, frame_larger_than_size):
18320         Add definitions for new option variables.
18321         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
18322
18323         * common.opt (Wframe-larger-than=): New option.
18324
18325 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
18326
18327         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
18328         (<sse>_div<mode>3): Ditto.
18329         (<sse>_vmdiv<mode>3): Ditto.
18330         (<sse>_vmsqrt<mode>2): Ditto.
18331         (*smax<mode>3): Ditto.
18332         (sse5_frcz<mode>2): Ditto.
18333         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
18334         as insn constraint.
18335
18336 2008-02-20  Richard Guenther  <rguenther@suse.de>
18337
18338         PR middle-end/35265
18339         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
18340         be happy with INTEGRAL_TYPE_P.
18341
18342 2008-02-20  Richard Guenther  <rguenther@suse.de>
18343
18344         * fold-const.c (split_tree): Associate floatig-point expressions
18345         if flag_associative_math is set.
18346
18347 2008-02-20  Richard Guenther  <rguenther@suse.de>
18348
18349         * tree.h (fold_real_zero_addition_p): Declare.
18350         * fold-const.c (fold_real_zero_addition_p): Export.
18351         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
18352         floating-point operations with zero and one.
18353
18354 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
18355
18356         * doc/install.texi: Correct references to CFLAGS, replacing them
18357         with BOOT_CFLAGS.  Document flags used during bootstrap for
18358         target libraries.
18359
18360 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
18361
18362         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
18363         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
18364         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
18365         insn constraint.
18366         (smin<mode>3): Ditto from similar patterns.
18367         (smax<mode>3): Ditto.
18368         (*ieee_smin<mode>3): Ditto.
18369         (*ieee_smax<mode>3): Ditto.
18370         * config/i386/sse.md (sse): New mode attribute.
18371         (mov<mode>): Macroize expander from movv4sf and movv2df using
18372         SSEMODEF2P mode iterator.
18373         (<sse>_movnt<mode>): Ditto from similar patterns. Use
18374         SSE_VEC_FLOAT_MODE_P as insn constraint.
18375         (storent<mode>): Ditto.
18376         (storent<mode>): Macroize expander from storentsf and storentdf using
18377         MODEF mode iterator.
18378         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
18379         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
18380         (abs<mode>2): Ditto from similar patterns.
18381         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
18382         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
18383         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
18384         (<sse>_vmsqrt<mode>2): Ditto.
18385         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
18386         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
18387         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
18388         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
18389         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
18390         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
18391         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
18392         insn constraint.
18393         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
18394         iterator and SSE_FLOAT_MODE_P as insn constraint.
18395         (<sse>_ucomi): Ditto from similar patterns.
18396         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
18397         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
18398         SSE_VEC_FLOAT_MODE_P as insn constraint.
18399         (vcond<mode>): Ditto from similar patterns.
18400         (and<mode>3, *and<mode>3): Ditto.
18401         (<sse>_nand<mode>3): Ditto.
18402         (ior<mode>3, *ior<mode>3): Ditto.
18403         (xor<mode>3, *xor<mode>3): Ditto.
18404         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
18405         iterator and SSE_FLOAT_MODE_P as insn constraint.
18406         (*nand<mode>3): Ditto from similar patterns.
18407         (*ior<mode>3): Ditto.
18408         (*xor<mode>3): Ditto.
18409
18410 2008-02-20  Ira Rosen  <irar@il.ibm.com>
18411
18412         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
18413         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
18414         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
18415
18416 2008-02-19  Jan Hubicka  <jh@suse.cz>
18417
18418         * predict.c (tree_bb_level_predictions): Remove variable next
18419         mistakely introduced by previous commit.
18420
18421 2008-02-19  Jan Hubicka  <jh@suse.cz>
18422
18423         * predict.c (predict_paths_leading_to): Rewrite.
18424         (predict_paths_for_bb): New.
18425         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
18426
18427 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18428
18429         PR bootstrap/35218
18430         * Makefile.in (build_file_translate): New.
18431         (gcc-vers.texi): Use it for translating $(abs_srcdir).
18432         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
18433         * configure.ac (build_file_translate): Substitute it.
18434         * configure: Regenerate.
18435
18436 2008-02-19  Jan Hubicka  <jh@suse.cz>
18437
18438         PR rtl-optimization/34408
18439         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
18440         invalid sharing.
18441
18442 2008-02-19  Jan Hubicka  <jh@suse.cz>
18443
18444         PR middle-end/28779
18445         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
18446         call_expr.
18447
18448 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
18449
18450         PR Ada/35186
18451         * config/i386/i386-modes.def: Revert the last DI alignment
18452         change until Ada people can look into it.
18453
18454 2008-02-19  Nick Clifton  <nickc@redhat.com>
18455
18456         * opts.c (print_specific_help): Fix typo in --help text.
18457
18458 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
18459
18460         PR target/35239
18461         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
18462         32-bit inline asm without asm alternatives for host GCC < 3.0.
18463
18464 2008-02-19  Richard Guenther  <rguenther@suse.de>
18465
18466         PR tree-optimization/34989
18467         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
18468         Allow propagation to INDIRECT_REF if we can simplify only.
18469
18470 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18471
18472         * c-common.c (warn_for_collisions_1): Use appropriate option when
18473         warning.
18474
18475 2008-02-19  Nick Clifton  <nickc@redhat.com>
18476
18477         PR other/31349
18478         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
18479         (handle_options): Fix indentation.
18480         (print_filtered_help): If no language-specific options were
18481         displayed tell the user how to list all the options supported by
18482         the language's front-end.
18483         (print_specific_help): Fix indentation and remove duplicate line.
18484         (common_handle_option): Handle the -v option.
18485         For --help enable the display of undocumented options if the -v
18486         switch has been included on the command line.
18487         For --help= check for overlaps in the arguments between the option
18488         classes and the language names and issue a warning when they
18489         cannot be disambiguated.
18490         * c.opt (v): Pass on to the common option handler.
18491
18492 2008-02-19  Revital Eres  <eres@il.ibm.com>
18493
18494         * modulo-sched.c (sms_schedule): Change dump message when
18495         create_ddg function fails.
18496         (try_scheduling_node_in_cycle): Rename row to cycle.
18497         (print_partial_schedule): Rename CYCLE to ROW.
18498
18499 2008-02-19  Christian Bruel  <christian.bruel@st.com>
18500             Zdenek Dvorak  <ook@ucw.cz>
18501
18502         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
18503
18504 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
18505
18506         PR target/33555
18507         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
18508         (*x86_movdicc_0_m1_se): Ditto.
18509
18510 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
18511
18512         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
18513         (CMPtype): Define as __gcc_CMPtype.
18514         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
18515         (CMPtype): Define as __gcc_CMPtype.
18516
18517 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
18518
18519         Support valgrind 3.3 for --enable-checking=valgrind.
18520         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
18521         here.
18522         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
18523         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
18524         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
18525         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
18526         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
18527         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
18528         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
18529         respectively.
18530         * ggc-zone.c: Similar.
18531         * ggc-page.c: Similar.
18532
18533 2008-02-19  Paul Brook  <paul@codesourcery.com>
18534
18535         PR target/35071
18536         * config/arm/ieee754-df.S: Fix do_it typo.
18537         * config/arm/ieee754-sf.S: Fix do_it typo.
18538
18539 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
18540
18541         PR target/35189
18542         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
18543         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
18544         (OPTION_MASK_ISA_SSE_SET): Likewise.
18545         (OPTION_MASK_ISA_SSE2_SET): Likewise.
18546         (OPTION_MASK_ISA_SSE3_SET): Likewise.
18547         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
18548         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
18549         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
18550         (OPTION_MASK_ISA_SSE4_SET): Likewise.
18551         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
18552         (OPTION_MASK_ISA_SSE5_SET): Likewise.
18553         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
18554         (OPTION_MASK_ISA_MMX_UNSET): Updated.
18555         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
18556         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
18557         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
18558         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
18559         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
18560         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
18561         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
18562         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
18563         (OPTION_MASK_ISA_SSE4): Removed.
18564         (ix86_handle_option): Turn on bits in ix86_isa_flags and
18565         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
18566         (override_options): Don't turn on implied SSE/MMX bits in
18567         ix86_isa_flags.
18568
18569 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
18570
18571         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
18572         32bit host.
18573
18574 2008-02-18  Joey Ye  <joey.ye@intel.com>
18575
18576         PR middle-end/34921
18577         * tree-nested.c (insert_field_into_struct): Set type alignment
18578         to field alignment if the former is less than the latter.
18579
18580 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
18581
18582         * BASE-VER: Set to 4.4.0.
18583
18584 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18585
18586         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
18587         * doc/cfg.texi: Likewise.
18588         * doc/extend.texi: Likewise.
18589         * doc/gty.texi: Likewise.
18590         * doc/invoke.texi: Likewise.
18591         * doc/loop.texi: Likewise.
18592         * doc/md.texi: Likewise.
18593         * doc/passes.texi: Likewise.
18594         * doc/rtl.texi: Likewise.
18595         * doc/sourcebuild.texi: Likewise.
18596         * doc/tm.texi: Likewise.
18597         * doc/tree-ssa.texi: Likewise.
18598
18599 2008-02-17  Richard Guenther  <rguenther@suse.de>
18600
18601         PR middle-end/35227
18602         * tree-complex.c (init_parameter_lattice_values): Handle parameters
18603         without default definition.
18604
18605 2008-02-17  Richard Guenther  <rguenther@suse.de>
18606
18607         PR tree-optimization/35231
18608         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
18609         if A | B != 1.
18610
18611 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
18612
18613         Revert:
18614         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
18615         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
18616         libgcc_cmp_return mode.
18617
18618 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18619
18620         PR c/28368
18621         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
18622
18623 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
18624
18625         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
18626         multilibs.
18627
18628 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18629
18630         * doc/c-tree.texi: Use `@.' where appropriate.
18631         * doc/extend.texi: Likewise.
18632         * doc/install.texi: Likewise.
18633         * doc/invoke.texi: Likewise.
18634         * doc/loop.texi: Likewise.
18635         * doc/makefile.texi: Likewise.
18636         * doc/md.texi: Likewise.
18637         * doc/passes.texi: Likewise.
18638         * doc/standards.texi: Likewise.
18639         * doc/tm.texi: Likewise.
18640
18641 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
18642
18643         PR middle-end/35196
18644         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
18645         in entry_bb.
18646         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
18647         rather than in entry_bb.
18648
18649 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
18650
18651         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
18652         libgcc_cmp_return mode.
18653
18654 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
18655
18656         PR middle-end/35130
18657         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
18658         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
18659
18660 2008-02-15  Richard Guenther  <rguenther@suse.de>
18661             Zdenek Dvorak  <ook@ucw.cz>
18662
18663         PR tree-optimization/35164
18664         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
18665         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
18666         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
18667         Only propagate addresses which do not have abnormal SSA_NAMEs
18668         in their operands.
18669
18670 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
18671
18672         PR target/35088
18673         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
18674
18675 2008-02-15  Jan Hubicka  <jh@suse.cz>
18676
18677         PR middle-end/35149
18678         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
18679
18680 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
18681
18682         PR middle-end/34621
18683         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
18684         when calculating alignment_pad.
18685
18686 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
18687
18688         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
18689         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
18690         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
18691         and STACK_BOUNDARY define.
18692
18693 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
18694
18695         PR preprocessor/35061
18696         * c-pragma.c (handle_pragma_pop_macro): Check that
18697         pushed_macro_table has been allocated.
18698
18699 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
18700
18701         PR middle-end/35136
18702         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
18703         (force_gimple_operand): Likewise.
18704         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
18705         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
18706         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
18707         (find_interesting_uses_address): Check addressability and alignment
18708         of the base expression only after substituting bases of IVs into it.
18709
18710 2008-02-14  Michael Matz  <matz@suse.de>
18711
18712         PR target/34930
18713         * function.c (instantiate_virtual_regs_in_insn): Reload address
18714         before falling back to reloading the whole operand.
18715
18716 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
18717
18718         * config/s390/s390.c (s390_mainpool_start): Emit the pool
18719         before the first section switch note.
18720
18721 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18722
18723         * doc/bugreport.texi: Update copyright years.
18724         * doc/c-tree.texi: Likewise.
18725         * doc/cfg.texi: Likewise.
18726         * doc/cpp.texi: Likewise.
18727         * doc/cppinternals.texi: Likewise.
18728         * doc/fragments.texi: Likewise.
18729         * doc/frontends.texi: Likewise.
18730         * doc/gcc.texi: Likewise.
18731         * doc/gty.texi: Likewise.
18732         * doc/hostconfig.texi: Likewise.
18733         * doc/implement-c.texi: Likewise.
18734         * doc/libgcc.texi: Likewise.
18735         * doc/loop.texi: Likewise.
18736         * doc/makefile.texi: Likewise.
18737         * doc/options.texi: Likewise.
18738         * doc/passes.texi: Likewise.
18739         * doc/rtl.texi: Likewise.
18740         * doc/sourcebuild.texi: Likewise.
18741         * doc/standards.texi: Likewise.
18742         * doc/tree-ssa.texi: Likewise.
18743         * doc/trouble.texi: Likewise.
18744
18745         * doc/extend.texi: Use @: or add comma where appropriate.
18746         * doc/invoke.texi: Likewise.
18747         * doc/tm.texi: Likewise.
18748
18749 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
18750
18751         PR target/34393
18752         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
18753         to a reg.
18754
18755 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
18756
18757         * doc/md.texi (clz, ctz): Add reference.
18758         * doc/rtl.texi (clz, ctz): Likewise.
18759
18760 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18761
18762         PR other/35148
18763         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
18764         srcdir.
18765
18766 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
18767
18768         * config/s390/s390.c (struct constant_pool): New field
18769         emit_pool_after added.
18770         (s390_mainpool_start): Set the emit_pool_after flag according
18771         to the section switch notes.
18772         (s390_mainpool_finish): Consider emit_pool_after when emitting
18773         the literal pool at the end of the function.
18774         (s390_chunkify_start): Force literal pool splits at section
18775         switch notes.
18776
18777 2008-02-13  Michael Matz  <matz@suse.de>
18778
18779         PR debug/35065
18780         * var-tracking.c (clobber_variable_part): Correctly traverse the
18781         list.
18782
18783 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18784
18785         PR 29673
18786         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
18787         Add -fdump-ipa-inline.
18788         * tree-dump.c (dump_files): Remove tree-inlined dump.
18789         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
18790
18791 2008-02-12  Richard Guenther  <rguenther@suse.de>
18792
18793         PR tree-optimization/35171
18794         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
18795         default defs.
18796
18797 2008-02-12  Richard Guenther  <rguenther@suse.de>
18798
18799         PR middle-end/35163
18800         * fold-const.c (fold_widened_comparison): Use get_unwidened in
18801         value-preserving mode.  Disallow final truncation.
18802
18803 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
18804
18805         PR middle-end/35136
18806         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
18807         code from here to...
18808         (force_gimple_operand): ...here.
18809
18810 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
18811
18812         PR c++/35144
18813         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
18814         non-compatible pointers.
18815         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
18816         different FIELD_DECLs, try harder by comparing field offsets, sizes
18817         and types.
18818
18819         PR inline-asm/35160
18820         * function.c (match_asm_constraints_1): Don't replace the same input
18821         multiple times.
18822
18823 2008-02-12  Anatoly Sokolov <aesok@post.ru>
18824
18825         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
18826         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
18827         (expand_epilogue): Restore RAMPZ register.
18828         * config/avr/avr.md (RAMPZ_ADDR): New constant.
18829
18830 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
18831
18832         * config/i386/cygwin.asm: (__alloca): Correct calling
18833         convention and alignment.
18834         (__chkstk): Force 8 byte stack alignment.
18835
18836 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
18837             Richard Guenther  <rguenther@suse.de>
18838
18839         PR tree-optimization/33992
18840         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
18841         the zero we compare against.
18842
18843 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
18844
18845         PR libfortran/35063
18846         * gthr-win32.h (__gthread_mutex_destroy_function): New function
18847         to CloseHandle after unlocking to prevent accumulation of handle
18848         count.
18849
18850 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18851
18852         PR middle_end/34150
18853         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
18854         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
18855         and update LABEL_NUSES during and after reload.
18856
18857 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
18858
18859         PR middle-end/34627
18860         * combine.c (simplify_if_then_else): Make sure the comparison is
18861         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
18862
18863 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
18864
18865         PR bootstrap/35051
18866         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
18867         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
18868         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
18869         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
18870         * tree.h (get_type_static_bounds): Likewise.
18871
18872 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18873
18874         * doc/invoke.texi (Option Summary, C++ Dialect Options)
18875         (Objective-C and Objective-C++ Dialect Options, Warning Options):
18876         Make -Wfoo language annotations match what the compiler outputs.
18877
18878 2008-02-08  Sa Liu  <saliu@de.ibm.com>
18879
18880         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
18881         intrinsics spu_convts, spu_convtu, spu_convtf.
18882
18883 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
18884
18885         * doc/extend.texi (Function Attributes) <noinline>: Mention
18886         asm ("") as method to keep calls.
18887
18888 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18889
18890         PR other/32754
18891         * doc/options.texi (Options): Replace references to opts.sh with
18892         optc-gen.awk.
18893         * opts-common.c: Likewise.
18894         * optc-gen.awk: Likewise.
18895
18896 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
18897
18898         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
18899
18900 2008-02-07  Richard Henderson  <rth@redhat.com>
18901
18902         PR rtl-opt/33410
18903         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
18904         EXPR_LIST for the REG_EQUAL instead of a comparison with a
18905         funny mode.
18906
18907 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
18908
18909         PR tree-optimization/35085
18910         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
18911         for operand entry oe2 in addition to operand entry oe3 in order to
18912         expose more opportunities for vectorizer sum reduction.
18913
18914 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18915
18916         PR other/35107
18917         * Makefile.in (LIBS): Remove $(GMPLIBS).
18918         (cc1-dummy, cc1): Add $(GMPLIBS).
18919
18920 2008-02-06  Jan Hubicka  <jh@suse.cz>
18921
18922         PR target/23322
18923         * i386.md (moddf_integer): Do not produce partial memory stalls for
18924         targets where it hurts.
18925
18926 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
18927
18928         PR target/35083
18929         * optabs.c (expand_float): Do not check for decimal modes when
18930         expanding unsigned integer through signed conversion.
18931
18932 2008-02-06  Nick Clifton  <nickc@redhat.com>
18933
18934         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
18935         inside the clobber with a match_operand and duplicated operand
18936         number in the constraint.
18937         (ineqbranchsi): Delete redundant comment.
18938
18939 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
18940
18941         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
18942         builtin_define ("__USE_INIT_FINI__").
18943         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
18944         -msx multilibs.
18945         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
18946
18947 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18948
18949         PR documentation/30330
18950         * doc/invoke.texi (C++ Dialect Options)
18951         (Objective-C and Objective-C++ Dialect Options, Warning Options):
18952         For each warning option -Wfoo that allows -Wno-foo, ensure both
18953         -Wfoo and -Wno-foo are listed in the option index.  Fix index
18954         entry of -Wswitch-default, index -Wnormalized= including the
18955         `=', and -Wlarger-than-@var{len} including @var{len}.
18956
18957 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
18958
18959         * config/i386/i386.md (floatunssisf2): Use
18960         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
18961         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
18962         Macroize expander using MODEF mode iterator.
18963
18964 2008-02-05  Diego Novillo  <dnovillo@google.com>
18965
18966         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
18967
18968         PR 33738
18969         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
18970
18971 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18972
18973         PR other/35070
18974         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
18975
18976 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
18977
18978         PR target/35084
18979         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
18980         to indicate if a message should be generated.
18981         (init_cumulative_args): Updated.
18982         (function_value_32): Likewise.
18983
18984 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
18985
18986         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
18987
18988 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
18989
18990         PR target/35083
18991         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
18992         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
18993
18994 2008-02-04  Diego Novillo  <dnovillo@google.com>
18995
18996         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
18997
18998         PR 33738
18999         * tree-vrp.c (vrp_evaluate_conditional): With
19000         -Wtype-limits, emit a warning when comparing against a
19001         constant outside the natural range of OP0's type.
19002
19003 2008-02-04  Richard Guenther  <rguenther@suse.de>
19004
19005         PR middle-end/33631
19006         * expr.c (count_type_elements): Give for unions instead of
19007         guessing.
19008
19009 2008-02-04  Richard Guenther  <rguenther@suse.de>
19010
19011         PR middle-end/35043
19012         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
19013         to TYPE_DOMAINs base type instead of using bitsizetype here.
19014
19015 2008-02-03  Jason Merrill  <jason@redhat.com>
19016
19017         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
19018
19019 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19020
19021         PR other/29972
19022         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
19023         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
19024         (RS/6000 and PowerPC Options): Fix typos and markup.
19025         * doc/passes.texi (Tree-SSA passes): Likewise.
19026
19027 2008-02-02  Michael Matz  <matz@suse.de>
19028
19029         PR target/35045
19030         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
19031         from record_last_reg_set_info.
19032         (record_last_reg_set_info): Take an RTX argument, iterate over all
19033         constituent hardregs.
19034         (record_last_set_info, record_opr_changes): Change calls to
19035         new signature or to record_last_reg_set_info_regno.
19036
19037 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
19038
19039         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
19040
19041 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
19042
19043         PR rtl-optimization/34773
19044         * reg-notes.def (EQUAL): Mention significance of combination of
19045         REG_EQUAL and REG_RETVAL.
19046         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
19047         insn that has a REG_RETVAL.
19048
19049 2008-02-01  Roger Sayle  <roger@eyesopen.com>
19050
19051         PR bootstrap/33781
19052         * configure.ac (--enable-fixed-point): Disable unless explicitly
19053         requested on IRIX.
19054         * configure: Regenerate.
19055
19056 2008-02-01  Richard Guenther  <rguenther@suse.de>
19057
19058         PR other/35042
19059         * invoke.texi (-finline-limit): Remove no longer true parts
19060         of the documentation.  Note that there is no default value.
19061
19062 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
19063             Mark Mitchell  <mark@codesourcery.com>
19064             Ben Elliston  <bje@au.ibm.com>
19065
19066         PR c/29326
19067         * doc/extend.texi (Other Builtins): Document.
19068
19069 2008-01-31  Tom Browder <tom.browder@gmail.com>
19070
19071         * doc/c-tree.texi (Types): Fix grammar.
19072         (Expression trees): Ditto.
19073         * doc/passes.texi (Tree-SSA passes): Ditto.
19074
19075         * doc/configterms.texi (Configure Terms): Fix typo.
19076         * doc/cpp.texi (Common Predefined Macros): Ditto.
19077         * doc/md.texi (Machine Constraints): Ditto.
19078
19079         * doc/makefile.texi (Makefile): Add comma.
19080
19081 2008-01-31  Tom Browder  <tom.browder@gmail.com>
19082             Gerald Pfeifer  <gerald@pfeifer.com>
19083
19084         * doc/sourcebuild.texi (Front End): Remove references to CVS
19085         and CVSROOT/modules.
19086         (Texinfo Manuals): Replace reference to CVS by one to SVN.
19087         (Back End): Remove reference to CVS.
19088
19089 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
19090
19091         PR target/34900
19092         * config/mips/mips.c (gen_load_const_gp): New function, taking a
19093         comment from...
19094         (mips16_gp_pseudo_reg): ...here.
19095         * config/mips/mips.md (load_const_gp): Replace with...
19096         (load_const_gp_<mode>): ...this :P-based insn.
19097
19098 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
19099
19100         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
19101         options. Minor fixes.
19102         (-std): Move reference to standards closer to where language
19103         standards are first mentioned.
19104
19105 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
19106
19107         PR rtl-optimization/34995
19108         * reload.c (alternative_allows_const_pool_ref): Take an rtx
19109         parameter and return a bool.  If the rtx parameter is nonnull,
19110         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
19111         (find_reloads): Update call accordingly.  Pass the new operand
19112         if it needed no address reloads, otherwise pass null.
19113
19114 2008-01-30  Richard Henderson  <rth@redhat.com>
19115
19116         PR c/34993
19117         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
19118         for unbounded arrays.
19119
19120 2008-01-30  Silvius Rus  <rus@google.com>
19121
19122         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
19123
19124 2008-01-30  Jan Hubicka  <jh@suse.cz>
19125
19126         PR target/34982
19127         * i386.c (init_cumulative_args): Use real function declaration when
19128         calling locally.
19129
19130 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
19131
19132         PR rtl-optimization/34998
19133         * global.c (build_insn_chain): Treat non-subreg_lowpart
19134         SUBREGs of pseudos as clobbering all the words covered by the
19135         SUBREG, not just all the bytes.
19136         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
19137         original df_ref rather than an extract parameter.
19138         (global_conflicts): Update call accordingly.
19139
19140 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
19141
19142         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
19143         the overflow check to make it easier to read.
19144         (__fixtfdi): Change the type of the ll member in union
19145         long_double to UDItype_x.
19146
19147 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
19148
19149         PR middle-end/34969
19150         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
19151         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
19152         * tree-inline.c (fold_marked_statements): Call
19153         cgraph_update_edges_for_call_stmt if folding a call statement.
19154         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
19155         debug_generic_stmt calls, reset it back afterwards.
19156
19157         PR c/35017
19158         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
19159         static decls.
19160         * c-typeck.c (build_external_ref): Don't pedwarn about
19161         static vars in current function's scope.
19162
19163 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
19164
19165         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
19166
19167 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
19168
19169         PR c/35002
19170         * ipa-struct-reorg.c: Fix spelling.
19171         * params.def: Ditto.
19172
19173 2008-01-29  Richard Guenther  <rguenther@suse.de>
19174
19175         PR middle-end/35006
19176         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
19177         field.
19178         * tree-inline.c (remap_type): Increment remapping_type_depth
19179         around remapping types.
19180         (copy_body_r): Only add referenced variables if they are referenced
19181         from code, not types.
19182
19183 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
19184
19185         PR c++/34055
19186         PR c++/34103
19187         PR c++/34219
19188         PR c++/34606
19189         PR c++/34753
19190         PR c++/34754
19191         PR c++/34755
19192         PR c++/34919
19193         PR c++/34961
19194         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
19195         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
19196
19197 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
19198
19199         PR target/34412
19200         * config/avr/avr.c (expand_prologue): Use correct QI mode frame
19201         pointer for tiny stack.
19202
19203 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
19204
19205         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
19206
19207 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
19208
19209         * config/vx-common.h: Fix typo in comment.
19210
19211 2008-01-28  Ian Lance Taylor  <iant@google.com>
19212
19213         PR c++/34862
19214         PR c++/33407
19215         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
19216         coalesce pointers if they have different DECL_NO_TBAA_P values.
19217         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
19218         between variables with different DECL_NO_TBAA_P values.
19219
19220 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
19221
19222         PR 31535
19223         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
19224         are not legitimate small data references on SPE targets.
19225
19226 2008-01-28  David Daney  <ddaney@avtrex.com>
19227
19228         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
19229
19230 2008-01-28  David Daney  <ddaney@avtrex.com>
19231
19232         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
19233
19234 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
19235
19236         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
19237         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
19238         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
19239         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
19240         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
19241         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
19242         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
19243         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
19244
19245 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
19246
19247         * basic-block.h (condjump_equiv_p): Fix comment.
19248
19249 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
19250
19251         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
19252         print_generic_stmt_indented): Fix comment.
19253
19254 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
19255
19256         * configure.ac (__stack_chk_fail): Add detecion for availability
19257         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
19258         * configure: Regenerate.
19259
19260 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
19261
19262         PR middle-end/34688
19263         * final.c (output_addr_const): Handle TRUNCATE.
19264
19265 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
19266
19267         PR target/34711
19268         * tree-ssa-loop-ivopts.c (comp_cost): New type.
19269         (zero_cost, infinite_cost): New constants.
19270         (struct cost_pair): Change type of cost to comp_cost.
19271         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
19272         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
19273         New functions.
19274         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
19275         split_address_cost, ptr_difference_cost, difference_cost,
19276         get_computation_cost_at, get_computation_cost,
19277         determine_use_iv_cost_generic, determine_use_iv_cost_address,
19278         determine_use_iv_cost_condition, determine_use_iv_costs,
19279         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
19280         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
19281         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
19282         Change type of cost to comp_cost.
19283         (determine_iv_cost): Increase cost of non-original ivs, instead
19284         of decreasing the cost of original ones.
19285         (get_address_cost): Indicate the complexity of the addressing mode
19286         in comp_cost.
19287         (try_add_cand_for): Prefer using ivs not specific to some object.
19288         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
19289
19290 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
19291             Janis Johnson  <janis187@us.ibm.com>
19292
19293         PR target/34814
19294         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
19295         (TARGET_INSTANTIATE_DECLS): Likewise.
19296         * target.h (expand_to_rtl_hook): New target hook.
19297         (instantiate_decls): Likewise.
19298         * function.c (instantiate_decl): Make non-static.  Rename to...
19299         (instantiate_decl_rtl): ... this.
19300         (instantiate_expr): Use instantiate_decl_rtl.
19301         (instantiate_decls_1): Likewise.
19302         (instantiate_decls): Likewise.
19303         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
19304         * function.h (instantiate_decl_rtl): Add prototype.
19305         * cfgexpand.c (target.h): New include.
19306         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
19307         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
19308         (TARGET_INSTANTIATE_DECLS): Likewise.
19309         (TARGET_INITIALIZER): New target hooks added.
19310         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
19311         New prototype.
19312         * config/rs6000/rs6000.c (tree-flow.h): New include.
19313         (machine_function): Add sdmode_stack_slot field.
19314         (rs6000_alloc_sdmode_stack_slot): New function.
19315         (rs6000_instantiate_decls): Likewise.
19316         (rs6000_secondary_memory_needed_rtx): Likewise.
19317         (rs6000_check_sdmode): Likewise.
19318         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
19319         (TARGET_INSTANTIATE_DECLS): Likewise.
19320         (rs6000_hard_regno_mode_ok): Allow SDmode.
19321         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
19322         (rs6000_emit_move): Handle SDmode.
19323         (function_arg_advance): Likewise.
19324         (function_arg): Likewise.
19325         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
19326         SDmode var args for 32-bit compiles.
19327         (rs6000_secondary_reload_class): Handle SDmode.
19328         (rs6000_output_function_epilogue): Likewise.
19329         (rs6000_function_value): Simplify if statement.
19330         (rs6000_libcall_value): Likewise.
19331         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
19332         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
19333         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
19334         (movsd_hardfloat): New define_insn.
19335         (movsd_softfloat): Likewise.
19336         (movsd_store): Likewise.
19337         (movsd_load): Likewise.
19338         (extendsddd2): Likewise.
19339         (extendsdtd2): Likewise.
19340         (truncddsd2): Likewise.
19341         (movdd_hardfloat64): Fixup comment.
19342         (UNSPEC_MOVSD_LOAD): New constant.
19343         (UNSPEC_MOVSD_STORE): Likewise.
19344
19345 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
19346
19347         PR c++/34965
19348         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
19349         TRUTH_XOR_EXPR.
19350         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
19351         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
19352         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
19353         and TRUTH_XOR_EXPR.
19354
19355 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
19356
19357         PR target/34794
19358         * config.gcc: Separate AIX 5.3 from AIX 6.1.
19359         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
19360         __LONGDOUBLE128 too.
19361         * config/rs6000/aix61.h: New file.
19362
19363 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
19364
19365         PR rtl-optimization/34959
19366         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
19367         popcount and parity rtxes the same mode as their operand.
19368         Truncate or extend the result to the return value's mode
19369         if necessary.
19370
19371 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
19372
19373         PR target/34981
19374         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
19375         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
19376         to GOT_VERSION_REGNUM.
19377         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
19378         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
19379         * config/mips/mips.c (mips_emit_call_insn): New function.
19380         (mips_call_tls_get_addr): Call mips_expand_call directly.
19381         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
19382         emit_call_insn.
19383         (mips16_build_call_stub): Likewise.  Return the call insn or null.
19384         (mips_expand_call): Update the call to mips16_build_call_stub
19385         accordingly and a remove redundant condition.  Assert that MIPS16
19386         stubs do not use lazy binding.  Use mips_emit_call_insn and return
19387         the call insn.
19388         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
19389         TARGET_USE_GOT.
19390         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
19391         (mips_avoid_hazard): Remove hazard_set handling.
19392         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
19393         (UNSPEC_RESTORE_GP): ...this.
19394         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
19395         (FAKE_CALL_REGNO): Rename to...
19396         (GOT_VERSION_REGNUM): ...this.
19397         (type): Add "ghost" value.  Add an associated insn reservation.
19398         (hazard_set): Remove.
19399         (exception_receiver): Rename to...
19400         (restore_gp): ...this and update the unspec identifier accordingly.
19401         (exception_receiver, nonlocal_got_receiver): New expanders.
19402         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
19403         FAKE_CALL_REGNO.  Remove hazard_set attribute.
19404         (set_got_version, update_got_version): New patterns.
19405
19406 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
19407
19408         PR target/34970
19409         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
19410
19411 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
19412
19413         PR other/31955
19414         * doc/install.texi2html: Generate gcc-vers.texi.
19415
19416 2008-01-25  DJ Delorie  <dj@redhat.com>
19417
19418         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
19419
19420 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
19421
19422         * config/c4x: Remove directory.
19423         * config.gcc (crx-*, mt-*): Mark obsolete.
19424         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
19425         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
19426         sh-*-rtemscoff*): Remove cases.
19427         * defaults.h (C4X_FLOAT_FORMAT): Remove.
19428         * real.c (encode_c4x_single, decode_c4x_single,
19429         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
19430         c4x_extended_format): Remove.
19431         * real.h (c4x_single_format, c4x_extended_format): Remove.
19432         * doc/extend.texi (interrupt, naked): Remove mention of attributes
19433         on C4x.
19434         (Pragmas): Remove comment about c4x pragmas.
19435         * doc/install.texi (c4x): Remove target-specific instructions.
19436         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
19437         * doc/md.texi (Machine Constraints): Remove C4x documentation.
19438         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
19439         refer to C4x source files as examples.
19440         (C4X_FLOAT_FORMAT): Remove documentation.
19441
19442 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
19443
19444         * config/bfin/bfin.c (override_options): Reorder tests so that
19445         flag_pic gets enabled for -msep-data.
19446
19447 2008-01-25  Richard Guenther  <rguenther@suse.de>
19448
19449         PR middle-end/32244
19450         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
19451         to its bitfield precision if required.
19452
19453 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
19454
19455         PR middle-end/33880
19456         * tree-nested.c (walk_omp_for): New function.
19457         (convert_nonlocal_reference, convert_local_reference): Call
19458         walk_omp_for on OMP_FOR.
19459         (convert_call_expr): Call walk_body on OMP_FOR's
19460         OMP_FOR_PRE_INIT_BODY.
19461
19462 2008-01-25  Richard Guenther  <rguenther@suse.de>
19463
19464         PR tree-optimization/34966
19465         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
19466         default defs and PHI_NODEs we have to insert after the
19467         defining statement.
19468
19469 2008-01-24  Nick Clifton  <nickc@redhat.com>
19470
19471         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
19472         Provide a default definition.
19473         (LIBGCC2_UNITS_PER_WORD): Likewise.
19474
19475         * config/stormy16/stormy16.c: Include df.h for the prototype
19476         for df_regs_ever_live_p.
19477         (xstormy16_expand_builtin_va_start): Convert the stack offset
19478         into a component_ref and then use POINTER_PLUS_EXPR to add it
19479         to the incoming_virtual_args_rtx.
19480         (xstormy16_gimplify_va_arg_expr): Rename to
19481         xstormy16_gimplify_va_arg_expr.
19482         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
19483         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
19484         xstormy16_gimplify_va_arg_expr.
19485         Fix up some formatting issues.
19486
19487         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
19488         Move to predicates.md.
19489         (xs_hi_general_operand): Likewise.
19490         (xs_hi_nonmemory_operand): Likewise.
19491         * config/stormy16/predicates.md:
19492         (xstormy16_carry_plus_operand): New predicate.
19493         (xs_hi_general_operand): New predicate.
19494         (xs_hi_nonmemory_operand): New predicate.
19495         * config/stormy16/stormy16-protos.h:
19496         (xstormy16_carry_plus_operand): Delete prototype.
19497         (xs_hi_general_operand): Likewise.
19498         (xs_hi_nonmemory_operand): Likewise.
19499
19500         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
19501         modifiers as they are no longer needed and they can trigger
19502         reload spill failures.
19503
19504         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
19505         with a match_operand in order to help reload.
19506
19507         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
19508         constraint with 'e' for the 8th alternative as this version of
19509         the mov.w instruction only accepts the lower 8 registers.
19510
19511 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
19512
19513         PR target/34856
19514         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
19515         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
19516         vector elements.
19517
19518 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
19519
19520         PR middle-end/33333
19521         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
19522
19523 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
19524
19525         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
19526         New functions.
19527         (remove_structure): Update allocations list before removing structure.
19528
19529 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
19530
19531         * ipa-struct-reorg.c (is_safe_cond_expr,
19532         create_new_stmts_for_cond_expr): Use integer_zerop function,
19533         that recognize not only zero-pointer, but zero-integer too.
19534
19535 2008-01-25  Ben Elliston  <bje@au.ibm.com>
19536
19537         PR other/22232
19538         * fixproto: Escape "." in sed expression that strips leading "./".
19539
19540 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
19541
19542         PR driver/34904
19543         * gcc.c (SWITCH_OK): Removed.
19544         (SWITCH_LIVE): Changed to bit.
19545         (SWITCH_FALSE): Likewise.
19546         (SWITCH_IGNORE): Likewise.
19547         (switchstr): Change live_cond to unsigned int.
19548         (process_command): Replace SWITCH_OK with 0.
19549         (do_self_spec): Likewise.
19550         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
19551         (give_switch): Likewise.
19552         (used_arg): Likewise.
19553         (do_spec_1): Set the SWITCH_IGNORE bit.
19554         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
19555         bits.  Set the SWITCH_LIVE bit.
19556
19557 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
19558
19559         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
19560
19561 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
19562
19563         PR tree-optimization/34472
19564         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
19565         parameter to a "bool *" and set *DATA to false if there is
19566         an unsafe access.  Do not delete the structure here.
19567         (check_cond_exprs): Delete it here instead.
19568         (check_cond_exprs, exclude_cold_structs): Do not increase
19569         I when removing a structure.
19570
19571 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
19572
19573         PR target/34856
19574         * config/i386/i386.c (ix86_expand_vector_init): Consider only
19575         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
19576
19577 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
19578
19579         PR middle-end/34934
19580         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
19581         a fixed vector for stack.
19582
19583 2008-01-24  Ben Elliston  <bje@au.ibm.com>
19584
19585         PR c++/25701
19586         * doc/gcc.texi (Software development): Add a direntry for g++.
19587
19588 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
19589
19590         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
19591         stale and straggling -fforce-addr comments above.
19592
19593         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
19594         define.
19595         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
19596         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
19597
19598 2008-01-23  Michael Matz  <matz@suse.de>
19599
19600         PR debug/34895
19601         * dwarf2out.c (force_type_die): Use modified_type_die instead of
19602         gen_type_die.
19603
19604 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
19605
19606         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
19607         malloc result type.
19608
19609 2008-01-23 Anatoly Sokolov <aesok@post.ru>
19610
19611         * config/avr/avr.c (avr_current_arch): New variable.
19612         (avr_arch_types): Add 'avr31' and 'avr51' entries.
19613         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
19614         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
19615         (avr_override_options): Init 'avr_current_arch'.
19616         (base_arch_s): Move from here...
19617         * config/avr/avr.h (base_arch_s): ... here. Add new members
19618         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
19619         'mega' to 'have_jmp_call'.
19620         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
19621         "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
19622         macros.
19623         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
19624         architectures.
19625         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
19626         MULTILIB_MATCHES): Ditto.
19627
19628 2008-01-23  Richard Guenther  <rguenther@suse.de>
19629
19630         PR middle-end/31529
19631         * cgraphunit.c (cgraph_reset_node): Always mark the node
19632         not reachable if it is not queued already.
19633
19634 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
19635
19636         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
19637         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
19638         (cputype_selected): New static variable.
19639         (bfin_handle_option): Set it if -mcpu is used.
19640         (override_option): Select default set of workarounds if no cpu type
19641         selected on the command line.
19642         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
19643
19644         From  Michael Frysinger  <michael.frysinger@analog.com>
19645         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
19646         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
19647
19648         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
19649         for bf547, bf523, bf524, and bf526.
19650         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
19651         bf526.
19652         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
19653         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
19654         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
19655         __ADSPBF547__ and __ADSPBF54x__ for bf547.
19656         * doc/invoke.texi (Blackfin Options): Document that
19657         -mcpu now accept bf547, bf523, bf524, and bf526.
19658
19659 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
19660
19661         PR rtl-optimization/34628
19662         * combine.c (try_combine): Stop and undo after the first combination
19663         if an autoincrement side-effect on the first insn has effectively
19664         been lost.
19665
19666 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
19667
19668         PR target/34529
19669         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
19670         Offset addresses are not valid for Altivec or paired float modes.
19671
19672 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
19673
19674         PR c++/34607
19675         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
19676         if DECL_INITIAL (decl) is error_mark_node.
19677
19678         PR c++/34914
19679         * c-common.c (handle_vector_size_attribute): Only allow
19680         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
19681         the same way as pointer, array etc. types.
19682         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
19683
19684         PR c++/34917
19685         * tree.c (build_type_attribute_qual_variant): Call
19686         build_qualified_type if attributes are equal, but quals are not.
19687
19688 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
19689
19690         PR 32102
19691         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
19692         * flags.h (warn_strict_aliasing): Remove.
19693         (warn_strict_overflow): Remove.
19694         * opts.c (warn_strict_aliasing): Remove.
19695         (warn_strict_overflow): Remove.
19696         * c-opts.c (c_common_handle_option): -Wall only sets
19697         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
19698         (c_common_post_options): Give default values to -Wstrict-aliasing
19699         and -Wstrict-overflow if they are uninitialized.
19700         * common.opt (Wstrict-aliasing): Specify Var and Init.
19701         (Wstrict-overflow): Likewise.
19702
19703 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
19704
19705         PR rtl-optimization/26854
19706         PR rtl-optimization/34400
19707         PR rtl-optimization/34884
19708         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
19709         DF_RD->gen.
19710         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
19711         (df_rd_bb_info.expanded_lr_out): Deleted
19712         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
19713         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
19714         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
19715         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
19716         Removed code to allocate, initialize or free expanded_lr_out.
19717         (df_rd_bb_local_compute_process_def): Restructured to make more
19718         understandable.
19719         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
19720         sets if the sets are being trimmed.
19721
19722 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
19723
19724         PR bootstrap/32287
19725         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
19726         (as_vers): Likewise.
19727         * configure: Regenerated.
19728
19729 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
19730
19731         PR middle-end/33092
19732         * tree-pass.h (pass_build_alias): New pass.
19733         * tree-ssa-alias.c (gate_build_alias): New.
19734         (pass_build_alias): New.
19735         * passes.c (init_optimization_passes): Add pass_build_alias after
19736         pass_create_structure_vars.
19737
19738 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
19739
19740         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
19741         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
19742         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
19743         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
19744         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
19745         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
19746         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
19747         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
19748         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
19749         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
19750         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
19751         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
19752         * config/s390/s390.md (FP_ALL): New mode iterator.
19753         (_d): New mode attribute.
19754         ("*signbit<mode>2>"): Changed mode of first operand.
19755         ("isinf<mode>2"): Changed mode of first operand.
19756         ("*TDC_insn"): Adaptation for DFP modes.
19757
19758 2008-01-22  Ben Elliston  <bje@au.ibm.com>
19759
19760         * tree.c (check_qualified_type): Improve function description.
19761
19762 2008-01-21  Jason Merrill  <jason@redhat.com>
19763
19764         PR c++/34196
19765         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
19766         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
19767         if it is set.
19768
19769 2008-01-21  DJ Delorie  <dj@redhat.com>
19770
19771         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
19772         return zero.
19773
19774 2008-01-21  Richard Guenther  <rguenther@suse.de>
19775
19776         PR middle-end/34856
19777         * tree-cfg.c (verify_expr): Allow all invariant expressions
19778         instead of just constant class ones as reference argument.
19779         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
19780         like any other constant.
19781         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
19782
19783 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
19784
19785         * regmove.c (fixup_match_1): Update call crossed frequencies.
19786
19787 2008-01-21  Richard Guenther  <rguenther@suse.de>
19788
19789         PR c/34885
19790         * tree-inline.c (setup_one_parameter): Deal with mismatched
19791         types using a VIEW_CONVERT_EXPR.
19792
19793 2008-01-21  Alon Dayan  <alond@il.ibm.com>
19794             Olga Golovanevsky  <olga@il.ibm.com>
19795
19796         PR tree-optimization/34701
19797         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
19798         when the structure size is not a power of 2.
19799
19800 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
19801
19802         * doc/install.texi: Add doc for --enable-checking=df.
19803
19804 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
19805
19806         PR rtl-optimization/34808
19807         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
19808
19809 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
19810
19811         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
19812         input.
19813
19814 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
19815
19816         PR rtl-optimization/26854
19817         PR rtl-optimization/34400
19818         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
19819         DF_RD->gen.
19820         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
19821         (df_rd_bb_info.expanded_lr_out): New.
19822         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
19823         * loop_iv.c (iv_analysis_loop_init): Ditto.
19824         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
19825         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
19826         Added code to allocate, initialize or free expanded_lr_out.
19827         (df_rd_bb_local_compute_process_def): Restructured to make
19828         more understandable.
19829         (df_rd_confluence_n): Add code to do nothing with fake edges and
19830         code to no apply invalidate_by_call sets if the sets are being trimmed.
19831         (df_lr_local_finalize): Renamed to df_lr_finalize.
19832         (df_live_local_finalize): Renamed to df_live_finalize.
19833
19834 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
19835
19836         PR target/34831
19837         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
19838         deciding whether to use reciprocal instructions.
19839
19840 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
19841
19842         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
19843         dwarf2out_note_section_used if cold_text_section is NULL.
19844
19845 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
19846
19847         PR gcov-profile/34610
19848         * tree-cfg.c (make_edges): Mark both outgoing edges from
19849         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
19850         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
19851         from OMP_FOR and OMP_CONTINUE outgoing edges.
19852
19853         * tree-profile.c (tree_profiling): Return early if
19854         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
19855         at the end.
19856         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
19857         from cfun to child_cfun.
19858         * function.h (struct function): Add after_tree_profile bit.
19859
19860 2008-01-19 Anatoly Sokolov <aesok@post.ru>
19861
19862         * config/avr/avr.S (_exit): Disable interrupt.
19863
19864 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
19865             Steven Bosscher  <stevenb.gcc@gmail.com>
19866
19867         PR rtl-optimization/26854
19868         PR rtl-optimization/34400
19869         * df-problems.c (df_live_scratch): New scratch bitmap.
19870         (df_live_alloc): Allocate df_live_scratch when doing df_live.
19871         (df_live_reset): Clear the proper bitmaps.
19872         (df_live_bb_local_compute): Only process the artificial defs once
19873         since the order is not important.
19874         (df_live_init): Init the df_live sets only with the variables
19875         found live by df_lr.
19876         (df_live_transfer_function): Use the df_lr sets to prune the
19877         df_live sets as they are being computed.
19878         (df_live_free): Free df_live_scratch.
19879
19880 2008-01-18  Ian Lance Taylor  <iant@google.com>
19881
19882         * common.opt: Add fmerge-debug-strings.
19883         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
19884         flag_merge_debug_strings rather than flag_merge_constants.
19885         * doc/invoke.texi (Option Summary): Mention
19886         -fmerge-debug-strings.
19887         (Debugging Options): Document -fmerge-debug-strings.
19888
19889 2008-01-18  Ian Lance Taylor  <iant@google.com>
19890
19891         PR c++/33407
19892         * tree.h (DECL_IS_OPERATOR_NEW): Define.
19893         (struct tree_function_decl): Add new field operator_new_flag.
19894         * tree-inline.c (expand_call_inline): When inlining a call to
19895         operator new, force the return value to go into a variable, and
19896         set DECL_NO_TBAA_P on that variable.
19897         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
19898
19899 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
19900
19901         PR debug/34484
19902         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
19903         DWARF2_DEBUGGING_INFO.
19904         (dwarf2out_note_section_used): Ditto.  Add prototype.
19905         (have_multiple_function_sections, text_section_used,
19906         cold_text_section_used, *cold_text_sections): Move declarations
19907         before their uses.
19908
19909 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
19910
19911         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
19912         field and add signal_ra.
19913         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
19914         assignments to frame state pc.  Move end of stack check after
19915         MD_FALLBACK_FRAME_STATE_FOR.
19916         (uw_update_context_1): Use frame state signal_regs if set, instead
19917         of checking signal_frame flag.
19918         (uw_update_context): Use frame state signal_ra if set.
19919         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
19920         * config/xtensa/linux-unwind.h: New file.
19921
19922 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
19923
19924         * modulo-sched.c (get_sched_window): Fix comment typo.
19925
19926 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
19927
19928         PR tree-optimization/34648
19929         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
19930
19931 2008-01-17  Anatoly Sokolov <aesok@post.ru>
19932
19933         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
19934         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
19935
19936 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
19937
19938         PR rtl-optimization/34400
19939         * df-core.c (df_worklist_dataflow_overeager,
19940         df_worklist_dataflow_doublequeue): New functions.
19941         (df_worklist_dataflow): Two different worklist solvers.
19942         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
19943         New param.
19944
19945 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
19946
19947         PR testsuite/34821
19948         * doc/invoke.texi: Document the dependence on pthread for fopenmp
19949         and ftree-parallelize-loops.
19950
19951 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
19952
19953         PR rtl-optimization/34826
19954         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
19955
19956 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
19957
19958         * global.c (find_reg): Mark the eh regs as used if necessary.
19959         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
19960         * ra.h (struct allocno): no_eh_reg field added.  Changed
19961         no_stack_reg type to bitfield.
19962
19963 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
19964
19965         * tree.c (substitute_in_expr): Add missing 'break'.
19966
19967 2008-01-17  Richard Guenther  <rguenther@suse.de>
19968
19969         PR tree-optimization/34825
19970         * tree-ssa-math-opts.c (is_division_by): Do not recognize
19971         x / x as division to handle.
19972
19973 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19974
19975         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
19976         "-pthread" is specified.
19977         * pa-hpux11.h (LIB_SPEC): Likewise.
19978
19979 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
19980             Peter Bergner  <bergner@vnet.ibm.com>
19981
19982         PR rtl-optimization/33796
19983         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
19984
19985 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19986
19987         PR libgfortran/34699
19988         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
19989         static links.
19990         * pa-hpux10.h (LINK_SPEC): Likewise.
19991         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
19992
19993 2008-01-16  Richard Guenther  <rguenther@suse.de>
19994
19995         PR middle-end/32628
19996         * fold-const.c (fold_convert_const_int_from_int): Do not
19997         set overflow if that occured only because of a sign extension
19998         change when converting from/to a sizetype with the same
19999         precision and signedness.
20000
20001 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
20002
20003         PR debug/34249
20004         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
20005         location address to the correct place.  Update copyright year.
20006
20007 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
20008
20009         * lambda-code.c (lambda_transform_legal_p): Handle the case of
20010         no dependences in the dependence_relations vector.
20011
20012 2008-01-16  Jan Hubicka  <jh@suse.cz>
20013
20014         PR rtl-optimization/31396
20015         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
20016         * cfg.c (dump_reg_info): Print it.
20017         * regs.h (struct reg_info_t): add freq_calls_crossed.
20018         (REG_FREQ_CALLS_CROSSED): New macro.
20019         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
20020         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
20021         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
20022         regmove_optimize): Update call crossed frequencies.
20023         * local-alloc.c (struct qty): Add freq_calls_crossed.
20024         (alloc_qty): Copute freq_calls_crossed.
20025         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
20026         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
20027         * ra.h (struct allocno): Add freq_calls_crossed.
20028
20029 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
20030
20031         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
20032         libgomp when compiling with ftree-parallelize-loops.
20033         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
20034
20035 2008-01-16  Richard Guenther  <rguenther@suse.de>
20036
20037         PR tree-optimization/34769
20038         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
20039         * tree.c (int_cst_value): Instead make this function more
20040         permissive in what it accepts as valid input.  Document this
20041         function always sign-extends the value.
20042
20043 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
20044             Richard Guenther  <rguenther@suse.de>
20045
20046         PR c/34668
20047         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
20048         (gimple_fold_indirect_ref_rhs): ... this.
20049         (gimple_fold_indirect_ref): New function with foldings
20050         that preserve lvalueness.
20051         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
20052         * tree-flow.h (gimple_fold_indirect_ref): Declare.
20053         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
20054         to fold an INDIRECT_REF, fall back to the old use of
20055         fold_indirect_ref_1.
20056
20057 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
20058
20059         * tree-data-ref.c (subscript_dependence_tester_1): Call
20060         free_conflict_function.
20061         (compute_self_dependence): Same.
20062
20063 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
20064
20065         PR debug/34249
20066         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
20067         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
20068         function global.
20069         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
20070         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
20071         for DWARF2_UNWIND_INFO targets.
20072
20073 2008-01-16  Richard Guenther  <rguenther@suse.de>
20074
20075         PR c/34768
20076         * c-typeck.c (common_pointer_type): Do not merge inconsistent
20077         type qualifiers for function types.
20078
20079 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
20080
20081         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
20082         loop_iterator li from previous commit.
20083
20084 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
20085
20086         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
20087
20088 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
20089
20090         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
20091         (parallelize_loops): Don't parallelize irreducible components.
20092
20093 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
20094
20095         PR c++/24924
20096         * c-opts (c_common_post_options): Do not enable CPP
20097         flag_pedantic_errors by default.
20098
20099 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
20100
20101         PR rtl-optimization/31944
20102         * cse.c (remove_pseudo_from_table): New function.
20103         (merge_equiv_classes): Use above function to remove pseudo-registers.
20104         (invalidate): Likewise.
20105
20106 2008-01-13  Richard Guenther  <rguenther@suse.de>
20107
20108         PR middle-end/34601
20109         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
20110         instead of TYPE_MODE to deal with calls from expand_one_error_var.
20111
20112 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
20113
20114         * gcse.c (cprop_jump): Call validate_unshare_change instead of
20115         validate_change to unshare the source of the PC set.
20116
20117 2008-01-12  Jan Hubicka  <jh@suse.cz>
20118
20119         PR middle-end/32135
20120         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
20121         references above array bounds.  This might trigger bounds checks for
20122         pointers to arrays.
20123
20124 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
20125
20126         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
20127         new_replaceable_dependencies.
20128
20129 2008-01-12  Doug Kwan  <dougkwan@google.com>
20130
20131         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
20132         instead of OPT_Wreturn_type in warning due to ignored return type
20133         qualifiers.
20134         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
20135         options included in -Wextra.
20136         * c.opt: New option -Wignored_qualifiers.
20137         * doc/invoke.texi (Warning Options, -Wextra): Add new option
20138         -Wignore_qualifiers.
20139         (-Wignored-qualifiers): Document.
20140         (-Wreturn-type): Remove description of functionality now handled
20141         by -Wignored-qualifiers.
20142
20143 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
20144
20145         PR ada/33788
20146         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
20147         NOP_EXPR if it is between integral types with the same precision.
20148
20149 2008-01-12  Jan Hubicka  <jh@suse.cz>
20150
20151         PR other/28023
20152         * invoke.texi (max-inline-recursive-depth): Fix default value.
20153
20154 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
20155
20156         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
20157         correct type.
20158
20159 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
20160
20161         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
20162
20163 2008-01-11  James E. Wilson  <wilson@specifix.com>
20164
20165         PR target/26015
20166         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
20167
20168 2008-01-11  Anatoly Sokolov <aesok@post.ru>
20169
20170         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
20171         save/restore frame pointer register and don't use 'call-prologues'
20172         optimization in function with "OS_task" attribute.
20173
20174 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
20175
20176         PR middle-end/31309
20177         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
20178         when copying to memory.
20179
20180 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
20181
20182         PR rtl-optimization/30905
20183         * cfgcleanup.c: Include dce.h
20184         (crossjumps_occured): New global variable.
20185         (try_crossjump_bb): Exit loop after finding a fallthru edge.
20186         If something changed, set crossjumps_occured to true.
20187         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
20188         Don't add/remove fake edges to exit here...
20189         (cleanup_cfg): ...but do it here, when crossjumping.
20190         Run a fast DCE when successful crossjumps occured in the latest
20191         iteration of try_optimize_cfg.
20192
20193 2008-01-11  Richard Guenther  <rguenther@suse.de>
20194
20195         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
20196         (struct vn_unary_op_s): Likewise.
20197         (vn_reference_insert): Free old reference on hash collision.
20198
20199 2008-01-10  Raksit Ashok  <raksit@google.com>
20200
20201         PR rtl-optimization/27971
20202         * combine.c (find_split_point): Split PLUS expressions which are
20203         inside a MEM rtx, and whose first operand is complex.
20204
20205 2008-01-10  DJ Delorie  <dj@redhat.com>
20206
20207         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
20208         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
20209         (m32c_hard_regno_ok): Call the underlying function.
20210
20211 2008-01-10  Richard Guenther  <rguenther@suse.de>
20212
20213         PR middle-end/34683
20214         * tree-cfg.c (tree_merge_blocks): Do not go through the
20215         full-blown folding and stmt updating path if we just deal
20216         with virtual operands.
20217         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
20218         test for abnormal SSA_NAMEs.
20219
20220 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
20221
20222         PR middle-end/34641
20223         * reload.c (push_reload): Add assertions.  All constants from
20224         reg_equiv_constant should have been used for replacing the respective
20225         pseudo earlier.
20226         (find_reloads_address): Invoke find_reloads_address_part for
20227         constant taken from the reg_equiv_constant array.
20228
20229 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
20230
20231         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
20232         field (valnum) the first in the struct.  Replace bools with
20233         unit bit fields.
20234
20235 2008-01-10  Richard Guenther  <rguenther@suse.de>
20236
20237         PR tree-optimization/34651
20238         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
20239         types and ordering for masking and converting.
20240
20241 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
20242
20243         PR tree-optimization/34017
20244         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
20245         also for PHI_NODE expressions.
20246
20247 2008-01-09  Jan Hubicka  <jh@suse.cz>
20248
20249         PR tree-optimization/34708
20250         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
20251         based on number of case labels.
20252         (init_inline_once): Remove switch_cost.
20253         * tree-inline.h (eni_weights_d): Remove switch_cost.
20254
20255 2008-01-09  Richard Guenther  <rguenther@suse.de>
20256         Andrew Pinski  <andrew_pinski@playstation.sony.com>
20257
20258         PR middle-end/30132
20259         * gimplify.c (gimplify_cond_expr): Do not create an addressable
20260         temporary if an rvalue is ok or an lvalue is not required.
20261
20262 2008-01-09  Richard Guenther  <rguenther@suse.de>
20263
20264         PR middle-end/34458
20265         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
20266         adjust return type.
20267
20268 2008-01-09  Richard Guenther  <rguenther@suse.de>
20269
20270         PR middle-end/34679
20271         * tree.c (host_integerp): Check for sizetype only if the
20272         type is an integer type.
20273
20274 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
20275
20276         PR debug/26364
20277         * opts.c (decode_options): Disable inlining of functions called
20278         once if not in unit-at-a-time mode.
20279
20280 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
20281
20282         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
20283
20284 2008-01-08  Richard Guenther  <rguenther@suse.de>
20285
20286         PR middle-end/31863
20287         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
20288         out early if the result will be unused.
20289
20290 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
20291
20292         PR target/34709
20293         Revert:
20294
20295         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
20296         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
20297         for TARGET_RECIP.
20298
20299 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
20300
20301         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
20302         for vectorization tuned.
20303
20304 2008-01-08  Richard Guenther  <rguenther@suse.de>
20305
20306         PR tree-optimization/34683
20307         * tree-ssa-operands.c (operand_build_cmp): Export.
20308         * tree-ssa-operands.h (operand_build_cmp): Declare.
20309         * tree-vn.c (vuses_compare): Remove.
20310         (sort_vuses): Use operand_build_cmp.
20311         (sort_vuses_heap): Likewise.
20312         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
20313         to re-use old VEC if available.  Do not sort already sorted VUSEs.
20314         (vdefs_to_vec): Do not sort already sorted VDEFs.
20315
20316 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
20317
20318         PR middle-end/34694
20319         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
20320
20321 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
20322
20323         PR target/34702
20324         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
20325         limitations of reciprocal sequences on x86 targets.
20326
20327 2008-01-08  Richard Guenther  <rguenther@suse.de>
20328
20329         PR tree-optimization/34683
20330         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
20331
20332 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
20333
20334         PR target/34622
20335         * config/darwin.c (darwin_mergeable_string_section): Don't use
20336         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
20337
20338 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
20339
20340         PR target/34682
20341         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
20342         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
20343         predicates of op0 and op1 to register_operand.
20344         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
20345         expander using X87MODEF mode iterator.  Change predicates of
20346         op0 and op1 to register_operand.
20347         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
20348         corresponding patterns and macroize using MODEF macro.  Change
20349         predicates of op0 and op1 to register_operand and remove
20350         "m" constraint. Disparage "r" alternative with "!".
20351         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
20352         macroize using X87MODEF macro.  Change predicates of op0 and op1
20353         to register_operand and remove "m" constraint.  Disparage "r"
20354         alternative with "!".
20355         (absneg splitter with memory operands): Remove.
20356         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
20357         patterns and macroize using X87MODEF mode iterator.
20358         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
20359         Change predicate of op1 to register_operand.
20360         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
20361         for memory operands.
20362
20363 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
20364
20365         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
20366
20367 2008-01-07  Richard Guenther  <rguenther@suse.de>
20368
20369         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
20370         fields.
20371
20372 2008-01-07  Richard Guenther  <rguenther@suse.de>
20373
20374         PR tree-optimization/34683
20375         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
20376         VOPs of the needed size to save memory.  Use VEC_quick_push
20377         to save compile-time.
20378         (vdefs_to_vec): Likewise.
20379
20380 2008-01-07  Sa Liu  <saliu@de.ibm.com>
20381
20382         * config/spu/spu.md (divdf3): Genetate inline code for double
20383         division.  The implementation doesn't handle INF or NAN, therefore it
20384         only applies when -ffinite-math-only is given.
20385
20386 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
20387
20388         PR libstdc++/34680
20389         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
20390         * doc/cpp.texi ([Common Predefined Macros]): Document.
20391
20392 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
20393
20394         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
20395         order to use commutative addition instead of subtraction.
20396
20397 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
20398             Mircea Namolaru  <namolaru@il.ibm.com>
20399             Vladimir Yanovsky  <yanov@il.ibm.com>
20400             Revital Eres  <eres@il.ibm.com>
20401
20402         PR tree-optimization/34263
20403         * tree-outof-ssa.c (process_single_block_loop_latch,
20404         contains_tree_r): New functions.
20405         (analyze_edges_for_bb): Call process_single_block_loop_latch
20406         function to empty single-basic-block latch block if possible.
20407
20408 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
20409
20410         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
20411         for TARGET_RECIP.
20412         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
20413
20414 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
20415
20416         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
20417
20418 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
20419
20420         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
20421
20422 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
20423
20424         PR tree-optimization/34618
20425         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
20426         flag from T.
20427
20428 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
20429
20430         PR target/34673
20431         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
20432         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
20433         Update copyright year.
20434
20435         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
20436         Update copyright year.
20437         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
20438         using NR fixup.
20439
20440 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
20441
20442         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
20443         edge does not point to current bb before changing need_assert.
20444
20445 2008-01-04  Richard Guenther  <rguenther@suse.de>
20446
20447         PR middle-end/34029
20448         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
20449         for verifying purposes if they are is_gimple_min_invariant.
20450
20451 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
20452
20453         PR tree-optimization/34448
20454         PR tree-optimization/34465
20455         * gimplify.c (gimplify_init_constructor): Add new parameter
20456         notify_temp_creation.  Use it.
20457         (gimplify_modify_expr_rhs): Take volatiles into account when
20458         optimizing constructors.
20459         Do not optimize constructors if gimplify_init_constructor will dump to
20460         memory.
20461         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
20462         * gcc.c-torture/compile/pr34448.c: New.
20463
20464 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
20465
20466         PR gcov-profile/34609
20467         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
20468         return_slot if result is TREE_ADDRESSABLE.
20469
20470 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
20471
20472         * config/mips/mips.md (sqrt_condition): Tweak comment.
20473         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
20474
20475 2008-01-03  Tom Tromey  <tromey@redhat.com>
20476
20477         PR c/34457
20478         * c-common.c (c_type_hash): Handle VLAs.
20479
20480 2008-01-03  Jan Hubicka  <jh@suse.cz>
20481
20482         PR tree-optimization/31081
20483         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
20484         0 when inlining and not inlining to first basic block.
20485         (remap_decl): When var is initialized to 0, don't set default_def.
20486         (expand_call_inline): Set entry_bb.
20487         * tree-inline.h (copy_body_data): Add entry_bb.
20488
20489 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
20490
20491         PR c++/34619
20492         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
20493         before returning.
20494
20495         PR tree-optimization/29484
20496         * tree-inline.c (inline_forbidden_p_2): New function.
20497         (inline_forbidden_p): Disallow inlining if some static var
20498         has an address of a local LABEL_DECL in its initializer.
20499         * doc/extend.texi (Labels as Values): Document &&foo behaviour
20500         vs. inlining.
20501
20502 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
20503
20504         PR tree-optimization/34635
20505         * tree-data-ref.c (add_other_self_distances): Make sure that the
20506         evolution step is constant.
20507
20508 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
20509
20510         PR middle-end/34608
20511         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
20512
20513 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
20514
20515         * tree-sra.c (scalarize_init): Insert the generate_element_init
20516         statements after the generate_element_zero statements.
20517
20518 2008-01-02  Richard Guenther  <rguenther@suse.de>
20519
20520         PR middle-end/34093
20521         PR middle-end/31976
20522         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
20523         for very large number of operands instead of ICEing.
20524
20525 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
20526
20527         PR target/34013
20528         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
20529         while stack probing.
20530
20531 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
20532
20533         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
20534         in C++0x mode.
20535
20536 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
20537
20538         PR libmudflap/26442
20539         * tree-mudflap.c (mx_register_decls): Guard warning by
20540         !DECL_ARTIFICIAL check.
20541
20542 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
20543
20544         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
20545         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
20546         sse5_perm<mode>): Fix constraints.