OSDN Git Service

* config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-04-01  Nick Clifton  <nickc@redhat.com>
2
3         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
4         already defined.
5         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
6         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
7         other typedefs to avoid conflicts with libgcc2.c.  Define labels
8         to gain 16-bit bit-manipulation functions from libgcc2.c and then
9         include it.
10         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
11         to gain 16-bit trapping arithmetic functions from libgcc2.c and
12         then include it.
13
14 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
15
16        * varasm.c (default_function_rodata_section): Declare DOT as const char*.
17
18 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
19             Andrey Galkin <agalkin@hypercom.com>
20
21         PR/39492
22         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
23         Make object_name unique for each process.
24
25 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
26
27         PR other/39591
28         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
29         addressable variables in the parallel that could go out of scope while
30         running queued tasks.
31
32 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
33
34         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
35         (CASE_VALUES_THRESHOLD): Redefine.
36         * config/avr/avr.c (avr_override_options): Remove initialization of
37         avr_case_values_threshold variable.
38         (avr_case_values_threshold): Remove variable. Add new function.
39         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
40         * config/avr/avr.opt (mno-tablejump): Remove option.
41         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
42
43 2009-04-01  DJ Delorie  <dj@redhat.com>
44
45         * varasm.c (default_function_rodata_section): Don't assume
46         anything about where the first '.' in the section name is.
47
48 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
49
50         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
51         rs6000_emit_stack_tie.
52
53 2009-03-31  Ian Lance Taylor  <iant@google.com>
54
55         * tree-eh.c (tree_remove_unreachable_handlers): Compare
56         gimple_code with GIMPLE_RESX, not RESX.
57
58 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
59
60         * c-common.c (c_get_ident): New.
61         (c_common_nodes_and_builtins): Call it for type names that may be
62         NULL.
63
64 2009-04-01  Ben Elliston  <bje@au.ibm.com>
65
66         * config/rs6000/sysv4.opt (msdata): Improve option description.
67
68 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
69
70         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
71         (divdf3_internal_lat): Remove.
72         (divxf3_internal_lat): Remove.
73         (divxf3_internal_thr): Remove.
74         (divxf): Use divxf3_internal.
75         * config/ia64/div.md (divsf3_internal_lat): New.
76         (divdf3_internal_lat): New.
77         (divxf3_internal): New.
78
79 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
80
81         PR c/448
82         * Makefile.in (USE_GCC_STDINT): Define.
83         (stmp-int-hdrs): Install stdint.h if applicable.
84         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
85         if known.
86         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
87         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
88         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
89         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
90         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
91         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
92         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
93         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
94         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
95         (c_common_nodes_and_builtins): Initialize
96         underlying_wchar_type_node.  Do not initialize
97         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
98         nodes for new types.
99         (c_stddef_cpp_builtins): Define macros for new types.
100         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
101         Remove.
102         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
103         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
104         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
105         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
106         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
107         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
108         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
109         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
110         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
111         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
112         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
113         int16_type_node, int32_type_node, int64_type_node,
114         uint8_type_node, uint16_type_node, c_uint32_type_node,
115         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
116         int_least32_type_node, int_least64_type_node,
117         uint_least8_type_node, uint_least16_type_node,
118         uint_least32_type_node, uint_least64_type_node,
119         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
120         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
121         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
122         uintptr_type_node): Define.
123         * c-cppbuiltin.c (builtin_define_constants,
124         builtin_define_type_minmax): New.
125         (builtin_define_stdint_macros): Define more macros.
126         (c_cpp_builtins): Define more limit macros.
127         (type_suffix): New.
128         (builtin_define_type_max): Define in terms of
129         builtin_define_type_minmax.  Remove is_long parameter.  All
130         callers changed.
131         * config.gcc (use_gcc_stdint): Define.
132         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
133         Add newlib-stdint.h for generic targets.
134         * config/glibc-stdint.h, config/newlib-stdint.h,
135         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
136         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
137         * config/score/score.h (UINTPTR_TYPE): Define.
138         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
139         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
140         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
141         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
142         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
143         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
144         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
145         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
146         * config/spu/spu.h (STDINT_LONG32): Define.
147         * configure.ac (use_gcc_stdint): Substitute.
148         * configure: Regenerate.
149         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
150         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
151         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
152         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
153         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
154         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
155         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
156         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
157         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
158         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
159         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
160         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
161         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
162         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
163         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
164         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
165         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
166         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
167         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
168         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
169         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
170         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
171         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
172         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
173         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
174         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
175         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
176         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
177         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
178
179 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
180
181         * loop-iv.c (suitable_set_for_replacement): Renamed from
182         simplify_using_assignment; changed to return bool and to accept new
183         args DEST and SRC.  Return true iff we find a source/destination pair
184         that can be used to make a replacement, and fill SRC and DEST if so.
185         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
186         changed.
187         (simplify_using_initial_values): Deal with altered regs here and track
188         more precisely the effect they have on the validity of our expression.
189
190         * loop-iv.c (simplify_using_condition): A condition of the form
191         (EQ REG CONST) can be used to simply make a substitution.
192         (simplify_using_initial_values): Keep track of conditions we have seen
193         and keep using them to simplify new expressions, while applying the
194         same substitutions to them as to the expression.
195
196         * simplify-rtx.c (simplify_relational_operation_1): Simplify
197         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
198         GEU/LTU reversed.
199
200         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
201         changed.  Use this when trying to improve the upper bound.
202         Generate the comparison by using simplify_gen_relational.
203
204         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
205
206         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
207         functions.
208         (simplify_using_assignment, simplify_using_initial_values): Call 
209         replace_in_expr to make replacements.  Call replace_single_def_regs
210         once on the initial version of the expression.
211
212 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
213
214         PR target/27237
215         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
216         
217 2009-03-31  Richard Guenther  <rguenther@suse.de>
218
219         PR middle-end/31029
220         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
221         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
222
223 2009-03-31  Richard Guenther  <rguenther@suse.de>
224
225         * tree.h (div_if_zero_remainder): Declare.
226         * fold-const.c (div_if_zero_remainder): Export.
227         * tree-ssa-forwprop.c
228         (forward_propagate_addr_into_variable_array_index): Handle
229         constant array index addition outside of the variable index.
230
231 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
232
233         PR target/39592
234         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
235         define_splits, floatunssi<mode>2): Require x87 conversions from
236         DImode to be permitted.
237
238 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
239
240         PR preprocessor/15638
241         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
242
243 2009-03-31  Richard Guenther  <rguenther@suse.de>
244
245         PR middle-end/23401
246         PR middle-end/27810
247         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
248         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
249         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
250         a separate statement.
251         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
252         (lookup_tmp_var): Likewise.
253         (is_gimple_formal_tmp_or_call_rhs): Remove.
254         (is_gimple_reg_or_call_rhs): Rename to ...
255         (is_gimple_reg_rhs_or_call): ... this.
256         (is_gimple_mem_or_call_rhs): Rename to ...
257         (is_gimple_mem_rhs_or_call): ... this.
258         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
259         DECL_GIMPLE_REG_P only if is_formal is true.
260         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
261         for non-proper post-modify expression gimplification.
262         (gimplify_self_mod_expr): For post-modify expressions gimplify
263         the lvalue to a minimal lvalue.
264         (rhs_predicate_for): Remove formal temp case.
265         (gimplify_modify_expr_rhs): Likewise.
266         (gimplify_addr_expr): Use is_gimple_reg.
267         (gimplify_expr): Remove formal temp cases.
268         (gimple_regimplify_operands): Likewise.
269         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
270         and FILTER_EXPR like constants.
271         * gimple.c (walk_gimple_op): Fix val_only initialization, use
272         is_gimple_reg.
273         (is_gimple_formal_tmp_rhs): Remove.
274         (is_gimple_reg_rhs): Remove special casing.
275         (is_gimple_mem_rhs): Fix.
276         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
277         (is_gimple_formal_tmp_var): Remove.
278         (is_gimple_formal_tmp_reg): Likewise.
279         (is_gimple_min_lval): Allow invariant component ref parts.
280         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
281         is_gimple_formal_tmp_reg): Remove declarations.
282         * tree-cfg.c (verify_expr): Verify that variables with address
283         taken do not have DECL_GIMPLE_REG_P set.
284         * tree-mudflap.c (mf_build_check_statement_for): Use
285         force_gimple_operand instead of gimplify_expr.
286
287 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
288
289         * modulo-sched.c (sms_schedule_by_order): Pass the actual
290         schedulable rows to compute_split_row.
291
292 2009-03-31  Ben Elliston  <bje@au.ibm.com>
293
294         PR target/31635
295         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
296         OPT_mvrsave.
297
298 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
299
300         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
301         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
302         * configure: Regenerate.
303         * config.in: Regenerate.
304         * config/rs6000/rs6000.opt (mtls-markers): Add.
305         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
306         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
307         (tls_ld_aix, tls_ld_sysv): Likewise.
308         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
309         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
310
311 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
312
313         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
314
315 2009-03-30  Jan Hubicka  <jh@suse.cz>
316
317         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
318         out of RESX.
319         (tree_remove_unreachable_handlers): Cleanup EH predecestor
320         detection and label handling.
321
322 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
323
324         * ira-int.h (ira_allocno): Rename left_conflicts_num to
325         left_conflicts_size.
326         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
327         ALLOCNO_LEFT_CONFLICTS_SIZE.
328
329         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
330         remove_allocno_from_bucket_and_push,
331         allocno_spill_priority_compare, push_allocnos_to_stack,
332         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
333         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
334         (setup_allocno_left_conflicts_num): Ditto.  Rename to
335         setup_allocno_left_conflicts_size.
336         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
337         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
338         setup_allocno_left_conflicts_size instead of
339         setup_allocno_left_conflicts_num.
340
341         * ira-build.c (ira_create_allocno): Use
342         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
343         ALLOCNO_LEFT_CONFLICTS_NUM.
344                 
345 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
346
347         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
348         instead of DF_LR_OUT.
349
350         * ira-lives.c (process_bb_node_lives): Ditto.
351
352         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
353         instead of DF_LR_{OUT,IN}.
354
355         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
356
357         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
358
359 2009-03-30  Jan Hubicka  <jh@suse.cz>
360
361         * except.c (label_to_region_map): Fix thinko.
362
363 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
364
365         PR middle-end/38237
366         * tree.h (tree_find_value): New declaration.
367         * tree.c (tree_find_value): New function.
368         * varasm.c (assemble_external): Avoid duplicate entries on lists.
369
370 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
371
372         PR debug/39563
373         * c-decl.c (struct c_binding): Add locus field.
374         (bind): Add locus argument, set locus field from it.
375         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
376         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
377         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
378         implicitly_declare, undeclared_variable, lookup_label,
379         declare_label, c_make_fname_decl, c_builtin_function,
380         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
381         bind callers.
382
383 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
384
385         PR target/38781
386         * config/i386/i386.c (classify_argument): Check total size of
387         structure.
388
389 2009-03-30  Martin Jambor  <mjambor@suse.cz>
390
391         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
392         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
393         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
394         respectively.
395
396         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
397         seen_variable_array_ref while also traversing a union.
398
399         * tree-inline.c (optimize_inline_calls): Do not call
400         cgraph_node_remove_callees.
401         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
402         (pass_remove_cgraph_callee_edges): New variable.
403         * passes.c (init_optimization_passes): Add
404         pass_remove_cgraph_callee_edges after early inlining and before all
405         late intraprocedural passes.
406
407         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
408
409 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
410
411         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
412         Fix typos in names.
413
414 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
415
416         * combine.c (simplify_comparison): Use have_insn_for.
417         * dojump.c (do_jump): Likewise.
418
419 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
420
421         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
422         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
423         sparc_compare_op0 like sparc_compare_emitted used to be handled.
424         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
425         instead of sparc_compare_emitted.
426         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
427         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
428         instead of sparc_compare_emitted.
429
430 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
431
432         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
433         enter/exit cfglayout mode.
434         (pass_partition_block): Require it.
435         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
436         (combine_instructions): Track basic blocks instead of labels.
437         (update_cfg_for_uncondjump): New.
438         (try_combine): Use it.  Update jumps after rescanning.
439         (pass_combine): Require PROP_cfglayout.
440         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
441
442 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
443
444         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
445         Provide/destroy PROP_cfglayout respectively.
446         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
447         * tree-pass.h (PROP_cfglayout): New.
448
449 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
450
451         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
452         fold_convert_const_fixed_from_fixed,
453         fold_convert_const_fixed_from_int,
454         fold_convert_const_fixed_from_real, fold_negate_const): Do not
455         set TREE_CONSTANT_OVERFLOW.
456         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
457         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
458
459 2009-03-30  Ira Rosen  <irar@il.ibm.com>
460
461         * tree-vect-loop-manip.c: New file.
462         * tree-vectorizer.c: Update documentation and included files.
463         (vect_loop_location): Make extern.
464         (rename_use_op): Move to tree-vect-loop-manip.c
465         (rename_variables_in_bb, rename_variables_in_loop, 
466         slpeel_update_phis_for_duplicate_loop, 
467         slpeel_update_phi_nodes_for_guard1,
468         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
469         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
470         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
471         set_prologue_iterations, slpeel_tree_peel_loop_to_edge, 
472         find_loop_location): Likewise.
473         (new_stmt_vec_info): Move to tree-vect-stmts.c.
474         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
475         get_vectype_for_scalar_type, vect_is_simple_use,
476         supportable_widening_operation, supportable_narrowing_operation):
477         Likewise.
478         (bb_in_loop_p): Move to tree-vect-loop.c.
479         (new_loop_vec_info, destroy_loop_vec_info, 
480         reduction_code_for_scalar_code, report_vect_op, 
481         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
482         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
483         (vect_supportable_dr_alignment): Likewise.
484         * tree-vectorizer.h (tree-data-ref.h): Include.
485         (vect_loop_location): Declare.
486         Reorganize function declarations according to the new file structure.
487         * tree-vect-loop.c: New file.
488         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c, 
489         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
490         * tree-vect-data-refs.c: New file.
491         * tree-vect-patterns.c (timevar.h): Don't include.
492         * tree-vect-stmts.c: New file.
493         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c, 
494         tree-vect-slp.c, tree-vect-loop.c.
495         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and 
496         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o, 
497         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
498         (tree-vect-analyze.o): Remove.
499         (tree-vect-transform.o): Likewise.
500         (tree-vect-data-refs.o): Add rule.
501         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o, 
502         tree-vect-slp.o): Likewise.
503         (tree-vect-patterns.o): Remove redundant dependencies.
504         (tree-vectorizer.o): Likewise.
505         * tree-vect-slp.c: New file.
506
507 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
508
509         * optc-gen.awk: Warn if an option flag has multiple different
510         help strings.
511
512 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
513
514         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
515         -floop-block): Document dependences on PPL, CLooG and Graphite.
516
517 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
518
519         PR rtl-optimization/323
520         * c-common.c (c_fully_fold, convert_and_check,
521         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
522         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
523         * c-common.def (EXCESS_PRECISION_EXPR): New.
524         * c-cppbuiltin.c (builtin_define_float_constants): Define
525         constants with enough digits for long double.
526         * c-lex.c (interpret_float): Interpret constant with excess
527         precision where appropriate.
528         * c-opts.c (c_common_post_options): Set
529         flag_excess_precision_cmdline.  Give an error for
530         -fexcess-precision=standard for C++ for processors where the
531         option is significant.
532         * c-parser.c (c_parser_conditional_expression): Handle excess
533         precision in condition.
534         * c-typeck.c (convert_arguments): Handle arguments with excess
535         precision.
536         (build_unary_op): Move excess precision outside operation.
537         (build_conditional_expr): Likewise.
538         (build_compound_expr): Likewise.
539         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
540         (build_modify_expr): Handle excess precision in RHS.
541         (convert_for_assignment): Handle excess precision in converted
542         value.
543         (digest_init, output_init_element, process_init_element): Handle
544         excess precision in initializer.
545         (c_finish_return): Handle excess precision in return value.
546         (build_binary_op): Handle excess precision in operands and add
547         excess precision as needed for operation.
548         * common.opt (-fexcess-precision=): New option.
549         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
550         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
551         For standard excess precision, output explicit conversion to and
552         truncation from XFmode.
553         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
554         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
555         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
556         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
557         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
558         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
559         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
560         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
561         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
562         define_splits, sqrt<mode>2): Disable where appropriate for
563         standard excess precision.
564         * convert.c (convert_to_real): Do not shorten arithmetic to type
565         for which excess precision would be used.
566         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
567         * doc/invoke.texi (-fexcess-precision=): Document option.
568         (-mfpmath=): Correct index entry.
569         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
570         flag_excess_precision): New.
571         * langhooks.c (lhd_post_options): Set
572         flag_excess_precision_cmdline.
573         * opts.c (common_handle_option): Handle -fexcess-precision=.
574         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
575         init_excess_precision): New.
576         (lang_dependent_init_target): Call init_excess_precision.
577         * tree.c (excess_precision_type): New.
578         * tree.h (excess_precision_type): Declare.
579
580 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
581
582         PR c/35235
583         * c-typeck.c (build_component_ref): Do not copy qualifiers from
584         non-lvalue to component.
585
586 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
587
588         PR preprocessor/34695
589         * Makefile.in (c-opts.o): Depend on c-tree.h.
590         * c-common.c: Move down include of diagnostic.h.
591         (done_lexing, c_cpp_error): New.
592         * c-common.h (done_lexing): Declare.
593         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
594         (parse_in).
595         * c-opts.c: Include c-tree.h.
596         (c_common_init_options): Set preprocessor error callback.
597         (c_common_handle_option): Do not set preprocessor
598         inhibit_warnings, warnings_are_errors, warn_system_headers,
599         pedantic_errors or inhibit_warnings flags.
600         (c_common_post_options): Do not check cpp_errors (parse_in).
601         (c_common_finish): Do not output dependencies if there were
602         errors.  Do not check return value of cpp_finish.
603         * c-ppoutput.c (pp_file_change): Set input_location.
604         * c-tree.h (c_cpp_error): Declare.
605         * diagnostic.c (diagnostic_set_info_translated): Also initialize
606         override_column.
607         (diagnostic_build_prefix): Check override_column.
608         * diagnostic.h (diagnostic_info): Add override_column field.
609         (diagnostic_override_column): Define.
610
611 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
612
613         * c-common.c (c_expand_expr, c_staticp): Remove.
614         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
615         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
616         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
617         * c-gimplify.c (gimplify_compound_literal_expr,
618         optimize_compound_literals_in_ctor): Remove.
619         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
620         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
621         * c-semantics.c (emit_local_var): Remove.
622
623         * langhooks-def.h (lhd_expand_expr): Remove.
624         * langhooks.c (lhd_expand_expr): Remove.
625         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
626
627         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
628         handling from c-semantics.c; don't call into langhook.
629         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
630         * gimplify.c (gimplify_compound_literal_expr,
631         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
632         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
633         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
634         as was done in c-gimplify.c.
635         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
636         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
637         Move from c-common.h.
638         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
639
640         * tree.c (staticp): Do not call langhook.
641         * langhooks.c (lhd_staticp): Delete.
642         * langhooks-def.h (lhd_staticp): Delete prototype.
643         (LANG_HOOKS_STATICP): Delete.
644         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
645
646         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
647         instead of DECL_STMTs.
648
649 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
650
651         PR c/456
652         PR c/5675
653         PR c/19976
654         PR c/29116
655         PR c/31871
656         PR c/35198
657         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
658         void_type_node.
659         (fold_call_expr): Return a NOP_EXPR from folding rather than the
660         contained expression.
661         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
662         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
663         conditional expressions for C.
664         (decl_constant_value_for_optimization): Move from
665         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
666         whether optimizing and that the expression is a VAR_DECL not of
667         array type instead of doing such checks in the caller.  Do not
668         check pedantic.  Call gcc_unreachable for C++.
669         * c-common.def (C_MAYBE_CONST_EXPR): New.
670         * c-common.h (c_fully_fold, c_save_expr,
671         decl_constant_value_for_optimization): New prototypes.
672         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
673         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
674         EXPR_INT_CONST_OPERANDS): Define.
675         * c-convert.c (convert): Strip nops from expression.
676         * c-decl.c (groktypename): Take extra parameters expr and
677         expr_const_operands.  Update call to grokdeclarator.
678         (start_decl): Update call to grokdeclarator.  Add statement for
679         expressions used in type of decl.
680         (grokparm): Update call to grokdeclarator.
681         (push_parm_decl): Update call to grokdeclarator.
682         (build_compound_literal): Add parameter non_const and build a
683         C_MAYBE_COSNT_EXPR if applicable.
684         (grokdeclarator): Take extra parameters expr and
685         expr_const_operands.  Track expressions used in declaration
686         specifiers and declarators.  Fold array sizes and track whether
687         they are constant expressions and whether they are integer
688         constant expressions.
689         (parser_xref_tag): Set expr and expr_const_operands fields in
690         return value.
691         (grokfield): Update call to grokdeclarator.
692         (start_function): Update call to grokdeclarator.
693         (build_null_declspecs): Set expr and expr_const_operands fields in
694         return value.
695         (declspecs_add_type): Handle expressions in typeof specifiers.
696         * c-parser.c (c_parser_declspecs): Set expr and
697         expr_const_operands fields for declaration specifiers.
698         (c_parser_enum_specifier): Likewise.
699         (c_parser_struct_or_union_specifier): Likewise.
700         (c_parser_typeof_specifier): Likewise.  Update call to
701         groktypename.  Fold expression as needed.  Return expressions with
702         type instead of adding statements.
703         (c_parser_attributes): Update calls to c_parser_expr_list.
704         (c_parser_statement_after_labels): Fold expression before passing
705         to objc_build_throw_stmt.
706         (c_parser_condition): Fold expression.
707         (c_parser_asm_operands): Fold expression.
708         (c_parser_conditional_expression): Use c_save_expr.  Update call
709         to build_conditional_expr.
710         (c_parser_alignof_expression): Update call to groktypename.
711         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
712         original_code.  Fold expression argument of va_arg.  Create
713         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
714         argument to va_arg.  Update calls to groktypename.  Fold array
715         index for offsetof.  Verify that first argument to
716         __builtin_choose_expr has integer type.
717         (c_parser_postfix_expression_after_paren_type): Update calls to
718         groktypename and build_compound_literal.  Handle expressions with
719         side effects in type name.
720         (c_parser_postfix_expression_after_primary): Update call to
721         c_parser_expr_list.  Set original_code for calls to
722         __builtin_constant_p.
723         (c_parser_expr_list): Take extra parameter fold_p.  Fold
724         expressions if requested.
725         (c_parser_objc_type_name): Update call to groktypename.
726         (c_parser_objc_synchronized_statement): Fold expression.
727         (c_parser_objc_receiver): Fold expression.
728         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
729         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
730         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
731         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
732         (struct c_typespec): Add elements expr and expr_const_operands.
733         (struct c_declspecs): Add elements expr and expr_const_operands.
734         (groktypename, build_conditional_expr, build_compound_literal):
735         Update prototypes.
736         (in_late_binary_op): Declare.
737         * c-typeck.c (note_integer_operands): New function.
738         (in_late_binary_op): New variable.
739         (decl_constant_value_for_broken_optimization): Move to c-common.c
740         and rename to decl_constant_value_for_optimization.
741         (default_function_array_conversion): Do not strip nops.
742         (default_conversion): Do not call
743         decl_constant_value_for_broken_optimization.
744         (build_array_ref): Do not fold result.
745         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
746         result when operand is a VLA.
747         (c_expr_sizeof_type): Update call to groktypename.  Handle
748         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
749         result when operand names a VLA type.
750         (build_function_call): Update call to build_compound_literal.
751         Only fold result for calls to __builtin_* functions.  Strip
752         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
753         the function designator.
754         (convert_arguments): Fold arguments.  Update call to
755         convert_for_assignment.
756         (build_unary_op): Handle increment and decrement of
757         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
758         decrement earlier.  Fold operand of increment and decrement.
759         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
760         built for integer operand.  Wrap returns that are INTEGER_CSTs
761         without being integer constant expressions or that have integer
762         constant operands without being INTEGER_CSTs.
763         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
764         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
765         result is an integer constant expression or can be used in
766         unevaluated parts of one and avoid folding and wrap as
767         appropriate.  Fold operands before possibly doing -Wsign-compare
768         warnings.
769         (build_compound_expr): Wrap result for C99 if operands can be used
770         in integer constant expressions.
771         (build_c_cast): Update call to digest_init.  Do not ignore
772         overflow from casting floating-point constants to integers.  Wrap
773         results that could be confused with integer constant expressions,
774         null pointer constants or floating-point constants.
775         (c_cast_expr): Update call to groktypename.  Handle expressions
776         included in type name.
777         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
778         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
779         Update calls to convert_for_assignment.
780         (convert_for_assignment): Take new parameter
781         null_pointer_constant.  Do not strip nops or call
782         decl_constant_value_for_broken_optimization.  Set
783         in_late_binary_op for conversions to boolean.
784         (store_init_value): Update call to digest_init.
785         (digest_init): Take new parameter null_pointer_constant.  Do not
786         call decl_constant_value_for_broken_optimization.  pedwarn for
787         initializers not constant expressions.  Update calls to
788         convert_for_assignment.
789         (constructor_nonconst): New.
790         (struct constructor_stack): Add nonconst element.
791         (really_start_incremental_init, push_init_level, pop_init_level):
792         Handle constructor_nonconst and nonconst element.
793         (set_init_index): Call constant_expression_warning for array
794         designators.
795         (output_init_element): Fold value.  Set constructor_nonconst as
796         applicable.  pedwarn for initializers not constant expressions.
797         Update call to digest_init.  Call constant_expression_warning
798         where constant initializers are required.
799         (process_init_element): Use c_save_expr.
800         (c_finish_goto_ptr): Fold expression.
801         (c_finish_return): Fold return value.  Update call to
802         convert_for_assignment.
803         (c_start_case): Fold switch expression.
804         (c_process_expr_stmt): Fold expression.
805         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
806         ensure statement expression is not evaluated in constant expression.
807         (build_binary_op): Track whether results are integer constant
808         expressions or may occur in such, disable folding and wrap results
809         as applicable.  Fold operands for -Wsign-compare warnings unless
810         in_late_binary_op.
811         (c_objc_common_truthvalue_conversion): Handle results folded to
812         integer constants that are not integer constant expressions.
813         * doc/extend.texi: Document when typeof operands are evaluated,
814         that condition of __builtin_choose_expr is an integer constant
815         expression, and more about use of __builtin_constant_p in
816         initializers.
817
818 2009-03-29  Richard Guenther  <rguenther@suse.de>
819
820         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
821         propagate addresses of array references.
822
823 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
824
825         * regmove.c (perhaps_ends_bb_p): Remove.
826         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
827         from INSN and check that the main loop stays within that basic block.
828         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
829         (regmove_forward_pass): Split out from regmove_optimize.  Use
830         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
831         (regmove_backward_pass): Split out from regmove_optimize.  Use
832         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
833         (regmove_optimize): Simplify.
834
835 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
836
837         PR target/39545
838         * config/i386/i386.c (classify_argument): Ignore flexible array
839         member in struct and warn ABI change.
840
841 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
842
843         * config/i386/i386-protos.h (ix86_agi_dependent): New.
844
845         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
846         (ix86_adjust_cost): Updated.
847
848 2009-03-29  Jan Hubicka  <jh@suse.cz>
849
850         PR middle-end/28850
851         * tree-pass.h (pass_cleanup_eh): New function.
852         (remove_unreachable_regions): Break code handling RTL
853         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
854         that can not be reached by runtime.
855         (can_be_reached_by_runtime): New function.
856         (label_to_region_map): New function.
857         (num_eh_regions): New function.
858         (rtl_remove_unreachable_regions): New function.
859         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
860         (remove_eh_region): New function.
861         * except.h: Include sbitmap and vecprim.
862         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
863         num_eh_regions): Declare.
864         * passes.c (init_optimization_passes): Schedule cleanup_eh.
865         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
866         * tree-eh.c (tree_remove_unreachable_handlers): New function.
867         (tree_empty_eh_handler_p): New function.
868         (cleanup_empty_eh): New function.
869         (cleanup_eh): New function.
870         (pass_cleanup_eh): New function.
871
872 2009-03-29  Jan Hubicka  <jh@suse.cz>
873
874         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
875         for removed regions.
876
877 2009-03-29  Jan Hubicka  <jh@suse.cz>
878
879         * except.c (dump_eh_tree): Dump all datastructures.
880
881 2009-03-29  Jan Hubicka  <jh@suse.cz>
882
883         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
884         (duplicate_eh_regions_1): Likewise.
885         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
886         vector; call EH verification.
887         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
888         Be ready for region being removed.
889
890 2009-03-29  Jan Hubicka  <jh@suse.cz>
891
892         * bitmap.c (bitmap_last_set_bit): New function.
893         * bitmap.h (bitmap_last_set_bit): Declare.
894
895 2009-03-29  David Ayers  <ayers@fsfe.org>
896
897         PR objc/27377
898         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
899         by calling objc_compare_types and surpress warnings about
900         incompatible C pointers that are compatible ObjC pointers.
901         
902 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
903
904         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
905         call initialize_inline_failed.
906         (initialize_inline_failed): Move it from here ...
907         * cgraph.c (initialize_inline_failed): ... to here.
908         (cgraph_create_edge): Call initialize_inline_failed rather than
909         setting inline_failed directly.
910
911 2009-03-29  Ben Elliston  <bje@au.ibm.com>
912
913         PR target/32542
914         * sysv4.opt (msdata): Improve comment.
915         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
916         * sysv4.h (SVR4_ASM_SPEC): Likewise.
917
918 2009-03-29  Ben Elliston  <bje@au.ibm.com>
919
920         PR target/30451
921         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
922         load and store attributes.
923
924 2009-03-29  Ben Elliston  <bje@au.ibm.com>
925
926         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
927         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
928         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
929         * doc/extend.texi (X86 Built-in Functions): Add index entries for
930         __builtin_infq and __builtin_huge_valq.
931
932 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
933
934         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
935         atmega8m1 devices.
936         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
937         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
938
939 2009-03-28  Xinliang David Li  <davidxl@google.com>
940
941         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support. 
942         (do_dbg_cnt): New function.
943
944 2009-03-28  Jan Hubicka  <jh@suse.cz>
945
946         Merge from pretty-ipa:
947
948         2009-03-27  Jan Hubicka  <jh@suse.cz>
949
950         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
951         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
952         * passes.c (function_called_by_processed_nodes_p): New.
953         * ipa-pure-const.c (check_call): Fix handling of operands.
954         (analyze_function): Dump debug output for skipped bodies.
955         (local_pure_const): Use function_called_by_processed_nodes_p.
956         * dwarf2out.c (reference_to_unused): Use output.
957         * passes.c (do_per_function_toporder): Likewise.
958
959         2008-11-12  Jan Hubicka  <jh@suse.cz>
960
961         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
962         * ipa-pure-const.c (funct_state_d): Add can throw field; make
963         state_set_in_source enum
964         (check_decl): Ignore memory tags; do not set fake looping flags;
965         dump diagnostics.
966         (check_operand, check_tree, check_rhs_var, check_lhs_var,
967         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
968         (check_call, analyze_function): Rewrite.
969         (check_stmt): New.
970         (add_new_function): Update call of analyze_function.
971         (generate_summary): Add call of analyze_function.
972         (propagate): Propagate can_throw; handle state_set_in_source correctly.
973         (local_pure_const): New function.
974         (pass_local_pure_const): New pass.
975         * ipa-inline.c (inline_transform): Set after_inlining.
976         * tree-eh.c (stmt_can_throw_external): New.
977         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
978         work with aliasing built.
979         * tree-flow.h (stmt_can_throw_external): New.
980         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
981         and local pure/const pass in early and late optimization queue.
982
983 2009-03-28  Martin Jambor  <mjambor@suse.cz>
984
985         * fold-const.c (get_pointer_modulus_and_residue): New parameter
986         allow_func_align.
987         (fold_binary): Allow function decl aligment consideration is the
988         second argument is integer constant one.
989         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
990         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
991         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
992
993 2009-03-28  Jan Hubicka  <jh@suse.cz>
994
995         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
996         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
997         * function.h (rtl_data): Add nothrow flag.
998         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
999         set DECL_NOTHROW for AVAILABLE functions.
1000
1001 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
1002
1003         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
1004         following vector keyword has expansion starting with pixel or bool
1005         keyword, expand vector to __vector and pixel or bool to __pixel or
1006         __bool.
1007
1008         PR c++/39554
1009         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
1010         warn_if_disallowed_function_p): Removed.
1011         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
1012         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
1013         warning_if_disallowed_function_p.
1014         * flags.h (warn_if_disallowed_function_p,
1015         warn_disallowed_functions): Removed.
1016         * common.opt (Wdisallowed-function-list=): Removed.
1017         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
1018
1019 2009-03-28  Richard Guenther  <rguenther@suse.de>
1020
1021         PR tree-optimization/38723
1022         * tree-ssa-pre.c (compute_avail): Add all default definitions to
1023         the entry block.
1024
1025 2009-03-28  Jan Hubicka  <jh@suse.cz>
1026
1027         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
1028         test introduced by my previous patch.
1029
1030 2009-03-28  Richard Guenther  <rguenther@suse.de>
1031
1032         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
1033         the PHIs value undefined.
1034
1035 2009-03-28  Jan Hubicka  <jh@suse.cz>
1036
1037         * tree-pass.h (pass_fixup_cfg): New pass.
1038         * ipa-inline.c (inline_transform): Set
1039         always_inline_functions_inlined/after_inlining.
1040         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
1041         (pass_fixup_cfg): New pass.
1042         * passes.c (init_optimization_passes): Add fixup_cfg.
1043
1044 2009-03-28  Richard Guenther  <rguenther@suse.de>
1045
1046         PR tree-optimization/38458
1047         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
1048         argument use the arguments copy-of value.
1049
1050 2009-03-28  Richard Guenther  <rguenther@suse.de>
1051
1052         PR tree-optimization/38180
1053         * tree-ssa-ccp.c (get_default_value): Simplify.
1054         (likely_value): Likewise.
1055         (surely_varying_stmt_p): Properly handle VOP case.
1056         (ccp_initialize): Likewise.
1057         (ccp_fold): Handle propagating through *&.
1058         (fold_const_aggregate_ref): Also handle decls.
1059
1060 2009-03-28  Jan Hubicka  <jh@suse.cz>
1061
1062         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
1063         * cgraph.h (cgraph_node): Likewise.
1064         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
1065         (cgraph_reset_node): Use process flag.
1066         (cgraph_mark_functions_to_output): Likewise.
1067         (cgraph_expand_function): Likewise.
1068         (cgraph_expand_all_functions): Likewise.
1069         (cgraph_output_in_order): Likewise.
1070         * dwarf2out.c (reference_to_unused): Likewise.
1071         * passes.c do_per_function_toporder): Likewise.
1072
1073 2009-03-28  Jan Hubicka  <jh@suse.cz>
1074
1075         Bring from lto-branch:
1076
1077         2008-09-03  Doug Kwan  <dougkwan@google.com>
1078
1079         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
1080         enums instead of reason strings.
1081         * cgraph.c (cgraph_create_edge): Same.
1082         (cgraph_inline_failed_string): New function.
1083         * cgraph.h (cgraph_inline_failed_t): New enum type.
1084         (cgraph_inline_failed_string): New prototype.
1085         (struct cgraph_edge): Change type of INLINED_FAILED from constant
1086         char pointer to cgraph_inline_failed_t.
1087         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
1088         (cgraph_default_inline_p): Ditto.
1089         * gcc/cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
1090         to cgraph_inline_failed_t pointer.
1091         * cif-code.def: New file.
1092         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
1093         reason string.
1094         (cgraph_check_inline_limits): Change type of REASON to pointer to
1095         cgraph_inline_failed_t.  Replace reason strings with enums.
1096         (cgraph_default_inline_p): Ditto.
1097         (cgraph_recursive_inlining_p): Ditto.
1098         (update_caller_keys): Change type of FAILED_REASON to
1099         cgraph_inline_failed_t.
1100         (cgraph_set_inline_failed): Change type of REASON to pointer to
1101         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
1102         convert enums to strings for text output.
1103         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
1104         to be of type cgraph_inline_failed_t.  Replace reason strings with
1105         enums.  Call cgraph_inline_failed_string to covert enums
1106         to strings for text output.
1107         (cgraph_decide_inlining): Replace reason strings with enums.
1108         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
1109         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
1110         for text output.
1111         * tree-inline.c (expand_call_inline): Change type of REASON
1112         to cgraph_inline_failed_t.  Replace reason strings with enums.
1113         Call cgraph_inline_failed_string for text output.
1114         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
1115         (cgraph.o): Ditto.
1116
1117 2009-03-28  Jan Hubicka  <jh@suse.cz>
1118
1119         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
1120         cgraph_clone_node): Remove master clone handling.
1121         (cgraph_is_master_clone, cgraph_master_clone): Remove.
1122         * cgraph.h (master_clone): Remove.
1123         (cgraph_is_master_clone, cgraph_master_clone): Remove.
1124         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
1125         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
1126
1127 2009-03-28  Jan Hubicka  <jh@suse.cz>
1128
1129         * cgraph.c (cgraph_function_body_availability): Functions declared
1130         inline are always safe to assume that it is not going to be replaced.
1131
1132 2009-03-28  Richard Guenther  <rguenther@suse.de>
1133
1134         PR tree-optimization/38513
1135         * tree-ssa-pre.c (eliminate): Remove redundant stores.
1136         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
1137         EXC_PTR_EXPR and FILTER_EXPR.
1138         (get_ref_from_reference_ops): Likewise.
1139
1140 2009-03-28  Richard Guenther  <rguenther@suse.de>
1141
1142         PR tree-optimization/38968
1143         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
1144         Use FLOOR_MOD_EXPR to compute misalignment.
1145
1146 2009-03-28  Richard Guenther  <rguenther@suse.de>
1147
1148         PR tree-optimization/37795
1149         * tree.h (combine_comparisons): Declare.
1150         * fold-const.c (combine_comparisons): Export.
1151         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
1152         comparisons.
1153         (ifcombine_iforif): Use combine_comparisons.
1154
1155 2009-03-28  Jan Hubicka  <jh@suse.cz>
1156
1157         * tree-eh.c (inlinable_call_p): New function.
1158         (make_eh_edges): Use it.
1159         (verify_eh_edges): Use it.
1160         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
1161         * except.c (reachable_next_level): Add inlinable_function argument
1162         (sjlj_find_directly_reachable_regions): Update.
1163         (add_reachable_handler): Do not set saw_any_handlers.
1164         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
1165         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
1166         Add new inlinable call parameter.
1167         (can_throw_internal, can_throw_external): Update.
1168         * except.h (can_throw_internal_1, can_throw_external_1,
1169         foreach_reachable_handler): Update declaration.
1170
1171 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
1172
1173         * config/arm/t-arm-coff, config/h8300/coff.h,
1174         config/i386/i386-aout.h, config/i386/i386-coff.h,
1175         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
1176         config/pdp11/2bsd.h, config/rs6000/aix41.h,
1177         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
1178         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
1179         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
1180         sys-types.h: Remove.
1181         * Makefile.in: Remove protoize and fixproto support and references
1182         in comments.
1183         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
1184         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
1185         Remove.
1186         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
1187         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
1188         unprotoize$(exeext).
1189         (rest.encap): Don't depend on $(STMP_FIXPROTO)
1190         (.PHONY): Don't depend on proto.
1191         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
1192         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
1193         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
1194         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
1195         build/gen-protos.o, build/scan.o, xsys-protos.h,
1196         build/fix-header$(build_exeext), build/fix-header.o,
1197         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
1198         stmp-install-fixproto): Remove.
1199         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
1200         SYSCALLS.c or fixproto files.
1201         (install-common): Don't install protoize.
1202         (install-headers-tar, install-headers-cpio, install-headers-cp):
1203         Don't depend on $(STMP_FIXPROTO).
1204         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
1205         install fixproto files or write out fixproto settings.
1206         (uninstall): Don't uninstall protoize.
1207         * config.gcc (use_fixproto): Remove.
1208         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
1209         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
1210         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
1211         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
1212         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
1213         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
1214         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
1215         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
1216         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
1217         * config/t-vxworks (STMP_FIXPROTO): Remove.
1218         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
1219         STMP_FIXPROTO): Remove.
1220         * config.in, configure: Regenerate.
1221         * crtstuff.c (gid_t, uid_t): Don't undefine.
1222         * doc/install.texi: Change m68k-coff to m68k-elf in example.
1223         (arm-*-coff, arm-*-aout: Remove target entries.
1224         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
1225         Remove mention of AIX 4.1.
1226         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
1227         * doc/invoke.texi (Running Protoize): Remove.
1228         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
1229         (Protoize Caveats): Remove.
1230         * tsystem.h: Update comments on headers assumed to exist.
1231
1232 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
1233
1234         * genautomata.c: Add a new year to the copyright.  Add a new
1235         reference.
1236         (struct insn_reserv_decl): Add comments for member bypass_list.
1237         (find_bypass): Remove.
1238         (insert_bypass): New.
1239         (process_decls): Use insert_bypass.
1240         (output_internal_insn_latency_func): Output all bypasses with the
1241         same input insn in one switch case.
1242
1243         * rtl.def (define_bypass): Describe bypass choice.
1244         * doc/md.texi (define_bypass): Ditto.
1245
1246 2009-03-27  Richard Guenther  <rguenther@suse.de>
1247
1248         * gimplify.c (mark_addressable): Export.
1249         * tree-flow.h (mark_addressable): Declare.
1250         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
1251         * tree-ssa.c (verify_phi_args): Verify that address taken
1252         variables have TREE_ADDRESSABLE set.
1253
1254 2009-03-27  Richard Guenther  <rguenther@suse.de>
1255
1256         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
1257         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
1258         Do not mark decls TREE_ADDRESSABLE.
1259         (build_fold_addr_expr): Adjust.
1260         (fold_addr_expr): Remove.
1261         (fold_unary): Use build_fold_addr_expr.
1262         (fold_comparison): Likewise.
1263         (split_address_to_core_and_offset): Likewise.
1264         * coverage.c (tree_coverage_counter_addr): Mark the array decl
1265         TREE_ADDRESSABLE.
1266         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
1267         (gimplify_modify_expr_to_memcpy): Mark source and destination
1268         addressable.
1269         * omp-low.c (create_omp_child_function): Mark the object decl
1270         TREE_ADDRESSABLE.
1271         (lower_rec_input_clauses): Mark the var we take the address of
1272         TREE_ADDRESSABLE.
1273         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
1274
1275 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1276
1277         PR middle-end/39315
1278         * cfgexpand.c (expand_one_stack_var_at): Change alignment
1279         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
1280
1281 2009-03-27  Richard Guenther  <rguenther@suse.de>
1282
1283         PR tree-optimization/39120
1284         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
1285         constraints.
1286         (handle_lhs_call): Process return constraints.  Add escape
1287         constraints if necessary.
1288         (handle_const_call): Fill out return constraints.  Make nested
1289         case more precise.  Avoid consttmp if possible.
1290         (handle_pure_call): Fill out return constraints.  Avoid
1291         callused if possible.
1292         (find_func_aliases): Simplify call handling.
1293
1294 2009-03-27  Richard Guenther  <rguenther@suse.de>
1295
1296         PR tree-optimization/39120
1297         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
1298         as a representative.
1299         (solve_graph): Do propagate CALLUSED.
1300         (handle_pure_call): Use a scalar constraint from CALLUSED for
1301         the return value.
1302         (find_what_p_points_to): CALLUSED shall not appear in poins-to
1303         solutions.
1304
1305 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1306
1307         PR c/39323
1308         * c-common.c (handle_aligned_attribute): Properly check alignment
1309         overflow.  Use (1U << i) instead of (1 << i).
1310
1311         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
1312
1313         * expr.h (get_mem_align_offset): Updated.
1314
1315         * tree.h (tree_decl_common): Change align to "unsigned int" and
1316         move it before pointer_alias_set.
1317
1318 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1319             Jakub Jelinek  <jakub@redhat.com>
1320
1321         PR target/38034
1322         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
1323         gr_register_operand with gr_reg_or_0_operand.
1324         (cmpxchg_rel_di): Likewise.
1325         (sync_lock_test_and_set<mode>): Likewise.
1326
1327 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1328
1329         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
1330         (true_regnum): Likewise.
1331
1332         * rtlanal.c (subreg_info): Moved to ...
1333         * rtl.h (subreg_info): Here.  New.
1334         (subreg_get_info): New.
1335
1336         * rtlanal.c (subreg_get_info): Make it extern.
1337
1338 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1339
1340         PR target/39472
1341         * config/i386/i386.c (ix86_abi): New.
1342         (override_options): Handle -mabi=.
1343         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
1344         (ix86_call_abi_override): Likewise.
1345         (init_cumulative_args): Likewise.
1346         (function_arg_advance): Likewise.
1347         (function_arg_64): Likewise.
1348         (function_arg): Likewise.
1349         (ix86_pass_by_reference): Likewise.
1350         (ix86_function_value_regno_p): Likewise.
1351         (ix86_build_builtin_va_list_abi): Likewise.
1352         (setup_incoming_varargs_64): Likewise.
1353         (is_va_list_char_pointer): Likewise.
1354         (ix86_init_machine_status): Likewise.
1355         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
1356         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
1357         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
1358         (ix86_function_abi): Make it static and return enum calling_abi.
1359         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
1360         with ix86_abi.
1361         (ix86_fn_abi_va_list): Updated.
1362
1363         * config/i386/i386.h (ix86_abi): New.
1364         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
1365         (CONDITIONAL_REGISTER_USAGE): Likewise.
1366         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
1367         (machine_function): Likewise.
1368
1369         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
1370         with ix86_abi.
1371         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
1372         (STACK_BOUNDARY): Likewise.
1373         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
1374
1375         * config/i386/i386.opt (mabi=): New.
1376
1377         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
1378         return enum calling_abi.
1379         (ix86_function_type_abi): Likewise.
1380         (ix86_function_abi): Removed.
1381
1382         * doc/invoke.texi: Document -mabi= option for x86.
1383
1384 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1385
1386         * builtins.c (real_dconstp): Delete.
1387         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
1388
1389 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
1390             Jakub Jelinek  <jakub@redhat.com>
1391
1392         PR debug/37959
1393         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
1394         (gen_subprogram_die): When a function is explicit, generate the
1395         DW_AT_explicit attribute.
1396         * langhooks.h (struct lang_hooks_for_decls): Add
1397         function_decl_explicit_p langhook.
1398         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
1399         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
1400
1401 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
1402
1403         * builtins.c (fold_builtin_memory_op): Optimize memmove
1404         into memcpy if we can prove source and destination don't overlap.
1405
1406         * tree-inline.c: Include gt-tree-inline.h.
1407         (clone_fn_id_num): New variable.
1408         (clone_function_name): New function.
1409         (tree_function_versioning): Use it.
1410         * Makefile.in (GTFILES): Add tree-inline.c.
1411
1412 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
1413
1414         * BASE-VER: Change to 4.5.0.
1415
1416 2009-03-27  Xinliang David Li  <davidxl@google.com>
1417
1418         PR tree-optimization/39557
1419         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
1420
1421 2009-03-27  Xinliang David Li  <davidxl@google.com>
1422
1423         PR tree-optimization/39548
1424         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy 
1425         candidate check.
1426
1427 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1428
1429         * c-common.c (pointer_int_sum): Use %wd on return from
1430         tree_low_cst.
1431
1432 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1433
1434         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
1435         on return from tree_low_cst.
1436
1437 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1438
1439         PR c++/36799
1440         * ginclude/stdarg.h (va_copy): Define also for
1441         __GXX_EXPERIMENTAL_CXX0X__.
1442
1443 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1444
1445         PR c++/35652
1446         * builtins.h (c_strlen): Do not warn here.
1447         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
1448         * c-common.c (pointer_int_sum): Take an explicit location.
1449         Warn about offsets out of bounds.
1450         * c-common.h (pointer_int_sum): Adjust declaration.
1451
1452 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1453
1454         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
1455         markup glitch.
1456
1457 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
1458
1459         PR c++/39554
1460         * opts.c (warn_if_disallowed_function_p): Don't assume
1461         get_callee_fndecl must return non-NULL.
1462
1463 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
1464
1465         PR rtl-optimization/39522
1466         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
1467         when reg_reloaded_valid is set.
1468
1469 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1470
1471         * config/spu/divv2df3.c: New file.
1472         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
1473         (DPBIT_FUNCS): Filter out _div_df.
1474
1475 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
1476
1477         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
1478         a jump insn, count that jump in the distance to the loop start.
1479
1480 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
1481
1482         PR target/39523
1483         * config/sh/sh.c (calc_live_regs): Fix condition for global
1484         registers except PIC_OFFSET_TABLE_REGNUM.
1485
1486 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
1487
1488         PR/39518
1489         * doc/invoke.texi (-mconsole): New.
1490         (-mcygwin): New.
1491         (-mno-cygwin): New.
1492         (-mdll): New.
1493         (-mnop-fun-dllimport): New.
1494         (-mthread): New.
1495         (-mwin32): New.
1496         (-mwindows): New.
1497         (sub section "i386 and x86-64 Windows Options"): New.
1498
1499 2009-03-25  Ralf Corsépius <ralf.corsepius@rtems.org>
1500
1501         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
1502         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
1503
1504 2009-03-25  Richard Guenther  <rguenther@suse.de>
1505
1506         PR middle-end/39497
1507         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
1508         of -Wno-error.
1509
1510 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
1511
1512         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
1513         neither of haifa/selective schedulers are working.
1514
1515 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1516
1517         * doc/invoke.texi (Debugging Options): Fix description of
1518         -fno-merge-debug-strings.
1519
1520 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
1521
1522         * config/cris/libgcc.ver: New version-script.
1523         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
1524
1525         * configure.ac <GAS features, nop mnemonic>: Add pattern
1526         crisv32-*-* for "nop".
1527         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
1528         * configure: Regenerate.
1529
1530 2009-03-24  Ira Rosen  <irar@il.ibm.com>
1531
1532         PR tree-optimization/39529
1533         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
1534         mark_sym_for_renaming for the tag copied to the new vector
1535         pointer.
1536
1537 2009-03-24  Arthur Loiret  <aloiret@debian.org>
1538
1539         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
1540         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
1541         EXTRA_SPEC_FUNCTIONS.
1542         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
1543         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
1544         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
1545         -march and -mtune options.
1546
1547 2009-03-24  Ralf Corsépius <ralf.corsepius@rtems.org>
1548
1549         * config/m68k/t-rtems: Add m5329 multilib.
1550
1551 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
1552             Jakub Jelinek  <jakub@redhat.com>
1553
1554         PR debug/39524
1555         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
1556         nodes.
1557
1558 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
1559
1560         PR c/39495
1561         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
1562         instead of c_parser_expression_conv, if original_code isn't one of the
1563         4 allowed comparison codes, fail.
1564
1565 2009-03-23  Richard Guenther  <rguenther@suse.de>
1566
1567         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
1568         * tree.h (struct tree_type): Likewise.
1569         * reload.h (struct insn_chain): Likewise.
1570         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
1571         * function.h (struct function): Likewise.
1572         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
1573
1574 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
1575
1576         PR tree-optimization/39516
1577         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
1578
1579 2009-03-23 Bingfeng Mei  <bmei@broadcom.com>
1580
1581         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint 
1582         should be set true if BITS_PER_WORD of target is bigger than 32
1583
1584 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
1585
1586         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
1587         Translate -B-options to -rpath-link.  Correct existing
1588         rpath-link and conditionalize on !nostdlib.
1589
1590 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1591
1592         * doc/extend.texi (Function Attributes, Variable Attributes):
1593         Fix typos.
1594         * doc/invoke.texi (Debugging Options, Optimize Options)
1595         (i386 and x86-64 Options, MCore Options): Likewise.
1596
1597 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
1598
1599         PR debug/37890
1600         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
1601         it for block local namespace aliases.
1602         (gen_decl_die): Pass context_die to gen_namespace_die.
1603
1604 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
1605
1606         PR c/39495
1607         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
1608         minimum or maximum value.
1609
1610 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
1611
1612         * reginfo.c (globalize_reg): Recompute derived reg sets.
1613
1614 2009-03-19  Ozkan Sezer <sezeroz@gmail.com>
1615
1616         PR target/39063
1617         * libgcc2.c (mprotect): Do not use signed arguments for
1618         VirtualProtect, use DWORD arguments.  Also fix the 'may
1619         be used uninitialized' warning for the np variable.
1620
1621 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
1622
1623         PR target/39496
1624         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
1625         functions using regparm calling conventions when not optimizing.
1626         (ix86_function_sseregparm): Similarly for sseregparm calling
1627         conventions.
1628
1629 2009-03-19  Li Feng  <nemokingdom@gmail.com>
1630
1631         PR middle-end/39500
1632         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
1633         dependence if the first conflict is after niter iterations.
1634
1635 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
1636
1637         PR middle-end/38609
1638         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
1639         functions with dynamic stack-pointer adjustments.
1640
1641 2009-03-19  Ben Elliston  <bje@au.ibm.com>
1642
1643         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
1644         option; change to -msdata=data.
1645
1646 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1647
1648         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
1649         and -fopenmp.
1650
1651 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
1652
1653         PR target/35180
1654         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
1655
1656 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
1657
1658         * doc/invoke.texi (Code Gen Options): Expand discussion of
1659         -fno-common.
1660
1661 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
1662
1663         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
1664         * matrix-reorg.c (struct matrix_info): Likewise.
1665         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
1666         * rtl.h (struct mem_attrs): Likewise.
1667         * df.h (struct df): Likewise.
1668         * tree-data-ref.h (struct data_dependence_relation): Likewise.
1669         * ira-int.h (struct ira_allocno): Likewise.
1670         * df-scan.c (struct df_collection_rec): Likewise.
1671         * ira.c (struct equivalence): Likewise.
1672         * function.c (struct temp_slot): Likewise.
1673         * cfgloop.h (struct loop): Likewise.
1674
1675         PR debug/39485
1676         * function.c (use_register_for_decl): When not optimizing, disregard
1677         register keyword for variables with types containing methods.
1678
1679 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
1680
1681         PR middle-end/39447
1682         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
1683         (is_simple_operand): Call contains_component_ref_p before calling data
1684         reference analysis that would fail on COMPONENT_REFs.
1685
1686         * tree-vrp.c (search_for_addr_array): Fix formatting.
1687
1688 2009-03-18  Richard Guenther  <rguenther@suse.de>
1689
1690         * tree-vect-transform.c (vect_loop_versioning): Fold the
1691         generated comparisons.
1692         * tree-vectorizer.c (set_prologue_iterations): Likewise.
1693         (slpeel_tree_peel_loop_to_edge): Likewise.
1694
1695 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1696
1697         PR middle-end/37805
1698         * opts.c (print_specific_help): In addition to `undocumented',
1699         accept `separate' and `joined' flags if passed alone.  Describe
1700         output by the first matched one of those.
1701         (common_handle_option): Skip over empty strings.
1702         * gcc.c (display_help): Fix help string for `--help='.
1703         * doc/invoke.texi (Option Summary, Overall Options): With
1704         `--help=', classes and qualifiers can both be repeated, but
1705         only the latter can be negated.  One should not pass only
1706         negated qualifiers.  Fix markup and examples.
1707
1708         Revert
1709         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
1710         PR middle-end/37805
1711         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
1712         and -fhelp=separate.
1713
1714 2009-03-17  Jing Yu  <jingyu@google.com>
1715
1716         PR middle-end/39378
1717         * function.h (struct rtl_data): Move is_thunk from here...
1718         (struct function): ...to here.
1719         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
1720         * varasm.c (assemble_start_function): Change is_thunk from crtl to
1721         cfun.
1722         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
1723         cfun.
1724         (alpha_does_function_need_gp, alpha_start_function): Likewise.
1725         (alpha_output_function_end_prologue): Likewise.
1726         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
1727         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
1728         (rs6000_output_function_epilogue): Likewise.
1729         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
1730
1731 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
1732
1733         PR target/39482
1734         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
1735         from different units in a single alternative.
1736         (*truncdfsf_i387): Ditto.
1737         (*truncxfsf2_mixed): Ditto.
1738         (*truncxfdf2_mixed): Ditto.
1739
1740 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
1741
1742         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
1743         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
1744
1745         PR debug/39474
1746         * tree-ssa-live.c (remove_unused_locals): Don't remove local
1747         unused non-artificial variables when not optimizing.
1748
1749         PR debug/39471
1750         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
1751         DW_TAG_imported_module even if decl is IMPORTED_DECL with
1752         NAMESPACE_DECL in its DECL_INITIAL.
1753
1754         PR middle-end/39443
1755         * optabs.c (set_user_assembler_libfunc): New function.
1756         * expr.h (set_user_assembler_libfunc): New prototype.
1757         * c-common.c: Include libfuncs.h.
1758         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
1759         for memcmp, memset, memcpy, memmove and abort.
1760         * Makefile.in (c-common.o): Depend on libfuncs.h.
1761
1762         PR debug/39412
1763         * dwarf2out.c (gen_inlined_enumeration_type_die,
1764         gen_inlined_structure_type_die, gen_inlined_union_type_die,
1765         gen_tagged_type_instantiation_die): Removed.
1766         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
1767         do nothing.
1768
1769 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
1770
1771         PR testsuite/38526
1772         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
1773         its use.
1774         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
1775         (check-parallel-%): Ditto.
1776         (check-consistency): Ditto.
1777
1778 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
1779
1780         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
1781         local variable rhs by NULL_TREE.
1782
1783 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
1784
1785         PR target/39477
1786         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
1787
1788 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
1789
1790         PR target/39476
1791         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
1792
1793 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
1794
1795         PR target/39473
1796         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
1797         for ms->sysv ABI calls only in 64bit mode.
1798
1799         * config/i386/i386.md (untyped_call): Support 32bit.
1800
1801 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
1802
1803         * doc/extend.texi: Replace x86_65 with x86_64.
1804
1805 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
1806
1807         PR tree-optimization/39455
1808         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
1809         mismatches for POINTER_TYPE_P (type).
1810         (number_of_iterations_le): Likewise.
1811
1812 2009-03-16  Hariharan Sandanagobalane <hariharan@picochip.com>
1813
1814         * config/picochip/picochip.c: Removed profiling support.
1815         * config/picochip/picochip.md: Removed profiling instruction.
1816         * config/picochip/picochip.h: Removed profiling builtin.
1817
1818 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
1819
1820         * doc/install.texi (--with-host-libstdcxx): Document.
1821
1822 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
1823
1824         PR target/34299
1825         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
1826         generate a warning if the function name does not begin with
1827         "__vector" and the function has either the 'signal' or 'interrupt'
1828         attribute, from here to ...
1829         (avr_declare_function_name): ...here. New function.
1830         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
1831         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
1832
1833 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
1834
1835         PR bootstrap/39454
1836         * cse.c (fold_rtx): Don't modify original const_arg1 when
1837         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
1838         separate variable instead.
1839         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
1840         from out of range shift counts.
1841         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
1842
1843 2008-03-13  Catherine Moore  <clm@codesourcery.com>
1844
1845         * gcc/config/i386/x-mingw32 (host-mingw32.o): Replace
1846         diagnostic.h with $(DIAGNOSTIC_H).
1847
1848 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
1849
1850         PR target/39431
1851         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
1852         predicate.
1853         * config/i386/sync.md (sync_compare_and_swap<mode>,
1854         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
1855         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
1856         into a register.
1857         (sync_double_compare_and_swapdi_pic,
1858         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
1859         cmpxchg8b_pic_memory_operand instead of just memory_operand.
1860
1861 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
1862
1863         PR target/39445
1864         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
1865
1866 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
1867
1868         PR target/39327
1869         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
1870         (avx_addsubv4df3): Likewise.
1871         (*avx_addsubv4sf3): Likewise.
1872         (sse3_addsubv4sf3): Likewise.
1873
1874 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
1875
1876         PR target/38824
1877         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
1878
1879 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
1880
1881         PR debug/39432
1882         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
1883         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
1884         registers for allocnos created from user-defined variables.
1885
1886 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1887
1888         PR target/39181
1889         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
1890         of non-integer mode as well.
1891
1892 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
1893
1894         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
1895         for functions for which the parameter types are unknown.
1896
1897 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
1898
1899         PR target/39137
1900         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
1901         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
1902         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
1903         * config/i386/i386.c (ix86_local_alignment): For
1904         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
1905         long long variables on the stack to avoid dynamic realignment.
1906         Allow the first argument to be a decl rather than type.
1907         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
1908
1909 2009-03-11  Nick Clifton  <nickc@redhat.com>
1910
1911         PR target/5362
1912         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
1913         options.
1914         Add description to mno-lsim option.
1915         * config/mcore/mcore.h: Remove comment about deprecated m4align
1916         option.
1917         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
1918         * doc/invoke.texi: Add description of mno-lsim and
1919         mstack-increment options.
1920
1921         * config/fr30/fr30.opt: Document the -mno-lsim option.
1922         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
1923         and -mno-lsim options.
1924
1925 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1926
1927         * fold-const.c (fold_comparison): Only call fold_inf_compare
1928         if the mode supports infinities.
1929
1930 2009-03-11  Jason Merrill  <jason@redhat.com>
1931
1932         PR debug/39086
1933         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
1934         end already did.  Notice GIMPLE_CALL modifications of the result.
1935         Don't copy debug information from an ignored decl or a decl from
1936         another function.
1937
1938 2009-03-10  Richard Guenther  <rguenther@suse.de>
1939             Nathan Froyd  <froydnj@codesourcery.com>
1940
1941         PR middle-end/37850
1942         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
1943         (__divMODE3): Likewise.
1944
1945 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
1946
1947         PR tree-optimization/39394
1948         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
1949         DECL_SIZE_UNIT of variable length FIELD_DECLs.
1950
1951 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1952
1953         * recog.c (verfiy_changes): Disallow renaming of hard regs in
1954         inline asms for register asm ("") declarations.
1955
1956 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
1957
1958         * fold-const.c (fold_unary): Fix comment.
1959
1960 2009-03-07  Jan Hubicka  <jh@suse.cz>
1961
1962         PR target/39361
1963         * tree-inline.c (setup_one_parameter): Do replacement of const
1964         argument by constant in SSA form.
1965
1966 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1967
1968         PR middle-end/38028
1969         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
1970         determine alignment passed to assign_stack_local.
1971         (assign_parms_unsplit_complex): Likewise.
1972         * except.c (sjlj_build_landing_pads): Likewise.
1973
1974 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
1975
1976         PR middle-end/39360
1977         * tree-flow.h (add_referenced_var): Return bool instead of void.
1978         * tree-dfa.c (add_referenced_var): Return result of
1979         referenced_var_check_and_insert call.
1980         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
1981         of referenced_var_check_and_insert.
1982
1983         PR debug/39372
1984         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
1985         (gen_variable_die): Emit DW_AT_location on abstract static variable's
1986         DIE, don't emit it if abstract origin already has it.
1987         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
1988         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
1989
1990 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
1991
1992         * genpreds.c (needs_variable): Fix parentheses at variable name
1993         detection.
1994         (write_tm_constrs_h): Indent generated code.
1995
1996 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1997
1998         * doc/extend.texi (Function Attributes): Add documentation
1999         for isr attributes.
2000
2001 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
2002
2003         PR debug/39387
2004         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
2005         take locus from its DECL_SOURCE_LOCATION instead of input_location.
2006
2007 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
2008
2009         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
2010         the loop as bad.
2011
2012 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
2013
2014         PR debug/39379
2015         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
2016         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
2017
2018 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
2019
2020         * config/i386/i386.md (R8_REG, R9_REG): New constants.
2021         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
2022         constants instead of magic numbers.
2023         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
2024         (QI_REG_P): Ditto.
2025         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
2026         (x86_64_ms_abi_int_parameter_registers): Ditto.
2027         (x86_64_int_return_registers): Ditto.
2028         (ix86_maybe_switch_abi): Ditto.
2029         (ix86_expand_call): Ditto for clobbered_registers array.
2030         (ix86_hard_regno_mode_ok): Ditto.
2031         (x86_extended_QIreg_mentioned_p): Ditto.
2032
2033 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
2034
2035         PR tree-optimization/39349
2036         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
2037
2038         * combine.c (gen_lowpart_for_combine): Use omode when generating
2039         clobber.
2040
2041 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
2042
2043         PR rtl-optimization/39235
2044         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
2045
2046 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
2047
2048         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
2049
2050 2009-03-04  Richard Guenther  <rguenther@suse.de>
2051
2052         PR tree-optimization/39362
2053         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
2054         that occur in abnormal PHIs should be varying.
2055
2056 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
2057
2058         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
2059         Extend comments.
2060         (simple_iv):  Take loop as an argument instead of statement.
2061         * tree-scalar-evolution.h (simple_iv): Declaration changed.
2062         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
2063         to simple_iv.
2064         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
2065         Ditto.
2066         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
2067         * matrix-reorg.c (analyze_transpose): Ditto.
2068         * tree-data-ref.c (dr_analyze_innermost): Ditto.
2069         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
2070         * tree-predcom.c (ref_at_iteration): Ditto.
2071         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
2072
2073 2009-03-04  Richard Guenther  <rguenther@suse.de>
2074
2075         PR tree-optimization/39358
2076         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
2077         escaped_id and callused_id.
2078         (solve_graph): Likewise.
2079
2080 2009-03-04  Richard Guenther  <rguenther@suse.de>
2081
2082         PR tree-optimization/39339
2083         * tree-sra.c (try_instantiate_multiple_fields): Make it
2084         no longer ICE on the above.
2085
2086 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
2087
2088         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
2089         that fits within Pmode.
2090
2091 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
2092
2093         PR middle-end/10109
2094         * tm.texi (LIBCALL_VALUE): Update description.
2095
2096 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
2097
2098         PR middle-end/34443
2099         * doc/extend.texi (section): Update description.
2100
2101 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
2102
2103         PR middle-end/39345
2104         * tree-inline.c (remapped_type): New.
2105         (can_be_nonlocal): Call remapped_type instead of remap_type.
2106
2107 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
2108
2109         PR fortran/39354
2110         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
2111         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
2112
2113 2009-03-03  Richard Guenther  <rguenther@suse.de>
2114
2115         PR middle-end/39272
2116         * tree.c (tree_nonartificial_location): New function.
2117         * tree.h (tree_nonartificial_location): Declare.
2118         * builtins.c (expand_builtin_memory_chk): Provide location
2119         of the call location for artificial function pieces.
2120         (maybe_emit_chk_warning): Likewise.
2121         (maybe_emit_sprintf_chk_warning): Likewise.
2122         (maybe_emit_free_warning): Likewise.
2123         * expr.c (expand_expr_real_1): Likewise.
2124
2125 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
2126
2127         PR tree-optimization/39343
2128         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
2129         COMPONENT_REF t has ARRAY_TYPE.
2130
2131 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
2132
2133         PR middle-end/39335
2134         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
2135         when the type precision of the induction variable should be
2136         larger than the type precision of nit.
2137         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
2138         * graphite.c (graphite_loop_normal_form): Same.
2139         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
2140
2141 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
2142
2143         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
2144         (*call_1_rex64_ms_sysv): Use named constants instead of magic
2145         numbers to describe clobbered registers.
2146         (*call_value_0_rex64_ms_sysv): Ditto.
2147         * config/i386/mmx.md (mmx_emms): Ditto.
2148         (mmx_femms): Ditto.
2149
2150 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
2151
2152         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
2153         of ABI_64.
2154
2155 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2156
2157         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
2158         (spu_section_type_flags): New function.
2159
2160 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
2161
2162         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
2163         reg_class_contents of FLOAT_REGS into a temporary.
2164
2165 2009-03-02  Richard Guenther  <rguenther@suse.de>
2166             Ira Rosen  <irar@il.ibm.com>
2167
2168         PR tree-optimization/39318
2169         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
2170         information to the vectorized statement.
2171
2172 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
2173
2174         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
2175         variable.  Use defined names instead of magic constants for REX SSE
2176         registers.
2177
2178 2009-03-01  Richard Guenther  <rguenther@suse.de>
2179
2180         PR tree-optimization/39331
2181         * omp-low.c (lower_send_shared_vars): Do not receive new
2182         values for the reference of DECL_BY_REFERENCE parms or results.
2183
2184 2009-03-01  Jan Hubicka  <jh@suse.cz>
2185
2186         PR debug/39267
2187         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
2188         BLOCK_NONLOCALIZED_VAR): New macros.
2189         (tree_block): Add nonlocalized_vars.
2190         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
2191         gen_decl_die): Add origin argument.  Allow generation of die with
2192         origin at hand only.
2193         (gen_member_die, gen_type_die_with_usage, force_decl_die,
2194         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
2195         of gen_*.
2196         (gen_block_die): Fix checking for unused blocks.
2197         (process_scope_var): Break out from .... ; work with origins only.
2198         (decls_for_scope) ... here; process nonlocalized list.
2199         (dwarf2out_ignore_block): Look for nonlocalized vars.
2200         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
2201         vars.
2202         (dump_scope_block): Dump them.
2203         * tree-inline.c (remap_decls): Handle nonlocalized vars.
2204         (remap_block): Likewise.
2205         (can_be_nonlocal): New predicate.
2206         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
2207
2208 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2209
2210         * configure: Regenerate.
2211
2212 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2213
2214         * optc-gen.awk: No need to duplicate option flags twice.
2215         Reuse help texts for duplicate options which do not have any.
2216
2217         * gcc.c (display_help): Document --version.
2218
2219         * gcc.c (main): If print_help_list and verbose_flag, ensure
2220         driver output comes before subprocess output.
2221
2222         * optc-gen.awk: Assign all remaining fields to help string,
2223         space-separated, for multi-line help in *.opt.
2224
2225         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
2226         -Wno-pedantic-ms-format is for MinGW targets only.
2227
2228         * doc/options.texi (Option file format): Fix bad indentation,
2229         restoring dropped sentence.
2230
2231 2009-02-28  Jan Hubicka  <jh@suse.cz>
2232
2233         * tree-inline.c (tree_function_versioning): Output debug info.
2234
2235 2009-02-28  Jan Hubicka  <jh@suse.cz>
2236
2237         PR debug/39267
2238         * tree-inline.c (setup_one_parameter): Do not copy propagate
2239         arguments when not optimizing.
2240
2241 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
2242
2243         PR target/39327
2244         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
2245         (avx_addsubv4df3): Likewise.
2246         (*avx_addsubv4sf3): Likewise.
2247         (sse3_addsubv4sf3): Likewise.
2248         (*avx_addsubv2df3): Likewise.
2249         (sse3_addsubv2df3): Likewise.
2250         (avx_unpckhps256): Correct item selectors.
2251         (avx_unpcklps256): Likewise.
2252         (avx_unpckhpd256): Likewise.
2253         (avx_unpcklpd256): Likewise.
2254
2255 2009-02-28  Jan Hubicka  <jh@suse.cz>
2256
2257         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
2258         static vars.
2259         (copy_arguments_for_versioning): If var is declared don't declare it.
2260         (tree_function_versioning): First setup substitutions and then copy
2261         args.
2262
2263 2009-02-27  Jan Hubicka  <jh@suse.cz>
2264
2265         PR debug/39267
2266         * cgraph.h (varpool_output_debug_info): Remove.
2267         * cgraphunit.c (varpool_output_debug_info): Remove.
2268         * dwarf2out.c (deferred_locations_struct): New struct
2269         (deferred_locations): New type.
2270         (deferred_locations_list): New static var.
2271         (deffer_location): New function.
2272         (gen_variable_die): Use it.
2273         (decls_for_scope): Output info on local static vars.
2274         (dwarf2out_finish): Process deferred locations.
2275         * varpool.c (varpool_output_debug_info): Remove.
2276
2277 2009-02-27  Jan Hubicka  <jh@suse.cz>
2278
2279         PR debug/39267
2280         * tree.h (TREE_PROTECTED): Fix comment.
2281         (BLOCK_HANDLER_BLOCK): Remove.
2282         (struct tree_block): Remove handler_block add body_block.
2283         (inlined_function_outer_scope_p): New.
2284         (is_body_block): Remove.
2285         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
2286         * dwarf2out.c (is_inlined_entry_point): Remove.
2287         (add_high_low_attributes): Use inlined_function_outer_scope_p.
2288         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
2289         code.
2290         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
2291         * gimplify.c (gimplify_expr): Gimplify body blocks.
2292         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
2293         block with multiple subblocks.
2294         (dump_scope_block): Prettier output; dump more flags and info.
2295         (dump_scope_blocks): New.
2296         (remove_unused_locals): Use dump_scope_blocks.
2297         * tree-flow.h (dump_scope_blocks): Declare.
2298         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
2299         * stmt.c (is_body_block): Remove.
2300         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
2301         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
2302
2303 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
2304
2305         PR middle-end/39308
2306         * graphite.c (graphite_loop_normal_form): Do not call 
2307         number_of_iterations_exit from a gcc_assert.
2308
2309 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2310
2311         * gcc/config/s390/s390.c (s390_swap_cmp): Look for conditional
2312         jumps if COND is NULL.
2313         (find_cond_jump): New function.
2314         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
2315         * gcc/config/s390/s390.md: Remove z10_cobra attribute value.
2316
2317 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
2318
2319         * config/alpha/alpha.h (alpha_expand_mov): Return false if
2320         force_const_mem returns NULL_RTX.
2321
2322 2009-02-26  Jan Hubicka  <jh@suse.cz>
2323
2324         PR debug/39267
2325         * cgraph.h (varpool_output_debug_info): Remove.
2326         * cgraphunit.c (varpool_output_debug_info): Remove.
2327         * dwarf2out.c (deferred_locations_struct): New struct
2328         (deferred_locations): New type.
2329         (deferred_locations_list): New static var.
2330         (deffer_location): New function.
2331         (gen_variable_die): Use it.
2332         (decls_for_scope): Output info on local static vars.
2333         (dwarf2out_finish): Process deferred locations.
2334         * varpool.c (varpool_output_debug_info): Remove.
2335
2336 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
2337
2338         PR rtl-optimization/39241
2339         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
2340         to subreg_offset_representable_p.
2341
2342 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
2343
2344         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
2345         execute function prototype.  Get f and nregs from max_reg_num
2346         and get_insns.  Remove the first backward pass as it's dead,
2347         guard the forward pass by flag_expensive_optimizations.
2348         (rest_of_handle_regmove): Delete.
2349         (pass_regmove): Replace it with regmove_optimize.
2350
2351 2009-02-25  Martin Jambor  <mjambor@suse.cz>
2352
2353         PR tree-optimization/39259
2354         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
2355         calls_alloca function flags.
2356         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
2357         calls are detected.
2358
2359 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
2360
2361         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
2362         flags_set_1_rtx, flags_set_1_set): Delete.
2363         (regmove_optimize): Do not call mark_flags_life_zones.
2364
2365 2009-02-24  Julian Brown  <julian@codesourcery.com>
2366
2367         PR target/35965
2368         * config/arm/arm.c (require_pic_register): Only set
2369         cfun->machine->pic_reg once per function.
2370
2371 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
2372
2373         * doc/invoke.texi (Link Options): Document an easier way to pass
2374         options that take arguments to the GNU linker using -Xlinker and -Wl.
2375
2376 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
2377
2378         PR target/33785
2379         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
2380
2381 2009-02-24  Richard Guenther  <rguenther@suse.de>
2382
2383         PR debug/39285
2384         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
2385
2386 2009-02-24  Richard Guenther  <rguenther@suse.de>
2387             Zdenek Dvorak  <ook@ucw.cz>
2388
2389         PR tree-optimization/39233
2390         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
2391         from converting them to a generic type.
2392
2393 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
2394
2395         PR tree-optimization/39260
2396         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
2397         contains a condition with a real type.
2398         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
2399
2400 2009-02-23  Jason Merrill  <jason@redhat.com>
2401
2402         PR c++/38880
2403         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
2404         narrowing_initializer_constant_valid_p.
2405         (narrowing_initializer_constant_valid_p): Don't return 
2406         null_pointer_node for adding a pointer to itself.
2407
2408 2009-02-23  Jan Hubicka  <jh@suse.cz>
2409
2410         PR c/12245
2411         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
2412         resizing.
2413
2414 2009-02-23  Jan Hubicka  <jh@suse.cz>
2415
2416         PR tree-optimization/37709
2417         * tree.c (block_ultimate_origin): Move here from dwarf2out.
2418         * tree.h (block_ultimate_origin): Declare.
2419         * dwarf2out.c (block_ultimate_origin): Move to tree.c
2420         * tree-ssa-live.c (remove_unused_scope_block_p):
2421         Eliminate blocks containig no instructions nor live variables nor
2422         nested blocks.
2423         (dump_scope_block): New function.
2424         (remove_unused_locals): Enable removal of dead blocks by default;
2425         enable dumping at TDF_DETAILS.
2426
2427 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
2428
2429         * config/i386/i386.c (classify_argument): Don't allow COImode
2430         and OImode.
2431         (function_arg_advance_32): Don't allow OImode.
2432         (function_arg_32): Likewise.
2433         (function_value_32): Likewise.
2434         (return_in_memory_32): Likewise.
2435         (function_arg_64): Remove OImode comment.
2436
2437 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
2438
2439         PR target/39261
2440         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
2441         ix86_expand_vector_set for V4DImode in 64bit mode only.
2442         (ix86_expand_vector_init_one_var): Likewise.
2443
2444 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
2445
2446         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
2447
2448 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
2449
2450         PR bootstrap/39257
2451         * loop-iv.c: Revert last change.
2452         * emit-rtl.c: Likewise.
2453
2454 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
2455
2456         PR target/39256
2457         * config/i386/i386.c (type_natural_mode): Remove an extra
2458         space in the warning message.
2459         (function_value_32): Handle 32-byte vector modes.
2460         (return_in_memory_32): Likewise.
2461
2462 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
2463
2464         * loop-iv.c (truncate_value): New function.
2465         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
2466         of lowpart_subreg.
2467         (lowpart_subreg): Move to...
2468         * emit-rtl.c: ...here.
2469
2470 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
2471
2472         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
2473         accidental and undocumented change at revision 140860.
2474
2475 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
2476
2477         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
2478         take gimple_seq * arguments.
2479         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
2480         types_compatible_p langhook.
2481
2482 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
2483             Joseph Myers  <joseph@codesourcery.com>
2484
2485         * config/arm/arm.c (arm_builtin_va_list): New function.
2486         (arm_expand_builtin_va_start): Likewise.
2487         (arm_gimplify_va_arg_expr): Likewise.
2488         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
2489         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
2490         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
2491         (va_list_type): New variable.
2492         (arm_mangle_type): Mangle va_list_type appropriately.
2493
2494 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
2495
2496         PR middle-end/39157
2497         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
2498         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
2499         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
2500         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
2501         parameter to 1000 for -O1 by default.
2502         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
2503         parameter.
2504         * loop-invariant.c: Include params.h.
2505         (move_loop_invariants): Don't call move_single_loop_invariants on
2506         very large loops.
2507
2508 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
2509
2510         * calls.c (emit_library_call_value_1): Use slot_offset instead of
2511         offset when calculating bounds for indexing stack_usage_map.  Fixes
2512         a buffer overflow with certain target setups.
2513
2514 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
2515
2516         PR target/39240
2517         * calls.c (expand_call): Clear try_tail_call if caller and callee
2518         disagree in promotion of function return value.
2519
2520 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
2521
2522         PR target/39175
2523         * c-common.c (c_determine_visibility): If visibility changed and
2524         DECL_RTL has been already set, call make_decl_rtl to update symbol
2525         flags.
2526
2527 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
2528
2529         PR c++/39188
2530         * varasm.c (assemble_variable): Don't check DECL_NAME when
2531         globalizing a variable.
2532
2533 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
2534
2535         PR c/38483
2536         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
2537         expression before any __builtin_trap call.
2538         * c-typeck.c (build_function_call): Convert and check function
2539         arguments before generating a call to a trap.  Evaluate the
2540         function arguments before the trap.
2541
2542 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
2543
2544         PR target/39228
2545         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
2546         (UNSPEC_FXAM_MEM): New unspec.
2547         (fxam<mode>2_i387_with_temp): New insn and split pattern.
2548         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
2549         memory using fxam<mode>2_i387_with_temp to remove excess precision.
2550
2551 2009-02-19  Richard Guenther  <rguenther@suse.de>
2552
2553         PR tree-optimization/39207
2554         PR tree-optimization/39074
2555         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
2556         storedanything_tree): New.
2557         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
2558         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
2559         (build_succ_graph): Add edges from STOREDANYTHING to all
2560         non-direct nodes.
2561         (init_base_vars): Initialize STOREDANYTHING.
2562         (compute_points_to_sets): Free substitution info after
2563         building the succ graph.
2564         (ipa_pta_execute): Likewise.
2565
2566         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
2567         field.
2568         (do_ds_constraint): Do not add to special var or non-pointer
2569         field solutions.
2570         (type_could_have_pointers): Split out from ...
2571         (could_have_pointers): ... here.  For arrays use the element type.
2572         (create_variable_info_for): Initialize may_have_pointers.
2573         (new_var_info): Likewise.
2574         (handle_lhs_call): Make the HEAP variable unknown-sized.
2575         (intra_create_variable_infos): Use a type with pointers for
2576         PARM_NOALIAS, make it unknown-sized.
2577
2578 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
2579
2580         PR target/39224
2581         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
2582
2583 2009-02-18  Jason Merrill  <jason@redhat.com>
2584
2585         PR target/39179
2586         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
2587         value if DECL_EXTERNAL.
2588         * tree-sra.c (sra_walk_gimple_assign): Likewise.
2589         * target.h (gcc_target::binds_local_p): Clarify "module".
2590         * tree.h (TREE_PUBLIC): Clarify "module".
2591
2592 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
2593
2594         PR target/38891
2595         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
2596         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
2597
2598 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
2599
2600         PR target/39082
2601         * c.opt (Wabi): Support C and ObjC.
2602         (Wpsabi): New.
2603
2604         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
2605
2606         * config/i386/i386.c (classify_argument): Warn once about the ABI
2607         change when passing union with long double.
2608
2609         * doc/invoke.texi: Update -Wabi for warning psABI changes.
2610
2611 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
2612
2613         PR c/35447
2614         * c-parser.c (c_parser_compound_statement): Always enter and leave
2615         a scope.
2616
2617 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2618
2619         PR target/34587
2620         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
2621
2622 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
2623
2624         PR tree-optimization/36922
2625         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
2626         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
2627         Likewise.
2628
2629 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
2630
2631         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
2632         to 0 for EABI64.
2633
2634 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
2635
2636         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
2637
2638 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
2639
2640         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
2641         tree sharing.
2642
2643 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
2644             Richard Sandiford  <rdsandiford@googlemail.com>
2645
2646         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
2647         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
2648         (loongson_biadd): ...this.
2649
2650 2009-02-17  Richard Guenther  <rguenther@suse.de>
2651
2652         PR tree-optimization/39202
2653         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
2654         a var make sure to follow existing collapses.
2655
2656 2009-02-17  Richard Guenther  <rguenther@suse.de>
2657
2658         PR middle-end/39214
2659         * langhooks.c (lhd_print_error_function): Check for NULL block.
2660
2661 2009-02-17  Richard Guenther  <rguenther@suse.de>
2662
2663         PR tree-optimization/39204
2664         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
2665         of the PHI arg.
2666
2667 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
2668
2669         * config/soft-fp/double.h: Update from glibc CVS.
2670
2671 2009-02-17  Richard Guenther  <rguenther@suse.de>
2672
2673         PR tree-optimization/39207
2674         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
2675         strict-aliasing warnings for pointers pointing to NULL.
2676
2677 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
2678
2679         PR c/35446
2680         * c-parser.c (c_parser_braced_init): Call pop_init_level when
2681         skipping until next close brace.
2682
2683 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
2684
2685         PR target/37049
2686         * config/i386/i386.c (ix86_expand_push): Set memory alignment
2687         to function argument boundary.
2688
2689 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
2690
2691         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
2692         in the lea_add. Reload eventually constraints it properly.
2693         * config/picochip/constraints.md : Remove the target constraint
2694         "b", since it is not needed anymore.
2695
2696 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
2697
2698         * gthr-dce.h: Uglify function parameter and local variable names.
2699         * gthr-gnat.h: Likewise.
2700         * gthr-mipssde.h: Likewise.
2701         * gthr-nks.h: Likewise.
2702         * gthr-posix95.h: Likewise.
2703         * gthr-posix.h: Likewise.
2704         * gthr-rtems.h: Likewise.
2705         * gthr-single.h: Likewise.
2706         * gthr-solaris.h: Likewise.
2707         * gthr-tpf.h: Likewise.
2708         * gthr-vxworks.h: Likewise.
2709         * gthr-win32.h: Likewise.
2710
2711 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
2712
2713         PR target/39196
2714         * config/i386/i386.md: Restrict the new peephole2 to move
2715         between MMX/SSE registers.
2716
2717 2009-02-15  Richard Guenther  <rguenther@suse.de>
2718
2719         Revert
2720         2009-02-13  Richard Guenther  <rguenther@suse.de>
2721
2722         * configure.ac: Enable LFS.
2723         * configure: Re-generate.
2724         * config.in: Likewise.
2725
2726 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2727
2728         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
2729         spu_srqwbyte, spu_srqwbytebc): Define.
2730         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
2731         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
2732         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
2733         "shrqby_<mode>"): New insn-and-split patterns.
2734         * config/spu/spu.c (expand_builtin_args): Determine and return
2735         number of operands using spu_builtin_description data.
2736         (spu_expand_builtin_1): Use it.
2737
2738 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
2739
2740         PR target/38056
2741         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
2742         TARGET_CONST_GP.
2743
2744 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
2745
2746         PR target/39149
2747         * config/i386/i386.c (override_options): Correct warning
2748         messages for -malign-loops, -malign-jumps and -malign-functions.
2749
2750 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
2751
2752         PR target/39152
2753         * config/i386/i386.md: Restrict the new peephole2 to move
2754         between the general purpose registers.
2755
2756 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
2757
2758         PR target/39162
2759         * config/i386/i386.c (type_natural_mode): Add a new argument.
2760         Return the original mode and warn ABI change if vector size is 32byte.
2761         (function_arg_advance): Updated.
2762         (function_arg): Likewise.
2763         (ix86_function_value): Likewise.
2764         (ix86_return_in_memory): Likewise.
2765         (ix86_sol10_return_in_memory): Likewise.
2766         (ix86_gimplify_va_arg): Likewise.
2767         (function_arg_32): Don't warn ABX ABI change here.
2768         (function_arg_64): Likewise.
2769
2770 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
2771
2772         * loop-iv.c (implies_p): In the final case, test that operands 0
2773         of the two comparisons match.
2774
2775         * config/bfin/bfin.c (find_prev_insn_start): New function.
2776         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
2777         (find_next_insn_start): Move.
2778
2779 2009-02-13  Richard Guenther  <rguenther@suse.de>
2780
2781         * configure.ac: Enable LFS.
2782         * configure: Re-generate.
2783         * config.in: Likewise.
2784
2785 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
2786
2787         PR c/35444
2788         * c-parser.c (c_parser_parms_list_declarator): Discard pending
2789         sizes on syntax error after some arguments have been parsed.
2790
2791 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
2792
2793         * doc/invoke.texi (-fira): Remove.
2794
2795 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
2796
2797         * caller-save.c: Replace regclass.c with reginfo.c in comments.
2798         * recog.c: Likewise.
2799         * rtl.h: Likewise.
2800
2801 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
2802
2803         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
2804         (umul_ppmm): Likewise.
2805         (count_leading_zeros): Likewise.
2806         (count_trailing_zeros): Likewise.
2807         (UMUL_TIME): Likewise.
2808
2809 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
2810
2811         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
2812         soft-fp/t-softfp to tmake_file.
2813
2814         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
2815         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
2816         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
2817         IA64_BUILTIN_INFQ]: New.
2818         (ia64_init_builtins): Initialize __builtin_infq,
2819         __builtin_fabsq and __builtin_copysignq if not HPUX.
2820         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
2821         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
2822
2823         * config/ia64/lib1funcs.asm (__divtf3): Define only if
2824         SHARED is defined.
2825         (__fixtfti): Likewise.
2826         (__fixunstfti): Likewise.
2827         (__floattitf): Likewise.
2828
2829         * config/ia64/libgcc-glibc.ver: New.
2830         * config/ia64/t-fprules-softfp: Likewise.
2831         * config/ia64/sfp-machine.h: Likewise.
2832
2833         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
2834         (LIBGCC2_TF_CEXT): Likewise.
2835         (TF_SIZE): Likewise.
2836         (TARGET_INIT_LIBFUNCS): Likewise.
2837
2838         * config/ia64/t-glibc (SHLINB_MAPFILES):
2839         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
2840
2841 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
2842
2843         * config/i386/i386.c (construct_container): Rewrite processing
2844         BLKmode with X86_64_SSE_CLASS.
2845
2846 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
2847
2848         PR target/39152
2849         * config/i386/i386.md: Replace simplify_replace_rtx with
2850         replace_rtx in the new peephole2.
2851
2852 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
2853
2854         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
2855         loop unrolling do not happen at -O2.
2856
2857 2009-02-12  Michael Matz  <matz@suse.de>
2858
2859         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
2860
2861 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
2862
2863         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
2864         for -g3.
2865
2866 2009-02-12  Ben Elliston  <bje@au.ibm.com>
2867
2868         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
2869         patterns when updating the back chain.  Missed in the 2009-02-10
2870         change.
2871
2872 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
2873
2874         * doc/extend.texi (Decimal Floating Types): Update identifier of
2875         draft TR and list of missing support.
2876
2877 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
2878
2879         PR middle-end/39154
2880         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
2881         bit to variable length decl's flags, add it also to its
2882         pointer replacement variable.
2883
2884 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
2885             Jakub Jelinek  <jakub@redhat.com>
2886
2887         PR target/39118
2888         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
2889         (memory_blockage): New expander.
2890         (*memory_blockage): New insn pattern.
2891         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
2892         instead of general blockage at the end of function prologue when
2893         frame pointer is used to access red zone area.  Do not emit blockage
2894         when profiling, it is emitted in generic code.
2895         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
2896         function epilogue when frame pointer is used to access red zone area.
2897
2898 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
2899
2900         PR target/38824
2901         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
2902         by arithmetic with memory operands.
2903         * config/i386/predicates.md (commutative_operator): New.
2904
2905 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
2906
2907         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
2908         bulleted lists.
2909
2910 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
2911
2912         * alias.h (record_alias_subset): Declare.
2913         * alias.c (record_alias_subset): Make global.
2914
2915 2009-02-10  Nick Clifton  <nickc@redhat.com>
2916
2917         * tree-parloops.c: Change license to GPLv3.
2918         * ipa-struct-reorg.c: Change license to GPLv3.
2919         * ipa-struct-reorg.h: Change license to GPLv3.
2920
2921 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
2922
2923         PR c/39084
2924         * c-decl.c (start_struct): Return NULL on error.
2925
2926 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
2927
2928         PR middle-end/39124
2929         * cfgloopmanip.c (remove_path): Call remove_bbs after
2930         cancel_loop_tree, not before it.
2931
2932         PR target/39139
2933         * function.h (struct function): Add has_local_explicit_reg_vars bit.
2934         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
2935         VAR_DECLs were seen.
2936         * tree-ssa-live.c (remove_unused_locals): Recompute
2937         cfun->has_local_explicit_reg_vars.
2938         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
2939         copies or clearings if cfun->has_local_explicit_reg_vars.
2940
2941 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
2942
2943         PR target/39118
2944         * config/i386/i386.c (expand_prologue): Emit blockage at the end
2945         of function prologue when frame pointer is used to access
2946         red zone area.
2947
2948 2009-02-10  Richard Guenther  <rguenther@suse.de>
2949
2950         PR middle-end/39127
2951         * gimplify.c (gimple_regimplify_operands): Always look if
2952         we need to create a temporary.
2953
2954 2009-02-10  Richard Guenther  <rguenther@suse.de>
2955
2956         PR tree-optimization/39132
2957         * tree-loop-distribution.c (todo): New global var.
2958         (generate_memset_zero): Trigger TODO_rebuild_alias.
2959         (tree_loop_distribution): Return todo.
2960
2961 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
2962
2963         PR target/39119
2964         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
2965         (x86_64_reg_class_name): Removed.
2966         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
2967         first one isn't X86_64_SSE_CLASS or any other ones aren't
2968         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
2969         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
2970         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
2971         and 3 X86_64_SSEUP_CLASS.
2972         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
2973         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
2974
2975 2009-02-10  Ben Elliston  <bje@au.ibm.com>
2976
2977         * config/rs6000/rs6000.md (allocate_stack): Always use an update
2978         form instruction to update the stack back chain word, even if the
2979         user has disabled the generation of update instructions.
2980         (movdi_<mode>_update_stack): New.
2981         (movsi_update_stack): Likewise.
2982         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
2983         always use an update form instruction to update the stack back
2984         chain word.
2985
2986 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
2987
2988         PR middle-end/38953
2989         * graphite.c (if_region_set_false_region): After moving a region in
2990         the false branch of a condition, remove the empty dummy basic block.
2991         (gloog): Remove wrong fix for PR38953.
2992
2993 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2994
2995         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
2996         generation due to implicit sign extension.
2997
2998 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
2999
3000         PR middle-end/38981
3001         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
3002         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
3003
3004 2009-02-09  Richard Guenther  <rguenther@suse.de>
3005
3006         PR middle-end/35202
3007         * convert.c (convert_to_real): Disable (float)fn((double)x)
3008         to fnf(x) conversion if errno differences may occur and
3009         -fmath-errno is set.
3010
3011 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
3012
3013         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
3014         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
3015         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
3016
3017 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
3018
3019         PR c/35434
3020         * c-common.c (handle_alias_attribute): Disallow attribute for
3021         anything not a FUNCTION_DECL or VAR_DECL.
3022
3023 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
3024
3025         PR c/39035
3026         * real.c (do_compare): Special-case compare of zero against
3027         decimal float value.
3028
3029 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
3030
3031         PR c/36432
3032         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
3033         as indicating flexible array members unless the field itself is
3034         being declarared as the incomplete array.
3035
3036 2009-02-06  Jan Hubicka  <jh@suse.cz>
3037
3038         PR tree-optimization/38844
3039         * ipa-inline.c (try_inline): Stop inlining recursion when edge
3040         is already inlined.
3041
3042 2009-02-06  Richard Guenther  <rguenther@suse.de>
3043
3044         PR middle-end/38977
3045         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
3046         fork because we may expand it as __gcov_fork.
3047
3048 2009-02-06  Nick Clifton  <nickc@redhat.com>
3049
3050         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
3051
3052 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
3053
3054         PR tree-optimization/35659
3055         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
3056         vn_phi_eq): Shortcut if hashcode does not match.
3057         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
3058         NULL operands.
3059         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
3060         and avoid iterative_hash_expr.
3061         (FOR_EACH_VALUE_ID_IN_SET): New.
3062         (value_id_compare): Remove.
3063         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
3064         sort expressions by value id.
3065
3066 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
3067
3068         PR target/38991
3069         * config/sh/predicates.md (general_movsrc_operand): Don't check
3070         the subreg of system registers here.
3071
3072 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
3073
3074         PR c++/39106
3075         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
3076         on the copied decl.
3077
3078 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
3079
3080         PR rtl-optimization/39110
3081         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
3082         addresses, not aligned ones.
3083
3084 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
3085             Richard Guenther  <rguenther@suse.de>
3086
3087         PR tree-optimization/39100
3088         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
3089         comment says and add edges.
3090
3091 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
3092
3093         PR c/35435
3094         * c-common.c (handle_tls_model_attribute): Ignore attribute for
3095         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
3096
3097 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de> 
3098
3099         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
3100         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
3101         register_bb_in_sese, new_sese, free_sese): Moved.
3102         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
3103         outermost_loop_in_scop, build_scop_iteration_domain,
3104         expand_scalar_variables_ssa_name, get_vdef_before_scop,
3105         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
3106         Use loop_in_sese_p instead of loop_in_scop_p.
3107         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
3108         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
3109         (scopdet_basic_block_info): Fix bug in scop detection.
3110         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
3111         eq_loop_to_cloog_loop): Remove.
3112         (nb_loops_around_loop_in_scop, nb_loop
3113         ref_nb_loops): Moved here...
3114         * graphite.h (ref_nb_loops): ... from here.
3115         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
3116         (loop_domain_dim, loop_iteration_vector_dim): Remove.
3117         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
3118         * testsuite/gcc.dg/graphite/scop-19.c: New
3119
3120 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
3121             Hans-Peter Nilsson  <hp@axis.com>
3122
3123         PR rtl-optimization/37889
3124         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
3125         Move offset handling from PLUS to before the switch.  Use new
3126         arguments when considering SYMBOL_REFs too.
3127         (rtx_addr_can_trap_p): Pass dummy offset and size.
3128         (enum may_trap_p_flags): Remove.
3129         (may_trap_p_1): Pass size from MEM_SIZE.
3130
3131         PR rtl-optimization/38921
3132         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
3133         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
3134         * rtlanal.c (may_trap_after_code_motion_p): Delete.
3135         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
3136
3137 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
3138
3139         AVX Programming Reference (January, 2009)
3140         * config/i386/sse.md (*vpclmulqdq): New.
3141
3142 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
3143
3144         PR tree-optimization/38977
3145         PR gcov-profile/38292
3146         * calls.c (special_function_p): Disregard __builtin_ prefix.
3147
3148 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
3149
3150         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
3151         non-indexable addresses even before reload.
3152
3153 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
3154
3155         PR c/29129
3156         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
3157         as having variable size.  Do not give an error for unnamed
3158         parameters with [*] declarators.  Give a warning for type names
3159         with [*] declarators and mark them as variable size.
3160         * c-parser.c (c_parser_sizeof_expression): Do not give an error
3161         for sizeof applied to [*] type names.
3162
3163 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3164
3165         PR C++/36607
3166         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
3167
3168 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
3169
3170         * gcc.c (process_command): Update copyright notice dates.
3171         * gcov.c (print_version): Likewise.
3172         * gcov-dump.c (print_version): Likewise.
3173         * mips-tfile.c (main): Likewise.
3174         * mips-tdump.c (main): Likewise.
3175
3176 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
3177
3178         PR c/35433
3179         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
3180         for composite type involving a zero-length array type.
3181
3182 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
3183
3184         PR target/35318
3185         * function.c (match_asm_constraints_1): Skip over
3186         initial optional % in the constraint.
3187
3188         PR inline-asm/39059
3189         * c-parser.c (c_parser_postfix_expression): If fixed point is not
3190         supported, don't accept FIXED_CSTs.
3191         * c-decl.c (finish_declspecs): Error if fixed point is not supported
3192         and _Sat is used without _Fract/_Accum.  Set specs->type to
3193         integer_type_node for cts_fract/cts_accum if fixed point is not
3194         supported.
3195
3196 2009-02-02  Catherine Moore  <clm@codesourcery.com>
3197
3198         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
3199
3200 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
3201
3202         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
3203         (ABI_HAS_64BIT_SYMBOLS): Use it.
3204         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
3205
3206 2009-02-02  Paul Brook  <paul@codesourcery.com>
3207
3208         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
3209
3210 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
3211
3212         PR inline-asm/39058
3213         * recog.h (asm_operand_ok): Add constraints argument.
3214         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
3215         recurse on matching constraint.
3216         (check_asm_operands): Pass constraints as 3rd argument to
3217         asm_operand_ok.  Don't look up matching constraint here.
3218         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
3219         to asm_operand_ok.
3220
3221 2009-02-02  Ben Elliston  <bje@au.ibm.com>
3222
3223         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
3224         TARGET_NARROW_VOLATILE_BITFIELD macro names.
3225
3226 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3227
3228         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
3229         information.  Remove some obsolete information.  Reorganize.
3230
3231         * config/pa/fptr.c: Revert license to GPL 2.
3232         * config/pa/milli64.S: Likewise.
3233
3234 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
3235
3236         PR target/38904
3237         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
3238         LIBRARY name in, instead of hard-coding it.
3239         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
3240         extra target make frag to tmake_files according to EH model.
3241         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
3242         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
3243         frags that define makefile variable EH_MODEL appropriately.
3244         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
3245         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
3246         to "-sjlj" according to type of EH configured.
3247         (LIBGCC_SONAME):  Concatenate it to shared library base name.
3248         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
3249         to "_sjlj" according to type of EH configured.
3250         (LIBGCC_SONAME):  Concatenate it to shared library base name.
3251         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
3252         (SHLIB_LINK):  Add missing semicolon to if-else construct.
3253         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
3254         string value of "pe_dll" command-line option.
3255         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
3256         (SHLIB_SONAME):  Use it when overriding t-cygming default.
3257         (SHLIB_IMPLIB):  Override t-cygming default.
3258         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
3259         string value of "pe_dll" command-line option.
3260
3261 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
3262
3263         PR target/38952
3264         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
3265         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
3266
3267 2009-01-31  Richard Guenther  <rguenther@suse.de>
3268
3269         PR tree-optimization/38937
3270         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
3271         computing the transitive closure.
3272
3273 2009-01-30  Richard Guenther  <rguenther@suse.de>
3274
3275         PR tree-optimization/39041
3276         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
3277         Propagate variable indices only if the types match for this stmt.
3278
3279 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
3280
3281         PR target/39013
3282         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
3283         inline but never defined.
3284
3285 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
3286
3287         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
3288         (*insv_h_di_reg_extimm): New insn.
3289         (*insv_l<mode>_reg_extimm): New insn.
3290
3291 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
3292
3293         * config/picochip/picochip.c (flag_conserve_stack): set
3294         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
3295         fconserve-stack. Reduce call-overhead used by inliner.
3296
3297 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
3298
3299         PR/38157
3300         * common.opt (flag_conserve_stack): Initialised to zero.
3301
3302 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
3303
3304         PR/39002
3305         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
3306         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
3307         method.
3308
3309 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
3310
3311         * ira-color.c (allocno_reload_assign): Update comments.
3312         * regmove.c (regmove_optimize): Likewise.
3313
3314         * ra.h: Removed.
3315
3316 2009-01-29  Robert Millan  <rmh@aybabtu.com>
3317
3318         * gcc/config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
3319         * gcc/config/i386/kopensolaris-gnu.h: New file.  Undefine
3320         `MD_UNWIND_SUPPORT'.
3321         * gcc/config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
3322
3323 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
3324
3325         PR tree-optimization/39007
3326         * tree-loop-distribution.c (generate_builtin): Use
3327         recompute_dominator to compute the immediate dominator of the
3328         basic block just after the loop.
3329
3330 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3331
3332         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
3333         (ASM_OUTPUT_DWARF_PCREL): Define.
3334
3335 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
3336
3337         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
3338         * doc/passes.texi: Remove entries about regclass, local-alloc, and
3339         global.  Modify entries about regmove and IRA.
3340
3341         * ra-conflict.c: Remove the file.
3342
3343         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
3344
3345         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
3346         (pass_regclass_init): Rename to pass_reginfo_init.
3347
3348         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
3349
3350         * toplev.h (flag_ira): Remove.
3351
3352         * caller-save.c (setup_save_areas): Remove flag_ira.
3353
3354         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
3355
3356         * global.c: Remove the file.
3357
3358         * opts.c (decode_options): Remove flag_ira.
3359
3360         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
3361
3362         * regmove.c: Modify file description.
3363         (find_use_as_address, try_auto_increment): Define them only if
3364         AUTO_INC_DEC is defined.
3365         (replacement_quality, replace_in_call_usage, fixup_match_1,
3366         stable_and_no_regs_but_for_p): Remove.
3367         (reg_set_in_bb): Make it static.
3368         (regmove_optimize): Remove flag_ira and code which worked for
3369         !flag_ira.
3370
3371         * local-alloc.c: Remove the file.
3372
3373         * common.opt (fira): Remove.
3374
3375         * ira.c: Include except.h.
3376         (eliminable_regset): Move from global.c.
3377         (mark_elimination): Ditto.  Remove flag_ira.
3378         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
3379         equiv_mem_modified, validate_equiv_mem_from_store,
3380         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
3381         contains_replace_regs, memref_referenced_p, memref_used_between_p,
3382         no_equiv, recorded_label_ref): Move from local-alloc.c.
3383         (update_equiv_regs): Ditto.  Make it static.
3384         (print_insn_chain, print_insn_chains): Move it from global.c.
3385         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
3386         (build_insn_chain): Ditto.  Make it static.
3387         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
3388         Rename to init_live_subregs.
3389         (gate_ira): Remove flag_ira.
3390
3391         * regclass.c: Rename reginfo.c.  Change file description.
3392         (FORBIDDEN_INC_DEC_CLASSES): Remove.
3393         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
3394         (init_reg_sets_1): Remove code for evaluation of
3395         reg_class_superclasses and losing_caller_save_reg_set.
3396         (init_regs): Remove init_reg_autoinc.
3397         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
3398         ok_for_base_p_nonstrict): Remove.
3399         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
3400         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
3401         corresponding entries.
3402         (dump_regclass, record_operand_costs, scan_one_insn,
3403         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
3404         record_address_regs, auto_inc_dec_reg_p): Remove.
3405         (gt-regclass.h): Rename to gt-reginfo.h.
3406
3407         * rtl.h (dump_global_regs, retry_global_alloc,
3408         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
3409
3410         * Makefile.in (RA_H): Remove.
3411         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
3412         Rename regclass.o to reginfo.o.
3413         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
3414         gt-reginfo.h.
3415         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
3416         (GTFILES): Rename regclass.c to reginfo.c.
3417
3418         * passes.c (init_optimization_passes): Remove pass_local_alloc and
3419         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
3420
3421         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
3422         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
3423         Remove flag_ira.
3424         (finish_spills): Ditto.  Remove code for !flag_ira.
3425         
3426 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
3427
3428         PR middle-end/35854
3429         * doc/invoke.texi (rtl debug options): Complete rewrite.
3430         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
3431         to auto_inc_dec".
3432         * mode-switching.c (pass_mode_switching): Rename pass from
3433         "mode-sw" to "mode_sw".
3434         * except.c (pass_convert_to_eh_ranges): Rename pass from
3435         "eh-ranges" to "eh_ranges".
3436         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
3437         to "subreg1".
3438                 
3439         
3440 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
3441             Alexander Monakov  <amonakov@ispras.ru>
3442
3443         PR middle-end/38857
3444         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
3445         register.
3446         (move_exprs_to_boundary): Change return type and pass through
3447         should_move from move_op.  Relax assert.  Update usage ...
3448         (schedule_expr_on_boundary): ... here.  Use should_move instead of
3449         cant_move.
3450         (move_op_orig_expr_found): Indicate that insn was disconnected from
3451         stream.
3452         (code_motion_process_successors): Do not call after_merge_succs
3453         callback if original expression was not found when traversing any of
3454         the branches.
3455         (code_motion_path_driver): Change return type.  Update prototype.
3456         (move_op): Update comment.  Add a new parameter (should_move).  Update
3457         prototype.  Set *should_move based on indication provided by
3458         move_op_orig_expr_found.