OSDN Git Service

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