OSDN Git Service

2008-05-07 Kai Tietz <kai,tietz@onevision.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-05-08  Kai Tietz  <kai,tietz@onevision.com>
2
3         * calls.c (compute_argument_block_size): Add argument tree fndecl.
4         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
5         (emit_library_call_value_1): Add new variable fndecl initialized by
6         NULL_TREE. It should be the decl type of orgfun, but this information
7         seems not to be available here, so it uses the default calling abi.
8         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
9         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
10         by TARGET_RETURN_IN_MEMORY.
11         * config/i386/i386-interix.h: Likewise.
12         * config/i386/i386.h: Likewise.
13         * config/i386/i386elf.h: Likewise.
14         * config/i386/ptx4-i.h: Likewise.
15         * config/i386/sol2-10.h: Likewise.
16         * config/i386/sysv4.h: Likewise.
17         * config/i386/vx-common.h: Likewise.
18         * config/cris/cris.h: Removed #if 0 clause.
19         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype
20         argument.
21         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
22         argument.
23         (ix86_sol10_return_in_memory): Likewise.
24         (ix86_i386elf_return_in_memory): New.
25         (ix86_i386interix_return_in_memory): New.
26         * config/mt/mt-protos.h (mt_return_in_memory): New.
27         * config/mt/mt.c: Likewise.
28         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
29         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
30         * config/bfin/bfin.h: Likewise.
31         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
32         argument.
33         * config/bfin/bfin.c: Likewise.
34         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
35         * config/alpha/unicosmk.h: Likewise.
36         * config/i386/cygming.h: Likewise.
37         * config/iq2000/iq2000.h: Likewise.
38         * config/mips/mips.h: Likewise.
39         * config/mn10300/mn10300.h: Likewise.
40         * config/rs6000/rs6000.h: Likewise.
41         * config/score/score.h: Likewise.
42         * config/spu/spu.h: Likewise.
43         * config/v850/v850.h: Likewise.
44         * defaults.h: Likewise.
45         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
46         * expr.c (emit_block_move): Adjust use of OUTGOING_REG_PARM_STACK_SPACE.
47         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
48         OUTGOING_REG_PARM_STACK_SPACE.
49         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
50
51 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
52
53         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
54         on OMP_RETURN for OMP_FOR.
55
56         PR debug/35896
57         * dwarf2out.c (dw_expand_expr, common_check): Removed.
58         (fortran_common): New function.
59         (gen_variable_die): Call fortran_common instead of common_check,
60         adjust for it returning tree instead of rtx.  Formatting.
61
62 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
63
64         PATCH rtl/7335
65         PATCH rtl/33826
66         * see.c (see_copy_insn): Copy new pure const attributes for new
67         call.
68         * c-decl.c (merge_decls): Ditto.
69         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
70         to RTL_CONST_OR_PURE_CALL_P.
71         * tree.c (define_local_buitin): Rename DECL_IS_PURE to
72         DECL_PURE_P.  Initialized DECL_LOOPING_CONST_PURE.
73         (process_call_operands): Set tree_side_effects properly.
74         * tree.h (TREE_READONLY_DECL_P): Removed.
75         (DECL_IS_PURE): Renamed to DECL_PURE_P.
76         (DECL_LOOPING_OR_CONST_P): New macro.
77         (struct tree_function_decl): Added looping_const_or_pure_p.
78         (ECF_*) Renumbered.
79         (ECF_LOOPING_OR_CONST_P): New macro,
80         * rtlanal.c (pure_const_p): Removed.
81         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
82         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
83         to RTL_CONST_CALL_P.
84         * ipa-pure-const.c (pure_const_state_e): Added looping field.
85         (check_decl, check_tree, check_call, scan_function): Initialize
86         looping.
87         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
88         (static_execute): Set looping true for recursive functions.
89         Undo setting state to IPA_NEITHER for recursive functions.
90         * cse.c (cse_insn): 
91         * ifcvt.c (noce_can_store_speculate_p): Changed
92         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
93         RTL_CONST_OR_PURE_CALL_P.
94         * dse.c (scan_insn): Ditto.
95         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
96         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
97         RTL_CONST_OR_PURE_CALL_P.
98         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
99         pure_call_p to RTL_CONST_CALL_P.
100         * gimplify.c (gimplify_call_expr): Clear side effects for
101         non-looping pure and constant calls.
102         * calls.c (emit_call_1): Set rtl flags from ecf flags.
103         (flags_from_decl_or_type): Set ecf flags from decl flags.
104         (initialize_argument_information): Turn off
105         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
106         Change const to pure if callee_copies is true rather than just
107         turning off const.
108         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
109         way of marking pure calls.
110         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
111         Remove hack that was supposed to fix pr7335 and remove old
112         way of marking pure calls.
113         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
114         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
115         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
116         RTL_CONST_OR_PURE_CALL_P.
117         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
118         * loop-invariant.c (find_exits, find_invariant_bb): Changed
119         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
120         * sched-deps.c (schedule_analyze): Ditto.
121         * rtl.h (struct rtx_def): Use call field, unchanging field, and
122         return_val field of calls to represent pure and const function
123         info.
124         (CONST_OR_PURE_CALL_P): Deleted macro.
125         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
126         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
127         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
128         TREE_READONLY.
129         * tree-optimize.c (execute_fixup_cfg): Added test for
130         ECF_LOOPING_CONST_OR_PURE.
131         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
132         DECL_PURE_P.
133         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
134         effects for looping pure or const calls.
135         (verify_gimple_expr): Added verification code. 
136         * config/alpha/alpha.c (alpha_legitimize_address,
137         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
138         RTL_CONST_CALL_P.
139         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
140         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
141         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
142         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
143         RTL_CONST_OR_PURE_CALL_P.
144         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
145         and const calls to be deleted.
146
147
148 2008-05-08  Uros Bizjak  <ubizjak@gmail.com>
149
150         PR target/35714
151         * config/i386/mmx.md (mmx_subv2sf3): New expander.
152         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
153         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
154         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
155         to handle nonimmediate operands.
156         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
157         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
158         to handle nonimmediate operands.
159         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
160         (mmx_pmulhrwv4hi3): New expander.  Use
161         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
162         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
163         (sse2_umulv1siv1di3): New expander.  Use
164         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
165         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
166         (mmx_eq<mode>3): New expander.  Use
167         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
168         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
169         (mmx_uavgv8qi3): New expander.  Use
170         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
171         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
172         (mmx_uavgv4hi3): New expander.  Use
173         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
174
175         * config/i386/sse.md
176         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
177         to handle nonimmediate operands.
178         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
179         to handle nonimmediate operands.
180         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
181         to handle nonimmediate operands.
182         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
183         to handle nonimmediate operands.
184         (sse2_unpckhpd_exp): New expander.  Use
185         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
186         (sse2_unpcklpd_exp): New expander.  Use
187         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
188         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
189         to handle nonimmediate operands.
190         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
191         to handle nonimmediate operands.
192         (*sse2_<plusminus_insn><mode>3): Rename from
193         sse2_<plusminus_insn><mode>3 insn pattern.
194         (sse2_<plusminus_insn><mode>3): New expander.  Use
195         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
196         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
197         (sse2_umulv2siv2di3): New expander.  Use
198         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
199         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
200         (sse4_1_mulv2siv2di3): New expander.  Use
201         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
202         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
203         (sse2_pmaddwd): New expander.  Use
204         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
205         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
206         (sse2_eq<mode>3): New expander.  Use
207         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
208         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
209         (sse4_1_eqv2di3): New expander.  Use
210         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
211         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
212         (sse2_uavgv16qi3): New expander.  Use
213         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
214         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
215         (sse2_uavgv16qi3): New expander.  Use
216         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
217         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
218         (sse2_uavgv8hi3): New expander.  Use
219         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
220         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
221         (ssse3_pmulhrswv8hi3): New expander.  Use
222         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
223         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
224         (ssse3_pmulhrswv4hi3): New expander.  Use
225         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
226
227         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
228         (<sse>_vmmul<mode>3): Ditto.
229         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
230         (divv2df3): Ditto.
231         (ssse3_pmaddubsw128): Use register_operand for operand 1.
232         (ssse3_pmaddubsw): Ditto.
233
234         * config/i386/i386.c (struct_builtin_description)
235         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
236         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
237         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
238         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
239         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
240         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
241         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
242         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
243         (ix86_fixup_binary_operands): Assert that src1
244         and src2 must have the same mode when swapped.
245         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
246         and ix86_binary_operator_ok.  Do not force operands in registers
247         when optimizing.
248
249 2008-05-07  Jan Hubicka  <jh@suse.cz>
250
251         * cgraph.c (dump_cgraph_node): Update.
252         * cgraph.h (cgraph_local_info): Break out inline summary.
253         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
254         hook.
255         * ipa-inline (inline_summary): New accestor function.
256         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
257         cgraph_decide_inlining, compute_inline_parameters): Update.
258         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
259
260 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
261
262         Cleanup ColdFire scheduling support and add V4 pipeline model.
263
264         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
265         (define_attr cpu): Add cfv4 value.
266         (define_attr type, define_attr type1): Merge into a single 'type'
267         attribute.  Update all uses.
268         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
269         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
270         Update all uses.
271         (define_attr opx_mem, define_attr opy_mem): Remove.
272         (define_attr op_mem): Clean up, update comment.
273         (define_attr size): Use specific values instead of general int.
274         (define_attr guess, define_attr split): Remove.  Update all uses.
275         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
276         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
277         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
278         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
279         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
280         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
281         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
282         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
283         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
284         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
285         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
286         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
287         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
288         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
289         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
290         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
291         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
292         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
293         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
294         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
295         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
296         Update or set attributes.
297         (stack_tie): New fake instruction.
298
299         * config/m68k/m68k.h (TUNE_CFV4): New macro.
300         (m68k_sched_attr_size): Update declaration.
301         (m68k_sched_attr_type2): Remove.
302         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
303         Declare new bypass predicates.
304
305         * config/m68k/m68k.c (m68k_sched_issue_rate,
306         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
307         implementations.
308         (TARGET_SCHED_ISSUE_RATE,
309         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
310         (override_options): Handle scheduling for ColdFire V4 core.
311         (m68k_expand_prologue): Emit stack_tie.
312         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
313         'OP_TYPE_FPN'.  Update all uses.
314         (sched_guess_p): Remove.
315         (sched_address_type): Handle symbolic addresses.
316         (sched_get_operand): New static function.
317         (sched_operand_type): Merge into sched_attr_op_type.
318         (sched_attr_op_type): Handle FP registers, handle quick constants,
319         update.
320         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
321         (m68k_sched_attr_size): Update.  Move logic to ...
322         (sched_get_attr_size_int): New static function.
323         (sched_get_opxy_mem_type): New static function.
324         (m68k_sched_attr_op_mem): Update.
325         (m68k_sched_attr_type2): Remove.
326         (sched_cfv4_bypass_data): New static variable.
327         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
328         (m68k_sched_issue_rate): Implement scheduler hook.
329         (struct _sched_ib: enabled_p): New field.
330         (m68k_sched_variable_issue): Update.  Handle V4.
331         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
332         sched_dump_class_func_t, sched_dump_split_class,
333         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
334         sched_dump_dfa_class, m68k_sched_dump): Remove.
335         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
336         hook.
337         (m68k_sched_init_global): Remove statisctics dumping, introduce
338         sanity check that all instructions have pipeline reservations.  Handle
339         ColdFire V4 core.
340         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
341         Handle ColdFire V4 core.
342         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
343         New static functions.
344         (m68k_sched_address_bypass_p): New bypass predicate.
345         (sched_get_indexed_address_scale): New static function.
346         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
347
348         * cf.md: Update comments.
349         (define_attr type2): Remove.  Use 'type' attribute instead.
350         Update all uses.
351         (cf_ib): Rename to cfv123_ib.  Update all uses.
352         (cf_oep): Rename to cfv123_oep.  Update all uses.
353         (cf_chr): Rename to cfv123_chr.  Update all uses.
354         (cf_mem): Rename to cfv123_mem.  Update all uses.
355         (cf_mac): Move to more appropriate place.
356         (cfv123_guess): New automaton and cpu_unit.
357         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
358         Update uses of 'size' attribute.  Handle before reload scheduling.
359         (cfv123_guess): New dummy reservation for unhandled instructions.
360         (cfv4_*): Pipeline description of ColdFire V4 core.
361         (ignore): New reservation to handle 'ignore' type.
362
363 2008-05-07  Ian Lance Taylor  <iant@google.com>
364
365         PR middle-end/36013
366         * gimplify.c (find_single_pointer_decl_1): Don't look through
367         indirections.
368         (find_single_pointer_decl): Adjust comments.
369
370 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
371
372         PR middle-end/36137
373         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
374         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
375
376         PR middle-end/36106
377         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
378         integral type rather than floating point, then VIEW_CONVERT_EXPR
379         to the floating point type.
380
381 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
382
383         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
384         TFmode op0 to register.
385
386 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
387
388         * c-decl.c (grokdeclarator): Comment typo.
389
390 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
391
392         * tree-flow.h: Remove prototype for computed_goto_p.
393         * tree-cfg.c (computed_goto_p): Make static.
394
395 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
396
397         PR target/35657
398         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
399         (contains_aligned_value_p): This.  Handle _Decimal128.
400         (ix86_function_arg_boundary): Only align _Decimal128 to its
401         natural boundary and handle it properly.
402
403 2008-05-06  Martin Jambor  <mjambor@suse.cz>
404
405         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
406         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
407         (ipcp_method_set_orig_node): Removed.
408         (ipcp_cval_get_cvalue_type): Removed.
409         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
410         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
411         (ipcp_cval_set_cvalue_type): Removed.
412         (ipcp_cval_get_cvalue): Removed.
413         (ipcp_cval_set_cvalue): Removed.
414         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
415         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
416         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
417         (ipcp_cval_meet): Renamed to ipa_lattice_meet
418         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
419         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
420         (ipcp_get_ith_lattice): Changed parameters.
421         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
422         (ipcp_lattice_from_jfunc): Changed parameters.
423         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
424         (ipcp_method_cval_print): Added temporary variable info.
425         (ipcp_redirect): Removed already unused local variable caller.
426         (ipcp_redirect): New temporary variable orig_callee_info
427         (ipcp_redirect): Removed newly unused local variable callee.
428         (ipcp_redirect): Removed (a bit confusing) local variable type.
429         (ipcp_insert_stage): Added local variable info.
430         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
431         renamed too
432         (ipcp_formal_create): Removed.
433         (ipcp_method_cval_set): Removed.
434         (ipcp_propagate_stage): Renamed lattice variables.
435         (ipcp_method_cval_set_cvalue_type): Removed.
436         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
437         (ipcp_print_all_lattices): Changed printed strings to refer to 
438         lattices rather than cvals.
439         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
440         (ipcp_propagate_const): Changed formal parameters.
441         (build_const_val): Changed formal parameters.
442         (ipcp_insert_stage): Removed useless variable cvalue
443         (build_const_val): Changed formal parameters.
444         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
445         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
446         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
447         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
448         (ipcp_print_func_profile_counts): Changed string from "method" to 
449         "function"
450         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
451         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
452         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
453         (ipcp_structures_print): Renamed to ipcp_print_all_structures
454         (ipcp_profile_print): Renamed to ipcp_print_profile_data
455         (ipcp_lat_is_const): Changed parameters and made inline.
456         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
457         (ipcp_redirect): Renamed to ipcp_need_redirect_p
458         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
459         the predicate condition directly
460         (ipcp_propagate_stage): Added local variable args. Removed local
461         variable callee.  (Both are mere code simplifications.)
462         (ipcp_method_dont_insert_const): Renamed to
463         ipcp_node_not_modifiable_p.
464         (ipcp_node_not_modifiable_p): Made inline.
465         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
466         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
467         (ipcp_print_all_lattices): Removed variable cvalue
468         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
469         Updated comments.
470
471 2008-05-06  Olivier Hainque  <hainque@adacore.com>
472
473         * tree-sra.c (try_instantiate_multiple_fields): Early return
474         if field has POINTER_TYPE.
475
476 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
477
478         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
479         by using 'q' specifier for instruction.
480         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
481
482 2008-05-06  Anatoly Sokolov <aesok@post.ru>
483
484         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
485         Change mode of zero_extract from QImode to HImode.
486         (sign bit tests peepholes): (Ditto.).
487
488 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
489
490         * config/i386/mmx.md: Remove double backslashes from asm templates.
491         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
492         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
493         to handle nonimmediate operands.
494         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
495         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
496         to handle nonimmediate operands.
497         (*mmx_<code>v2sf3_finite): New insn pattern.
498         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
499         (mmx_<code>v2sf3): New expander.  Use
500         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
501         (mmx_<plusminus_insn><mode>3): New expander.  Use
502         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
503         (*mmx_<plusminus_insn><mode>3): New insn pattern.
504         (mmx_add<mode>3): Removed.
505         (mmx_ssadd<mode>3): Ditto.
506         (mmx_usadd<mode>3): Ditto.
507         (mmx_sub<mode>3): Ditto.
508         (mmx_sssub<mode>3): Ditto.
509         (mmx_ussub<mode>3): Ditto.
510         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
511         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
512         to handle nonimmediate operands.
513         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
514         insn pattern.
515         (mmx_smulv4hi3_highpart): New expander.  Use
516         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
517         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
518         insn pattern.
519         (mmx_umulv4hi3_highpart): New expander.  Use
520         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
521         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
522         (mmx_<code>v4hi3): New expander.  Use
523         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
524         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
525         (mmx_<code>v8qi3): New expander.  Use
526         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
527         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
528         (mmx_<code><mode>3): New expander.  Use
529         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
530
531 2008-05-05  Jan Hubicka  <jh@suse.cz>
532
533         PR tree-optimization/36118
534         * passes.c (pass_init_dump_file): Fix dump header.
535
536 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
537
538         PR middle-end/36141
539         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
540         VCE for function decls.
541
542 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
543
544         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
545
546 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
547
548         * config/i386/i386.md (sat_plusminus): New.
549         (plusminus_insn): Likewise.
550         (plusminus_mnemonic): Likewise.
551         (addsub): Removed.
552         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
553         (*<addsub><mode>3_cc_overflow): Renamed to ...
554         (*<plusminus_insn><mode>3_cc_overflow): This.
555         (*<addsub>si3_zext_cc_overflow): Renamed to ...
556         (*<plusminus_insn>si3_zext_cc_overflow): This.
557
558         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
559         (<plusminus_insn><mode>3): This.
560         (*<addsub><mode>3): Renamed to ...
561         (*<plusminus_insn><mode>3): This.
562         (<sse>_vm<addsub><mode>3): Renamed to ...
563         (<sse>_vm<plusminus_insn><mode>3): This.
564         (sse3_h<addsub>v4sf3): Renamed to ...
565         (sse3_h<plusminus_insn>v4sf3): This.
566         (sse3_h<addsub>v2df3): Renamed to ...
567         (sse3_h<plusminus_insn>v2df3): This.
568         (<plusminus_insn><mode>3): New.
569         (*<plusminus_insn><mode>3): Likewise.
570         (sse2_<plusminus_insn><mode>3): Likewise.
571         (add<mode>): Removed.
572         (*add<mode>3): Likewise.
573         (sse2_ssadd<mode>3): Likewise.
574         (sse2_usadd<mode>3): Likewise.
575         (sub<mode>3): Likewise.
576         (*sub<mode>3): Likewise.
577         (sse2_sssub<mode>3): Likewise.
578         (sse2_ussub<mode>3): Likewise.
579
580 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
581
582         * gthr-single.h: Add in required interface elements as per gthr.h.
583         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
584         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
585         Generalize UNUSED macro. 
586         (__gthread_once): Add.
587         (__gthread_key_create): Add.
588         (__gthread_key_delete): Add.
589         (__gthread_getspecific): Add.
590         (__gthread_setspecific): Add.
591         
592 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
593
594         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
595         the same size types for the indirect reference on the rhs, then
596         create a VCE.
597
598 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
599
600         * config/i386/i386.md
601         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
602         one insn template instead of template series.
603         (*xordi_1_rex64): Ditto.
604         (*xordi_2_rex64): Ditto.
605
606 2008-05-05  Ira Rosen  <irar@il.ibm.com>
607
608         PR tree-optimization/36119
609         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
610         in case of SLP.
611
612 2008-06-04  Jan Hubicka  <jh@suse.cz>
613
614         tree-optimization/36100
615         * tree-pass.h (pass_O0_always_inline): Declare.
616         * ipa-inline.c (inline_transform): Remove dead code.
617         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
618         pass_O0_always_inline): New.
619         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
620
621 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
622
623         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
624         mnemonic in this_param move for TARGET_64BIT.
625
626 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
627
628         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
629         (*strmovsi_rex_1): Ditto.
630         (*strsetsi_1): Ditto.
631         (*strsetsi_rex_1): Ditto.
632
633         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
634         adddicc expanders using SWI mode iterator.
635
636 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
637
638         PR target/36121
639         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
640         argument handling.
641
642 2008-05-04  David S. Miller  <davem@davemloft.net>
643
644         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
645         (sparc*-*-linux*): Use linux.h in tm_file.
646         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
647         compiler defaulting to 32-bit.
648         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
649         no longer needed.
650         * config/sparc/linux.h: Remove definitions now obtained
651         properly from linux.h
652         * config/sparc/linux64.h: Likewise.
653         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
654         don't want this setting for 32-bit builds in a biarch compiler.
655         * doc/install.texi: Add sparc-linux to list of targets
656         supporting --enable-targets=all.
657
658 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
659
660         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
661
662 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
663
664         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
665         after V4SI_FTYPE_V8HI.
666         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
667         case V4SI_FTYPE_V2DF.
668
669 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
670
671         * doc/invoke.texi (max-flow-memory-locations): Removed.
672         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
673         
674 2008-05-03  Richard Guenther  <rguenther@suse.de>
675
676         PR middle-end/34973
677         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
678
679 2008-05-02  David S. Miller  <davem@davemloft.net>
680
681         * config.gcc (need_64bit_hwint): Document libcpp dependency.
682
683 2008-05-02  Simon Baldwin <simonb@google.com>
684
685         PR bootstrap/36108
686         * c-common.h (warn_array_subscript_range): Removed.
687         * c-common.c (warn_array_subscript_range): Ditto.
688         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
689         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
690
691 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
692
693         * config/i386/i386.c (ix86_special_builtin_type): New.
694         (bdesc_special_args): Likewise.
695         (ix86_expand_special_args_builtin): Likewise.
696         (ix86_init_mmx_sse_builtins): Updated.
697         (ix86_expand_builtin): Updated.
698         (ix86_expand_store_builtin): Removed.
699         (ix86_expand_unop_builtin): Likewise.
700
701         * config/i386/mm3dnow.h (__v2sf): Moved to ...
702         * config/i386/mmintrin.h (__v2sf): Here.
703
704         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
705         const __v2sf.
706         (_mm_loadl_pi): Likewise.
707         (_mm_storeh_pi): Replace __v2si with __v2sf.
708         (_mm_storel_pi): Likewise.
709
710         * doc/extend.texi: Correct __builtin_ia32_loadhps,
711         __builtin_ia32_loadlps, __builtin_ia32_storehps,
712         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
713         __builtin_ia32_loadlpd.
714
715 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
716
717         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
718         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
719         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
720         (ix86_init_mmx_sse_builtins): Updated.
721         (ix86_expand_args_builtin): Likewise.
722         (ix86_expand_builtin): Likewise.
723         (ix86_expand_unop1_builtin): Renamed to ...
724         (ix86_expand_unop_vec_merge_builtin): This.
725
726 2008-05-01  Jan Hubicka  <jh@suse.cz>
727
728         PR bootstrap/36100
729         * ipa-inline.c (inline_generate_summary): Make static.
730         (inline_transform): Do not call inlining at -O0; make static.
731         * passes.c (execute_todo): Add sanity check.
732         (execute_one_ipa_transform_pass): Execute proper flags.
733
734 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
735
736         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
737         (DECL_NONADDRESSABLE_P): Likewise.
738         * alias.c (record_component_aliases): Fix comment.
739
740 2008-05-01  Simon Baldwin <simonb@google.com>
741
742         * c-common.h (warn_array_subscript_range): New function.
743         * c-common.c (warn_array_subscript_range): Ditto.
744         * tree-vrp.c (check_array_ref): Corrected code to agree with
745         comment, ignoring only arrays of size 0 or size 1.
746         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
747
748 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
749
750         * config/i386/i386.c (ix86_builtin_type): Replace
751         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
752         (bdesc_args): Updated.
753         (ix86_init_mmx_sse_builtins): Likewise.
754         (ix86_expand_args_builtin): Likewise.
755
756         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
757         with __v1di.
758
759         * doc/extend.texi: Correct __builtin_ia32_palignr.
760
761 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
762
763         PR target/36095
764         * config/i386/i386.c (bdesc_crc32): Removed.
765         (ix86_expand_crc32): Likewise.
766         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
767         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
768         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
769         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
770         UINT_FTYPE_UINT_UCHAR.
771         (bdesc_args): Updated. Add crc32 builtins.
772         (ix86_init_mmx_sse_builtins): Updated.
773         (ix86_expand_args_builtin): Updated to support subreg.
774
775         * doc/extend.texi: Correct __builtin_ia32_crc32di.
776
777 2008-05-01  Jan Hubicka  <jh@suse.cz>
778
779         * tree-pass.h (opt_pass): Add IPA_PASS.
780         (varpool_node, cgraph_node): Forward declare.
781         (ipa_opt_pass): Define.
782         (pass_ipa_inline): Turn into ipa_opt_pass.
783         (pass_apply_inline): Remove.
784         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
785         (apply_inline): Turn into ....
786         (inline_transform): ... this one.
787         (inline_generate_summary): New function.
788         (pass_apply_inline): Remove.
789         * function.h (ipa_opt_pass): Forward declare structure; typedef;
790         vector.
791         (struct function): Add ipa_transforms_to_apply.
792         * passes.c (register_one_dump_file): Work on IPA_PASS.
793         (init_optimization_passes): Remove pass_inline_parameters and
794         pass_apply_inline.
795         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
796         (execute_one_pass) ... here; apply transforms when possible.
797         (add_ipa_transform_pass, execute_ipa_summary_asses,
798         execute_one_ipa_transform_pass): New.
799         (execute_ipa_pass_list): Update for IPA_PASS type.
800
801 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
802
803         * config/i386/i386.c (ix86_builtin_type): Add
804         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
805         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
806         (bdesc_args): Add SSE4a builtins.
807         (ix86_init_mmx_sse_builtins): Updated.
808         (ix86_expand_args_builtin): Likewise.
809         (ix86_expand_builtin): Likewise.
810
811 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
812
813         * config/i386/i386.c (ix86_builtin_type): Add
814         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
815         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
816         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
817         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
818         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
819         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
820         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
821         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
822         and DI_FTYPE_DI_DI_INT.
823         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
824         (ix86_init_mmx_sse_builtins): Updated.
825         (ix86_expand_args_builtin): Likewise.
826         (ix86_expand_builtin): Likewise.
827         (ix86_expand_binop_imm_builtin): Removed.
828
829         * doc/extend.texi: Correct __builtin_ia32_palignr128.
830
831 2008-04-30  Richard Guenther  <rguenther@suse.de>
832
833         PR tree-optimization/32921
834         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
835
836 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
837
838         * config/arm/arm.c (arm_unwind_emit): Use
839         crtl->all_throwers_are_sibcalls instead of
840         cfun->all_throwers_are_sibcalls.
841         (arm_output_fn_unwind): Likewise.
842         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
843         instead of cfun->uses_pic_offset_table.
844         (frv_expand_prologue): Likewise.
845         (frv_frame_pointer_required): Likewise.
846         (frv_expand_fdpic_call): Likewise.
847         (frv_emit_movsi): Likewise.
848         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
849         cfun->returns_pcc_struct instead of
850         current_function_returns_pcc_struct.
851         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
852         instead of cfun->calls_eh_return.
853         (m32c_pushm_popm): Likewise.
854         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
855         "extern" declaration.
856
857 2008-04-30  Richard Guenther  <rguenther@suse.de>
858
859         PR tree-optimization/21636
860         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
861         constant address.
862         (evaluate_stmt): Print the likely value.
863         (ccp_visit_stmt): Avoid excessive vertical spacing.
864
865 2008-04-30  Rafael Espindola  <espindola@google.com>
866
867         * builtins.c (fold_call_expr): Return realret.
868         * tree-ssa-threadedge.c
869         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
870         __builtin_object_size.
871
872 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
873
874         * gcc.c (wrapper_string): New variable.
875         (insert_wrapper): New function.
876         (execute): New option -wrapper.
877         * doc/invoke.texi (Overall Options): New driver option -wrapper.
878
879 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
880
881         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
882         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
883         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
884         from...
885         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
886         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
887         config/rs6000/e500crtres64gprctr.asm,
888         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
889         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
890         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
891         config/rs6000/e500crtsav64gprctr.asm,
892         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
893         config/rs6000/e500crtsavg64gprctr.asm: New files.
894         * config/rs6000/t-ppccomm: Add build rules for new files.
895         (LIB2FUNCS_STATIC_EXTRA): Add new files.
896         * config/rs6000/t-netbsd: Add build rules for new files.
897         (LIB2FUNCS_STATIC_EXTRA): New variable.
898         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
899         (CRTSAVRES_DEFAULT_SPEC): Likewise.
900         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
901
902 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
903
904         * config/i386/i386.c (ix86_builtin_type): Add
905         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
906         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
907         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
908         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
909         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
910         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
911         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
912         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
913         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
914         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
915         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
916         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
917         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
918         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
919         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
920         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
921         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
922         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
923         V1DI_FTYPE_V2SI_V2SI.
924         (bdesc_2arg): Moved to ...
925         (bdesc_args): Here.
926         (ix86_init_mmx_sse_builtins): Updated.
927         (ix86_expand_args_builtin): Updated.  Take a pointer
928         to const struct builtin_description.  Handle comparison
929         builtin functions.
930         (ix86_expand_sse_compare): Take a new argument for swapping operands.
931         (ix86_expand_builtin): Updated.
932
933         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
934         (ssse3_pmaddubsw128): This.
935         (ssse3_pmaddubswv4hi3): Renamed to ...
936         (ssse3_pmaddubsw): This.
937
938         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
939         (__builtin_ia32_packssdw128): Likewise.
940         (__builtin_ia32_packuswb128): Likewise.
941         (__builtin_ia32_pmaddubsw): Likewise.
942         (__builtin_ia32_pmaddubsw128): Likewise.
943
944 2008-04-30  Richard Guenther  <rguenther@suse.de>
945
946         PR tree-optimization/14847
947         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
948         (recognize_bits_test): Use it.
949         (recognize_single_bit_test): Likewise.
950
951 2008-04-30  Martin Jambor  <mjambor@suse.cz>
952
953         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
954         instead of setting number of formal parameters to zero.
955         (ipcp_init_stage): Do not set the number of actual parameters to zero 
956         either.
957         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
958         which are called with variable number of arguments.
959         (ipcp_insert_stage): Explicitely skipping all nodes which are
960         called with variable number of arguments.
961         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
962         number of parameters.
963
964         * ipa-prop.h (struct ipa_node_params): Added flag
965         called_with_var_arguments
966         (ipa_set_param_count): Added.  Changed sole setter to use it.
967         (ipa_get_param_count): Added.  All readers of param_count
968         converted to use it instead.
969         (ipa_set_called_with_variable_arg): Added.
970         (ipa_is_called_with_var_arguments): Added.
971         (ipa_get_ith_param): Added.  All readers of param_decls converted
972         to use it instead.
973         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
974         changed to use it. 
975         (ipa_get_cs_argument_count): Added, all readers of argument_count
976         changed to cal it.
977         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
978         to use it.
979         
980         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
981         (struct ipcp_lattice): Renamed cval_type to type
982         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
983
984         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
985         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
986         (ipcp_insert_stage): Changed the type of variable cvalue to tree
987         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
988         (build_const_val): Changed the type of parameter cvalue to tree
989         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
990         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
991         
992         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
993         constant 
994
995         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
996         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
997         (ipa_add_method): Renamed to ipa_push_func_to_list
998         (ipa_remove_method): Renamed to ipa_pop_func_from_list
999         (ipa_callsite_param_count): Removed.
1000         (ipa_callsite_param_count_set): Removed.
1001         (ipa_callsite_param): Removed.
1002         (ipa_callsite_callee): Removed.
1003         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
1004         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
1005         (ipa_method_formal_count): Removed.
1006         (ipa_method_formal_count_set): Removed.
1007         (ipa_method_get_tree): Removed.
1008         (ipa_method_tree_map_create): Removed.
1009         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
1010         (ipa_create_param_decls_array): Creates the array itself
1011         (ipa_create_param_decls_array): Temporary variable info instead of 
1012         a few dereferences.
1013         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
1014         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
1015         (get_type): Removed.
1016         (ipa_jf_get_info_type): Removed.
1017         (ipa_node_create): Renamed to ipa_create_node_params
1018         (ipa_free): Renamed to ipa_free_all_node_params
1019         (ipa_nodes_create): Renamed to ipa_create_all_node_params
1020         (ipa_edges_create): Renamed to ipa_create_all_edge_args
1021         (ipa_edges_free): Renamed to ipa_free_all_edge_args
1022         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
1023         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
1024         ipa_free_all_edge_args
1025         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
1026         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
1027         (ipa_create_methodlist_node): Removed.
1028         (ipa_methodlist_method): Removed.
1029         (ipa_methodlist_method_set): Removed.
1030         (ipa_methodlist_next_method): Removed.
1031         (ipa_methodlist_next_method_set): Removed.
1032         (ipa_method_is_modified): Removed.
1033         (ipa_method_modify_create): Removed.
1034         (ipa_method_modify_init): Temporary variable info instead of a few 
1035         dereferences.
1036         (ipa_detect_param_modifications): Temporary variable info instead of 
1037         a few dereferences.
1038         (ipa_compute_jump_functions): Temporary variable info instead of 
1039         a few dereferences.
1040         (ipa_method_modify_set): Removed.
1041         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
1042         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
1043         than craph_node as the first parameter.
1044         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
1045         (ipa_method_modify_init): Removed.
1046         (ipa_compute_jump_functions): Added a temp variable instead of 
1047         repeatadly dereferencing the cgraph_edge.aux pointer
1048         (ipa_callsite_param_set_type): Removed.
1049         (ipa_compute_jump_functions): i renamed to index and moved to 
1050         an inner block
1051         (ipa_callsite_param_set_info_type_formal): Removed.
1052         (ipa_callsite_param_set_info_type): Removed.
1053         (ipa_callsite_param_map_create): Removed.
1054         (ipa_callsite_tree): Removed.
1055         (ipa_callsite_caller): Removed.
1056         (ipa_pop_func_from_list): return_method removed to return_func
1057
1058         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
1059         prefixed all values with IPA_. Changed all users.
1060         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
1061         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
1062         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
1063         (union parameter_info): Renamed to jump_func_value.
1064         (union jump_func_value): Renamed value to constant
1065         (struct ipa_jump_func): Renamed info_type to value
1066         (struct ipa_node): Renamed to ipa_node_params
1067         (struct ipa_node_params): Renamed ipa_arg_num to param_count
1068         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
1069         (struct ipa_node_params): Renamed ipa_mod to modified_flags
1070         (struct ipa_edge): Renamed to ipa_edge_args
1071         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
1072         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
1073         (struct ipa_methodlist): Renamed to ipa_func_list
1074         (struct ipa_func_list): method_p renamed to node, next_method
1075         renamed to next
1076         (ipa_methodlist_p): Removed, switched all users to struct pointer
1077         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
1078
1079 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
1080
1081         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
1082         (rs6000_emit_epilogue): Use backchain to restore only when we
1083         have a large frame.  Make use of frame pointer to restore if we
1084         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
1085
1086 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
1087
1088         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
1089         Add mode to zero_extract.
1090         (sign bit tests peepholes): (Ditto.).
1091
1092 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
1093
1094         * config/i386/i386.c (ix86_builtins): Replace Prescott New
1095         Instructions in comments with SSE3.
1096         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
1097         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
1098         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
1099         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
1100         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
1101         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
1102         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
1103         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
1104         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
1105         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
1106         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
1107         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
1108         (bdesc_sse_args): Renamed to ...
1109         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
1110         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
1111         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
1112         IX86_BUILTIN_FABSQ.
1113         (bdesc_1arg): Moved to ...
1114         (bdesc_args): Here.
1115         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
1116         Instructions in comments with SSE3.
1117         (ix86_expand_sse_operands_builtin): Renamed to ...
1118         (ix86_expand_args_builtin): This.  Updated.
1119         (ix86_expand_unop1_builtin): Update comments.
1120         (ix86_expand_builtin): Updated.
1121
1122 2008-04-29  Richard Guenther  <rguenther@suse.de>
1123
1124         PR tree-optimization/36078
1125         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
1126         Update virtual SSA form after cleaning up the CFG.
1127
1128 2008-04-29  Richard Guenther  <rguenther@suse.de>
1129
1130         PR middle-end/15255
1131         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
1132
1133 2008-04-29  Richard Guenther  <rguenther@suse.de>
1134
1135         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
1136         (compute_may_aliases): Do not call finalize_ref_all_pointers.
1137         (compute_flow_insensitive_aliasing): Do not treat
1138         PTR_IS_REF_ALL pointers special.
1139         (get_smt_for): Likewise.
1140         (may_alias_p): Re-structure.
1141         (is_escape_site): A ref-all pointer conversion is not an escape site.
1142         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
1143         PTR_IS_REF_ALL pointers special.
1144         * tree-ssa-structalias.h (struct alias_info): Remove
1145         ref_all_symbol_mem_tag field.
1146         (PTR_IS_REF_ALL): Remove.
1147
1148 2008-04-29  Richard Guenther  <rguenther@suse.de>
1149
1150         PR middle-end/36077
1151         * fold-const.c (extract_muldiv_1): In combining division constants
1152         make sure to never overflow.
1153
1154 2008-04-29  Nick Clifton  <nickc@redhat.com>
1155
1156         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
1157
1158 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1159
1160         PR bootstrap/35169
1161         * optc-gen.awk: Work around HP-UX/IA awk bug.
1162
1163 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
1164
1165         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
1166         2008-04-25 commit.
1167
1168 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
1169
1170         PR target/36073
1171         * config/i386/i386.md
1172         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
1173         Change operand 1 predicate to nonimmediate_operand.
1174
1175 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
1176
1177         PR debug/36060
1178         * dwarf2out.c (struct die_struct): Mark as chain_circular through
1179         die_sub field.
1180         * gengtype.c (walk_type, write_func_for_structure): Handle
1181         chain_circular.
1182         * doc/gty.texi: Document chain_circular.
1183
1184 2008-04-28  Richard Guenther  <rguenther@suse.de>
1185
1186         PR tree-optimization/36066
1187         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
1188         SCEV and loop.
1189
1190 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
1191
1192         PR target/36064
1193         * config/i386/i386.md
1194         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
1195         Use match_scratch instead of match_operand for operands 3 and 4.
1196
1197 2008-04-27  Richard Guenther  <rguenther@suse.de>
1198
1199         PR tree-optimization/18754
1200         PR tree-optimization/34223
1201         * tree-pass.h (pass_complete_unrolli): Declare.
1202         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
1203         loop size before and after unconditionally of UL_NO_GROWTH in effect.
1204         Rewrite loop into loop closed SSA form if it is not already.
1205         (tree_unroll_loops_completely): Re-structure to iterate over
1206         innermost loops with intermediate CFG cleanups.
1207         Unroll outermost loops only if requested or the code does not grow
1208         doing so.
1209         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
1210         loops are available.
1211         (tree_vectorize): Instead do so here.
1212         (tree_complete_unroll): Also unroll outermost loops.
1213         (tree_complete_unroll_inner): New function.
1214         (gate_tree_complete_unroll_inner): Likewise.
1215         (pass_complete_unrolli): New pass.
1216         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
1217         uses outside of the loop.
1218         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
1219         form if it is available.  
1220         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
1221         * passes.c (init_optimization_passes): Schedule complete inner
1222         loop unrolling pass before the first CCP pass after final inlining.
1223
1224 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
1225
1226         * targhooks.h (default_emutls_var_fields,
1227         default_emutls_var_init): Declare.
1228         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
1229         * target.h (struct gcc_target): Add struct emutls member.
1230         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
1231         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
1232         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
1233         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
1234         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
1235         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
1236         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
1237         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
1238         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
1239         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
1240         emit debug information.
1241         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
1242         * varasm.c: Include targhooks.h.
1243         (emutls_object_section, emutls_tmpl_section): New.
1244         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
1245         (EMUTLS_SEPARATOR): New.
1246         (prefix_name): New.
1247         (get_emutls_object_name): New.
1248         (default_emutls_var_fields): New, broken out of ...
1249         (get_emutls_object_type): ... here.  Adjust to use target hooks.
1250         (get_emutls_init_templ_addr): Adjust to use target hooks.
1251         (emutls_decl): Adjust to use target hooks.
1252         (emutls_finish): Likewise.
1253         (default_emutls_var_init): New, broken out of ...
1254         (assemble_variable): ... here.  Adjust to use target hooks.
1255         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
1256         SECCAT_EMUTLS_TMPL.
1257         * c-common.c (handle_section_attribute): Prevent overriding
1258         sections for emulated tls with special sections.
1259         * config/i386/i386.c (x86_64_elf_select_section): Add
1260         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
1261         (x86_64_elf_unique_section): Likewise.
1262         * config/vxworks.c: Include tree.h.
1263         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
1264         (vxworks_override_options): Set TLS scheme.
1265         * doc/tm.texi (Emulated TLS): New node.
1266
1267 2008-04-26  Simon Baldwin <simonb@google.com>
1268
1269         PR c/35652
1270         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
1271         with propagated string constants.
1272
1273 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
1274
1275         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
1276         constraint for operand 2 when operand 0 is memory operand.
1277         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
1278         operand 0 is memory operand.
1279         (fix_trunc<mode>_i387_with_temp): Ditto.
1280         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
1281         operand 2 when operand 1 is memory operand.
1282         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
1283         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
1284         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
1285         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
1286         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
1287         operands 2,3 and 4 when operand 1 is memory operand.
1288         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
1289         is memory operand.
1290         (fistdi2_floor_with_temp): Ditto.
1291         (fist<mode>2_floor_with_temp): Ditto.
1292         (fistdi2_ceil_with_temp): Ditto.
1293         (fist<mode>2_ceil_with_temp): Ditto.
1294         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
1295
1296 2008-04-26  David Daney  <ddaney@avtrex.com>
1297
1298         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
1299         unspec_volitile.
1300         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
1301         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
1302         UNSPEC_UPDATE_GOT_VERSION): Renumber.
1303         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
1304         (compare_and_swap_12): New insn.
1305         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
1306         * config/mips/mips.c (mips_force_binary): New function.
1307         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
1308         (mips_expand_compare_and_swap_12): New function.
1309         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
1310
1311 2008-04-25  Jan Hubicka  <jh@suse.cz>
1312
1313         PR testsuite/35843
1314         * cfgexpand.c (pass_expand): Turn into RTL pass.
1315         * passes.c (execute_one_pass): Do pass typechecking after execution.
1316         * tree-pass.h (pass_expand): Turn into RTL pass.
1317
1318         * function.h (struct rtl_data): Move here fields
1319         accesses_prior_frames, calls_eh_return, saves_all_registers,
1320         has_nonlocal_goto, has_asm_statement, is_thunk,
1321         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
1322         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
1323         arg_pointer_save_area_init from struct function; turn into bool.
1324         (struct function): Move
1325         calls_eh_return, saves_all_registers, has_nonlocal_goto,
1326         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
1327         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
1328         tail_call_emit, arg_pointer_save_area_init
1329         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
1330         (current_function_returns_struct, current_function_returns_pcc_struct,
1331         current_function_calls_setjmp, current_function_calls_alloca,
1332         current_function_accesses_prior_frames,
1333         current_function_calls_eh_return, current_function_is_thunk,
1334         current_function_stdarg, current_function_profile,
1335         current_function_limit_stack, current_function_uses_pic_offset_table,
1336         current_function_uses_const_pool, current_function_has_nonlocal_label,
1337         current_function_saves_all_registers,
1338         current_function_has_nonlocal_goto,
1339         current_function_has_asm_statement): Remove accesor macros.
1340         * ra-conflict.c (global_conflicts): Update.
1341         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
1342         (suitable_for_tail_call_opt_p): Update.
1343         * builtins.c (expand_builtin_return_addr): Update.
1344         (expand_builtin_setjmp_setup): Update.
1345         (expand_builtin_nonlocal_goto): Update.
1346         * final.c (final_start_function): Update.
1347         (profile_function): Update.
1348         (leaf_function_p): Update.
1349         (only_leaf_regs_used): Update.
1350         * df-scan.c (df_get_exit_block_use_set): Update.
1351         * dojump.c (clear_pending_stack_adjust): Update.
1352         * tree-stdarg.c (gate_optimize_stdarg): Update.
1353         * gimple-low.c (lower_function_body): Update.
1354         * global.c (compute_regsets): Update.
1355         (global_alloc): Update.
1356         * dwarf2out.c (dwarf2out_begin_prologue): Update.
1357         * expr.c (expand_assignment): Update.
1358         * dse.c (dse_step0): Update.
1359         (dse_step1): Update.
1360         * c-decl.c (store_parm_decls): Update.
1361         * local-alloc.c (combine_regs): Update.
1362         (find_free_reg): Update.
1363         * function.c (assign_parms_augmented_arg_list): Update.
1364         (assign_parm_find_data_types): Update.
1365         (assign_parms): Update.
1366         (allocate_struct_function): Update.
1367         (expand_function_start): Update.
1368         (expand_function_end): Update.
1369         (get_arg_pointer_save_area): Update.
1370         (thread_prologue_and_epilogue_insns): Update.
1371         (rest_of_match_asm_constraints): Update.
1372         * stor-layout.c (variable_size): Update.
1373         * gcse.c (gcse_main): Update.
1374         (bypass_jumps): Update.
1375         * gimplify.c (gimplify_function_tree): Update.
1376         * calls.c (emit_call_1): Update.
1377         (expand_call): Update.
1378         * bt-load.c (compute_defs_uses_and_gen): Update.
1379         * except.c (sjlj_assign_call_site_values): Update.
1380         (sjlj_emit_function_enter): Update.
1381         (can_throw_external): Update.
1382         (set_nothrow_function_flags): Update.
1383         (expand_builtin_unwind_init): Update.
1384         (expand_eh_return): Update.
1385         (convert_to_eh_region_ranges): Update.
1386         (output_function_exception_table): Update.
1387         * emit-rtl.c (gen_tmp_stack_mem): Update.
1388         * cfgexpand.c (expand_used_vars): Update.
1389         (tree_expand_cfg): Update.
1390         * cfgcleanup.c (rest_of_handle_jump): Update.
1391         * explow.c (allocate_dynamic_stack_space): Update.
1392         * varasm.c (assemble_start_function): Update.
1393         (force_const_mem): Update.
1394         (mark_constant_pool): Update.
1395         * tree-optimize.c (tree_rest_of_compilation): Update.
1396         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
1397         * tree-cfg.c (notice_special_calls): Update.
1398         (is_ctrl_altering_stmt): Update.
1399         (tree_can_make_abnormal_goto): Update.
1400         (tree_purge_dead_abnormal_call_edges): Update.
1401         * config/alpha/predicates.md: Update.
1402         * config/alpha/alpha.c (alpha_sa_mask): Update.
1403         (alpha_sa_size): Update.
1404         (alpha_does_function_need_gp): Update.
1405         (alpha_expand_prologue): Update.
1406         (alpha_start_function): Update.
1407         (alpha_output_function_end_prologue): Update.
1408         (alpha_expand_epilogue): Update.
1409         * config/frv/frv.c (frv_stack_info): Update.
1410         (frv_expand_epilogue): Update.
1411         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
1412         (s390_register_info): Update.
1413         (s390_frame_info): Update.
1414         (s390_init_frame_layout): Update.
1415         (s390_can_eliminate): Update.
1416         (save_gprs): Update.
1417         * config/spu/spu.c (spu_split_immediate): Update.
1418         (need_to_save_reg): Update.
1419         (spu_expand_prologue): Update.
1420         (spu_expand_epilogue): Update.
1421         * config/sparc/sparc.md: Update.
1422         * config/sparc/sparc.c (eligible_for_return_delay): Update.
1423         (sparc_tls_got): Update.
1424         (legitimize_pic_address): Update.
1425         (sparc_emit_call_insn): Update.
1426         (sparc_expand_prologue): Update.
1427         (output_return): Update.
1428         (print_operand): Update.
1429         (sparc_function_ok_for_sibcall): Update.
1430         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
1431         * config/m32r/m32r.md: Update.
1432         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
1433         (m32r_compute_frame_size): Update.
1434         (m32r_expand_prologue): Update.
1435         (m32r_expand_epilogue): Update.
1436         (m32r_legitimize_pic_address): Update.
1437         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
1438         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
1439         * config/i386/i386.c (ix86_frame_pointer_required): Update.
1440         (gen_push): Update.
1441         (ix86_save_reg): Update.
1442         (ix86_compute_frame_layout): Update.
1443         (ix86_expand_prologue): Update.
1444         (ix86_expand_epilogue): Update.
1445         * config/sh/sh.c (output_stack_adjust): Update.
1446         (calc_live_regs): Update.
1447         (sh5_schedule_saves): Update.
1448         (sh_expand_prologue): Update.
1449         (sh_expand_epilogue): Update.
1450         (sh_setup_incoming_varargs): Update.
1451         (sh_allocate_initial_value): Update.
1452         (sh_get_pr_initial_val): Update.
1453         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
1454         * config/sh/sh.md (label:): Update.
1455         * config/avr/avr.c (out_movhi_mr_r): Update.
1456         * config/crx/crx.h (enum): Update.
1457         * config/xtensa/xtensa.h (along): Update.
1458         * config/stormy16/stormy16.c Update.
1459         (xstormy16_compute_stack_layout): Update.
1460         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
1461         (fr30_expand_prologue): Update.
1462         * config/cris/cris.c (cris_conditional_register_usage): Update.
1463         (cris_reg_saved_in_regsave_area): Update.
1464         (cris_initial_frame_pointer_offset): Update.
1465         (cris_simple_epilogue): Update.
1466         (cris_expand_prologue): Update.
1467         (cris_expand_epilogue): Update.
1468         (cris_expand_pic_call_address): Update.
1469         (cris_asm_output_symbol_ref): Update.
1470         (cris_asm_output_label_ref): Update.
1471         * config/cris/cris.md Update.
1472         * config/iq2000/iq2000.c (compute_frame_size): Update.
1473         (iq2000_expand_epilogue): Update.
1474         * config/mt/mt.h (save_direction): Update.
1475         * config/mn10300/mn10300.c (mn10300_function_value): Update.
1476         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
1477         (ia64_secondary_reload_class): Update.
1478         * config/m68k/m68k.c (m68k_save_reg): Update.
1479         (m68k_expand_prologue): Update.
1480         (m68k_expand_epilogue): Update.
1481         (legitimize_pic_address): Update.
1482         * config/rs6000/rs6000.c (rs6000_got_register): Update.
1483         (first_reg_to_save): Update.
1484         (first_altivec_reg_to_save): Update.
1485         (compute_vrsave_mask): Update.
1486         (compute_save_world_info): Update.
1487         (rs6000_stack_info): Update.
1488         (spe_func_has_64bit_regs_p): Update.
1489         (rs6000_ra_ever_killed): Update.
1490         (rs6000_emit_eh_reg_restore): Update.
1491         (rs6000_emit_allocate_stack): Update.
1492         (rs6000_emit_prologue): Update.
1493         (rs6000_emit_epilogue): Update.
1494         (rs6000_output_function_epilogue): Update.
1495         (output_profile_hook): Update.
1496         (rs6000_elf_declare_function_name): Update.
1497         * config/rs6000/rs6000.h (rs6000_args): Update.
1498         * config/rs6000/rs6000.md: Update.
1499         * config/mcore/mcore.c (mcore_expand_prolog): Update.
1500         * config/arc/arc.c (arc_output_function_epilogue): Update.
1501         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
1502         * config/darwin.c (machopic_function_base_name): Update.
1503         * config/score/score3.c (score3_compute_frame_size): Update.
1504         (rpush): Update.
1505         (rpop): Update.
1506         (score3_epilogue): Update.
1507         * config/score/score7.c (score7_compute_frame_size): Update.
1508         (score7_prologue): Update.
1509         (score7_epilogue): Update.
1510         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
1511         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
1512         * config/arm/arm.c (use_return_insn): Update.
1513         (require_pic_register): Update.
1514         (arm_load_pic_register): Update.
1515         (arm_compute_save_reg0_reg12_mask): Update.
1516         (arm_compute_save_reg_mask): Update.
1517         (thumb1_compute_save_reg_mask): Update.
1518         (output_return_instruction): Update.
1519         (arm_output_function_prologue): Update.
1520         (arm_output_epilogue): Update.
1521         (arm_get_frame_offsets): Update.
1522         (arm_expand_prologue): Update.
1523         (thumb_pushpop): Update.
1524         (thumb_exit): Update.
1525         (thumb1_expand_prologue): Update.
1526         (thumb1_expand_epilogue): Update.
1527         (arm_unwind_emit): Update.
1528         (arm_output_fn_unwind): Update.
1529         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
1530         * config/arm/arm.md: Update.
1531         * config/pa/pa.md: Update.
1532         * config/pa/pa.c (legitimize_pic_address): Update.
1533         (compute_frame_size): Update.
1534         (hppa_expand_prologue): Update.
1535         (hppa_expand_epilogue): Update.
1536         (borx_reg_operand): Update.
1537         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
1538         (HARD_REGNO_RENAME_OK): Update.
1539         * config/mips/mips.c (mips_global_pointer): Update.
1540         (mips_save_reg_p): Update.
1541         (mips_compute_frame_info): Update.
1542         (mips_frame_pointer_required): Update.
1543         (mips_expand_prologue): Update.
1544         (mips_expand_epilogue): Update.
1545         (mips_can_use_return_insn): Update.
1546         (mips_reorg_process_insns): Update.
1547         * config/v850/v850.c (compute_register_save_size): Update.
1548         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
1549         * config/mmix/mmix.c (along): Update.
1550         (mmix_expand_epilogue): Update.
1551         * config/bfin/bfin.c (legitimize_pic_address): Update.
1552         (must_save_p): Update.
1553         (stack_frame_needed_p): Update.
1554         (add_to_reg): Update.
1555         (bfin_expand_prologue): Update.
1556         * stmt.c (expand_asm_operands): Update.
1557         * reload1.c (reload): Update.
1558         (init_elim_table): Update.
1559
1560 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
1561         
1562         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
1563         
1564 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
1565
1566         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
1567         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
1568         (mov<mode>): Removed.
1569         (*movv4sf_internal): Likewise.
1570         (*movv2df_internal): Likewise.
1571
1572 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
1573
1574         * config.gcc (crx-*-elf): Remove deprecation.
1575
1576 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
1577
1578         * config/i386/cygming-crtend.c (register_frame_ctor): Register
1579         __gcc_deregister_frame with atexit.
1580         (deregister_frame_dtor): Remove.
1581
1582 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
1583             Nathan Sidwell  <nathan@codesourcery.com>
1584
1585         * config/rs6000/rs6000.opt (mspe): Remove Var property.
1586         (misel): Likewise.
1587         * config/rs6000/rs6000.h (rs6000_spe): Declare.
1588         (rs6000_isel): Likewise.
1589         * config/rs6000/rs6000.c (rs6000_spe): New variable.
1590         (rs6000_isel): New variable.
1591         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
1592
1593 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
1594
1595         PR c++/35758
1596         * c-common.c (handle_vector_size_attribute): Call
1597         lang_hooks.types.reconstruct_complex_type instead of
1598         reconstruct_complex_type.
1599         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
1600         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
1601         * langhooks.h (struct lang_hooks_for_types): Add
1602         reconstruct_complex_type hook.
1603         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
1604         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
1605
1606 2008-04-24  Richard Guenther  <rguenther@suse.de>
1607
1608         * c-common.h (check_builtin_function_arguments): Declare.
1609         * c-common.c (validate_nargs): New function.
1610         (check_builtin_function_arguments): Likewise.
1611         * c-typeck.c (build_function_call): Call
1612         check_builtin_function_arguments.
1613         * builtins.c (fold_builtin_classify): Remove error reporting code.
1614         (fold_builtin_unordered_cmp): Likewise.
1615         (fold_builtin_1): Likewise.
1616         (fold_builtin_n): Likewise.
1617
1618 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
1619
1620         PR tree-optimization/36008
1621         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
1622         the original op1, rather than delta by step.
1623
1624 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
1625             Sebastian Pop  <sebastian.pop@amd.com>
1626
1627         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
1628         eliminate_local_variables_stmt, eliminate_local_variables,
1629         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
1630         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
1631         of code delimited by two edges in the CFG.
1632         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
1633         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
1634         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
1635         the case of parallelisation of reductions.
1636         (expr_invariant_in_region_p): New.
1637
1638         * tree-flow.h (gather_blocks_in_sese_region): Declared.
1639         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
1640
1641 2008-04-24  Ira Rosen  <irar@il.ibm.com>
1642             Richard Guenther  <rguenther@suse.de>
1643
1644         PR tree-optimization/36034
1645         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
1646         incapable of dealing with loads with gaps.
1647
1648 2008-04-24  Rafael Espindola  <espindola@google.com>
1649
1650         * tree-flow.h (vrp_evaluate_conditional): Change signature.
1651         * tree-ssa-propagate.c (fold_predicate_in): Update call to
1652         vrp_evaluate_conditional.
1653         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
1654         (vrp_evaluate_conditional): Split the cond argument.
1655         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
1656         (simplify_stmt_for_jump_threading): Update call to
1657         vrp_evaluate_conditional.
1658
1659 2008-04-24  Ira Rosen  <irar@il.ibm.com>
1660
1661         PR tree-optimization/35982
1662         * tree-vect-analyze.c (vect_check_interleaving): Check that the
1663         interleaved data-refs are of the same type.
1664
1665 2008-04-24  Danny Smith  <dannysmith@users.net>
1666
1667         * c-format.c (check_format_info_main): Use strncmp rather than a
1668         magic prefix to handle multichar length specs.
1669         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
1670         Don't prefix "I64" and "I32" with '\0'.
1671
1672 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
1673
1674         PR target/36015
1675         * config/i386/i386.c (init_cumulative_args): Don't pass anything
1676         in registers for -m32 only if stdarg_p (fntype).
1677
1678 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
1679
1680         PR rtl-optimization/36006
1681         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
1682         temp to op0 in order to avoid invalid rtx sharing.
1683
1684 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
1685
1686         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
1687         check TREE_INVARIANT.
1688         * tree-gimple.c (is_gimple_address): New.
1689         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
1690         * tree-gimple.h (is_gimple_address): New.
1691         * tree.h (decl_address_invariant_p): New.
1692         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
1693         (build_string): Likewise.
1694         (decl_address_invariant_p): New, from is_gimple_invariant_address.
1695         (tree_invariant_p_1): Likewise.
1696         (save_expr): Use it.
1697         (tree_invariant_p): New.
1698         (skip_simple_arithmetic): Use it.
1699         (stabilize_reference_1): Use it.
1700         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
1701         simplify.
1702         (build1_stat): Drop code to compute TREE_INVARIANT.
1703         (build2_stat): Drop code to compute TREE_INVARIANT.
1704         (build3_stat): Drop code to compute TREE_INVARIANT.
1705         (build4_stat): Drop code to compute TREE_INVARIANT.
1706         (build5_stat): Drop code to compute TREE_INVARIANT.
1707         (build7_stat): Drop code to compute TREE_INVARIANT.
1708         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
1709         * tree.h (struct tree_base): Remove invariant_flag.
1710         (TREE_INVARIANT): Remove.
1711         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
1712         (fold_builtin_expect): Check TREE_CONSTANT.
1713         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
1714         * c-tree.h (c_expr_to_decl): Drop third parameter.
1715         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
1716         (build_c_cast): Don't set TREE_INVARIANT.
1717         (pop_init_level): Don't set TREE_INVARIANT.
1718         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
1719         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
1720         TREE_CONSTANT.
1721         (gimplify_init_constructor): Don't set TREE_INVARIANT.
1722         (gimplify_addr_expr): Adjust comment.
1723         * tree-mudflap.c (mf_build_string):
1724         * print-tree.c (print_node): Don't print TREE_INVARIANT.
1725         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
1726         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
1727         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
1728         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
1729         * langhooks.h (struct lang_hooks): Drop third parameter from
1730         expr_to_decl.
1731
1732 2008-04-23  Richard Guenther  <rguenther@suse.de>
1733
1734         PR tree-optimization/27799
1735         PR tree-optimization/32921
1736         PR tree-optimization/32624
1737         * tree-ssa-structalias.c (merge_smts_into): Only merge the
1738         SMTs aliases and the tag itself into the solution.
1739         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
1740         merge the points-to solution back into the SMT aliases.
1741         (may_alias_p): Use alias_set_subset_of instead of
1742         aliases_conflict_p.  A pointer which points to
1743         memory with alias set zero may access any variable.
1744
1745 2008-04-23  Richard Guenther  <rguenther@suse.de>
1746
1747         * alias.c (alias_set_subset_of): Correctly handle asking
1748         if zero is a subset of an alias set with zero child.
1749         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
1750         (compute_flow_insensitive_aliasing): Correctly walk all
1751         pointers.  Do not unnecessarily union sets.
1752
1753 2008-04-23  Richard Guenther  <rguenther@suse.de>
1754
1755         PR middle-end/36021
1756         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
1757
1758 2008-04-22  Tomas Bily  <tbily@suse.cz>
1759
1760         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
1761         unreachable case.
1762         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
1763         NON_LVALUE_EXPR.
1764         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
1765         * tree-ssa-structalias.c (get_constraint_for): Likewise.
1766         * tree-inline.c (estimate_num_insns_1): Likewise.
1767         * varasm.c (const_hash_1, compare_constant, copy_constant)
1768         (compute_reloc_for_constant, output_addressed_constants): Likewise.
1769         * emit-rtl.c (component_ref_for_mem_expr)
1770         (set_mem_attributes_minus_bitpos): Likewise.
1771         * expr.c (highest_pow2_factor, expand_expr_real_1, )
1772         (is_aligning_offset): Likewise.
1773         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
1774         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
1775         * dojump.c (do_jump): Likewise.
1776         * builtins.c (get_pointer_alignment, get_memory_rtx)
1777         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
1778         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
1779
1780 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
1781
1782         PR rtl-optimization/36017
1783         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
1784         expanding the library call.
1785
1786 2008-04-22  Ian Lance Taylor  <iant@google.com>
1787
1788         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
1789         than size_in_bytes.
1790
1791 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
1792
1793         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
1794         of LR/CTR moves for Power6.
1795
1796 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
1797
1798         PR middle-end/36003
1799         * passes.c (init_optimization_passes): Remove
1800         pass_fast_rtl_byte_dce.
1801         
1802 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
1803
1804         PR target/29096
1805         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
1806         builtin functions to generate faster code.
1807         (_mm_cvtpu16_ps): Ditto.
1808         (_mm_cvtpi32x2_ps): Ditto.
1809
1810 2008-04-22  Nick Clifton  <nickc@redhat.com>
1811
1812         * common.opt (ftree-loop-distribution): Add Optimization
1813         attribute.
1814
1815         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
1816         (frv_expand_builtin_va_start): Likewise.
1817
1818         * config/arm/arm.c (thumb_find_work_register): Fix location of
1819         argument register count.
1820
1821 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
1822
1823         Support scheduling for ColdFire V1 and V3 microarchitecture.
1824         Improve scheduling of multiplication instructions.
1825
1826         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
1827         (mac): New instruction attribute.
1828         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
1829         (m68k_sched_mac): New variable.
1830         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
1831         Handle cfv1 and cfv3.
1832         (max_insn_size): New static variable.
1833         (struct _sched_ib): New type.
1834         (sched_ib): New static variable.
1835         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
1836         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
1837         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
1838         Update.
1839         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
1840         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
1841         new variables.  Update.
1842         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
1843         Add modeling of cfv3 instruction buffer.  Update.
1844         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
1845         * config/m68k/m68k.h (TUNE_CFV3): New macro.
1846         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
1847         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
1848         a particular reservation applies to.
1849         (type2): Reorganize attribute values.  Rename alu to alu_reg,
1850         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
1851         to mul_l and mul_w.
1852         (cf_ib_*): Simplify description of instruction buffer.
1853         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
1854         (cf_mem): Split into cf_mem1 and cf_mem2.
1855         (cf_v2_move_??): Rename to cfv12_alu_??.
1856         (cf_v2_move_l_??): Rename to cfv12_omove_??.
1857         (cf_v2_mul_??): Remove reservations.
1858         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
1859         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
1860         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
1861         appropriate place.
1862         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
1863         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
1864         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
1865         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
1866         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
1867         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
1868         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
1869         expansions of the above reservations for instructions of sizes
1870         1, 2 and 3 words.
1871
1872 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
1873
1874         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
1875
1876 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
1877
1878         * coverage.c: Include tree-pass.h.
1879         (coverage_counter_alloc): Print da_file_name to the dump file.
1880
1881 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
1882
1883         * sbitmap.c (sbitmap_range_empty_p): New function.
1884         * sbitmap.h (sbitmap_range_empty_p): New function.
1885         * bitmap.h: Now includes obstack.h.
1886
1887 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
1888             Kenneth Zadeck  <zadeck@naturalbridge.com>
1889
1890         * dbgcnt.def (ra_byte_scan): Added.
1891         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
1892         when the last hit happens for a counter.  
1893         * timevar.def (TV_DF_BYTE_LR): New variable.
1894         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
1895         * passes.c (pass_fast_rtl_byte_dce): New pass.
1896         * fwprop.c (update_df): Added mode to call df_ref_create.
1897         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
1898         DF_REF_EXTRACT_OFFSET.
1899         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
1900         DF_BYTE_LR_OUT, df_byte_lr): New macro.
1901         (df_mm): New enum.
1902         (df_ref_extract): Added mode field.
1903         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
1904         DF_REF_EXTRACT_OFFSET.
1905         (DF_REF_EXTRACT_MODE): New macro.
1906         (df_byte_lr_bb_info): New structure.
1907         (df_print_byte_regset, df_compute_accessed_bytes, 
1908         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
1909         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
1910         df_byte_lr_simulate_uses,
1911         df_byte_lr_simulate_artificial_refs_at_top,
1912         df_byte_lr_simulate_artificial_refs_at_end,
1913         df_compute_accessed_bytes): New function.
1914         (df_ref_create): Add parameter.
1915         (df_byte_lr_get_bb_info): New inline function.
1916         * df-scan.c (df_ref_record, df_uses_record,
1917         df_ref_create_structure): Added mode parameter.
1918         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
1919         df_defs_record, df_uses_record, df_get_conditional_uses,
1920         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
1921         df_entry_block_defs_collect, df_exit_block_uses_collect):
1922         Added mode parameter to calls to df_ref_record, df_uses_record,
1923         df_ref_create_structure.
1924         (df_ref_equal_p, df_ref_compare): Added test for modes.
1925         (df_ref_create_structure): Added code to set mode.  Renamed
1926         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
1927         DF_REF_EXTRACT_OFFSET.
1928         * df-core.c (df_print_byte_regset): New function.
1929         * df-byte-scan.c: New file.
1930         * df-problems.c (df_rd_transfer_function): Removed unnecessary
1931         calls to BITMAP_FREE.  
1932         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
1933         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
1934         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
1935         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
1936         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
1937         df_byte_lr_local_compute, df_byte_lr_init,
1938         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
1939         df_byte_lr_transfer_function, df_byte_lr_free, 
1940         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
1941         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
1942         df_byte_lr_simulate_uses,
1943         df_byte_lr_simulate_artificial_refs_at_top,
1944         df_byte_lr_simulate_artificial_refs_at_end): New function.
1945         * dce.c (byte_dce_process_block): New function.
1946         (dce_process_block): au is now passed in rather than computed
1947         locally.  Changed loops that look at artificial defs to not look
1948         for conditional or partial ones, because there never are any.  
1949         (fast_dce): Now is able to drive byte_dce_process_block or 
1950         dce_process_block depending on the kind of dce being done.
1951         (rest_of_handle_fast_dce): Add parameter to fast_dce.
1952         (rest_of_handle_fast_byte_dce): New function.
1953         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
1954         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
1955
1956 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
1957
1958         PR fortran/35019
1959         * gcc.h: Added fortran options that take arguments to
1960         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
1961         macros.
1962
1963 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
1964
1965         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
1966         scalarization if on the LHS and not a full access.
1967
1968 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1969
1970         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
1971
1972 2008-04-18  Rafael Espindola  <espindola@google.com>
1973
1974         * tree-vrp.c (find_case_label_index): Fix the binary search.
1975         (find_case_label_range): New.
1976         (vrp_visit_switch_stmt): Use find_case_label_range.
1977         (simplify_switch_using_ranges): Use find_case_label_range.
1978
1979 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
1980
1981         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
1982         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
1983
1984 2008-04-18  Tom Tromey  <tromey@redhat.com>
1985
1986         PR libcpp/15500:
1987         * doc/cpp.texi (Implementation-defined behavior): Mention
1988         -finput-charset.
1989
1990 2008-04-18  Ian Lance Taylor  <iant@google.com>
1991
1992         * fold-const.c (pointer_may_wrap_p): New static function.
1993         (fold_comparison): Add another test for pointer overflow.  Use
1994         pointer_may_wrap_p to disable some false positives.
1995
1996 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
1997           
1998         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
1999         (fname_as_string): Match updated cpp_interpret_string prototype.
2000         (fix_string_type): Support char16_t* and char32_t*.
2001         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
2002         derivative) nodes.  Register as builtin if C++0x.
2003         (c_parse_error): Support CPP_CHAR{16,32}.
2004         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
2005         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
2006         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
2007         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
2008         CTI_CHAR32_ARRAY_TYPE>: New elements.
2009         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
2010         char32_type_node, signed_char32_type_node, char16_array_type_node,
2011         char32_array_type_node): New defines.
2012         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
2013         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
2014         (lex_string): Support CPP_STRING{16,32}, match updated
2015         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
2016         (lex_charconst): Support CPP_CHAR{16,32}.
2017         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
2018         and CPP_STRING{16,32}.
2019
2020 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
2021
2022         PR bootstrap/35457
2023         * aclocal.m4: Regenerate.
2024         * configure: Regenerate.
2025
2026 2008-04-18  Jan Hubicka  <jh@suse.cz>
2027
2028         * except.c (dw2_size_of_call_site_table,
2029         sjlj_size_of_call_site_table): Use vector API for call_site_record.
2030
2031         * cgraphbuild.c (build_cgraph_edges): Update.
2032         * tree-pass.h: Update comment.
2033         * final.c (leaf_function_p): Update.
2034         (leaf_renumber_regs): Update.
2035         (rest_of_clean_state): Update.
2036         * omp-low.c (expand_omp_parallel): Update.
2037         * ipa-reference.c (analyze_function): Update.
2038         * reorg.c (find_end_label): Update.
2039         (optimize_skip): Update.
2040         (fill_simple_delay_slots): Update.
2041         (fill_simple_delay_slots): Update.
2042         (make_return_insns): Update.
2043         (dbr_schedule): Update.
2044         * gimple-low.c (record_vars_into): Update.
2045         * cfgbuild.c (make_edges): Update.
2046         * function.c (assign_stack_local): Update.
2047         (assign_parm_adjust_stack_rtl): Update.
2048         (locate_and_pad_parm): Update.
2049         (allocate_struct_function): Do not initialize stack_alignment_needed
2050         and preferred_stack_boundary here.
2051         (stack_protect_prologue): Update.
2052         (stack_protect_epilogue): Update.
2053         (expand_function_start): Initialize stack_alignment_needed,
2054         preferred_stack_boundary and max_jumptable_ents.
2055         (expand_function_end): Update.
2056         (free_after_compilation): Do not NULLify epilogue_delay_list.
2057         * function.h (struct rtl_data): Add stack_protect_guard,
2058         stack_alignment_needed,
2059         preferred_stack_boundary, epilogue_delay_list.
2060         (struct function): Remove value_histograms, stack_alignment_needed,
2061         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
2062         last_label_uid,
2063         unexpanded_var_list, stack_protect_guard.
2064         (current_function_epilogue_delay_list): Remove.
2065         * ipa-type-escape.c (analyze_function): Update.
2066         * gimplify.c (pop_gimplify_context): Update comment.
2067         * calls.c (expand_call): Update.
2068         (emit_library_call_value_1): Update.
2069         * except.c (set_nothrow_function_flags): Update.
2070         * cfgexpand.c (get_decl_align_unit): Update.
2071         (create_stack_guard): Update.
2072         (estimated_stack_frame_size): Update.
2073         (expand_used_vars): Update.
2074         (tree_expand_cfg): Free histogram earliers, init expansion variables.
2075         * explow.c (allocate_dynamic_stack_space): Update.
2076         * tree-ssa-live.c (remove_unused_locals): Update.
2077         * varasm.c (mark_constant_pool): Update.
2078         * tree-inline.c (remap_decls): Update.
2079         (initialize_cfun): Update.
2080         (declare_return_variable): Update.
2081         (inline_forbidden_p): Update.
2082         (expand_call_inline): Update.
2083         (declare_inline_vars): Update.
2084         (tree_function_versioning): Update.
2085         * tree-flow.h (value_histograms): New.
2086         (VALUE_HISTOGRAMS): New macro.
2087         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
2088         last_label_uid.
2089         * tree-cfg.c (set_bb_for_stmt): Update.
2090         (replace_by_duplicate_decl): Update.
2091         (move_block_to_fn): Update.
2092         (new_label_mapper): Update.
2093         (dump_function_to_file): Update.
2094         * ipa-struct-reorg.c (build_data_structure): Update.
2095         * cfgrtl.c (print_rtl_with_bb): Update.
2096         * reload1.c (reload): Update.
2097         (reload): Update.
2098         * config/i386/i386.c (setup_incoming_varargs_64,
2099         ix86_compute_frame_layout): Update.
2100         * config/arc/arc.c (arc_output_function_epilogue): Update.
2101
2102 2008-04-18  Marius Strobl <marius@FreeBSD.org>
2103
2104         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
2105         for FreeBSD as well.
2106         * gthr-posix95.h: Likewise.
2107
2108 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
2109
2110         PR rtl-optimization/35838
2111         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
2112         out the byte offset of the first subreg.
2113
2114 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
2115
2116         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
2117         to split_ti instead of three separate calls with single member arrays.
2118         (subti3 splitter): Ditto.
2119         (adddi3 splitter): Ditto with split_di.
2120         (subdi3 splitter): Ditto.
2121         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
2122         two separate calls with single member arrays.  Swap match_dup
2123         operands 1 and 2 to better fit into the array.
2124         (negdi2 splitter): Ditto with split_di.
2125         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
2126         two separate calls with single member arrays.  Swap match_dup operands
2127         6 and 7 to better fit into the array.
2128
2129 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
2130
2131         * config/i386/i386.c (sse_builtin_type): New.
2132         (bdesc_sse_args): Likewise.
2133         (bdesc_sse_3arg): Removed.
2134         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
2135         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
2136         IX86_BUILTIN_ROUNDPS.
2137         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
2138         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
2139         IX86_BUILTIN_ROUNDPS.
2140         (ix86_expand_sse_4_operands_builtin): Removed.
2141         (ix86_expand_sse_operands_builtin): New.
2142         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
2143         and CODE_FOR_sse4_1_roundps.
2144         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
2145         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
2146
2147 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
2148
2149         PR target/35907
2150         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
2151         regs before frame pop when needed.  If use_backchain_to_restore_sp
2152         then load backchain into a temp reg to restore vr and vrsave.  Add
2153         code to restore vr after frame pop if possible.
2154
2155 2008-04-17  Richard Guenther  <rguenther@suse.de>
2156
2157         * tree-vn.c (expressions_equal_p): Do not check type
2158         equality or compatibility before calling operand_equal_p.
2159         * fold-const.c (operand_equal_p): Check equivalence of
2160         integer constants before bailing out due to signedness or
2161         precision differences.
2162         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
2163         spurious differences in type qualification.  Ignore types
2164         for COMPONENT_REFs at all.
2165
2166 2008-04-17  Christian Bruel  <christian.bruel@st.com>
2167
2168         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
2169         msw_skip comparison.
2170         
2171 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
2172
2173         PR c/35739
2174         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
2175         reg type.
2176
2177         PR tree-optimization/35899
2178         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
2179         rather than TREE_OPERAND.
2180
2181 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
2182
2183         PR target/35944
2184         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
2185         temporary registers.  Change operand predicate to general_operand.
2186         (remainderxf3): Ditto.
2187
2188 2008-04-16  Richard Guenther  <rguenther@suse.de>
2189
2190         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
2191         * tree-affine.c (aff_combination_expand): Look through some
2192         conversions.
2193
2194 2008-04-15  Doug Kwan  <dougkwan@google.com>
2195
2196         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
2197         for hex printing.
2198         * tree-pretty-print.c (dump_generic_node): Ditto.
2199         * final.c (output_addr_const): Ditto.
2200         * dwarf2out.c (output_cfi): Ditto.
2201         * c-pretty-print.c (pp_c_integer_constant): Ditto.
2202         * print-rtl.c (print_rtx): Ditto.
2203         * print-tree.c (print_node_brief, print_node): Ditto.
2204         * c-common.c (match_case_to_enum_1): Ditto.
2205         * sched-vis.c (print_value): Ditto.
2206         * config/i386/i386.c (print_operand): Cast to long unsigned int
2207         for hex printing.
2208
2209 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
2210         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
2211         MS Windows VirtualProtect function.
2212
2213 2008-04-15  Jan Hubicka  <jh@suse.cz>
2214
2215         * gengtype.c (write_root): Param_is argument is OK.
2216         * expr.c (expand_expr_real_1): Update call of get_exception_*.
2217         * function.h: Include varray.h
2218         (rtl_eh): New stucture based on except.c one.
2219         (call_site_record): New forward declaration and vector type.
2220         * calls.c (emit_call_1): Do not call
2221         note_current_region_may_contain_throw.
2222         * except.c (eh_status): Remove cur_region, try_region since they are
2223         unused.
2224         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
2225         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
2226         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
2227         Remove call_site_data_used, call_site_data_size.
2228         Turn call_site_record into vector in function.h.
2229         (note_current_region_may_contain_throw): Remove.
2230         (get_exception_pointer, get_exception_filter): Do not take struct
2231         function argument; update.
2232         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
2233         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
2234         build_post_landing_pads, dw2_build_landing_pads,
2235         sjlj_assign_call_site_values, sjlj_mark_call_sites,
2236         sjlj_emit_function_enter, sjlj_emit_function_enter, 
2237         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
2238         sjlj_build_landing_pads, finish_eh_generation,
2239         remove_exception_handler_label, remove_eh_handler,
2240         maybe_remove_eh_handler, add_reachable_handler,
2241         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
2242         add_action_record, collect_one_action_chain, add_call_site,
2243         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
2244         sjlj_output_call_site_table, output_function_exception_table,
2245         * except.h (note_current_region_may_contain_throw): Remove
2246         (get_exception_pointer, get_exception_filter): Do not take struct
2247         function argument.
2248         * Makefile.in (GTFILES): Put varargs before struct function.
2249
2250 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
2251
2252         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
2253         punt for STRING_CST.
2254         (get_constraint_for): Deal with STRING_CST here instead.
2255
2256 2008-04-15  Richard Guenther  <rguenther@suse.de>
2257
2258         * tree-ssa-propagate.c (substitute_and_fold): Substitute
2259         statements in a basic-block with a backward walk.  Do not
2260         substitute into dead statements but instead remove those.
2261
2262 2008-04-15  Richard Guenther  <rguenther@suse.de>
2263
2264         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
2265         to zero, thus disable creation of SFTs.
2266
2267 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
2268
2269         * tree-predcom.c (suitable_reference_p): Return false if the
2270         reference can throw.
2271
2272 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
2273
2274         PR c/35751
2275         * c-decl.c (finish_decl): If extern or static var has variable
2276         size, set TREE_TYPE (decl) to error_mark_node.
2277
2278 2008-04-15  Rafael Espindola  <espindola@google.com>
2279
2280         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
2281         variable arg1.
2282
2283 2008-04-15  Richard Guenther  <rguenther@suse.de>
2284
2285         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
2286         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
2287         (visit_reference_op_load): Do walk vuse-vdef chains on
2288         vn_reference_lookup.
2289         (visit_reference_op_store): But do not here.
2290         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
2291         vn_reference_lookup.
2292         (vn_lookup_with_vuses): But do so here.
2293
2294 2008-04-14  Ian Lance Taylor  <iant@google.com>
2295
2296         * fold-const.c (fold_overflow_warning): Remove assertion.
2297
2298 2008-04-15  Ben Elliston  <bje@au.ibm.com>
2299
2300         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
2301         temp1 local variables.
2302
2303 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
2304
2305         PR target/35661
2306         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
2307         ".text.unlikely" section as executable.
2308
2309 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
2310
2311         * config/ia64/ia64.c (rtx_needs_barrier): Handle
2312         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
2313         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
2314         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
2315         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
2316         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
2317         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
2318
2319 2008-04-14  Ian Lance Taylor  <iant@google.com>
2320
2321         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
2322         * fold-const.c (fold_comparison): If appropriate, test
2323         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
2324         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
2325         reassociating a pointer type.
2326         * doc/invoke.texi (Optimize Options): Document that
2327         -fstrict-overflow applies to pointer wraparound.
2328
2329 2008-04-13  Jan Hubicka  <jh@suse.cz>
2330
2331         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
2332
2333 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
2334
2335         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
2336         we are going to "save the world".
2337
2338 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
2339
2340         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
2341         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
2342         operand 0 constraint, not "=".
2343
2344 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
2345
2346         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
2347
2348 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
2349
2350         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
2351         of size of positions_needed * CHAR_BIT.
2352
2353 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
2354
2355         PR middle-end/35897
2356         * dse.c (store_info): Change positions_needed to unsigned
2357         HOST_WIDE_INT.
2358         (lowpart_bitmask): New.
2359         (record_store): Cast to unsigned HOST_WIDE_INT for
2360         positions_needed.  Assert width <= size of positions_needed *
2361         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
2362         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
2363         lowpart_bitmask to set mask.
2364
2365 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
2366
2367         * config/bfin/constraints.md: New file.
2368         * config/bfin/bfin.md: Include it.
2369         (adddi3): Use satisfies_constraint functions instead of the old macros.
2370         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
2371         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
2372         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
2373         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
2374         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
2375         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
2376         EXTRA_CONSTRAINT): Delete.
2377         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
2378         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
2379         of the old macros.
2380         * config/bfin/bfin.c: Include "tm-constrs.h".
2381         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
2382         Use satisfies_constraint functions instead of the old macros.
2383         * doc/md.texi (Blackfin Constraints): Update file name reference.
2384
2385 2008-04-11  Richard Guenther  <rguenther@suse.de>
2386
2387         PR tree-optimization/35869
2388         * tree-vrp.c (execute_vrp): Move switch statement update after
2389         jump threading.  Schedule another cfg cleanup run.
2390
2391 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
2392
2393         PR c/35744
2394         * attribs.c (decl_attributes): Return early on errorneous node.
2395
2396 2008-04-10  Oleg Ryjkov  <olegr@google.com>
2397
2398         * tree.h (struct tree_base): Added a new flag default_def_flag.
2399         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
2400
2401 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
2402
2403         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
2404
2405 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2406
2407         PR target/35768
2408         * pa.md: Define mode iterator P.  Define mode attribute dwc.
2409         (dcacheflush): Update pattern to use iterator P and attribute dwc.
2410         (icacheflush): Likewise.
2411         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
2412         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
2413
2414 2008-04-11  Ben Elliston  <bje@au.ibm.com>
2415
2416         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
2417
2418 2008-04-10  Rafael Espindola  <espindola@google.com>
2419
2420         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
2421         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
2422         (extract_range_from_expr): The same.
2423
2424 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
2425
2426         * config/mips/mips.md (GPR2): New mode iterator.
2427         (seq): Add comment.
2428         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
2429         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
2430         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
2431         Rewrite these to take two modes, the mode of comparison and the
2432         mode of the destination.
2433         * config/mips/mips.c (mips_expand_scc): Instead of having
2434         paradoxical subreg as destination, expand "narrowing" scc if mode
2435         of comparison is SI and target is requested in DI mode.
2436         (mips_emit_int_order_test): Update comment.  Make mode of
2437         comparison match CMP0 rather than TARGET.  When creating inverse
2438         target use mode of TARGET.
2439
2440 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
2441
2442         * gcov-dump.c (tag_summary): Only print summaries for the first
2443         GCOV_COUNTERS_SUMMABLE counters.
2444
2445 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
2446
2447         * config/i386/i386.md (absneg): New code iterator.
2448         (absnegprefix): New code attribute.
2449         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
2450         patterns using absneg code iterator.
2451         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
2452         using absneg code iterator.
2453         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
2454         *neg<mode>2 patterns using absneg code iterator.
2455         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
2456         *negextendsfdf2 patterns using absneg code iterator.
2457         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
2458         *negextendsfxf2 patterns using absneg code iterator.
2459         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
2460         *negextendsfdf2 patterns using absneg code iterator.
2461         * config/i386/sse.md (<code><mode>2): Macroize expander from
2462         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
2463
2464 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
2465
2466         * config/s390/s390.h: Remove the remains of the recent search
2467         & replace action of current_function_outgoing_args_size.
2468
2469 2008-04-10  Ira Rosen  <irar@il.ibm.com>
2470
2471         PR tree-optimization/35821
2472         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
2473         NEW_STMT_LIST is not NULL.
2474
2475 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
2476
2477         PR libstdc++/35597
2478         * toplev.c (process_options): Remove -ffunction-sections debugging
2479         warning.
2480
2481 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
2482
2483         PR middle-end/PR28690
2484         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
2485         than gen_rtx_fmt_ee to perform more canonicalizations.
2486
2487 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2488
2489         PR driver/35665
2490         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
2491
2492 2008-04-09  Richard Guenther  <rguenther@suse.de>
2493
2494         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
2495         (dump_function_to_file): Dump function arguments with types.
2496
2497 2008-04-08  Richard Guenther  <rguenther@suse.de>
2498
2499         * fold-const.c (fold_widened_comparison): Do not allow
2500         sign-changes that change the result.
2501
2502 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
2503
2504         PR target/35839
2505         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
2506         kinds of indirect references.
2507
2508 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
2509
2510         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
2511         GNU Fortran language string.
2512
2513 2008-04-08  Rafael Espindola  <espindola@google.com>
2514
2515         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
2516         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
2517         * tree.h (tree_call_nonnegative_warnv_p): New.
2518
2519 2008-04-08  Jan Hubicka  <jh@suse.cz>
2520
2521         * function.c (free_after_compilation): Clear out regno_reg_rtx
2522         pointer.
2523
2524 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
2525
2526         Revert
2527         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
2528
2529         PR middle-end/PR28690
2530         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
2531         same precedence as REG_POINTER and MEM_POINTER operands.
2532
2533 2008-04-08  Richard Guenther  <rguenther@suse.de>
2534
2535         PR middle-end/35834
2536         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
2537         for adding index to base.
2538
2539 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
2540
2541         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
2542         (MINGW_ENABLE_EXECUTE_STACK): New.
2543         (IN_LIBGCC2): For libgcc include windows.h file for
2544         function declarations.
2545
2546 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
2547
2548         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
2549         and tem2 if tem1 is not a REG or MULT.
2550
2551 2008-04-08  Jan Hubicka  <jh@suse.cz>
2552
2553         * function.h (incomming_args): Break out of struct function.
2554         (function_subsections): Break out of struct function.
2555         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
2556         return_rtx and hard_reg_initial_vals from struct function.
2557         Kill inl_max_label_num.
2558         (current_function_pops_args, current_function_args_info,
2559         current_function_args_size, current_function_args_size,
2560         current_function_pretend_args_size,
2561         current_function_outgoing_args_size,
2562         current_function_internal_arg_pointer, current_function_return_rtx):
2563         Kill compatibility accestor macros.
2564         * builtins.c (expand_builtin_apply_args_1): Update.
2565         (expand_builtin_next_arg): Update.
2566         * df-scan.c (df_get_call_refs): Update.
2567         * dbxout.c (dbxout_function_end): Update.
2568         * dwarf2out.c (dwarf2out_switch_text_section): Update.
2569         (output_line_info): Update.
2570         (secname_for_decl): Update.
2571         (dwarf2out_var_location): Update.
2572         * function.c (free_after_compilation): Update.
2573         (assign_parm_find_stack_rtl): Update.
2574         (assign_parms): Update.
2575         (expand_dummy_function_end): Update.
2576         (expand_function_end): Update.
2577         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
2578         (expand_call): Update.
2579         (emit_library_call_value_1): Update.
2580         (store_one_arg): Update.
2581         * varasm.c (initialize_cold_section_name): Update.
2582         (unlikely_text_section): Update.
2583         (unlikely_text_section_p): Update.
2584         (assemble_start_function): Update.
2585         (assemble_end_function): Update.
2586         (default_section_type_flags): Update.
2587         (switch_to_section): Update.
2588         * integrate.c (set_decl_abstract_flags): Update.
2589         (get_hard_reg_initial_val): Update.
2590         (has_hard_reg_initial_val): Update.
2591         (allocate_initial_values): Update.
2592         * resource.c (init_resource_info): Update.
2593         * config/alpha/alpha.c (NUM_ARGS): Update.
2594         (direct_return): Update.
2595         (alpha_va_start): Update.
2596         (alpha_sa_size): Update.
2597         (alpha_initial_elimination_offset): Update.
2598         (alpha_expand_prologue): Update.
2599         (alpha_start_function): Update.
2600         (alpha_expand_epilogue): Update.
2601         (unicosmk_initial_elimination_offset):
2602         * config/alpha/alpha.md (call expander): Update.
2603         * config/s390/s390.c (s390_register_info): Update.
2604         (s390_register_info): Update.
2605         (s390_frame_info): Update.
2606         (s390_initial_elimination_offset): Update.
2607         (s390_build_builtin_va_list): Update.
2608         (s390_va_start): Update.
2609         * config/spu/spu.c (direct_return): Update.
2610         (spu_expand_prologue): Update.
2611         (spu_initial_elimination_offset): Update.
2612         (spu_build_builtin_va_list): Update.
2613         (spu_va_start): Update.
2614         * config/sparc/sparc.c (sparc_init_modes): Update.
2615         (sparc_compute_frame_size): Update.
2616         (function_value): Update.
2617         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
2618         * config/i386/i386.md (return expander): Update.
2619         * config/i386/i386.c (ix86_va_start): Update.
2620         (ix86_can_use_return_insn_p): Update.
2621         (ix86_compute_frame_layout): Update.
2622         (ix86_expand_epilogue): Update.
2623         * config/sh/sh.c (output_stack_adjust): Update.
2624         (calc_live_regs): Update.
2625         (sh_expand_prologue): Update.
2626         (sh_builtin_saveregs): Update.
2627         (sh_va_start): Update.
2628         (initial_elimination_offset): Update.
2629         (sh_allocate_initial_value): Update.
2630         (sh_function_ok_for_sibcall): Update.
2631         (sh_get_pr_initial_val): Update.
2632         * config/sh/sh.md (return expander): Update.
2633         * config/avr/avr.c (frame_pointer_required_p): UPdate.
2634         * config/crx/crx.c (crx_compute_frame): UPdate.
2635         (crx_initial_elimination_offset): UPdate.
2636         * config/xtensa/xtensa.c (compute_frame_size): Update
2637         (xtensa_builtin_saveregs): Update.
2638         (xtensa_va_start): Update.
2639         (order_regs_for_local_alloc): Update.
2640         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
2641         (xstormy16_expand_builtin_va_start): Update.
2642         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
2643         * config/m68hc11/m68hc11.md (return expanders): Update.
2644         * config/m68hc11/m68hc11.c (expand_prologue): Update.
2645         (expand_epilogue): Update.
2646         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
2647         (cris_simple_epilogue): Update.
2648         (cris_expand_prologue): Update.
2649         (cris_expand_epilogue): Update.
2650         * config/iq2000/iq2000.c (iq2000_va_start): Update.
2651         (compute_frame_size): Update.
2652         * config/mt/mt.c (mt_compute_frame_size): Update.
2653         * config/mn10300/mn10300.c (expand_prologue): Update.
2654         (expand_epilogue): Update.
2655         (initial_offset): Update.
2656         (mn10300_builtin_saveregs):
2657         * config/mn10300/mn10300.md (return expander): Update.
2658         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
2659         (ia64_initial_elimination_offset): Update.
2660         (ia64_initial_elimination_offset): Update.
2661         (ia64_expand_prologue): Update.
2662         * config/m68k/m68k.md (return expander): Update.
2663         * config/rs6000/rs6000.c (rs6000_va_start): Update.
2664         (rs6000_stack_info): Update.
2665         * config/mcore/mcore.c (layout_mcore_frame): Update.
2666         (mcore_expand_prolog): Update.
2667         * config/arc/arc.c (arc_compute_frame_size): Update.
2668         * config/score/score3.c (score3_compute_frame_size): Update.
2669         * config/score/score7.c (score7_compute_frame_size): Update.
2670         * config/arm/arm.c (use_return_insn): Update.
2671         (thumb_find_work_register): Update.
2672         (arm_compute_save_reg_mask): Update.
2673         (arm_output_function_prologue): Update.
2674         (arm_output_epilogue): Update.
2675         (arm_size_return_regs): Update.
2676         (arm_get_frame_offsets): Update.
2677         (arm_expand_prologue): Update.
2678         (thumb_exit): Update.
2679         (thumb_unexpanded_epilogue): Update.
2680         (thumb1_output_function_prologue): Update.
2681         * config/pa/pa.md (return expander): Update.
2682         * config/pa/pa.c (compute_frame_size): Update.
2683         (hppa_builtin_saveregs): Update.
2684         * config/mips/mips.c (mips_va_start): Update.
2685         (mips16_build_function_stub): Update.
2686         (mips_compute_frame_info): Update.
2687         (mips_restore_gp): Update.
2688         (mips_output_function_prologue): Update.
2689         (mips_expand_prologue): Update.
2690         * config/v850/v850.c (compute_frame_size): Update.
2691         (expand_prologue): * config/mmix/mmix.c (along): update.
2692         (mmix_initial_elimination_offset): update.
2693         (mmix_reorg): update.
2694         (mmix_use_simple_return): update.
2695         (mmix_expand_prologue): update.
2696         (mmix_expand_epilogue): Update.
2697         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
2698         (emit_link_insn): Update.
2699
2700 2008-04-08  Anatoly Sokolov <aesok@post.ru>
2701
2702         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
2703         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
2704         instructions.
2705         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
2706         atmega103 device.
2707
2708 2008-04-07  Jan Hubicka  <jh@suse.cz>
2709
2710         * function.h (rtl): Rename to x_rtl.
2711         (crtl): New define.
2712         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
2713         frame_offset, stack_check_probe_note, arg_pointer_save_area,
2714         used_temp_slots avail_temp_slots, temp_slot_level,
2715         nonlocal_goto_handler_labels): Update accesstors.
2716         (rtl): New global variable.
2717         (struct function): Move some fileds to rtl_data.
2718         (get_arg_pointer_save_area): Update prototype.
2719         * builtins.c (expand_builtin_setjmp_receiver): Update call of
2720         get_arg_pointer_save_area.
2721         * expr.c (init_expr): Update
2722         * function.c (get_frame_size): Update
2723         (assign_stack_local): Update
2724         (expand_function_end): Update.
2725         (get_art_pointer_save_area): Update
2726         * function.h 
2727         * emit-rtl.c (rtl): Declare.
2728         (regno_reg_rtx): Declare.
2729         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
2730         Update.
2731         (gen_reg_rtx): Update.
2732         * varasm.c (n_deferred_constatns): Update accestor.
2733         (init_varasm_status): Do not allocate varasm_status.
2734         (force_const_mem, get_pool_size, output_constant_pool): Update.
2735         * stmt.c (force_label_rtx): Do not use x_ prefixes.
2736         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
2737         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
2738         * sparc/sparc.h (INIT_EXPANDERS): Update.
2739         * ia64/ia64.h (INIT_EXPANDERS): Update.
2740
2741 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
2742
2743         * reload.c (push_secondary_reload): Add missing break to for loop.
2744
2745 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
2746
2747         PR middle-end/PR28690
2748         * rtlanal.c: Update copyright years.
2749         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
2750         as REG_POINTER and MEM_POINTER operands.
2751         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
2752         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
2753         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
2754         * gcse.c: Update copyright years.
2755         (pre_delete): Call gen_reg_rtx_and_attrs.
2756         (hoist_code): Likewise.
2757         (build_store_vectors): Likewise.
2758         (delete_store): Likewise.
2759         * loop-invariant.c (move_invariant_reg): Likewise.
2760         Update copyright years.
2761
2762 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
2763
2764         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
2765         control string instead of quoted.
2766
2767 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
2768
2769         * doc/rtl.texi: Rewrite of subreg section.
2770
2771 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
2772
2773         PR/35842
2774         * config/i386/i386.c (legitimize_pic_address): Add treating
2775         of dllimport SYM_REF's.
2776         (legitimize_dllimport_symbol): Add prototype.
2777
2778 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
2779
2780         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
2781         reference in constructor with non self-referential type.
2782
2783 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
2784
2785         Removal of Return with Depressed Stack Pointer support
2786         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
2787         (ECF_SP_DEPRESSED): Likewise.
2788         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
2789         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
2790         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
2791         (expand_call): Do not test ECF_SP_DEPRESSED.
2792         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
2793         * function.c (keep_stack_depressed): Delete.
2794         (handle_epilogue_set): Likewise.
2795         (update_epilogue_consts): Likewise.
2796         (emit_equiv_load): Likewise.
2797         (thread_prologue_and_epilogue_insns): Remove support for Return with
2798         Depressed Stack Pointer.
2799         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
2800
2801 2008-04-06  Richard Guenther  <rguenther@suse.de>
2802
2803         PR tree-optimization/35400
2804         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
2805         information from SSA_NAMEs.
2806
2807 2008-04-06  Anatoly Sokolov <aesok@post.ru>
2808
2809         * config/avr/avr.h (avr_mega_p): Remove declaration.
2810         (AVR_MEGA): Remove macro.
2811         * config/avr/avr.c (avr_mega_p): Remove variable.
2812         (avr_override_options): Remove inicializion of avr_mega_p.
2813         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
2814         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
2815         (avr_jump_mode): (Ditto.).
2816         (avr_output_progmem_section_asm_op): (Ditto.).
2817         (avr_asm_init_sections): (Ditto.).
2818         (avr_asm_init_sections): (Ditto.).
2819         (avr_rtx_costs): (Ditto.).
2820         * config/avr/avr.md: (Ditto.).
2821         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
2822         '__AVR_MEGA__'.
2823
2824 2008-04-06  Richard Guenther  <rguenther@suse.de>
2825
2826         PR tree-optimization/35842
2827         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
2828         is_gimple_invariant_address.
2829
2830 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2831
2832         * gcc.c (default_compilers): Sync Fortran extensions list with
2833         that in fortran/lang-specs.h.
2834         * doc/invoke.texi: Likewise.
2835         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
2836         * dwarf2out.c (gen_compile_unit_die): Likewise.
2837
2838 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
2839
2840         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
2841
2842 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
2843
2844         PR target/12329
2845         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
2846         attribute is used for nested functions.
2847
2848 2008-04-05  Jan Hubicka  <jh@suse.cz>
2849
2850         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
2851
2852         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
2853         letter argument.
2854         (dump_files): Update.
2855         (enable_rtl_dump_file): Do not accept letter argument.
2856         * tree-pass.h (dump_file_info): Remove letter argument.
2857         * toplev.c (decode_d_option): Update -da handling.
2858         * toplev.h (enable_rtl_dump_file): Update prototype.
2859         * passes.c (register_one_dump_file): Do not accept IPA argument; work
2860         it out based on pass type.
2861         (register_dump_files_1): Likewise.
2862         (init_optimization_passes): Update register_one_dump_file calls.
2863         (execute_one_pass): Sanity check that IPA passes are called at IPA
2864         level and RTL passes at RTL level.
2865         (execute_pass_list): IPA pass can not be after or subpass of
2866         GIMPLE/RTL pass.
2867         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
2868         disallov RTL subpasses of IPA subpasses.
2869
2870 2008-04-05  Ben Elliston  <bje@au.ibm.com>
2871
2872         * tree-cfg.c (need_fake_edge_p): Return false for calls to
2873         builtins that return exactly once and do not throw. Cache call to
2874         call_expr_flags.
2875
2876 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
2877
2878         PR rtl-optimization/34916
2879         PR middle-end/35519
2880         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
2881         between instruction pairs.
2882
2883 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
2884
2885         * doc/invoke.texi: Document -mbitops for SH.
2886         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
2887         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
2888         * config/sh/sh.c (print_operand): Add %t operand code.
2889         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
2890         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
2891         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
2892         (extendqihi2): Likewise.
2893         (movqi_i): Likewise.
2894         (insv): Use bset, bclr and bst instructions for SH2A if possible.
2895         (extv): Use bld instruction for SH2A if possible.
2896         (extzv): Likewise.
2897         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
2898         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
2899         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
2900         (bset.b, bclr.b): Define peepholes.
2901         * config/sh/sh.opt (mbitops): New option.
2902
2903 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
2904
2905         PR target/35620
2906         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
2907         and view convert expression.
2908
2909 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
2910
2911         PR target/35364
2912         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
2913
2914 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
2915
2916         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
2917
2918         * config/i386/cpuid.h (bit_AES): New.
2919         (bit_PCLMUL): Likewise.
2920
2921         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
2922         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
2923         SSE2 if AES or PCLMUL is enabled.
2924         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
2925         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
2926         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
2927         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
2928         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
2929         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
2930         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
2931         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
2932         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
2933         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
2934         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
2935         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
2936         __builtin_ia32_aeskeygenassist128 and
2937         __builtin_ia32_pclmulqdq128.
2938         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
2939         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
2940         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
2941
2942         * config/i386/i386.h (TARGET_AES): New.
2943         (TARGET_PCLMUL): Likewise.
2944         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
2945
2946         * config/i386/i386.md (UNSPEC_AESENC): New.
2947         (UNSPEC_AESENCLAST): Likewise.
2948         (UNSPEC_AESDEC): Likewise.
2949         (UNSPEC_AESDECLAST): Likewise.
2950         (UNSPEC_AESIMC): Likewise.
2951         (UNSPEC_AESKEYGENASSIST): Likewise.
2952         (UNSPEC_PCLMUL): Likewise.
2953
2954         * config/i386/i386.opt (maes): New.
2955         (mpclmul): Likewise.
2956
2957         * config/i386/sse.md (aesenc): New pattern.
2958         (aesenclast): Likewise.
2959         (aesdec): Likewise.
2960         (aesdeclast): Likewise.
2961         (aesimc): Likewise.
2962         (aeskeygenassist): Likewise.
2963         (pclmulqdq): Likewise.
2964
2965         * config/i386/wmmintrin.h: New.
2966
2967         * doc/extend.texi: Document AES and PCLMUL built-in function.
2968
2969         * doc/invoke.texi: Document -maes and -mpclmul.
2970
2971 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
2972
2973         * function.c (free_after_parsing): Replace with
2974         cxx_push_function_context from C++ front-end.
2975         (allocate_struct_function): Don't call langhook.
2976         * langhooks.h (struct lang_hooks_for_functions): Delete.
2977         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
2978         member "function".
2979         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
2980         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
2981         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
2982         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
2983         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
2984         remove LANG_HOOKS_FUNCTION_INITIALIZER.
2985         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
2986
2987         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
2988         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
2989         
2990 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
2991
2992         PR c/35440
2993         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
2994         for all types.
2995
2996 2008-04-04  Richard Guenther  <rguenther@suse.de>
2997
2998         PR middle-end/35823
2999         * fold-const.c (optimize_minmax_comparison): Use the correct
3000         type for the constant in the simplified comparison.
3001
3002 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
3003
3004         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
3005         Pass L2 size as "--param l2-cache-size" to the compiler.
3006         (decode_l2_cache): New function to decode L2 cache parameters using
3007         0x8000006 extended cpuid function.
3008         (detect_caches_amd): Determine parameters of L2 cache using
3009         decode_l2_caches function.
3010         (decode_caches_intel): Decode L2 cache parameters.
3011         (detect_caches_intel): Determine L2 cache parameters using
3012         decode_caches_intel and decode_l2_caches functions.
3013
3014 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
3015
3016         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
3017         secondary input reload for subword loads from the constant pool.
3018
3019 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
3020
3021         PR target/35713
3022         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
3023           constants of the appropriate size for runtime calculations.
3024
3025         PR c/35712
3026         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
3027           decimal-float literal constant zero.
3028
3029 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
3030
3031         PR c/35738
3032         * c-parser.c (c_parser_omp_atomic): Call
3033         default_function_array_conversion on the RHS.
3034
3035         PR middle-end/35818
3036         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
3037         call is_variable_sized if decl has incomplete type.
3038
3039 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
3040
3041         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
3042
3043 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
3044
3045         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
3046         iterators.
3047         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
3048         (sgt<u>): Merge sgt and sgtu into new expander.
3049         (sgt, sgtu): Remove expanders.
3050         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
3051         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
3052         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
3053         *sgtu_<mode>_mips16 into new pattern.
3054         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
3055         (sge<u>): Merge sge and sgeu into new expander.
3056         (sge, sgeu): Remove expanders.
3057         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
3058         new pattern.
3059         (*sge_<mode>, second *sge_<mode>): Remove patterns.
3060         (slt<u>): Merge slt and sltu into new expander.
3061         (slt, sltu): Remove expanders.
3062         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
3063         (*slt_<mode>, *sltu_<mode>): Remove patterns.
3064         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
3065         *sltu_<mode>_mips16 into new pattern.
3066         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
3067         (sle<u>): Merge sle and sleu into new expander.
3068         (sle, sleu): Remove expanders.
3069         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
3070         (*sle_<mode>, *sleu_<mode>): Remove patterns.
3071         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
3072         *sleu_<mode>_mips16 into new pattern.
3073         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
3074
3075 2008-04-03  Jan Hubicka  <jh@suse.cz>
3076
3077         PR tree-optimization/35795
3078         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
3079         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
3080         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
3081         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
3082         * score/score3.c (score3_output_mi_thunk): Likewise.
3083         * score/score7.c (score7_output_mi_thunk): Likewise.
3084         * mips/mips.c (mips_output_mi_thunk): Likewise.
3085
3086 2008-04-03  Richard Guenther  <rguenther@suse.de>
3087
3088         * tree-vrp.c (extract_range_from_unary_expr): Handle all
3089         conversions.  Simplify code.
3090
3091 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
3092
3093         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
3094
3095 2008-04-03  Tom Tromey  <tromey@redhat.com>
3096             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3097
3098         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
3099         * config/bfin/t-bfin-linux (generated_files): Add
3100         linux-sysroot-suffix.h.
3101         * doc/install.texi (Prerequisites): Require make 3.80.
3102         * doc/sourcebuild.texi (Front End Directory): Document new
3103         variable.
3104         * Makefile.in (generated_files): New variable.
3105         (ALL_HOST_OBJS): New variable.
3106         ($(ALL_HOST_OBJS)): New target.
3107
3108 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
3109
3110         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
3111         (remap_block): Call id->transform_lang_insert_block instead
3112         of langhook.
3113         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
3114         Set id.transform_lang_insert_block to NULL.
3115         (clone_body): Move to cp/optimize.c
3116         * tree-inline.h (struct copy_body_data): Change
3117         transform_lang_insert_block to function pointer.
3118         (copy_generic_body, copy_decl_no_change): Export.
3119         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
3120         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
3121         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
3122
3123         * c-tree.h (insert_block): Kill.
3124         * c-decl.c (insert_block): Kill.
3125
3126 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
3127
3128         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
3129         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
3130         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
3131         argument.
3132         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
3133         argument, call {push,pop}_function_context from here.
3134         * c-parser.c: Use c_{push,pop}_function_context.
3135
3136         * function.c (push_function_context_to): Move meat ...
3137         (push_function_context): ... here.  Simplify.
3138         * function.c (pop_function_context_from): Move meat ...
3139         (pop_function_context): ... here.  Simplify.
3140         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
3141         leave_nested).
3142         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
3143         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
3144         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
3145         * tree.h (push_function_context_to, pop_function_context_from): Remove.
3146
3147 2008-04-03  Ben Elliston  <bje@au.ibm.com>
3148
3149         * expmed.c (extract_force_align_mem_bit_field): Remove.
3150
3151 2008-04-03  Richard Guenther  <rguenther@suse.de>
3152
3153         PR middle-end/35800
3154         * expr.h (try_casesi): Adjust prototype.
3155         * expr.c (try_casesi): Take fallback label as extra parameter.
3156         Use that for gen_casesi if default_label is NULL.
3157         * stmt.c (expand_case): Pass fallback label to try_casesi,
3158         make sure to fill gaps with a fallback label if default_label
3159         is not present.
3160
3161 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
3162
3163         PR target/35801
3164         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
3165
3166 2008-04-03  Ben Elliston  <bje@au.ibm.com>
3167
3168         * expmed.c (extract_split_bit_field): Remove if (0) code.
3169         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
3170         (do_ds_constraint): Likewise.
3171
3172 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
3173
3174         * doc/cppopts.texi (-dU): Document.
3175         * c-common.h (flag_dump_macros): Update comment.
3176         * c-opts.c (handle_OPT_d): Handle -dU.
3177         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
3178         dump_queued_macros, cb_used_define, cb_used_undef): New.
3179         (init_pp_output): Handle -dU.
3180         (cb_line_change): Call dump_queued_macros.
3181         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
3182
3183 2008-04-02  Anatoly Sokolov <aesok@post.ru>
3184
3185         * config/avr/predicates.md (io_address_operand): New predicate. 
3186         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
3187         * config/avr/avr.c (avr_io_address_p): Remove function.
3188         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
3189         'avr_io_address_p' function.
3190         (out_movhi_r_mr): (Ditto.).
3191         (out_movqi_mr_r): (Ditto.).
3192         (out_movhi_mr_r): (Ditto.).
3193         (avr_address_cost): (Ditto.).
3194
3195 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
3196
3197         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
3198         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
3199         in 32bit mode when XMM registers are available to avoid store
3200         forwarding stalls.
3201         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
3202         corresponding post-reload splitters.
3203
3204 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
3205
3206         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
3207         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
3208         __builtin_ia32_roundss.
3209         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
3210         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
3211         __builtin_ia32_roundss.
3212         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
3213         IX86_BUILTIN_SHUFPD here.
3214
3215 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
3216
3217         * config/i386/i386.md (plogic): New.
3218         (plogicprefix): Likewise.
3219
3220         * config/i386/mmx.md (mmx_<code><mode>3): New.
3221         (mmx_and<mode>3): Removed.
3222         (mmx_ior<mode>3): Likewise.
3223         (mmx_xor<mode>3): Likewise.
3224
3225         * config/i386/sse.md (<code><mode>3): New.
3226         (*<code><mode>3): Likewise.
3227         (*<code><mode>3): Likewise.
3228         (<code><mode>3): Likewise.
3229         (*sse_<code><mode>3): Likewise.
3230         (*sse2_<code><mode>3): Likewise.
3231         (<code>tf3): Likewise.
3232         (*<code>tf3): Likewise.
3233         (and<mode>3): Likewise.
3234         (*and<mode>3): Likewise.
3235         (ior<mode>3): Removed.
3236         (*ior<mode>3): Likewise.
3237         (xor<mode>3): Likewise.
3238         (*xor<mode>3): Likewise.
3239         (*and<mode>3): Likewise.
3240         (*ior<mode>3): Likewise.
3241         (*xor<mode>3): Likewise.
3242         (and<mode>3): Likewise.
3243         (*sse_and<mode>3): Likewise.
3244         (*sse2_and<mode>3): Likewise.
3245         (andtf3): Likewise.
3246         (*andtf3): Likewise.
3247         (ior<mode>3): Likewise.
3248         (*sse_ior<mode>3): Likewise.
3249         (*sse2_ior<mode>3): Likewise.
3250         (iortf3): Likewise.
3251         (*iortf3): Likewise.
3252         (xor<mode>3): Likewise.
3253         (*sse_xor<mode>3): Likewise.
3254         (*sse2_xor<mode>3): Likewise.
3255         (xortf3): Likewise.
3256         (*xortf3): Likewise.
3257
3258 2008-04-02  Richard Guenther  <rguenther@suse.de>
3259
3260         PR tree-optimization/14495
3261         PR tree-optimization/34793
3262         * tree-vrp.c (struct switch_update): New structure.
3263         (to_remove_edges, to_update_switch_stmts): New VECs.
3264         (simplify_switch_using_ranges): New function.  Remove not taken
3265         case labels and edges.
3266         (simplify_stmt_using_ranges): Call it.
3267         (identify_jump_threads): Mark edges we have queued for removal
3268         so we don't thread them.
3269         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
3270         case label vector.
3271         * tree-cfg.c (group_case_labels): Deal with missing default label.
3272         (tree_verify_flow_info): Allow missing default label.
3273         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
3274         (emit_case_nodes): Likewise.
3275         (expand_case): Do not rely on the default label to be present.
3276         * expr.c (try_casesi): Deal with NULL default_label.
3277         (do_tablejump): Likewise.
3278
3279 2008-04-02  Richard Guenther  <rguenther@suse.de>
3280
3281         PR tree-optimization/14495
3282         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
3283         SWITCH_EXPR here ...
3284         (vrp_visit_switch_stmt): ... but here (new function).
3285         (find_case_label_index): New helper function.
3286         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
3287
3288 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
3289
3290         * fwprop.c: Fix ISO-C99ism.
3291
3292 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
3293
3294         PR bootstrap/35752
3295         * Makefile.in (objdir): Set it here.
3296         * configure.ac: Not here.  Find dynamic linker characteristics.
3297         * exec-tool.in: Use them.
3298         * aclocal.m4: Regenerate.
3299         * configure: Regenerate.
3300
3301 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
3302
3303         * expr.c (expand_var): Delete it.
3304         * expr.h (expand_var): Delete prototype.
3305         * function.c (expand_function_start): Use expand_decl instead.
3306         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
3307         langhook.
3308
3309 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
3310
3311         PR rtl-optimization/35542
3312         * fwprop.c (forward_propagate_and_simplify): Replace
3313         loc_reg_mentioned_in_p with reg_mentioned_p.
3314
3315 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
3316
3317         PR rtl-optimization/35281
3318         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
3319         (propagate_rtx_1): Handle PR_HANDLE_MEM.
3320         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
3321         (varying_mem_p): Move above propagate_rtx.
3322         (all_uses_available_at): Do not check MEMs.
3323
3324 2008-04-02  Rafael Espindola  <espindola@google.com>
3325
3326         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
3327         (register_edge_assert_for_2): Split the cond argument.
3328         (register_edge_assert_for_1): Adjust for the change in
3329         register_edge_assert_for_2.
3330         (register_edge_assert_for): Split the cond argument.
3331         (find_switch_asserts): Adjust for the change in
3332         register_edge_assert_for.
3333
3334 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
3335
3336         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
3337         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
3338         offsets for 64-bit mingw.
3339         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
3340         abi for x86_64-pc-mingw.
3341
3342 2008-04-02  Richard Guenther  <rguenther@suse.de>
3343
3344         * tree-vrp.c (extract_range_from_assert): Make sure to not
3345         produce range min/max with TREE_OVERFOW set.
3346         If merging a anti-range and a range keep the anti-range if
3347         the range covers all values of the type.
3348         (register_edge_assert_for_2): Only allow sign-changing
3349         conversions in detecting canonical range checks.  Also
3350         register an assert for the unsigned name if useful.
3351
3352         PR tree-optimization/35787
3353         * tree-vrp.c (vrp_val_max): New function.
3354         (vrp_val_min): Likewise.
3355         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
3356         (vrp_val_is_min): Likewise.
3357         (supports_overflow_infinity): Use vrp_val_{min,max}.
3358         (negative_overflow_infinity): Likewise.
3359         (positive_overflow_infinity): Likewise.
3360         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
3361         (is_positive_overflow_infinity): Likewise.
3362         (is_overflow_infinity): Likewise.
3363         (avoid_overflow_infinity): Use vrp_val_{min,max} and
3364         vrp_val_is_{min,max}.
3365         (set_and_canonicalize_value_range): Canonicalize anti-ranges
3366         to ranges if possible.  Avoid empty ranges.
3367
3368 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3369
3370         PR middle-end/35705
3371         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
3372         the expression is a function address.
3373
3374 2008-04-01  George Helffrich  <george@gcc.gnu.org>
3375
3376         PR fortran/35154, fortran/23057
3377         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
3378         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
3379         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
3380         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
3381         in common.
3382         (dbxout_syms): Check for COMMON-based symbol and wrap in
3383         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
3384         in bracket for efficiency.
3385
3386         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
3387         using DW_TAG_common_block + member offset.
3388         (add_pubname_string): New function.
3389         (dw_expand_expr): New function to find block name and offset for
3390         COMMON var.
3391         (common_check): New function to check whether symbol in Fortran COMMON.
3392         (gen_variable_die): If COMMON, use DW_TAG_common_block.
3393
3394 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
3395
3396         PR c/35436
3397         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
3398
3399 2008-04-02  Ben Elliston  <bje@au.ibm.com>
3400
3401         * config/v850/v850.md (casesi): Remove if (0) code.
3402         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
3403         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
3404
3405 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
3406
3407         * config/i386/i386.md (rex64suffix): New mode attribute.
3408         (floathi<mode>2): Disable expander for SSE math.
3409         (*floathi<mode>2_1): New insn insn_and_split pattern.
3410         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
3411         corresponding post-reload splitters.
3412         (*floathi<mode>2_i387): New macroized insn pattern.
3413         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
3414         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
3415         insn_and_split pattern.
3416         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
3417         New macroized instruction patterns and corresponding post-reload
3418         splitters.
3419         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
3420         and corresponding post-reload splitters.
3421         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
3422         New macroized instruction patterns.
3423         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
3424         macroized instruction patterns and corresponding post-reload splitters.
3425         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
3426         corresponding post-reload splitters.
3427         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
3428         New macroized instruction patterns.
3429         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
3430         corresponding post-reload splitters.
3431         (*floatsi<mode>2_i387): New macroized instruction patterns.
3432
3433 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
3434
3435         * config/i386/i386.md (smaxmin): New.
3436         (umaxmin): Likewise.
3437         (maxminiprefix): Likewise.
3438         (maxminfprefix): Likewise.
3439         (<code><mode>3): Likewise.
3440         (smin<mode>3): Removed.
3441         (smax<mode>3): Likewise.
3442
3443         * config/i386/mmx.md (mmx_<code>v2sf3): New.
3444         (mmx_<code>v4hi3): Likewise.
3445         (mmx_<code>v8qi3): Likewise.
3446         (mmx_smaxv2sf3): Removed.
3447         (mmx_sminv2sf3): Likewise.
3448         (mmx_umaxv8qi3): Likewise.
3449         (mmx_smaxv4hi3): Likewise.
3450         (mmx_uminv8qi3): Likewise.
3451         (mmx_sminv4hi3): Likewise.
3452
3453         * config/i386/sse.md (<addsub><mode>3): New.
3454         (*<addsub><mode>3): Likewise.
3455         (<sse>_vm<addsub><mode>3): Likewise.
3456         (<maxmin><mode>3): Likewise.
3457         (*<maxmin><mode>3_finite): Likewise.
3458         (*<maxmin><mode>3): Likewise.
3459         (<sse>_vm<maxmin><mode>3): Likewise.
3460         (sse3_h<addsub>v4sf3): Likewise.
3461         (sse3_h<addsub>v2df3): Likewise.
3462         (<maxmin>v16qi3): Likewise.
3463         (*<maxmin>v16qi3): Likewise.
3464         (<maxmin>v8hi3): Likewise.
3465         (*<maxmin>v8hi3): Likewise.
3466         (*sse4_1_<maxmin><mode>3): Likewise.
3467         (*sse4_1_<maxmin><mode>3): Likewise.
3468         (add<mode>3): Removed.
3469         (*add<mode>3): Likewise.
3470         (<sse>_vmadd<mode>3): Likewise.
3471         (sub<mode>3): Likewise.
3472         (*sub<mode>3): Likewise.
3473         (<sse>_vmsub<mode>3): Likewise.
3474         (smin<mode>3): Likewise.
3475         (*smin<mode>3_finite): Likewise.
3476         (*smin<mode>3): Likewise.
3477         (<sse>_vmsmin<mode>3): Likewise.
3478         (smax<mode>3): Likewise.
3479         (*smax<mode>3_finite): Likewise.
3480         (*smax<mode>3): Likewise.
3481         (<sse>_vmsmax<mode>3): Likewise.
3482         (sse3_haddv4sf3): Likewise.
3483         (sse3_haddv2df3): Likewise.
3484         (sse3_hsubv4sf3): Likewise.
3485         (sse3_hsubv2df3): Likewise.
3486         (umaxv16qi3): Likewise.
3487         (*umaxv16qi3): Likewise.
3488         (smaxv8hi3): Likewise.
3489         (*smaxv8hi3): Likewise.
3490         (*sse4_1_smax<mode>3): Likewise.
3491         (*sse4_1_umax<mode>3): Likewise.
3492         (uminv16qi3): Likewise.
3493         (*uminv16qi3): Likewise.
3494         (sminv8hi3): Likewise.
3495         (*sminv8hi3): Likewise.
3496         (*sse4_1_smin<mode>3): Likewise.
3497         (*sse4_1_umin<mode>3): Likewise.
3498
3499 2008-04-01  Rafael Espindola  <espindola@google.com>
3500
3501         * tree-cfg.c (verify_expr): remove in_phi.
3502         (verify_stmt): Don't call walk_tree with verify_expr. Use
3503         is_gimple_min_invariant instead of is_gimple_val.
3504
3505 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
3506
3507         * doc/include/gpl_v3.texi: Update for manpage generation.
3508         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
3509         gpl.texi.
3510         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
3511         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
3512         gpl_v3.texi instead of gpl.texi.
3513         (gpl.pod): New.
3514
3515 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
3516
3517         PR pch/13675
3518         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
3519
3520 2008-04-01  Rafael Espindola  <espindola@google.com>
3521
3522         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
3523         (extract_code_and_val_from_cond): Use
3524         extract_code_and_val_from_cond_with_ops.
3525
3526 2008-04-01  Jan Hubicka  <jh@suse.cz>
3527
3528         * function.c (free_after_compilation): Free epilogue_delay_list.
3529         (prepare_function_start): Assert that previous compilation was freed.
3530
3531 2008-04-01  Jan Hubicka  <jh@suse.cz>
3532             Jim Wilson  <wilson@tuliptree.org>
3533             Andreas Tobler <andreast@gcc.gnu.org>
3534
3535         PR middle-end/35781
3536         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
3537         rtl.emit instead cfun->emit.
3538         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
3539         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
3540
3541 2008-04-01  Ben Elliston  <bje@au.ibm.com>
3542
3543         * doc/c-tree.texi (Function Basics): Fix grammatical error.
3544
3545 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
3546
3547         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
3548         New options
3549         (fprofile-use): Add var flag_profile_use
3550         * coverage.c (coverage_begin_output): Do not open a gcno file for
3551         output only if -ftest-coverage is set.
3552         Do not add getpwd() to gcda file path.
3553         (build_gcov_info): Check the new flag
3554         flag_profile_datafile_relative_path.
3555         (coverage_init): Use profile_data_prefix.
3556         Read profile counter only if flag_profile_use is set.
3557         * opts.c (common_handle_option): New option fprofile-use=,
3558         fprofile-dir=, fprofile-generate=.
3559         * toplev.c (profile_data_prefix): New variable definition.
3560         * toplev.h (profile_data_prefix): New declaration.
3561         * doc/invoke.tex (Option Summary, Optimization Options):
3562         Add new options.
3563
3564 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
3565
3566         * varasm.c (output_constant_pool_1): In LABEL_REF check,
3567         use tmp consistently.
3568
3569         PR target/35695
3570         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
3571         * config/ia64/ia64.c (rtx_needs_barrier): Handle
3572         UNSPEC_FR_RECIP_APPROX_RES.
3573         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
3574
3575 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
3576
3577         PR c/35750
3578         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
3579
3580 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3581
3582         PR middle-end/30186
3583         * fold-const.c (fold_indirect_ref_1): Support accessing non first
3584         element of the vector via a pointer.
3585
3586 2008-03-31  Ian Lance Taylor  <iant@google.com>
3587
3588         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
3589
3590 2008-03-31  Jan Hubicka  <jh@suse.cz>
3591
3592         * builtins.c (expand_builtin_setjmp_receiver): Update call of
3593         get_arg_pointer_save_area.
3594         * expr.c (init_expr): Just clear out rtl.expr.
3595         * function.c (free_after_compilation): Clear out whole RTL structure.
3596         (get_func_frame_size): Merge into ...
3597         (get_frame_size): ... this one.
3598         (assign_stack_local_1): Merge into ...
3599         (assign_stack_local): ... this one.
3600         (expand_function_end): Update call of get_arg_pointer_save_area.
3601         (get_art_pointer_save_area): Remove cfun argument.
3602         * function.h (emit_status): regno_pointer_align does not need length
3603         attribute. Move x_regno_reg_rtx to ...
3604         (regno_reg_rtx): ... new global array.
3605         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
3606         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
3607         apply_args_value, forced_labels, stack_pointer_delta):
3608         Update accestors.
3609         (struct varasm_status): Move here from varasm.c
3610         (struct rtl_data): New. Move here some fields from struct function.
3611         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
3612         frame_offset, stack_check_probe_note, arg_pointer_save_area,
3613         used_temp_slots avail_temp_slots, temp_slot_level,
3614         nonlocal_goto_handler_labels): Update accesstors.
3615         (rtl): New global variable.
3616         (struct function): Move some fileds to rtl_data.
3617         (get_arg_pointer_save_area): Update prototype.
3618         * emit-rtl.c (rtl): Declare.
3619         (regno_reg_rtx): Declare.
3620         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
3621         Update.
3622         (gen_reg_rtx): Update.
3623         (init_virtual_regs): Do not tate emit_status argument.
3624         (init_emit): Do not allocate emit.
3625         * varasm.c (varasm_statuc): Move to function.h.
3626         (n_deferred_constatns): Update accestor.
3627         (init_varasm_status): Do not allocate varasm_status.
3628         (force_const_mem, get_pool_size, output_constant_pool): Update.
3629         * stmt.c (force_label_rtx): Do not use x_ prefixes.
3630         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
3631
3632 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
3633
3634         PR rtl-optimization/35729
3635         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
3636         references.
3637
3638 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
3639
3640         PR target/32000
3641         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
3642         load/store if memory is unaligned.
3643         (*movti_rex64): Likewise.
3644
3645         * config/i386/predicates.md (misaligned_operand): New.
3646
3647 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
3648
3649         PR tree-opt/35431
3650         * tree-ssa-phiopt.c (conditional_replacement): Return early for
3651         complex types.
3652
3653 2008-03-31  Jan Beulich  <jbeulich@novell.com>
3654
3655         * config/ia64/constraints.md: Add 'j' constraint.
3656         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
3657         (movdi_internal): Likewise.
3658
3659 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
3660
3661         PR c/35748
3662         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
3663
3664 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
3665
3666         PR target/35757
3667         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
3668         proper error message for the third argument on blendpd and
3669         blendps.
3670
3671         * config/i386/sse.md (blendbits): New.
3672         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
3673
3674 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
3675
3676         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
3677
3678 2008-03-30  Richard Guenther  <rguenther@suse.de>
3679
3680         PR middle-end/31023
3681         * fold-const.c (fold_sign_changed_comparison): Do leave
3682         conversions to base-types alone.
3683
3684 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3685
3686         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
3687         the link register if one altivec register is be saved.
3688
3689 2008-03-30  Ben Elliston  <bje@au.ibm.com>
3690
3691         * final.c (final_scan_insn): Remove if (0) code.
3692
3693 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
3694
3695         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
3696
3697 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
3698
3699         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
3700         of V4SFmode to ix86_binary_operator_ok.
3701
3702 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
3703
3704         * config/i386/i386.c (override_options): Initialize
3705         ix86_veclib_handler to ix86_veclibabi_svml when
3706         -mveclibabi=svml is used.
3707         (ix86_veclibabi_svml): New function for SVML ABI style
3708         vectorization support.
3709         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
3710
3711 2008-03-28  Rafael Espindola  <espindola@google.com>
3712
3713         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
3714         (tree_binary_nonnegative_warnv_p): Make it public.
3715         (tree_single_nonnegative_warnv_p): Make it public.
3716         (tree_invalid_nonnegative_warnv_p): Make it public.
3717         (tree_unary_nonzero_warnv_p): Make it public.
3718         (tree_binary_nonzero_warnv_p): Make it public
3719         (tree_single_nonzero_warnv_p): Make it public.
3720         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
3721         (extract_range_from_binary_expr): Split the expr argument.
3722         (extract_range_from_unary_expr): Split the expr argument.
3723         (extract_range_from_comparison): Split the expr argument.
3724         (extract_range_from_expr): Use the new aux functions.
3725         (vrp_evaluate_conditional_warnv): Use
3726         vrp_evaluate_conditional_warnv_with_ops.
3727         * tree.h (tree_unary_nonzero_warnv_p): Declare.
3728         (tree_binary_nonzero_warnv_p): Declare.
3729         (tree_single_nonzero_warnv_p): Declare.
3730         (tree_expr_nonzero_warnv_p): Declare.
3731         (tree_unary_nonnegative_warnv_p): Declare.
3732         (tree_binary_nonnegative_warnv_p): Declare.
3733         (tree_single_nonnegative_warnv_p): Declare.
3734         (tree_invalid_nonnegative_warnv_p): Declare.
3735
3736 2008-03-28  Richard Guenther  <rguenther@suse.de>
3737
3738         PR tree-optimization/30317
3739         PR tree-optimization/30911
3740         PR tree-optimization/34793
3741         * tree-vrp.c (set_and_canonicalize_value_range): New function.
3742         (struct assert_locus_d): New member EXPR.
3743         (register_new_assert_for): Add EXPR parameter to support
3744         ASSERT_EXPR <name, expr OP limit>.
3745         (register_edge_assert_for_1): Adjust callers.
3746         (find_assert_locations): Likewise.
3747         (process_assert_insertions_for): Build condition from expression.
3748         (extract_range_from_assert): Handle ASSERT_EXPRs
3749         of the form ASSERT_EXPR <name, expr OP limit>.
3750         (register_edge_assert_for_2): New helper registering
3751         asserts for comparisons.  Recognize range tests of the form
3752         (unsigned)i - CST1 OP CST2.
3753         (register_edge_assert_for_1): Use it.
3754         (register_edge_assert_for): Likewise.
3755         (needs_overflow_infinity): Integer sub-types
3756         do not need overflow infinities.
3757         (vrp_val_is_max): The extreme values of integer sub-types
3758         are those of the base type.
3759         (vrp_val_is_min): Likewise.
3760         * tree.def (ASSERT_EXPR): Document extra allowed conditional
3761         expressions.
3762
3763 2008-03-28  Nick Clifton  <nickc@redhat.com>
3764
3765         PR target/31110
3766         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
3767         Return GENERAL_REGS for stack adjustment reloads.
3768
3769 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3770
3771         PR target/31334
3772         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
3773         const_vector when all the vectors are constant.
3774
3775 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
3776
3777         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
3778         comparisons.
3779         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
3780         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
3781         (scc_sf): New.
3782         (s<code>_sf): Use new scc_sf attribute for opcode names.
3783
3784 2008-03-27  Tom Tromey  <tromey@redhat.com>
3785
3786         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
3787         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
3788         config/spu/t-spu-elf, config/i386/t-interix,
3789         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
3790         config/i386/x-darwin, config/i386/x-mingw32,
3791         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
3792         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
3793         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
3794         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
3795         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
3796         config/rs6000/x-darwin, config/rs6000/t-rs6000,
3797         config/score/t-score-elf, config/arm/t-strongarm-pe,
3798         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
3799         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
3800         Revert automatic dependency patch.
3801
3802 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3803
3804         PR target/35657
3805         * config/i386/i386.c (ix86_function_arg_boundary): Align
3806         decimal floating point to its natural boundary.
3807
3808 2008-03-27  Richard Guenther  <rguenther@suse.de>
3809
3810         PR middle-end/35716
3811         * fold-const.c (fold_comparison): Restrict distinct decl
3812         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
3813         solely rely on operand_equal_p.
3814
3815 2008-03-27  Richard Guenther  <rguenther@suse.de>
3816
3817         PR c/32511
3818         * c-common.c (handle_weak_attribute): Reject combination of
3819         weak and inline.
3820
3821 2008-03-27  Richard Guenther  <rguenther@suse.de>
3822
3823         PR tree-optimization/32810
3824         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
3825         conversions from DECL_INITIAL.
3826         (fold_const_aggregate_ref): Likewise from constructor elements.
3827
3828 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
3829
3830         * tree-affine.h (aff_combination_expand): Declare.
3831         (get_inner_reference_aff): Likewise.
3832         * tree-affine.c (aff_combination_expand): Split out from
3833         tree_to_aff_combination_expand.
3834         (get_inner_reference_aff): New function.
3835         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
3836         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
3837         (struct lim_aux_data): sm_done field removed.
3838         (mem_ref_loc_p, mem_ref_locs_p): New types.
3839         (struct mem_ref): Added id, stored, accesses_in_loop,
3840         indep_loop, dep_loop, indep_ref, dep_ref fields.
3841         Removed is_stored, locs and next fields.
3842         (memory_accesses): New variable.
3843         (movement_possibility): Do not allow moving statements
3844         that store to memory.
3845         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
3846         New functions.
3847         (determine_max_movement): For statements with memory references,
3848         find the outermost loop in that the reference is independent.
3849         (move_computations_stmt): Mark the virtual operands for renaming.
3850         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
3851         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
3852         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
3853         add_vop_ref_mapping, create_vop_ref_mapping_loop,
3854         create_vop_ref_mapping, analyze_memory_references,
3855         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
3856         get_all_locs_in_loop, ref_always_accessed_p,
3857         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
3858         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
3859         store_motion_loop, store_motion): New functions.
3860         (struct vop_to_refs_elt): New type.
3861         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
3862         memref_hash, memref_eq, hoist_memory_references): Rewritten.
3863         (schedule_sm): Replaced by...
3864         (execute_sm): ... this.
3865         (determine_lsm_ref, hoist_memory_references,
3866         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
3867         find_more_ref_vops, free_mem_ref, free_mem_refs,
3868         determine_lsm_loop, determine_lsm): Removed.
3869         (tree_ssa_lim_finalize): Free data structures used by store motion.
3870         (tree_ssa_lim): Call analyze_memory_references.  Use
3871         store_motion instead of determine_lsm.
3872
3873 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
3874
3875         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
3876         rename tmake_file to m68hc11/t-m68hc11.
3877         (mcore): Set inhibit_libc to true.
3878         * config.host (alpha*-dec-*vms*): Set extra_programs.
3879         (interix3*): Don't use host_xmake_file.
3880         * configure.ac: Let config.gcc override inhibit_libc.
3881         * configure: Regenerate.
3882
3883         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
3884         * config/t-openbsd-thread: Remove commented out lines.
3885         
3886         * config/x-interix: Remove.
3887
3888         * config/m68hc11/t-m68hc11-gas: Rename to...
3889         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
3890
3891         * config/mcore/t-mcore: Remove T_CFLAGS.
3892         * config/mcore/t-mcore-pe: Likewise.
3893
3894 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
3895
3896         * configure.ac: Replace custom __GNU_SOURCE test with
3897         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
3898         * aclocal.m4: Regenerate.
3899         * configure: Regenerate.
3900         * config.in: Regenerate.
3901
3902 2008-03-27  Richard Guenther  <rguenther@suse.de>
3903
3904         * fold-const.c (target.h): Include.
3905         (fold_comparison): Fold comparison of addresses of decls
3906         that bind locally or of constants.  Consolidate address folding code.
3907         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
3908         results from fold_binary_to_constant.
3909         (compare_values_warnv): Likewise.
3910
3911 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
3912
3913         PR middle-end/35429
3914         * fold-const.c (fold_truthop): Check for integeral types when folding
3915         a == 0 && b == 0 and a != 0 || b != 0 .
3916
3917 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
3918
3919         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
3920
3921 2008-03-26  Andreas Schwab  <schwab@suse.de>
3922
3923         * doc/invoke.texi: Fix use of @item vs. @itemx.
3924
3925 2008-03-26  Tom Tromey  <tromey@redhat.com>
3926
3927         * Makefile.in (build/gensupport.o, build/print-rtl.o,
3928         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
3929         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
3930         build/gencodes.o, build/genconditions.o, build/genconfig.o,
3931         build/genconstants.o, build/genemit.o, build/genextract.o,
3932         build/genflags.o, build/genmddeps.o, build/genopinit.o,
3933         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
3934         options.h.
3935
3936 2008-03-26  Richard Guenther  <rguenther@suse.de>
3937
3938         Revert
3939         2008-03-26  Richard Guenther  <rguenther@suse.de>
3940
3941         * fold-const.c (target.h): Include.
3942         (fold_comparison): Fold comparison of addresses of two decls
3943         that bind locally.  Consolidate address folding code.
3944
3945 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3946
3947         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
3948         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
3949         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
3950         dconstsqrt2, dconstthird, dconste and/or dconst10.
3951         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
3952         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
3953         dconstsqrt2, dconste): Delete.
3954         (init_emit_once): Likewise.  Simplify initializing dconstm1.
3955         Constify variable.
3956         * real.c (get_real_const): New.
3957         * real.h (dconst3, dconst10, dconstm2, dconstthird,
3958         dconstsqrt2, dconste): Delete.
3959         (real_value_const, get_real_const): New.
3960
3961 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
3962
3963         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
3964
3965         * config/i386/i386.c (ix86_function_arg_boundary): Check
3966         BIGGEST_ALIGNMENT instead of 128.
3967         (setup_incoming_varargs_64): Likewise.
3968
3969 2008-03-26  Tom Tromey  <tromey@redhat.com>
3970
3971         * Makefile.in (DEPFILES): Add missing '/'.
3972
3973 2008-03-26  Richard Guenther  <rguenther@suse.de>
3974
3975         * fold-const.c (target.h): Include.
3976         (fold_comparison): Fold comparison of addresses of two decls
3977         that bind locally.  Consolidate address folding code.
3978
3979 2008-03-26  Nick Clifton  <nickc@redhat.com>
3980
3981         PR target/31232
3982         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
3983         not allow INT+INT as a legitimate addressing mode.
3984
3985 2008-03-26  Richard Guenther  <rguenther@suse.de>
3986
3987         * tree-flow.h (widen_bitfield): Remove declaration.
3988         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
3989         (widen_bitfield): Remove function.
3990         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
3991         code.
3992
3993 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3994
3995         PR target/31558
3996         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
3997         error_mark_node's.
3998
3999 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
4000
4001         PR rtl-optimization/35232
4002         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
4003         (forget_old_reloads_1, forget_marked_reloads): Don't clear
4004         reg_reloaded_call_part_clobbered here.
4005         (reload_regs_reach_end_p): New function.
4006         (reload_reg_rtx_for_input): New variable.
4007         (reload_reg_rtx_for_output): Likewise.
4008         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
4009         when reassigning a pseudo register.  Load reloadreg from 
4010         reload_reg_rtx_for_input, moving the mode and register
4011         calculation to...
4012         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
4013         instead of the original when deciding whether an input reload
4014         would be a no-op or whether an output reload can be deleted.
4015         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
4016         when setting up new_spill_reg_store.  Load it from
4017         reload_reg_rtx_for_output, moving the mode and register
4018         calculation to...
4019         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
4020         instead of the original when deciding whether an output reload
4021         would be a no-op.  Do the same when modifying insn notes.
4022         Use rtx_equal_p instead of == to compare the registers.
4023         (inherit_piecemeal_p): Take a mode and two register numbers
4024         as argument.
4025         (emit_reload_insns): Clear new_spill_reg_store for every hard
4026         register in the reload register.  Remove spill registers
4027         from reg_reloaded_valid before considering whether to record
4028         inheritance information for them.  Use reload_reg_rtx_for_output
4029         instead of reg_rtx when recording output reloads.  Use
4030         reload_reg_rtx_for_input instead of reg_rtx when recording
4031         input reloads.  Set or clear reg_reloaded_call_part_clobbered
4032         at the same time as setting reg_reloaded_valid.
4033         (delete_output_reload): Add a new_reload_reg parameter and use it
4034         instead of rld[j].reg_rtx.
4035         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
4036         calls accordingly.
4037
4038 2008-03-25  Tom Tromey  <tromey@redhat.com>
4039
4040         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
4041         (build/genattr.o): Likewise.
4042         (build/genattrtab.o): Likewise.
4043         (build/gencodes.o): Likewise.
4044         (build/genconfig.o): Likewise.
4045         (build/genconstants.o): Likewise.
4046         (build/genemit.o): Likewise.
4047         (build/genextract.o): Likewise.
4048         (build/genflags.o): Likewise.
4049
4050 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
4051         
4052         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
4053         instead of size_int for integer types.
4054         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
4055         to match type of MINUS_EXPR.
4056         
4057 2008-03-25  Tom Tromey  <tromey@redhat.com>
4058
4059         * configure: Rebuilt.
4060         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
4061         Makefile.
4062
4063 2008-03-25  Tom Tromey  <tromey@redhat.com>
4064
4065         * config/x-solaris (host-solaris.o): Update.
4066         * config/x-linux (host-linux.o): Update.
4067         * config/x-hpux (host-hpux.o): Update.
4068         * config/x-darwin (host-darwin.o): Update.
4069         * config/v850/t-v850e (v850-c.o): Update.
4070         * config/v850/t-v850 (v850-c.o): Update.
4071         * config/t-vxworks (vxworks.o): Update.
4072         * config/t-sol2 (sol2-c.o, sol2.o): Update.
4073         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
4074         * config/spu/t-spu-elf (spu-c.o): Update.
4075         (spu.o): Remove.
4076         * config/sh/t-symbian (sh-c.o): Update.
4077         (symbian.o): Update.
4078         * config/sh/t-sh (sh-c.o): Update.
4079         * config/score/t-score-elf (score7.o, score3.o): Update.
4080         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
4081         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
4082         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
4083         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
4084         (rs6000.o): Remove.
4085         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
4086         * config/m32c/t-m32c (m32c-pragma.o): Update.
4087         * config/ia64/t-ia64 (ia64-c.o): Update.
4088         * config/i386/x-mingw32 (host-mingw32.o): Update.
4089         * config/i386/x-i386 (driver-i386.o): Update.
4090         * config/i386/x-darwin (host-i386-darwin.o): Update.
4091         * config/i386/x-cygwin (host-cygwin.o): Update.
4092         * config/i386/t-nwld (nwld.o): Update.
4093         * config/i386/t-netware (netware.o): Update.
4094         * config/i386/t-interix (winnt.o): Update.
4095         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
4096         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
4097         msformat-c.o): Update.
4098         * config/bfin/t-bfin-linux (generated_files): Add
4099         linux-sysroot-suffix.h.
4100         * config/arm/t-wince-pe (pe.o): Update.
4101         * config/arm/t-strongarm-pe (pe.o): Update.
4102         * config/arm/t-pe (pe.o): Update.
4103         * config/arm/t-arm (arm-c.o): Update.
4104         * doc/install.texi (Prerequisites): Require make 3.80.
4105         * Makefile.in: Remove .o targets.
4106         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
4107         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
4108         (simple_generated_h, simple_generated_c): Move earlier.
4109         (generated_files): New variable.
4110         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
4111         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
4112         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
4113         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
4114         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
4115         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
4116         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
4117         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
4118         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
4119         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
4120         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
4121         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
4122         (.c.o): Remove.
4123         (COMPILE.base, COMPILE): New variables.
4124         (%.o): New pattern rule.
4125         (ALL_HOST_OBJS): New variable.
4126         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
4127         (dummy-checksum.o, cc1-checksum.o): Remove.
4128         (DRIVER_SHLIB): New variable.
4129         (DRIVER_DEFINES): Use it.
4130         (gencondmd.c): Move out of build/.
4131         (s-conditions): Update.
4132         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
4133         (ALL_BUILD_OBJS): Likewise.
4134         (build/%.o): Use BUILDCOMPILE.
4135         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
4136         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
4137         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
4138         build/gencheck.o, build/gencodes.o, build/genconditions.o,
4139         build/genconfig.o, build/genconstants.o, build/genemit.o,
4140         build/genextract.o, build/genflags.o, build/genmddeps.o,
4141         build/genopinit.o, build/genoutput.o, build/genpeep.o,
4142         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
4143         build/gen-protos.o, build/scan.o, build/fix-header.o,
4144         build/scan-decls.o): Simplify.
4145         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
4146         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
4147         prefix.o, toplev.o): Reduce to variable setting.
4148         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
4149         ($(out_object_file), gcc-options.o): New targets.
4150         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
4151         * configure: Rebuilt.
4152         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
4153         * doc/sourcebuild.texi (Front End Directory): Document new variable.
4154
4155 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
4156
4157         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
4158         complain when we hit an error, return ERROR_MARK_NODE.
4159
4160 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
4161
4162         * config/sh/constraints.md (Pso, Psz): New constraints.
4163         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
4164         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
4165
4166 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
4167
4168         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
4169         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
4170
4171 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
4172
4173         * config/sh/sh.md (prefetch): Add condition for SH2A target.
4174         (prefetch_sh2a): New.   
4175
4176 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
4177             Naveen.H.S  <naveen.hs@kpitcummins.com>
4178
4179         * config/sh/constraints.md (I28): New constraint.
4180         * config/sh/sh.c (broken_move): Add support for movi20s.
4181         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
4182
4183 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
4184             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
4185             Naveen.H.S  <naveen.hs@kpitcummins.com>
4186
4187         * config/sh/sh.c (SH_ATTRIBUTES): Define.
4188         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
4189         (print_operand): Handle resbank in %@ operand code.
4190         (sh_encode_section_info): New.
4191         (push_regs): Add conditions for resbank.
4192         (sh_expand_epilogue): Likewise.
4193         (sh_insert_attributes): Likewise.
4194         (sh_attribute_table): Likewise.
4195         (sh_handle_resbank_handler_attribute): New.
4196         (sh2a_handle_function_vector_handler_attribute): New.
4197         (sh2a_is_function_vector_call): New.
4198         (sh2a_get_function_vector_number): New.
4199         (sh2a_function_vector_p): New.
4200         (sh_cfun_resbank_handler_p): New.
4201         * config/sh/sh.md (calli): Emit jsr/n if possible.
4202         (calli_tbr_rel): New.
4203         (calli_pcrel): Emit jsr/n if possible.
4204         (return_i): Emit rts/n if possible.
4205         (call_valuei_tbr_rel): New.
4206         (call_valuei_pcrel): Add condition for SH2A target.
4207         (call_value): Likewise.
4208         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
4209         (sh2a_get_function_vector_number): Likewise.
4210         (sh2a_is_function_vector_call): Likewise.
4211         * doc/extend.texi: Document TBR relative addressing of SH2A.
4212         (resbank): Add description for SH2A.
4213
4214 2008-03-24  Richard Guenther  <rguenther@suse.de>
4215
4216         PR c/22371
4217         * gimplify.c (gimplify_modify_expr): For frontend type-correct
4218         pointer assignments change conversions according to middle-end rules.
4219         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
4220         * configure.ac: Include type checking in yes.
4221         * configure: Regenerate.
4222
4223 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4224
4225         * diagnostic.c (diagnostic_count_diagnostic): Delete.
4226         (diagnostic_report_diagnostic): Update. Handle ICEs here.
4227         
4228 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
4229
4230         * gthr-vxworks.h (UNUSED): Define.
4231
4232 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
4233
4234         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
4235
4236 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
4237
4238         * doc/extend.texi (Function Attributes): Add missing comma in the
4239         example of the "alloc_size" attribute.
4240         
4241 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
4242
4243         Revert:
4244         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
4245
4246         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
4247         32bit host.
4248
4249         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
4250
4251         PR target/35496
4252         * stor-layout.c (update_alignment_for_field): Set minimum alignment
4253         of the underlying type of a MS bitfield layout to the natural
4254         alignment of the type.
4255
4256         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
4257
4258         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
4259         to their natural alignment to avoid store forwarding stalls.
4260
4261 2008-03-22  Richard Guenther  <rguenther@suse.de>
4262
4263         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
4264         For PHI nodes verify the address is invariant.
4265         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
4266         (get_symbol_constant_value): Use is_gimple_min_invariant.
4267         (maybe_fold_stmt_indirect): Likewise.
4268
4269 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
4270
4271         PR rtl-optimization/33927
4272         * Makefile.in (dse.o): Depend on $(TM_P_H).
4273         * expr.h (extract_low_bits): Declare.
4274         * expmed.c (extract_low_bits): New function.
4275         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
4276         * dse.c: Include tm_p.h.
4277         (find_shift_sequence): Remove the read_reg argument and return the
4278         read value.  Emit the instructions instead of returning them.
4279         Iterate on new_mode rather than calculating it each time.
4280         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
4281         source to NEW_MODE and extract_low_bits to convert the shifted
4282         value to READ_MODE.
4283         (replace_read): Allow the load and store to have different mode
4284         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
4285         or extraction instructions before trying the replacement.  Update
4286         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
4287
4288 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
4289
4290         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
4291         to their natural alignment to avoid store forwarding stalls.
4292
4293 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4294
4295         PR target/27946
4296         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
4297         encouraging but not allowing gprs for input;
4298         change the input constraint to !f#r.
4299         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
4300         gprs for output;
4301         change the output constraint to !f#r.
4302
4303 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
4304
4305         PR target/13958
4306         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
4307         corresponding post-reload splitters.
4308         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
4309         when x87 FP math is selected.
4310         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
4311         New function prototype.
4312         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
4313         unreachable function to ease macroization of insn patterns.
4314
4315 2008-03-21  Martin Jambor  <mjambor@suse.cz>
4316
4317         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
4318         reference dumps if ddr is NULL or dependence is unknown.
4319
4320 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
4321
4322         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
4323         unsigned extension into account.
4324         (ATOMIC_COMPARE_AND_SWAP): Likewise.
4325         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
4326         Do computations on a scratch register.
4327
4328 2008-03-21  Richard Guenther  <rguenther@suse.de>
4329
4330         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
4331         Use is_gimple_min_invariant instead of TREE_INVARIANT.
4332         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
4333         * tree-ssa-dom.c (record_equality): Likewise.
4334         * tree-inline.c (copy_body_r): Likewise.
4335         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
4336         TREE_INVARIANT.
4337
4338 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
4339
4340         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
4341         as 'delete_unused' argument.
4342
4343 2008-03-20  Richard Guenther  <rguenther@suse.de>
4344
4345         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
4346         special casing of constant qualifiers.
4347         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
4348         care about them in general.
4349         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
4350         regardless of their type.
4351         (fold_stmt_r): Forcefully fold *& if we end up with that.
4352
4353 2008-03-20  Paul Brook  <paul@codesourcery.com>
4354
4355         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
4356         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
4357         linker flags.
4358         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
4359         definition.
4360         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
4361         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
4362
4363 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
4364
4365         * common.opt (Wmudflap): New option.
4366         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
4367         (mx_register_decls): Likewise.
4368         (mudflap_finish_file): Likewise.
4369         * doc/invoke.texi: Document -Wno-mudflap.
4370
4371 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
4372
4373         * c-format.c (replace_format_name_to_system_name): New.
4374         (cmp_attribs): New.
4375         (convert_format_name_to_system_name): New.
4376         (decode_format_attr): Add use of convert_format_name_to_system_name.
4377         (format_types_orig): Add gnu_ prefix to names.
4378         (check_format_info_main): Special treating of \0 escaped names for
4379         supporting multi-character format specifiers as I32, I64.
4380         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
4381         (gnu_target_overrides_format_attributes): New.
4382         * c-format.h: Add structure target_ovr_attr to hold
4383         system specific formatter names.
4384         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
4385         msformat-c.o file to c_target_objs and cxx_target_objs.
4386         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
4387         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
4388         (TARGET_N_FORMAT_TYPES): New.
4389         * config/i386/msformat-c.c: New.
4390         * config/i386/t-cygming: Add build rule for msformat-c.o.
4391         * doc/extend.texi: Add new format names gnu_* and ms_* and
4392         further details.
4393         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
4394
4395 2008-03-20  Ira Rosen  <irar@il.ibm.com>
4396
4397         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
4398         optimizations turned on under -O3.
4399         (ftree-vectorize): Add that the flag is turned on with -O3.
4400
4401 2008-03-20  Ben Elliston  <bje@au.ibm.com>
4402
4403         * regmove.c (try_auto_increment): Fix spelling error in comment.
4404         * final.c (final_scan_insn): Likewise.
4405
4406 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
4407
4408         PR target/14552
4409         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
4410         allocator preferences for "y" and "r" class registers.
4411         ("*mov<mode>_internal"): Ditto.
4412         ("*movv2sf_internal_rex64"): Ditto.
4413         ("*movv2sf_internal"): Ditto.
4414
4415 2008-03-19  Michael Matz  <matz@suse.de>
4416
4417         PR middle-end/35616
4418         * calls.c (expand_call): Check overlap of arguments with call
4419         address for sibcalls.
4420
4421 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
4422
4423         PR target/35496
4424         * stor-layout.c (update_alignment_for_field): Set minimum alignment
4425         of the underlying type of a MS bitfield layout to the natural
4426         alignment of the type.
4427
4428 2008-03-19  Jan Hubicka  <jh@suse.cz>
4429
4430         PR other/35094
4431         * toplev.c (decode_d_option): Handle all CPP flags.
4432         * tree-vrp.c: Update tree_pass descriptors.
4433         * regrename.c: Update tree_pass descriptors.
4434         * fwprop.c: Update tree_pass descriptors.
4435         * doc/invoke.texi: Remove documentation of dropped -d? flags.
4436         * tree-into-ssa.c: Update tree_pass descriptors.
4437         * tree-dump.c: Update tree_pass descriptors.
4438         * tree-complex.c: Update tree_pass descriptors.
4439         * tree-dump.h: Update tree_pass descriptors.
4440         * see.c: Update tree_pass descriptors.
4441         * cgraphbuild.c: Update tree_pass descriptors.
4442         * tracer.c: Update tree_pass descriptors.
4443         * tree-loop-distribution.c: Update tree_pass descriptors.
4444         * cgraph.c: Update tree_pass descriptors.
4445         * postreload-gcse.c: Update tree_pass descriptors.
4446         * postreload.c: Update tree_pass descriptors.
4447         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
4448         * tree-tailcall.c: Update tree_pass descriptors.
4449         * tree-pass.h (tree_opt_pass): Rename to ...
4450         (opt_pass) ... this one; add "type" field and remove letter field.
4451         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
4452         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
4453         all_lowering_passes): Update declaration.
4454         * ipa-cp.c: Update tree_pass descriptors.
4455         * final.c: Update tree_pass descriptors.
4456         * omp-low.c: Update tree_pass descriptors.
4457         * tree-ssa-dse.c: Update tree_pass descriptors.
4458         * ipa-reference.c: Update tree_pass descriptors.
4459         * tree-ssa-uncprop.c: Update tree_pass descriptors.
4460         * auto-inc-dec.c: Update tree_pass descriptors.
4461         * reorg.c: Update tree_pass descriptors.
4462         * cgraphunit.c: Update tree_pass descriptors.
4463         * tree-ssa-copyrename.c: Update tree_pass descriptors.
4464         * tree-ssa-ccp.c: Update tree_pass descriptors.
4465         * df-core.c: Update tree_pass descriptors.
4466         * mode-switching.c: Update tree_pass descriptors.
4467         * tree-nomudflap.c: Update tree_pass descriptors.
4468         * modulo-sched.c: Update tree_pass descriptors.
4469         * ipa-pure-const.c: Update tree_pass descriptors.
4470         * cse.c: Update tree_pass descriptors.
4471         * web.c: Update tree_pass descriptors.
4472         * tree-stdarg.c: Update tree_pass descriptors.
4473         * tree-ssa-math-opts.c: Update tree_pass descriptors.
4474         * tree-ssa-dom.c: Update tree_pass descriptors.
4475         * tree-nrv.c: Update tree_pass descriptors.
4476         * tree-ssa-alias.c: Update tree_pass descriptors.
4477         * loop-init.c: Update tree_pass descriptors.
4478         * gimple-low.c: Update tree_pass descriptors.
4479         * ipa-inline.c: Update tree_pass descriptors.
4480         * tree-ssa-sink.c: Update tree_pass descriptors.
4481         * global.c: Update tree_pass descriptors.
4482         * ifcvt.c: Update tree_pass descriptors.
4483         * jump.c: Update tree_pass descriptors.
4484         * predict.c: Update tree_pass descriptors.
4485         * tree-ssa-loop.c: Update tree_pass descriptors.
4486         * recog.c: Update tree_pass descriptors.
4487         * dse.c: Update tree_pass descriptors.
4488         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
4489         * tree-eh.c: Update tree_pass descriptors.
4490         * regmove.c: Update tree_pass descriptors.
4491         * local-alloc.c
4492         * function.c: Update tree_pass descriptors.
4493         * tree-vectorizer.c: Update tree_pass descriptors.
4494         * gcse.c: Update tree_pass descriptors.
4495         * ipa-type-escape.c: Update tree_pass descriptors.
4496         * tree-if-conv.c: Update tree_pass descriptors.
4497         * init-regs.c: Update tree_pass descriptors.
4498         * ipa.c: Update tree_pass descriptors.
4499         * tree-ssa-phiopt.c: Update tree_pass descriptors.
4500         * rtl-factoring.c: Update tree_pass descriptors.
4501         * lower-subreg.c: Update tree_pass descriptors.
4502         * bt-load.c: Update tree_pass descriptors.
4503         * tree-dfa.c: Update tree_pass descriptors.
4504         * except.c: Update tree_pass descriptors.
4505         * emit-rtl.c: Update tree_pass descriptors.
4506         * cfgexpand.c: Update tree_pass descriptors.
4507         * tree-cfgcleanup.c: Update tree_pass descriptors.
4508         * cfgcleanup.c: Update tree_pass descriptors.
4509         * tree-ssa-pre.c: Update tree_pass descriptors.
4510         * tree-sra.c: Update tree_pass descriptors.
4511         * tree-mudflap.c: Update tree_pass descriptors.
4512         * tree-ssa-copy.c: Update tree_pass descriptors.
4513         * cfglayout.c: Update tree_pass descriptors.
4514         * tree-ssa-forwprop.c: Update tree_pass descriptors.
4515         * tree-ssa-dce.c: Update tree_pass descriptors.
4516         * tree-ssa.c: Update tree_pass descriptors.
4517         * regclass.c: Update tree_pass descriptors.
4518         * integrate.c: Update tree_pass descriptors.
4519         * tree-optimize.c: Update tree_pass descriptors.
4520         * tree-ssa-phiprop.c: Update tree_pass descriptors.
4521         * tree-object-size.c: Update tree_pass descriptors.
4522         * combine.c: Update tree_pass descriptors.
4523         * tree-outof-ssa.c: Update tree_pass descriptors.
4524         * bb-reorder.c: Update tree_pass descriptors.
4525         * stack-ptr-mod.c: Update tree_pass descriptors.
4526         * var-tracking.c: Update tree_pass descriptors.
4527         * tree-profile.c: Update tree_pass descriptors.
4528         * tree-vect-generic.c: Update tree_pass descriptors.
4529         * reg-stack.c: Update tree_pass descriptors.
4530         * sched-rgn.c: Update tree_pass descriptors.
4531         * tree-ssa-structalias.c: Update tree_pass descriptors.
4532         * tree-cfg.c: Update tree_pass descriptors.
4533         * passes.c (current_pass): Update declaration.
4534         (finish_optimization_passes): Update.
4535         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
4536         (register_one_dump_file, register_dump_files_1, next_pass_1):
4537         Update arguments.
4538         (init_optimization_passes): Update handling of new types.
4539         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
4540         * ipa-struct-reorg.c: Update tree_pass descriptors.
4541         * tree-ssa-reassoc.c: Update tree_pass descriptors.
4542         * combine-stack-adj.c: Update tree_pass descriptors.
4543         * cfgrtl.c: Update tree_pass descriptors.
4544         * dce.c: Update tree_pass descriptors.
4545         * tree-ssanames.c: Update tree_pass descriptors.
4546
4547 2008-03-19  Richard Guenther  <rguenther@suse.de>
4548
4549         PR middle-end/35609
4550         * tree-ssa.c (walk_data): New structure.
4551         (warn_uninitialized_var): If not always_executed warn with "maybe"
4552         instead of "is".
4553         (execute_early_warn_uninitialized): Compute post-dominators.
4554         Initialize always_executed before processing each basic block.
4555
4556 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
4557
4558         PR target/35504
4559         * config/i386/i386.c (x86_this_parameter): Calculate correct location
4560         of "this" pointer when "regparm = N" or "fastcall" is in effect.
4561
4562 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4563
4564         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
4565
4566 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
4567
4568         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
4569         is true.
4570         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
4571         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
4572         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
4573         target after ignore has been set, and move there also the commputation
4574         of subtarget and original_target.
4575         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
4576         (LANG_HOOKS_INITIALIZER): Remove it.
4577         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
4578
4579 2008-03-18  Richard Guenther  <rguenther@suse.de>
4580
4581         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
4582         found an expression with constants, note that in the VN for the lhs.
4583         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
4584         fold them to constants if possible.  Run cleanup_cfg if done so.
4585         (execute_pre): Return todo.
4586         (do_pre): Likewise.
4587         (execute_fre): Likewise.
4588         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
4589         of constants.
4590         (get_prop_source_stmt): Look through pointer conversions.
4591
4592 2008-03-18  Jan Hubicka  <jh@suse.cz>
4593
4594         * tree-pretty-print.c: Include predict.h.
4595         (dump_generic_node): Dump predictor.
4596         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
4597         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
4598         * gimple-low.c (lower_stmt): Likewise.
4599         * expr.c (expand_expr_real): Likewise.
4600         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
4601         them.
4602         (build_predict_expr, build_predict_expr): New.
4603         * predict.h (predictor_name, build_predict_expr): Update.
4604         * c-typeck.c (c_finish_bc_stmt): Add prediction.
4605         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
4606         * predict.def (PRED_CONTINUE): Update hitrate.
4607         * tree.def (PREDICT_EXPR): Define.
4608         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
4609         do not handle BIND_EXPR.
4610         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
4611         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
4612         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
4613         operands.
4614
4615 2008-03-18  Michael Matz  <matz@suse.de>
4616
4617         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
4618
4619 2008-03-18  Richard Guenther  <rguenther@suse.de>
4620
4621         * tree-gimple.h (is_gimple_invariant_address): Declare.
4622         (is_gimple_constant): Likewise.
4623         * tree-gimple.c (is_gimple_constant): New function.
4624         (is_gimple_invariant_address): Likewise.
4625         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
4626         and is_gimple_invariant_address.
4627         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
4628         previous change.
4629         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
4630         an addressable base.
4631
4632 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
4633
4634         PR middle-end/35611
4635         * gimplify.c (gimplify_expr): Gimplify second operand of
4636         OMP_ATOMIC_LOAD.
4637
4638 2008-03-17  Richard Guenther  <rguenther@suse.de>
4639
4640         PR tree-optimization/19637
4641         * fold-const.c (fold_unary): Remove restrictions of removing
4642         intermediate pointer-conversions (P2)(P1)P0.
4643         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
4644         conversion to void pointer.
4645         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
4646
4647 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
4648
4649         PR debug/31510
4650         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
4651         emulated thread local variables.
4652
4653 2008-03-16  Richard Guenther  <rguenther@suse.de>
4654
4655         PR middle-end/35607
4656         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
4657         expand TREE_INVARIANT operations that are not gimple invariant.
4658
4659 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
4660
4661         * doc/extend.texi (Alignment): Say that the ABI controls
4662         the __alignof__ for non-strict-alignment targets rather
4663         than being a recommendation.
4664
4665 2008-03-15  Paul Brook  <paul@codesourcery.com>
4666
4667         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
4668         annotations.
4669         (arm_output_fn_unwind): Mark functions that can not be unwound.
4670
4671 2008-03-15  Paul Brook  <paul@codesourcery.com>
4672
4673         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
4674         extension instructions.
4675
4676 2008-03-15  Richard Guenther  <rguenther@suse.de>
4677
4678         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
4679         and fold constant aggregate refs.
4680         (fold_const_aggregate_ref): Handle string constants
4681         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
4682         (evaluate_stmt): Simplify now that ccp_fold folds constant
4683         aggregate refs.
4684
4685 2008-03-15  Paul Brook  <paul@codesourcery.com>
4686
4687         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
4688         (extzv): Use gen_extzv_t2.
4689         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
4690
4691 2008-03-15  Richard Guenther  <rguenther@suse.de>
4692
4693         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
4694         (fold_const_aggregate_ref): Likewise.
4695         (get_value): Return NULL if we don't have any values.
4696         (ccp_finalize): Set const_val to NULL after freeing it.
4697         * tree-flow.h (get_symbol_constant_value): Declare.
4698         (fold_const_aggregate_ref): Likewise.
4699         * tree-ssa-sccvn.c (try_to_simplify): Use them.
4700
4701 2008-03-15  Richard Guenther  <rguenther@suse.de>
4702
4703         PR middle-end/35593
4704         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
4705         to not produce negative array indices if not allowed.  Add
4706         parameter to indicate that.
4707         (maybe_fold_offset_to_component_ref): Allow negative array
4708         indices only for the first member of a structure.
4709         (maybe_fold_offset_to_reference): Allow negative array indices.
4710         (maybe_fold_stmt_addition): Likewise.
4711
4712 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
4713             Anatoly Sokolov <aesok@post.ru>
4714
4715         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
4716         (avr_arch): Add ARCH_AVR6.
4717         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
4718         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
4719         instead of fixed value 2.
4720         (print_operand_address): Use gs() asm specifier instead of pm().
4721         (avr_assemble_integer): (Ditto.).
4722         (avr_output_addr_vec_elt): (Ditto.).
4723         (print_operand): Handle "!" code.
4724         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
4725         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
4726         (AVR_HAVE_EIJMP_EICALL): Define.
4727         (AVR_3_BYTE_PC): Redefine.
4728         (AVR_2_BYTE_PC): (Ditto.).
4729         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
4730         (LINK_SPEC): Add atmega2560 and atmega2561.
4731         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
4732         (crtm2561.o).
4733         * config/avr/avr.md (call_insn): Use eicall instead of icall 
4734         for 3 byte PC devices.
4735         (call_value_insn): (Ditto.).
4736         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
4737         (indirect_jump): Use only for for 2 byte PC devices.
4738         (*tablejump): (Ditto.).
4739         (*indirect_jump_avr6): Add insn.
4740         (*tablejump_rjmp): Don't use for 3 byte PC devices.
4741         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
4742         instead of ijmp for 3 byte PC devices.
4743         (__tablejump2__): (Ditto.).
4744         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
4745         (MULITLIB_DIRNAMES): (Ditto.). 
4746         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
4747
4748 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
4749
4750         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
4751         "sse2_umulsidi3".  Use V1DI mode for operand 0.
4752         ("mmx_psadbw"): Use V1DI mode for operand 0.
4753         * config/i386/i386-modes.def (V1SI): New vector mode.
4754         * config/i386/i386.c (struct builtin_description)
4755         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
4756         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
4757         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
4758         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
4759         v1di_ftype_v8qi_v8qi type.
4760         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
4761
4762         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
4763         __builtin_ia32_pmuludq]: Fix the mode of return value.
4764
4765 2008-03-15  Richard Guenther  <rguenther@suse.de>
4766
4767         PR middle-end/35595
4768         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
4769         being a PHI_NODE.
4770
4771 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
4772         
4773         * doc/invoke.texi (Option Summary, Xtensa Options): Document
4774         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
4775         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
4776         unless TARGET_SERIALIZE_VOLATILE is enabled.
4777         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
4778         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
4779         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
4780
4781 2008-03-14  Richard Guenther  <rguenther@suse.de>
4782
4783         PR tree-optimization/34172
4784         * tree-flow.h (refs_may_alias_p): Declare.
4785         (get_single_def_stmt): Likewise.
4786         (get_single_def_stmt_from_phi): Likewise.
4787         (get_single_def_stmt_with_phi): Likewise.
4788         * tree-dfa.c (refs_may_alias_p): New function.
4789         (get_single_def_stmt): Likewise.
4790         (get_single_def_stmt_from_phi): Likewise.
4791         (get_single_def_stmt_with_phi): Likewise.
4792         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
4793         (vn_reference_lookup_1): New helper function.
4794         (vn_reference_lookup): Walk the virtual use-def chain to
4795         continue searching for a match if the def does not alias the
4796         reference we are looking for.
4797
4798 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
4799
4800         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
4801         archive and Perzl.  Update The Written Word listing.
4802
4803 2008-03-14  Richard Guenther  <rguenther@suse.de>
4804
4805         PR tree-optimization/34043
4806         PR tree-optimization/33989
4807         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
4808         when doing FRE.
4809         (bitmap_find_leader): Use extra argument to verify dominance
4810         relationship inside a basic-block.
4811         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
4812         (find_leader_in_sets): Adjust.
4813         (create_component_ref_by_pieces): Take extra argument for
4814         dominance check, handle lookup failures.
4815         (find_or_generate_expression): Likewise.
4816         (create_expression_by_pieces): Likewise.
4817         (insert_into_preds_of_block): Adjust.
4818         (create_value_expr_from): If asked for, verify all operands
4819         are in the blocks AVAIL_OUT set.
4820         (make_values_for_stmt): Check for SSA_NAMEs that are life
4821         over an abnormal edge.
4822         (compute_avail): Remove such check.
4823         (do_SCCVN_insertion): New function.
4824         (eliminate): If we do not find a leader suitable for replacement
4825         insert a replacement expression from SCCVN if available.
4826         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
4827         (struct vn_ssa_aux): Add needs_insertion flag.
4828         * tree-ssa-sccvn.c (may_insert): New global flag.
4829         (copy_reference_ops_from_ref): Value-number union member access
4830         based on its size, not type and member if insertion is allowed.
4831         (visit_reference_op_load): For a weak match from union type
4832         punning lookup a view-converted value and insert a SSA_NAME
4833         for that value if that is not found.
4834         (visit_use): Make dumps shorter.  Do not disallow value numbering
4835         SSA_NAMEs that are life over an abnormal edge to constants.
4836         (free_scc_vn): Release inserted SSA_NAMEs.
4837         (run_scc_vn): New flag to specify whether insertion is allowed.
4838         Process SSA_NAMEs in forward order.
4839         * tree-ssa-loop-im.c (for_each_index): Handle invariant
4840         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
4841         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
4842         pointer type to/from integral types that do not change the
4843         precision to regular conversions.
4844
4845 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
4846
4847         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
4848         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
4849         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
4850         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
4851         input arguments and the mode of return value.  Built-in functions
4852         that operate on whole 64-bit MMX register now use V1DI mode.
4853
4854 2008-03-13  Alon Dayan  <alond@il.ibm.com>
4855             Olga Golovanevsky  <olga@il.ibm.com>
4856
4857         PR tree-optimization/35041
4858         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
4859         to locate the right position in a statement.
4860
4861 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
4862
4863         PR target/34000
4864         PR target/35553
4865         * config/i386/xmmintrin.h:  Change all static inline functions to
4866         extern inline and add __gnu_inline__ attribute.
4867         * config/i386/bmintrin.h: Ditto.
4868         * config/i386/smmintrin.h: Ditto.
4869         * config/i386/tmmintrin.h: Ditto.
4870         * config/i386/mmintrin-common.h: Ditto.
4871         * config/i386/ammintrin.h: Ditto.
4872         * config/i386/emmintrin.h: Ditto.
4873         * config/i386/pmmintrin.h: Ditto.
4874         * config/i386/mmintrin.h: Ditto.
4875         * config/i386/mm3dnow.h: Ditto.
4876
4877 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
4878
4879         PR middle-end/35185
4880         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
4881         (lower_omp_2): New function.
4882         (lower_omp_1, lower_omp): Rewritten.
4883
4884 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
4885
4886         PR 35054
4887         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
4888         with the phrase "Microsoft Windows compilers".
4889         (Push/Pop Macro Pragmas): New subsection. Document
4890         #pragma push_macro and pragma pop_macro.
4891
4892 2008-03-12  Paul Brook  <paul@codesourcery.com>
4893
4894         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
4895
4896 2008-03-12  Paul Brook  <paul@codesourcery.com>
4897
4898         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
4899         (thumb2_alusi3_short): Exclude PLUS and MINUS.
4900         (thumb2_addsi_shortim): Rename ...
4901         (thumb2_addsi_short): ... to this.  Allow register operands.
4902         (thumb2_subsi_short): New pattern.
4903         (thumb2_one_cmplsi2_short,
4904         thumb2_negsi2_short): New patterns and peepholes.
4905
4906 2008-03-12  Paul Brook  <paul@codesourcery.com>
4907
4908         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
4909
4910 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
4911
4912         * config/i386/i386.md (int_cond): New code iterator.
4913         (fp_cond): Ditto.
4914         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
4915         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
4916         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
4917         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
4918         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
4919         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
4920         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
4921         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
4922
4923 2008-03-12  Paul Brook  <paul@codesourcery.com>
4924
4925         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
4926         instead of {arm,thumb}_compute_save_reg_mask.
4927         (output_return_instruction): Ditto.
4928         (thumb_unexpanded_epilogue): Ditto.
4929         (thumb1_expand_prologue): Ditto.
4930         (thumb1_output_function_prologue): Ditto.
4931         (arm_set_return_address): Ditto.
4932         (thumb_set_return_address): Ditto.
4933         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
4934         regs to achieve stack alignment.
4935         (thumb1_compute_save_reg_mask): Fix compiler warning.
4936         (arm_output_epilogue): Use offsets->saved_regs_mask.
4937         Adjust stack pointer by poping call clobered registers.
4938         (arm_expand_prologue): Use offsets->saved_regs_mask.
4939         Adjust stack pointer by pushing extra registers.
4940         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
4941
4942 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
4943
4944         PR tree-opt/35422
4945         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
4946         conversion to the operands of a multiplication.
4947
4948 2008-03-12  Richard Guenther  <rguenther@suse.de>
4949
4950         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
4951         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
4952         * timevar.def (TV_TREE_PHIPROP): Add.
4953         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
4954         pass description.  Use TV_TREE_PHIPROP.
4955         * tree-ssa-forwprop.c: Remove phiprop code.
4956
4957 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
4958
4959         PR middle-end/35549
4960         * omp-low.c (maybe_lookup_decl): Constify first argument.
4961         (use_pointer_for_field): Change last argument from bool to
4962         omp_context *.  Disallow shared copy-in/out in nested
4963         parallel if decl is shared in outer parallel too.
4964         (build_outer_var_ref, scan_sharing_clauses,
4965         lower_rec_input_clauses, lower_copyprivate_clauses,
4966         lower_send_clauses, lower_send_shared_vars): Adjust callers.
4967
4968 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
4969             Ira Rosen  <irar@il.ibm.com>
4970
4971         * tree-vectorizer.c (free_stmt_vec_info): New function.
4972         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
4973         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
4974         * tree-vectorizer.h (free_stmt_vec_info): Declare.
4975         * tree-vect-transform.c (vectorizable_conversion): Free
4976         vec_oprnds0 if it was allocated.
4977         (vect_permute_store_chain): Remove unused VECs.
4978         (vectorizable_store): Free VECs that are allocated in the..
4979         function.
4980         (vect_transform_strided_load, vectorizable_load): Likewise.
4981         (vect_remove_stores): Simplify the code.
4982         (vect_transform_loop): Move code to vect_remove_stores().
4983         Call vect_remove_stores() and free_stmt_vec_info().
4984
4985 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4986
4987         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
4988         TARGET_HPUX.  Revise comment.
4989         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
4990         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
4991         Use sr4 variant of `be' instruction when not generating PIC code.
4992         (attr_length_call): Adjust for above change.
4993
4994 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4995
4996         * ipa-reference.c (static_execute): Remove module_statics_const and
4997         associated setting code.
4998
4999 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
5000
5001         PR target/35540
5002         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
5003         predicate for operand 1.
5004         (paritysi2_cmp): Use register_operand predicate for operand 2.
5005         Use earlyclobber modifier for operand 1.  Remove support for
5006         memory operands.
5007         (paritydi2_cmp): Use register_operand predicate for operand 3.
5008         Use earlyclobber modifier for operand 1.  Remove support for
5009         memory operands.
5010
5011 2008-03-11  Paul Brook  <paul@codesourcery.com>
5012             Vladimir Prus  <vladimir@codesourcery.com>
5013
5014         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
5015         (arm_compute_save_reg0_reg12_mask): Always
5016         check if register 11 must be saved.  Always safe hard frame pointer
5017         when frame_pointer_needeed.
5018         (arm_compute_save_reg_mask): Save IP and PC
5019         only with apcs frames.
5020         (arm_output_epilogue): Adjust Thumb2 codepath to
5021         be also invoked and work for ARM non-apcs frames.
5022         (arm_expand_prologue): Don't bother saving IP
5023         for non-apcs frame, since it's not clobbered by
5024         prologue code.  Implement non-apcs frame
5025         layout.
5026
5027 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
5028
5029         PR rtl-optimization/35281
5030         * expr.c (convert_move): Use a new pseudo for the intermediate
5031         from_mode->word_mode result.
5032
5033 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
5034
5035         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
5036         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
5037         * toplev.c (compile_file): Don't call it.
5038
5039 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
5040
5041         PR middle-end/35526
5042         * expr.c (store_expr): Call emit_block_move if the mode
5043         of "temp" RTX is BLKmode.
5044
5045 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5046             Richard Guenther  <rguenther@suse.de>
5047
5048         PR tree-optimization/31358
5049         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
5050         the step with a NULL_TREE.
5051         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
5052         to sizetype if type is a pointer type.
5053         (add_candidate_1): Don't convert the base and step to
5054         the generic type if the orginal type is a pointer type.
5055         (add_iv_value_candidates): Use sizetype for the step
5056         if type is a pointer type.
5057         (cand_value_at): Likewise.
5058         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
5059         for pointer types.
5060         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
5061         Don't convert the tem affine to the type.
5062         (add_elt_to_tree): Use sizetype for the step if a pointer.
5063         Use POINTER_PLUS_EXPR for pointers.
5064         (aff_combination_to_tree): Use sizetype for the step if a
5065         pointer.
5066
5067 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
5068
5069         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
5070         Remove commutativity hint.
5071
5072 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
5073
5074         PR c/35438
5075         PR c/35439
5076         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
5077         errorneous type.  Check that v is a VAR_DECL.
5078
5079         PR middle-end/35099
5080         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
5081
5082 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
5083
5084         PR tree-optimization/35494
5085         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
5086         may be overriden at link and run time.
5087
5088 2008-03-10  Richard Guenther  <rguenther@suse.de>
5089
5090         PR tree-optimization/34677
5091         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
5092         (poolify_tree): Likewise.
5093         (modify_expr_template): Likewise.
5094         (poolify_modify_stmt): Likewise.
5095         (insert_fake_stores): Handle all component-ref style stores
5096         in addition to INDIRECT_REF.  Also handle complex types.
5097         Do not poolify the inserted load.
5098         (realify_fake_stores): Do not rebuild the tree but only
5099         make it a SSA_NAME copy.
5100         (init_pre): Remove initialzation of modify_expr_template.
5101         Do not allocate modify_expr_node_pool.
5102         (fini_pre): Do not free modify_expr_node_pool.
5103
5104 2008-03-10  Paul Brook  <paul@codesourcery.com>
5105
5106         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
5107         to avoid conflicts.
5108
5109 2008-03-10  Paul Brook  <paul@codesourcery.com>
5110             Mark Shinwell  <shinwell@codesourcery.com>
5111
5112         * config/arm/cortex-r4.md: New.
5113         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
5114         insn attributes.
5115         * config/arm/arm.md: Include cortex-r4.md.
5116         (insn): Add smmls, sdiv and udiv values.
5117         (generic_sched): Don't use generic scheduling for Cortex-R4.
5118         (arm_issue_rate): New function.
5119         (TARGET_SCHED_ISSUE_RATE): Define.
5120
5121 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
5122
5123         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
5124
5125 2008-03-10  Richard Guenther  <rguenther@suse.de>
5126
5127         * tree-ssa-pre.c (get_sccvn_value): Simplify.
5128         (compute_avail): Do not add stmt uses to AVAIL_OUT.
5129
5130 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
5131
5132         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
5133         Set default to true.
5134
5135 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5136
5137         * c.opt (Wsynth): Deprecate.
5138         * doc/invoke.texi (Option Summary, Warning Options): Document
5139         -Wno-format-contains-nul.
5140
5141 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
5142
5143         PR target/35496
5144         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
5145         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
5146
5147 2008-03-09  Ira Rosen  <irar@il.ibm.com>
5148
5149         * config/rs6000/rs6000.c (builtin_description): Rename vector
5150         left shift operations.
5151         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
5152         (altivec_vsl<VI_char>): Rename to ...
5153         (ashl<mode>3): ... new name.
5154         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
5155         gen_ashlv4si3.
5156         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
5157
5158 2008-03-08  Richard Guenther  <rguenther@suse.de>
5159
5160         * coverage.h (tree_coverage_counter_addr): Declare.
5161         * coverage.c (tree_coverage_counter_addr): New function.
5162         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
5163         before using again.
5164         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
5165         (tree_gen_one_value_profiler): Likewise.
5166         (tree_gen_ic_profiler): Likewise.
5167         (tree_gen_average_profiler): Likewise.
5168         (tree_gen_ior_profiler): Likewise.
5169
5170 2008-03-08  Richard Guenther  <rguenther@suse.de>
5171
5172         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
5173         (vn_binary_op_insert): Likewise.
5174         (vn_unary_op_lookup): Likewise.
5175         (vn_unary_op_insert): Likewise.
5176         (vn_nary_op_lookup): Declare.
5177         (vn_nary_op_insert): Likewise.
5178         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
5179         and binary hashes, use a single obstack for unary_op_pool
5180         and binary_op_pool.
5181         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
5182         a single struct vn_nary_op_s.  Store tree code length and
5183         a variable number of operands.
5184         (struct vn_reference_op_struct): Remove unused op2.
5185         (vn_reference_op_eq): Do not compare op2.
5186         (vn_reference_op_compute_hash): Do not compute hash of op2.
5187         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
5188         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
5189         with vn_nary_op_compute_hash.
5190         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
5191         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
5192         vn_nary_op_lookup.
5193         (vn_unary_op_insert, vn_binary_op_insert): Replace with
5194         vn_nary_op_insert.
5195         (visit_unary_op): Call nary functions.
5196         (visit_binary_op): Likewise.
5197         (process_scc): Adjust for struct vn_tables_s changes.
5198         (allocate_vn_table): Likewise.
5199         (free_vn_table): Likewise.
5200         * tree-vn.c (vn_add): Call nary functions.
5201         (vn_lookup): Likewise.
5202
5203 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
5204
5205         PR target/35498
5206         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
5207         wdst back after sync_compare_and_swapqhi_internal.
5208
5209 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
5210
5211         PR target/22152
5212         * config/i386/i386-modes.def (V1DI): New vector mode.
5213         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
5214         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
5215         (MMXMODE248): Ditto.
5216         (MMXMODE): Add V1DI mode.
5217         (mmxvecsize): Change DI mode to V1DI mode.
5218         ("mov<mode>): Use MMXMODEI8 mode iterator.
5219         ("*mov<mode>_internal_rex64"): Ditto.
5220         ("*mov<mode>_internal"): Ditto.
5221         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
5222         ("mmx_sub<mode>3"): Ditto.
5223         ("mmx_adddi3"): Remove insn pattern.
5224         ("mmx_subdi3"): Ditto.
5225         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
5226         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
5227         ("mmx_ashl<mode>3"): Ditto.
5228         ("mmx_lshrdi3"): Remove insn pattern.
5229         ("mmx_ashldi3"): Ditto.
5230         * config/i386/i386.c (classify_argument): Handle V1DImode.
5231         (function_arg_advance_32): Ditto.
5232         (function_arg_32): Ditto.
5233         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
5234         mmx_addv1di3 insn pattern.
5235         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
5236         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
5237         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
5238         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
5239         Remove definitions of built-in functions.
5240         (V1DI_type_node): New node.
5241         (v1di_ftype_v1di_int): Ditto.
5242         (v1di_ftype_v1di_v1di): Ditto.
5243         (v2si_ftype_v2si_si): Ditto.
5244         (v4hi_ftype_v4hi_di): Remove node.
5245         (v2si_ftype_v2si_di): Ditto.
5246         (ix86_init_mmx_sse_builtins): Handle V1DImode.
5247         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
5248         Redefine builtins using def_builtin_const with *_ftype_*_int node.
5249         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
5250         Add new builtins using def_builtin_const.
5251         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
5252         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
5253         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
5254         * config/i386/mmintrin.h (__v1di): New typedef.
5255         (_mm_add_si64): Cast arguments to __v1di type.
5256         (_mm_sub_si64): Ditto.
5257         (_mm_sll_pi16): Cast __count to __v4hi type.
5258         (_mm_sll_pi32): Cast __count to __v2si type.
5259         (_mm_sll_si64): Cast arguments to __v1di type.
5260         (_mm_srl_pi16): Cast __count to __v4hi type.
5261         (_mm_srl_pi32): Cast __count to __v2si type.
5262         (_mm_srl_si64): Cast arguments to __v1di type.
5263         (_mm_sra_pi16): Cast __count to __v4hi type.
5264         (_mm_sra_pi32): Cast __count to __v2si type.
5265         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
5266         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
5267         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
5268         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
5269         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
5270         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
5271         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
5272         (_mm_srai_pi32): Use __builtin_ia32_psradi.
5273         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
5274         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
5275         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
5276         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
5277
5278 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
5279
5280         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
5281
5282 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
5283
5284         PR target/35373
5285         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
5286         reg+const addressing for Altivec modes.  Don't generate reg+reg
5287         addressing for TFmode or TDmode quantities.
5288
5289 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
5290
5291         * c-common.c (vector_types_convertible_p): Call langhook
5292         instead of comptypes.
5293
5294 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5295
5296         PR tree-opt/35402
5297         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
5298         integral and scalar float variables which have a
5299         NULL DECL_INITIAL.
5300
5301 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
5302
5303         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
5304         dwarf_register_span hook when emitting unwind information for
5305         register-to-memory saves.
5306         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
5307         (rs6000_frame_related): Remove call to spe_synthesize_frame.
5308
5309 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
5310
5311         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
5312         for the same VAR_DECL.
5313
5314 2008-03-06  Tom Tromey  <tromey@redhat.com>
5315
5316         * treelang: Delete.
5317         * doc/standards.texi (Standards): Don't mention treelang.
5318         * doc/invoke.texi (Overall Options): Don't mention treelang.
5319         * doc/install.texi (Prerequisites): Don't mention bison or
5320         treelang.
5321         (Configuration): Don't mention treelang.
5322         (Building): Likewise.
5323         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
5324
5325 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
5326
5327         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
5328         word-extractions out of a multi-word object.
5329
5330 2008-03-06  Richard Guenther  <rguenther@suse.de>
5331
5332         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
5333         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
5334         result type and precision.
5335         * expr.c (get_inner_reference): Set unsignedp based on the result
5336         type of BIT_FIELD_REF.
5337         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
5338         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
5339         (try_instantiate_multiple_fields): Likewise.  Use the correct type
5340         for BIT_FIELD_REF.
5341         (sra_build_assignment): Likewise.
5342         (sra_build_elt_assignment): Likewise.
5343         (sra_explode_bitfield_assignment): Likewise.
5344         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
5345         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
5346         set BIT_FIELD_REF_UNSIGNED.
5347         (vectorizable_load): Likewise.
5348
5349 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
5350
5351         * cse.c (cse_extended_basic_block): Invalidate artificial defs
5352         at bb start.
5353
5354 2008-03-06  Richard Guenther  <rguenther@suse.de>
5355
5356         * alias.c (struct alias_set_entry): Move has_zero_child field
5357         to pack with alias_set.
5358
5359 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
5360
5361         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
5362         32bit host.
5363
5364 2008-03-05  Ian Lance Taylor  <iant@google.com>
5365
5366         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
5367
5368 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
5369
5370         * fwprop.c (update_df): Support width and offset parameters of
5371         df_ref_create.
5372         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
5373         global_conflicts): Change DF_REF_EXTRACT to either
5374         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
5375         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
5376         * df-scan.c (df_ref_record, df_defs_record,
5377         df_ref_create_structure, df_def_record_1, df_uses_record,
5378         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
5379         df_bb_refs_collect, df_entry_block_defs_collect,
5380         df_exit_block_uses_collect): Support new width and offset fields.
5381         (ref_extract_pool): New storage pool.
5382         (df_free_ref): New function.
5383         (df_reg_chain_unlink, df_free_collection_rec,
5384         df_sort_and_compress_refs): Call df_free_ref.
5385         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
5386         of df_ref_extract.
5387         (df_ref_create_structure): Allocate df_ref_extract if offset and
5388         width fields are used.
5389         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
5390         (df_uses_record): Get offset and width from ZERO_EXTRACT 
5391         and SIGN_EXTRACT.
5392         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
5393         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
5394         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
5395         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
5396         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
5397         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
5398         (df_ref_extract): New structure.
5399         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
5400         (df_ref_create): Add width and offset parameters.
5401         
5402 2008-03-05  Richard Guenther  <rguenther@suse.de>
5403
5404         * tree-ssa-structalias.c (get_constraint_for_component_ref):
5405         Use ranges_overlap_p.
5406         (offset_overlaps_with_access): Rename
5407         to ranges_overlap_p and move ...
5408         * tree-flow-inline.h (ranges_overlap_p): ... here.
5409
5410         * tree.h (get_inner_reference, handled_component_p): Update
5411         comments.
5412
5413         * tree.h (record_component_aliases, get_alias_set,
5414         alias_sets_conflict_p, alias_sets_must_conflict_p,
5415         objects_must_conflict_p): Move declarations ...
5416         * alias.h (record_component_aliases, get_alias_set,
5417         alias_sets_conflict_p, alias_sets_must_conflict_p,
5418         objects_must_conflict_p): ... here.
5419         Include coretypes.h.
5420         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
5421
5422 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
5423
5424         * cfg.c: Include tree-flow.h.
5425         (remove_edge_raw): Call redirect_edge_var_map_clear.
5426         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
5427         * tree-flow-inline.h (redirect_edge_var_map_def): New.
5428         (redirect_edge_var_map_result): New.
5429         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
5430         PENDING_STMT use with redirect_edge_var_map_*.
5431         * tree-ssa.c (edge_var_maps): New definition.
5432         (redirect_edge_var_map_add): New.
5433         (redirect_edge_var_map_clear): New.
5434         (redirect_edge_var_map_dup): New.
5435         (redirect_edge_var_map_vector): New.
5436         (redirect_edge_var_map_destroy): New.
5437         (ssa_redirect_edge): Replace PENDING_STMT use with
5438         redirect_edge_var_map_*.
5439         (flush_pending_stmts): Same.
5440         (delete_tree_ssa): Destroy edge var map.
5441         * tree-flow.h (struct _edge_var_map): New.
5442         Define edge_var_map vector type.
5443         Declare redirect_edge_var_map_* prototypes.
5444         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
5445         * tree-cfg.c (reinstall_phi_args): Replace
5446         PENDING_STMT use with redirect_edge_var_map_*.
5447
5448 2008-03-05  Richard Guenther  <rguenther@suse.de>
5449
5450         PR tree-optimization/35472
5451         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
5452         whose single use_stmt has a overlapping set of loaded and
5453         stored symbols as that use_stmt might be a noop assignment then.
5454
5455 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
5456
5457         * gthr-rtems.h: Implement __gthread_mutex_destroy.
5458
5459 2008-03-05  Richard Guenther  <rguenther@suse.de>
5460
5461         PR c++/35336
5462         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
5463         should be constants.
5464         * tree-cfg.c (verify_expr): Verify it.
5465         * fold-const.c (fold_truthop): Remove code generating
5466         BIT_FIELD_REFs of structure bases.
5467         (fold_binary): Likewise.
5468         (fold_ternary): Position and size of BIT_FIELD_REFs are
5469         always host integers.
5470         (make_bit_field_ref): Remove.
5471         (optimize_bit_field_compare): Remove.
5472         (all_ones_mask_p): Remove.
5473
5474 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
5475
5476         PR gcc/33009
5477         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
5478         (split_block_and_df_analyze): New. Split basic block and rebuild
5479         dataflow.
5480         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
5481         SPLIT_BLOCK.
5482         (split_pattern_seq): Likewise.
5483         (erase_matching_seqs): Likewise.
5484         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
5485
5486 2008-03-04  Geoff Keating  <geoffk@apple.com>
5487
5488         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
5489         declaration and code.
5490         (tree_invalid_nonnegative_warnv_p): Likewise.
5491
5492 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
5493
5494         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
5495         examples.  Truncate option-names then causing overfull hbox.
5496
5497 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5498
5499         PR target/35222
5500         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
5501         on hpux10.
5502         * configure: Rebuilt.
5503
5504 2008-03-04  Rafael Espindola  <espindola@google.com>
5505
5506         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
5507         (tree_unary_nonnegative_warnv_p): New.
5508         (tree_binary_nonnegative_warnv_p): New.
5509         (tree_single_nonnegative_warnv_p): New.
5510         (tree_invalid_nonnegative_warnv_p): New.
5511         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
5512
5513 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5514
5515         PR 28322
5516         * opts.c (handle_option): Postpone 'unknown option' errors only for
5517         warning options.
5518
5519 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
5520
5521         PR target/35453
5522         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
5523         (_SIDD_XXX): This.
5524
5525 2008-03-04  Rafael Espindola  <espindola@google.com>
5526
5527         * fold-const.c (tree_unary_nonzero_warnv_p): New.
5528         (tree_binary_nonzero_warnv_p): New.
5529         (tree_single_nonzero_warnv_p): New.
5530         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
5531
5532 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
5533
5534         PR middle-end/35456
5535         * fold-const.c (fold_cond_expr_with_comparison): Prevent
5536         transformations for modes that have signed zeros.
5537         * ifcvt.c (noce_try_abs): Ditto.
5538
5539 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
5540
5541         * config/i386/i386.c (override_options): Force
5542         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
5543
5544 2008-03-04  Jan Hubicka  <jh@suse.cz>
5545
5546         PR c++/35262
5547         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
5548         in last commit.
5549
5550 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
5551
5552         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
5553         label to probe the stack.
5554
5555 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
5556
5557         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
5558         (__gthr_win32_mutex_destroy): Declare.
5559         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
5560         __gthr_win32_mutex_destroy.
5561         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
5562
5563 2008-03-03  Jan Hubicka  <jh@suse.cz>
5564
5565         PR c++/35262
5566         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
5567         aggressive on inlining cold calls.
5568
5569 2008-03-03  Richard Guenther  <rguenther@suse.de>
5570
5571         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
5572         struct copies into the expression table.
5573         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
5574         (try_to_simplify): Likewise.
5575         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
5576         integral and pointer arguments which do not change the
5577         precision to NOP_EXPRs.
5578         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
5579         VIEW_CONVERT_EXPR case.
5580
5581 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
5582
5583         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
5584         defined in a loop at depth 0 is invariant.
5585         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
5586         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
5587         be called at loop depth 0.
5588
5589 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
5590
5591         PR driver/35420
5592         * gcc.c (process_command): Update copyright notice dates.
5593         * gcov.c (print_version): Likewise.
5594         * gcov-dump.c (print_version): Likewise.
5595         * mips-tfile.c (main): Likewise.
5596         * mips-tdump.c (main): Likewise.
5597
5598 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5599
5600         PR 24924
5601         * c-common.c (flag_permissive): Delete.
5602         (constant_expression_warnings): Check flags first.
5603         (constant_expression_error): New.
5604         * c-common.h (flag_permissive): Delete.
5605         (constant_expression_error): Declare.
5606         * flags.h (flag_permissive): Declare. Update description.
5607         * diagnostic.c (pedwarn): Update.
5608         (permerror): New.
5609         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
5610         (permissive_error_kind): New.
5611         * toplev.c (flag_permissive): Define. Update description.
5612         * toplev.h (permissive_error_kind): Declare.
5613         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
5614         (pedwarn_c90): Use pedantic_warning_kind.
5615         * c-opts.c (c_common_post_options): flag_permissive does not affect
5616         flag_pedantic_errors.
5617
5618 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
5619
5620         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
5621         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
5622         __absvsi2, __absvDI2): Use unsigned arithmetic.
5623
5624 2008-03-02  Andi Kleen  <ak@suse.de>
5625             Richard Guenther  <rguenther@suse.de>
5626
5627         * struct-equiv.c: Remove file.
5628         * cfg_cleanup.c (condjump_equiv_p): Remove.
5629         * Makefile.in (OBJS-common): Remove struct-equiv.o.
5630         (struct-equiv.o): Remove rule.
5631         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
5632         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
5633         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
5634
5635 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
5636
5637         * ifcvt.c (noce_process_if_block): Try to handle only the then
5638         block if the else block exists but isn't suitable.
5639
5640 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
5641
5642         PR gcc/35063
5643         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
5644         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
5645         regression from previous patch.
5646
5647 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
5648
5649         PR gcc/35063
5650         * gthr.h: Add __gthread_mutex_destroy as a function that must be
5651         implemented.
5652         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
5653         * gthr-single.h (__gthread_mutex_destroy): Likewise.
5654         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
5655         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
5656         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
5657         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
5658         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
5659         (__gthread_mutex_destroy_function): Rename to
5660         __gthread_mutex_destroy.
5661         * gthr-dce.h (__gthread_mutex_destroy): Call
5662         pthread_mutex_destroy.
5663         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
5664         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
5665         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
5666
5667 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
5668
5669         * df-scan.c (df_ref_chain_change_bb): Simplify.
5670         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
5671         set_block_for_insn if there's any change.
5672         * df.h ((df_insn_change_bb): Fix prototype.
5673         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
5674         df_insn_change_bb, don't call set_block_for_insn.
5675         * emit-rtl.c (reorder_insns): Likewise.
5676         * haifa-sched.c (move_insn): Likewise.
5677
5678 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
5679
5680         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
5681
5682 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
5683
5684         * tree-flow-inline.h (next_readonly_imm_use): Return
5685         NULL_USE_OPERAND_P after the end.
5686
5687 2008-03-01  Richard Guenther  <rguenther@suse.de>
5688
5689         PR tree-optimization/35411
5690         * tree-sra.c (sra_build_assignment): Split conversion to
5691         final type to a separate statement if we are not assigning
5692         to a register.
5693
5694 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
5695
5696         * fold-const.c (fold_convertible_p): Correct the logic to follow
5697         that in fold_convert().
5698
5699 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
5700
5701         PR c++/35315
5702         * tree-inline.c (build_duplicate_type): When we make a
5703         duplicate type, make it unique in the canonical types system.
5704
5705 2008-02-29  Tom Tromey  <tromey@redhat.com>
5706
5707         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
5708         input_file_stack_history, input_file_stack_restored): Remove.
5709         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
5710         * input.h (struct file_stack): Remove.
5711         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
5712         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
5713         Likewise.
5714         * diagnostic.h (struct diagnostic_context) <last_module>: Change
5715         type.
5716         (diagnostic_last_module_changed): Add 'map' argument.
5717         (diagnostic_set_last_function): Likewise.
5718         * diagnostic.c (undiagnostic_report_current_module): Iterate using
5719         line map, not input_file_stack.
5720         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
5721
5722 2008-02-29  Paul Brook  <paul@codesourcery.com>
5723
5724         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
5725
5726 2008-02-29  Paul Brook  <paul@codesourcery.com>
5727
5728         * config/arm/ieee754-df.S (muldf3): Use RET macros.
5729
5730 2008-02-29  Richard Guenther  <rguenther@suse.de>
5731
5732         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
5733         vn_lookup_or_add.
5734         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
5735         value for comparing for a store match.
5736         (simplify_unary_expression): Do nothing for SSA_NAMEs.
5737         (try_to_simplify): Do not do a full-blown reference lookup.
5738
5739 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
5740
5741         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
5742         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
5743
5744         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
5745
5746 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
5747
5748         * tree-loop-linear.c (try_interchange_loops): Compare memory access
5749         strides against cache sizes.
5750
5751 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
5752
5753         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
5754         constant to fpul.
5755
5756 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
5757
5758         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
5759         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
5760         is smaller than the original promoted value.
5761         (simplify_subreg): If OP is a SUBREG, try to preserve its
5762         SUBREG_PROMOTED_VAR_P information.
5763
5764 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
5765
5766         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
5767         (VN_INFO_GET): Allocate new objects on the obstack.
5768         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
5769         for rpo_numbers_temp, for consistency.
5770         (free_scc_vn): Free the obstack.
5771
5772 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
5773
5774         * doc/invoke.texi: Document -ftree-loop-distribution.
5775         * tree-loop-distribution.c: New.
5776         * tree-pass.h (pass_loop_distribution): New.
5777         * graphds.h (struct graph): Add htab_t indices.
5778         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
5779         * tree-vectorizer.c (rename_variables_in_loop): Extern.
5780         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
5781         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
5782         * tree-data-ref.c (debug_data_dependence_relations): New.
5783         (dump_data_dependence_relation): Also print data references.
5784         (free_data_ref): Extern.
5785         (same_access_functions): Moved...
5786         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
5787         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
5788         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
5789         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
5790         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
5791         (stmts_from_loop): Skip LABEL_EXPR.
5792         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
5793         New.
5794         (build_rdg): Initialize rdg->indices htab.
5795         (free_rdg, stores_from_loop, ref_base_address,
5796         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
5797         have_similar_memory_accesses_1, ref_base_address_1,
5798         remove_similar_memory_refs): New.
5799         * tree-data-ref.h: Depend on tree-chrec.h.
5800         (debug_data_dependence_relations, free_data_ref): Declared.
5801         (same_access_functions): ... here.
5802         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
5803         New.
5804         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
5805         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
5806         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
5807         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
5808         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
5809         rdg_vertex_for_stmt): Declared.
5810         (struct rdg_edge): Add level.
5811         (RDGE_LEVEL): New.
5812         (free_rdg, stores_from_loop, remove_similar_memory_refs,
5813         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
5814         Declared.
5815         (rdg_has_similar_memory_accesses): New.
5816         * tree-vect-analyze.c: Remove unused static decls.
5817         * lambda.h (dependence_level): New.
5818         * common.opt (ftree-loop-distribution): New.
5819         * tree-flow.h (mark_virtual_ops_in_bb, 
5820         slpeel_tree_duplicate_loop_to_edge_cfg,
5821         rename_variables_in_loop): Declared.
5822         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
5823         (OBJS-common): Add tree-loop-distribution.o.
5824         (tree-loop-distribution.o): New rule.
5825         * tree-cfg.c (mark_virtual_ops_in_bb): New.
5826         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
5827         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
5828
5829 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
5830
5831         PR target/33963
5832         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
5833         other than structures and unions.
5834
5835 2008-02-28  Richard Guenther  <rguenther@suse.de>
5836
5837         Revert:
5838         2008-02-26  Richard Guenther  <rguenther@suse.de>
5839
5840         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
5841         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
5842         (lookup_decl_from_uid): Declare.
5843         (remove_decl_from_map): Likewise.
5844         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
5845         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
5846         (decl_for_uid_map): New global hashtable mapping DECL_UID
5847         to the decl tree.
5848         (init_ttree): Allocate it.
5849         (insert_decl_to_uid_decl_map): New helper function.
5850         (make_node_stat): Insert new decls into the map.
5851         (copy_node_stat): Likewise.
5852         (lookup_decl_from_uid): New function.
5853         (remove_decl_from_map): Likewise.
5854         (print_decl_for_uid_map_statistics): New helper.
5855         (dump_tree_statistics): Call it.
5856
5857         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
5858         (referenced_var_iterator): Adjust.
5859         (FOR_EACH_REFERENCED_VAR): Adjust.
5860         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
5861         (num_referenced_vars): Adjust.
5862         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
5863         (first_referenced_var): Remove.
5864         (end_referenced_vars_p): Likewise.
5865         (next_referenced_var): Likewise.
5866         (referenced_var_iterator_set): New helper function.
5867         * tree-dfa.c (referenced_var_lookup): Adjust.
5868         (referenced_var_check_and_insert): Likewise.
5869         (remove_referenced_var): Likewise.
5870         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
5871         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5872         (verify_call_clobbering): Likewise.
5873         (verify_memory_partitions): Likewise.
5874         (init_tree_ssa): Allocate bitmap instead of hashtable for
5875         referenced_vars.
5876         (delete_tree_ssa): Adjust.
5877         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
5878         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5879         (compute_tag_properties): Likewise.
5880         (set_initial_properties): Likewise.
5881         (find_partition_for): Likewise.
5882         (update_reference_counts): Likewise.
5883         (dump_may_aliases_for): Likewise.
5884         * tree-ssa-operands.c (add_virtual_operand): Likewise.
5885         (add_call_clobber_ops): Likewise.
5886         (add_call_read_ops): Likewise.
5887         (get_asm_expr_operands): Likewise.
5888         * tree-into-ssa.c (dump_decl_set): Likewise.
5889         (update_ssa): Likewise.
5890         * tree-sra.c (scan_function): Likewise.
5891         (decide_instantiations): Likewise.
5892         (scalarize_parms): Likewise.
5893         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
5894         (dsa_named_for): Likewise.
5895         * tree-ssa-structalias.c (update_alias_info): Likewise.
5896         (merge_smts_into): Likewise.
5897
5898 2008-02-27  David Daney  <ddaney@avtrex.com>
5899
5900         PR target/34409
5901         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
5902         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
5903         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
5904         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
5905         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
5906
5907 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
5908
5909         PR target/25477
5910         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
5911         (BUILT_IN_NEXTTOWARD): Remove.
5912         (BUILT_IN_NEXTTOWARDF): Ditto.
5913         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
5914         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
5915
5916 2008-02-27  Tom Tromey  <tromey@redhat.com>
5917
5918         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
5919         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
5920
5921 2008-02-27  Jan Beulich  <jbeulich@novell.com>
5922
5923         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
5924         update the respective field on newdecl.
5925
5926 2008-02-27  Revital Eres  <eres@il.ibm.com>
5927
5928         PR rtl-optimization/34999
5929         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
5930         crossing edges that ends with a call insn.
5931         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
5932         call insn and clear the EDGE_CROSSING flag of the crossing edge
5933         when fixing fallthru edges.
5934
5935 2008-02-27  Richard Guenther  <rguenther@suse.de>
5936
5937         PR middle-end/35390
5938         * fold-const.c (fold_unary): Return the correct argument,
5939         converted to the result type.
5940
5941 2008-02-27  Richard Guenther  <rguenther@suse.de>
5942
5943         PR middle-end/34971
5944         * expr.c (expand_expr_real_1): Assert on rotates that operate
5945         on partial modes.
5946         * fold-const.c (fold_binary): Use the types precision, not the
5947         bitsize of the mode if folding rotate expressions.  Build rotates
5948         only for full modes.
5949
5950 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
5951
5952         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
5953         and CPP_PRAGMA_EOL.
5954         * c-pragma.c (pragma_ns_name): New typedef.
5955         (registered_pp_pragmas): New variable.
5956         (c_pp_lookup_pragma): New function.
5957         (c_register_pragma_1): If flag_preprocess_only, do nothing
5958         for non-expanded pragmas, for expanded ones push pragma's
5959         namespace and name into registered_pp_pragmas vector.
5960         (c_invoke_pragma_handler): Register OpenMP pragmas even when
5961         flag_preprocess_only, don't register GCC pch_preprocess
5962         pragma if flag_preprocess_only.
5963         * c-opts.c (c_common_init): Call init_pragma even if
5964         flag_preprocess_only.
5965         * c-pragma.c (c_pp_lookup_pragma): New prototype.
5966         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
5967         cpp_register_pragma if flag_preprocess_only.
5968
5969 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5970
5971         PR c/28800
5972         * c-parser.c (c_parser_translation_unit): Warn for empty
5973         translation unit, not empty source file.
5974
5975 2008-02-26  Paul Brook  <paul@codesourcery.com>
5976
5977         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
5978         operand for Thumb-2.
5979         * config/arm/arm.h (reg_class): Add CORE_REGS.
5980         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
5981         (BASE_REG_CLASS): Use CORE_REGS.
5982         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
5983         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
5984         (REGNO_OK_FOR_INDEX_P): Exclude SP.
5985         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
5986         ARM_REGNO_OK_FOR_INDEX_P.
5987         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
5988         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
5989         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
5990         (ldm/stm peepholes): Ditto.
5991         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
5992         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
5993         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
5994         * config/arm/constraints.md: Enable "k" constraint on ARM.
5995
5996 2008-02-27  Ben Elliston  <bje@au.ibm.com>
5997
5998         * config/rs6000/rs6000.c: Annotate cache line size field in all
5999         instances of struct processor_costs.
6000
6001 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
6002
6003         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
6004         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
6005         jump_bypass): New counters.
6006         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
6007         * dce.c (gate_ud_dce): Same.
6008         (gate_fast_dce): Same.
6009         * dse.c (gate_dse1): New function.
6010         (gate_dse2): New function.
6011         (gate_dse): Merge results of new gate functions.
6012         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
6013         (gate_handle_jump_bypass): Add dbg_cnt.
6014         (gate_handle_gcse): Add dbg_cnt.
6015         * ifcvt.c (gate_handle_if_conversion): Same.
6016         (gate_handle_if_after_combine): Same.
6017         (gate_handle_if_after_reload): Same.
6018         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
6019
6020 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
6021
6022         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
6023         line sizes.
6024         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
6025
6026 2008-02-26  Jason Merrill  <jason@redhat.com>
6027
6028         PR c++/35315
6029         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
6030         alone if it's the naming decl for the type's main variant.
6031
6032 2008-02-26  Tom Tromey  <tromey@redhat.com>
6033
6034         * system.h (USE_MAPPED_LOCATION): Poison.
6035         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
6036         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
6037         (make_goto_expr_edges): Likewise.
6038         (remove_bb): Likewise.
6039         (execute_warn_function_return): Likewise.
6040         * basic-block.h (struct edge_def) <goto_locus>: Change type to
6041         location_t.
6042         * c-common.c (fname_decl): Remove old location code.
6043         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
6044         location code.
6045         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
6046         variant.
6047         (ASM_INPUT_SOURCE_LOCATION): Likewise.
6048         (gen_rtx_ASM_INPUT): Likewise.
6049         (gen_rtx_ASM_INPUT_loc): Likewise.
6050         (get_rtx_asm_OPERANDS): Remove.
6051         * cfglayout.c (insn_locators_alloc): Remove old location code.
6052         (set_curr_insn_source_location): Likewise.
6053         (curr_insn_locator): Likewise.
6054         * print-tree.c (print_node): Remove old location code.
6055         * tree-mudflap.c (mf_varname_tree): Remove old location code.
6056         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
6057         * cfgexpand.c (expand_gimple_cond_expr): Don't use
6058         location_from_locus.
6059         (construct_exit_block): Remove old location code.
6060         * emit-rtl.c (force_next_line_note): Remove old location code.
6061         * profile.c (branch_prob): Remove old location code.
6062         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
6063         LOC_LINE): Remove old-location variants.
6064         * langhooks.c (lhd_print_error_function): Remove old location
6065         code.
6066         * configure, config.in: Rebuilt.
6067         * configure.ac (--enable-mapped-location): Remove.
6068         * c-decl.c (c_init_decl_processing): Remove old location code.
6069         (finish_function): Likewise.
6070         * recog.c (decode_asm_operands): Remove old location code.
6071         * c-pch.c (c_common_read_pch): Remove old location code.
6072         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
6073         variants.
6074         * gimple-low.c (lower_function_body): Remove old location code.
6075         * toplev.c (unknown_location): Remove.
6076         (push_srcloc): Remove old-location variant.
6077         (process_options): Remove old location code.
6078         (lang_dependent_init): Likewise.
6079         * input.h (UNKNOWN_LOCATION): Move definition.
6080         (location_t): Undeprecate.
6081         (source_locus): Remove.
6082         (location_from_locus): Remove.
6083         (struct location_s): Remove.
6084         Remove all old-location code.
6085         (input_line, input_filename): Remove.
6086         * final.c (final_scan_insn): Remove old location code.
6087         * diagnostic.c (diagnostic_build_prefix): Remove
6088         USE_MAPPED_LOCATION test.
6089         * tree.h (gimple_stmt) <locus>: Now a location_t.
6090         (tree_exp) <locus>: Likewise.
6091         (DECL_IS_BUILTIN): Remove old-location variant.
6092         (annotate_with_file_line, annotate_with_locus): Likewise.
6093         (expr_locus, set_expr_locus): Update.
6094         * tree.c (build1_stat): Remove old location code.
6095         (last_annotated_node): Remove.
6096         (annotate_with_file_line): Remove old-location variant.
6097         (annotate_with_locus): Likewise.
6098         (expr_location): Remove old location code.
6099         (set_expr_location): Likewise.
6100         (expr_has_location): Likewise.
6101         (expr_locus): Likewise.
6102         (set_expr_locus): Likewise.
6103         (expr_filename): Don't use location_from_locus.
6104         (expr_lineno): Likewise.
6105         * rtl-error.c (location_for_asm): Remove old location code.
6106         * c-lex.c (cb_line_change): Remove old location code.
6107         (fe_file_change): Likewise.
6108         (cb_def_pragma): Likewise.
6109         (c_lex_with_flags): Likewise.
6110         * gengtype.c (do_typedef): Don't special-case location types.
6111         (define_location_structures): Remove.
6112         (main): Don't call define_location_structures.
6113         * tree-pretty-print.c (dump_implicit_edges): Remove old location
6114         code.
6115
6116 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6117
6118         PR 26264
6119         * builtins.def (BUILT_IN_STDARG_START): Remove.
6120         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
6121         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
6122         * tree-inline.c (inline_forbidden_p_1): Likewise.
6123         
6124 2008-02-26  Richard Guenther  <rguenther@suse.de>
6125
6126         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
6127         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
6128         (lookup_decl_from_uid): Declare.
6129         (remove_decl_from_map): Likewise.
6130         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
6131         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
6132         (decl_for_uid_map): New global hashtable mapping DECL_UID
6133         to the decl tree.
6134         (init_ttree): Allocate it.
6135         (insert_decl_to_uid_decl_map): New helper function.
6136         (make_node_stat): Insert new decls into the map.
6137         (copy_node_stat): Likewise.
6138         (lookup_decl_from_uid): New function.
6139         (remove_decl_from_map): Likewise.
6140         (print_decl_for_uid_map_statistics): New helper.
6141         (dump_tree_statistics): Call it.
6142
6143         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
6144         (referenced_var_iterator): Adjust.
6145         (FOR_EACH_REFERENCED_VAR): Adjust.
6146         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
6147         (num_referenced_vars): Adjust.
6148         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
6149         (first_referenced_var): Remove.
6150         (end_referenced_vars_p): Likewise.
6151         (next_referenced_var): Likewise.
6152         (referenced_var_iterator_set): New helper function.
6153         * tree-dfa.c (referenced_var_lookup): Adjust.
6154         (referenced_var_check_and_insert): Likewise.
6155         (remove_referenced_var): Likewise.
6156         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
6157         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6158         (verify_call_clobbering): Likewise.
6159         (verify_memory_partitions): Likewise.
6160         (init_tree_ssa): Allocate bitmap instead of hashtable for
6161         referenced_vars.
6162         (delete_tree_ssa): Adjust.
6163         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
6164         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6165         (compute_tag_properties): Likewise.
6166         (set_initial_properties): Likewise.
6167         (find_partition_for): Likewise.
6168         (update_reference_counts): Likewise.
6169         (dump_may_aliases_for): Likewise.
6170         * tree-ssa-operands.c (add_virtual_operand): Likewise.
6171         (add_call_clobber_ops): Likewise.
6172         (add_call_read_ops): Likewise.
6173         (get_asm_expr_operands): Likewise.
6174         * tree-into-ssa.c (dump_decl_set): Likewise.
6175         (update_ssa): Likewise.
6176         * tree-sra.c (scan_function): Likewise.
6177         (decide_instantiations): Likewise.
6178         (scalarize_parms): Likewise.
6179         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
6180         (dsa_named_for): Likewise.
6181         * tree-ssa-structalias.c (update_alias_info): Likewise.
6182         (merge_smts_into): Likewise.
6183
6184 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6185
6186         PR 34351
6187         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
6188         * c-opts.c (c_common_handle_option): Wall enables
6189         Wvolatile-register-var.
6190         * common.opt: Move Wvolatile-register-var to...
6191         * c.opt: ...here.
6192         
6193 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6194
6195         * common.opt (Wlarger-than=): New.
6196         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
6197         -Wlarger-than=.
6198         * opts.c (common_handle_option): Handle -Wlarger-than=.
6199         * optc-gen.awk: Likewise.
6200         * opth-gen.awk: Likewise.
6201         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
6202         * tree-optimize.c (tree_rest_of_compilation): Likewise.
6203         
6204 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6205
6206         * c-common.c (match_case_to_enum_1): Add appropriate
6207         OPT_W* parameter to warning.
6208         (c_do_switch_warnings): Likewise.
6209         * c-typeck.c (warning_init): Add one more parameter following
6210         'warning' function.
6211         (push_init_level): Update call to warning_init.
6212         (pop_init_level): Likewise.
6213         (add_pending_init): Likewise.
6214         (output_init_element: Likewise.
6215
6216 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6217
6218         PR 28322
6219         * toplev.c (toplev_main): If there are warnings or error, print
6220         errors for ignored options.
6221         * opts.c (ignored_options): New static variable.
6222         (postpone_unknown_option_error): New.
6223         (print_ignored_options): New.
6224         (handle_option): Postpone errors for unknown -Wno-* options.
6225         * opts.h (print_ignored_options): Declare.
6226         
6227 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
6228
6229         * config/mips/mips.md (loadgp_blockage, blockage): Change type
6230         to "ghost".
6231
6232 2008-02-25  Richard Guenther  <rguenther@suse.de>
6233
6234         Revert:
6235         2008-02-25  Richard Guenther  <rguenther@suse.de>
6236
6237         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
6238         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
6239         (lookup_decl_from_uid): Declare.
6240         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
6241         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
6242         (decl_for_uid_map): New global hashtable mapping DECL_UID
6243         to the decl tree.
6244         (init_ttree): Allocate it.
6245         (insert_decl_to_uid_decl_map): New helper function.
6246         (make_node_stat): Insert new decls into the map.
6247         (copy_node_stat): Likewise.
6248         (lookup_decl_from_uid): New function.
6249         (print_decl_for_uid_map_statistics): New helper.
6250         (dump_tree_statistics): Call it.
6251
6252         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
6253         (referenced_var_iterator): Adjust.
6254         (FOR_EACH_REFERENCED_VAR): Adjust.
6255         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
6256         (num_referenced_vars): Adjust.
6257         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
6258         (first_referenced_var): Remove.
6259         (end_referenced_vars_p): Likewise.
6260         (next_referenced_var): Likewise.
6261         (referenced_var_iterator_set): New helper function.
6262         * tree-dfa.c (referenced_var_lookup): Adjust.
6263         (referenced_var_check_and_insert): Likewise.
6264         (remove_referenced_var): Likewise.
6265         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
6266         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6267         (verify_call_clobbering): Likewise.
6268         (verify_memory_partitions): Likewise.
6269         (init_tree_ssa): Allocate bitmap instead of hashtable for
6270         referenced_vars.
6271         (delete_tree_ssa): Adjust.
6272         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
6273         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6274         (compute_tag_properties): Likewise.
6275         (set_initial_properties): Likewise.
6276         (find_partition_for): Likewise.
6277         (update_reference_counts): Likewise.
6278         (dump_may_aliases_for): Likewise.
6279         * tree-ssa-operands.c (add_virtual_operand): Likewise.
6280         (add_call_clobber_ops): Likewise.
6281         (add_call_read_ops): Likewise.
6282         (get_asm_expr_operands): Likewise.
6283         * tree-into-ssa.c (dump_decl_set): Likewise.
6284         (update_ssa): Likewise.
6285         * tree-sra.c (scan_function): Likewise.
6286         (decide_instantiations): Likewise.
6287         (scalarize_parms): Likewise.
6288         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
6289         (dsa_named_for): Likewise.
6290         * tree-ssa-structalias.c (update_alias_info): Likewise.
6291         (merge_smts_into): Likewise.
6292
6293 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
6294
6295         PR fortran/29549
6296         * doc/invoke.texi (-fcx-limited-range): Document new option.
6297         * toplev.c (process_options): Handle -fcx-fortran-rules.
6298         * common.opt: Add documentation for -fcx-fortran-rules.
6299
6300 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
6301
6302         PR c/35162
6303         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
6304         actual behaviour and C99.
6305         
6306 2008-02-26  Ben Elliston  <bje@au.ibm.com>
6307
6308         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
6309         (ASM_CPU_POWER6_SPEC): Likewise.
6310         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
6311         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
6312         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
6313
6314 2008-02-25  Richard Guenther  <rguenther@suse.de>
6315
6316         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
6317         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
6318         (lookup_decl_from_uid): Declare.
6319         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
6320         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
6321         (decl_for_uid_map): New global hashtable mapping DECL_UID
6322         to the decl tree.
6323         (init_ttree): Allocate it.
6324         (insert_decl_to_uid_decl_map): New helper function.
6325         (make_node_stat): Insert new decls into the map.
6326         (copy_node_stat): Likewise.
6327         (lookup_decl_from_uid): New function.
6328         (print_decl_for_uid_map_statistics): New helper.
6329         (dump_tree_statistics): Call it.
6330
6331         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
6332         (referenced_var_iterator): Adjust.
6333         (FOR_EACH_REFERENCED_VAR): Adjust.
6334         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
6335         (num_referenced_vars): Adjust.
6336         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
6337         (first_referenced_var): Remove.
6338         (end_referenced_vars_p): Likewise.
6339         (next_referenced_var): Likewise.
6340         (referenced_var_iterator_set): New helper function.
6341         * tree-dfa.c (referenced_var_lookup): Adjust.
6342         (referenced_var_check_and_insert): Likewise.
6343         (remove_referenced_var): Likewise.
6344         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
6345         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6346         (verify_call_clobbering): Likewise.
6347         (verify_memory_partitions): Likewise.
6348         (init_tree_ssa): Allocate bitmap instead of hashtable for
6349         referenced_vars.
6350         (delete_tree_ssa): Adjust.
6351         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
6352         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6353         (compute_tag_properties): Likewise.
6354         (set_initial_properties): Likewise.
6355         (find_partition_for): Likewise.
6356         (update_reference_counts): Likewise.
6357         (dump_may_aliases_for): Likewise.
6358         * tree-ssa-operands.c (add_virtual_operand): Likewise.
6359         (add_call_clobber_ops): Likewise.
6360         (add_call_read_ops): Likewise.
6361         (get_asm_expr_operands): Likewise.
6362         * tree-into-ssa.c (dump_decl_set): Likewise.
6363         (update_ssa): Likewise.
6364         * tree-sra.c (scan_function): Likewise.
6365         (decide_instantiations): Likewise.
6366         (scalarize_parms): Likewise.
6367         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
6368         (dsa_named_for): Likewise.
6369         * tree-ssa-structalias.c (update_alias_info): Likewise.
6370         (merge_smts_into): Likewise.
6371
6372 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
6373
6374         PR target/35258
6375         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
6376         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
6377         * alias.h (nonoverlapping_memrefs_p): Likewise.
6378
6379 2008-02-25  Jan Beulich  <jbeulich@novell.com>
6380
6381         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
6382         * config/i386/netware-libgcc.exp: Add __bswap?i2,
6383         __emultls_get_address, __emultls_register_common,
6384         __floatundi?f, and _Unwind_GetIPInfo.
6385         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
6386         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
6387         (gen_regparm_prefix): Likewise.
6388         (i386_nlm_encode_section_info): Sync with
6389         config/i386/winnt.c:i386_pe_encode_section_info().
6390         (i386_nlm_maybe_mangle_decl_assembler_name): New.
6391         i386_nlm_mangle_decl_assembler_name): New.
6392         (netware_override_options): New.
6393         * config/i386/netware.h (netware_override_options): Declare.
6394         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
6395         (i386_nlm_mangle_decl_assembler_name): Declare.
6396         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
6397
6398 2008-02-25  Ben Elliston  <bje@au.ibm.com>
6399
6400         PR other/32948
6401         * c-decl.c (grokdeclarator): Remove unused local variables
6402         `typedef_type' and `type_as_written'.
6403         * bb-reorder.c
6404         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
6405         unused local variable `has_hot_blocks'.
6406         (fix_crossing_conditional_branches): Remove unused local variable
6407         `prev_bb'.
6408         
6409 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
6410
6411         PR middle-end/19984
6412         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
6413         using DEF_C99_BUILTIN.
6414         (BUILT_IN_NANF): Ditto.
6415         (BUILT_IN_NANL): Ditto.
6416
6417 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
6418             Revital Eres  <eres@il.ibm.com>
6419
6420         * modulo-sched.c (calculate_must_precede_follow): Address TODO
6421         regarding the order of two dependent insns in the same row.
6422
6423 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
6424
6425         * stor-layout.c (layout_decl): Do not bump the alignment of a
6426         bit-field to more than byte alignment if it is packed.
6427
6428 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
6429
6430         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
6431         e300c2 and e300c3.
6432
6433 2008-02-24  Diego Novillo  <dnovillo@google.com>
6434
6435         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
6436
6437         PR 33738
6438         * tree-vrp.c (vrp_evaluate_conditional): With
6439         -Wtype-limits, emit a warning when comparing against a
6440         constant outside the natural range of OP0's type.
6441         * c.opt (Wtype-limits): Move ...
6442         * common.opt (Wtype-limits): ... here.
6443
6444 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
6445
6446         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
6447         * config/rs6000/e300c2c3.md: New file.
6448         * config/rs6000/rs6000.c (processor_costs): Add new costs for
6449         e300c2 and e300c3.
6450         (rs6000_override_options): Add e300c2 and e300c3 cases to
6451         processor_target_table. Do not allow usage of Altivec or Spe
6452         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
6453         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
6454         * config/rs6000/rs6000.h (processor_type): Add
6455         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
6456         (ASM_CPU_SPEC): Add e300c2 and e300c3.
6457         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
6458         and ppce300c3. Include e300c2c3.md.
6459
6460 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
6461
6462         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
6463         instead of TARGET_STRICT_ALIGN.
6464
6465 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
6466
6467         * explow.c (memory_address): Assert that the generated address is
6468         valid.
6469
6470 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
6471
6472         PR target/25477
6473         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
6474         * config/darwin-ppc-ldouble-patch.def: New file.
6475         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
6476         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
6477         SUBTARGET_INIT_BUILTINS if defined.
6478         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
6479         New functions.
6480
6481 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6482
6483         PR rtl-opt/33512
6484         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
6485         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
6486
6487 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6488
6489         PR pch/35027
6490         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
6491         file" warning condtional on -Winvalid-PCH.
6492
6493 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
6494
6495         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
6496
6497 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
6498
6499         PR target/22076
6500         PR target/34256 
6501         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
6502         prevent reload from using MMX registers.
6503         (*mov<mode>_internal): Ditto.
6504         (*movv2sf_internal_rex64): Ditto.
6505         (*movv2sf_internal): Ditto.
6506
6507 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6508
6509         PR documentation/31569
6510         * doc/install.texi2html: Use makeinfo --no-number-sections.
6511
6512 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
6513
6514         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
6515         ensure that we can address an entire entity > 8 bytes.  Don't
6516         generate reg+reg addressing for such data.
6517
6518 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
6519
6520         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
6521         strings when optimizing for size, unless the target cares about
6522         alignment.
6523
6524 2008-02-22  Tom Tromey  <tromey@redhat.com>
6525
6526         * regclass.c (current_pass): Remove declaration.
6527
6528 2008-02-22  Anatoly Sokolov <aesok@post.ru>
6529
6530         * config/avr/libgcc.S (__RAMPZ__): Define.
6531         (__do_copy_data): Add for devices with 128KB code memory.
6532
6533 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
6534
6535         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
6536         Use spe_abi.
6537         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
6538
6539 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
6540
6541         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
6542         GENNONACR_REGS.
6543
6544 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6545
6546         PR c/19999
6547         * c-typeck.c (build_binary_op): Warn about floating point
6548         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
6549
6550 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
6551
6552         PR target/34526
6553         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
6554         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
6555         add vrsave.
6556         (rs6000_override_options): Set altivec_abi as default, not override,
6557         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
6558         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
6559         is used; use new member spe_abi.
6560         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
6561         spe_abi and altivec_abi.
6562
6563 2008-02-22  Tomas Bily  <tbily@suse.cz>
6564
6565         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
6566
6567 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6568
6569         PR bootstrap/35273
6570         * config.build (build_file_translate): Set to `CMD //c' only if
6571         it works.
6572         * Makefile.in (build_file_translate): Improve comment.
6573
6574 2008-02-21  Jan Hubicka  <jh@suse.cz>
6575
6576         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
6577         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
6578         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
6579
6580 2008-02-21  Michael Matz  <matz@suse.de>
6581
6582         PR target/35264
6583         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
6584
6585 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
6586
6587         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
6588         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
6589         as insn constraint.
6590         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
6591         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
6592         SSE_VEC_FLOAT_MODE_P as insn constraint.
6593         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
6594         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
6595         sse4a_movntdf using MODEF mode iterator.
6596         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
6597         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
6598         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
6599         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
6600         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
6601         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
6602         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
6603
6604 2008-02-21  Richard Guenther  <rguenther@suse.de>
6605
6606         * tree.def (PAREN_EXPR): New tree code.
6607         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
6608         and PAREN_EXPR.
6609         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
6610         * expr.c (expand_expr_real_1): Likewise.
6611         * tree-inline.c (estimate_num_insns_1): Likewise.
6612         * tree-complex.c (expand_complex_move): Likewise.
6613         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
6614         as plain x.
6615
6616 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6617
6618         PR target/35225
6619         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
6620
6621 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6622
6623         PR target/35190
6624         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
6625
6626         * config/sh/sh.c (find_barrier): Don't go past
6627         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
6628
6629 2008-02-20  DJ Delorie  <dj@redhat.com>
6630
6631         * config/h8300/h8300.md (insv): Force source operand to be a register.
6632
6633         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
6634         as a jump, not as a plain insn.
6635         
6636 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
6637
6638         * doc/invoke.texi (Warning Options): Add new option
6639         -Wframe-larger-than=.
6640         (-Wframe-larger-than): Document.
6641
6642         * flags.h (warn_frame_larger_than, frame_larger_than_size):
6643         Add declarations for new option variables.
6644
6645         * final.c (final_start_function): Check the frame size
6646         before emission and issue a Wframe-larger-than warning.
6647
6648         * opts.c (warn_frame_larger_than, frame_larger_than_size):
6649         Add definitions for new option variables.
6650         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
6651
6652         * common.opt (Wframe-larger-than=): New option.
6653
6654 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
6655
6656         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
6657         (<sse>_div<mode>3): Ditto.
6658         (<sse>_vmdiv<mode>3): Ditto.
6659         (<sse>_vmsqrt<mode>2): Ditto.
6660         (*smax<mode>3): Ditto.
6661         (sse5_frcz<mode>2): Ditto.
6662         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
6663         as insn constraint.
6664
6665 2008-02-20  Richard Guenther  <rguenther@suse.de>
6666
6667         PR middle-end/35265
6668         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
6669         be happy with INTEGRAL_TYPE_P.
6670
6671 2008-02-20  Richard Guenther  <rguenther@suse.de>
6672
6673         * fold-const.c (split_tree): Associate floatig-point expressions
6674         if flag_associative_math is set.
6675
6676 2008-02-20  Richard Guenther  <rguenther@suse.de>
6677
6678         * tree.h (fold_real_zero_addition_p): Declare.
6679         * fold-const.c (fold_real_zero_addition_p): Export.
6680         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
6681         floating-point operations with zero and one.
6682
6683 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
6684
6685         * doc/install.texi: Correct references to CFLAGS, replacing them
6686         with BOOT_CFLAGS.  Document flags used during bootstrap for
6687         target libraries.
6688                                 
6689 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
6690
6691         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
6692         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
6693         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
6694         insn constraint.
6695         (smin<mode>3): Ditto from similar patterns.
6696         (smax<mode>3): Ditto.
6697         (*ieee_smin<mode>3): Ditto.
6698         (*ieee_smax<mode>3): Ditto.
6699         * config/i386/sse.md (sse): New mode attribute.
6700         (mov<mode>): Macroize expander from movv4sf and movv2df using
6701         SSEMODEF2P mode iterator.
6702         (<sse>_movnt<mode>): Ditto from similar patterns. Use
6703         SSE_VEC_FLOAT_MODE_P as insn constraint.
6704         (storent<mode>): Ditto.
6705         (storent<mode>): Macroize expander from storentsf and storentdf using
6706         MODEF mode iterator.
6707         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
6708         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
6709         (abs<mode>2): Ditto from similar patterns.
6710         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
6711         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
6712         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
6713         (<sse>_vmsqrt<mode>2): Ditto.
6714         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
6715         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
6716         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
6717         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
6718         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
6719         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
6720         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
6721         insn constraint.
6722         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
6723         iterator and SSE_FLOAT_MODE_P as insn constraint.
6724         (<sse>_ucomi): Ditto from similar patterns.
6725         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
6726         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
6727         SSE_VEC_FLOAT_MODE_P as insn constraint.
6728         (vcond<mode>): Ditto from similar patterns.
6729         (and<mode>3, *and<mode>3): Ditto.
6730         (<sse>_nand<mode>3): Ditto.
6731         (ior<mode>3, *ior<mode>3): Ditto.
6732         (xor<mode>3, *xor<mode>3): Ditto.
6733         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
6734         iterator and SSE_FLOAT_MODE_P as insn constraint.
6735         (*nand<mode>3): Ditto from similar patterns.
6736         (*ior<mode>3): Ditto.
6737         (*xor<mode>3): Ditto.
6738
6739 2008-02-20  Ira Rosen  <irar@il.ibm.com>
6740
6741         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
6742         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
6743         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
6744
6745 2008-02-19  Jan Hubicka  <jh@suse.cz>
6746
6747         * predict.c (tree_bb_level_predictions): Remove variable next
6748         mistakely introduced by previous commit.
6749
6750 2008-02-19  Jan Hubicka  <jh@suse.cz>
6751
6752         * predict.c (predict_paths_leading_to): Rewrite.
6753         (predict_paths_for_bb): New.
6754         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
6755
6756 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6757
6758         PR bootstrap/35218
6759         * Makefile.in (build_file_translate): New.
6760         (gcc-vers.texi): Use it for translating $(abs_srcdir).
6761         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
6762         * configure.ac (build_file_translate): Substitute it.
6763         * configure: Regenerate.
6764
6765 2008-02-19  Jan Hubicka  <jh@suse.cz>
6766
6767         PR rtl-optimization/34408
6768         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
6769         invalid sharing.
6770
6771 2008-02-19  Jan Hubicka  <jh@suse.cz>
6772
6773         PR middle-end/28779
6774         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
6775         call_expr.
6776
6777 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
6778
6779         PR Ada/35186
6780         * config/i386/i386-modes.def: Revert the last DI alignment
6781         change until Ada people can look into it.
6782
6783 2008-02-19  Nick Clifton  <nickc@redhat.com>
6784
6785         * opts.c (print_specific_help): Fix typo in --help text.
6786
6787 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
6788
6789         PR target/35239
6790         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
6791         32-bit inline asm without asm alternatives for host GCC < 3.0.
6792
6793 2008-02-19  Richard Guenther  <rguenther@suse.de>
6794
6795         PR tree-optimization/34989
6796         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
6797         Allow propagation to INDIRECT_REF if we can simplify only.
6798
6799 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6800
6801         * c-common.c (warn_for_collisions_1): Use appropriate option when
6802         warning.
6803
6804 2008-02-19  Nick Clifton  <nickc@redhat.com>
6805
6806         PR other/31349
6807         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
6808         (handle_options): Fix indentation.
6809         (print_filtered_help): If no language-specific options were
6810         displayed tell the user how to list all the options supported by
6811         the language's front-end.
6812         (print_specific_help): Fix indentation and remove duplicate line.
6813         (common_handle_option): Handle the -v option.
6814         For --help enable the display of undocumented options if the -v
6815         switch has been included on the command line.
6816         For --help= check for overlaps in the arguments between the option
6817         classes and the language names and issue a warning when they
6818         cannot be disambiguated.
6819         * c.opt (v): Pass on to the common option handler.
6820
6821 2008-02-19  Revital Eres  <eres@il.ibm.com> 
6822
6823         * modulo-sched.c (sms_schedule): Change dump message when
6824         create_ddg function fails.
6825         (try_scheduling_node_in_cycle): Rename row to cycle.
6826         (print_partial_schedule): Rename CYCLE to ROW.
6827
6828 2008-02-19  Christian Bruel  <christian.bruel@st.com>
6829             Zdenek Dvorak  <ook@ucw.cz>
6830
6831         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
6832
6833 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
6834
6835         PR target/33555
6836         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
6837         (*x86_movdicc_0_m1_se): Ditto.
6838
6839 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
6840
6841         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
6842         (CMPtype): Define as __gcc_CMPtype.
6843         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
6844         (CMPtype): Define as __gcc_CMPtype.
6845
6846 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
6847
6848         Support valgrind 3.3 for --enable-checking=valgrind.
6849         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
6850         here.
6851         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
6852         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
6853         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
6854         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
6855         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
6856         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
6857         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
6858         respectively.
6859         * ggc-zone.c: Similar.
6860         * ggc-page.c: Similar.
6861
6862 2008-02-19  Paul Brook  <paul@codesourcery.com>
6863
6864         PR target/35071
6865         * config/arm/ieee754-df.S: Fix do_it typo.
6866         * config/arm/ieee754-sf.S: Fix do_it typo.
6867
6868 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
6869
6870         PR target/35189
6871         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
6872         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
6873         (OPTION_MASK_ISA_SSE_SET): Likewise.
6874         (OPTION_MASK_ISA_SSE2_SET): Likewise.
6875         (OPTION_MASK_ISA_SSE3_SET): Likewise.
6876         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
6877         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
6878         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
6879         (OPTION_MASK_ISA_SSE4_SET): Likewise.
6880         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
6881         (OPTION_MASK_ISA_SSE5_SET): Likewise.
6882         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
6883         (OPTION_MASK_ISA_MMX_UNSET): Updated.
6884         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
6885         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
6886         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
6887         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
6888         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
6889         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
6890         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
6891         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
6892         (OPTION_MASK_ISA_SSE4): Removed.
6893         (ix86_handle_option): Turn on bits in ix86_isa_flags and
6894         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
6895         (override_options): Don't turn on implied SSE/MMX bits in
6896         ix86_isa_flags.
6897
6898 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
6899
6900         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
6901         32bit host.
6902
6903 2008-02-18  Joey Ye  <joey.ye@intel.com>
6904
6905         PR middle-end/34921
6906         * tree-nested.c (insert_field_into_struct): Set type alignment
6907         to field alignment if the former is less than the latter.
6908
6909 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
6910
6911         * BASE-VER: Set to 4.4.0.
6912
6913 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6914
6915         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
6916         * doc/cfg.texi: Likewise.
6917         * doc/extend.texi: Likewise.
6918         * doc/gty.texi: Likewise.
6919         * doc/invoke.texi: Likewise.
6920         * doc/loop.texi: Likewise.
6921         * doc/md.texi: Likewise.
6922         * doc/passes.texi: Likewise.
6923         * doc/rtl.texi: Likewise.
6924         * doc/sourcebuild.texi: Likewise.
6925         * doc/tm.texi: Likewise.
6926         * doc/tree-ssa.texi: Likewise.
6927
6928 2008-02-17  Richard Guenther  <rguenther@suse.de>
6929
6930         PR middle-end/35227
6931         * tree-complex.c (init_parameter_lattice_values): Handle parameters
6932         without default definition.
6933
6934 2008-02-17  Richard Guenther  <rguenther@suse.de>
6935
6936         PR tree-optimization/35231
6937         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
6938         if A | B != 1.
6939
6940 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
6941
6942         Revert:
6943         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
6944         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
6945         libgcc_cmp_return mode.
6946
6947 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6948
6949         PR c/28368
6950         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
6951
6952 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
6953
6954         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
6955         multilibs.
6956
6957 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6958
6959         * doc/c-tree.texi: Use `@.' where appropriate.
6960         * doc/extend.texi: Likewise.
6961         * doc/install.texi: Likewise.
6962         * doc/invoke.texi: Likewise.
6963         * doc/loop.texi: Likewise.
6964         * doc/makefile.texi: Likewise.
6965         * doc/md.texi: Likewise.
6966         * doc/passes.texi: Likewise.
6967         * doc/standards.texi: Likewise.
6968         * doc/tm.texi: Likewise.
6969
6970 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
6971
6972         PR middle-end/35196
6973         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
6974         in entry_bb.
6975         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
6976         rather than in entry_bb.
6977
6978 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
6979
6980         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
6981         libgcc_cmp_return mode.
6982
6983 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
6984
6985         PR middle-end/35130
6986         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
6987         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
6988
6989 2008-02-15  Richard Guenther  <rguenther@suse.de>
6990             Zdenek Dvorak  <ook@ucw.cz>
6991
6992         PR tree-optimization/35164
6993         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
6994         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
6995         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
6996         Only propagate addresses which do not have abnormal SSA_NAMEs
6997         in their operands.
6998
6999 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
7000
7001         PR target/35088
7002         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
7003
7004 2008-02-15  Jan Hubicka  <jh@suse.cz>
7005
7006         PR middle-end/35149
7007         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
7008
7009 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
7010
7011         PR middle-end/34621
7012         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
7013         when calculating alignment_pad.
7014
7015 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
7016
7017         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
7018         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
7019         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
7020         and STACK_BOUNDARY define.
7021
7022 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
7023
7024         PR preprocessor/35061
7025         * c-pragma.c (handle_pragma_pop_macro): Check that
7026         pushed_macro_table has been allocated.
7027
7028 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
7029
7030         PR middle-end/35136
7031         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
7032         (force_gimple_operand): Likewise.
7033         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
7034         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
7035         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
7036         (find_interesting_uses_address): Check addressability and alignment
7037         of the base expression only after substituting bases of IVs into it.
7038
7039 2008-02-14  Michael Matz  <matz@suse.de>
7040
7041         PR target/34930
7042         * function.c (instantiate_virtual_regs_in_insn): Reload address
7043         before falling back to reloading the whole operand.
7044
7045 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
7046
7047         * config/s390/s390.c (s390_mainpool_start): Emit the pool
7048         before the first section switch note.
7049
7050 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7051
7052         * doc/bugreport.texi: Update copyright years.
7053         * doc/c-tree.texi: Likewise.
7054         * doc/cfg.texi: Likewise.
7055         * doc/cpp.texi: Likewise.
7056         * doc/cppinternals.texi: Likewise.
7057         * doc/fragments.texi: Likewise.
7058         * doc/frontends.texi: Likewise.
7059         * doc/gcc.texi: Likewise.
7060         * doc/gty.texi: Likewise.
7061         * doc/hostconfig.texi: Likewise.
7062         * doc/implement-c.texi: Likewise.
7063         * doc/libgcc.texi: Likewise.
7064         * doc/loop.texi: Likewise.
7065         * doc/makefile.texi: Likewise.
7066         * doc/options.texi: Likewise.
7067         * doc/passes.texi: Likewise.
7068         * doc/rtl.texi: Likewise.
7069         * doc/sourcebuild.texi: Likewise.
7070         * doc/standards.texi: Likewise.
7071         * doc/tree-ssa.texi: Likewise.
7072         * doc/trouble.texi: Likewise.
7073
7074         * doc/extend.texi: Use @: or add comma where appropriate.
7075         * doc/invoke.texi: Likewise.
7076         * doc/tm.texi: Likewise.
7077
7078 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
7079
7080         PR target/34393
7081         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
7082         to a reg.
7083
7084 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
7085
7086         * doc/md.texi (clz, ctz): Add reference.
7087         * doc/rtl.texi (clz, ctz): Likewise.
7088
7089 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7090
7091         PR other/35148
7092         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
7093         srcdir.
7094
7095 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
7096
7097         * config/s390/s390.c (struct constant_pool): New field
7098         emit_pool_after added.
7099         (s390_mainpool_start): Set the emit_pool_after flag according
7100         to the section switch notes.
7101         (s390_mainpool_finish): Consider emit_pool_after when emitting
7102         the literal pool at the end of the function.
7103         (s390_chunkify_start): Force literal pool splits at section
7104         switch notes.
7105
7106 2008-02-13  Michael Matz  <matz@suse.de>
7107
7108         PR debug/35065
7109         * var-tracking.c (clobber_variable_part): Correctly traverse the
7110         list.
7111
7112 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7113
7114         PR 29673
7115         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
7116         Add -fdump-ipa-inline.
7117         * tree-dump.c (dump_files): Remove tree-inlined dump.
7118         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
7119         
7120 2008-02-12  Richard Guenther  <rguenther@suse.de>
7121
7122         PR tree-optimization/35171
7123         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
7124         default defs.
7125
7126 2008-02-12  Richard Guenther  <rguenther@suse.de>
7127
7128         PR middle-end/35163
7129         * fold-const.c (fold_widened_comparison): Use get_unwidened in
7130         value-preserving mode.  Disallow final truncation.
7131
7132 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
7133
7134         PR middle-end/35136
7135         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
7136         code from here to...
7137         (force_gimple_operand): ...here.
7138
7139 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
7140
7141         PR c++/35144
7142         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
7143         non-compatible pointers.
7144         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
7145         different FIELD_DECLs, try harder by comparing field offsets, sizes
7146         and types.
7147
7148         PR inline-asm/35160
7149         * function.c (match_asm_constraints_1): Don't replace the same input
7150         multiple times.
7151
7152 2008-02-12  Anatoly Sokolov <aesok@post.ru>
7153
7154         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
7155         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
7156         (expand_epilogue): Restore RAMPZ register.
7157         * config/avr/avr.md (RAMPZ_ADDR): New constant.
7158
7159 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
7160
7161         * config/i386/cygwin.asm: (__alloca): Correct calling
7162         convention and alignment.
7163         (__chkstk): Force 8 byte stack alignment.
7164
7165 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
7166             Richard Guenther  <rguenther@suse.de>
7167
7168         PR tree-optimization/33992
7169         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
7170         the zero we compare against.
7171
7172 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
7173
7174         PR libfortran/35063
7175         * gthr-win32.h (__gthread_mutex_destroy_function): New function
7176         to CloseHandle after unlocking to prevent accumulation of handle
7177         count.
7178
7179 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7180
7181         PR middle_end/34150
7182         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
7183         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
7184         and update LABEL_NUSES during and after reload.
7185
7186 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
7187
7188         PR middle-end/34627
7189         * combine.c (simplify_if_then_else): Make sure the comparison is
7190         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
7191
7192 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
7193
7194         PR bootstrap/35051
7195         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
7196         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
7197         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
7198         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
7199         * tree.h (get_type_static_bounds): Likewise.
7200
7201 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7202
7203         * doc/invoke.texi (Option Summary, C++ Dialect Options)
7204         (Objective-C and Objective-C++ Dialect Options, Warning Options):
7205         Make -Wfoo language annotations match what the compiler outputs.
7206
7207 2008-02-08  Sa Liu  <saliu@de.ibm.com>
7208
7209         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
7210         intrinsics spu_convts, spu_convtu, spu_convtf.
7211
7212 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
7213
7214         * doc/extend.texi (Function Attributes) <noinline>: Mention
7215         asm ("") as method to keep calls.
7216
7217 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7218
7219         PR other/32754
7220         * doc/options.texi (Options): Replace references to opts.sh with
7221         optc-gen.awk.
7222         * opts-common.c: Likewise.
7223         * optc-gen.awk: Likewise.
7224         
7225 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
7226
7227         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
7228
7229 2008-02-07  Richard Henderson  <rth@redhat.com>
7230
7231         PR rtl-opt/33410
7232         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
7233         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
7234         funny mode.
7235
7236 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
7237
7238         PR tree-optimization/35085
7239         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
7240         for operand entry oe2 in addition to operand entry oe3 in order to
7241         expose more opportunities for vectorizer sum reduction.
7242
7243 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7244
7245         PR other/35107
7246         * Makefile.in (LIBS): Remove $(GMPLIBS).
7247         (cc1-dummy, cc1): Add $(GMPLIBS).
7248
7249 2008-02-06  Jan Hubicka  <jh@suse.cz>
7250
7251         PR target/23322
7252         * i386.md (moddf_integer): Do not produce partial memory stalls for
7253         targets where it hurts.
7254
7255 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
7256
7257         PR target/35083
7258         * optabs.c (expand_float): Do not check for decimal modes when
7259         expanding unsigned integer through signed conversion.
7260
7261 2008-02-06  Nick Clifton  <nickc@redhat.com>
7262
7263         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
7264         inside the clobber with a match_operand and duplicated operand
7265         number in the constraint.
7266         (ineqbranchsi): Delete redundant comment.
7267
7268 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
7269
7270         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
7271         builtin_define ("__USE_INIT_FINI__").
7272         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
7273         -msx multilibs.
7274         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
7275
7276 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7277
7278         PR documentation/30330
7279         * doc/invoke.texi (C++ Dialect Options)
7280         (Objective-C and Objective-C++ Dialect Options, Warning Options):
7281         For each warning option -Wfoo that allows -Wno-foo, ensure both
7282         -Wfoo and -Wno-foo are listed in the option index.  Fix index
7283         entry of -Wswitch-default, index -Wnormalized= including the
7284         `=', and -Wlarger-than-@var{len} including @var{len}.
7285
7286 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
7287
7288         * config/i386/i386.md (floatunssisf2): Use
7289         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
7290         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
7291         Macroize expander using MODEF mode iterator.
7292
7293 2008-02-05  Diego Novillo  <dnovillo@google.com>
7294
7295         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
7296
7297         PR 33738
7298         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
7299
7300 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7301
7302         PR other/35070
7303         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
7304
7305 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
7306
7307         PR target/35084
7308         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
7309         to indicate if a message should be generated.
7310         (init_cumulative_args): Updated.
7311         (function_value_32): Likewise.
7312
7313 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
7314
7315         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
7316
7317 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
7318
7319         PR target/35083
7320         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
7321         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
7322
7323 2008-02-04  Diego Novillo  <dnovillo@google.com>
7324
7325         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
7326
7327         PR 33738
7328         * tree-vrp.c (vrp_evaluate_conditional): With
7329         -Wtype-limits, emit a warning when comparing against a
7330         constant outside the natural range of OP0's type.
7331
7332 2008-02-04  Richard Guenther  <rguenther@suse.de>
7333
7334         PR middle-end/33631
7335         * expr.c (count_type_elements): Give for unions instead of
7336         guessing.
7337
7338 2008-02-04  Richard Guenther  <rguenther@suse.de>
7339
7340         PR middle-end/35043
7341         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
7342         to TYPE_DOMAINs base type instead of using bitsizetype here.
7343
7344 2008-02-03  Jason Merrill  <jason@redhat.com>
7345
7346         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
7347
7348 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7349
7350         PR other/29972
7351         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
7352         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
7353         (RS/6000 and PowerPC Options): Fix typos and markup.
7354         * doc/passes.texi (Tree-SSA passes): Likewise.
7355
7356 2008-02-02  Michael Matz  <matz@suse.de>
7357
7358         PR target/35045
7359         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
7360         from record_last_reg_set_info.
7361         (record_last_reg_set_info): Take an RTX argument, iterate over all
7362         constituent hardregs.
7363         (record_last_set_info, record_opr_changes): Change calls to
7364         new signature or to record_last_reg_set_info_regno.
7365
7366 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
7367
7368         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
7369
7370 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
7371
7372         PR rtl-optimization/34773
7373         * reg-notes.def (EQUAL): Mention significance of combination of
7374         REG_EQUAL and REG_RETVAL.
7375         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
7376         insn that has a REG_RETVAL.
7377
7378 2008-02-01  Roger Sayle  <roger@eyesopen.com>
7379
7380         PR bootstrap/33781
7381         * configure.ac (--enable-fixed-point): Disable unless explicitly
7382         requested on IRIX.
7383         * configure: Regenerate.
7384
7385 2008-02-01  Richard Guenther  <rguenther@suse.de>
7386
7387         PR other/35042
7388         * invoke.texi (-finline-limit): Remove no longer true parts
7389         of the documentation.  Note that there is no default value.
7390
7391 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
7392             Mark Mitchell  <mark@codesourcery.com>
7393             Ben Elliston  <bje@au.ibm.com>
7394
7395         PR c/29326
7396         * doc/extend.texi (Other Builtins): Document.
7397
7398 2008-01-31  Tom Browder <tom.browder@gmail.com>
7399
7400         * doc/c-tree.texi (Types): Fix grammar.
7401         (Expression trees): Ditto.
7402         * doc/passes.texi (Tree-SSA passes): Ditto.
7403         
7404         * doc/configterms.texi (Configure Terms): Fix typo.
7405         * doc/cpp.texi (Common Predefined Macros): Ditto.
7406         * doc/md.texi (Machine Constraints): Ditto.
7407         
7408         * doc/makefile.texi (Makefile): Add comma.
7409
7410 2008-01-31  Tom Browder  <tom.browder@gmail.com>
7411             Gerald Pfeifer  <gerald@pfeifer.com>
7412         
7413         * doc/sourcebuild.texi (Front End): Remove references to CVS
7414         and CVSROOT/modules.
7415         (Texinfo Manuals): Replace reference to CVS by one to SVN.
7416         (Back End): Remove reference to CVS.
7417
7418 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
7419
7420         PR target/34900
7421         * config/mips/mips.c (gen_load_const_gp): New function, taking a
7422         comment from...
7423         (mips16_gp_pseudo_reg): ...here.
7424         * config/mips/mips.md (load_const_gp): Replace with...
7425         (load_const_gp_<mode>): ...this :P-based insn.
7426
7427 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7428
7429         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
7430         options. Minor fixes.
7431         (-std): Move reference to standards closer to where language
7432         standards are first mentioned.
7433         
7434 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
7435
7436         PR rtl-optimization/34995
7437         * reload.c (alternative_allows_const_pool_ref): Take an rtx
7438         parameter and return a bool.  If the rtx parameter is nonnull,
7439         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
7440         (find_reloads): Update call accordingly.  Pass the new operand
7441         if it needed no address reloads, otherwise pass null.
7442
7443 2008-01-30  Richard Henderson  <rth@redhat.com>
7444
7445         PR c/34993
7446         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
7447         for unbounded arrays.
7448
7449 2008-01-30  Silvius Rus  <rus@google.com>
7450
7451         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
7452
7453 2008-01-30  Jan Hubicka  <jh@suse.cz>
7454
7455         PR target/34982
7456         * i386.c (init_cumulative_args): Use real function declaration when
7457         calling locally.
7458
7459 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
7460
7461         PR rtl-optimization/34998
7462         * global.c (build_insn_chain): Treat non-subreg_lowpart
7463         SUBREGs of pseudos as clobbering all the words covered by the
7464         SUBREG, not just all the bytes.
7465         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
7466         original df_ref rather than an extract parameter.
7467         (global_conflicts): Update call accordingly.
7468
7469 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
7470
7471         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
7472         the overflow check to make it easier to read.
7473         (__fixtfdi): Change the type of the ll member in union
7474         long_double to UDItype_x.
7475
7476 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
7477
7478         PR middle-end/34969
7479         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
7480         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
7481         * tree-inline.c (fold_marked_statements): Call
7482         cgraph_update_edges_for_call_stmt if folding a call statement.
7483         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
7484         debug_generic_stmt calls, reset it back afterwards.
7485
7486         PR c/35017
7487         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
7488         static decls.
7489         * c-typeck.c (build_external_ref): Don't pedwarn about
7490         static vars in current function's scope.
7491
7492 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
7493
7494         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
7495
7496 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
7497
7498         PR c/35002
7499         * ipa-struct-reorg.c: Fix spelling.
7500         * params.def: Ditto.
7501
7502 2008-01-29  Richard Guenther  <rguenther@suse.de>
7503
7504         PR middle-end/35006
7505         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
7506         field.
7507         * tree-inline.c (remap_type): Increment remapping_type_depth
7508         around remapping types.
7509         (copy_body_r): Only add referenced variables if they are referenced
7510         from code, not types.
7511
7512 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
7513
7514         PR c++/34055
7515         PR c++/34103
7516         PR c++/34219
7517         PR c++/34606
7518         PR c++/34753
7519         PR c++/34754
7520         PR c++/34755
7521         PR c++/34919
7522         PR c++/34961
7523         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
7524         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
7525
7526 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
7527
7528         PR target/34412
7529         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
7530         pointer for tiny stack.
7531
7532 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
7533
7534         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
7535
7536 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
7537
7538         * config/vx-common.h: Fix typo in comment.
7539
7540 2008-01-28  Ian Lance Taylor  <iant@google.com>
7541
7542         PR c++/34862
7543         PR c++/33407
7544         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
7545         coalesce pointers if they have different DECL_NO_TBAA_P values.
7546         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
7547         between variables with different DECL_NO_TBAA_P values.
7548
7549 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
7550
7551         PR 31535
7552         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
7553         are not legitimate small data references on SPE targets.
7554
7555 2008-01-28  David Daney  <ddaney@avtrex.com>
7556
7557         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
7558
7559 2008-01-28  David Daney  <ddaney@avtrex.com>
7560
7561         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
7562
7563 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
7564
7565         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
7566         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
7567         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
7568         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
7569         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
7570         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
7571         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
7572         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
7573
7574 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
7575
7576         * basic-block.h (condjump_equiv_p): Fix comment.
7577
7578 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
7579
7580         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
7581         print_generic_stmt_indented): Fix comment.
7582
7583 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
7584
7585         * configure.ac (__stack_chk_fail): Add detecion for availability
7586         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
7587         * configure: Regenerate.
7588
7589 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
7590
7591         PR middle-end/34688
7592         * final.c (output_addr_const): Handle TRUNCATE.
7593
7594 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
7595
7596         PR target/34711
7597         * tree-ssa-loop-ivopts.c (comp_cost): New type.
7598         (zero_cost, infinite_cost): New constants.
7599         (struct cost_pair): Change type of cost to comp_cost.
7600         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
7601         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
7602         New functions.
7603         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
7604         split_address_cost, ptr_difference_cost, difference_cost,
7605         get_computation_cost_at, get_computation_cost,
7606         determine_use_iv_cost_generic, determine_use_iv_cost_address,
7607         determine_use_iv_cost_condition, determine_use_iv_costs,
7608         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
7609         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
7610         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
7611         Change type of cost to comp_cost.
7612         (determine_iv_cost): Increase cost of non-original ivs, instead
7613         of decreasing the cost of original ones.
7614         (get_address_cost): Indicate the complexity of the addressing mode 
7615         in comp_cost.
7616         (try_add_cand_for): Prefer using ivs not specific to some object.
7617         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
7618
7619 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
7620             Janis Johnson  <janis187@us.ibm.com>
7621
7622         PR target/34814
7623         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
7624         (TARGET_INSTANTIATE_DECLS): Likewise.
7625         * target.h (expand_to_rtl_hook): New target hook.
7626         (instantiate_decls): Likewise.
7627         * function.c (instantiate_decl): Make non-static.  Rename to...
7628         (instantiate_decl_rtl): ... this.
7629         (instantiate_expr): Use instantiate_decl_rtl.
7630         (instantiate_decls_1): Likewise.
7631         (instantiate_decls): Likewise.
7632         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
7633         * function.h (instantiate_decl_rtl): Add prototype.
7634         * cfgexpand.c (target.h): New include.
7635         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
7636         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
7637         (TARGET_INSTANTIATE_DECLS): Likewise.
7638         (TARGET_INITIALIZER): New target hooks added.
7639         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
7640         New prototype.
7641         * config/rs6000/rs6000.c (tree-flow.h): New include.
7642         (machine_function): Add sdmode_stack_slot field.
7643         (rs6000_alloc_sdmode_stack_slot): New function.
7644         (rs6000_instantiate_decls): Likewise.
7645         (rs6000_secondary_memory_needed_rtx): Likewise.
7646         (rs6000_check_sdmode): Likewise.
7647         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
7648         (TARGET_INSTANTIATE_DECLS): Likewise.
7649         (rs6000_hard_regno_mode_ok): Allow SDmode.
7650         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
7651         (rs6000_emit_move): Handle SDmode.
7652         (function_arg_advance): Likewise.
7653         (function_arg): Likewise.
7654         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
7655         SDmode var args for 32-bit compiles.
7656         (rs6000_secondary_reload_class): Handle SDmode.
7657         (rs6000_output_function_epilogue): Likewise.
7658         (rs6000_function_value): Simplify if statement.
7659         (rs6000_libcall_value): Likewise.
7660         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
7661         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
7662         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
7663         (movsd_hardfloat): New define_insn.
7664         (movsd_softfloat): Likewise.
7665         (movsd_store): Likewise.
7666         (movsd_load): Likewise.
7667         (extendsddd2): Likewise.
7668         (extendsdtd2): Likewise.
7669         (truncddsd2): Likewise.
7670         (movdd_hardfloat64): Fixup comment.
7671         (UNSPEC_MOVSD_LOAD): New constant.
7672         (UNSPEC_MOVSD_STORE): Likewise.
7673
7674 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
7675
7676         PR c++/34965
7677         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
7678         TRUTH_XOR_EXPR.
7679         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
7680         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
7681         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
7682         and TRUTH_XOR_EXPR.
7683
7684 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
7685
7686         PR target/34794
7687         * config.gcc: Separate AIX 5.3 from AIX 6.1.
7688         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
7689         __LONGDOUBLE128 too.
7690         * config/rs6000/aix61.h: New file.
7691
7692 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
7693
7694         PR rtl-optimization/34959
7695         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
7696         popcount and parity rtxes the same mode as their operand.
7697         Truncate or extend the result to the return value's mode
7698         if necessary.
7699
7700 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
7701
7702         PR target/34981
7703         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
7704         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
7705         to GOT_VERSION_REGNUM.
7706         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
7707         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
7708         * config/mips/mips.c (mips_emit_call_insn): New function.
7709         (mips_call_tls_get_addr): Call mips_expand_call directly.
7710         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
7711         emit_call_insn.
7712         (mips16_build_call_stub): Likewise.  Return the call insn or null.
7713         (mips_expand_call): Update the call to mips16_build_call_stub
7714         accordingly and a remove redundant condition.  Assert that MIPS16
7715         stubs do not use lazy binding.  Use mips_emit_call_insn and return
7716         the call insn.
7717         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
7718         TARGET_USE_GOT.
7719         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
7720         (mips_avoid_hazard): Remove hazard_set handling.
7721         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
7722         (UNSPEC_RESTORE_GP): ...this.
7723         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
7724         (FAKE_CALL_REGNO): Rename to...
7725         (GOT_VERSION_REGNUM): ...this.
7726         (type): Add "ghost" value.  Add an associated insn reservation.
7727         (hazard_set): Remove.
7728         (exception_receiver): Rename to...
7729         (restore_gp): ...this and update the unspec identifier accordingly.
7730         (exception_receiver, nonlocal_got_receiver): New expanders.
7731         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
7732         FAKE_CALL_REGNO.  Remove hazard_set attribute.
7733         (set_got_version, update_got_version): New patterns.
7734
7735 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
7736
7737         PR target/34970
7738         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
7739
7740 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
7741
7742         PR other/31955
7743         * doc/install.texi2html: Generate gcc-vers.texi.
7744
7745 2008-01-25  DJ Delorie  <dj@redhat.com>
7746
7747         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
7748
7749 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
7750
7751         * config/c4x: Remove directory.
7752         * config.gcc (crx-*, mt-*): Mark obsolete.
7753         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
7754         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
7755         sh-*-rtemscoff*): Remove cases.
7756         * defaults.h (C4X_FLOAT_FORMAT): Remove.
7757         * real.c (encode_c4x_single, decode_c4x_single,
7758         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
7759         c4x_extended_format): Remove.
7760         * real.h (c4x_single_format, c4x_extended_format): Remove.
7761         * doc/extend.texi (interrupt, naked): Remove mention of attributes
7762         on C4x.
7763         (Pragmas): Remove comment about c4x pragmas.
7764         * doc/install.texi (c4x): Remove target-specific instructions.
7765         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
7766         * doc/md.texi (Machine Constraints): Remove C4x documentation.
7767         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
7768         refer to C4x source files as examples.
7769         (C4X_FLOAT_FORMAT): Remove documentation.
7770
7771 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
7772
7773         * config/bfin/bfin.c (override_options): Reorder tests so that
7774         flag_pic gets enabled for -msep-data.
7775
7776 2008-01-25  Richard Guenther  <rguenther@suse.de>
7777
7778         PR middle-end/32244
7779         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
7780         to its bitfield precision if required.
7781
7782 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
7783
7784         PR middle-end/33880
7785         * tree-nested.c (walk_omp_for): New function.
7786         (convert_nonlocal_reference, convert_local_reference): Call
7787         walk_omp_for on OMP_FOR.
7788         (convert_call_expr): Call walk_body on OMP_FOR's
7789         OMP_FOR_PRE_INIT_BODY.
7790
7791 2008-01-25  Richard Guenther  <rguenther@suse.de>
7792
7793         PR tree-optimization/34966
7794         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
7795         default defs and PHI_NODEs we have to insert after the
7796         defining statement.
7797
7798 2008-01-24  Nick Clifton  <nickc@redhat.com>
7799
7800         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
7801         Provide a default definition.
7802         (LIBGCC2_UNITS_PER_WORD): Likewise.
7803
7804         * config/stormy16/stormy16.c: Include df.h for the prototype
7805         for df_regs_ever_live_p.
7806         (xstormy16_expand_builtin_va_start): Convert the stack offset
7807         into a component_ref and then use POINTER_PLUS_EXPR to add it
7808         to the incoming_virtual_args_rtx.
7809         (xstormy16_gimplify_va_arg_expr): Rename to
7810         xstormy16_gimplify_va_arg_expr.
7811         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
7812         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
7813         xstormy16_gimplify_va_arg_expr.
7814         Fix up some formatting issues.
7815
7816         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
7817         Move to predicates.md.
7818         (xs_hi_general_operand): Likewise.
7819         (xs_hi_nonmemory_operand): Likewise.
7820         * config/stormy16/predicates.md:
7821         (xstormy16_carry_plus_operand): New predicate.
7822         (xs_hi_general_operand): New predicate.
7823         (xs_hi_nonmemory_operand): New predicate.
7824         * config/stormy16/stormy16-protos.h:
7825         (xstormy16_carry_plus_operand): Delete prototype.
7826         (xs_hi_general_operand): Likewise.
7827         (xs_hi_nonmemory_operand): Likewise.
7828
7829         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
7830         modifiers as they are no longer needed and they can trigger
7831         reload spill failures.
7832
7833         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
7834         with a match_operand in order to help reload.
7835
7836         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
7837         constraint with 'e' for the 8th alternative as this version of
7838         the mov.w instruction only accepts the lower 8 registers.
7839
7840 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
7841
7842         PR target/34856
7843         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
7844         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
7845         vector elements.
7846
7847 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
7848
7849         PR middle-end/33333
7850         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
7851
7852 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
7853
7854         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
7855         New functions.
7856         (remove_structure): Update allocations list before removing structure.
7857         
7858 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
7859
7860         * ipa-struct-reorg.c (is_safe_cond_expr, 
7861         create_new_stmts_for_cond_expr): Use integer_zerop function,
7862         that recognize not only zero-pointer, but zero-integer too.
7863
7864 2008-01-25  Ben Elliston  <bje@au.ibm.com>
7865
7866         PR other/22232
7867         * fixproto: Escape "." in sed expression that strips leading "./".
7868
7869 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
7870
7871         PR driver/34904
7872         * gcc.c (SWITCH_OK): Removed.
7873         (SWITCH_LIVE): Changed to bit.
7874         (SWITCH_FALSE): Likewise.
7875         (SWITCH_IGNORE): Likewise.
7876         (switchstr): Change live_cond to unsigned int.
7877         (process_command): Replace SWITCH_OK with 0.
7878         (do_self_spec): Likewise.
7879         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
7880         (give_switch): Likewise.
7881         (used_arg): Likewise.
7882         (do_spec_1): Set the SWITCH_IGNORE bit.
7883         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
7884         bits.  Set the SWITCH_LIVE bit.
7885
7886 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
7887
7888         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
7889
7890 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
7891
7892         PR tree-optimization/34472
7893         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
7894         parameter to a "bool *" and set *DATA to false if there is
7895         an unsafe access.  Do not delete the structure here.
7896         (check_cond_exprs): Delete it here instead.
7897         (check_cond_exprs, exclude_cold_structs): Do not increase
7898         I when removing a structure.
7899
7900 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
7901
7902         PR target/34856
7903         * config/i386/i386.c (ix86_expand_vector_init): Consider only
7904         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
7905
7906 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
7907
7908         PR middle-end/34934
7909         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
7910         a fixed vector for stack.
7911
7912 2008-01-24  Ben Elliston  <bje@au.ibm.com>
7913
7914         PR c++/25701
7915         * doc/gcc.texi (Software development): Add a direntry for g++.
7916         
7917 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
7918
7919         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
7920         stale and straggling -fforce-addr comments above.
7921
7922         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
7923         define.
7924         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
7925         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
7926
7927 2008-01-23  Michael Matz  <matz@suse.de>
7928
7929         PR debug/34895
7930         * dwarf2out.c (force_type_die): Use modified_type_die instead of
7931         gen_type_die.
7932
7933 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
7934
7935         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
7936         malloc result type.
7937
7938 2008-01-23 Anatoly Sokolov <aesok@post.ru>
7939
7940         * config/avr/avr.c (avr_current_arch): New variable.
7941         (avr_arch_types): Add 'avr31' and 'avr51' entries.
7942         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
7943         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
7944         (avr_override_options): Init 'avr_current_arch'. 
7945         (base_arch_s): Move from here...
7946         * config/avr/avr.h (base_arch_s): ... here. Add new members 
7947         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
7948         'mega' to 'have_jmp_call'.
7949         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
7950         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
7951         macros.
7952         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
7953         architectures.
7954         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
7955         MULTILIB_MATCHES): (Ditto.).
7956
7957 2008-01-23  Richard Guenther  <rguenther@suse.de>
7958
7959         PR middle-end/31529
7960         * cgraphunit.c (cgraph_reset_node): Always mark the node
7961         not reachable if it is not queued already.
7962
7963 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
7964
7965         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
7966         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
7967         (cputype_selected): New static variable.
7968         (bfin_handle_option): Set it if -mcpu is used.
7969         (override_option): Select default set of workarounds if no cpu type
7970         selected on the command line.
7971         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
7972
7973         From  Michael Frysinger  <michael.frysinger@analog.com>
7974         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
7975         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
7976
7977         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
7978         for bf547, bf523, bf524, and bf526.
7979         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
7980         bf526.
7981         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
7982         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
7983         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
7984         __ADSPBF547__ and __ADSPBF54x__ for bf547.
7985         * doc/invoke.texi (Blackfin Options): Document that
7986         -mcpu now accept bf547, bf523, bf524, and bf526.
7987
7988 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
7989
7990         PR rtl-optimization/34628
7991         * combine.c (try_combine): Stop and undo after the first combination
7992         if an autoincrement side-effect on the first insn has effectively
7993         been lost.
7994
7995 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
7996
7997         PR target/34529
7998         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
7999         Offset addresses are not valid for Altivec or paired float modes.
8000
8001 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
8002
8003         PR c++/34607
8004         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
8005         if DECL_INITIAL (decl) is error_mark_node.
8006
8007         PR c++/34914
8008         * c-common.c (handle_vector_size_attribute): Only allow
8009         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
8010         the same way as pointer, array etc. types.
8011         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
8012
8013         PR c++/34917
8014         * tree.c (build_type_attribute_qual_variant): Call
8015         build_qualified_type if attributes are equal, but quals are not.
8016
8017 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8018
8019         PR 32102
8020         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
8021         * flags.h (warn_strict_aliasing): Remove.
8022         (warn_strict_overflow): Remove.
8023         * opts.c (warn_strict_aliasing): Remove.
8024         (warn_strict_overflow): Remove.
8025         * c-opts.c (c_common_handle_option): -Wall only sets
8026         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
8027         (c_common_post_options): Give default values to -Wstrict-aliasing
8028         and -Wstrict-overflow if they are uninitialized.
8029         * common.opt (Wstrict-aliasing): Specify Var and Init.
8030         (Wstrict-overflow): Likewise.
8031
8032 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
8033
8034         PR rtl-optimization/26854
8035         PR rtl-optimization/34400
8036         PR rtl-optimization/34884
8037         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
8038         DF_RD->gen.
8039         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
8040         (df_rd_bb_info.expanded_lr_out): Deleted
8041         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
8042         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
8043         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
8044         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
8045         Removed code to allocate, initialize or free expanded_lr_out.
8046         (df_rd_bb_local_compute_process_def): Restructured to make more
8047         understandable.
8048         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
8049         sets if the sets are being trimmed.
8050
8051 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
8052
8053         PR bootstrap/32287
8054         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
8055         (as_vers): Likewise.
8056         * configure: Regenerated.
8057
8058 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8059
8060         PR middle-end/33092
8061         * tree-pass.h (pass_build_alias): New pass.
8062         * tree-ssa-alias.c (gate_build_alias): New.
8063         (pass_build_alias): New.
8064         * passes.c (init_optimization_passes): Add pass_build_alias after
8065         pass_create_structure_vars.
8066
8067 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
8068
8069         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
8070         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
8071         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
8072         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
8073         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
8074         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
8075         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
8076         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
8077         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
8078         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
8079         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
8080         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
8081         * config/s390/s390.md (FP_ALL): New mode iterator.
8082         (_d): New mode attribute.
8083         ("*signbit<mode>2>"): Changed mode of first operand.
8084         ("isinf<mode>2"): Changed mode of first operand.
8085         ("*TDC_insn"): Adaptation for DFP modes.
8086
8087 2008-01-22  Ben Elliston  <bje@au.ibm.com>
8088
8089         * tree.c (check_qualified_type): Improve function description.
8090
8091 2008-01-21  Jason Merrill  <jason@redhat.com>
8092
8093         PR c++/34196
8094         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
8095         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
8096         if it is set.
8097
8098 2008-01-21  DJ Delorie  <dj@redhat.com>
8099
8100         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
8101         return zero.
8102
8103 2008-01-21  Richard Guenther  <rguenther@suse.de>
8104
8105         PR middle-end/34856
8106         * tree-cfg.c (verify_expr): Allow all invariant expressions
8107         instead of just constant class ones as reference argument.
8108         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
8109         like any other constant.
8110         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
8111
8112 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
8113
8114         * regmove.c (fixup_match_1): Update call crossed frequencies.
8115
8116 2008-01-21  Richard Guenther  <rguenther@suse.de>
8117
8118         PR c/34885
8119         * tree-inline.c (setup_one_parameter): Deal with mismatched
8120         types using a VIEW_CONVERT_EXPR.
8121
8122 2008-01-21  Alon Dayan  <alond@il.ibm.com>
8123             Olga Golovanevsky  <olga@il.ibm.com>
8124         
8125         PR tree-optimization/34701
8126         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
8127         when the structure size is not a power of 2.
8128
8129 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
8130
8131         * doc/install.texi: Add doc for --enable-checking=df.
8132         
8133 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8134
8135         PR rtl-optimization/34808
8136         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
8137
8138 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
8139
8140         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
8141         input.
8142
8143 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
8144
8145         PR rtl-optimization/26854
8146         PR rtl-optimization/34400
8147         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
8148         DF_RD->gen.
8149         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
8150         (df_rd_bb_info.expanded_lr_out): New.
8151         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
8152         * loop_iv.c (iv_analysis_loop_init): Ditto.
8153         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
8154         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
8155         Added code to allocate, initialize or free expanded_lr_out.
8156         (df_rd_bb_local_compute_process_def): Restructured to make
8157         more understandable.
8158         (df_rd_confluence_n): Add code to do nothing with fake edges and
8159         code to no apply invalidate_by_call sets if the sets are being trimmed.
8160         (df_lr_local_finalize): Renamed to df_lr_finalize.
8161         (df_live_local_finalize): Renamed to df_live_finalize.
8162
8163 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
8164
8165         PR target/34831
8166         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
8167         deciding whether to use reciprocal instructions.
8168
8169 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
8170
8171         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
8172         dwarf2out_note_section_used if cold_text_section is NULL.
8173
8174 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
8175
8176         PR gcov-profile/34610
8177         * tree-cfg.c (make_edges): Mark both outgoing edges from
8178         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
8179         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
8180         from OMP_FOR and OMP_CONTINUE outgoing edges.
8181
8182         * tree-profile.c (tree_profiling): Return early if
8183         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
8184         at the end.
8185         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
8186         from cfun to child_cfun.
8187         * function.h (struct function): Add after_tree_profile bit.
8188
8189 2008-01-19 Anatoly Sokolov <aesok@post.ru>
8190
8191         * config/avr/avr.S (_exit): Disable interrupt.
8192
8193 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
8194             Steven Bosscher  <stevenb.gcc@gmail.com>
8195
8196         PR rtl-optimization/26854
8197         PR rtl-optimization/34400
8198         * df-problems.c (df_live_scratch): New scratch bitmap.
8199         (df_live_alloc): Allocate df_live_scratch when doing df_live.
8200         (df_live_reset): Clear the proper bitmaps.
8201         (df_live_bb_local_compute): Only process the artificial defs once
8202         since the order is not important.
8203         (df_live_init): Init the df_live sets only with the variables
8204         found live by df_lr.
8205         (df_live_transfer_function): Use the df_lr sets to prune the
8206         df_live sets as they are being computed.  
8207         (df_live_free): Free df_live_scratch.
8208
8209 2008-01-18  Ian Lance Taylor  <iant@google.com>
8210
8211         * common.opt: Add fmerge-debug-strings.
8212         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
8213         flag_merge_debug_strings rather than flag_merge_constants.
8214         * doc/invoke.texi (Option Summary): Mention
8215         -fmerge-debug-strings.
8216         (Debugging Options): Document -fmerge-debug-strings.
8217
8218 2008-01-18  Ian Lance Taylor  <iant@google.com>
8219
8220         PR c++/33407
8221         * tree.h (DECL_IS_OPERATOR_NEW): Define.
8222         (struct tree_function_decl): Add new field operator_new_flag.
8223         * tree-inline.c (expand_call_inline): When inlining a call to
8224         operator new, force the return value to go into a variable, and
8225         set DECL_NO_TBAA_P on that variable.
8226         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
8227
8228 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
8229
8230         PR debug/34484
8231         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
8232         DWARF2_DEBUGGING_INFO.
8233         (dwarf2out_note_section_used): Ditto.  Add prototype.
8234         (have_multiple_function_sections, text_section_used,
8235         cold_text_section_used, *cold_text_sections): Move declarations
8236         before their uses.
8237
8238 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
8239
8240         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
8241         field and add signal_ra.
8242         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
8243         assignments to frame state pc.  Move end of stack check after
8244         MD_FALLBACK_FRAME_STATE_FOR.
8245         (uw_update_context_1): Use frame state signal_regs if set, instead
8246         of checking signal_frame flag.
8247         (uw_update_context): Use frame state signal_ra if set.
8248         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
8249         * config/xtensa/linux-unwind.h: New file.
8250
8251 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
8252
8253         * modulo-sched.c (get_sched_window): Fix comment typo.
8254
8255 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
8256
8257         PR tree-optimization/34648
8258         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
8259
8260 2008-01-17  Anatoly Sokolov <aesok@post.ru>
8261
8262         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
8263         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
8264
8265 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
8266
8267         PR rtl-optimization/34400
8268         * df-core.c (df_worklist_dataflow_overeager,
8269         df_worklist_dataflow_doublequeue): New functions.
8270         (df_worklist_dataflow): Two different worklist solvers.
8271         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
8272         New param.
8273
8274 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
8275
8276         PR testsuite/34821
8277         * doc/invoke.texi: Document the dependence on pthread for fopenmp
8278         and ftree-parallelize-loops.
8279
8280 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
8281
8282         PR rtl-optimization/34826
8283         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
8284
8285 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
8286
8287         * global.c (find_reg): Mark the eh regs as used if necessary.
8288         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
8289         * ra.h (struct allocno): no_eh_reg field added.  Changed
8290         no_stack_reg type to bitfield.
8291
8292 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
8293
8294         * tree.c (substitute_in_expr): Add missing 'break'.
8295
8296 2008-01-17  Richard Guenther  <rguenther@suse.de>
8297
8298         PR tree-optimization/34825
8299         * tree-ssa-math-opts.c (is_division_by): Do not recognize
8300         x / x as division to handle.
8301
8302 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8303
8304         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
8305         "-pthread" is specified.
8306         * pa-hpux11.h (LIB_SPEC): Likewise.
8307
8308 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
8309             Peter Bergner  <bergner@vnet.ibm.com>
8310
8311         PR rtl-optimization/33796
8312         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
8313
8314 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8315
8316         PR libgfortran/34699
8317         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
8318         static links.
8319         * pa-hpux10.h (LINK_SPEC): Likewise.
8320         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
8321
8322 2008-01-16  Richard Guenther  <rguenther@suse.de>
8323
8324         PR middle-end/32628
8325         * fold-const.c (fold_convert_const_int_from_int): Do not
8326         set overflow if that occured only because of a sign extension
8327         change when converting from/to a sizetype with the same
8328         precision and signedness.
8329
8330 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
8331
8332         PR debug/34249
8333         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
8334         location address to the correct place.  Update copyright year.
8335
8336 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
8337
8338         * lambda-code.c (lambda_transform_legal_p): Handle the case of
8339         no dependences in the dependence_relations vector.
8340
8341 2008-01-16  Jan Hubicka  <jh@suse.cz>
8342
8343         PR rtl-optimization/31396
8344         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
8345         * cfg.c (dump_reg_info): Print it.
8346         * regs.h (struct reg_info_t): add freq_calls_crossed.
8347         (REG_FREQ_CALLS_CROSSED): New macro.
8348         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
8349         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
8350         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
8351         regmove_optimize): Update call crossed frequencies.
8352         * local-alloc.c (struct qty): Add freq_calls_crossed.
8353         (alloc_qty): Copute freq_calls_crossed.
8354         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
8355         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
8356         * ra.h (struct allocno): Add freq_calls_crossed.
8357
8358 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
8359
8360         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
8361         libgomp when compiling with ftree-parallelize-loops.
8362         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
8363
8364 2008-01-16  Richard Guenther  <rguenther@suse.de>
8365
8366         PR tree-optimization/34769
8367         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
8368         * tree.c (int_cst_value): Instead make this function more
8369         permissive in what it accepts as valid input.  Document this
8370         function always sign-extends the value.
8371
8372 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
8373             Richard Guenther  <rguenther@suse.de>
8374
8375         PR c/34668
8376         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
8377         (gimple_fold_indirect_ref_rhs): ... this.
8378         (gimple_fold_indirect_ref): New function with foldings
8379         that preserve lvalueness.
8380         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
8381         * tree-flow.h (gimple_fold_indirect_ref): Declare.
8382         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
8383         to fold an INDIRECT_REF, fall back to the old use of
8384         fold_indirect_ref_1.
8385
8386 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
8387
8388         * tree-data-ref.c (subscript_dependence_tester_1): Call 
8389         free_conflict_function.
8390         (compute_self_dependence): Same.
8391
8392 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
8393
8394         PR debug/34249
8395         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
8396         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
8397         function global.
8398         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
8399         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
8400         for DWARF2_UNWIND_INFO targets.
8401
8402 2008-01-16  Richard Guenther  <rguenther@suse.de>
8403
8404         PR c/34768
8405         * c-typeck.c (common_pointer_type): Do not merge inconsistent
8406         type qualifiers for function types.
8407
8408 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
8409
8410         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
8411         loop_iterator li from previous commit.
8412
8413 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
8414
8415         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
8416
8417 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
8418
8419         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
8420         (parallelize_loops): Don't parallelize irreducible components.
8421
8422 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8423
8424         PR c++/24924
8425         * c-opts (c_common_post_options): Do not enable CPP
8426         flag_pedantic_errors by default.
8427         
8428 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
8429
8430         PR rtl-optimization/31944
8431         * cse.c (remove_pseudo_from_table): New function.
8432         (merge_equiv_classes): Use above function to remove pseudo-registers.
8433         (invalidate): Likewise.
8434
8435 2008-01-13  Richard Guenther  <rguenther@suse.de>
8436
8437         PR middle-end/34601
8438         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
8439         instead of TYPE_MODE to deal with calls from expand_one_error_var.
8440
8441 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
8442
8443         * gcse.c (cprop_jump): Call validate_unshare_change instead of
8444         validate_change to unshare the source of the PC set.
8445
8446 2008-01-12  Jan Hubicka  <jh@suse.cz>
8447
8448         PR middle-end/32135
8449         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
8450         references above array bounds.  This might trigger bounds checks for
8451         pointers to arrays.
8452
8453 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
8454
8455         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
8456         new_replaceable_dependencies.
8457
8458 2008-01-12  Doug Kwan  <dougkwan@google.com>
8459
8460         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
8461         instead of OPT_Wreturn_type in warning due to ignored return type
8462         qualifiers.
8463         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
8464         options included in -Wextra.
8465         * c.opt: New option -Wignored_qualifiers.
8466         * doc/invoke.texi (Warning Options, -Wextra): Add new option
8467         -Wignore_qualifiers.
8468         (-Wignored-qualifiers): Document.
8469         (-Wreturn-type): Remove description of functionality now handled
8470         by -Wignored-qualifiers.
8471
8472 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
8473
8474         PR ada/33788
8475         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
8476         NOP_EXPR if it is between integral types with the same precision.
8477
8478 2008-01-12  Jan Hubicka  <jh@suse.cz>
8479
8480         PR other/28023
8481         * invoke.texi (max-inline-recursive-depth): Fix default value.
8482
8483 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
8484
8485         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
8486         correct type.
8487
8488 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
8489         
8490         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
8491         
8492 2008-01-11  James E. Wilson  <wilson@specifix.com>
8493
8494         PR target/26015
8495         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
8496
8497 2008-01-11  Anatoly Sokolov <aesok@post.ru>
8498
8499         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
8500         save/restore frame pointer register and don't use 'call-prologues' 
8501         optimization in function with "OS_task" attribute.
8502
8503 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
8504
8505         PR middle-end/31309
8506         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
8507         when copying to memory.
8508
8509 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
8510
8511         PR rtl-optimization/30905
8512         * cfgcleanup.c: Include dce.h
8513         (crossjumps_occured): New global variable.
8514         (try_crossjump_bb): Exit loop after finding a fallthru edge.
8515         If something changed, set crossjumps_occured to true.
8516         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
8517         Don't add/remove fake edges to exit here...
8518         (cleanup_cfg): ...but do it here, when crossjumping.
8519         Run a fast DCE when successful crossjumps occured in the latest
8520         iteration of try_optimize_cfg.
8521
8522 2008-01-11  Richard Guenther  <rguenther@suse.de>
8523
8524         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
8525         (struct vn_unary_op_s): Likewise.
8526         (vn_reference_insert): Free old reference on hash collision.
8527
8528 2008-01-10  Raksit Ashok  <raksit@google.com>
8529
8530         PR rtl-optimization/27971
8531         * combine.c (find_split_point): Split PLUS expressions which are
8532         inside a MEM rtx, and whose first operand is complex.
8533
8534 2008-01-10  DJ Delorie  <dj@redhat.com>
8535
8536         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
8537         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
8538         (m32c_hard_regno_ok): Call the underlying function.
8539
8540 2008-01-10  Richard Guenther  <rguenther@suse.de>
8541
8542         PR middle-end/34683
8543         * tree-cfg.c (tree_merge_blocks): Do not go through the
8544         full-blown folding and stmt updating path if we just deal
8545         with virtual operands.
8546         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
8547         test for abnormal SSA_NAMEs.
8548
8549 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
8550
8551         PR middle-end/34641
8552         * reload.c (push_reload): Add assertions.  All constants from
8553         reg_equiv_constant should have been used for replacing the respective
8554         pseudo earlier.
8555         (find_reloads_address): Invoke find_reloads_address_part for
8556         constant taken from the reg_equiv_constant array.
8557
8558 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
8559
8560         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
8561         field (valnum) the first in the struct.  Replace bools with
8562         unit bit fields.
8563
8564 2008-01-10  Richard Guenther  <rguenther@suse.de>
8565
8566         PR tree-optimization/34651
8567         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
8568         types and ordering for masking and converting.
8569
8570 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
8571
8572         PR tree-optimization/34017
8573         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
8574         also for PHI_NODE expressions.
8575
8576 2008-01-09  Jan Hubicka  <jh@suse.cz>
8577
8578         PR tree-optimization/34708
8579         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
8580         based on number of case labels.
8581         (init_inline_once): Remove switch_cost.
8582         * tree-inline.h (eni_weights_d): Remove switch_cost.
8583
8584 2008-01-09  Richard Guenther  <rguenther@suse.de>
8585         Andrew Pinski  <andrew_pinski@playstation.sony.com>
8586
8587         PR middle-end/30132
8588         * gimplify.c (gimplify_cond_expr): Do not create an addressable
8589         temporary if an rvalue is ok or an lvalue is not required.
8590
8591 2008-01-09  Richard Guenther  <rguenther@suse.de>
8592
8593         PR middle-end/34458
8594         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
8595         adjust return type.
8596
8597 2008-01-09  Richard Guenther  <rguenther@suse.de>
8598
8599         PR middle-end/34679
8600         * tree.c (host_integerp): Check for sizetype only if the
8601         type is an integer type.
8602
8603 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
8604
8605         PR debug/26364
8606         * opts.c (decode_options): Disable inlining of functions called
8607         once if not in unit-at-a-time mode.
8608
8609 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
8610
8611         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
8612
8613 2008-01-08  Richard Guenther  <rguenther@suse.de>
8614
8615         PR middle-end/31863
8616         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
8617         out early if the result will be unused.
8618
8619 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
8620
8621         PR target/34709
8622         Revert:
8623
8624         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
8625         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
8626         for TARGET_RECIP.       
8627         
8628 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
8629         
8630         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
8631         for vectorization tuned.
8632         
8633 2008-01-08  Richard Guenther  <rguenther@suse.de>
8634
8635         PR tree-optimization/34683
8636         * tree-ssa-operands.c (operand_build_cmp): Export.
8637         * tree-ssa-operands.h (operand_build_cmp): Declare.
8638         * tree-vn.c (vuses_compare): Remove.
8639         (sort_vuses): Use operand_build_cmp.
8640         (sort_vuses_heap): Likewise.
8641         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
8642         to re-use old VEC if available.  Do not sort already sorted VUSEs.
8643         (vdefs_to_vec): Do not sort already sorted VDEFs.
8644
8645 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
8646
8647         PR middle-end/34694
8648         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
8649
8650 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
8651
8652         PR target/34702
8653         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
8654         limitations of reciprocal sequences on x86 targets.
8655
8656 2008-01-08  Richard Guenther  <rguenther@suse.de>
8657
8658         PR tree-optimization/34683
8659         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
8660
8661 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
8662
8663         PR target/34622
8664         * config/darwin.c (darwin_mergeable_string_section): Don't use
8665         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
8666
8667 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
8668
8669         PR target/34682
8670         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
8671         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
8672         predicates of op0 and op1 to register_operand.
8673         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
8674         expander using X87MODEF mode iterator.  Change predicates of
8675         op0 and op1 to register_operand.
8676         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
8677         corresponding patterns and macroize using MODEF macro.  Change
8678         predicates of op0 and op1 to register_operand and remove
8679         "m" constraint. Disparage "r" alternative with "!".
8680         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
8681         macroize using X87MODEF macro.  Change predicates of op0 and op1
8682         to register_operand and remove "m" constraint.  Disparage "r"
8683         alternative with "!".
8684         (absneg splitter with memory operands): Remove.
8685         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
8686         patterns and macroize using X87MODEF mode iterator.
8687         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
8688         Change predicate of op1 to register_operand.
8689         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
8690         for memory operands.
8691
8692 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
8693
8694         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
8695
8696 2008-01-07  Richard Guenther  <rguenther@suse.de>
8697
8698         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
8699         fields.
8700
8701 2008-01-07  Richard Guenther  <rguenther@suse.de>
8702
8703         PR tree-optimization/34683
8704         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
8705         VOPs of the needed size to save memory.  Use VEC_quick_push
8706         to save compile-time.
8707         (vdefs_to_vec): Likewise.
8708
8709 2008-01-07  Sa Liu  <saliu@de.ibm.com>
8710
8711         * config/spu/spu.md (divdf3): Genetate inline code for double
8712         division.  The implementation doesn't handle INF or NAN, therefore it
8713         only applies when -ffinite-math-only is given.
8714
8715 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
8716
8717         PR libstdc++/34680
8718         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
8719         * doc/cpp.texi ([Common Predefined Macros]): Document.
8720
8721 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
8722
8723         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
8724         order to use commutative addition instead of subtraction.
8725
8726 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8727             Mircea Namolaru  <namolaru@il.ibm.com>
8728             Vladimir Yanovsky  <yanov@il.ibm.com>
8729             Revital Eres  <eres@il.ibm.com>
8730
8731         PR tree-optimization/34263
8732         * tree-outof-ssa.c (process_single_block_loop_latch,
8733         contains_tree_r): New functions.
8734         (analyze_edges_for_bb): Call process_single_block_loop_latch
8735         function to empty single-basic-block latch block if possible.
8736
8737 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
8738
8739         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
8740         for TARGET_RECIP.
8741         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
8742
8743 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
8744
8745         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
8746
8747 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
8748
8749         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
8750
8751 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
8752
8753         PR tree-optimization/34618
8754         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
8755         flag from T.
8756
8757 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
8758
8759         PR target/34673
8760         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
8761         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
8762         Update copyright year.
8763
8764         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
8765         Update copyright year.
8766         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
8767         using NR fixup.
8768
8769 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
8770
8771         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
8772         edge does not point to current bb before changing need_assert.
8773
8774 2008-01-04  Richard Guenther  <rguenther@suse.de>
8775
8776         PR middle-end/34029
8777         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
8778         for verifying purposes if they are is_gimple_min_invariant.
8779
8780 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
8781
8782         PR tree-optimization/34448
8783         PR tree-optimization/34465
8784         * gimplify.c (gimplify_init_constructor): Add new parameter
8785         notify_temp_creation.  Use it.
8786         (gimplify_modify_expr_rhs): Take volatiles into account when
8787         optimizing constructors.
8788         Do not optimize constructors if gimplify_init_constructor will dump to
8789         memory.
8790         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
8791         * gcc.c-torture/compile/pr34448.c: New.
8792
8793 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
8794
8795         PR gcov-profile/34609
8796         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
8797         return_slot if result is TREE_ADDRESSABLE.
8798
8799 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
8800
8801         * config/mips/mips.md (sqrt_condition): Tweak comment.
8802         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
8803
8804 2008-01-03  Tom Tromey  <tromey@redhat.com>
8805
8806         PR c/34457
8807         * c-common.c (c_type_hash): Handle VLAs.
8808
8809 2008-01-03  Jan Hubicka  <jh@suse.cz>
8810
8811         PR tree-optimization/31081
8812         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
8813         0 when inlining and not inlining to first basic block.
8814         (remap_decl): When var is initialized to 0, don't set default_def.
8815         (expand_call_inline): Set entry_bb.
8816         * tree-inline.h (copy_body_data): Add entry_bb.
8817
8818 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
8819
8820         PR c++/34619
8821         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
8822         before returning.
8823
8824         PR tree-optimization/29484
8825         * tree-inline.c (inline_forbidden_p_2): New function.
8826         (inline_forbidden_p): Disallow inlining if some static var
8827         has an address of a local LABEL_DECL in its initializer.
8828         * doc/extend.texi (Labels as Values): Document &&foo behaviour
8829         vs. inlining.
8830
8831 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
8832
8833         PR tree-optimization/34635
8834         * tree-data-ref.c (add_other_self_distances): Make sure that the
8835         evolution step is constant.
8836
8837 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
8838
8839         PR middle-end/34608
8840         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
8841
8842 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
8843
8844         * tree-sra.c (scalarize_init): Insert the generate_element_init
8845         statements after the generate_element_zero statements.
8846
8847 2008-01-02  Richard Guenther  <rguenther@suse.de>
8848
8849         PR middle-end/34093
8850         PR middle-end/31976
8851         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
8852         for very large number of operands instead of ICEing.
8853
8854 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
8855
8856         PR target/34013
8857         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
8858         while stack probing.
8859
8860 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
8861
8862         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
8863         in C++0x mode.
8864
8865 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
8866
8867         PR libmudflap/26442
8868         * tree-mudflap.c (mx_register_decls): Guard warning by
8869         !DECL_ARTIFICIAL check.
8870
8871 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
8872
8873         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
8874         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
8875         sse5_perm<mode>): Fix constraints.