OSDN Git Service

* config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
2
3         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
4         rs6000_emit_stack_tie.
5
6 2009-03-31  Ian Lance Taylor  <iant@google.com>
7
8         * tree-eh.c (tree_remove_unreachable_handlers): Compare
9         gimple_code with GIMPLE_RESX, not RESX.
10
11 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
12
13         * c-common.c (c_get_ident): New.
14         (c_common_nodes_and_builtins): Call it for type names that may be
15         NULL.
16
17 2009-04-01  Ben Elliston  <bje@au.ibm.com>
18
19         * config/rs6000/sysv4.opt (msdata): Improve option description.
20
21 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
22
23         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
24         (divdf3_internal_lat): Remove.
25         (divxf3_internal_lat): Remove.
26         (divxf3_internal_thr): Remove.
27         (divxf): Use divxf3_internal.
28         * config/ia64/div.md (divsf3_internal_lat): New.
29         (divdf3_internal_lat): New.
30         (divxf3_internal): New.
31
32 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
33
34         PR c/448
35         * Makefile.in (USE_GCC_STDINT): Define.
36         (stmp-int-hdrs): Install stdint.h if applicable.
37         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
38         if known.
39         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
40         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
41         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
42         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
43         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
44         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
45         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
46         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
47         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
48         (c_common_nodes_and_builtins): Initialize
49         underlying_wchar_type_node.  Do not initialize
50         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
51         nodes for new types.
52         (c_stddef_cpp_builtins): Define macros for new types.
53         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
54         Remove.
55         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
56         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
57         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
58         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
59         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
60         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
61         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
62         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
63         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
64         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
65         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
66         int16_type_node, int32_type_node, int64_type_node,
67         uint8_type_node, uint16_type_node, c_uint32_type_node,
68         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
69         int_least32_type_node, int_least64_type_node,
70         uint_least8_type_node, uint_least16_type_node,
71         uint_least32_type_node, uint_least64_type_node,
72         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
73         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
74         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
75         uintptr_type_node): Define.
76         * c-cppbuiltin.c (builtin_define_constants,
77         builtin_define_type_minmax): New.
78         (builtin_define_stdint_macros): Define more macros.
79         (c_cpp_builtins): Define more limit macros.
80         (type_suffix): New.
81         (builtin_define_type_max): Define in terms of
82         builtin_define_type_minmax.  Remove is_long parameter.  All
83         callers changed.
84         * config.gcc (use_gcc_stdint): Define.
85         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
86         Add newlib-stdint.h for generic targets.
87         * config/glibc-stdint.h, config/newlib-stdint.h,
88         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
89         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
90         * config/score/score.h (UINTPTR_TYPE): Define.
91         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
92         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
93         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
94         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
95         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
96         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
97         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
98         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
99         * config/spu/spu.h (STDINT_LONG32): Define.
100         * configure.ac (use_gcc_stdint): Substitute.
101         * configure: Regenerate.
102         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
103         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
104         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
105         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
106         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
107         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
108         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
109         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
110         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
111         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
112         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
113         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
114         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
115         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
116         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
117         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
118         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
119         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
120         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
121         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
122         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
123         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
124         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
125         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
126         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
127         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
128         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
129         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
130         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
131
132 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
133
134         * loop-iv.c (suitable_set_for_replacement): Renamed from
135         simplify_using_assignment; changed to return bool and to accept new
136         args DEST and SRC.  Return true iff we find a source/destination pair
137         that can be used to make a replacement, and fill SRC and DEST if so.
138         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
139         changed.
140         (simplify_using_initial_values): Deal with altered regs here and track
141         more precisely the effect they have on the validity of our expression.
142
143         * loop-iv.c (simplify_using_condition): A condition of the form
144         (EQ REG CONST) can be used to simply make a substitution.
145         (simplify_using_initial_values): Keep track of conditions we have seen
146         and keep using them to simplify new expressions, while applying the
147         same substitutions to them as to the expression.
148
149         * simplify-rtx.c (simplify_relational_operation_1): Simplify
150         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
151         GEU/LTU reversed.
152
153         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
154         changed.  Use this when trying to improve the upper bound.
155         Generate the comparison by using simplify_gen_relational.
156
157         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
158
159         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
160         functions.
161         (simplify_using_assignment, simplify_using_initial_values): Call 
162         replace_in_expr to make replacements.  Call replace_single_def_regs
163         once on the initial version of the expression.
164
165 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
166
167         PR target/27237
168         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
169         
170 2009-03-31  Richard Guenther  <rguenther@suse.de>
171
172         PR middle-end/31029
173         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
174         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
175
176 2009-03-31  Richard Guenther  <rguenther@suse.de>
177
178         * tree.h (div_if_zero_remainder): Declare.
179         * fold-const.c (div_if_zero_remainder): Export.
180         * tree-ssa-forwprop.c
181         (forward_propagate_addr_into_variable_array_index): Handle
182         constant array index addition outside of the variable index.
183
184 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
185
186         PR target/39592
187         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
188         define_splits, floatunssi<mode>2): Require x87 conversions from
189         DImode to be permitted.
190
191 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
192
193         PR preprocessor/15638
194         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
195
196 2009-03-31  Richard Guenther  <rguenther@suse.de>
197
198         PR middle-end/23401
199         PR middle-end/27810
200         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
201         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
202         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
203         a separate statement.
204         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
205         (lookup_tmp_var): Likewise.
206         (is_gimple_formal_tmp_or_call_rhs): Remove.
207         (is_gimple_reg_or_call_rhs): Rename to ...
208         (is_gimple_reg_rhs_or_call): ... this.
209         (is_gimple_mem_or_call_rhs): Rename to ...
210         (is_gimple_mem_rhs_or_call): ... this.
211         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
212         DECL_GIMPLE_REG_P only if is_formal is true.
213         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
214         for non-proper post-modify expression gimplification.
215         (gimplify_self_mod_expr): For post-modify expressions gimplify
216         the lvalue to a minimal lvalue.
217         (rhs_predicate_for): Remove formal temp case.
218         (gimplify_modify_expr_rhs): Likewise.
219         (gimplify_addr_expr): Use is_gimple_reg.
220         (gimplify_expr): Remove formal temp cases.
221         (gimple_regimplify_operands): Likewise.
222         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
223         and FILTER_EXPR like constants.
224         * gimple.c (walk_gimple_op): Fix val_only initialization, use
225         is_gimple_reg.
226         (is_gimple_formal_tmp_rhs): Remove.
227         (is_gimple_reg_rhs): Remove special casing.
228         (is_gimple_mem_rhs): Fix.
229         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
230         (is_gimple_formal_tmp_var): Remove.
231         (is_gimple_formal_tmp_reg): Likewise.
232         (is_gimple_min_lval): Allow invariant component ref parts.
233         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
234         is_gimple_formal_tmp_reg): Remove declarations.
235         * tree-cfg.c (verify_expr): Verify that variables with address
236         taken do not have DECL_GIMPLE_REG_P set.
237         * tree-mudflap.c (mf_build_check_statement_for): Use
238         force_gimple_operand instead of gimplify_expr.
239
240 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
241
242         * modulo-sched.c (sms_schedule_by_order): Pass the actual
243         schedulable rows to compute_split_row.
244
245 2009-03-31  Ben Elliston  <bje@au.ibm.com>
246
247         PR target/31635
248         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
249         OPT_mvrsave.
250
251 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
252
253         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
254         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
255         * configure: Regenerate.
256         * config.in: Regenerate.
257         * config/rs6000/rs6000.opt (mtls-markers): Add.
258         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
259         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
260         (tls_ld_aix, tls_ld_sysv): Likewise.
261         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
262         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
263
264 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
265
266         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
267
268 2009-03-30  Jan Hubicka  <jh@suse.cz>
269
270         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
271         out of RESX.
272         (tree_remove_unreachable_handlers): Cleanup EH predecestor
273         detection and label handling.
274
275 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
276
277         * ira-int.h (ira_allocno): Rename left_conflicts_num to
278         left_conflicts_size.
279         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
280         ALLOCNO_LEFT_CONFLICTS_SIZE.
281
282         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
283         remove_allocno_from_bucket_and_push,
284         allocno_spill_priority_compare, push_allocnos_to_stack,
285         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
286         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
287         (setup_allocno_left_conflicts_num): Ditto.  Rename to
288         setup_allocno_left_conflicts_size.
289         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
290         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
291         setup_allocno_left_conflicts_size instead of
292         setup_allocno_left_conflicts_num.
293
294         * ira-build.c (ira_create_allocno): Use
295         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
296         ALLOCNO_LEFT_CONFLICTS_NUM.
297                 
298 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
299
300         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
301         instead of DF_LR_OUT.
302
303         * ira-lives.c (process_bb_node_lives): Ditto.
304
305         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
306         instead of DF_LR_{OUT,IN}.
307
308         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
309
310         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
311
312 2009-03-30  Jan Hubicka  <jh@suse.cz>
313
314         * except.c (label_to_region_map): Fix thinko.
315
316 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
317
318         PR middle-end/38237
319         * tree.h (tree_find_value): New declaration.
320         * tree.c (tree_find_value): New function.
321         * varasm.c (assemble_external): Avoid duplicate entries on lists.
322
323 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
324
325         PR debug/39563
326         * c-decl.c (struct c_binding): Add locus field.
327         (bind): Add locus argument, set locus field from it.
328         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
329         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
330         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
331         implicitly_declare, undeclared_variable, lookup_label,
332         declare_label, c_make_fname_decl, c_builtin_function,
333         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
334         bind callers.
335
336 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
337
338         PR target/38781
339         * config/i386/i386.c (classify_argument): Check total size of
340         structure.
341
342 2009-03-30  Martin Jambor  <mjambor@suse.cz>
343
344         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
345         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
346         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
347         respectively.
348
349         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
350         seen_variable_array_ref while also traversing a union.
351
352         * tree-inline.c (optimize_inline_calls): Do not call
353         cgraph_node_remove_callees.
354         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
355         (pass_remove_cgraph_callee_edges): New variable.
356         * passes.c (init_optimization_passes): Add
357         pass_remove_cgraph_callee_edges after early inlining and before all
358         late intraprocedural passes.
359
360         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
361
362 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
363
364         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
365         Fix typos in names.
366
367 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
368
369         * combine.c (simplify_comparison): Use have_insn_for.
370         * dojump.c (do_jump): Likewise.
371
372 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
373
374         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
375         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
376         sparc_compare_op0 like sparc_compare_emitted used to be handled.
377         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
378         instead of sparc_compare_emitted.
379         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
380         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
381         instead of sparc_compare_emitted.
382
383 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
384
385         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
386         enter/exit cfglayout mode.
387         (pass_partition_block): Require it.
388         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
389         (combine_instructions): Track basic blocks instead of labels.
390         (update_cfg_for_uncondjump): New.
391         (try_combine): Use it.  Update jumps after rescanning.
392         (pass_combine): Require PROP_cfglayout.
393         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
394
395 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
396
397         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
398         Provide/destroy PROP_cfglayout respectively.
399         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
400         * tree-pass.h (PROP_cfglayout): New.
401
402 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
403
404         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
405         fold_convert_const_fixed_from_fixed,
406         fold_convert_const_fixed_from_int,
407         fold_convert_const_fixed_from_real, fold_negate_const): Do not
408         set TREE_CONSTANT_OVERFLOW.
409         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
410         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
411
412 2009-03-30  Ira Rosen  <irar@il.ibm.com>
413
414         * tree-vect-loop-manip.c: New file.
415         * tree-vectorizer.c: Update documentation and included files.
416         (vect_loop_location): Make extern.
417         (rename_use_op): Move to tree-vect-loop-manip.c
418         (rename_variables_in_bb, rename_variables_in_loop, 
419         slpeel_update_phis_for_duplicate_loop, 
420         slpeel_update_phi_nodes_for_guard1,
421         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
422         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
423         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
424         set_prologue_iterations, slpeel_tree_peel_loop_to_edge, 
425         find_loop_location): Likewise.
426         (new_stmt_vec_info): Move to tree-vect-stmts.c.
427         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
428         get_vectype_for_scalar_type, vect_is_simple_use,
429         supportable_widening_operation, supportable_narrowing_operation):
430         Likewise.
431         (bb_in_loop_p): Move to tree-vect-loop.c.
432         (new_loop_vec_info, destroy_loop_vec_info, 
433         reduction_code_for_scalar_code, report_vect_op, 
434         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
435         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
436         (vect_supportable_dr_alignment): Likewise.
437         * tree-vectorizer.h (tree-data-ref.h): Include.
438         (vect_loop_location): Declare.
439         Reorganize function declarations according to the new file structure.
440         * tree-vect-loop.c: New file.
441         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c, 
442         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
443         * tree-vect-data-refs.c: New file.
444         * tree-vect-patterns.c (timevar.h): Don't include.
445         * tree-vect-stmts.c: New file.
446         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c, 
447         tree-vect-slp.c, tree-vect-loop.c.
448         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and 
449         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o, 
450         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
451         (tree-vect-analyze.o): Remove.
452         (tree-vect-transform.o): Likewise.
453         (tree-vect-data-refs.o): Add rule.
454         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o, 
455         tree-vect-slp.o): Likewise.
456         (tree-vect-patterns.o): Remove redundant dependencies.
457         (tree-vectorizer.o): Likewise.
458         * tree-vect-slp.c: New file.
459
460 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
461
462         * optc-gen.awk: Warn if an option flag has multiple different
463         help strings.
464
465 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
466
467         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
468         -floop-block): Document dependences on PPL, CLooG and Graphite.
469
470 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
471
472         PR rtl-optimization/323
473         * c-common.c (c_fully_fold, convert_and_check,
474         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
475         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
476         * c-common.def (EXCESS_PRECISION_EXPR): New.
477         * c-cppbuiltin.c (builtin_define_float_constants): Define
478         constants with enough digits for long double.
479         * c-lex.c (interpret_float): Interpret constant with excess
480         precision where appropriate.
481         * c-opts.c (c_common_post_options): Set
482         flag_excess_precision_cmdline.  Give an error for
483         -fexcess-precision=standard for C++ for processors where the
484         option is significant.
485         * c-parser.c (c_parser_conditional_expression): Handle excess
486         precision in condition.
487         * c-typeck.c (convert_arguments): Handle arguments with excess
488         precision.
489         (build_unary_op): Move excess precision outside operation.
490         (build_conditional_expr): Likewise.
491         (build_compound_expr): Likewise.
492         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
493         (build_modify_expr): Handle excess precision in RHS.
494         (convert_for_assignment): Handle excess precision in converted
495         value.
496         (digest_init, output_init_element, process_init_element): Handle
497         excess precision in initializer.
498         (c_finish_return): Handle excess precision in return value.
499         (build_binary_op): Handle excess precision in operands and add
500         excess precision as needed for operation.
501         * common.opt (-fexcess-precision=): New option.
502         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
503         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
504         For standard excess precision, output explicit conversion to and
505         truncation from XFmode.
506         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
507         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
508         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
509         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
510         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
511         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
512         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
513         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
514         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
515         define_splits, sqrt<mode>2): Disable where appropriate for
516         standard excess precision.
517         * convert.c (convert_to_real): Do not shorten arithmetic to type
518         for which excess precision would be used.
519         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
520         * doc/invoke.texi (-fexcess-precision=): Document option.
521         (-mfpmath=): Correct index entry.
522         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
523         flag_excess_precision): New.
524         * langhooks.c (lhd_post_options): Set
525         flag_excess_precision_cmdline.
526         * opts.c (common_handle_option): Handle -fexcess-precision=.
527         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
528         init_excess_precision): New.
529         (lang_dependent_init_target): Call init_excess_precision.
530         * tree.c (excess_precision_type): New.
531         * tree.h (excess_precision_type): Declare.
532
533 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
534
535         PR c/35235
536         * c-typeck.c (build_component_ref): Do not copy qualifiers from
537         non-lvalue to component.
538
539 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
540
541         PR preprocessor/34695
542         * Makefile.in (c-opts.o): Depend on c-tree.h.
543         * c-common.c: Move down include of diagnostic.h.
544         (done_lexing, c_cpp_error): New.
545         * c-common.h (done_lexing): Declare.
546         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
547         (parse_in).
548         * c-opts.c: Include c-tree.h.
549         (c_common_init_options): Set preprocessor error callback.
550         (c_common_handle_option): Do not set preprocessor
551         inhibit_warnings, warnings_are_errors, warn_system_headers,
552         pedantic_errors or inhibit_warnings flags.
553         (c_common_post_options): Do not check cpp_errors (parse_in).
554         (c_common_finish): Do not output dependencies if there were
555         errors.  Do not check return value of cpp_finish.
556         * c-ppoutput.c (pp_file_change): Set input_location.
557         * c-tree.h (c_cpp_error): Declare.
558         * diagnostic.c (diagnostic_set_info_translated): Also initialize
559         override_column.
560         (diagnostic_build_prefix): Check override_column.
561         * diagnostic.h (diagnostic_info): Add override_column field.
562         (diagnostic_override_column): Define.
563
564 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
565
566         * c-common.c (c_expand_expr, c_staticp): Remove.
567         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
568         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
569         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
570         * c-gimplify.c (gimplify_compound_literal_expr,
571         optimize_compound_literals_in_ctor): Remove.
572         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
573         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
574         * c-semantics.c (emit_local_var): Remove.
575
576         * langhooks-def.h (lhd_expand_expr): Remove.
577         * langhooks.c (lhd_expand_expr): Remove.
578         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
579
580         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
581         handling from c-semantics.c; don't call into langhook.
582         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
583         * gimplify.c (gimplify_compound_literal_expr,
584         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
585         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
586         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
587         as was done in c-gimplify.c.
588         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
589         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
590         Move from c-common.h.
591         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
592
593         * tree.c (staticp): Do not call langhook.
594         * langhooks.c (lhd_staticp): Delete.
595         * langhooks-def.h (lhd_staticp): Delete prototype.
596         (LANG_HOOKS_STATICP): Delete.
597         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
598
599         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
600         instead of DECL_STMTs.
601
602 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
603
604         PR c/456
605         PR c/5675
606         PR c/19976
607         PR c/29116
608         PR c/31871
609         PR c/35198
610         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
611         void_type_node.
612         (fold_call_expr): Return a NOP_EXPR from folding rather than the
613         contained expression.
614         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
615         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
616         conditional expressions for C.
617         (decl_constant_value_for_optimization): Move from
618         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
619         whether optimizing and that the expression is a VAR_DECL not of
620         array type instead of doing such checks in the caller.  Do not
621         check pedantic.  Call gcc_unreachable for C++.
622         * c-common.def (C_MAYBE_CONST_EXPR): New.
623         * c-common.h (c_fully_fold, c_save_expr,
624         decl_constant_value_for_optimization): New prototypes.
625         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
626         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
627         EXPR_INT_CONST_OPERANDS): Define.
628         * c-convert.c (convert): Strip nops from expression.
629         * c-decl.c (groktypename): Take extra parameters expr and
630         expr_const_operands.  Update call to grokdeclarator.
631         (start_decl): Update call to grokdeclarator.  Add statement for
632         expressions used in type of decl.
633         (grokparm): Update call to grokdeclarator.
634         (push_parm_decl): Update call to grokdeclarator.
635         (build_compound_literal): Add parameter non_const and build a
636         C_MAYBE_COSNT_EXPR if applicable.
637         (grokdeclarator): Take extra parameters expr and
638         expr_const_operands.  Track expressions used in declaration
639         specifiers and declarators.  Fold array sizes and track whether
640         they are constant expressions and whether they are integer
641         constant expressions.
642         (parser_xref_tag): Set expr and expr_const_operands fields in
643         return value.
644         (grokfield): Update call to grokdeclarator.
645         (start_function): Update call to grokdeclarator.
646         (build_null_declspecs): Set expr and expr_const_operands fields in
647         return value.
648         (declspecs_add_type): Handle expressions in typeof specifiers.
649         * c-parser.c (c_parser_declspecs): Set expr and
650         expr_const_operands fields for declaration specifiers.
651         (c_parser_enum_specifier): Likewise.
652         (c_parser_struct_or_union_specifier): Likewise.
653         (c_parser_typeof_specifier): Likewise.  Update call to
654         groktypename.  Fold expression as needed.  Return expressions with
655         type instead of adding statements.
656         (c_parser_attributes): Update calls to c_parser_expr_list.
657         (c_parser_statement_after_labels): Fold expression before passing
658         to objc_build_throw_stmt.
659         (c_parser_condition): Fold expression.
660         (c_parser_asm_operands): Fold expression.
661         (c_parser_conditional_expression): Use c_save_expr.  Update call
662         to build_conditional_expr.
663         (c_parser_alignof_expression): Update call to groktypename.
664         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
665         original_code.  Fold expression argument of va_arg.  Create
666         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
667         argument to va_arg.  Update calls to groktypename.  Fold array
668         index for offsetof.  Verify that first argument to
669         __builtin_choose_expr has integer type.
670         (c_parser_postfix_expression_after_paren_type): Update calls to
671         groktypename and build_compound_literal.  Handle expressions with
672         side effects in type name.
673         (c_parser_postfix_expression_after_primary): Update call to
674         c_parser_expr_list.  Set original_code for calls to
675         __builtin_constant_p.
676         (c_parser_expr_list): Take extra parameter fold_p.  Fold
677         expressions if requested.
678         (c_parser_objc_type_name): Update call to groktypename.
679         (c_parser_objc_synchronized_statement): Fold expression.
680         (c_parser_objc_receiver): Fold expression.
681         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
682         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
683         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
684         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
685         (struct c_typespec): Add elements expr and expr_const_operands.
686         (struct c_declspecs): Add elements expr and expr_const_operands.
687         (groktypename, build_conditional_expr, build_compound_literal):
688         Update prototypes.
689         (in_late_binary_op): Declare.
690         * c-typeck.c (note_integer_operands): New function.
691         (in_late_binary_op): New variable.
692         (decl_constant_value_for_broken_optimization): Move to c-common.c
693         and rename to decl_constant_value_for_optimization.
694         (default_function_array_conversion): Do not strip nops.
695         (default_conversion): Do not call
696         decl_constant_value_for_broken_optimization.
697         (build_array_ref): Do not fold result.
698         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
699         result when operand is a VLA.
700         (c_expr_sizeof_type): Update call to groktypename.  Handle
701         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
702         result when operand names a VLA type.
703         (build_function_call): Update call to build_compound_literal.
704         Only fold result for calls to __builtin_* functions.  Strip
705         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
706         the function designator.
707         (convert_arguments): Fold arguments.  Update call to
708         convert_for_assignment.
709         (build_unary_op): Handle increment and decrement of
710         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
711         decrement earlier.  Fold operand of increment and decrement.
712         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
713         built for integer operand.  Wrap returns that are INTEGER_CSTs
714         without being integer constant expressions or that have integer
715         constant operands without being INTEGER_CSTs.
716         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
717         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
718         result is an integer constant expression or can be used in
719         unevaluated parts of one and avoid folding and wrap as
720         appropriate.  Fold operands before possibly doing -Wsign-compare
721         warnings.
722         (build_compound_expr): Wrap result for C99 if operands can be used
723         in integer constant expressions.
724         (build_c_cast): Update call to digest_init.  Do not ignore
725         overflow from casting floating-point constants to integers.  Wrap
726         results that could be confused with integer constant expressions,
727         null pointer constants or floating-point constants.
728         (c_cast_expr): Update call to groktypename.  Handle expressions
729         included in type name.
730         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
731         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
732         Update calls to convert_for_assignment.
733         (convert_for_assignment): Take new parameter
734         null_pointer_constant.  Do not strip nops or call
735         decl_constant_value_for_broken_optimization.  Set
736         in_late_binary_op for conversions to boolean.
737         (store_init_value): Update call to digest_init.
738         (digest_init): Take new parameter null_pointer_constant.  Do not
739         call decl_constant_value_for_broken_optimization.  pedwarn for
740         initializers not constant expressions.  Update calls to
741         convert_for_assignment.
742         (constructor_nonconst): New.
743         (struct constructor_stack): Add nonconst element.
744         (really_start_incremental_init, push_init_level, pop_init_level):
745         Handle constructor_nonconst and nonconst element.
746         (set_init_index): Call constant_expression_warning for array
747         designators.
748         (output_init_element): Fold value.  Set constructor_nonconst as
749         applicable.  pedwarn for initializers not constant expressions.
750         Update call to digest_init.  Call constant_expression_warning
751         where constant initializers are required.
752         (process_init_element): Use c_save_expr.
753         (c_finish_goto_ptr): Fold expression.
754         (c_finish_return): Fold return value.  Update call to
755         convert_for_assignment.
756         (c_start_case): Fold switch expression.
757         (c_process_expr_stmt): Fold expression.
758         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
759         ensure statement expression is not evaluated in constant expression.
760         (build_binary_op): Track whether results are integer constant
761         expressions or may occur in such, disable folding and wrap results
762         as applicable.  Fold operands for -Wsign-compare warnings unless
763         in_late_binary_op.
764         (c_objc_common_truthvalue_conversion): Handle results folded to
765         integer constants that are not integer constant expressions.
766         * doc/extend.texi: Document when typeof operands are evaluated,
767         that condition of __builtin_choose_expr is an integer constant
768         expression, and more about use of __builtin_constant_p in
769         initializers.
770
771 2009-03-29  Richard Guenther  <rguenther@suse.de>
772
773         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
774         propagate addresses of array references.
775
776 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
777
778         * regmove.c (perhaps_ends_bb_p): Remove.
779         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
780         from INSN and check that the main loop stays within that basic block.
781         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
782         (regmove_forward_pass): Split out from regmove_optimize.  Use
783         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
784         (regmove_backward_pass): Split out from regmove_optimize.  Use
785         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
786         (regmove_optimize): Simplify.
787
788 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
789
790         PR target/39545
791         * config/i386/i386.c (classify_argument): Ignore flexible array
792         member in struct and warn ABI change.
793
794 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
795
796         * config/i386/i386-protos.h (ix86_agi_dependent): New.
797
798         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
799         (ix86_adjust_cost): Updated.
800
801 2009-03-29  Jan Hubicka  <jh@suse.cz>
802
803         PR middle-end/28850
804         * tree-pass.h (pass_cleanup_eh): New function.
805         (remove_unreachable_regions): Break code handling RTL
806         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
807         that can not be reached by runtime.
808         (can_be_reached_by_runtime): New function.
809         (label_to_region_map): New function.
810         (num_eh_regions): New function.
811         (rtl_remove_unreachable_regions): New function.
812         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
813         (remove_eh_region): New function.
814         * except.h: Include sbitmap and vecprim.
815         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
816         num_eh_regions): Declare.
817         * passes.c (init_optimization_passes): Schedule cleanup_eh.
818         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
819         * tree-eh.c (tree_remove_unreachable_handlers): New function.
820         (tree_empty_eh_handler_p): New function.
821         (cleanup_empty_eh): New function.
822         (cleanup_eh): New function.
823         (pass_cleanup_eh): New function.
824
825 2009-03-29  Jan Hubicka  <jh@suse.cz>
826
827         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
828         for removed regions.
829
830 2009-03-29  Jan Hubicka  <jh@suse.cz>
831
832         * except.c (dump_eh_tree): Dump all datastructures.
833
834 2009-03-29  Jan Hubicka  <jh@suse.cz>
835
836         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
837         (duplicate_eh_regions_1): Likewise.
838         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
839         vector; call EH verification.
840         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
841         Be ready for region being removed.
842
843 2009-03-29  Jan Hubicka  <jh@suse.cz>
844
845         * bitmap.c (bitmap_last_set_bit): New function.
846         * bitmap.h (bitmap_last_set_bit): Declare.
847
848 2009-03-29  David Ayers  <ayers@fsfe.org>
849
850         PR objc/27377
851         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
852         by calling objc_compare_types and surpress warnings about
853         incompatible C pointers that are compatible ObjC pointers.
854         
855 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
856
857         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
858         call initialize_inline_failed.
859         (initialize_inline_failed): Move it from here ...
860         * cgraph.c (initialize_inline_failed): ... to here.
861         (cgraph_create_edge): Call initialize_inline_failed rather than
862         setting inline_failed directly.
863
864 2009-03-29  Ben Elliston  <bje@au.ibm.com>
865
866         PR target/32542
867         * sysv4.opt (msdata): Improve comment.
868         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
869         * sysv4.h (SVR4_ASM_SPEC): Likewise.
870
871 2009-03-29  Ben Elliston  <bje@au.ibm.com>
872
873         PR target/30451
874         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
875         load and store attributes.
876
877 2009-03-29  Ben Elliston  <bje@au.ibm.com>
878
879         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
880         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
881         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
882         * doc/extend.texi (X86 Built-in Functions): Add index entries for
883         __builtin_infq and __builtin_huge_valq.
884
885 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
886
887         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
888         atmega8m1 devices.
889         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
890         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
891
892 2009-03-28  Xinliang David Li  <davidxl@google.com>
893
894         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support. 
895         (do_dbg_cnt): New function.
896
897 2009-03-28  Jan Hubicka  <jh@suse.cz>
898
899         Merge from pretty-ipa:
900
901         2009-03-27  Jan Hubicka  <jh@suse.cz>
902
903         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
904         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
905         * passes.c (function_called_by_processed_nodes_p): New.
906         * ipa-pure-const.c (check_call): Fix handling of operands.
907         (analyze_function): Dump debug output for skipped bodies.
908         (local_pure_const): Use function_called_by_processed_nodes_p.
909         * dwarf2out.c (reference_to_unused): Use output.
910         * passes.c (do_per_function_toporder): Likewise.
911
912         2008-11-12  Jan Hubicka  <jh@suse.cz>
913
914         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
915         * ipa-pure-const.c (funct_state_d): Add can throw field; make
916         state_set_in_source enum
917         (check_decl): Ignore memory tags; do not set fake looping flags;
918         dump diagnostics.
919         (check_operand, check_tree, check_rhs_var, check_lhs_var,
920         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
921         (check_call, analyze_function): Rewrite.
922         (check_stmt): New.
923         (add_new_function): Update call of analyze_function.
924         (generate_summary): Add call of analyze_function.
925         (propagate): Propagate can_throw; handle state_set_in_source correctly.
926         (local_pure_const): New function.
927         (pass_local_pure_const): New pass.
928         * ipa-inline.c (inline_transform): Set after_inlining.
929         * tree-eh.c (stmt_can_throw_external): New.
930         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
931         work with aliasing built.
932         * tree-flow.h (stmt_can_throw_external): New.
933         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
934         and local pure/const pass in early and late optimization queue.
935
936 2009-03-28  Martin Jambor  <mjambor@suse.cz>
937
938         * fold-const.c (get_pointer_modulus_and_residue): New parameter
939         allow_func_align.
940         (fold_binary): Allow function decl aligment consideration is the
941         second argument is integer constant one.
942         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
943         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
944         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
945
946 2009-03-28  Jan Hubicka  <jh@suse.cz>
947
948         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
949         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
950         * function.h (rtl_data): Add nothrow flag.
951         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
952         set DECL_NOTHROW for AVAILABLE functions.
953
954 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
955
956         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
957         following vector keyword has expansion starting with pixel or bool
958         keyword, expand vector to __vector and pixel or bool to __pixel or
959         __bool.
960
961         PR c++/39554
962         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
963         warn_if_disallowed_function_p): Removed.
964         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
965         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
966         warning_if_disallowed_function_p.
967         * flags.h (warn_if_disallowed_function_p,
968         warn_disallowed_functions): Removed.
969         * common.opt (Wdisallowed-function-list=): Removed.
970         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
971
972 2009-03-28  Richard Guenther  <rguenther@suse.de>
973
974         PR tree-optimization/38723
975         * tree-ssa-pre.c (compute_avail): Add all default definitions to
976         the entry block.
977
978 2009-03-28  Jan Hubicka  <jh@suse.cz>
979
980         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
981         test introduced by my previous patch.
982
983 2009-03-28  Richard Guenther  <rguenther@suse.de>
984
985         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
986         the PHIs value undefined.
987
988 2009-03-28  Jan Hubicka  <jh@suse.cz>
989
990         * tree-pass.h (pass_fixup_cfg): New pass.
991         * ipa-inline.c (inline_transform): Set
992         always_inline_functions_inlined/after_inlining.
993         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
994         (pass_fixup_cfg): New pass.
995         * passes.c (init_optimization_passes): Add fixup_cfg.
996
997 2009-03-28  Richard Guenther  <rguenther@suse.de>
998
999         PR tree-optimization/38458
1000         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
1001         argument use the arguments copy-of value.
1002
1003 2009-03-28  Richard Guenther  <rguenther@suse.de>
1004
1005         PR tree-optimization/38180
1006         * tree-ssa-ccp.c (get_default_value): Simplify.
1007         (likely_value): Likewise.
1008         (surely_varying_stmt_p): Properly handle VOP case.
1009         (ccp_initialize): Likewise.
1010         (ccp_fold): Handle propagating through *&.
1011         (fold_const_aggregate_ref): Also handle decls.
1012
1013 2009-03-28  Jan Hubicka  <jh@suse.cz>
1014
1015         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
1016         * cgraph.h (cgraph_node): Likewise.
1017         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
1018         (cgraph_reset_node): Use process flag.
1019         (cgraph_mark_functions_to_output): Likewise.
1020         (cgraph_expand_function): Likewise.
1021         (cgraph_expand_all_functions): Likewise.
1022         (cgraph_output_in_order): Likewise.
1023         * dwarf2out.c (reference_to_unused): Likewise.
1024         * passes.c do_per_function_toporder): Likewise.
1025
1026 2009-03-28  Jan Hubicka  <jh@suse.cz>
1027
1028         Bring from lto-branch:
1029
1030         2008-09-03  Doug Kwan  <dougkwan@google.com>
1031
1032         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
1033         enums instead of reason strings.
1034         * cgraph.c (cgraph_create_edge): Same.
1035         (cgraph_inline_failed_string): New function.
1036         * cgraph.h (cgraph_inline_failed_t): New enum type.
1037         (cgraph_inline_failed_string): New prototype.
1038         (struct cgraph_edge): Change type of INLINED_FAILED from constant
1039         char pointer to cgraph_inline_failed_t.
1040         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
1041         (cgraph_default_inline_p): Ditto.
1042         * gcc/cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
1043         to cgraph_inline_failed_t pointer.
1044         * cif-code.def: New file.
1045         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
1046         reason string.
1047         (cgraph_check_inline_limits): Change type of REASON to pointer to
1048         cgraph_inline_failed_t.  Replace reason strings with enums.
1049         (cgraph_default_inline_p): Ditto.
1050         (cgraph_recursive_inlining_p): Ditto.
1051         (update_caller_keys): Change type of FAILED_REASON to
1052         cgraph_inline_failed_t.
1053         (cgraph_set_inline_failed): Change type of REASON to pointer to
1054         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
1055         convert enums to strings for text output.
1056         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
1057         to be of type cgraph_inline_failed_t.  Replace reason strings with
1058         enums.  Call cgraph_inline_failed_string to covert enums
1059         to strings for text output.
1060         (cgraph_decide_inlining): Replace reason strings with enums.
1061         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
1062         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
1063         for text output.
1064         * tree-inline.c (expand_call_inline): Change type of REASON
1065         to cgraph_inline_failed_t.  Replace reason strings with enums.
1066         Call cgraph_inline_failed_string for text output.
1067         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
1068         (cgraph.o): Ditto.
1069
1070 2009-03-28  Jan Hubicka  <jh@suse.cz>
1071
1072         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
1073         cgraph_clone_node): Remove master clone handling.
1074         (cgraph_is_master_clone, cgraph_master_clone): Remove.
1075         * cgraph.h (master_clone): Remove.
1076         (cgraph_is_master_clone, cgraph_master_clone): Remove.
1077         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
1078         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
1079
1080 2009-03-28  Jan Hubicka  <jh@suse.cz>
1081
1082         * cgraph.c (cgraph_function_body_availability): Functions declared
1083         inline are always safe to assume that it is not going to be replaced.
1084
1085 2009-03-28  Richard Guenther  <rguenther@suse.de>
1086
1087         PR tree-optimization/38513
1088         * tree-ssa-pre.c (eliminate): Remove redundant stores.
1089         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
1090         EXC_PTR_EXPR and FILTER_EXPR.
1091         (get_ref_from_reference_ops): Likewise.
1092
1093 2009-03-28  Richard Guenther  <rguenther@suse.de>
1094
1095         PR tree-optimization/38968
1096         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
1097         Use FLOOR_MOD_EXPR to compute misalignment.
1098
1099 2009-03-28  Richard Guenther  <rguenther@suse.de>
1100
1101         PR tree-optimization/37795
1102         * tree.h (combine_comparisons): Declare.
1103         * fold-const.c (combine_comparisons): Export.
1104         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
1105         comparisons.
1106         (ifcombine_iforif): Use combine_comparisons.
1107
1108 2009-03-28  Jan Hubicka  <jh@suse.cz>
1109
1110         * tree-eh.c (inlinable_call_p): New function.
1111         (make_eh_edges): Use it.
1112         (verify_eh_edges): Use it.
1113         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
1114         * except.c (reachable_next_level): Add inlinable_function argument
1115         (sjlj_find_directly_reachable_regions): Update.
1116         (add_reachable_handler): Do not set saw_any_handlers.
1117         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
1118         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
1119         Add new inlinable call parameter.
1120         (can_throw_internal, can_throw_external): Update.
1121         * except.h (can_throw_internal_1, can_throw_external_1,
1122         foreach_reachable_handler): Update declaration.
1123
1124 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
1125
1126         * config/arm/t-arm-coff, config/h8300/coff.h,
1127         config/i386/i386-aout.h, config/i386/i386-coff.h,
1128         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
1129         config/pdp11/2bsd.h, config/rs6000/aix41.h,
1130         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
1131         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
1132         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
1133         sys-types.h: Remove.
1134         * Makefile.in: Remove protoize and fixproto support and references
1135         in comments.
1136         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
1137         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
1138         Remove.
1139         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
1140         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
1141         unprotoize$(exeext).
1142         (rest.encap): Don't depend on $(STMP_FIXPROTO)
1143         (.PHONY): Don't depend on proto.
1144         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
1145         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
1146         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
1147         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
1148         build/gen-protos.o, build/scan.o, xsys-protos.h,
1149         build/fix-header$(build_exeext), build/fix-header.o,
1150         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
1151         stmp-install-fixproto): Remove.
1152         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
1153         SYSCALLS.c or fixproto files.
1154         (install-common): Don't install protoize.
1155         (install-headers-tar, install-headers-cpio, install-headers-cp):
1156         Don't depend on $(STMP_FIXPROTO).
1157         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
1158         install fixproto files or write out fixproto settings.
1159         (uninstall): Don't uninstall protoize.
1160         * config.gcc (use_fixproto): Remove.
1161         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
1162         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
1163         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
1164         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
1165         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
1166         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
1167         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
1168         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
1169         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
1170         * config/t-vxworks (STMP_FIXPROTO): Remove.
1171         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
1172         STMP_FIXPROTO): Remove.
1173         * config.in, configure: Regenerate.
1174         * crtstuff.c (gid_t, uid_t): Don't undefine.
1175         * doc/install.texi: Change m68k-coff to m68k-elf in example.
1176         (arm-*-coff, arm-*-aout: Remove target entries.
1177         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
1178         Remove mention of AIX 4.1.
1179         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
1180         * doc/invoke.texi (Running Protoize): Remove.
1181         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
1182         (Protoize Caveats): Remove.
1183         * tsystem.h: Update comments on headers assumed to exist.
1184
1185 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
1186
1187         * genautomata.c: Add a new year to the copyright.  Add a new
1188         reference.
1189         (struct insn_reserv_decl): Add comments for member bypass_list.
1190         (find_bypass): Remove.
1191         (insert_bypass): New.
1192         (process_decls): Use insert_bypass.
1193         (output_internal_insn_latency_func): Output all bypasses with the
1194         same input insn in one switch case.
1195
1196         * rtl.def (define_bypass): Describe bypass choice.
1197         * doc/md.texi (define_bypass): Ditto.
1198
1199 2009-03-27  Richard Guenther  <rguenther@suse.de>
1200
1201         * gimplify.c (mark_addressable): Export.
1202         * tree-flow.h (mark_addressable): Declare.
1203         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
1204         * tree-ssa.c (verify_phi_args): Verify that address taken
1205         variables have TREE_ADDRESSABLE set.
1206
1207 2009-03-27  Richard Guenther  <rguenther@suse.de>
1208
1209         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
1210         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
1211         Do not mark decls TREE_ADDRESSABLE.
1212         (build_fold_addr_expr): Adjust.
1213         (fold_addr_expr): Remove.
1214         (fold_unary): Use build_fold_addr_expr.
1215         (fold_comparison): Likewise.
1216         (split_address_to_core_and_offset): Likewise.
1217         * coverage.c (tree_coverage_counter_addr): Mark the array decl
1218         TREE_ADDRESSABLE.
1219         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
1220         (gimplify_modify_expr_to_memcpy): Mark source and destination
1221         addressable.
1222         * omp-low.c (create_omp_child_function): Mark the object decl
1223         TREE_ADDRESSABLE.
1224         (lower_rec_input_clauses): Mark the var we take the address of
1225         TREE_ADDRESSABLE.
1226         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
1227
1228 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1229
1230         PR middle-end/39315
1231         * cfgexpand.c (expand_one_stack_var_at): Change alignment
1232         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
1233
1234 2009-03-27  Richard Guenther  <rguenther@suse.de>
1235
1236         PR tree-optimization/39120
1237         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
1238         constraints.
1239         (handle_lhs_call): Process return constraints.  Add escape
1240         constraints if necessary.
1241         (handle_const_call): Fill out return constraints.  Make nested
1242         case more precise.  Avoid consttmp if possible.
1243         (handle_pure_call): Fill out return constraints.  Avoid
1244         callused if possible.
1245         (find_func_aliases): Simplify call handling.
1246
1247 2009-03-27  Richard Guenther  <rguenther@suse.de>
1248
1249         PR tree-optimization/39120
1250         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
1251         as a representative.
1252         (solve_graph): Do propagate CALLUSED.
1253         (handle_pure_call): Use a scalar constraint from CALLUSED for
1254         the return value.
1255         (find_what_p_points_to): CALLUSED shall not appear in poins-to
1256         solutions.
1257
1258 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1259
1260         PR c/39323
1261         * c-common.c (handle_aligned_attribute): Properly check alignment
1262         overflow.  Use (1U << i) instead of (1 << i).
1263
1264         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
1265
1266         * expr.h (get_mem_align_offset): Updated.
1267
1268         * tree.h (tree_decl_common): Change align to "unsigned int" and
1269         move it before pointer_alias_set.
1270
1271 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1272             Jakub Jelinek  <jakub@redhat.com>
1273
1274         PR target/38034
1275         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
1276         gr_register_operand with gr_reg_or_0_operand.
1277         (cmpxchg_rel_di): Likewise.
1278         (sync_lock_test_and_set<mode>): Likewise.
1279
1280 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1281
1282         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
1283         (true_regnum): Likewise.
1284
1285         * rtlanal.c (subreg_info): Moved to ...
1286         * rtl.h (subreg_info): Here.  New.
1287         (subreg_get_info): New.
1288
1289         * rtlanal.c (subreg_get_info): Make it extern.
1290
1291 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1292
1293         PR target/39472
1294         * config/i386/i386.c (ix86_abi): New.
1295         (override_options): Handle -mabi=.
1296         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
1297         (ix86_call_abi_override): Likewise.
1298         (init_cumulative_args): Likewise.
1299         (function_arg_advance): Likewise.
1300         (function_arg_64): Likewise.
1301         (function_arg): Likewise.
1302         (ix86_pass_by_reference): Likewise.
1303         (ix86_function_value_regno_p): Likewise.
1304         (ix86_build_builtin_va_list_abi): Likewise.
1305         (setup_incoming_varargs_64): Likewise.
1306         (is_va_list_char_pointer): Likewise.
1307         (ix86_init_machine_status): Likewise.
1308         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
1309         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
1310         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
1311         (ix86_function_abi): Make it static and return enum calling_abi.
1312         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
1313         with ix86_abi.
1314         (ix86_fn_abi_va_list): Updated.
1315
1316         * config/i386/i386.h (ix86_abi): New.
1317         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
1318         (CONDITIONAL_REGISTER_USAGE): Likewise.
1319         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
1320         (machine_function): Likewise.
1321
1322         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
1323         with ix86_abi.
1324         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
1325         (STACK_BOUNDARY): Likewise.
1326         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
1327
1328         * config/i386/i386.opt (mabi=): New.
1329
1330         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
1331         return enum calling_abi.
1332         (ix86_function_type_abi): Likewise.
1333         (ix86_function_abi): Removed.
1334
1335         * doc/invoke.texi: Document -mabi= option for x86.
1336
1337 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1338
1339         * builtins.c (real_dconstp): Delete.
1340         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
1341
1342 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
1343             Jakub Jelinek  <jakub@redhat.com>
1344
1345         PR debug/37959
1346         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
1347         (gen_subprogram_die): When a function is explicit, generate the
1348         DW_AT_explicit attribute.
1349         * langhooks.h (struct lang_hooks_for_decls): Add
1350         function_decl_explicit_p langhook.
1351         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
1352         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
1353
1354 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
1355
1356         * builtins.c (fold_builtin_memory_op): Optimize memmove
1357         into memcpy if we can prove source and destination don't overlap.
1358
1359         * tree-inline.c: Include gt-tree-inline.h.
1360         (clone_fn_id_num): New variable.
1361         (clone_function_name): New function.
1362         (tree_function_versioning): Use it.
1363         * Makefile.in (GTFILES): Add tree-inline.c.
1364
1365 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
1366
1367         * BASE-VER: Change to 4.5.0.
1368
1369 2009-03-27  Xinliang David Li  <davidxl@google.com>
1370
1371         PR tree-optimization/39557
1372         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
1373
1374 2009-03-27  Xinliang David Li  <davidxl@google.com>
1375
1376         PR tree-optimization/39548
1377         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy 
1378         candidate check.
1379
1380 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1381
1382         * c-common.c (pointer_int_sum): Use %wd on return from
1383         tree_low_cst.
1384
1385 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1386
1387         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
1388         on return from tree_low_cst.
1389
1390 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1391
1392         PR c++/36799
1393         * ginclude/stdarg.h (va_copy): Define also for
1394         __GXX_EXPERIMENTAL_CXX0X__.
1395
1396 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1397
1398         PR c++/35652
1399         * builtins.h (c_strlen): Do not warn here.
1400         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
1401         * c-common.c (pointer_int_sum): Take an explicit location.
1402         Warn about offsets out of bounds.
1403         * c-common.h (pointer_int_sum): Adjust declaration.
1404
1405 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1406
1407         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
1408         markup glitch.
1409
1410 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
1411
1412         PR c++/39554
1413         * opts.c (warn_if_disallowed_function_p): Don't assume
1414         get_callee_fndecl must return non-NULL.
1415
1416 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
1417
1418         PR rtl-optimization/39522
1419         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
1420         when reg_reloaded_valid is set.
1421
1422 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1423
1424         * config/spu/divv2df3.c: New file.
1425         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
1426         (DPBIT_FUNCS): Filter out _div_df.
1427
1428 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
1429
1430         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
1431         a jump insn, count that jump in the distance to the loop start.
1432
1433 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
1434
1435         PR target/39523
1436         * config/sh/sh.c (calc_live_regs): Fix condition for global
1437         registers except PIC_OFFSET_TABLE_REGNUM.
1438
1439 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
1440
1441         PR/39518
1442         * doc/invoke.texi (-mconsole): New.
1443         (-mcygwin): New.
1444         (-mno-cygwin): New.
1445         (-mdll): New.
1446         (-mnop-fun-dllimport): New.
1447         (-mthread): New.
1448         (-mwin32): New.
1449         (-mwindows): New.
1450         (sub section "i386 and x86-64 Windows Options"): New.
1451
1452 2009-03-25  Ralf Corsépius <ralf.corsepius@rtems.org>
1453
1454         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
1455         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
1456
1457 2009-03-25  Richard Guenther  <rguenther@suse.de>
1458
1459         PR middle-end/39497
1460         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
1461         of -Wno-error.
1462
1463 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
1464
1465         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
1466         neither of haifa/selective schedulers are working.
1467
1468 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1469
1470         * doc/invoke.texi (Debugging Options): Fix description of
1471         -fno-merge-debug-strings.
1472
1473 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
1474
1475         * config/cris/libgcc.ver: New version-script.
1476         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
1477
1478         * configure.ac <GAS features, nop mnemonic>: Add pattern
1479         crisv32-*-* for "nop".
1480         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
1481         * configure: Regenerate.
1482
1483 2009-03-24  Ira Rosen  <irar@il.ibm.com>
1484
1485         PR tree-optimization/39529
1486         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
1487         mark_sym_for_renaming for the tag copied to the new vector
1488         pointer.
1489
1490 2009-03-24  Arthur Loiret  <aloiret@debian.org>
1491
1492         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
1493         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
1494         EXTRA_SPEC_FUNCTIONS.
1495         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
1496         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
1497         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
1498         -march and -mtune options.
1499
1500 2009-03-24  Ralf Corsépius <ralf.corsepius@rtems.org>
1501
1502         * config/m68k/t-rtems: Add m5329 multilib.
1503
1504 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
1505             Jakub Jelinek  <jakub@redhat.com>
1506
1507         PR debug/39524
1508         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
1509         nodes.
1510
1511 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
1512
1513         PR c/39495
1514         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
1515         instead of c_parser_expression_conv, if original_code isn't one of the
1516         4 allowed comparison codes, fail.
1517
1518 2009-03-23  Richard Guenther  <rguenther@suse.de>
1519
1520         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
1521         * tree.h (struct tree_type): Likewise.
1522         * reload.h (struct insn_chain): Likewise.
1523         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
1524         * function.h (struct function): Likewise.
1525         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
1526
1527 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
1528
1529         PR tree-optimization/39516
1530         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
1531
1532 2009-03-23 Bingfeng Mei  <bmei@broadcom.com>
1533
1534         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint 
1535         should be set true if BITS_PER_WORD of target is bigger than 32
1536
1537 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
1538
1539         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
1540         Translate -B-options to -rpath-link.  Correct existing
1541         rpath-link and conditionalize on !nostdlib.
1542
1543 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1544
1545         * doc/extend.texi (Function Attributes, Variable Attributes):
1546         Fix typos.
1547         * doc/invoke.texi (Debugging Options, Optimize Options)
1548         (i386 and x86-64 Options, MCore Options): Likewise.
1549
1550 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
1551
1552         PR debug/37890
1553         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
1554         it for block local namespace aliases.
1555         (gen_decl_die): Pass context_die to gen_namespace_die.
1556
1557 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
1558
1559         PR c/39495
1560         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
1561         minimum or maximum value.
1562
1563 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
1564
1565         * reginfo.c (globalize_reg): Recompute derived reg sets.
1566
1567 2009-03-19  Ozkan Sezer <sezeroz@gmail.com>
1568
1569         PR target/39063
1570         * libgcc2.c (mprotect): Do not use signed arguments for
1571         VirtualProtect, use DWORD arguments.  Also fix the 'may
1572         be used uninitialized' warning for the np variable.
1573
1574 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
1575
1576         PR target/39496
1577         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
1578         functions using regparm calling conventions when not optimizing.
1579         (ix86_function_sseregparm): Similarly for sseregparm calling
1580         conventions.
1581
1582 2009-03-19  Li Feng  <nemokingdom@gmail.com>
1583
1584         PR middle-end/39500
1585         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
1586         dependence if the first conflict is after niter iterations.
1587
1588 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
1589
1590         PR middle-end/38609
1591         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
1592         functions with dynamic stack-pointer adjustments.
1593
1594 2009-03-19  Ben Elliston  <bje@au.ibm.com>
1595
1596         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
1597         option; change to -msdata=data.
1598
1599 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1600
1601         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
1602         and -fopenmp.
1603
1604 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
1605
1606         PR target/35180
1607         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
1608
1609 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
1610
1611         * doc/invoke.texi (Code Gen Options): Expand discussion of
1612         -fno-common.
1613
1614 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
1615
1616         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
1617         * matrix-reorg.c (struct matrix_info): Likewise.
1618         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
1619         * rtl.h (struct mem_attrs): Likewise.
1620         * df.h (struct df): Likewise.
1621         * tree-data-ref.h (struct data_dependence_relation): Likewise.
1622         * ira-int.h (struct ira_allocno): Likewise.
1623         * df-scan.c (struct df_collection_rec): Likewise.
1624         * ira.c (struct equivalence): Likewise.
1625         * function.c (struct temp_slot): Likewise.
1626         * cfgloop.h (struct loop): Likewise.
1627
1628         PR debug/39485
1629         * function.c (use_register_for_decl): When not optimizing, disregard
1630         register keyword for variables with types containing methods.
1631
1632 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
1633
1634         PR middle-end/39447
1635         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
1636         (is_simple_operand): Call contains_component_ref_p before calling data
1637         reference analysis that would fail on COMPONENT_REFs.
1638
1639         * tree-vrp.c (search_for_addr_array): Fix formatting.
1640
1641 2009-03-18  Richard Guenther  <rguenther@suse.de>
1642
1643         * tree-vect-transform.c (vect_loop_versioning): Fold the
1644         generated comparisons.
1645         * tree-vectorizer.c (set_prologue_iterations): Likewise.
1646         (slpeel_tree_peel_loop_to_edge): Likewise.
1647
1648 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1649
1650         PR middle-end/37805
1651         * opts.c (print_specific_help): In addition to `undocumented',
1652         accept `separate' and `joined' flags if passed alone.  Describe
1653         output by the first matched one of those.
1654         (common_handle_option): Skip over empty strings.
1655         * gcc.c (display_help): Fix help string for `--help='.
1656         * doc/invoke.texi (Option Summary, Overall Options): With
1657         `--help=', classes and qualifiers can both be repeated, but
1658         only the latter can be negated.  One should not pass only
1659         negated qualifiers.  Fix markup and examples.
1660
1661         Revert
1662         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
1663         PR middle-end/37805
1664         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
1665         and -fhelp=separate.
1666
1667 2009-03-17  Jing Yu  <jingyu@google.com>
1668
1669         PR middle-end/39378
1670         * function.h (struct rtl_data): Move is_thunk from here...
1671         (struct function): ...to here.
1672         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
1673         * varasm.c (assemble_start_function): Change is_thunk from crtl to
1674         cfun.
1675         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
1676         cfun.
1677         (alpha_does_function_need_gp, alpha_start_function): Likewise.
1678         (alpha_output_function_end_prologue): Likewise.
1679         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
1680         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
1681         (rs6000_output_function_epilogue): Likewise.
1682         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
1683
1684 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
1685
1686         PR target/39482
1687         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
1688         from different units in a single alternative.
1689         (*truncdfsf_i387): Ditto.
1690         (*truncxfsf2_mixed): Ditto.
1691         (*truncxfdf2_mixed): Ditto.
1692
1693 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
1694
1695         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
1696         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
1697
1698         PR debug/39474
1699         * tree-ssa-live.c (remove_unused_locals): Don't remove local
1700         unused non-artificial variables when not optimizing.
1701
1702         PR debug/39471
1703         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
1704         DW_TAG_imported_module even if decl is IMPORTED_DECL with
1705         NAMESPACE_DECL in its DECL_INITIAL.
1706
1707         PR middle-end/39443
1708         * optabs.c (set_user_assembler_libfunc): New function.
1709         * expr.h (set_user_assembler_libfunc): New prototype.
1710         * c-common.c: Include libfuncs.h.
1711         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
1712         for memcmp, memset, memcpy, memmove and abort.
1713         * Makefile.in (c-common.o): Depend on libfuncs.h.
1714
1715         PR debug/39412
1716         * dwarf2out.c (gen_inlined_enumeration_type_die,
1717         gen_inlined_structure_type_die, gen_inlined_union_type_die,
1718         gen_tagged_type_instantiation_die): Removed.
1719         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
1720         do nothing.
1721
1722 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
1723
1724         PR testsuite/38526
1725         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
1726         its use.
1727         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
1728         (check-parallel-%): Ditto.
1729         (check-consistency): Ditto.
1730
1731 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
1732
1733         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
1734         local variable rhs by NULL_TREE.
1735
1736 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
1737
1738         PR target/39477
1739         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
1740
1741 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
1742
1743         PR target/39476
1744         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
1745
1746 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
1747
1748         PR target/39473
1749         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
1750         for ms->sysv ABI calls only in 64bit mode.
1751
1752         * config/i386/i386.md (untyped_call): Support 32bit.
1753
1754 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
1755
1756         * doc/extend.texi: Replace x86_65 with x86_64.
1757
1758 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
1759
1760         PR tree-optimization/39455
1761         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
1762         mismatches for POINTER_TYPE_P (type).
1763         (number_of_iterations_le): Likewise.
1764
1765 2009-03-16  Hariharan Sandanagobalane <hariharan@picochip.com>
1766
1767         * config/picochip/picochip.c: Removed profiling support.
1768         * config/picochip/picochip.md: Removed profiling instruction.
1769         * config/picochip/picochip.h: Removed profiling builtin.
1770
1771 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
1772
1773         * doc/install.texi (--with-host-libstdcxx): Document.
1774
1775 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
1776
1777         PR target/34299
1778         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
1779         generate a warning if the function name does not begin with
1780         "__vector" and the function has either the 'signal' or 'interrupt'
1781         attribute, from here to ...
1782         (avr_declare_function_name): ...here. New function.
1783         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
1784         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
1785
1786 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
1787
1788         PR bootstrap/39454
1789         * cse.c (fold_rtx): Don't modify original const_arg1 when
1790         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
1791         separate variable instead.
1792         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
1793         from out of range shift counts.
1794         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
1795
1796 2008-03-13  Catherine Moore  <clm@codesourcery.com>
1797
1798         * gcc/config/i386/x-mingw32 (host-mingw32.o): Replace
1799         diagnostic.h with $(DIAGNOSTIC_H).
1800
1801 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
1802
1803         PR target/39431
1804         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
1805         predicate.
1806         * config/i386/sync.md (sync_compare_and_swap<mode>,
1807         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
1808         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
1809         into a register.
1810         (sync_double_compare_and_swapdi_pic,
1811         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
1812         cmpxchg8b_pic_memory_operand instead of just memory_operand.
1813
1814 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
1815
1816         PR target/39445
1817         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
1818
1819 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
1820
1821         PR target/39327
1822         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
1823         (avx_addsubv4df3): Likewise.
1824         (*avx_addsubv4sf3): Likewise.
1825         (sse3_addsubv4sf3): Likewise.
1826
1827 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
1828
1829         PR target/38824
1830         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
1831
1832 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
1833
1834         PR debug/39432
1835         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
1836         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
1837         registers for allocnos created from user-defined variables.
1838
1839 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1840
1841         PR target/39181
1842         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
1843         of non-integer mode as well.
1844
1845 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
1846
1847         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
1848         for functions for which the parameter types are unknown.
1849
1850 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
1851
1852         PR target/39137
1853         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
1854         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
1855         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
1856         * config/i386/i386.c (ix86_local_alignment): For
1857         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
1858         long long variables on the stack to avoid dynamic realignment.
1859         Allow the first argument to be a decl rather than type.
1860         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
1861
1862 2009-03-11  Nick Clifton  <nickc@redhat.com>
1863
1864         PR target/5362
1865         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
1866         options.
1867         Add description to mno-lsim option.
1868         * config/mcore/mcore.h: Remove comment about deprecated m4align
1869         option.
1870         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
1871         * doc/invoke.texi: Add description of mno-lsim and
1872         mstack-increment options.
1873
1874         * config/fr30/fr30.opt: Document the -mno-lsim option.
1875         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
1876         and -mno-lsim options.
1877
1878 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1879
1880         * fold-const.c (fold_comparison): Only call fold_inf_compare
1881         if the mode supports infinities.
1882
1883 2009-03-11  Jason Merrill  <jason@redhat.com>
1884
1885         PR debug/39086
1886         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
1887         end already did.  Notice GIMPLE_CALL modifications of the result.
1888         Don't copy debug information from an ignored decl or a decl from
1889         another function.
1890
1891 2009-03-10  Richard Guenther  <rguenther@suse.de>
1892             Nathan Froyd  <froydnj@codesourcery.com>
1893
1894         PR middle-end/37850
1895         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
1896         (__divMODE3): Likewise.
1897
1898 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
1899
1900         PR tree-optimization/39394
1901         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
1902         DECL_SIZE_UNIT of variable length FIELD_DECLs.
1903
1904 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1905
1906         * recog.c (verfiy_changes): Disallow renaming of hard regs in
1907         inline asms for register asm ("") declarations.
1908
1909 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
1910
1911         * fold-const.c (fold_unary): Fix comment.
1912
1913 2009-03-07  Jan Hubicka  <jh@suse.cz>
1914
1915         PR target/39361
1916         * tree-inline.c (setup_one_parameter): Do replacement of const
1917         argument by constant in SSA form.
1918
1919 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1920
1921         PR middle-end/38028
1922         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
1923         determine alignment passed to assign_stack_local.
1924         (assign_parms_unsplit_complex): Likewise.
1925         * except.c (sjlj_build_landing_pads): Likewise.
1926
1927 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
1928
1929         PR middle-end/39360
1930         * tree-flow.h (add_referenced_var): Return bool instead of void.
1931         * tree-dfa.c (add_referenced_var): Return result of
1932         referenced_var_check_and_insert call.
1933         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
1934         of referenced_var_check_and_insert.
1935
1936         PR debug/39372
1937         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
1938         (gen_variable_die): Emit DW_AT_location on abstract static variable's
1939         DIE, don't emit it if abstract origin already has it.
1940         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
1941         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
1942
1943 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
1944
1945         * genpreds.c (needs_variable): Fix parentheses at variable name
1946         detection.
1947         (write_tm_constrs_h): Indent generated code.
1948
1949 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1950
1951         * doc/extend.texi (Function Attributes): Add documentation
1952         for isr attributes.
1953
1954 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
1955
1956         PR debug/39387
1957         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
1958         take locus from its DECL_SOURCE_LOCATION instead of input_location.
1959
1960 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
1961
1962         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
1963         the loop as bad.
1964
1965 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
1966
1967         PR debug/39379
1968         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
1969         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
1970
1971 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
1972
1973         * config/i386/i386.md (R8_REG, R9_REG): New constants.
1974         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
1975         constants instead of magic numbers.
1976         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
1977         (QI_REG_P): Ditto.
1978         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
1979         (x86_64_ms_abi_int_parameter_registers): Ditto.
1980         (x86_64_int_return_registers): Ditto.
1981         (ix86_maybe_switch_abi): Ditto.
1982         (ix86_expand_call): Ditto for clobbered_registers array.
1983         (ix86_hard_regno_mode_ok): Ditto.
1984         (x86_extended_QIreg_mentioned_p): Ditto.
1985
1986 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
1987
1988         PR tree-optimization/39349
1989         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
1990
1991         * combine.c (gen_lowpart_for_combine): Use omode when generating
1992         clobber.
1993
1994 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
1995
1996         PR rtl-optimization/39235
1997         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
1998
1999 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
2000
2001         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
2002
2003 2009-03-04  Richard Guenther  <rguenther@suse.de>
2004
2005         PR tree-optimization/39362
2006         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
2007         that occur in abnormal PHIs should be varying.
2008
2009 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
2010
2011         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
2012         Extend comments.
2013         (simple_iv):  Take loop as an argument instead of statement.
2014         * tree-scalar-evolution.h (simple_iv): Declaration changed.
2015         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
2016         to simple_iv.
2017         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
2018         Ditto.
2019         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
2020         * matrix-reorg.c (analyze_transpose): Ditto.
2021         * tree-data-ref.c (dr_analyze_innermost): Ditto.
2022         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
2023         * tree-predcom.c (ref_at_iteration): Ditto.
2024         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
2025
2026 2009-03-04  Richard Guenther  <rguenther@suse.de>
2027
2028         PR tree-optimization/39358
2029         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
2030         escaped_id and callused_id.
2031         (solve_graph): Likewise.
2032
2033 2009-03-04  Richard Guenther  <rguenther@suse.de>
2034
2035         PR tree-optimization/39339
2036         * tree-sra.c (try_instantiate_multiple_fields): Make it
2037         no longer ICE on the above.
2038
2039 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
2040
2041         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
2042         that fits within Pmode.
2043
2044 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
2045
2046         PR middle-end/10109
2047         * tm.texi (LIBCALL_VALUE): Update description.
2048
2049 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
2050
2051         PR middle-end/34443
2052         * doc/extend.texi (section): Update description.
2053
2054 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
2055
2056         PR middle-end/39345
2057         * tree-inline.c (remapped_type): New.
2058         (can_be_nonlocal): Call remapped_type instead of remap_type.
2059
2060 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
2061
2062         PR fortran/39354
2063         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
2064         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
2065
2066 2009-03-03  Richard Guenther  <rguenther@suse.de>
2067
2068         PR middle-end/39272
2069         * tree.c (tree_nonartificial_location): New function.
2070         * tree.h (tree_nonartificial_location): Declare.
2071         * builtins.c (expand_builtin_memory_chk): Provide location
2072         of the call location for artificial function pieces.
2073         (maybe_emit_chk_warning): Likewise.
2074         (maybe_emit_sprintf_chk_warning): Likewise.
2075         (maybe_emit_free_warning): Likewise.
2076         * expr.c (expand_expr_real_1): Likewise.
2077
2078 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
2079
2080         PR tree-optimization/39343
2081         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
2082         COMPONENT_REF t has ARRAY_TYPE.
2083
2084 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
2085
2086         PR middle-end/39335
2087         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
2088         when the type precision of the induction variable should be
2089         larger than the type precision of nit.
2090         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
2091         * graphite.c (graphite_loop_normal_form): Same.
2092         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
2093
2094 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
2095
2096         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
2097         (*call_1_rex64_ms_sysv): Use named constants instead of magic
2098         numbers to describe clobbered registers.
2099         (*call_value_0_rex64_ms_sysv): Ditto.
2100         * config/i386/mmx.md (mmx_emms): Ditto.
2101         (mmx_femms): Ditto.
2102
2103 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
2104
2105         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
2106         of ABI_64.
2107
2108 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2109
2110         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
2111         (spu_section_type_flags): New function.
2112
2113 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
2114
2115         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
2116         reg_class_contents of FLOAT_REGS into a temporary.
2117
2118 2009-03-02  Richard Guenther  <rguenther@suse.de>
2119             Ira Rosen  <irar@il.ibm.com>
2120
2121         PR tree-optimization/39318
2122         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
2123         information to the vectorized statement.
2124
2125 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
2126
2127         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
2128         variable.  Use defined names instead of magic constants for REX SSE
2129         registers.
2130
2131 2009-03-01  Richard Guenther  <rguenther@suse.de>
2132
2133         PR tree-optimization/39331
2134         * omp-low.c (lower_send_shared_vars): Do not receive new
2135         values for the reference of DECL_BY_REFERENCE parms or results.
2136
2137 2009-03-01  Jan Hubicka  <jh@suse.cz>
2138
2139         PR debug/39267
2140         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
2141         BLOCK_NONLOCALIZED_VAR): New macros.
2142         (tree_block): Add nonlocalized_vars.
2143         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
2144         gen_decl_die): Add origin argument.  Allow generation of die with
2145         origin at hand only.
2146         (gen_member_die, gen_type_die_with_usage, force_decl_die,
2147         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
2148         of gen_*.
2149         (gen_block_die): Fix checking for unused blocks.
2150         (process_scope_var): Break out from .... ; work with origins only.
2151         (decls_for_scope) ... here; process nonlocalized list.
2152         (dwarf2out_ignore_block): Look for nonlocalized vars.
2153         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
2154         vars.
2155         (dump_scope_block): Dump them.
2156         * tree-inline.c (remap_decls): Handle nonlocalized vars.
2157         (remap_block): Likewise.
2158         (can_be_nonlocal): New predicate.
2159         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
2160
2161 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2162
2163         * configure: Regenerate.
2164
2165 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2166
2167         * optc-gen.awk: No need to duplicate option flags twice.
2168         Reuse help texts for duplicate options which do not have any.
2169
2170         * gcc.c (display_help): Document --version.
2171
2172         * gcc.c (main): If print_help_list and verbose_flag, ensure
2173         driver output comes before subprocess output.
2174
2175         * optc-gen.awk: Assign all remaining fields to help string,
2176         space-separated, for multi-line help in *.opt.
2177
2178         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
2179         -Wno-pedantic-ms-format is for MinGW targets only.
2180
2181         * doc/options.texi (Option file format): Fix bad indentation,
2182         restoring dropped sentence.
2183
2184 2009-02-28  Jan Hubicka  <jh@suse.cz>
2185
2186         * tree-inline.c (tree_function_versioning): Output debug info.
2187
2188 2009-02-28  Jan Hubicka  <jh@suse.cz>
2189
2190         PR debug/39267
2191         * tree-inline.c (setup_one_parameter): Do not copy propagate
2192         arguments when not optimizing.
2193
2194 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
2195
2196         PR target/39327
2197         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
2198         (avx_addsubv4df3): Likewise.
2199         (*avx_addsubv4sf3): Likewise.
2200         (sse3_addsubv4sf3): Likewise.
2201         (*avx_addsubv2df3): Likewise.
2202         (sse3_addsubv2df3): Likewise.
2203         (avx_unpckhps256): Correct item selectors.
2204         (avx_unpcklps256): Likewise.
2205         (avx_unpckhpd256): Likewise.
2206         (avx_unpcklpd256): Likewise.
2207
2208 2009-02-28  Jan Hubicka  <jh@suse.cz>
2209
2210         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
2211         static vars.
2212         (copy_arguments_for_versioning): If var is declared don't declare it.
2213         (tree_function_versioning): First setup substitutions and then copy
2214         args.
2215
2216 2009-02-27  Jan Hubicka  <jh@suse.cz>
2217
2218         PR debug/39267
2219         * cgraph.h (varpool_output_debug_info): Remove.
2220         * cgraphunit.c (varpool_output_debug_info): Remove.
2221         * dwarf2out.c (deferred_locations_struct): New struct
2222         (deferred_locations): New type.
2223         (deferred_locations_list): New static var.
2224         (deffer_location): New function.
2225         (gen_variable_die): Use it.
2226         (decls_for_scope): Output info on local static vars.
2227         (dwarf2out_finish): Process deferred locations.
2228         * varpool.c (varpool_output_debug_info): Remove.
2229
2230 2009-02-27  Jan Hubicka  <jh@suse.cz>
2231
2232         PR debug/39267
2233         * tree.h (TREE_PROTECTED): Fix comment.
2234         (BLOCK_HANDLER_BLOCK): Remove.
2235         (struct tree_block): Remove handler_block add body_block.
2236         (inlined_function_outer_scope_p): New.
2237         (is_body_block): Remove.
2238         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
2239         * dwarf2out.c (is_inlined_entry_point): Remove.
2240         (add_high_low_attributes): Use inlined_function_outer_scope_p.
2241         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
2242         code.
2243         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
2244         * gimplify.c (gimplify_expr): Gimplify body blocks.
2245         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
2246         block with multiple subblocks.
2247         (dump_scope_block): Prettier output; dump more flags and info.
2248         (dump_scope_blocks): New.
2249         (remove_unused_locals): Use dump_scope_blocks.
2250         * tree-flow.h (dump_scope_blocks): Declare.
2251         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
2252         * stmt.c (is_body_block): Remove.
2253         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
2254         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
2255
2256 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
2257
2258         PR middle-end/39308
2259         * graphite.c (graphite_loop_normal_form): Do not call 
2260         number_of_iterations_exit from a gcc_assert.
2261
2262 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2263
2264         * gcc/config/s390/s390.c (s390_swap_cmp): Look for conditional
2265         jumps if COND is NULL.
2266         (find_cond_jump): New function.
2267         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
2268         * gcc/config/s390/s390.md: Remove z10_cobra attribute value.
2269
2270 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
2271
2272         * config/alpha/alpha.h (alpha_expand_mov): Return false if
2273         force_const_mem returns NULL_RTX.
2274
2275 2009-02-26  Jan Hubicka  <jh@suse.cz>
2276
2277         PR debug/39267
2278         * cgraph.h (varpool_output_debug_info): Remove.
2279         * cgraphunit.c (varpool_output_debug_info): Remove.
2280         * dwarf2out.c (deferred_locations_struct): New struct
2281         (deferred_locations): New type.
2282         (deferred_locations_list): New static var.
2283         (deffer_location): New function.
2284         (gen_variable_die): Use it.
2285         (decls_for_scope): Output info on local static vars.
2286         (dwarf2out_finish): Process deferred locations.
2287         * varpool.c (varpool_output_debug_info): Remove.
2288
2289 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
2290
2291         PR rtl-optimization/39241
2292         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
2293         to subreg_offset_representable_p.
2294
2295 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
2296
2297         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
2298         execute function prototype.  Get f and nregs from max_reg_num
2299         and get_insns.  Remove the first backward pass as it's dead,
2300         guard the forward pass by flag_expensive_optimizations.
2301         (rest_of_handle_regmove): Delete.
2302         (pass_regmove): Replace it with regmove_optimize.
2303
2304 2009-02-25  Martin Jambor  <mjambor@suse.cz>
2305
2306         PR tree-optimization/39259
2307         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
2308         calls_alloca function flags.
2309         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
2310         calls are detected.
2311
2312 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
2313
2314         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
2315         flags_set_1_rtx, flags_set_1_set): Delete.
2316         (regmove_optimize): Do not call mark_flags_life_zones.
2317
2318 2009-02-24  Julian Brown  <julian@codesourcery.com>
2319
2320         PR target/35965
2321         * config/arm/arm.c (require_pic_register): Only set
2322         cfun->machine->pic_reg once per function.
2323
2324 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
2325
2326         * doc/invoke.texi (Link Options): Document an easier way to pass
2327         options that take arguments to the GNU linker using -Xlinker and -Wl.
2328
2329 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
2330
2331         PR target/33785
2332         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
2333
2334 2009-02-24  Richard Guenther  <rguenther@suse.de>
2335
2336         PR debug/39285
2337         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
2338
2339 2009-02-24  Richard Guenther  <rguenther@suse.de>
2340             Zdenek Dvorak  <ook@ucw.cz>
2341
2342         PR tree-optimization/39233
2343         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
2344         from converting them to a generic type.
2345
2346 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
2347
2348         PR tree-optimization/39260
2349         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
2350         contains a condition with a real type.
2351         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
2352
2353 2009-02-23  Jason Merrill  <jason@redhat.com>
2354
2355         PR c++/38880
2356         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
2357         narrowing_initializer_constant_valid_p.
2358         (narrowing_initializer_constant_valid_p): Don't return 
2359         null_pointer_node for adding a pointer to itself.
2360
2361 2009-02-23  Jan Hubicka  <jh@suse.cz>
2362
2363         PR c/12245
2364         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
2365         resizing.
2366
2367 2009-02-23  Jan Hubicka  <jh@suse.cz>
2368
2369         PR tree-optimization/37709
2370         * tree.c (block_ultimate_origin): Move here from dwarf2out.
2371         * tree.h (block_ultimate_origin): Declare.
2372         * dwarf2out.c (block_ultimate_origin): Move to tree.c
2373         * tree-ssa-live.c (remove_unused_scope_block_p):
2374         Eliminate blocks containig no instructions nor live variables nor
2375         nested blocks.
2376         (dump_scope_block): New function.
2377         (remove_unused_locals): Enable removal of dead blocks by default;
2378         enable dumping at TDF_DETAILS.
2379
2380 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
2381
2382         * config/i386/i386.c (classify_argument): Don't allow COImode
2383         and OImode.
2384         (function_arg_advance_32): Don't allow OImode.
2385         (function_arg_32): Likewise.
2386         (function_value_32): Likewise.
2387         (return_in_memory_32): Likewise.
2388         (function_arg_64): Remove OImode comment.
2389
2390 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
2391
2392         PR target/39261
2393         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
2394         ix86_expand_vector_set for V4DImode in 64bit mode only.
2395         (ix86_expand_vector_init_one_var): Likewise.
2396
2397 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
2398
2399         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
2400
2401 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
2402
2403         PR bootstrap/39257
2404         * loop-iv.c: Revert last change.
2405         * emit-rtl.c: Likewise.
2406
2407 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
2408
2409         PR target/39256
2410         * config/i386/i386.c (type_natural_mode): Remove an extra
2411         space in the warning message.
2412         (function_value_32): Handle 32-byte vector modes.
2413         (return_in_memory_32): Likewise.
2414
2415 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
2416
2417         * loop-iv.c (truncate_value): New function.
2418         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
2419         of lowpart_subreg.
2420         (lowpart_subreg): Move to...
2421         * emit-rtl.c: ...here.
2422
2423 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
2424
2425         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
2426         accidental and undocumented change at revision 140860.
2427
2428 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
2429
2430         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
2431         take gimple_seq * arguments.
2432         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
2433         types_compatible_p langhook.
2434
2435 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
2436             Joseph Myers  <joseph@codesourcery.com>
2437
2438         * config/arm/arm.c (arm_builtin_va_list): New function.
2439         (arm_expand_builtin_va_start): Likewise.
2440         (arm_gimplify_va_arg_expr): Likewise.
2441         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
2442         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
2443         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
2444         (va_list_type): New variable.
2445         (arm_mangle_type): Mangle va_list_type appropriately.
2446
2447 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
2448
2449         PR middle-end/39157
2450         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
2451         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
2452         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
2453         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
2454         parameter to 1000 for -O1 by default.
2455         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
2456         parameter.
2457         * loop-invariant.c: Include params.h.
2458         (move_loop_invariants): Don't call move_single_loop_invariants on
2459         very large loops.
2460
2461 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
2462
2463         * calls.c (emit_library_call_value_1): Use slot_offset instead of
2464         offset when calculating bounds for indexing stack_usage_map.  Fixes
2465         a buffer overflow with certain target setups.
2466
2467 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
2468
2469         PR target/39240
2470         * calls.c (expand_call): Clear try_tail_call if caller and callee
2471         disagree in promotion of function return value.
2472
2473 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
2474
2475         PR target/39175
2476         * c-common.c (c_determine_visibility): If visibility changed and
2477         DECL_RTL has been already set, call make_decl_rtl to update symbol
2478         flags.
2479
2480 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
2481
2482         PR c++/39188
2483         * varasm.c (assemble_variable): Don't check DECL_NAME when
2484         globalizing a variable.
2485
2486 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
2487
2488         PR c/38483
2489         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
2490         expression before any __builtin_trap call.
2491         * c-typeck.c (build_function_call): Convert and check function
2492         arguments before generating a call to a trap.  Evaluate the
2493         function arguments before the trap.
2494
2495 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
2496
2497         PR target/39228
2498         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
2499         (UNSPEC_FXAM_MEM): New unspec.
2500         (fxam<mode>2_i387_with_temp): New insn and split pattern.
2501         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
2502         memory using fxam<mode>2_i387_with_temp to remove excess precision.
2503
2504 2009-02-19  Richard Guenther  <rguenther@suse.de>
2505
2506         PR tree-optimization/39207
2507         PR tree-optimization/39074
2508         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
2509         storedanything_tree): New.
2510         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
2511         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
2512         (build_succ_graph): Add edges from STOREDANYTHING to all
2513         non-direct nodes.
2514         (init_base_vars): Initialize STOREDANYTHING.
2515         (compute_points_to_sets): Free substitution info after
2516         building the succ graph.
2517         (ipa_pta_execute): Likewise.
2518
2519         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
2520         field.
2521         (do_ds_constraint): Do not add to special var or non-pointer
2522         field solutions.
2523         (type_could_have_pointers): Split out from ...
2524         (could_have_pointers): ... here.  For arrays use the element type.
2525         (create_variable_info_for): Initialize may_have_pointers.
2526         (new_var_info): Likewise.
2527         (handle_lhs_call): Make the HEAP variable unknown-sized.
2528         (intra_create_variable_infos): Use a type with pointers for
2529         PARM_NOALIAS, make it unknown-sized.
2530
2531 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
2532
2533         PR target/39224
2534         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
2535
2536 2009-02-18  Jason Merrill  <jason@redhat.com>
2537
2538         PR target/39179
2539         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
2540         value if DECL_EXTERNAL.
2541         * tree-sra.c (sra_walk_gimple_assign): Likewise.
2542         * target.h (gcc_target::binds_local_p): Clarify "module".
2543         * tree.h (TREE_PUBLIC): Clarify "module".
2544
2545 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
2546
2547         PR target/38891
2548         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
2549         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
2550
2551 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
2552
2553         PR target/39082
2554         * c.opt (Wabi): Support C and ObjC.
2555         (Wpsabi): New.
2556
2557         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
2558
2559         * config/i386/i386.c (classify_argument): Warn once about the ABI
2560         change when passing union with long double.
2561
2562         * doc/invoke.texi: Update -Wabi for warning psABI changes.
2563
2564 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
2565
2566         PR c/35447
2567         * c-parser.c (c_parser_compound_statement): Always enter and leave
2568         a scope.
2569
2570 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2571
2572         PR target/34587
2573         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
2574
2575 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
2576
2577         PR tree-optimization/36922
2578         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
2579         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
2580         Likewise.
2581
2582 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
2583
2584         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
2585         to 0 for EABI64.
2586
2587 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
2588
2589         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
2590
2591 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
2592
2593         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
2594         tree sharing.
2595
2596 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
2597             Richard Sandiford  <rdsandiford@googlemail.com>
2598
2599         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
2600         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
2601         (loongson_biadd): ...this.
2602
2603 2009-02-17  Richard Guenther  <rguenther@suse.de>
2604
2605         PR tree-optimization/39202
2606         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
2607         a var make sure to follow existing collapses.
2608
2609 2009-02-17  Richard Guenther  <rguenther@suse.de>
2610
2611         PR middle-end/39214
2612         * langhooks.c (lhd_print_error_function): Check for NULL block.
2613
2614 2009-02-17  Richard Guenther  <rguenther@suse.de>
2615
2616         PR tree-optimization/39204
2617         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
2618         of the PHI arg.
2619
2620 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
2621
2622         * config/soft-fp/double.h: Update from glibc CVS.
2623
2624 2009-02-17  Richard Guenther  <rguenther@suse.de>
2625
2626         PR tree-optimization/39207
2627         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
2628         strict-aliasing warnings for pointers pointing to NULL.
2629
2630 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
2631
2632         PR c/35446
2633         * c-parser.c (c_parser_braced_init): Call pop_init_level when
2634         skipping until next close brace.
2635
2636 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
2637
2638         PR target/37049
2639         * config/i386/i386.c (ix86_expand_push): Set memory alignment
2640         to function argument boundary.
2641
2642 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
2643
2644         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
2645         in the lea_add. Reload eventually constraints it properly.
2646         * config/picochip/constraints.md : Remove the target constraint
2647         "b", since it is not needed anymore.
2648
2649 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
2650
2651         * gthr-dce.h: Uglify function parameter and local variable names.
2652         * gthr-gnat.h: Likewise.
2653         * gthr-mipssde.h: Likewise.
2654         * gthr-nks.h: Likewise.
2655         * gthr-posix95.h: Likewise.
2656         * gthr-posix.h: Likewise.
2657         * gthr-rtems.h: Likewise.
2658         * gthr-single.h: Likewise.
2659         * gthr-solaris.h: Likewise.
2660         * gthr-tpf.h: Likewise.
2661         * gthr-vxworks.h: Likewise.
2662         * gthr-win32.h: Likewise.
2663
2664 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
2665
2666         PR target/39196
2667         * config/i386/i386.md: Restrict the new peephole2 to move
2668         between MMX/SSE registers.
2669
2670 2009-02-15  Richard Guenther  <rguenther@suse.de>
2671
2672         Revert
2673         2009-02-13  Richard Guenther  <rguenther@suse.de>
2674
2675         * configure.ac: Enable LFS.
2676         * configure: Re-generate.
2677         * config.in: Likewise.
2678
2679 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2680
2681         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
2682         spu_srqwbyte, spu_srqwbytebc): Define.
2683         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
2684         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
2685         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
2686         "shrqby_<mode>"): New insn-and-split patterns.
2687         * config/spu/spu.c (expand_builtin_args): Determine and return
2688         number of operands using spu_builtin_description data.
2689         (spu_expand_builtin_1): Use it.
2690
2691 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
2692
2693         PR target/38056
2694         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
2695         TARGET_CONST_GP.
2696
2697 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
2698
2699         PR target/39149
2700         * config/i386/i386.c (override_options): Correct warning
2701         messages for -malign-loops, -malign-jumps and -malign-functions.
2702
2703 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
2704
2705         PR target/39152
2706         * config/i386/i386.md: Restrict the new peephole2 to move
2707         between the general purpose registers.
2708
2709 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
2710
2711         PR target/39162
2712         * config/i386/i386.c (type_natural_mode): Add a new argument.
2713         Return the original mode and warn ABI change if vector size is 32byte.
2714         (function_arg_advance): Updated.
2715         (function_arg): Likewise.
2716         (ix86_function_value): Likewise.
2717         (ix86_return_in_memory): Likewise.
2718         (ix86_sol10_return_in_memory): Likewise.
2719         (ix86_gimplify_va_arg): Likewise.
2720         (function_arg_32): Don't warn ABX ABI change here.
2721         (function_arg_64): Likewise.
2722
2723 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
2724
2725         * loop-iv.c (implies_p): In the final case, test that operands 0
2726         of the two comparisons match.
2727
2728         * config/bfin/bfin.c (find_prev_insn_start): New function.
2729         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
2730         (find_next_insn_start): Move.
2731
2732 2009-02-13  Richard Guenther  <rguenther@suse.de>
2733
2734         * configure.ac: Enable LFS.
2735         * configure: Re-generate.
2736         * config.in: Likewise.
2737
2738 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
2739
2740         PR c/35444
2741         * c-parser.c (c_parser_parms_list_declarator): Discard pending
2742         sizes on syntax error after some arguments have been parsed.
2743
2744 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
2745
2746         * doc/invoke.texi (-fira): Remove.
2747
2748 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
2749
2750         * caller-save.c: Replace regclass.c with reginfo.c in comments.
2751         * recog.c: Likewise.
2752         * rtl.h: Likewise.
2753
2754 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
2755
2756         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
2757         (umul_ppmm): Likewise.
2758         (count_leading_zeros): Likewise.
2759         (count_trailing_zeros): Likewise.
2760         (UMUL_TIME): Likewise.
2761
2762 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
2763
2764         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
2765         soft-fp/t-softfp to tmake_file.
2766
2767         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
2768         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
2769         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
2770         IA64_BUILTIN_INFQ]: New.
2771         (ia64_init_builtins): Initialize __builtin_infq,
2772         __builtin_fabsq and __builtin_copysignq if not HPUX.
2773         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
2774         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
2775
2776         * config/ia64/lib1funcs.asm (__divtf3): Define only if
2777         SHARED is defined.
2778         (__fixtfti): Likewise.
2779         (__fixunstfti): Likewise.
2780         (__floattitf): Likewise.
2781
2782         * config/ia64/libgcc-glibc.ver: New.
2783         * config/ia64/t-fprules-softfp: Likewise.
2784         * config/ia64/sfp-machine.h: Likewise.
2785
2786         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
2787         (LIBGCC2_TF_CEXT): Likewise.
2788         (TF_SIZE): Likewise.
2789         (TARGET_INIT_LIBFUNCS): Likewise.
2790
2791         * config/ia64/t-glibc (SHLINB_MAPFILES):
2792         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
2793
2794 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
2795
2796         * config/i386/i386.c (construct_container): Rewrite processing
2797         BLKmode with X86_64_SSE_CLASS.
2798
2799 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
2800
2801         PR target/39152
2802         * config/i386/i386.md: Replace simplify_replace_rtx with
2803         replace_rtx in the new peephole2.
2804
2805 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
2806
2807         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
2808         loop unrolling do not happen at -O2.
2809
2810 2009-02-12  Michael Matz  <matz@suse.de>
2811
2812         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
2813
2814 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
2815
2816         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
2817         for -g3.
2818
2819 2009-02-12  Ben Elliston  <bje@au.ibm.com>
2820
2821         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
2822         patterns when updating the back chain.  Missed in the 2009-02-10
2823         change.
2824
2825 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
2826
2827         * doc/extend.texi (Decimal Floating Types): Update identifier of
2828         draft TR and list of missing support.
2829
2830 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
2831
2832         PR middle-end/39154
2833         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
2834         bit to variable length decl's flags, add it also to its
2835         pointer replacement variable.
2836
2837 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
2838             Jakub Jelinek  <jakub@redhat.com>
2839
2840         PR target/39118
2841         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
2842         (memory_blockage): New expander.
2843         (*memory_blockage): New insn pattern.
2844         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
2845         instead of general blockage at the end of function prologue when
2846         frame pointer is used to access red zone area.  Do not emit blockage
2847         when profiling, it is emitted in generic code.
2848         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
2849         function epilogue when frame pointer is used to access red zone area.
2850
2851 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
2852
2853         PR target/38824
2854         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
2855         by arithmetic with memory operands.
2856         * config/i386/predicates.md (commutative_operator): New.
2857
2858 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
2859
2860         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
2861         bulleted lists.
2862
2863 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
2864
2865         * alias.h (record_alias_subset): Declare.
2866         * alias.c (record_alias_subset): Make global.
2867
2868 2009-02-10  Nick Clifton  <nickc@redhat.com>
2869
2870         * tree-parloops.c: Change license to GPLv3.
2871         * ipa-struct-reorg.c: Change license to GPLv3.
2872         * ipa-struct-reorg.h: Change license to GPLv3.
2873
2874 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
2875
2876         PR c/39084
2877         * c-decl.c (start_struct): Return NULL on error.
2878
2879 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
2880
2881         PR middle-end/39124
2882         * cfgloopmanip.c (remove_path): Call remove_bbs after
2883         cancel_loop_tree, not before it.
2884
2885         PR target/39139
2886         * function.h (struct function): Add has_local_explicit_reg_vars bit.
2887         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
2888         VAR_DECLs were seen.
2889         * tree-ssa-live.c (remove_unused_locals): Recompute
2890         cfun->has_local_explicit_reg_vars.
2891         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
2892         copies or clearings if cfun->has_local_explicit_reg_vars.
2893
2894 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
2895
2896         PR target/39118
2897         * config/i386/i386.c (expand_prologue): Emit blockage at the end
2898         of function prologue when frame pointer is used to access
2899         red zone area.
2900
2901 2009-02-10  Richard Guenther  <rguenther@suse.de>
2902
2903         PR middle-end/39127
2904         * gimplify.c (gimple_regimplify_operands): Always look if
2905         we need to create a temporary.
2906
2907 2009-02-10  Richard Guenther  <rguenther@suse.de>
2908
2909         PR tree-optimization/39132
2910         * tree-loop-distribution.c (todo): New global var.
2911         (generate_memset_zero): Trigger TODO_rebuild_alias.
2912         (tree_loop_distribution): Return todo.
2913
2914 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
2915
2916         PR target/39119
2917         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
2918         (x86_64_reg_class_name): Removed.
2919         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
2920         first one isn't X86_64_SSE_CLASS or any other ones aren't
2921         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
2922         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
2923         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
2924         and 3 X86_64_SSEUP_CLASS.
2925         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
2926         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
2927
2928 2009-02-10  Ben Elliston  <bje@au.ibm.com>
2929
2930         * config/rs6000/rs6000.md (allocate_stack): Always use an update
2931         form instruction to update the stack back chain word, even if the
2932         user has disabled the generation of update instructions.
2933         (movdi_<mode>_update_stack): New.
2934         (movsi_update_stack): Likewise.
2935         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
2936         always use an update form instruction to update the stack back
2937         chain word.
2938
2939 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
2940
2941         PR middle-end/38953
2942         * graphite.c (if_region_set_false_region): After moving a region in
2943         the false branch of a condition, remove the empty dummy basic block.
2944         (gloog): Remove wrong fix for PR38953.
2945
2946 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2947
2948         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
2949         generation due to implicit sign extension.
2950
2951 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
2952
2953         PR middle-end/38981
2954         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
2955         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
2956
2957 2009-02-09  Richard Guenther  <rguenther@suse.de>
2958
2959         PR middle-end/35202
2960         * convert.c (convert_to_real): Disable (float)fn((double)x)
2961         to fnf(x) conversion if errno differences may occur and
2962         -fmath-errno is set.
2963
2964 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
2965
2966         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
2967         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
2968         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
2969
2970 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
2971
2972         PR c/35434
2973         * c-common.c (handle_alias_attribute): Disallow attribute for
2974         anything not a FUNCTION_DECL or VAR_DECL.
2975
2976 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
2977
2978         PR c/39035
2979         * real.c (do_compare): Special-case compare of zero against
2980         decimal float value.
2981
2982 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
2983
2984         PR c/36432
2985         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
2986         as indicating flexible array members unless the field itself is
2987         being declarared as the incomplete array.
2988
2989 2009-02-06  Jan Hubicka  <jh@suse.cz>
2990
2991         PR tree-optimization/38844
2992         * ipa-inline.c (try_inline): Stop inlining recursion when edge
2993         is already inlined.
2994
2995 2009-02-06  Richard Guenther  <rguenther@suse.de>
2996
2997         PR middle-end/38977
2998         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
2999         fork because we may expand it as __gcov_fork.
3000
3001 2009-02-06  Nick Clifton  <nickc@redhat.com>
3002
3003         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
3004
3005 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
3006
3007         PR tree-optimization/35659
3008         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
3009         vn_phi_eq): Shortcut if hashcode does not match.
3010         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
3011         NULL operands.
3012         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
3013         and avoid iterative_hash_expr.
3014         (FOR_EACH_VALUE_ID_IN_SET): New.
3015         (value_id_compare): Remove.
3016         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
3017         sort expressions by value id.
3018
3019 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
3020
3021         PR target/38991
3022         * config/sh/predicates.md (general_movsrc_operand): Don't check
3023         the subreg of system registers here.
3024
3025 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
3026
3027         PR c++/39106
3028         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
3029         on the copied decl.
3030
3031 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
3032
3033         PR rtl-optimization/39110
3034         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
3035         addresses, not aligned ones.
3036
3037 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
3038             Richard Guenther  <rguenther@suse.de>
3039
3040         PR tree-optimization/39100
3041         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
3042         comment says and add edges.
3043
3044 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
3045
3046         PR c/35435
3047         * c-common.c (handle_tls_model_attribute): Ignore attribute for
3048         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
3049
3050 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de> 
3051
3052         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
3053         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
3054         register_bb_in_sese, new_sese, free_sese): Moved.
3055         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
3056         outermost_loop_in_scop, build_scop_iteration_domain,
3057         expand_scalar_variables_ssa_name, get_vdef_before_scop,
3058         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
3059         Use loop_in_sese_p instead of loop_in_scop_p.
3060         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
3061         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
3062         (scopdet_basic_block_info): Fix bug in scop detection.
3063         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
3064         eq_loop_to_cloog_loop): Remove.
3065         (nb_loops_around_loop_in_scop, nb_loop
3066         ref_nb_loops): Moved here...
3067         * graphite.h (ref_nb_loops): ... from here.
3068         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
3069         (loop_domain_dim, loop_iteration_vector_dim): Remove.
3070         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
3071         * testsuite/gcc.dg/graphite/scop-19.c: New
3072
3073 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
3074             Hans-Peter Nilsson  <hp@axis.com>
3075
3076         PR rtl-optimization/37889
3077         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
3078         Move offset handling from PLUS to before the switch.  Use new
3079         arguments when considering SYMBOL_REFs too.
3080         (rtx_addr_can_trap_p): Pass dummy offset and size.
3081         (enum may_trap_p_flags): Remove.
3082         (may_trap_p_1): Pass size from MEM_SIZE.
3083
3084         PR rtl-optimization/38921
3085         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
3086         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
3087         * rtlanal.c (may_trap_after_code_motion_p): Delete.
3088         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
3089
3090 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
3091
3092         AVX Programming Reference (January, 2009)
3093         * config/i386/sse.md (*vpclmulqdq): New.
3094
3095 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
3096
3097         PR tree-optimization/38977
3098         PR gcov-profile/38292
3099         * calls.c (special_function_p): Disregard __builtin_ prefix.
3100
3101 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
3102
3103         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
3104         non-indexable addresses even before reload.
3105
3106 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
3107
3108         PR c/29129
3109         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
3110         as having variable size.  Do not give an error for unnamed
3111         parameters with [*] declarators.  Give a warning for type names
3112         with [*] declarators and mark them as variable size.
3113         * c-parser.c (c_parser_sizeof_expression): Do not give an error
3114         for sizeof applied to [*] type names.
3115
3116 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3117
3118         PR C++/36607
3119         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
3120
3121 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
3122
3123         * gcc.c (process_command): Update copyright notice dates.
3124         * gcov.c (print_version): Likewise.
3125         * gcov-dump.c (print_version): Likewise.
3126         * mips-tfile.c (main): Likewise.
3127         * mips-tdump.c (main): Likewise.
3128
3129 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
3130
3131         PR c/35433
3132         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
3133         for composite type involving a zero-length array type.
3134
3135 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
3136
3137         PR target/35318
3138         * function.c (match_asm_constraints_1): Skip over
3139         initial optional % in the constraint.
3140
3141         PR inline-asm/39059
3142         * c-parser.c (c_parser_postfix_expression): If fixed point is not
3143         supported, don't accept FIXED_CSTs.
3144         * c-decl.c (finish_declspecs): Error if fixed point is not supported
3145         and _Sat is used without _Fract/_Accum.  Set specs->type to
3146         integer_type_node for cts_fract/cts_accum if fixed point is not
3147         supported.
3148
3149 2009-02-02  Catherine Moore  <clm@codesourcery.com>
3150
3151         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
3152
3153 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
3154
3155         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
3156         (ABI_HAS_64BIT_SYMBOLS): Use it.
3157         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
3158
3159 2009-02-02  Paul Brook  <paul@codesourcery.com>
3160
3161         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
3162
3163 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
3164
3165         PR inline-asm/39058
3166         * recog.h (asm_operand_ok): Add constraints argument.
3167         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
3168         recurse on matching constraint.
3169         (check_asm_operands): Pass constraints as 3rd argument to
3170         asm_operand_ok.  Don't look up matching constraint here.
3171         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
3172         to asm_operand_ok.
3173
3174 2009-02-02  Ben Elliston  <bje@au.ibm.com>
3175
3176         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
3177         TARGET_NARROW_VOLATILE_BITFIELD macro names.
3178
3179 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3180
3181         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
3182         information.  Remove some obsolete information.  Reorganize.
3183
3184         * config/pa/fptr.c: Revert license to GPL 2.
3185         * config/pa/milli64.S: Likewise.
3186
3187 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
3188
3189         PR target/38904
3190         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
3191         LIBRARY name in, instead of hard-coding it.
3192         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
3193         extra target make frag to tmake_files according to EH model.
3194         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
3195         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
3196         frags that define makefile variable EH_MODEL appropriately.
3197         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
3198         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
3199         to "-sjlj" according to type of EH configured.
3200         (LIBGCC_SONAME):  Concatenate it to shared library base name.
3201         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
3202         to "_sjlj" according to type of EH configured.
3203         (LIBGCC_SONAME):  Concatenate it to shared library base name.
3204         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
3205         (SHLIB_LINK):  Add missing semicolon to if-else construct.
3206         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
3207         string value of "pe_dll" command-line option.
3208         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
3209         (SHLIB_SONAME):  Use it when overriding t-cygming default.
3210         (SHLIB_IMPLIB):  Override t-cygming default.
3211         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
3212         string value of "pe_dll" command-line option.
3213
3214 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
3215
3216         PR target/38952
3217         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
3218         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
3219
3220 2009-01-31  Richard Guenther  <rguenther@suse.de>
3221
3222         PR tree-optimization/38937
3223         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
3224         computing the transitive closure.
3225
3226 2009-01-30  Richard Guenther  <rguenther@suse.de>
3227
3228         PR tree-optimization/39041
3229         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
3230         Propagate variable indices only if the types match for this stmt.
3231
3232 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
3233
3234         PR target/39013
3235         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
3236         inline but never defined.
3237
3238 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
3239
3240         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
3241         (*insv_h_di_reg_extimm): New insn.
3242         (*insv_l<mode>_reg_extimm): New insn.
3243
3244 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
3245
3246         * config/picochip/picochip.c (flag_conserve_stack): set
3247         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
3248         fconserve-stack. Reduce call-overhead used by inliner.
3249
3250 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
3251
3252         PR/38157
3253         * common.opt (flag_conserve_stack): Initialised to zero.
3254
3255 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
3256
3257         PR/39002
3258         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
3259         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
3260         method.
3261
3262 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
3263
3264         * ira-color.c (allocno_reload_assign): Update comments.
3265         * regmove.c (regmove_optimize): Likewise.
3266
3267         * ra.h: Removed.
3268
3269 2009-01-29  Robert Millan  <rmh@aybabtu.com>
3270
3271         * gcc/config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
3272         * gcc/config/i386/kopensolaris-gnu.h: New file.  Undefine
3273         `MD_UNWIND_SUPPORT'.
3274         * gcc/config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
3275
3276 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
3277
3278         PR tree-optimization/39007
3279         * tree-loop-distribution.c (generate_builtin): Use
3280         recompute_dominator to compute the immediate dominator of the
3281         basic block just after the loop.
3282
3283 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3284
3285         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
3286         (ASM_OUTPUT_DWARF_PCREL): Define.
3287
3288 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
3289
3290         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
3291         * doc/passes.texi: Remove entries about regclass, local-alloc, and
3292         global.  Modify entries about regmove and IRA.
3293
3294         * ra-conflict.c: Remove the file.
3295
3296         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
3297
3298         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
3299         (pass_regclass_init): Rename to pass_reginfo_init.
3300
3301         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
3302
3303         * toplev.h (flag_ira): Remove.
3304
3305         * caller-save.c (setup_save_areas): Remove flag_ira.
3306
3307         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
3308
3309         * global.c: Remove the file.
3310
3311         * opts.c (decode_options): Remove flag_ira.
3312
3313         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
3314
3315         * regmove.c: Modify file description.
3316         (find_use_as_address, try_auto_increment): Define them only if
3317         AUTO_INC_DEC is defined.
3318         (replacement_quality, replace_in_call_usage, fixup_match_1,
3319         stable_and_no_regs_but_for_p): Remove.
3320         (reg_set_in_bb): Make it static.
3321         (regmove_optimize): Remove flag_ira and code which worked for
3322         !flag_ira.
3323
3324         * local-alloc.c: Remove the file.
3325
3326         * common.opt (fira): Remove.
3327
3328         * ira.c: Include except.h.
3329         (eliminable_regset): Move from global.c.
3330         (mark_elimination): Ditto.  Remove flag_ira.
3331         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
3332         equiv_mem_modified, validate_equiv_mem_from_store,
3333         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
3334         contains_replace_regs, memref_referenced_p, memref_used_between_p,
3335         no_equiv, recorded_label_ref): Move from local-alloc.c.
3336         (update_equiv_regs): Ditto.  Make it static.
3337         (print_insn_chain, print_insn_chains): Move it from global.c.
3338         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
3339         (build_insn_chain): Ditto.  Make it static.
3340         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
3341         Rename to init_live_subregs.
3342         (gate_ira): Remove flag_ira.
3343
3344         * regclass.c: Rename reginfo.c.  Change file description.
3345         (FORBIDDEN_INC_DEC_CLASSES): Remove.
3346         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
3347         (init_reg_sets_1): Remove code for evaluation of
3348         reg_class_superclasses and losing_caller_save_reg_set.
3349         (init_regs): Remove init_reg_autoinc.
3350         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
3351         ok_for_base_p_nonstrict): Remove.
3352         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
3353         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
3354         corresponding entries.
3355         (dump_regclass, record_operand_costs, scan_one_insn,
3356         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
3357         record_address_regs, auto_inc_dec_reg_p): Remove.
3358         (gt-regclass.h): Rename to gt-reginfo.h.
3359
3360         * rtl.h (dump_global_regs, retry_global_alloc,
3361         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
3362
3363         * Makefile.in (RA_H): Remove.
3364         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
3365         Rename regclass.o to reginfo.o.
3366         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
3367         gt-reginfo.h.
3368         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
3369         (GTFILES): Rename regclass.c to reginfo.c.
3370
3371         * passes.c (init_optimization_passes): Remove pass_local_alloc and
3372         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
3373
3374         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
3375         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
3376         Remove flag_ira.
3377         (finish_spills): Ditto.  Remove code for !flag_ira.
3378         
3379 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
3380
3381         PR middle-end/35854
3382         * doc/invoke.texi (rtl debug options): Complete rewrite.
3383         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
3384         to auto_inc_dec".
3385         * mode-switching.c (pass_mode_switching): Rename pass from
3386         "mode-sw" to "mode_sw".
3387         * except.c (pass_convert_to_eh_ranges): Rename pass from
3388         "eh-ranges" to "eh_ranges".
3389         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
3390         to "subreg1".
3391                 
3392         
3393 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
3394             Alexander Monakov  <amonakov@ispras.ru>
3395
3396         PR middle-end/38857
3397         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
3398         register.
3399         (move_exprs_to_boundary): Change return type and pass through
3400         should_move from move_op.  Relax assert.  Update usage ...
3401         (schedule_expr_on_boundary): ... here.  Use should_move instead of
3402         cant_move.
3403         (move_op_orig_expr_found): Indicate that insn was disconnected from
3404         stream.
3405         (code_motion_process_successors): Do not call after_merge_succs
3406         callback if original expression was not found when traversing any of
3407         the branches.
3408         (code_motion_path_driver): Change return type.  Update prototype.
3409         (move_op): Update comment.  Add a new parameter (should_move).  Update
3410         prototype.  Set *should_move based on indication provided by
3411         move_op_orig_expr_found.
3412
3413 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
3414
3415         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
3416         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
3417         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
3418         * config/rs6000/rs6000.c (rs6000_override_options): Default
3419         avoid-indexed-addresses on for Power6, off for everything else.
3420         (avoiding_indexed_address_p): New function.
3421         (rs6000_legitimize_address): Use it.
3422         (rs6000_legitimate_address): Likewise.
3423         * config/rs6000/rs6000.md (movXX_updateX): Likewise
3424
3425 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
3426
3427         PR tree-optimization/38997
3428         * tree-loop-distribution.c (generate_memset_zero): Use
3429         POINTER_PLUS_EXPR for a pointer addition.
3430
3431 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
3432
3433         * config/s390/s390.md (bswap<mode>2): New pattern added.
3434
3435 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
3436
3437         * config/s390/s390.md (*tls_load_31): Added type attribute.
3438
3439 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
3440
3441         * config/s390/s390.md: Fix a few comments.
3442
3443 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
3444
3445         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
3446         (*tm<mode>_full): Fixed z10prop attribute.
3447         (*tst<mode>_extimm): Fixed z10prop attribute.
3448         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
3449         (*tstqiCCT_cconly): Fixed z10prop attribute.
3450         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
3451         (*movsi_larl): Fixed z10prop attribute.
3452         (*movsi_zarch): Fixed z10prop attribute.
3453         (*movsi_eas): Fixed z10prop attribute.
3454         (*movhi): Fixed z10prop attribute.
3455         (*movqi): Fixed z10prop attribute.
3456         (*movstrictqi): Fixed z10prop attribute.
3457         (*mov<mode>): Fixed z10prop attribute.
3458         (*movcc): Fixed z10prop attribute.
3459         (*sethighpartdi_64): Fixed z10prop attribute.
3460         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
3461         (*negdi2_sign_cc): Fixed z10prop attribute.
3462         (*negdi2_sign): Fixed z10prop attribute.
3463         (*absdi2_sign_cc): Fixed z10prop attribute.
3464         (*absdi2_sign): Fixed z10prop attribute.
3465         (*negabsdi2_sign_cc): Fixed z10prop attribute.
3466         (*negabsdi2_sign): Fixed z10prop attribute.
3467         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
3468         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
3469         (doloop_si64): Fixed z10prop attribute.
3470         (doloop_si31): Fixed z10prop attribute.
3471         (doloop_long): Fixed z10prop attribute.
3472         (indirect_jump): Fixed z10prop attribute.
3473         (nop): Fixed z10prop attribute.
3474         (main_base_64): Fixed z10prop attribute.
3475         (reload_base_64): Fixed z10prop attribute.
3476
3477 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
3478
3479         PR rtl-optimization/38740
3480         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
3481         if !optimize.
3482         * config/mips/mips.c (mips_reorg): Likewise.
3483
3484 2009-01-28  Richard Guenther  <rguenther@suse.de>
3485
3486         PR tree-optimization/38926
3487         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
3488         with the correct value id to a value.
3489         (do_regular_insertion): Use the value number of edoubleprime
3490         for the value number of the expr.
3491
3492         Revert
3493         2008-08-21  Richard Guenther  <rguenther@suse.de>
3494
3495         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
3496         a PHI ask VN if it is already available.
3497         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
3498         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
3499
3500 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
3501
3502         PR middle-end/38934
3503         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
3504         set to varying whenever max has TREE_OVERFLOW set, similarly
3505         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
3506
3507 2009-01-28  Richard Guenther  <rguenther@suse.de>
3508
3509         PR middle-end/38908
3510         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
3511         uninitialized aggregate uses in call arguments.
3512
3513 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
3514
3515         PR tree-optimization/38984
3516         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
3517         the nothing_id variable if -fno-delete-null-pointer-checks.
3518
3519 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
3520
3521         PR target/38988
3522         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
3523         (set_got_offset_rex64): Ditto.
3524
3525 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
3526
3527         PR target/38941
3528         * doc/extend.texi: Improve local variable with asm reg.
3529
3530 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
3531
3532         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
3533         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
3534         was not supplied then set warn_packed_bitfield_compat to the
3535         default value of 1.
3536         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
3537         against 1.
3538
3539 2009-01-27  Richard Guenther  <rguenther@suse.de>
3540
3541         PR tree-optimization/38503
3542         * cfgexpand.c (expand_gimple_basic_block): Ignore
3543         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
3544         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
3545         variables that cannot have TBAA applied.
3546         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
3547         statements.
3548
3549 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
3550
3551         PR middle-end/38969
3552         * calls.c (initialize_argument_information): Do not wrap complex
3553         arguments in SAVE_EXPR.
3554
3555 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
3556
3557         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
3558         (INSTALL_LIBGCC): Revert typo commit.
3559
3560 2009-01-26  Richard Guenther  <rguenther@suse.de>
3561
3562         PR tree-optimization/38745
3563         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
3564         from special handling.
3565
3566 2009-01-26  Richard Guenther  <rguenther@suse.de>
3567
3568         PR tree-optimization/38745
3569         * tree-ssa.c (execute_update_addresses_taken): Do not include
3570         variables that cannot possibly be a register in not_reg_needs.
3571         Do not clear TREE_ADDRESSABLE on vars that may not become
3572         registers.
3573         * tree-ssa.c (update_alias_info_1): Include those in the set
3574         of addressable vars.
3575
3576 2009-01-26  Richard Guenther  <rguenther@suse.de>
3577
3578         PR middle-end/38851
3579         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
3580         * tree-ssa-dse.c: Include langhooks.h
3581         (execute_simple_dse): Remove stores with zero size.
3582
3583 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
3584
3585         PR c/38957
3586         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
3587         as PLUS_EXPR.
3588
3589 2009-01-24  Julian Brown  <julian@codesourcery.com>
3590
3591         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
3592         config/arm/linux-atomic.c.
3593         * config/arm/linux-atomic.c: New.
3594
3595 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
3596
3597         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
3598         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
3599         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
3600
3601 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
3602
3603         PR c/38938
3604         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
3605         properly.
3606
3607 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
3608
3609         PR tree-optimization/38953
3610         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
3611         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
3612         (gloog): Split the exit of the scop when the scop exit is a loop exit.
3613         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
3614         changed the CFG.
3615
3616 2009-01-24  Paul Brook  <paul@codesourcery.com>
3617
3618         * config/arm/neon.md (neon_type): Move to arm.md.
3619         (neon_mov<VSTRUCT>): Add neon_type attribute.
3620         * config/arm/arm.md (neon_type): Move to here.
3621         (conds): Add "unconditioal" and use as default for NEON insns.
3622
3623 2009-01-24  Ben Elliston  <bje@au.ibm.com>
3624
3625         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
3626         void *' warning from -Wc++-compat.
3627         * Makefile.in (dominance.o-warn): Remove.
3628
3629 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
3630
3631         PR tree-optimization/38932
3632         * fold-const.c (fold_unary_ignore_overflow): New.
3633         * tree.h (fold_unary_ignore_overflow): Declare.
3634         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
3635         * tree-ssa-sccvn.c (visit_reference_op_load,
3636         simplify_unary_expression): Likewise.
3637
3638 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
3639
3640         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
3641         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
3642         regardless of their type.
3643         * c-common.c (handle_packed_attribute): Don't ignore packed on
3644         bitfields.
3645         * c.opt (Wpacked-bitfield-compat): New warning option.
3646         * stor-layout.c (place_field): Warn if offset of a field changed.
3647         * doc/extend.texi (packed): Mention the ABI change.
3648         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
3649         (Warning Options): Add it to the list.
3650
3651 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
3652
3653         * c-opts.c (c_common_post_options): Fix a typo in comments.
3654
3655 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
3656
3657         PR middle-end/38615
3658         * gimplify.c (gimplify_init_constructor): Fix promotion of const
3659         variables to static.
3660         * doc/invoke.texi (-fmerge-all-constants): Update description.
3661
3662 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
3663
3664         PR target/38931
3665         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
3666         (*movdi_1_rex64): Use type "mmx" for alternative 5.
3667
3668 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
3669
3670         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
3671         a word boundary.
3672         (LOCAL_ALIGNMENT): Similarly.
3673
3674 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
3675             Joseph Myers  <joseph@codesourcery.com>
3676
3677         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
3678         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
3679         * config/arm/arm-tune.md: Regenerate.
3680         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
3681         -march=iwmmxt2.
3682
3683 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
3684
3685         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
3686         version number to five.
3687
3688 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
3689
3690         PR c++/38930
3691         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
3692         * c-common.c (set_underlying_type): Likewise.
3693         (is_typedef_decl ): Likewise
3694         * tree.h: Likewise
3695         (set_underlying_type): Likewise.
3696         (is_typedef_type): Likewise.
3697
3698 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
3699
3700         PR middle-end/38587
3701         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
3702         crossing setjmps.
3703
3704 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
3705
3706         PR bootstrap/37660
3707         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
3708         (LIBGCC_SPEC):  Don't define.
3709         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
3710
3711 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
3712
3713         PR rtl-optimization/38879
3714         * alias.c (base_alias_check): Unaligned access via AND address can
3715         alias all surrounding object types except those with sizes equal
3716         or wider than the size of unaligned access.
3717
3718 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
3719
3720         PR c++/26693
3721         * c-decl.c (clone_underlying_type): Move this ...
3722         * c-common.c (set_underlying_type): ... here.
3723         Also, make sure the function properly sets TYPE_STUB_DECL() on
3724         the newly created typedef variant type.
3725         (is_typedef_decl ): New entry point.
3726         * tree.h: Added a new member member_types_needing_access_check to
3727         struct tree_decl_non_common.
3728         (set_underlying_type): New entry point.
3729         (is_typedef_type): Likewise.
3730
3731 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
3732
3733         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
3734         Check whether two instructions have memory references that
3735         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
3736         are helper functions for traversing.
3737         * alias.h (insn_alias_sets_confilict_p): New prototypes.
3738         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
3739         not to draw dependency edge for instructions with non-conflicting
3740         alias sets.
3741
3742 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
3743
3744         PR other/38758
3745         * longlong.h: Update copyright years.  Use soft-fp license notice.
3746         Sync __clz_tab declaration with glibc.
3747
3748 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
3749
3750         PR target/30687
3751         * doc/extend.texi (syscall_linkage): New.
3752         (version_id): Modify.
3753
3754 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3755             Richard Guenther  <rguenther@suse.de>
3756
3757         PR tree-optimization/38747
3758         PR tree-optimization/38748
3759         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
3760         conversion if the base address is an indirect reference and the
3761         aliasing sets could cause issues.
3762
3763 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
3764
3765         * common.opt (fgraphite, fgraphite-identity): Add comment for 
3766         explaining why these options are not documented.
3767
3768 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
3769
3770         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
3771         gimple_call_lhs is NULL.
3772
3773 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
3774
3775         PR target/38868
3776         * emit-rtl.c (adjust_address_1): Make sure memref is never
3777         overwritten.
3778
3779 2009-01-20  Ben Elliston  <bje@au.ibm.com>
3780
3781         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
3782         const qualifier from arg parameter. Remove unnecessary cast to char *.
3783         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
3784         const qualifier from arg 2.
3785
3786 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
3787
3788         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
3789
3790 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
3791
3792         PR c/38869
3793         * rtl.h (reinit_regs): New prototype.
3794         * regclass.c: Include ira.h.
3795         (reinit_regs): New.
3796         * Makefile.in (regclass.o): Add ira.h.
3797         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
3798
3799 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
3800
3801         PR target/38736
3802         * c-common.c (handle_aligned_attribute): Use
3803         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
3804         default alignment value.
3805
3806         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
3807
3808         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
3809         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
3810
3811         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
3812         __BIGGEST_ALIGNMENT__.
3813
3814         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
3815
3816 2009-01-18  Richard Guenther  <rguenther@suse.de>
3817
3818         PR tree-optimization/38819
3819         * tree-flow.h (operation_could_trap_helper_p): Declare.
3820         * tree-eh.c (operation_could_trap_helper_p): Export.
3821         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
3822         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
3823         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
3824         are about to insert a possibly trapping instruction and fail
3825         in this case.
3826
3827 2009-01-18  Andreas Schwab  <schwab@suse.de>
3828
3829         * doc/install.texi (Configuration): Remove obsolete paragraph
3830         about use of --with-gnu-ld with --with-gnu-as.
3831
3832 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
3833
3834         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
3835         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
3836         Follow spelling conventions.
3837
3838 2009-01-18  Ben Elliston  <bje@au.ibm.com>
3839
3840         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
3841         C++ warning about implicit conversion from void * to struct
3842         bitmap_head_def *.
3843         (bitmap_obstack_free): Likewise for bitmap_element *.
3844         * Makefile.in (bitmap.o-warn): Remove.
3845
3846 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
3847
3848         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
3849
3850 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
3851             Tobias Grosser  <tobi.grosser@amd.com>
3852
3853         * graphite.c (graphite_trans_scop_block): Do not block single
3854         nested loops.
3855
3856 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
3857
3858         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
3859         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
3860         test with assertion.
3861
3862 2009-01-16  Richard Guenther  <rguenther@suse.de>
3863
3864         PR tree-optimization/38835
3865         PR middle-end/36227
3866         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
3867         and INT + PTR -> (INT)(PTR p+ INT) folding.
3868         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
3869
3870 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
3871
3872         PR target/38554
3873         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
3874         the subreg from a lowpart subreg if it is also casting the value.
3875
3876 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
3877             Tobias Grosser  <tobi.grosser@amd.com>
3878
3879         * graphite.c (compare_prefix_loops): New.
3880         (build_scop_canonical_schedules): Rewritten.
3881         (graphite_transform_loops): Move build_scop_canonical_schedules
3882         after build_scop_iteration_domain.
3883
3884 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
3885             Tobias Grosser  <tobi.grosser@amd.com>
3886
3887         * graphite.c (add_conditions_to_domain): Add the loops to 
3888         the dimension of the iteration domain.  Do copy the domain
3889         only when it exists.
3890         (build_scop_conditions_1): Do not call add_conditions_to_domain.
3891         (add_conditions_to_constraints): New.
3892         (can_generate_code_stmt, can_generate_code): Removed.
3893         (gloog): Do not call can_generate_code.
3894         (graphite_transform_loops): Call add_conditions_to_constraints
3895         after building the iteration domain.
3896
3897 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
3898
3899         PR tree-optimization/38789
3900         * tree-ssa-threadedge.c
3901         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
3902         __builtin_constant_p.
3903
3904 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
3905
3906         * dce.c (delete_unmarked_insns): Reversed the order that insns are
3907         examined before deleting them.
3908         
3909 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
3910
3911         * function.c (aggregate_value_p): Correctly extract the function
3912         type from CALL_EXPR_FN lookup.
3913
3914 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
3915
3916         * config/picochip/picochip.c (picochip_override_options): Revert
3917         CFI asm flag disable commited previously.
3918
3919 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
3920             Tobias Grosser  <tobi.grosser@amd.com>
3921             Jan Sjodin  <jan.sjodin@amd.com>
3922
3923         * graphite.c (scan_tree_for_params): On substractions negate
3924         all the coefficients of the term.
3925         (clast_to_gcc_expression_red): New.  Handle reduction expressions
3926         of more than two operands.
3927         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
3928         (get_vdef_before_scop): Handle also the case of default definitions.
3929
3930 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
3931
3932         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
3933         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
3934         Also use them when walking CALL_INSN_FUNCTION_USAGE.
3935
3936 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
3937             Joey Ye  <joey.ye@intel.com>
3938
3939         PR middle-end/37843
3940         * cfgexpand.c (expand_stack_alignment): Don't update stack
3941         boundary nor check incoming stack boundary here.
3942         (gimple_expand_cfg): Update stack boundary and check incoming
3943         stack boundary here.
3944
3945 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
3946
3947         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
3948         
3949 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
3950
3951         PR rtl-optimization/38245
3952         * calls.c (expand_call): Add stack arguments to
3953         CALL_INSN_FUNCTION_USAGE even for pure calls (when
3954         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
3955         in regs and partially in memory or BLKmode arguments.
3956         (emit_library_call_value_1): Add stack arguments to
3957         CALL_INSN_FUNCTION_USAGE even for pure calls (when
3958         ACCUMULATE_OUTGOING_ARGS).
3959         * dce.c: Include tm_p.h.
3960         (find_call_stack_args): New function.
3961         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
3962         argument.
3963         (mark_insn): Call find_call_stack_args for CALL_Ps.
3964         (prescan_insns_for_dce): Walk insns backwards in bb rather than
3965         forwards.  Allocate and free arg_stores bitmap if needed, pass it
3966         down to deletable_insn_p, don't mark stores set in arg_stores
3967         bitmap, clear the bitmap at the beginning of each bb.
3968         * Makefile.in (dce.o): Depend on $(TM_P_H).
3969
3970 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
3971
3972         PR target/22599
3973         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
3974         to make sure the insn is a conditional test (bug 22599).  Reformat a
3975         few long lines.
3976
3977 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
3978
3979         PR middle-end/38431
3980         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
3981         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
3982         (gloog): Do not call cleanup_tree_cfg.
3983         (graphite_transform_loops): Call cleanup_tree_cfg after all 
3984         scops have been code generated.
3985
3986 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
3987         * doc/gty.texi (Invoking the garbage collector): Added new node
3988         and section documenting ggc_collect.
3989
3990 2009-01-14  Richard Guenther  <rguenther@suse.de>
3991
3992         PR tree-optimization/38826
3993         PR middle-end/38477
3994         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
3995         initialization notes only if we actually emitted a warning.
3996         (intra_create_variable_infos): Add constraints for a result decl
3997         that is passed by hidden reference.
3998         (build_pred_graph): Mark all related variables non-direct on
3999         address-taking.
4000
4001 2009-01-14  Nick Clifton  <nickc@redhat.com>
4002
4003         * ira-conflicts.c: Include addresses.h for the definition of
4004         base_reg_class.
4005         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
4006         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
4007
4008 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
4009
4010         PR target/38811
4011         * Makefile.in (ira-lives.o): Add except.h.
4012
4013         * ira-lives.c: Include except.h.
4014         (process_bb_node_lives): Process can_throw_internal.
4015
4016 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
4017
4018         PR rtl-optimization/38774
4019         * combine.c (simplify_set): When undoing cc_use change, don't do
4020         PUT_CODE on the newly created comparison, but instead put back the
4021         old comparison.
4022
4023 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
4024
4025         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
4026         values.  Remove duplicate arm8 entry.
4027
4028 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
4029
4030         PR tree-optimization/38786
4031         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
4032         the SSA_NAME case of expand_scalar_variables_expr.
4033         Set the type of an expression to the type of its assign statement.
4034         (expand_scalar_variables_expr): Also gather the scalar computation
4035         used to index the memory access.  Do not pass loop_p.
4036         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
4037         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
4038         the gimple_stmt_iterator where it inserts new code.
4039         Do not pass loop_p.
4040         (copy_bb_and_scalar_dependences): Do not pass loop_p.
4041         (translate_clast): Update call to copy_bb_and_scalar_dependences.
4042
4043 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
4044
4045         * graphite.h (debug_value): Removed.
4046         * graphite.c (debug_value): Removed.
4047
4048 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
4049
4050         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
4051         ldrd/strd with two 32-bit instructions.
4052
4053 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
4054
4055         * config/arm/arm.c (struct processors): Pass for speed down into
4056         cost helper functions.
4057         (const_ok_for_op): Handle COMPARE and inequality nodes.
4058         (arm_rtx_costs_1): Rewrite.
4059         (arm_size_rtx_costs): Update prototype.
4060         (arm_rtx_costs): Pass speed down to helper functions.
4061         (arm_slowmul_rtx_costs): Rework cost calculations.
4062         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
4063         (arm_9e_rtx_costs): Likewise.
4064
4065 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
4066
4067         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
4068         relocations of local symbols wider than UNITS_PER_WORD are not valid.
4069         (alpha_legitimize_address): Do not split local symbols wider than
4070         UNITS_PER_WORD into HIGH/LO_SUM parts.
4071
4072 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
4073
4074         PR bootstrap/38580
4075         * gcc.c (process_command): Replace call to execvp with calls
4076         to pex_one and exit.
4077
4078 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
4079
4080         PR target/29141
4081         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
4082         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
4083         variant for devices with 3-byte PC.
4084         (__tablejump_elpm__): New.
4085
4086 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
4087
4088         PR c/32041
4089         * c-parser.c (c_parser_postfix_expression): Allow `->' in
4090         offsetof member-designator, handle it as `[0].'.
4091
4092 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4093
4094         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
4095         function when not using named sections on targets with named sections
4096         if branch distance is less than 262132.
4097
4098 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
4099
4100         * combine.c (combine_instructions):  Recompute
4101         optimize_this_for_speed_p  for each BB in the main combine loop.
4102
4103 2009-01-12  Tomas Bily  <tbily@suse.cz>
4104
4105         PR middlend/38385
4106         * tree-loop-distribution.c (prop_phis): New function.
4107         (generate_builtin): Call prop_phis.
4108         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
4109
4110 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
4111
4112         PR tree-optimization/38807
4113         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
4114         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
4115
4116 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
4117
4118         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
4119         subreg of op0 to the original op0.
4120
4121 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
4122
4123         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
4124         
4125 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
4126
4127         PR debug/7055
4128         * gcc/mips-tfile.c (parse_def): Fix parsing of def strings
4129         starting with digits.
4130
4131 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
4132
4133         PR target/38695
4134         * config/arm/arm.c (arm_is_long_call_p): Don't call
4135         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
4136
4137 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
4138
4139         * regrename.c (regrename_optimize): Fix dumping.
4140         (find_oldest_value_reg): Preserve REG_POINTER.
4141         (copy_hardreg_forward_1): Likewise.
4142
4143 2009-01-09  Diego Novillo  <dnovillo@google.com>
4144
4145         * gimple.h (struct gimple_statement_base) <uid>: Document
4146         the restrictions on its use.
4147         (gimple_uid): Tidy.
4148         (gimple_set_uid): Tidy.
4149
4150 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
4151
4152         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
4153         zero guard even if align_bytes != 0 and count is smaller than
4154         size_needed.
4155
4156 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
4157
4158         PR rtl-optimization/38495
4159         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
4160         (add_range_and_copies_from_move_list): Print all added ranges.
4161         Add ranges to memory optimized destination.
4162
4163 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
4164
4165         PR target/38686
4166         PR target/38708
4167         * config/i386/i386.c (override_options): Reject
4168         -mstringop-strategy=rep_8byte with -m32.
4169         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
4170         to 1.  Do count comparison against epilogue_size_needed at compile
4171         time even when count_exp was constant forced into register.  For
4172         size_needed don't jump to epilogue, instead just avoid aligning
4173         and invoke the body algorithm.  If need_zero_guard, add zero guard
4174         even if count is non-zero, but smaller than size_needed + number of
4175         bytes that could be stored for alignment.
4176         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
4177         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
4178         but smaller than size_needed + number of bytes that could be stored
4179         for alignment.  Compare size_needed with epilogue_size_needed instead
4180         of desired_align - align, don't adjust size_needed, pass
4181         epilogue_size_needed to the epilogue expanders.
4182
4183         PR c/35742
4184         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
4185
4186 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4187
4188         * pa.c (last_address): Change to unsigned.
4189         (update_total_code_bytes): Change argument to unsigned.  Don't
4190         check if insn addresses are set.
4191         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
4192         addresses are not set.
4193         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
4194
4195 2009-01-09  Nick Clifton  <nickc@redhat.com>
4196
4197         * config/sh/symbian.c: Replace uses of DECL_INLINE with
4198         DECL_DECLARED_INLINE_P.
4199
4200 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
4201
4202         PR middle-end/38347
4203         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
4204         GET_MODE (op0) in operand_subword_force calls.
4205
4206         PR middle-end/38771
4207         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
4208         fold_convert arg0 operands to TREE_TYPE (op0) first.
4209
4210 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
4211
4212         * params.def (ira-max-conflict-table-size): Decrease default value
4213         to 1000.
4214
4215 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
4216
4217         PR tree-optimization/37031
4218         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
4219         on parameter_set.
4220         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
4221         allocate it using gc instead of heap, use VEC_quick_push instead of
4222         VEC_safe_push.
4223         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
4224         instead of heap, use VEC_quick_push instead of VEC_safe_push.
4225         * tree-data-ref.h (struct access_matrix): Change matrix to gc
4226         allocated vector from heap allocated.
4227         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
4228         * tree-loop-linear.c (linear_transform_loops): Allocate nest
4229         vector only after perfect_loop_nest_depth call.
4230
4231 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
4232             Jan Sjodin  <jan.sjodin@amd.com>
4233
4234         PR tree-optimization/38559
4235         * graphite.c (debug_value, copy_constraint,
4236         swap_constraint_variables, scale_constraint_variable, ): New.
4237         (get_lower_bound, get_upper_bound): Removed.
4238         (graphite_trans_bb_strip_mine): Clean up this code that works
4239         only for constant number of iterations.  Fully copy upper and
4240         lower bound constraints, not only the constant part of them.
4241         * graphite.h (debug_value): Declared.
4242
4243 2009-01-08  Ira Rosen  <irar@il.ibm.com>
4244
4245         PR tree-optimization/37194
4246         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
4247         Don't add the cost of cost model guard in prologue to scalar 
4248         outside cost in case of known number of iterations.
4249
4250 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
4251             Alan Modra  <amodra@bigpond.net.au>
4252
4253         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
4254         non-word-aligned REG+CONST addressing.
4255
4256 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
4257
4258         PR target/38706
4259         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
4260         free_after_compilation when outputting a thunk.
4261         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
4262         Do not call free_after_compilation here.
4263
4264 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
4265
4266         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
4267         (ix86_valid_target_attribute_inner_p): Ditto.
4268
4269 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
4270
4271         PR tree-optimization/38492
4272         PR tree-optimization/38498
4273         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
4274         * tree-chrec.h (scev_is_linear_expression): Declared.
4275         * graphite.c (graphite_cannot_represent_loop_niter): New.
4276         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
4277         (graphite_loop_normal_form): Use gcc_assert.
4278         (scan_tree_for_params): Use CASE_CONVERT.
4279         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
4280         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
4281         Use gcc_assert.  Discard scops that contain unhandled cases.
4282         (build_scop_conditions): Return a boolean status for unhandled cases.
4283         (strip_mine_profitable_p): Print the loop number, not its depth.
4284         (is_interchange_valid): Pass the depth of the loop nest, don't
4285         recompute it wrongly.
4286         (graphite_trans_bb_block): Same.
4287         (graphite_trans_bb_block): Print tentative of loop blocking.
4288         (graphite_trans_scop_block): Do not print that the loop has been
4289         blocked.
4290         (graphite_transform_loops): Do not handle scops that contain condition
4291         scalar phi nodes.
4292
4293 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
4294
4295         AVX Programming Reference (December, 2008)
4296         * config/i386/avxintrin.h (_mm256_stream_si256): New.
4297         (_mm256_stream_pd): Likewise.
4298         (_mm256_stream_ps): Likewise.
4299
4300         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
4301         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
4302         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
4303         (bdesc_special_args): Add __builtin_ia32_movntdq256,
4304         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
4305         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
4306         (ix86_expand_special_args_builtin): Likewise.
4307
4308         * config/i386/sse.md (AVXMODEDI): New.
4309         (avx_movnt<mode>): Likewise.
4310         (avx_movnt<mode>): Likewise.
4311         (<sse>_movnt<mode>): Remove AVX support.
4312         (sse2_movntv2di): Likewise.
4313
4314 2009-01-07  Richard Guenther  <rguenther@suse.de>
4315
4316         PR middle-end/38751
4317         * fold-const.c (extract_muldiv): Remove obsolete comment.
4318         (fold_plusminus_mult_expr): Undo MINUS_EXPR
4319         to PLUS_EXPR canonicalization for the canonicalization.
4320
4321 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
4322
4323         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
4324         hosted cross-compilers generating less efficient code.
4325
4326 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
4327
4328         * function.h (rtl_data): Add a dbr_scheduled_p field.
4329         * reorg.c (dbr_schedule): Set it.
4330         (gate_handle_delay_slots): Check it.
4331         * config/mips/mips.c (mips_base_delayed_branch): Delete.
4332         (mips_reorg): Check flag_delayed_branch instead of
4333         mips_base_delayed_branch.
4334         (mips_override_options): Don't set mips_base_delayed_branch
4335         or flag_delayed_branch.
4336
4337 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
4338
4339         PR rtl-optimization/38426.
4340         * ira.c (ira): Set current_function_is_leaf earlier.
4341
4342 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
4343
4344         PR rtl-optimization/38722
4345         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
4346         too early, only set a flag and modify after last possible
4347         undo_all point.
4348
4349 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
4350
4351         PR c/34252
4352         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
4353         * real.c (decimal_single_format): Correct values of emin and emax.
4354         (decimal_double_format): Ditto.
4355         (decimal_quad_format): Ditto.
4356         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
4357         computation of DECnn_MIN and DECnn_MAX for corrected values of
4358         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
4359         __DECnn_MIN__, and adjust its computation for the corrected value
4360         of emin.
4361
4362 2009-01-06  Jan Hubicka  <jh@suse.cz>
4363
4364         PR target/38744
4365         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
4366
4367 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
4368
4369         * doc/contrib.texi (Contributors): Slightly adjust the end note.
4370         Add Robert Clark to the list of testers.
4371
4372 2009-01-06  Jan Hubicka  <jh@suse.cz>
4373             Kai Tietz  <kai.tietz@onevision.com>
4374
4375         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
4376         * config/i386/i386.c (ix86_expand_call): Add clobbers.
4377
4378 2009-01-06  Jan Hubicka  <jh@suse.cz>
4379             Kai Tietz  <kai.tietz@onevision.com>
4380
4381         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
4382         for w64 ABI.
4383         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
4384         (ix86_nsaved_regs): Count only general purpose regs.
4385         (ix86_nsaved_sseregs): New.
4386         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
4387         to 16 for w64; compute padding and size of sse reg save area.
4388         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
4389         general purpose regs.
4390         (ix86_emit_save_sse_regs_using_mov): New.
4391         (ix86_expand_prologue): Save SSE regs if needed.
4392         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
4393         (ix86_emit_restore_sse_regs_using_mov): New.
4394         (ix86_expand_epilogue): Save SSE regs if needed.
4395
4396 2009-01-06  Jan Hubicka  <jh@suse.cz>
4397             Kai Tietz  <kai.tietz@onevision.com>
4398
4399         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
4400         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
4401         functions when accumulate outgoing args is off.
4402
4403 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
4404
4405         PR bootstrap/38742
4406         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
4407         before using pseudos_have_intersected_live_ranges_p.
4408
4409         * ira-int.h (ira_assert): Always define.
4410
4411 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
4412
4413         AVX Programming Reference (December, 2008)
4414         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
4415         (_mm256_permute2_pd): Likewise.
4416         (_mm_permute2_ps): Likewise.
4417         (_mm256_permute2_ps): Likewise.
4418         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
4419         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
4420
4421         * config/i386/i386.c (ix86_builtins): Remove
4422         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
4423         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
4424         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
4425         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
4426         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
4427         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
4428         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
4429         __builtin_ia32_vpermil2ps256.
4430         (ix86_init_mmx_sse_builtins): Updated.
4431         (ix86_expand_args_builtin): Likewise.
4432
4433 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4434
4435         * pa.c (output_call): Relocate non-jump insns in the delay slot of
4436         long absolute calls when generating PA 2.0 code.
4437
4438 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
4439
4440         PR rtl-optimization/38583
4441         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
4442
4443         * params.def (ira-max-conflict-table-size): New.
4444
4445         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
4446         
4447         * ira.h (ira_conflicts_p): New external definition.
4448         
4449         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
4450         table.  Report this.  Return result of building.
4451         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
4452         building conflict table.
4453
4454         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
4455         (ira_color): Use ira_conflicts_p.
4456         
4457         * global.c: Include ira.h.
4458         (pseudo_for_reload_consideration_p, build_insn_chain): Use
4459         ira_conflicts_p.
4460
4461         * Makefile.in (global.o): Add ira.h.
4462         
4463         * ira-build.c (mark_all_loops_for_removal,
4464         propagate_some_info_from_allocno): New.
4465         (remove_unnecessary_allocnos): Call
4466         propagate_some_info_from_allocno.
4467         (remove_low_level_allocnos): New.
4468         (remove_unnecessary_regions): Add parameter.  Call
4469         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
4470         parameter to remove_unnecessary_regions.
4471         (ira_build): Remove all regions but root if the conflict table was
4472         not built.  Update conflict hard regs for allocnos crossing calls.
4473
4474         * ira.c (ira_conflicts_p): New global.
4475         (ira): Define and use ira_conflicts_p.
4476
4477         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
4478         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
4479         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
4480         
4481 2009-01-06  Ben Elliston  <bje@au.ibm.com>
4482
4483         * gengtype-lex.l (YY_NO_INPUT): Define.
4484
4485 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4486
4487         PR c/34911
4488         * c-common.c (handle_vector_size_attribute): Also reject
4489         BOOLEAN_TYPE types.
4490
4491 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
4492
4493         PR tree-optimization/38492
4494         * graphite.c (rename_map_elt, debug_rename_elt,
4495         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
4496         rename_map_elt_info, eq_rename_map_elts,
4497         get_new_name_from_old_name, bb_in_sese_p): Moved around.
4498         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
4499         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
4500         (sese_build_livein_liveouts): New.
4501         (new_sese, free_sese): New.
4502         (new_scop): Call new_sese.
4503         (free_scop): Call free_sese.
4504         (rename_variables_from_edge, rename_phis_end_scop): Removed.
4505         (register_old_new_names): Renamed register_old_and_new_names.
4506         (register_scop_liveout_renames, add_loop_exit_phis,
4507         insert_loop_close_phis, struct igp,
4508         default_liveout_before_guard, add_guard_exit_phis,
4509         insert_guard_phis, copy_renames): New.
4510         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
4511         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
4512         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
4513         (scop_adjust_phis_for_liveouts): New.
4514         (gloog): Call scop_adjust_phis_for_liveouts.
4515
4516         * graphite.h (struct sese): Documented.  Added fields liveout,
4517         num_ver and livein.
4518         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
4519         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
4520         (struct scop): Added field liveout_renames.
4521         (SCOP_LIVEOUT_RENAMES): New.
4522
4523 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
4524
4525         PR tree-optimization/38510
4526         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
4527         (translate_clast): Call recompute_all_dominators before
4528         graphite_verify.
4529         (gloog): Call recompute_all_dominators before graphite_verify.
4530
4531 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
4532             Jan Sjodin  <jan.sjodin@amd.com>
4533
4534         PR tree-optimization/38500
4535         * graphite.c (create_sese_edges): Call fix_loop_structure after
4536         splitting blocks.
4537
4538 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
4539
4540         * config.gcc: Add m32r*-*-rtems*.
4541         * config/m32r/rtems.h: New file.
4542
4543 2009-01-05  Ben Elliston  <bje@au.ibm.com>
4544
4545         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
4546         (.po.pox): Likewise.
4547         (po/gcc.pot): Likewise.
4548
4549 2009-01-04  David S. Miller  <davem@davemloft.net>
4550
4551         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
4552         (STARTING_FRAME_OFFSET): Always set to zero.
4553
4554 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
4555
4556         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
4557         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
4558         fixed-point types, and vectors of the same.
4559
4560 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
4561
4562         * config/mips/sync.md (*mb_barrier): Rename to...
4563         (*memory_barrier): ...this.
4564
4565 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
4566
4567         * doc/extend.texi (Function Attributes): Move @cindex after @item
4568         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
4569         and put in alphabetical order. Fix 'target' name and put in order.
4570         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
4571         typos.
4572
4573 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
4574
4575         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
4576         (memory_barrier): Expand as unspec instead of unspec_volatile.
4577         Remove mem:BLK from insn operands.  Use Pmode scratch register.
4578         (*memory_barrier): Define as unspec instead of unspec_volatile.
4579         Use (match_dup 0) as input operand.
4580
4581         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
4582         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
4583         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
4584         scratch register.  Remove operand 1.
4585         (*stbar): Define as unspec instead of unspec_volatile.
4586         Use (match_dup 0) as input operand, remove (const_int 8).
4587         (*membar): Define as unspec instead of unspec_volatile.
4588         Use (match_dup 0) as input operand, remove input operand 2.
4589
4590         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
4591         (memory_barrier): Expand as unspec instead of unspec_volatile.
4592         Remove mem:BLK from insn operands.  Use Pmode scratch register.
4593         (*memory_barrier): Define as unspec instead of unspec_volatile.
4594         Use (match_dup 0) as input operand.
4595
4596         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
4597         Remove mem:BLK from insn operands.  Use Pmode scratch register.
4598         Set volatile flag on operand 0.
4599         (*memory_barrier): New insn pattern.
4600
4601         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
4602         insn operands.
4603         (*memory_barrier): Use (match_dup 0) as input operand.
4604
4605         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
4606         Remove mem:BLK from insn operands.  Use Pmode scratch register.
4607         Set volatile flag on operand 0.
4608         (*mb_internal): New insn pattern.
4609
4610         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
4611
4612 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
4613
4614         PR middle-end/38586
4615         * function.c (struct temp_slot): Move to the section of the file
4616         that deals with temp slots.  Remove field 'address'.
4617         (temp_slot_address_table): New hash table of address -> temp slot.
4618         (struct temp_slot_address_entry): New struct, items for the table.
4619         (temp_slot_address_compute_hash, temp_slot_address_hash,
4620         temp_slot_address_eq, insert_temp_slot_address): Support functions
4621         for the new table.
4622         (find_temp_slot_from_address): Rewrite to use the new hash table.
4623         (remove_unused_temp_slot_addresses): Remove addresses of temp
4624         slots that have been made available.
4625         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
4626         worker function for remove_unused_temp_slot_addresses.
4627         (assign_stack_temp_for_type): Don't clear the temp slot address list.
4628         Add the temp slot address to the address -> temp slot map.
4629         (update_temp_slot_address): Update via insert_temp_slot_address.
4630         (free_temp_slots): Call remove_unused_temp_slot_addresses.
4631         (pop_temp_slots): Likewise.
4632         (init_temp_slots): Allocate the address -> temp slot map, or empty
4633         the map if it is already allocated.
4634         (prepare_function_start): Initialize temp slot processing.
4635
4636 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
4637
4638         PR middle-end/38584
4639         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
4640         Calculate the size of all stack vars assuming no packing of stack
4641         vars will happen, replacing a quadratic algorithm with a linear one.
4642
4643 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
4644
4645         PR target/38707
4646         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
4647         can't be used.
4648
4649 2009-01-03  Diego Novillo  <dnovillo@google.com>
4650
4651         * doc/contrib.texi: Update contributions.
4652
4653 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
4654
4655         PR c++/38705
4656         * builtins.c (fold_builtin_memory_op): Give up if either operand
4657         is volatile.  Set srctype or desttype to non-qualified version
4658         of the other type.
4659
4660         PR c/38700
4661         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
4662         and FUNCTION_DECLs.
4663
4664 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
4665
4666         PR rtl-optimization/35805
4667         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
4668         problem if fast dce is able to remove any instructions.
4669         * dce.c (dce_process_block): Fix dump message.
4670         
4671 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
4672
4673         PR 33649
4674         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
4675
4676 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
4677
4678         PR middle-end/38690
4679         * tree-flow.h (op_code_prio, op_prio): New prototypes.
4680         * tree-pretty-print.c (op_code_prio): New function.
4681         (op_prio): No longer static.  Use op_code_prio.
4682         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
4683         Use op_prio and op_code_prio to determine if () should be
4684         printed around operand(s) or not.
4685
4686         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
4687         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
4688         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
4689         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
4690         pp_character instead of pp_string for single letter printing.
4691
4692 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
4693
4694         * doc/extend.texi: Fix '#pragma GCC option' typo.
4695
4696 2009-01-02  Richard Guenther  <rguenther@suse.de>
4697
4698         * doc/install.texi (--enable-checking): Mention different
4699         default for stage1.
4700         (--enable-stage1-checking): Document.
4701
4702 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
4703
4704         PR middle-end/30142
4705         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
4706         case to be an error.
4707
4708 2009-01-02  Ben Elliston  <bje@au.ibm.com>
4709
4710         * config/fp-bit.h (pack_d): Constify argument.
4711         * config/fp-bit.c (makenan): Constify return type. Remove casts.
4712         (isnan): Constify argument.
4713         (isinf): Likewise.
4714         (iszero): Likewise.
4715         (pack_d): Likewise.
4716         (_fpadd_parts): Constify return type.
4717         (_fpmul_parts): Likewise.
4718         (_fpdiv_parts): Likewise.
4719
4720 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
4721
4722         PR c/36489
4723         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
4724         warn about overwriting initializer with side-effects or
4725         -Woverride-init if !IMPLICIT.
4726         (output_init_element): Likewise.  Pass IMPLICIT down to
4727         add_pending_init.
4728         (process_init_element): Add IMPLICIT argument.  Pass it down
4729         to output_init_element.
4730         (push_init_element, pop_init_level, set_designator): Adjust
4731         process_init_element callers.
4732         (set_nonincremental_init, set_nonincremental_init_from_string):
4733         Adjust add_pending_init callers.
4734         (output_pending_init_elements): Adjust output_init_element callers.
4735         * c-tree.h (process_init_element): Adjust prototype.
4736         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
4737         process_init_element callers.