OSDN Git Service

* config/xtensa/xtensa.md (<u>mulsidi3): Use a temporary register.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-08-28  Bob Wilson  <bob.wilson@acm.org>
2
3         * config/xtensa/xtensa.md (<u>mulsidi3): Use a temporary register.
4
5 2008-08-28  Adam Nemet  <anemet@caviumnetworks.com>
6
7         * config/mips/mips.h (ISA_HAS_BBIT): New macro.
8         * config/mips/mips.md (branch_likely): Remove const.  Fix
9         comment formatting.
10         (define_delay for type "branch"): Change to only apply for branch
11         with likely variant.
12         (define_delay for type "branch" and "branch_likely" no).  New delay
13         definition.
14         (equality_op): New code iterator.
15         (bbv, bbinv): New code attributes.
16         (*branch_bit<bbv><mode>, *branch_bit<bbv><mode>_inverted): New
17         patterns.
18
19 2008-08-28  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
20             Andrew Pinski  <pinskia@gcc.gnu.org>
21
22         PR 18050
23         * c-common.c (verify_tree): Fix handling of ADDR_EXPR.
24
25 2008-08-28  Paolo Carlini  <paolo.carlini@oracle.com>
26
27         * gtrh-posix.h: Fix uses of _POSIX_TIMEOUTS per the normal Posix
28         rule that a symbolic constant must be defined and >= 0 for the
29         corresponding facility to be present at compile-time.
30         * gthr-posix.c: Likewise.
31
32 2008-08-28  Adam Nemet  <anemet@caviumnetworks.com>
33
34         * config/mips/mips.h (ISA_HAS_DMUL3): New macro.
35         * config/mips/mips.md (D): New mode attribute.
36         (mulsi3, muldi3): Merge it into ...
37         (mul<mode>3): ... new template.  Use _mul3 ending for 3-op
38         patterns.
39         (muldi3_mul3): New pattern.
40         (mulsi3_mult3): Rename to mulsi3_mul3.
41
42 2008-08-28  Jan Hubicka  <jh@suse.cz>
43
44         * expmed.c (store_bit_field_1): Be prepared for movstrict expander
45         to fail.
46         * predict.c (always_optimize_for_size_p): Rename to ...
47         (optimize_function_for_size): ... this one; make extern.
48         (optimize_function_for_speed_p): New.
49         (optimize_bb_for_size_p, optimize_bb_for_size_p,
50         optimize_edge_for_size_p,optimize_edge_for_size_p,
51         optimize_insn_for_size_p, optimize_insn_for_size_p): Update.
52         * basic-block.h (optimize_function_for_size_p,
53         optimize_function_for_speed_p): Declare.
54         * i386.md (optimize_size checks): Replace them by appropriate
55         predicate.
56         (standard_80387_constant_p, ix86_compute_frame_layout,
57         ix86_expand_epilogue, ix86_decompose_address,
58         print_operand, emit_i387_cw_initialization,
59         inline_memory_move_cost, ix86_pad_returns,
60         ix86_reorg): Replace optimize_size checks.
61
62 2008-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
63
64         * rtl.h (simplify_subreg_regno): Declare.
65         * rtlanal.c (simplify_subreg_regno): New function, split out from...
66         * simplify-rtx.c (simplify_subreg): ...here.
67         * reload.c (find_reloads): Use simplify_subreg_regno instead of
68         subreg_offset_representable_p.
69
70 2008-08-28  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
71
72         PR c/30949
73         * c-typeck.c (convert_for_assignment): Give a note describing what
74         was passed and what was expected.
75
76 2008-08-28  Joey Ye  <joey.ye@intel.com>
77
78         * doc/extend.texi: Document AVX built-in functions.
79         * doc/invoke.texi: Document -mavx.
80
81 2008-08-28  H.J. Lu  <hongjiu.lu@intel.com>
82             Joey Ye  <joey.ye@intel.com>
83             Xuepeng Guo  <xuepeng.guo@intel.com>
84
85         * config.gcc (extra_headers): Add gmmintrin.h for x86 and x86-64.
86
87         * config/i386/cpuid.h (bit_FMA): New.
88         (bit_XSAVE): Likewise.
89         (bit_OSXSAVE): Likewise.
90         (bit_AVX): Likewise.
91
92         * config/i386/gas.h (ASM_OUTPUT_OPCODE): Undefine before
93         define.  Use ASM_OUTPUT_AVX_PREFIX.
94
95         * config/i386/gmmintrin.h: New.
96
97         * config/i386/i386.c (x86_64_reg_class): Add X86_64_AVX_CLASS.
98         (OPTION_MASK_ISA_AVX_SET): New.
99         (OPTION_MASK_ISA_FMA_SET): Likewise.
100         (OPTION_MASK_ISA_AVX_UNSET): Likewise.
101         (OPTION_MASK_ISA_FMA_SET): Likewise.
102         (OPTION_MASK_ISA_SSE4_2_UNSET): Updated.
103         (ix86_handle_option): Handle OPT_mavx and OPT_mfma.
104         (pta_flags): Add PTA_AVX and PTA_FMA.
105         (override_options): Handle PTA_AVX and PTA_FMA.
106         (init_cumulative_args): Handle warn_avx.
107         (classify_argument): Return 0 for COImode and OImode.  Return
108         1 and X86_64_AVX_CLASS for 256bit vector types.
109         (examine_argument): Handle X86_64_AVX_CLASS.
110         (construct_container): Likewise.
111         (function_arg_advance_32): Pass OImode and 256bit vector types
112         in AVX register.
113         (function_arg_advance_64): Take a new argument to indicate if a
114         parameter is named.  Handle 256bit vector types.  Return
115         immediately for unnamed 256bit vector mode parameters.
116         (function_arg_advance): Updated.
117         (function_arg_32): Add comments for TImode.  Handle OImode
118         and 256bit vector types.
119         (function_arg_64): Take a new argument to indicate if a
120         parameter is named.  Handle 256bit vector types.  Return NULL
121         for unnamed 256bit vector mode parameters.
122         (function_arg): Updated.
123         (setup_incoming_varargs_64): Support
124         AVX encoding for *sse_prologue_save_insn.
125         (ix86_gimplify_va_arg): Handle 256bit vector mode parameters.
126         (standard_sse_constant_p): Return -2 for all 1s if SSE2 isn't
127         enabled.  For all 1s in 256bit vector modes, return 3 if AVX is
128         enabled, otherwise return -3.
129         (standard_sse_constant_opcode): Handle AVX and 256bit vector
130         modes.
131         (print_reg): Support AVX registers.  Handle 'x' and 't'.
132         Handle 'd' to duplicate the operand.
133         (print_operand): Likewise.  Also support AVX vector compare
134         instructions.
135         (output_387_binary_op): Support AVX.
136         (output_fp_compare): Likewise.
137         (ix86_expand_vector_move_misalign): Likewise.
138         (ix86_attr_length_vex_default): New.
139         (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
140         IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
141         IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
142         IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
143         IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_BLENDPD256,
144         IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
145         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DIVPD256,
146         IX86_BUILTIN_DIVPS256, IX86_BUILTIN_DPPS256,
147         IX86_BUILTIN_HADDPD256, IX86_BUILTIN_HADDPS256,
148         IX86_BUILTIN_HSUBPD256, IX86_BUILTIN_HSUBPS256,
149         IX86_BUILTIN_MAXPD256, IX86_BUILTIN_MAXPS256,
150         IX86_BUILTIN_MINPD256, IX86_BUILTIN_MINPS256,
151         IX86_BUILTIN_MULPD256, IX86_BUILTIN_MULPS256,
152         IX86_BUILTIN_ORPD256, IX86_BUILTIN_ORPS256,
153         IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
154         IX86_BUILTIN_SUBPD256, IX86_BUILTIN_SUBPS256,
155         IX86_BUILTIN_XORPD256, IX86_BUILTIN_XORPS256,
156         IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
157         IX86_BUILTIN_CMPPS, IX86_BUILTIN_CMPPD256,
158         IX86_BUILTIN_CMPPS256, IX86_BUILTIN_CVTDQ2PD256,
159         IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
160         IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
161         IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
162         IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_EXTRACTF128PD256,
163         IX86_BUILTIN_EXTRACTF128PS256, IX86_BUILTIN_EXTRACTF128SI256,
164         IX86_BUILTIN_VZEROALL, IX86_BUILTIN_VZEROUPPER,
165         IX86_BUILTIN_VZEROUPPER_REX64, IX86_BUILTIN_VPERMILVARPD,
166         IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
167         IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_VPERMILPD,
168         IX86_BUILTIN_VPERMILPS, IX86_BUILTIN_VPERMILPD256,
169         IX86_BUILTIN_VPERMILPS256, IX86_BUILTIN_VPERMIL2PD,
170         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256,
171         IX86_BUILTIN_VPERMIL2PS256, IX86_BUILTIN_VPERM2F128PD256,
172         IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
173         IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
174         IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
175         IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_VINSERTF128PD256,
176         IX86_BUILTIN_VINSERTF128PS256, IX86_BUILTIN_VINSERTF128SI256,
177         IX86_BUILTIN_LOADUPD256, IX86_BUILTIN_LOADUPS256,
178         IX86_BUILTIN_STOREUPD256, IX86_BUILTIN_STOREUPS256,
179         IX86_BUILTIN_LDDQU256, IX86_BUILTIN_LOADDQU256,
180         IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_MASKLOADPD,
181         IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKSTOREPD,
182         IX86_BUILTIN_MASKSTOREPS, IX86_BUILTIN_MASKLOADPD256,
183         IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKSTOREPD256,
184         IX86_BUILTIN_MASKSTOREPS256, IX86_BUILTIN_MOVSHDUP256,
185         IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
186         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
187         IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
188         IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
189         IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
190         IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
191         IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
192         IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
193         IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
194         IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
195         IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
196         IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
197         IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
198         IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
199         IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
200         IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
201         IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
202         IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256
203         and IX86_BUILTIN_MOVMSKPS256,
204         (ix86_special_builtin_type): Add V32QI_FTYPE_PCCHAR,
205         V8SF_FTYPE_PCV4SF, V8SF_FTYPE_PCFLOAT, V4DF_FTYPE_PCV2DF,
206         V4DF_FTYPE_PCDOUBLE, V8SF_FTYPE_PCV8SF_V8SF,
207         V4DF_FTYPE_PCV4DF_V4DF, V4SF_FTYPE_PCV4SF_V4SF,
208         V2DF_FTYPE_PCV2DF_V2DF, VOID_FTYPE_PCHAR_V32QI,
209         VOID_FTYPE_PFLOAT_V8SF, VOID_FTYPE_PDOUBLE_V4DF,
210         VOID_FTYPE_PV8SF_V8SF_V8SF, VOID_FTYPE_PV4DF_V4DF_V4DF,
211         VOID_FTYPE_PV4SF_V4SF_V4SF and VOID_FTYPE_PV2DF_V2DF_V2DF,
212         (ix86_builtin_type): Add INT_FTYPE_V8SF_V8SF_PTEST,
213         INT_FTYPE_V4DI_V4DI_PTEST, INT_FTYPE_V4DF_V4DF_PTEST,
214         INT_FTYPE_V4SF_V4SF_PTEST, INT_FTYPE_V2DF_V2DF_PTEST,
215         INT_FTYPE_V8SF, INT_FTYPE_V4DF, V8SI_FTYPE_V8SF, V8SI_FTYPE_V4SI,
216         V8SF_FTYPE_V8SF, V8SF_FTYPE_V8SI, V8SF_FTYPE_V4SF,
217         V4SI_FTYPE_V8SI, V4SI_FTYPE_V4DF, V4DF_FTYPE_V4DF,
218         V4DF_FTYPE_V4SI, V4DF_FTYPE_V4SF, V4DF_FTYPE_V2DF,
219         V4SF_FTYPE_V4DF, V4SF_FTYPE_V8SF, V2DF_FTYPE_V4DF,
220         V8SF_FTYPE_V8SF_V8SF, V8SF_FTYPE_V8SF_V8SI,
221         V4DF_FTYPE_V4DF_V4DF, V4DF_FTYPE_V4DF_V4DI,
222         V4SF_FTYPE_V4SF_V4SI, V2DF_FTYPE_V2DF_V2DI,
223         V8SF_FTYPE_V8SF_INT, V4SI_FTYPE_V8SI_INT, V4SF_FTYPE_V8SF_INT,
224         V2DF_FTYPE_V4DF_INT, V4DF_FTYPE_V4DF_INT,
225         V8SF_FTYPE_V8SF_V8SF_V8SF, V4DF_FTYPE_V4DF_V4DF_V4DF,
226         V8SI_FTYPE_V8SI_V8SI_INT, V8SF_FTYPE_V8SF_V8SF_INT,
227         V4DF_FTYPE_V4DF_V4DF_INT, V4DF_FTYPE_V4DF_V2DF_INT,
228         V8SF_FTYPE_V8SF_V8SF_V8SI_INT, V4DF_FTYPE_V4DF_V4DF_V4DI_INT,
229         V4SF_FTYPE_V4SF_V4SF_V4SI_INT and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
230         (bdesc_special_args): Add IX86_BUILTIN_VZEROALL,
231         IX86_BUILTIN_VZEROUPPER. IX86_BUILTIN_VZEROUPPER_REX64,
232         IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
233         IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
234         IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_LOADUPD256,
235         IX86_BUILTIN_LOADUPS256, IX86_BUILTIN_STOREUPD256,
236         IX86_BUILTIN_STOREUPS256, IX86_BUILTIN_LOADDQU256,
237         IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_LDDQU256,
238         IX86_BUILTIN_MASKLOADPD, IX86_BUILTIN_MASKLOADPS,
239         IX86_BUILTIN_MASKLOADPD256, IX86_BUILTIN_MASKLOADPS256,
240         IX86_BUILTIN_MASKSTOREPD, IX86_BUILTIN_MASKSTOREPS,
241         IX86_BUILTIN_MASKSTOREPD256 and IX86_BUILTIN_MASKSTOREPS256.
242         (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
243         IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
244         IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
245         IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
246         IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_DIVPD256,
247         IX86_BUILTIN_DIVPS256, IX86_BUILTIN_HADDPD256,
248         IX86_BUILTIN_HSUBPS256, IX86_BUILTIN_HSUBPD256,
249         IX86_BUILTIN_HADDPS256, IX86_BUILTIN_MAXPD256,
250         IX86_BUILTIN_MAXPS256, IX86_BUILTIN_MINPD256,
251         IX86_BUILTIN_MINPS256, IX86_BUILTIN_MULPD256,
252         IX86_BUILTIN_MULPS256, IX86_BUILTIN_ORPD256,
253         IX86_BUILTIN_ORPS256, IX86_BUILTIN_SUBPD256,
254         IX86_BUILTIN_SUBPS256, IX86_BUILTIN_XORPD256,
255         IX86_BUILTIN_XORPS256, IX86_BUILTIN_VPERMILVARPD,
256         IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
257         IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_BLENDPD256,
258         IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
259         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DPPS256,
260         IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
261         IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
262         IX86_BUILTIN_CMPPS,
263         IX86_BUILTIN_CMPPD256,IX86_BUILTIN_CMPPS256,
264         IX86_BUILTIN_EXTRACTF128PD256, IX86_BUILTIN_EXTRACTF128PS256,
265         IX86_BUILTIN_EXTRACTF128SI256, IX86_BUILTIN_CVTDQ2PD256,
266         IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
267         IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
268         IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
269         IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_VPERM2F128PD256,
270         IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
271         IX86_BUILTIN_VPERMILPD, IX86_BUILTIN_VPERMILPS,
272         IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
273         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMILPS,
274         IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
275         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
276         IX86_BUILTIN_VPERMIL2PD256, IX86_BUILTIN_VPERMIL2PS256,
277         IX86_BUILTIN_VINSERTF128PD256, IX86_BUILTIN_VINSERTF128PS256,
278         IX86_BUILTIN_VINSERTF128SI256, IX86_BUILTIN_MOVSHDUP256,
279         IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
280         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
281         IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
282         IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
283         IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
284         IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
285         IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
286         IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
287         IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
288         IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
289         IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
290         IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
291         IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
292         IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
293         IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
294         IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
295         IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
296         IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256 and
297         IX86_BUILTIN_MOVMSKPS256.
298         (ix86_init_mmx_sse_builtins): Support AVX builtins.
299         (ix86_expand_args_builtin): Likewise.
300         (ix86_expand_special_args_builtin): Likewise.
301         (ix86_hard_regno_mode_ok): Handle AVX modes.
302         (ix86_expand_vector_init_duplicate): Likewise.
303         (ix86_expand_vector_init_one_nonzero): Likewise.
304         (ix86_expand_vector_init_one_var): Likewise.
305         (ix86_expand_vector_init_concat): Likewise.
306         (ix86_expand_vector_init_general): Likewise.
307         (ix86_expand_vector_set): Likewise.
308         (ix86_vector_mode_supported_p): Likewise.
309         (x86_extended_reg_mentioned_p): Check INSN_P before using
310         PATTERN.
311
312         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
313         OPTION_MASK_ISA_AVX and OPTION_MASK_ISA_FMA.
314
315         * config/i386/i386.h (TARGET_AVX): New.
316         (TARGET_FMA): Likewise.
317         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AVX and TARGET_FMA.
318         (BIGGEST_ALIGNMENT): Set to 256 for TARGET_AVX.
319         (VALID_AVX256_REG_MODE): New.
320         (AVX256_VEC_FLOAT_MODE_P): Likewise.
321         (AVX_FLOAT_MODE_P): Likewise.
322         (AVX128_VEC_FLOAT_MODE_P): Likewise.
323         (AVX256_VEC_FLOAT_MODE_P): Likewise.
324         (AVX_VEC_FLOAT_MODE_P): Likewise.
325         (ASM_OUTPUT_AVX_PREFIX): Likewise.
326         (ASM_OUTPUT_OPCODE): Likewise.
327         (UNITS_PER_SIMD_WORD): Add a FIXME for 32byte vectorizer
328         support.
329         (SSE_REG_MODE_P): Allow 256bit vector modes.
330         (ix86_args): Add a warn_avx field.
331
332         * config/i386/i386.md (UNSPEC_PCMP): New.
333         (UNSPEC_VPERMIL): Likewise.
334         (UNSPEC_VPERMIL2): Likewise.
335         (UNSPEC_VPERMIL2F128): Likewise.
336         (UNSPEC_MASKLOAD): Likewise.
337         (UNSPEC_MASKSTORE): Likewise.
338         (UNSPEC_CAST): Likewise.
339         (UNSPEC_VTESTP): Likewise.
340         (UNSPECV_VZEROALL): Likewise.
341         (UNSPECV_VZEROUPPER): Likewise.
342         (XMM0_REG): Likewise.
343         (XMM1_REG): Likewise.
344         (XMM2_REG): Likewise.
345         (XMM3_REG): Likewise.
346         (XMM4_REG): Likewise.
347         (XMM5_REG): Likewise.
348         (XMM6_REG): Likewise.
349         (XMM8_REG): Likewise.
350         (XMM9_REG): Likewise.
351         (XMM10_REG): Likewise.
352         (XMM11_REG): Likewise.
353         (XMM12_REG): Likewise.
354         (XMM13_REG): Likewise.
355         (XMM14_REG): Likewise.
356         (XMM15_REG): Likewise.
357         (prefix): Likewise.
358         (prefix_vex_imm8): Likewise.
359         (prefix_vex_w): Likewise.
360         (length_vex): Likewise.
361         (maxmin): Likewise.
362         (movoi): Likewise.
363         (*avx_ashlti3): Likewise.
364         (*avx_lshrti3): Likewise.
365         (*avx_setcc<mode>): Likewise.
366         (*fop_<mode>_comm_mixed_avx): Likewise.
367         (*fop_<mode>_comm_avx): Likewise.
368         (*fop_<mode>_1_mixed_avx): Likewise.
369         (*fop_<mode>_1_avx): Likewise.
370         (*avx_<code><mode>3): Likewise.
371         (*avx_ieee_smin<mode>3): Likewise.
372         (*avx_ieee_smax<mode>3): Likewise.
373         (mode): Add OI, V8SF and V4DF.
374         (length): Support VEX prefix.
375         (*cmpfp_i_mixed): Set prefix attribute.
376         (*cmpfp_i_sse): Likewise.
377         (*cmpfp_iu_mixed): Likewise.
378         (*cmpfp_iu_sse): Likewise.
379         (*movsi_1): Support AVX.
380         (*movdi_2): Likewise.
381         (*movdi_1_rex64): Likewise.
382         (*movti_internal): Likewise.
383         (*movti_rex64): Likewise.
384         (*movsf_1): Likewise.
385         (*movdf_nointeger): Likewise.
386         (*movdf_integer_rex64): Likewise.
387         (*movtf_internal): Likewise.
388         (zero_extendsidi2_32): Likewise.
389         (zero_extendsidi2_rex64): Likewise.
390         (*extendsfdf2_mixed): Likewise.
391         (*extendsfdf2_sse): Likewise.
392         (*truncdfsf_fast_mixed): Likewise.
393         (*truncdfsf_fast_sse): Likewise.
394         (*truncdfsf_mixed): Likewise.
395         (fix_trunc<mode>di_sse): Likewise.
396         (fix_trunc<mode>si_sse): Likewise.
397         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
398         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
399         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
400         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
401         (*rcpsf2_sse): Likewise.
402         (*rsqrtsf2_sse): Likewise.
403         (*sqrt<mode>2_sse): Likewise.
404         (sse4_1_round<mode>2): Likewise.
405         (*sse_prologue_save_insn): Disallow REX prefix for AVX.
406         Support AVX.  Set length attribute properly for AVX.
407
408         * config/i386/i386-modes.def (VECTOR_MODES (INT, 32)): New.
409         (VECTOR_MODES (FLOAT, 32)): Likewise.
410         (VECTOR_MODE (INT, DI, 8)): Likewise.
411         (VECTOR_MODE (INT, HI, 32)): Likewise.
412         (VECTOR_MODE (INT, QI, 64)): Likewise.
413         (VECTOR_MODE (FLOAT, DF, 8)): Likewise.
414         (VECTOR_MODE (FLOAT, SF, 16)): Likewise.
415         (VECTOR_MODE (INT, DI, 4)): Removed.
416         (VECTOR_MODE (INT, SI, 8)): Likewise.
417         (VECTOR_MODE (INT, HI, 16)): Likewise.
418         (VECTOR_MODE (INT, QI, 32)): Likewise.
419         (VECTOR_MODE (FLOAT, SF, 8)): Likewise.
420         (INT_MODE (OI, 32)): Likewise.
421
422         * config/i386/i386.opt (mavx): New.
423         (mfma): Likewise.
424
425         * config/i386/i386-protos.h (ix86_attr_length_vex_default): New.
426
427         * config/i386/mmx.md (*mov<mode>_internal_rex64): Support AVX.
428         (*mov<mode>_internal_avx): New.
429         (*movv2sf_internal_rex64_avx): Likewise.
430         (*movv2sf_internal_avx): Likewise.
431
432         * config/i386/predicates.md (const_4_to_5_operand): New.
433         (const_6_to_7_operand): Likewise.
434         (const_8_to_11_operand): Likewise.
435         (const_12_to_15_operand): Likewise.
436         (avx_comparison_float_operator): Likewise.
437
438         * config/i386/sse.md (AVX256MODEI): New.
439         (AVX256MODE): Likewise.
440         (AVXMODEQI): Likewise.
441         (AVXMODE): Likewise.
442         (AVX256MODEF2P): Likewise.
443         (AVX256MODE2P): Likewise.
444         (AVX256MODE4P): Likewise.
445         (AVX256MODE8P): Likewise.
446         (AVXMODEF2P): Likewise.
447         (AVXMODEF4P): Likewise.
448         (AVXMODEDCVTDQ2PS): Likewise.
449         (AVXMODEDCVTPS2DQ): Likewise.
450         (avxvecmode): Likewise.
451         (avxvecpsmode): Likewise.
452         (avxhalfvecmode): Likewise.
453         (avxscalarmode): Likewise.
454         (avxcvtvecmode): Likewise.
455         (avxpermvecmode): Likewise.
456         (avxmodesuffixf2c): Likewise.
457         (avxmodesuffixp): Likewise.
458         (avxmodesuffixs): Likewise.
459         (avxmodesuffix): Likewise.
460         (vpermilbits): Likewise.
461         (pinsrbits): Likewise.
462         (mov<mode>): Likewise.
463         (*mov<mode>_internal): Likewise.
464         (push<mode>1): Likewise.
465         (movmisalign<mode>): Likewise.
466         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Likewise.
467         (avx_movdqu<avxmodesuffix>): Likewise.
468         (avx_lddqu<avxmodesuffix>): Likewise.
469         (<plusminus_insn><mode>3): Likewise.
470         (*avx_<plusminus_insn><mode>3): Likewise.
471         (*avx_vm<plusminus_insn><mode>3): Likewise.
472         (mul<mode>3): Likewise.
473         (*avx_mul<mode>3): Likewise.
474         (*avx_vmmul<mode>3): Likewise.
475         (divv8sf3): Likewise.
476         (divv4df3): Likewise.
477         (avx_div<mode>3): Likewise.
478         (*avx_div<mode>3): Likewise.
479         (*avx_vmdiv<mode>3): Likewise.
480         (avx_rcpv8sf2): Likewise.
481         (*avx_vmrcpv4sf2): Likewise.
482         (sqrtv8sf2): Likewise.
483         (avx_sqrtv8sf2): Likewise.
484         (*avx_vmsqrt<mode>2): Likewise.
485         (rsqrtv8sf2): Likewise.
486         (avx_rsqrtv8sf2): Likewise.
487         (*avx_vmrsqrtv4sf2): Likewise.
488         (<code><mode>3): Likewise.
489         (*avx_<code><mode>3_finite): Likewise.
490         (*avx_<code><mode>3): Likewise.
491         (*avx_vm<code><mode>3): Likewise.
492         (*avx_ieee_smin<mode>3): Likewise.
493         (*avx_ieee_smax<mode>3): Likewise.
494         (avx_addsubv8sf3): Likewise.
495         (avx_addsubv4df3): Likewise.
496         (*avx_addsubv4sf3): Likewise.
497         (*avx_addsubv2df3): Likewise.
498         (avx_h<plusminus_insn>v4df3): Likewise.
499         (avx_h<plusminus_insn>v8sf3): Likewise.
500         (*avx_h<plusminus_insn>v4sf3): Likewise.
501         (*avx_h<plusminus_insn>v2df3): Likewise.
502         (avx_cmpp<avxmodesuffixf2c><mode>3): Likewise.
503         (avx_cmps<ssemodesuffixf2c><mode>3): Likewise.
504         (*avx_maskcmp<mode>3): Likewise.
505         (avx_nand<mode>3): Likewise.
506         (*avx_<code><mode>3): Likewise.
507         (*avx_nand<mode>3): Likewise.
508         (*avx_<code><mode>3): Likewise.
509         (*avx_cvtsi2ss): Likewise.
510         (*avx_cvtsi2ssq): Likewise.
511         (*avx_cvtsi2sd): Likewise.
512         (*avx_cvtsi2sdq): Likewise.
513         (*avx_cvtsd2ss): Likewise.
514         (avx_cvtss2sd): Likewise.
515         (avx_cvtdq2ps<avxmodesuffix>): Likewise.
516         (avx_cvtps2dq<avxmodesuffix>): Likewise.
517         (avx_cvttps2dq<avxmodesuffix>): Likewise.
518         (*avx_cvtsi2sd): Likewise.
519         (*avx_cvtsi2sdq): Likewise.
520         (avx_cvtdq2pd256): Likewise.
521         (avx_cvtpd2dq256): Likewise.
522         (avx_cvttpd2dq256): Likewise.
523         (*avx_cvtsd2ss): Likewise.
524         (*avx_cvtss2sd): Likewise.
525         (avx_cvtpd2ps256): Likewise.
526         (avx_cvtps2pd256): Likewise.
527         (*avx_movhlps): Likewise.
528         (*avx_movlhps): Likewise.
529         (avx_unpckhps256): Likewise.
530         (*avx_unpckhps): Likewise.
531         (avx_unpcklps256): Likewise.
532         (*avx_unpcklps): Likewise.
533         (avx_movshdup256): Likewise.
534         (avx_movsldup256): Likewise.
535         (avx_shufps256): Likewise.
536         (avx_shufps256_1): Likewise.
537         (*avx_shufps_<mode>): Likewise.
538         (*avx_loadhps): Likewise.
539         (*avx_storelps): Likewise.
540         (*avx_loadlps): Likewise.
541         (*avx_movss): Likewise.
542         (*vec_dupv4sf_avx): Likewise.
543         (*vec_concatv2sf_avx): Likewise.
544         (*vec_concatv4sf_avx): Likewise.
545         (*vec_setv4sf_0_avx): Likewise.
546         (*vec_setv4sf_avx): Likewise.
547         (*avx_insertps): Likewise.
548         (avx_vextractf128<mode>): Likewise.
549         (vec_extract_lo_<mode>): Likewise.
550         (vec_extract_hi_<mode>): Likewise.
551         (vec_extract_lo_<mode>): Likewise.
552         (vec_extract_hi_<mode>): Likewise.
553         (vec_extract_lo_v16hi): Likewise.
554         (vec_extract_hi_v16hi): Likewise.
555         (vec_extract_lo_v32qi): Likewise.
556         (vec_extract_hi_v32qi): Likewise.
557         (avx_unpckhpd256): Likewise.
558         (*avx_unpckhpd): Likewise.
559         (avx_movddup256): Likewise.
560         (*avx_movddup): Likewise.
561         (avx_unpcklpd256): Likewise.
562         (*avx_unpcklpd): Likewise.
563         (avx_shufpd256): Likewise.
564         (avx_shufpd256_1): Likewise.
565         (*avx_punpckhqdq): Likewise.
566         (*avx_punpcklqdq): Likewise.
567         (*avx_shufpd_<mode>): Likewise.
568         (*avx_storehpd): Likewise.
569         (*avx_loadhpd): Likewise.
570         (*avx_loadlpd): Likewise.
571         (*avx_movsd): Likewise.
572         (*vec_concatv2df_avx): Likewise.
573         (*avx_<plusminus_insn><mode>3): Likewise.
574         (*avx_<plusminus_insn><mode>3): Likewise.
575         (*avx_mulv8hi3): Likewise.
576         (*avxv8hi3_highpart): Likewise.
577         (*avx_umulv8hi3_highpart): Likewise.
578         (*avx_umulv2siv2di3): Likewise.
579         (*avx_mulv2siv2di3): Likewise.
580         (*avx_pmaddwd): Likewise.
581         (*avx_mulv4si3): Likewise.
582         (*avx_ashr<mode>3): Likewise.
583         (*avx_lshr<mode>3): Likewise.
584         (*avx_ashl<mode>3): Likewise.
585         (*avx_<code><mode>3): Likewise.
586         (*avx_eq<mode>3): Likewise.
587         (*avx_gt<mode>3): Likewise.
588         (*avx_nand<mode>3): Likewise.
589         (*avx_nand<mode>3): Likewise.
590         (*avx_<code><mode>3): Likewise.
591         (*avx_<code><mode>3): Likewise.
592         (*avx_packsswb): Likewise.
593         (*avx_packssdw): Likewise.
594         (*avx_packuswb): Likewise.
595         (*avx_punpckhbw): Likewise.
596         (*avx_punpcklbw): Likewise.
597         (*avx_punpckhwd): Likewise.
598         (*avx_punpcklwd): Likewise.
599         (*avx_punpckhdq): Likewise.
600         (*avx_punpckldq): Likewise.
601         (*avx_pinsr<avxmodesuffixs>): Likewise.
602         (*avx_pinsrq): Likewise.
603         (*avx_loadld): Likewise.
604         (*vec_extractv2di_1_rex64_avx): Likewise.
605         (*vec_extractv2di_1_avx): Likewise.
606         (*vec_dupv2di_avx): Likewise.
607         (*vec_concatv2si_avx): Likewise.
608         (*vec_concatv4si_1_avx): Likewise.
609         (*vec_concatv2di_avx): Likewise.
610         (*vec_concatv2di_rex64_avx): Likewise.
611         (*avx_uavgv16qi3): Likewise.
612         (*avx_uavgv8hi3): Likewise.
613         (*avx_psadbw): Likewise.
614         (avx_movmskp<avxmodesuffixf2c>256): Likewise.
615         (*avx_phaddwv8hi3): Likewise.
616         (*avx_phadddv4si3): Likewise.
617         (*avx_phaddswv8hi3): Likewise.
618         (*avx_phsubwv8hi3): Likewise.
619         (*avx_phsubdv4si3): Likewise.
620         (*avx_phsubswv8hi3): Likewise.
621         (*avx_pmaddubsw128): Likewise.
622         (*avx_pmulhrswv8hi3): Likewise.
623         (*avx_pshufbv16qi3): Likewise.
624         (*avx_psign<mode>3): Likewise.
625         (*avx_palignrti): Likewise.
626         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
627         (avx_blendvp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
628         (avx_dpp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
629         (*avx_mpsadbw): Likewise.
630         (*avx_packusdw): Likewise.
631         (*avx_pblendvb): Likewise.
632         (*avx_pblendw): Likewise.
633         (avx_vtestp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
634         (avx_ptest256): Likewise.
635         (avx_roundp<avxmodesuffixf2c>256): Likewise.
636         (*avx_rounds<ssemodesuffixf2c>): Likewise.
637         (*avx_aesenc): Likewise.
638         (*avx_aesenclast): Likewise.
639         (*avx_aesdec): Likewise.
640         (*avx_aesdeclast): Likewise.
641         (avx_vzeroupper): Likewise.
642         (avx_vzeroupper_rex64): Likewise.
643         (avx_vpermil<mode>): Likewise.
644         (avx_vpermilvar<mode>3): Likewise.
645         (avx_vpermil2<mode>3): Likewise.
646         (avx_vperm2f128<mode>3): Likewise.
647         (avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>): Likewise.
648         (avx_vbroadcastss256): Likewise.
649         (avx_vbroadcastf128_p<avxmodesuffixf2c>256): Likewise.
650         (avx_vinsertf128<mode>): Likewise.
651         (vec_set_lo_<mode>): Likewise.
652         (vec_set_hi_<mode>): Likewise.
653         (vec_set_lo_<mode>): Likewise.
654         (vec_set_hi_<mode>): Likewise.
655         (vec_set_lo_v16hi): Likewise.
656         (vec_set_hi_v16hi): Likewise.
657         (vec_set_lo_v32qi): Likewise.
658         (vec_set_hi_v32qi): Likewise.
659         (avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
660         (avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>): Likewise.
661         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
662         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Likewise.
663         (vec_init<mode>): Likewise.
664         (*vec_concat<mode>_avx): Likewise.
665         (blendbits): Support V8SF and V4DF.
666         (sse2_movq128): Support AVX.
667         (<sse>_movnt<mode>): Likewise.
668         (sse2_movntv2di): Likewise.
669         (sse_rcpv4sf2): Likewise.
670         (sse_sqrtv4sf2): Likewise.
671         (sse_rsqrtv4sf2): Likewise.
672         (<sse>_comi): Likewise.
673         (<sse>_ucomi): Likewise.
674         (sse_cvtss2si): Likewise.
675         (sse_cvtss2si_2): Likewise.
676         (sse_cvtss2siq): Likewise.
677         (sse_cvtss2siq_2): Likewise.
678         (sse_cvttss2si): Likewise.
679         (sse_cvttss2siq): Likewise.
680         (sse2_cvtsd2si): Likewise.
681         (sse2_cvtsd2si_2): Likewise.
682         (sse2_cvtsd2siq): Likewise.
683         (sse2_cvtsd2siq_2): Likewise.
684         (sse2_cvttsd2si): Likewise.
685         (sse2_cvttsd2siq): Likewise.
686         (sse2_cvtdq2pd): Likewise.
687         (*sse2_cvtpd2dq): Likewise.
688         (*sse2_cvttpd2dq): Likewise.
689         (*sse2_cvtpd2ps): Likewise.
690         (sse2_cvtps2pd): Likewise.
691         (sse3_movshdup): Likewise.
692         (sse3_movsldup): Likewise.
693         (sse_storehps): Likewise.
694         (*sse4_1_extractps): Likewise.
695         (sse2_storelpd): Likewise.
696         (vec_dupv2df_sse3): Likewise.
697         (*vec_concatv2df_sse3): Likewise.
698         (*sse4_1_pextrb): Likewise.
699         (*sse4_1_pextrb_memory): Likewise.
700         (*sse2_pextrw): Likewise.
701         (*sse4_1_pextrw_memory): Likewise.
702         (*sse4_1_pextrd): Likewise.
703         (*sse4_1_pextrq): Likewise.
704         (sse2_pshufd_1): Likewise.
705         (sse2_pshuflw_1): Likewise.
706         (sse2_pshufhw_1): Likewise.
707         (*sse2_storeq_rex64): Likewise.
708         (*vec_dupv4si): Likewise.
709         (<sse>_movmskp<ssemodesuffixf2c>): Likewise.
710         (sse2_pmovmskb): Likewise.
711         (*sse2_maskmovdqu): Likewise.
712         (*sse2_maskmovdqu_rex64): Likewise.
713         (sse_ldmxcsr): Likewise.
714         (sse_stmxcsr): Likewise.
715         (abs<mode>2): Likewise.
716         (sse4_1_movntdqa): Likewise.
717         (sse4_1_phminposuw): Likewise.
718         (sse4_1_extendv8qiv8hi2): Likewise.
719         (*sse4_1_extendv8qiv8hi2): Likewise.
720         (sse4_1_extendv4qiv4si2): Likewise.
721         (*sse4_1_extendv4qiv4si2): Likewise.
722         (sse4_1_extendv2qiv2di2): Likewise.
723         (*sse4_1_extendv2qiv2di2): Likewise.
724         (sse4_1_extendv4hiv4si2): Likewise.
725         (*sse4_1_extendv4hiv4si2): Likewise.
726         (sse4_1_extendv2hiv2di2): Likewise.
727         (*sse4_1_extendv2hiv2di2): Likewise.
728         (sse4_1_extendv2siv2di2): Likewise.
729         (*sse4_1_extendv2siv2di2): Likewise.
730         (sse4_1_zero_extendv8qiv8hi2): Likewise.
731         (*sse4_1_zero_extendv8qiv8hi2): Likewise.
732         (sse4_1_zero_extendv4qiv4si2): Likewise.
733         (*sse4_1_zero_extendv4qiv4si2): Likewise.
734         (sse4_1_zero_extendv2qiv2di2): Likewise.
735         (*sse4_1_zero_extendv2qiv2di2): Likewise.
736         (sse4_1_zero_extendv4hiv4si2): Likewise.
737         (*sse4_1_zero_extendv4hiv4si2): Likewise.
738         (sse4_1_zero_extendv2hiv2di2): Likewise.
739         (*sse4_1_zero_extendv2hiv2di2): Likewise.
740         (sse4_1_zero_extendv2siv2di2): Likewise.
741         (*sse4_1_zero_extendv2siv2di2): Likewise.
742         (sse4_1_ptest): Likewise.
743         (sse4_1_roundp<ssemodesuffixf2c>): Likewise.
744         (sse4_2_pcmpestri): Likewise.
745         (sse4_2_pcmpestrm): Likewise.
746         (sse4_2_pcmpistri): Likewise.
747         (sse4_2_pcmpistrm): Likewise.
748         (aesimc): Likewise.
749         (aeskeygenassist): Likewise.
750
751 2008-08-28  Uros Bizjak  <ubizjak@gmail.com>
752
753         * config/i386/predicates.md (vzeroall_operation): New.
754
755         * config/i386/sse.md (avx_vzeroall): New.
756         (*avx_vzeroall): Likewise.
757
758 2008-08-28  Paul Brook  <paul@codesourcery.com>
759             Mark Shinwell  <shinwell@codesourcery.com>
760             Richard Earnshaw  <richard.earnshaw@arm.com>
761
762         * config/arm/arm.c (TARGET_MAX_ANCHOR_OFFSET): New.
763         (TARGET_MIN_ANCHOR_OFFSET): New.
764         (arm_override_options): Set correct anchor ranges for Thumb-1
765         and Thumb-2 if required.
766         (legitimize_pic_address): Handle case involving a TLS symbol
767         reference with an addend.
768         (arm_optimization_options): Enable section anchors at -O1 and
769         above.
770         * config/arm/arm.h (OPTIMIZATION_OPTIONS): New.
771         * config/arm/arm-protos.h (arm_optimization_options): New.
772
773 2008-08-28  Nick Clifton  <nickc@redhat.com>
774
775         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Define.
776         * config/stormy16/stormy16.md (zero_extendqihi2): Fix length
777         attribute.
778
779         * config/v850/v850.h (IRA_COVER_CLASSES): Define.
780         * config/v850/v850.md (return): Remove frame size restriction.  
781
782         * config/mcore/mcore.h (IRA_COVER_CLASSES): Define.
783
784         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Define.
785
786         * config/fr30/fr30.h (IRA_COVER_CLASSES): Define.
787
788         * config/m32r/m32r.h (IRA_COVER_CLASSES): Define.
789
790 2008-08-28  Paul Brook  <paul@codesourcery.com>
791
792         * config/arm/vfp11.md: Update license notice.
793         * config/arm/cortex-r4.md: Ditto.
794
795 2008-08-28  Richard Guenther  <rguenther@suse.de>
796
797         PR tree-optimization/37207
798         * tree-ssa-ifcombine.c (recognize_single_bit_test): Fix
799         tuplification bug.
800
801 2008-08-28  Dodji Seketeli  <dodji@redhat.com>
802
803         PR c++/36741
804         * tree.c (int_fits_type_p): Don't forget unsigned integers
805           of type sizetype which higher end word equals -1.
806
807 2008-08-28  Ira Rosen  <irar@il.ibm.com>
808
809         * target.h (struct vectorize): Add new target builtin.
810         * tree-vectorizer.c (destroy_loop_vec_info): Call 
811         vect_free_slp_instance instead of vect_free_slp_node.
812         * tree-vectorizer.h (enum slp_load_perm_type): New.
813         (struct _slp_instance): Add new fields.
814         (SLP_INSTANCE_LOAD_PERMUTATION): New.
815         (SLP_INSTANCE_LOADS): New.
816         (vect_free_slp_tree): Remove.
817         (vect_free_slp_instance): Declare.        
818         (SLP_TREE_LOADS_PERM_TYPE, TARG_VEC_PERMUTE_COST): New.
819         (vectorizable_load): Add argument.
820         (vect_transform_slp_perm_load): New.
821         * tree-vect-analyze.c (vect_analyze_operations): Add an argument to 
822         vectorizable_load.
823         (vect_get_place_in_interleaving_chain): New function.
824         (vect_free_slp_tree): Make static.
825         (vect_free_slp_instance): New function.
826         (vect_build_slp_tree): Add new arguments. Allow load permutations and 
827         collect the load location in the interleaving chain.
828         (vect_supported_slp_permutation_p): New function.
829         (vect_supported_load_permutation_p): Likewise.
830         (vect_analyze_slp_instance): In case of loads permutation, call
831         vect_supported_load_permutation_p to check that the permutation is 
832         supported.
833         * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM): New.
834         * tree-vect-transform.c (vect_transform_stmt): Add new argument.
835         (vect_create_mask_and_perm): New function.
836         (vect_get_mask_element, vect_transform_slp_perm_load): Likewise.
837         (vectorizable_load): Add an argument. Don't keep the created vectors  
838         statements in the node if permutation is required. Call 
839         vect_transform_slp_perm_load to generate the permutation.
840         (vect_transform_stmt): Add new argument. Call vectorizable_load with 
841         additional argument.
842         (vect_schedule_slp_instance): In case of loads permutation, allocate  
843         vectorized statements structure for all the related SLP nodes. Call 
844         vect_transform_stmt with addditional argument.
845         (vect_transform_loop): Call vect_transform_stmt with correct arguments. 
846         * config/spu/spu.c (spu_builtin_vec_perm): New. 
847         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
848         * config/spu/spu.h (TARG_VEC_PERMUTE_COS): Define.
849         * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): New.
850         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
851
852 2008-08-28  Chris Fairles  <chris.fairles@gmail.com>
853
854         * gthr-posix.h (__gthread_create,  __gthread_join, __gthread_detach,
855         __gthread_mutex_timed_lock, __gthread_recursive_mutex_timed_lock,
856         __gthread_cond_signal, __gthread_cond_timedwait,
857         __gthread_cond_timedwait_recursive): New functions.
858         * gthr-posix.c (pthread_mutex_timedlock, pthread_cond_timedwait):
859         Likewise.
860         * gthr.h: Comment on defining __GTHREADS_CXX0X macro in conforming
861         thread interfaces.
862
863 2008-08-28  Richard Guenther  <rguenther@suse.de>
864
865         PR middle-end/37005
866         * fold-const.c (maybe_canonicalize_comparison_1): Require
867         undefined overflow only for canonicalizing A +- CST cmp CST.
868         Make sure to not generate new constants that are not inside
869         their TYPE_MIN/MAX_VALUE range.
870         (maybe_canonicalize_comparison): Remove undefined overflow
871         checking from here.
872         (fold_binary): Remove now duplicate folding.
873
874 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
875
876         * c-typeck.c (convert_for_assignment): Adjust WARN_FOR_ASSIGNMENT
877         use not updated in the last change.
878
879 2008-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
880
881         * config/sh/sh.h (REG_CLASS_CONTENTS): Drop fr32 from FPUL_REGS.
882         (IRA_COVER_CLASSES): Add FPUL_REGS.
883
884 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
885
886         PR 37217
887         * c-common.c (conversion_warning): Check for null operands.
888
889 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
890
891         PR c/31673
892         * c-decl.c (check_for_loop_decls): Improve error message. Give
893         hint.
894
895 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
896
897         PR c/37186
898         * c-typeck.c (WARN_FOR_ASSIGNMENT): Add OPT parameter.
899         (convert_for_assignment): Pass corrent OPT_W* parameter to
900         WARN_FOR_ASSIGNMENT.
901
902 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
903
904         PR c++/35321
905         * c-common.c (fold_offsetof_1): Handle TARGET_EXPR like CALL_EXPR.
906
907 2008-08-27  Paul Brook  <paul@codesourcery.com>
908
909         * config.gcc: Loosen checks for arm uclinux eabi targets.
910
911 2008-08-27  Paul Brook  <paul@codesourcery.com>
912
913         * config/arm/t-arm-coff (LIB1ASMFUNCS): Add missing undescrore on
914         _clzsi2.
915         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
916
917 2008-08-26  Douglas Gregor  <doug.gregor@gmail.com>
918
919         * c-common.c (do_switch_warnings): Look through the CONST_DECLs in
920         the enumerators of an ENUMERAL_TYPE.
921         * dbxout.c (dbxout_type): Ditto.
922
923 2008-08-26  Andrew Pinski  <andrew_pinski@playstation.sony.com>
924
925         PR rtl-opt/37219
926         * fwprop.c (fwprop): Check that the loop_father is the outer loop.
927         (fwprop_addr): Check that the loop_father is not the outer loop.
928
929 2008-08-26  Paul Brook  <paul@codesourcery.com>
930
931         * config/arm/vfp.md: Document fmul{s,d} and fmac{s,d} types.
932         Remove documentation entry for fmul type.
933         Use fmuls to annotate single-precision multiplication patterns,
934         fmuld to annotate double-precision multiplication patterns,
935         fmacs to annotate single-precision multiply-accumulate patterns
936         and fmacd to annotate double-precision multiply-accumulate patterns.
937         * config/arm/vfp11.md: Update reservations accordingly.
938         * config/arm/arm.md: Note that certain values of the "type"
939         attribute are documented in vfp.md.
940         * config/arm/arm1020e.md: Remove out of date duplicate comment.
941         (v10_cvt): Use new fmul types.
942
943 2008-08-26  Paul Brook   <paul@codesourcery.com>
944
945         * config/arm/vfp.md: Move pipeline description for VFP11 to...
946         * config/arm/vfp11.md: ...here.  New.
947         * config/arm/arm.md: Include vfp11.md.
948
949 2008-08-26  Hans-Peter Nilsson  <hp@axis.com>
950
951         * opts.c (decode_options) [!IRA_COVER_CLASSES]: Add missing
952         parameter to inform call.
953
954 2008-08-26  Jeff Law  <law@redhat.com>
955
956         * mn10300.md (movqi, movhi): Split i->d*a case into two cases to
957         avoid the possibility of getting DATA_OR_ADDRESS_REGS as the
958         preferred class when copying a constant into a partial word register.
959
960 2008-08-26  Ben Elliston  <bje@au.ibm.com>
961
962         * rtlanal.c: Fix uses of "it's" with "its" where appropriate.
963         * cp/typeck.c: Likewise.
964         * cp/tree.c: Likewise.
965         * gimple-low.c: Likewise.
966         * jump.c: Likewise.
967
968 2008-08-26  Vladimir Makarov  <vmakarov@redhat.com>
969
970         * ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
971         ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.
972
973         * doc/passes.texi: Describe IRA.
974
975         * doc/tm.texi (IRA_COVER_CLASSES,
976         IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.
977
978         * doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
979         (-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
980         -fira-propagate-cost, -fno-ira-share-save-slots,
981         -fno-ira-share-spill-slots, -fira-verbose): Describe new options.
982
983         * flags.h (ira_algorithm): New enumeration.
984         (flag_ira_algorithm, flag_ira_verbose): New external variable
985         declarations.
986
987         * postreload.c (gate_handle_postreload): Don't do post reload
988         optimizations unless the reload is completed.
989
990         * reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
991         IRA.
992
993         * tree-pass.h (pass_ira): New external variable declaration.
994
995         * reload.h: Add 2008 to the Copyright.
996     
997         * cfgloopanal.c: Include params.h.
998         (estimate_reg_pressure_cost): Decrease cost for IRA optimization
999         mode.
1000     
1001         * params.h (IRA_MAX_LOOPS_NUM): New macro.
1002
1003         * toplev.c (ira.h): New include.
1004         (flag_ira_algorithm, flag_ira_verbose): New external variables.
1005         (backend_init_target): Call ira_init.
1006         (backend_init): Call ira_init_once.
1007         (finalize): Call finish_ira_once.
1008
1009         * toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
1010         flag_ira_share_save_slots, flag_ira_share_spill_slots): New
1011         external variables.
1012
1013         * regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
1014         may_move_out_cost): New external variable declarations.
1015         (move_table): New typedef.
1016     
1017         * caller-save.c: Include headers output.h and ira.h.
1018         (no_caller_save_reg_set): New global variable.
1019         (save_slots_num, save_slots): New variables.
1020         (reg_save_code, reg_restore_code, add_stored_regs): Add
1021         prototypes.
1022         (init_caller_save): Set up no_caller_save_reg_set.
1023         (init_save_areas): Reset save_slots_num.
1024         (saved_hard_reg): New structure.
1025         (hard_reg_map, saved_regs_num, all_saved_regs): New variables.
1026         (initiate_saved_hard_regs, new_saved_hard_reg,
1027         finish_saved_hard_regs, saved_hard_reg_compare_func): New
1028         functions.
1029         (setup_save_areas): Add code for sharing stack slots.
1030         (all_blocks): New variable.
1031         (save_call_clobbered_regs): Process pseudo-register too.
1032         (mark_set_regs): Process pseudo-register too.
1033         (insert_one_insn): Put the insn after bb note in a empty basic
1034         block.  Add insn check.
1035     
1036         * global.c (eliminable_regset): Make it external.
1037         (mark_elimination): Use DF_LR_IN for IRA.
1038         (pseudo_for_reload_consideration_p): New.
1039         (build_insn_chain): Make it external.  Don't ignore spilled
1040         pseudos for IRA.  Use pseudo_for_reload_consideration_p.
1041         (gate_handle_global_alloc): New function.
1042         (pass_global_alloc): Add the gate function.
1043
1044         * opts.c (decode_options): Set up flag_ira.  Print the warning for
1045         -fira.
1046         (common_handle_option): Process -fira-algorithm and -fira-verbose.
1047
1048         * timevar.def (TV_IRA, TV_RELOAD): New passes.
1049
1050         * regmove.c (regmove_optimize): Don't do replacement of output for
1051         IRA.
1052
1053         * hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
1054         New external variable declarations.
1055
1056         * local-alloc.c (update_equiv_regs): Make it external.  Return
1057         true if jump label rebuilding should be done.  Rescan new_insn for
1058         notes.
1059         (gate_handle_local_alloc): New function.
1060         (pass_local_alloc): Add the gate function.
1061
1062         * alias.c (value_addr_p, stack_addr_p): New functions.
1063         (nonoverlapping_memrefs_p): Use them for IRA.
1064
1065         * common.opt (fira, fira-algorithm, fira-coalesce,
1066         fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
1067         fira-verbose): New options.
1068
1069         * regclass.c (reg_class_subclasses, contains_reg_of_mode,
1070         move_cost, may_move_in_cost, may_move_out_cost): Make the
1071         variables external.
1072         (move_table): Remove typedef.
1073         (init_move_cost): Make it external.
1074         (allocate_reg_info, resize_reg_info, setup_reg_classes): New
1075         functions.
1076
1077         * rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
1078         setup_reg_classes): New function prototypes.
1079         (eliminable_regset): New external variable declaration.
1080         (build_insn_chain, update_equiv_regs): New function prototypes.
1081     
1082         * Makefile.in (IRA_INT_H): New definition.
1083         (OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
1084         ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
1085         (reload1.o, toplev.o): Add dependence on ira.h.
1086         (cfgloopanal.o): Add PARAMS_H.
1087         (caller-save.o): Add dependence on output.h and ira.h.
1088         (ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
1089         ira-emit.o, ira-lives.o): New entries.
1090
1091         * passes.c (pass_ira): New pass.
1092
1093         * params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.
1094
1095         * reload1.c (ira.h): Include the header.
1096         (changed_allocation_pseudos): New bitmap.
1097         (init_reload): Initiate the bitmap.
1098         (compute_use_by_pseudos): Permits spilled registers in FROM.
1099         (temp_pseudo_reg_arr): New variable.
1100         (reload): Allocate and free temp_pseudo_reg_arr.  Sort pseudos for
1101         IRA.  Call alter_reg with the additional parameter.  Don't clear
1102         spilled_pseudos for IRA.  Restore original insn chain for IRA.
1103         Clear changed_allocation_pseudos at the end of reload.
1104         (calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
1105         (hard_regno_to_pseudo_regno): New variable.
1106         (count_pseudo): Check spilled pseudos.  Set up
1107         hard_regno_to_pseudo_regno.
1108         (count_spilled_pseudo): Check spilled pseudos. Update
1109         hard_regno_to_pseudo_regno.
1110         (find_reg): Use better_spill_reload_regno_p.  Check
1111         hard_regno_to_pseudo_regno.
1112         (alter_reg): Set up spilled_pseudos.  Add a new parameter.  Add
1113         code for IRA.
1114         (eliminate_regs_1): Use additional parameter for alter_reg.
1115         (finish_spills): Set up pseudo_previous_regs only for spilled
1116         pseudos.  Call reassign_pseudos once for all spilled pseudos, pass
1117         more arguments.  Don't clear live_throughout and dead_or_set for
1118         spilled pseudos.  Use additional parameter for alter_reg.  Call
1119         mark_allocation_change.  Set up changed_allocation_pseudos.
1120         Remove sanity check.
1121         (emit_input_reload_insns, delete_output_reload): Use additional
1122         parameter for alter_reg.  Call mark_allocation_change.
1123         (substitute, gen_reload_chain_without_interm_reg_p): New
1124         functions.
1125         (reloads_conflict): Use gen_reload_chain_without_interm_reg_p.
1126     
1127         * testsuite/gcc.dg/20080410-1.c: New file.
1128         
1129         * config/s390/s390.h (IRA_COVER_CLASSES,
1130         IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.
1131
1132         * config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.
1133
1134         * config/i386/i386.h (IRA_COVER_CLASSES): Ditto.
1135
1136         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
1137
1138         * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
1139
1140         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
1141     
1142         * config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.
1143     
1144         2008-08-24  Jeff Law  <law@redhat.com>
1145         * ira.c (setup_reg_class_intersect_union): Prefer smallest class
1146         when ignoring unavailable registers.
1147
1148         2008-08-24  Jeff Law  <law@redhat.com>
1149         * ira-color.c (coalesced_pseudo_reg_slot_compare): Check
1150         FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
1151         * ira.c (setup_eliminable_regset): Check stack_realign_needed.
1152         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.
1153
1154         2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com>
1155         * ira-build.c (allocno_range_compare_func): Stabilize sort.
1156
1157         2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com>
1158         * config/avr/avr.h (IRA_COVER_CLASSES): New macro.
1159         * reload1.c (find_reg): Process registers in register allocation order.
1160
1161         2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
1162         * toplev.c (backend_init_target): Move ira_init call from
1163         here...
1164         (lang_dependent_init_target): ...to here.
1165
1166         2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
1167         * ira.c (setup_class_subset_and_memory_move_costs): Don't
1168         calculate memory move costs for NO_REGS.
1169
1170         2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org>
1171         * ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
1172         STACK_REGS is defined.
1173
1174         2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
1175         * config/spu/spu.h (IRA_COVER_CLASSES): New macro.
1176
1177         2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com>
1178         * config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.
1179
1180         2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org>
1181         * config/sh/sh.h (IRA_COVER_CLASSES): Define.
1182         * config/sh/sh.md (movsicc_true+3): Check if emit returns a
1183         barrier.
1184
1185 2008-08-26  Victor Kaplansky  <victork@il.ibm.com>
1186             Dorit Nuzman  <dorit@il.ibm.com>
1187
1188         * gcc/config/spu/spu.md (vec_extract_evenv4si,
1189         vec_extract_evenv4sf, vec_extract_evenv8hi,
1190         vec_extract_evenv16qi, vec_extract_oddv4si,
1191         vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
1192         vec_interleave_highv4sf, vec_interleave_lowv4sf,
1193         vec_interleave_highv4si, vec_interleave_lowv4si,
1194         vec_interleave_highv8hi, vec_interleave_lowv8hi,
1195         vec_interleave_highv16qi, vec_interleave_lowv16qi,
1196         vec_pack_trunc_v8hi, vec_pack_trunc_v4si): Implement.S
1197
1198 2008-08-25  Janis Johnson  <janis187@us.ibm.com>
1199
1200         PR target/36756
1201         * config/rs6000/rs6000.c (optimization_options): Don't default to
1202         section anchors without toplevel reorder.
1203
1204 2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1205
1206         * config/spu/spu_mfcio.h (mfc_begin_critical_section): New function.
1207         (mfc_end_critical_section): Likewise.
1208
1209 2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1210
1211         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Propagate
1212         all type qualifiers from element type to vector type.
1213
1214 2008-08-25  David Daney  <ddaney@avtrex.com>
1215
1216         * config/mips/mips.md (immediate_insn): Move up in file, fix
1217         comment typo, reformat.
1218         (fetchop_bit, atomic_hiqi_op memory_barrier,
1219         sync_compare_and_swap<mode>, compare_and_swap_12, sync_add<mode>,
1220         sync_<optab><mode>, sync_<optab>_12, sync_old_<optab><mode>,
1221         sync_old_<optab>_12, sync_new_<optab><mode>, sync_new_<optab>_12,
1222         sync_nand<mode>, sync_nand_12, sync_old_nand<mode>,
1223         sync_old_nand_12, sync_new_nand<mode>, sync_new_nand_12,
1224         sync_sub<mode>, sync_old_add<mode>, sync_old_sub<mode>,
1225         sync_new_add<mode>, sync_new_sub<mode>, sync_<optab><mode>,
1226         sync_old_<optab><mode>, sync_new_<optab><mode>, sync_nand<mode>,
1227         sync_old_nand<mode>, sync_new_nand<mode>,
1228         sync_lock_test_and_set<mode>, sync_lock_test_and_set<mode>,
1229         test_and_set_12): Moved to sync.md.
1230         (sync.md): Include.
1231         * config/mips/sync.md: New file.
1232
1233 2008-08-25  Richard Henderson  <rth@redhat.com>
1234
1235         * dwarf2out.c (def_cfa_1): Don't scale by DWARF_CIE_DATA_ALIGNMENT.
1236         (regsave): Likewise.
1237         (lookup_cfa_1): Don't rescale by DWARF_CIE_DATA_ALIGNMENT.
1238         (output_cfi_directive): Likewise.
1239         (div_data_align): New.
1240         (output_cfi): Use it.
1241
1242 2008-08-24  Adam Nemet  <anemet@caviumnetworks.com>
1243
1244         * config.gcc (mips64*-*-linux*): Handle mips64octeon*-*-linux*.
1245         * config/mips/mips.h (enum processor_type): Add PROCESSOR_OCTEON.
1246         (TARGET_OCTEON): New macro.
1247         (TARGET_CPU_CPP_BUILTINS): Define __OCTEON__ for Octeon.
1248         (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC): Handle -march=octeon.
1249         (ISA_HAS_POP): New macro.
1250         * config/mips/driver-native.c (host_detect_local_cpu): Handle
1251         Octeon.
1252         * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
1253         Handle Octeon.
1254         * config/mips/mips.md (cpu): Add octeon.
1255         (type): Add pop attribute value.
1256         (popcount<mode>2): New pattern.
1257         * doc/invoke.texi (-march=@var{arch}): Add octeon.
1258
1259 2008-08-24  Jan Hubicka  <jh@suse.cz>
1260
1261         * doc/invoke.texi (-fipa-cp-clone): New option.
1262         (-fipa-cp): Update docs.
1263         (--param ipcp-unit-growth):New.
1264         * ipa-cp.c: Include fibheap.h, params.h
1265         (ipcp_initialize_node_lattices): When not cloning, all externally
1266         visible functions are bottom.
1267         (ipcp_need_redirect_p): Accept clones.
1268         (ipcp_insert_stage): Use cost driven heuristics.
1269         (max_count, dead_nodes): New static vars.
1270         (ipcp_need_original_clone_p, ipcp_estimate_cloning_cost,
1271         ipcp_const_param_count): New functions.
1272         * common.opt (ipa-cp-clone): New command line option.
1273         * params.def (ipcp-unit-growth): New.
1274
1275 2008-08-24  Jan Hubicka  <jh@suse.cz>
1276
1277         * tree-inline.c (tree_function_versioning): Look harder
1278         for referenced vars.
1279
1280 2008-08-24  Razya Ladelsky  <razya@il.ibm.com>
1281
1282         PR tree-optimization/37185
1283         * matrix-reorg.c (transform_access_sites): Update changed stmt.
1284
1285 2008-08-23  Jan Hubicka  <jh@suse.cz>
1286
1287         * ipa-cp.c (ipcp_analyze_node): New function.
1288         (ipcp_update_cloned_node): Use it.
1289         (ipcp_init_stage): Likewise.
1290         * ipa-inline.c (function_insertion_hook_holder): New static var.
1291         (analyze_function): Break out from ....
1292         (inline_generate_summary): Here; register insertion hook.
1293         (cgraph_decide_inlining): Remove hook.
1294         (add_new_function): New function.
1295
1296 2008-08-23  Jan Hubicka  <jh@suse.cz>
1297
1298         * opts.c (decode_options): Revert accidental change enabling ipa-cp.
1299
1300 2008-08-23  Jan Hubicka  <jh@suse.cz>
1301
1302         * ipa-cp.c (constant_val_insert): Remove.
1303         (ipcp_propagate_one_const): Remove.
1304         (ipcp_create_replace_map): Always insert replacements to the map.
1305         (ipcp_insert_stage): Do not try to insert statements by hand.
1306         * tree-inline.c (insert_init_stmt): Break out from ...
1307         (setup_one_parameter): ... here; allow NULL BB pointer.
1308         (tree_function_versioning): Use setup_one_parameter to process
1309         replacement map.
1310
1311 2008-08-23  Jan Hubicka  <jh@suse.cz>
1312
1313         * tree.c (decl_address_ip_invariant_p): New function.
1314         * tree.h (decl_address_ip_invariant_p): Declare.
1315         * gimple.c (strip_invariant_refs): Break out from ...
1316         (is_gimple_invariant_address): ... here
1317         (is_gimple_ip_invariant_address): New function.
1318         (is_gimple_ip_invariant): New function.
1319         * gimple.h (is_gimple_ip_invariant_address, is_gimple_ip_invariant):
1320         Declare.
1321
1322         * ipa-cp.c (ipcp_lat_is_const): Remove handling of IPA_CONST_VALUE_REF.
1323         (ipcp_lat_is_insertable): All constants are insertable.
1324         (ipcp_lattice_from_jfunc, ipcp_print_all_lattices): Remove handling of
1325         IPA_CONST_VALUE_REF.
1326         (ipcp_initialize_node_lattices): Propagate all types of operands.
1327         (build_const_val): Do not handle IPA_CONST_VALUE_REF.
1328         (ipcp_create_replace_map): Reformat.
1329         (ipcp_need_redirect_p): Simplify.
1330         (ipcp_insert_stage): Check that argument is used before clonning.
1331         * ipa-prop.c (ipa_print_node_jump_functions): Do not handle IPA_CONST_REF.
1332         (compute_scalar_jump_functions): Simplify using is_gimple_ip_invariat.
1333         (determine_cst_member_ptr): Keep wrapping ADDR_EXPR of members.
1334         (update_call_notes_after_inlining): Expect ADDR_EXPR in operand.
1335         * ipa-prop.h (jump_func_type): Remove IPA_CONST_REF.
1336         (jump_func_type): Remove IPA_CONST_VALUE_REF.
1337         * tree-inline.c (tree_function_versioning): Add variables referenced by
1338         replacing trees.
1339
1340 2008-08-23  Jan Hubicka  <jh@suse.cz>
1341
1342         PR target/37094
1343         * i386.c (standard_80387_constant_p): Use optimize_size.
1344
1345 2008-08-23  Ira Rosen  <irar@il.ibm.com>
1346
1347         PR tree-optimization/37161
1348         * tree-vectorizer.h (vect_get_smallest_scalar_type): Declare.
1349         * tree-vect-analyze.c (vect_get_smallest_scalar_type): New function.
1350         (vect_determine_vectorization_factor): Move the scalar type
1351         retrieval to vect_get_smallest_scalar_type.
1352         (vect_build_slp_tree): Call vect_get_smallest_scalar_type to get
1353         scalar type. Remove redundant computation.
1354         * tree-vect-transform.c (vect_get_constant_vectors): Add argument.
1355         (vect_get_slp_defs): Take the type of RHS into account if
1356         necessary by calling vect_get_smallest_scalar_type. Call
1357         vect_get_constant_vectors with additional argument.
1358
1359 2008-08-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1360
1361         PR 35648
1362         * doc/invoke.texi (Wwrite-strings): Clarify description.
1363         
1364 2008-08-23  Ira Rosen  <irar@il.ibm.com>
1365
1366         PR tree-optimization/37174
1367         * tree-vect-analyze.c (vect_get_and_check_slp_defs): Check that the
1368         def stmt is a part of the loop before accessing its stmt_vec_info.
1369
1370 2008-08-22  Anatoly Sokolov  <aesok@post.ru>
1371
1372         PR target/11259
1373         * config/avr/avr.md (UNSPEC_SWAP): New constants.
1374         (*swap): New insn pattern.
1375         (*ashlqi3): Rename from ashlqi3 insn pattern.
1376         (ashlqi3): New expanders.
1377         (*lshrqi3): Rename from lshrqi3 insn pattern.
1378         (lshrqi3): New expanders.       
1379         (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, lshrqi3_const4,
1380         lshrqi3_const5, lshrqi3_const6): New splitters.
1381         (andi, ashlqi3_l_const4, ashlqi3_l_const5, ashlqi3_l_const6,
1382         lshrqi3_l_const4, lshrqi3_l_const5, lshrqi3_l_const6): Define
1383         peephole2 patterns.
1384
1385 2008-08-22  Richard Guenther  <rguenther@suse.de>
1386
1387         PR tree-optimization/37078
1388         * tree-vrp.c (extract_range_from_unary_expr): Avoid generating
1389         [+INF, +INF] ranges.
1390
1391 2008-08-22  Richard Guenther  <rguenther@suse.de>
1392
1393         PR tree-optimization/37143
1394         * tree-vect-transform.c (vect_create_cond_for_align_checks): Build
1395         a conversion statement instead of a copy.
1396
1397 2008-08-22  Uros Bizjak  <ubizjak@gmail.com>
1398
1399         PR target/37184
1400         * config/i386/i386.c (ix86_match_ccmode): Handle CCAmode,
1401         CCCmode, CCOmode and CCSmode destination modes.
1402
1403         PR target/37191
1404         * config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers
1405         from different units in a single alternative.
1406         (*vec_extractv2sf_1): Ditto.
1407         (*vec_extractv2si_0): Ditto.
1408         (*vec_extractv2si_1): Ditto.
1409         * config/i386/sse.md (sse2_storehpd): Ditto.
1410         (sse2_storelpd): Ditto.
1411         (sse2_loadhpd): Ditto.
1412         (sse2_loadlpd): Ditto.
1413
1414         PR target/37197
1415         * config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints.
1416         (popcountsi2): Ditto.
1417         (clzdi2_abm): Ditto.
1418         (popcountdi2): Ditto.
1419         (clzhi2_abm): Ditto.
1420         (popcounthi2): Ditto.
1421
1422 2008-08-22  Richard Guenther  <rguenther@suse.de>
1423
1424         PR middle-end/36548
1425         PR middle-end/37125
1426         * fold-const.c (extract_muldiv_1): Optimize (X * C1) % C2 only
1427         if the multiplication does not overflow.
1428
1429 2008-08-21  Nathan Sidwell  <nathan@codesourcery.com>
1430
1431         * c-ppoutput.c (init_pp_output): Initialize src_line to 1.
1432
1433 2008-08-21  Richard Henderson  <rth@redhat.com>
1434
1435         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Remove
1436         spurrious comma from test.
1437         * configure: Rebuild.
1438
1439 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1440
1441         PR 30457
1442         * builtins.c (fold_builtin_next_arg): Add warning about undefined
1443         behaviour.
1444         
1445 2008-08-21  Aldy Hernandez  <aldyh@redhat.com>
1446
1447         * c-tree.h (grokfield): New argument.
1448         * c-decl.c (grokfield): Handle new location argument.
1449         * c-parser.c (c_parser_struct_declaration): Pass location to
1450         grokfield.
1451
1452 2008-08-21  Richard Guenther  <rguenther@suse.de>
1453
1454         * tree-ssa-ccp.c (ccp_fold): Fold VIEW_CONVERT_EXPRs of constants.
1455
1456 2008-08-21  Jan Hubicka  <jh@suse.cz>
1457
1458         * cgraph.c (first_cgraph_function_insertion_hook): New variable.
1459         (cgraph_add_function_insertion_hook,
1460         cgraph_remove_function_insertion_hook,
1461         cgraph_call_function_insertion_hooks): New functions.
1462         * cgraph.h (cgraph_add_function_insertion_hook,
1463         cgraph_remove_function_insertion_hook,
1464         cgraph_call_function_insertion_hooks): Declare.
1465         * ipa-reference.c (function_insertion_hook_holder): New variable.
1466         (check_operand, look_for_address_of): When checking late, do not care
1467         about module bitmaps.
1468         (add_new_function): New function.
1469         (generate_summary): Register hooks; zero module bitmaps.
1470         (propagate): Unregister hooks.
1471         * ipa-pure-const.c (function_insertion_hook_holder): New variable.
1472         (add_new_function): New function.
1473         (generate_summary): Register hook.
1474         (propagate): Remove hook.
1475
1476         * ipa-cp.c (ipcp_need_redirect_p): Fix to not be constant 0.
1477
1478         * tree-pass.h (pass_ipa_cp): Make ipa_opt_pass.
1479         * ipa-cp.c (ipcp_update_cloned_node): New function.
1480         (build_const_val): Handle functions correctly; bring type logic
1481         into sync with tree-inline.c
1482         (ipcp_init_stage):  Take care of computing stuff needed by
1483         indirect inlining; update clones.
1484         (ipcp_generate_summary): Break out of ipcp_driver.
1485         (ipcp_driver): Do only execution and transformation.
1486         (pass_ipa_cp): Make IPA_PASS.
1487         * tree-ssa-ccp.c (fold_stmt_r): Check type before trying to fold
1488         offset to address.
1489         * ipa-inline.c (inline_indirect_intraprocedural_analysis): When doing
1490         ipcp, some info is already available.
1491         * ipa-prop.c (ipa_count_arguments): Grow edge lists as needed.
1492         * tree-inline.c (remap_ssa_name): Unshare expression.
1493
1494 2008-08-21  Richard Guenther  <rguenther@suse.de>
1495
1496         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
1497         a PHI ask VN if it is already available.
1498         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
1499         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
1500
1501 2008-08-21  Richard Guenther  <rguenther@suse.de>
1502
1503         PR middle-end/36817
1504         * tree-chrec.c (chrec_apply): Always call chrec_fold_plus which
1505         makes sure to produce a result of the correct type.
1506
1507 2008-08-21  Jan Hubicka  <jh@suse.cz>
1508         Backport from LTO branch:
1509
1510         2008-05-05  Kenneth Zadeck <zadeck@naturalbridge.com>
1511                     Jan Hubicka  <jh@suse.cz>
1512         
1513         * ipa-pure-const.c
1514         (init_state, finish_state, set_function_state, generate_summary):
1515         New functions.
1516         (scan_stmt): Renamed from scan_function.  Changed to keep state in
1517         local static vars rather than cgraph aux field.
1518         (propagate): Renamed from static_execute. Changed to keep state in
1519         local static vars rather than cgraph aux field.
1520         (pass_ipa_pure_const): Changed from SIMPLE_IPA_PASS to IPA_PASS.
1521         * tree-pass.h (pass_ipa_pure_const): Turn into IPA_PASS.
1522
1523         2008-07-15  Kenneth Zadeck <zadeck@naturalbridge.com>
1524
1525         * tree-pass.h (pass_ipa_reference): Make into ipa_opt_pass.
1526         * ipa-reference.c (init_function_info, generate_summary, 
1527         propagate): New functions.
1528         (analyze_function):  Call init_function_info.
1529         (static_execute): Stripped into generate_summary and propagate.
1530         (pass_ipa_reference): Made into ipa_opt_pass.
1531
1532 2008-08-21  Richard Guenther  <rguenther@suse.de>
1533
1534         PR tree-optimization/37181
1535         * tree-vrp.c (extract_range_from_binary_expr): Check for NULL
1536         folding result.
1537         (extract_range_from_unary_expr): Likewise.
1538
1539 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1540
1541         * diagnostic.c (pedwarn_at): Rename as pedwarn.
1542         (pedwarn): Delete.
1543         * toplev.h (pedwarn_at): Likewise.
1544         * builtins.c: Update all calls to pedwarn.
1545         * c-lex.c: Likewise.
1546         * toplev.c: Likewise.
1547         * c-tree.h: Likewise.
1548         * c-decl.c: Likewise.
1549         * c-errors.c: Likewise.
1550         * c-typeck.c: Likewise.
1551         * c-common.c: Likewise.
1552         * c-parser.c: Likewise.
1553
1554 2008-08-20  Joseph Myers  <joseph@codesourcery.com>
1555
1556         PR target/31070
1557         * config/sparc/sparc.c (function_arg_slotno): Handle structure
1558         with MODE_VECTOR_INT mode.
1559
1560 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1561
1562         PR middle-end/179
1563         * tree-ssa.c (warn_uninit): Do not warn for variables that can be
1564         initialized outside the current module.
1565         (warn_uninitialized_var): Ignore left-hand side when walking the
1566         trees. Ignore address expressions. Examine VUSE operands in gimple
1567         statements with a variable declaration on the right-hand side.
1568
1569 2008-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
1570
1571         PR bootstrap/37155
1572         * rtlanal.c (subreg_offset_representable_p): Revert last change.
1573
1574 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1575
1576         PR 35701
1577         * c-common.c (conversion_warning): Do not warn if applying bit-and
1578         operator to unsigned constant that fits in the target type.
1579
1580 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1581
1582         PR c++/35602
1583         * c-common.c (conversion_warning): Do not warn for artificial
1584         expressions.
1585
1586 2008-08-20  Richard Guenther  <rguenther@suse.de>
1587
1588         * tree-vrp.c (op_with_constant_singleton_value_range): New function.
1589         (extract_range_from_binary_expr): Fall back to constant propagation.
1590         (extract_range_from_unary_expr): Likewise.
1591
1592 2008-08-20  Richard Guenther  <rguenther@suse.de>
1593
1594         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Do not mess
1595         with TREE_THIS_VOLATILE on shared nodes.
1596         (fold_stmt_r): Likewise.
1597
1598 2008-08-20  Jakub Jelinek  <jakub@redhat.com>
1599
1600         PR c/37171
1601         * c-parser.c (c_parser_attributes): For keywords use canonical
1602         spelling for attr_name.
1603
1604 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1605
1606         * value-prof.c (check_counter): Revert wrong call to error.
1607         
1608 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1609
1610         * profile.c: Update calls to inform.
1611         * value-prof.c: Update calls to inform.
1612         
1613 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1614
1615         * diagnostic.c (inform): Add an explicit location_t parameter.
1616         * toplev.h (inform): Update declaration.
1617         * builtins.c: Update all calls to inform.
1618         * c-common.c: Likewise.
1619         * c-decl.c: Likewise.
1620         * c-opts.c: Likewise.
1621         * c-pch.c: Likewise.
1622         * c-pragma.c: Likewise.
1623         * c-typeck.c: Likewise.
1624         * coverage.c: Likewise.
1625         * opts.c: Likewise.
1626         * toplev.c: Likewise.
1627         * tree-cfg.c: Likewise.
1628         * tree-ssa.c: Likewise.
1629
1630 2008-08-20  H.J. Lu  <hongjiu.lu@intel.com>
1631
1632         PR target/37169
1633         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): In
1634         V2DI mode, for SSE4.1, use movq instead of vector set if the
1635         second element is zero and inter-unit moves are OK.
1636
1637 2008-08-20  Richard Guenther  <rguenther@suse.de>
1638
1639         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): More
1640         properly handle conversion/copy chains after tuplification.
1641
1642 2008-08-20  Richard Guenther  <rguenther@suse.de>
1643
1644         * passes.c (init_optimization_passes): Move the second
1645         forwprop pass before alias computation.  Remove the second
1646         DCE pass.  Remove the first dominator and phi copy/const
1647         prop passes.
1648
1649 2008-08-20  Nick Clifton  <nickc@redhat.com>
1650
1651         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Always test for assembler
1652         support of this feature.  Do not assume that a sufficiently new
1653         assembler will support the feature regardless of the target type.
1654         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
1655         * configure: Regenerate.
1656
1657 2008-08-20  Richard Guenther  <rguenther@suse.de>
1658
1659         * tree-vrp.c (found_in_subgraph): Remove.
1660         (live): New global static.
1661         (live_on_edge): New function.
1662         (blocks_visited): Remove.
1663         (register_edge_assert_for_2): Use live_on_edge.
1664         (find_conditional_asserts): Remove code dealing with
1665         found_in_subgraph.  Do not walk the CFG.
1666         (find_switch_asserts): Likewise.
1667         (find_assert_locations_1): Renamed from find_assert_locations.
1668         Move finding assert locations for conditional and switch
1669         statements first.  Update live bitmap.  Do not walk the CFG.
1670         (find_assert_locations): New function.
1671         (insert_range_assertions): Remove entry of CFG walk.
1672         Adjust call to find_assert_locations.
1673         * tree-ssa-pre.c (do_regular_insertion): Ignore critical edges
1674         that only can appear because of fake exit edges but assert we
1675         never try to insert on those.
1676         (fini_pre): Do not remove fake exit edges here...
1677         (execute_pre): ...but here, before committing edge inserts.
1678
1679 2008-08-19  Richard Guenther  <rguenther@suse.de>
1680
1681         * passes.c (init_optimization_passes): Exchange store-ccp
1682         with a ccp pass.
1683
1684 2008-08-19  Rafael Espindola  <espindola@google.com>
1685
1686         * varasm.c (weak_decls): Move earlier in the file.
1687         (assemble_external): Add weak decls to the weak_decls list.
1688         (declare_weak): Don't add decls to the weak_decls list.
1689
1690 2008-08-19  H.J. Lu  <hongjiu.lu@intel.com>
1691
1692         PR target/37157
1693         * config/i386/sse.md (sse2_punpckhqdq, sse2_punpcklqdq): Moved
1694         before (sse2_shufpd_<mode>).
1695
1696 2008-08-19  Jakub Jelinek  <jakub@redhat.com>
1697
1698         PR debug/37156
1699         * pretty-print.c (pp_base_format): Deal with recursive BLOCK trees.
1700         * tree.c (block_nonartificial_location): Likewise.
1701
1702 2008-08-19  Richard Guenther  <rguenther@suse.de>
1703
1704         PR tree-optimization/35972
1705         PR tree-optimization/23094
1706         * tree-ssa-sccvn.h (vn_reference_lookup_pieces): Add maywalk
1707         parameter.
1708         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
1709         handle MISALIGNED_INDIRECT_REF.
1710         (get_ref_from_reference_ops): New helper.
1711         (vn_reference_lookup_pieces): Walk the use-def chain using the
1712         alias-oracle if requested.
1713         * tree-ssa-pre.c (phi_translate_1): Do reference lookup with
1714         walking the use-def chain.
1715         (compute_avail): But not here.
1716         (create_component_ref_by_pieces_1): Properly handle
1717         MISALIGNED_INDIRECT_REF.
1718         (do_regular_insertion): Handle fully redundant
1719         expressions after PHI-translation also for SSA_NAME values, not
1720         only constants.  Correctly use edoubleprime for that.
1721
1722 2008-08-19  Ira Rosen  <irar@il.ibm.com>
1723
1724         * tree-vectorizer.c (supportable_widening_operation): Support
1725         multi-step conversion, return the number of steps in such conversion
1726         and the required intermediate types.
1727         (supportable_narrowing_operation): Likewise.
1728         * tree-vectorizer.h (vect_pow2): New function.
1729         (supportable_widening_operation): Change argument types.
1730         (supportable_narrowing_operation): Likewise.
1731         (vectorizable_type_promotion): Add an argument.
1732         (vectorizable_type_demotion): Likewise.
1733         * tree-vect-analyze.c (vect_analyze_operations): Call 
1734         vectorizable_type_promotion and vectorizable_type_demotion with
1735         additional argument.
1736         (vect_get_and_check_slp_defs): Detect patterns.
1737         (vect_build_slp_tree): Add an argument, don't fail in case of multiple
1738         types. 
1739         (vect_analyze_slp_instance): Don't fail in case of multiple types. Call
1740         vect_build_slp_tree with correct arguments. Calculate unrolling factor
1741         according to the smallest type in the loop.
1742         (vect_detect_hybrid_slp_stmts): Include statements from patterns.
1743         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call 
1744         supportable_widening_operation with correct arguments. 
1745         * tree-vect-transform.c (vect_get_slp_defs): Allocate output vector 
1746         operands lists according to the number of vector statements in left
1747         or right node, if exists.
1748         (vect_gen_widened_results_half): Remove unused argument.
1749         (vectorizable_conversion): Call supportable_widening_operation, 
1750         supportable_narrowing_operation, and vect_gen_widened_results_half
1751         with correct arguments. 
1752         (vectorizable_assignment): Change documentation, support multiple
1753         types in SLP. 
1754         (vectorizable_operation): Likewise.
1755         (vect_get_loop_based_defs): New function.
1756         (vect_create_vectorized_demotion_stmts): Likewise.
1757         (vectorizable_type_demotion): Support loop-aware SLP and general
1758         multi-step conversion. Call vect_get_loop_based_defs and
1759         vect_create_vectorized_demotion_stmts for transformation.
1760         (vect_create_vectorized_promotion_stmts): New function.
1761         (vectorizable_type_promotion): Support loop-aware SLP and general
1762         multi-step conversion. Call vect_create_vectorized_promotion_stmts
1763         for transformation.     
1764         (vectorizable_store): Change documentation, support multiple
1765         types in SLP. 
1766         (vectorizable_load): Likewise.
1767         (vect_transform_stmt): Pass SLP_NODE to 
1768         vectorizable_type_promotion and vectorizable_type_demotion.
1769         (vect_schedule_slp_instance): Move here the calculation of number
1770         of vectorized statements for each node from...
1771         (vect_schedule_slp): ... here.
1772         (vect_transform_loop): Call vect_schedule_slp without the last
1773         argument.
1774
1775 2008-08-19  Dorit Nuzman  <dorit@il.ibm.com>
1776
1777         PR bootstrap/37152
1778         * tree-vect-transform.c (vect_create_epilog_for_reduction): Change = 
1779         to == in assert statement.
1780         (vectorizable_reduction): Fix typo.
1781
1782 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
1783
1784         PR bootstrap/37153
1785         * value-prof.c (check_counter): Dereference pointer to overall
1786         count when printing it.
1787
1788 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
1789
1790         * profile.h: Really add it.
1791
1792 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
1793
1794         * mcf.c: Really add it.
1795
1796 2008-08-18  Paul Yuan  <yingbo.com@gmail.com>
1797             Vinodha Ramasamy  <vinodha@google.com>
1798
1799         * cgraph.c (cgraph_edge): Handle inconsistent counts when setting
1800         count_scale.
1801         * value-prof.c (check_counter): Fix the counter if
1802         flag_profile_correction is true.
1803         (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
1804         tree_mod_subtract_transform):
1805         Follow check_counter parameter change.
1806         * common.opt (fprofile-correction): New option.
1807         * mcf.c: New file.
1808         * profile.h: Likewise.
1809         * profile.c (edge_info, EDGE_INFO): Moved to new file profile.h.
1810         (sum_edge_counts, is_edge_inconsistent, correct_negative_edge_counts,
1811         is_inconsistent, set_bb_counts, read_profile_edge_counts): New
1812         functions.
1813         (compute_branch_probabilities): Refactored. Invokes mcf_smooth_cfg if
1814         flag_profile_correction is set.
1815
1816 2008-08-18  Richard Sandiford  <rdsandiford@googlemail.com>
1817
1818         * rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
1819
1820 2008-08-18  Tomas Bily  <tbily@suse.cz>
1821
1822         * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P.
1823         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Use
1824         CONVERT_EXPR_P.
1825         * tree-data-ref.c (split_constant_offset_1): Likewise.
1826         * tree-inline.c (estimate_operator_cost): Use CASE_CONVERT.
1827         * tree-sra.c (sra_walk_expr): Likewise.
1828         * matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise.
1829         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
1830         * gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P.
1831         * tree-ssa-structalias.c (find_func_aliases, find_func_aliases):
1832         Likewise.
1833         * gimple.c (gimple_assign_unary_nop_p): Likewise.
1834         * tree-vect-transform.c (vectorizable_type_demotion)
1835         (vectorizable_type_promotion): Likewise.
1836         * tree-inline.c (expand_call_inline): 
1837         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
1838         (forward_propagate_addr_expr_1, forward_propagate_comparison)
1839         (tree_ssa_forward_propagate_single_use_vars): Likewise.
1840         * expr.c (expand_expr_real_1): Likewise.
1841         * tree-ssa-dom.c (hashable_expr_equal_p, iterative_hash_hashable_expr)
1842         (gimple_assign_unary_useless_conversion_p): Likewise.
1843         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
1844         * tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise.
1845         * fold-const.c (fold_unary): Likewise.
1846         * tree.h (CONVERT_EXPR_P): Likewise.
1847         * tree.c (simple_cst_equal, iterative_hash_expr): Likewise.
1848         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
1849         * tree-vrp.c: 
1850         (register_edge_assert_for_2, extract_range_from_unary_expr)
1851         (register_edge_assert_for_1): Likewise.
1852         
1853 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1854
1855         * real.h (dconst_e, dconst_third, dconst_sqrt2, dconst_e_ptr,
1856         dconst_third_ptr, dconst_sqrt2_ptr): Declare.
1857         (enum real_value_const): Delete.
1858         (get_real_const): Delete.
1859         * real.c (get_real_const): Delete.
1860         (dconst_e_ptr): Define.
1861         (dconst_third_ptr): Define.
1862         (dconst_sqrt2_ptr): Define.
1863         * builtins.c: Update all callers.
1864
1865 2008-08-18  Richard Guenther  <rguenther@suse.de>
1866
1867         * tree-ssa-reassoc.c (reassociate_bb): Properly reset the
1868         statement iterator after statement removal.
1869
1870 2008-08-18  Andreas Tobler  <a.tobler@schweiz.org>
1871
1872         * config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.
1873         (detect_processor_freebsd): Likewise.
1874         (host_detect_local_cpu): Call newly added functions for FreeBSD.
1875
1876 2008-08-18  Richard Guenther  <rguenther@suse.de>
1877
1878         * tree-cfg.c (verify_types_in_gimple_assign): Verify copies
1879         and loads have the correct types.
1880
1881 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1882
1883         PR cpp/7263
1884         * c-opts.c (cpp_opts): Remove static.
1885         * c-parser.c (cpp_opts): Declare it extern.
1886         (disable_extension_diagnostics): Handle cpp options.
1887         (enable_extension_diagnostics): Likewise.
1888
1889 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1890
1891         * diagnostics.c (permerror_at): Rename as permerror.
1892         (permerror): Delete.
1893         * toplev.h: Likewise.
1894
1895 2008-08-18  Richard Guenther  <rguenther@suse.de>
1896
1897         * passes.c (init_optimization_passes): Remove cleanup_cfg1,
1898         sdse1 and addressables2 passes.  Replace dce1 with cddce1.
1899         Move call_cdce before build_alias.  Move copyrename2,
1900         cunrolli and ccp2 beafore build_alias.  Re-add addressable2
1901         right after final inlining.
1902         * tree-cfg.c (build_gimple_cfg): Do not dump function here.
1903         (pass_build_cfg): But instead via TODO_dump_func.
1904
1905 2008-08-18  Richard Guenther  <rguenther@suse.de>
1906
1907         * tree-sra.c (generate_element_init_1): Deal with NULL constructor
1908         element index.
1909         (scalarize_init): If we failed to generate some initializers
1910         do not generate zeros for not instantiated members.  Instead
1911         rely on the copy out.
1912         * tree-ssa-operands.c (get_addr_dereference_operands): Warn
1913         about missing flow-sensitive alias info only if we have
1914         aliases computed.
1915
1916 2008-08-17  Nick Clifton  <nickc@redhat.com>
1917
1918         * doc/extend.texi (Function Attributes): Fix typo in description
1919         if hot function attribute.
1920
1921 2008-08-17  Daniel Jacobowitz  <dan@codesourcery.com>
1922             Richard Sandiford  <rdsandiford@googlemail.com>
1923
1924         * doc/install.texi (--with-mips-plt): Document.
1925         * doc/invoke.texi (-mplt, -mno-plt): Document.
1926         * config.gcc (mips*-*-*): Add mips-plt to supported_defaults
1927         and handle ${with_mips_plt}.
1928         * config/mips/mips.opt (mplt): New option.
1929         * config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
1930         (TARGET_ABICALLS_PIC2): Likewise.
1931         (TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
1932         (OPTION_DEFAULT_SPECS): Add a mips-plt entry.
1933         (ASM_SPEC): Use !mabi=* instead of !mabi*.
1934         (MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
1935         to decide whether to output ".option picX" directives.
1936         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
1937         Pass -call_nonpic rather than -KPIC for -mplt.
1938         (BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
1939         on the command line.  Also remove it when -mabi=64 is used without
1940         -msym32.
1941         * config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
1942         * config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
1943         TARGET_ABICALLS_PIC0.
1944         (mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
1945         TARGET_ABICALLS.
1946         (mips16_build_function_stub): Only output ".option pic" directives
1947         and PIC stubs if TARGET_ABICALLS_PIC2.  Call through $25 instead of $1.
1948         (mips16_build_call_stub): Fix comment and remove redundant
1949         ".set at"/"set .noat" directives.
1950         (mips_function_rodata_section): Use the default behaviour for
1951         TARGET_ABSOLUTE_ABICALLS.
1952         (mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
1953         (mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
1954         (mips_restore_gp): Do nothing if the current function doesn't use
1955         a global pointer.
1956         (mips_expand_prologue): Only save $gp if the current function uses it.
1957         Use a normal move for TARGET_ABICALLS_PIC0.
1958         (mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.
1959
1960 2008-08-17  Richard Sandiford  <rdsandiford@googlemail.com>
1961
1962         * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest
1963         of function when handling GLOBAL_POINTER_REGNUM.
1964
1965 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
1966
1967         PR ada/20548
1968         * common.opt (-fstack-check): Do not declare the variable here.
1969         (-fstack-check=): New option variant.
1970         * doc/invoke.texi (Code Gen Options): Document it.
1971         * expr.h (STACK_OLD_CHECK_PROTECT): New macro.
1972         (STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used.
1973         (STACK_CHECK_STATIC_BUILTIN): New macro.
1974         * doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN.
1975         * opts.c: Include expr.h.
1976         (common_handle_option) <OPT_fold_stack_check_>: New case.
1977         <OPT_fstack_check>: Likewise.
1978         * calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT
1979         consistently in the test for variable-sized types.  Adjust for
1980         new behaviour of flag_stack_check.
1981         * explow.c: Include except.h.
1982         (allocate_dynamic_stack_space): Do not take into account
1983         STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking.
1984         * function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test
1985         for variable-sized parameters.  Treat all parameters whose size is
1986         greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic
1987         stack checking is enabled.
1988         * gimplify.c (gimplify_decl_expr): Treat non-static objects whose
1989         size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized
1990         if generic stack checking is enabled.
1991         (expand_function_end): Adjust for new behaviour of flag_stack_check.
1992         * reload1.c (reload): Likewise.
1993         * stmt.c (expand_decl): Assert that all automatic variables have
1994         fixed size at this point and remove dead code.
1995         * flags.h (stack_check_type): New enumeration type.
1996         (flag_stack_check): Declare.
1997         * toplev.c (flag_stack_check): New global variable.
1998         * Makefile.in (opts.o): Add dependency on EXPR_H.
1999         (explow.o): Add dependency on except.h.
2000
2001 2008-08-16  Andy Hutchinson  <hutchinsonandy@aim.com>
2002
2003         * config/avr/avr.c (avr_override_options): Reduce value of 
2004         PARAM_INLINE_CALL_COST.
2005
2006 2008-08-15  Eric Botcazou  <ebotcazou@adacore.com>
2007
2008         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: When converting
2009         to BLKmode, try to fetch an inner memory reference.  Use 'mode' in
2010         lieu of TYPE_MODE (type) throughout.
2011
2012 2008-08-15  Joseph Myers  <joseph@codesourcery.com>
2013
2014         * config/arm/arm.c (add_minipool_backward_ref): Check for
2015         8-byte-aligned entries in second case of forcing insertion after a
2016         particular entry.  Change third case to avoid inserting
2017         non-8-byte-aligned entries before 8-byte-aligned ones.
2018
2019 2008-08-15  Richard Guenther  <rguenther@suse.de>
2020
2021         * tree-ssa-ccp.c (maybe_fold_offset_to_reference): Do not
2022         strip components for unknown size accesses.
2023
2024 2008-08-15  Wolfgang Gellerich  <gellerich@de.ibm.com>
2025
2026         * config/s390/2097.md New file.
2027         * config/s390/s390.md ("z10prop" attribute): Define none,
2028         z10_super, z10_super_E1, z10_super_A1, z10_super_c,
2029         z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
2030         z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
2031         possible values and apply them to insns as appropriate.
2032         ("type" attribute): Removed itof and added ftrunctf,ftruncdf,
2033         ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
2034         fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
2035         fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible
2036         values.
2037         ("bfp" mode attribute): Removed.  Every occurence replaced
2038         with <mode>.
2039         * config/s390/s390.c (struct "z10_cost"): Updated entries.
2040         * config/s390/2084.md (insn_reservation "x_itof"): Updated
2041           type attribute.
2042
2043 2008-08-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2044
2045         PR c/28152
2046         * c-parser.c (c_lex_one_token): Do not store the canonical spelling
2047         for keywords.
2048         
2049 2008-08-14  Dorit Nuzman  <dorit@il.ibm.com>
2050
2051         * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an
2052         additional argument. Support reduction when duplication is needed due
2053         to data-types of different sizes in the loop.
2054         (get_initial_def_for_induction): Fix printout.
2055         (vect_get_vec_def_for_stmt_copy): Support case where the
2056         vec_stmt_for_operand is a phi node.
2057         (vectorizable_reduction): Support reduction when duplication is needed 
2058         due to data-types of different sizes in the loop.
2059         (vectorizable_call): Remove restriction to not vectorize in case we 
2060         have data-types of different sizes in the loop.
2061         (vectorizable_conversion): Likewise.
2062         (vectorizable_operation): Likewise.
2063         (vectorizable_type_demotion): Likewise.
2064         (vectorizable_type_promotion): Likewise.
2065         (vectorizable_induction): Add restriction to not vectorize in case 
2066         we have data-types of different sizes in the loop.
2067
2068 2008-08-14  Christophe Saout  <christophe@saout.de>
2069             Uros Bizjak  <ubizjak@gmail.com>
2070
2071         PR target/37101
2072         * config/i386/sse.md (vec_concatv2di): Remove movlps alternative.
2073         (*vec_concatv2di_rex64_sse4_1): Ditto.
2074         (*vec_concatv2di_rex64_sse): Ditto.
2075
2076 2008-08-14  Jakub Jelinek  <jakub@redhat.com>
2077
2078         PR middle-end/37103
2079         * fold-const.c (fold_widened_comparison): Do not allow
2080         sign changes that change the result even if shorter type
2081         is wider than arg1_unw's type.
2082
2083 2008-08-13  Kazu Hirata  <kazu@codesourcery.com>
2084
2085         * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c:
2086         Skip if the multilib testing specifies -march that does not
2087         agree with the one specified in the testcase.
2088
2089 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
2090
2091         * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or
2092         zero extend SImode values being converted to TFmode before passing
2093         to libcalls.
2094
2095 2008-08-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2096
2097         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
2098         __PPU__ when targeting the Cell/B.E. PPU processor.
2099
2100 2008-08-13  Eric Botcazou  <ebotcazou@adacore.com>
2101
2102         * gimple.h (gimple_call_set_chain): Accept SSA variables.
2103         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>:
2104         Rematerialize the static chain, if any.
2105         * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the
2106         static chain.
2107
2108 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
2109
2110         * dwarf2out.c (dwarf_stack_op_name): Remove prototype.
2111         (new_loc_descr): Likewise.
2112         (add_loc_descr): Likewise.
2113         (size_of_loc_descr): Likewise.
2114         (size_of_locs): Likewise.
2115         (output_loc_operands): Likewise.
2116         (output_loc_sequence): Likewise.
2117         (new_reg_loc_descr): New.
2118         (build_cfa_loc): Use it.
2119         (build_cfa_aligned_loc): Likewise.
2120         (one_reg_loc_descriptor): Likewise.
2121         (based_loc_descr): Likewise.
2122
2123 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2124
2125         PR 30551
2126         * doc/invoke.texi (Wmain): Update.
2127         * c-decl.c (start_decl): warn_main is only 0 or 1.
2128         (start_function): Likewise. Fix formatting.
2129         (finish_function): Delete redundant warning.
2130         * c.opt (Wmain): Add Var(warn_main) and Init(-1).
2131         * c-opts (c_common_handle_option): -Wall only has effect if
2132         warn_main is uninitialized. OPT_Wmain is automatically
2133         handled. -pedantic also enables Wmain.
2134         (c_common_post_options): Handle all logic for Wmain here.
2135         * c-common.c (warn_main): Delete.
2136         (check_main_parameter_types): Make pedwarns conditional on
2137         OPT_Wmain.
2138         * c-common.h (warn_main): Delete.
2139
2140 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
2141
2142         PR middle-end/36701
2143         * expr.c (emit_group_store): Allocate stack temp with the
2144         largest alignment when copying from register to stack.
2145
2146 2008-08-13  Richard Guenther  <rguenther@suse.de>
2147
2148         * tree.h (maybe_fold_offset_to_address): Declare.
2149         * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit.
2150         (ccp_fold): Handle pointer conversions the same as fold_stmt.
2151         Likewise for POINTER_PLUS_EXPR.
2152         (maybe_fold_offset_to_reference): Enable disabled code.
2153         (maybe_fold_offset_to_address): New function.
2154         (fold_stmt_r): Use it.
2155         (fold_gimple_assign): Likewise.
2156         * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address.
2157         (gimplify_expr): Likewise.
2158
2159 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2160
2161         * toplev.h (pedwarn_at): Fix declaration.
2162         
2163 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
2164
2165         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
2166         LINK_SPEC): Use %R in -Y P argument.
2167
2168 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2169
2170         PR c/15236
2171         * diagnostic.c (pedwarn_at): New.
2172         * toplev.h (pedwarn_at): Declare.
2173         * c-tree.h (build_enumerator): Update declaration.
2174         * c-decl.c (finish_enum): Update comment.
2175         (build_enumerator): Take a location parameter. Give a pedwarn but do
2176         not perform any conversion.
2177         * c-parser.c (c_parser_enum_specifier): Set correct location for
2178         enumerator.
2179
2180 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2181
2182         PR 35635
2183         * c-common.c (conversion_warning): Use a switch. Ignore boolean
2184         expressions except for conversions to signed:1 bitfields. Handle
2185         COND_EXPR with constant operands.
2186         
2187 2008-08-13  Richard Guenther  <rguenther@suse.de>
2188
2189         PR tree-optimization/15255
2190         * tree-ssa-reassoc.c (linearize_expr_tree): Declare.
2191         (struct oecount_s): New struct and VEC types.
2192         (cvec): New global.
2193         (oecount_hash): New function.
2194         (oecount_eq): Likewise.
2195         (oecount_cmp): Likewise.
2196         (zero_one_operation): New function.
2197         (build_and_add_sum): Likewise.
2198         (undistribute_ops_list): Perform un-distribution of multiplication
2199         and division on the chain of summands.
2200         (should_break_up_subtract): Also break up subtracts for factors.
2201         (reassociate_bb): Delete dead visited statements.
2202         Call undistribute_ops_list.  Re-sort and optimize if it did something.
2203         * passes.c (init_optimization_passes): Move DSE before
2204         reassociation.
2205         * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle
2206         PHI nodes.
2207
2208 2008-08-12  Janis Johnson  <janis187@us.ibm.com>
2209
2210         * doc/invoke.texi (-fipa-pta): Say the option is experimental.
2211
2212         * doc/invoke.texi: Revert unintended checkin.
2213
2214 2008-08-12  Nathan Froyd  <froydnj@codesourcery.com>
2215
2216         PR libgomp/26165
2217         * gcc.c (include_spec_function): Tweak call to find_a_file.
2218
2219 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
2220
2221         PR middle-end/37014
2222         * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
2223         and TRUTH_ORIF_EXPR.
2224         * dojump.c (do_jump): Likewise.
2225
2226         PR tree-optimization/37084
2227         * tree-inline.c (copy_bb): Call gimple_regimplify_operands
2228         if id->regimplify, don't assume stmt is a cast assignment.
2229
2230 2008-08-12  Anatoly Sokolov  <aesok@post.ru>
2231
2232         * final.c (final_scan_insn): Use app_enable/app_disable functions.
2233
2234 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2235
2236         PR bootstrap/37097
2237         * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced
2238         by last change.
2239
2240 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2241
2242         * defaults.h (TARGET_FLOAT_FORMAT): Remove.
2243         (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove.
2244
2245         * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove.
2246         * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove.
2247         * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove.
2248         * config/score/score.h (TARGET_FLOAT_FORMAT): Remove.
2249         * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove.
2250
2251         * doc/tm.texi (Storage Layout): Remove documentation for
2252         TARGET_FLOAT_FORMAT.
2253
2254         * simplify-rtx.c (simplify_binary_operation_1): Replace
2255         TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks.
2256
2257 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2258
2259         * real.h (struct real_format): New member has_sign_dependent_rounding.
2260         * real.c (ieee_single_format, mips_single_format, motorola_single_format,
2261         spu_single_format, ieee_double_format, mips_double_format,
2262         motorola_double_format, ieee_extended_motorola_format,
2263         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
2264         ieee_extended_intel_96_round_53_format, ibm_extended_format,
2265         mips_extended_format, ieee_quad_format, mips_quad_format,
2266         vax_f_format, vax_d_format, vax_g_format): Initialize it.
2267         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
2268
2269         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
2270         MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
2271         * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
2272         MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
2273         (ROUND_TOWARDS_ZERO): Likewise.
2274
2275         * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion.
2276         (FLOAT_MODE_FORMAT): New macro.
2277         (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ...
2278         (MODE_COMPOSITE_P): ... this new macro.
2279         (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
2280         MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros.
2281         * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode.
2282
2283         * flags.h: Include "real.h".
2284
2285         * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of
2286         REAL_MODE_FORMAT_COMPOSITE_P.
2287         * simplify-rtx.c (simplify_const_binary_operation): Likewise.
2288
2289         * doc/tm.texi (Storage Layout): Remove documentation of
2290         MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
2291         MODE_HAS_SIGN_DEPENDENT_ROUNDING.  Update documentation of
2292         ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify
2293         they only apply to libgcc2.a.
2294
2295 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2296
2297         * config/spu/float_disf.c: New file.
2298         * config/spu/float_unsdisf.c: New file.
2299         * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them.
2300         (LIB2FUNCS_EXCLUDE): Define.
2301
2302 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2303             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2304
2305         * real.h (struct real_format): New member round_towards_zero.
2306         * real.c (round_for_format): Respect fmt->round_towards_zero.
2307         (ieee_single_format, mips_single_format, motorola_single_format,
2308         spu_single_format, ieee_double_format, mips_double_format,
2309         motorola_double_format, ieee_extended_motorola_format,
2310         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
2311         ieee_extended_intel_96_round_53_format, ibm_extended_format,
2312         mips_extended_format, ieee_quad_format, mips_quad_format,
2313         vax_f_format, vax_d_format, vax_g_format): Initialize it.
2314         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
2315
2316         * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of
2317         real_format to choose rounding mode when calling MPFR functions.
2318         (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise.
2319         (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise.
2320
2321         * real.h (real_to_decimal_for_mode): Add prototype.
2322         * real.c (real_to_decimal_for_mode): Renames old real_to_decimal.
2323         Respect target rounding mode when generating decimal representation.
2324         (real_to_decimal): New stub for backwards compatibility.
2325         * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use
2326         real_to_decimal_for_mode instead of real_to_decimal.
2327
2328         * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New.
2329
2330 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2331             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2332
2333         * real.c (spu_single_format): New variable.
2334         * real.h (spu_single_format): Declare.
2335
2336         * config/spu/spu.c (spu_override_options): Install SFmode format.
2337         (spu_split_immediate): Use integer mode to operate on pieces of
2338         floating-point values in all cases.
2339
2340         * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New.
2341         ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND.
2342         ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE.
2343
2344 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2345
2346         * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA.
2347
2348 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2349
2350         * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define.
2351
2352 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
2353
2354         PR c++/36688
2355         * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY
2356         on the VAR_DECL instead of TYPE_READONLY on its type.
2357
2358 2008-08-12  Ira Rosen  <irar@il.ibm.com>
2359
2360         * tree-vectorizer.c: Depend on langhooks.h.
2361         (supportable_widening_operation): Add two arguments. Support double
2362         type conversions.
2363         (supportable_narrowing_operation): Likewise.
2364         * tree-vectorizer.h (supportable_widening_operation): Add two 
2365         arguments.
2366         (supportable_narrowing_operation): Likewise.
2367         * tree-vect-patterns.c (vect_recog_widen_mult_pattern) : Call
2368         supportable_widening_operation with correct arguments.
2369         * tree-vect-transform.c (vectorizable_conversion): Likewise.
2370         (vectorizable_type_demotion): Support double type conversions.
2371         (vectorizable_type_promotion): Likewise.
2372         * Makefile.in (tree-vectorizer.o): Depend on langhooks.h.
2373
2374 2008-08-11  Michael Matz  <matz@suse.de>
2375
2376         * i386/i386.c (override_options): Move initialisation from
2377         flag_schedule_insns_after_reload to here from ...
2378         (optimization_options): ... here.
2379
2380 2008-08-11  Jakub Jelinek  <jakub@redhat.com>
2381
2382         PR rtl-optimization/36998
2383         * dwarf2out.c (compute_barrier_args_size_1,
2384         compute_barrier_args_size): Temporarily remove assertions.
2385
2386 2008-08-10  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2387
2388         PR middle-end/20644
2389         * tree-ssa.c (struct walk_data): Add new flag
2390         warn_possibly_uninitialized.
2391         (warn_uninitialized_var): Use it.
2392         (warn_uninitialized_vars): New.
2393         (execute_early_warn_uninitialized): Call it.
2394         (execute_late_warn_uninitialized): Likewise.
2395
2396 2008-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2397
2398         PR middle-end/36238
2399         * reload1.c (gen_reload): Guard calls to get_secondary_mem
2400         for memory subregs.
2401
2402 2008-08-09  Jan Hubicka  <jh@suse.cz>
2403
2404         PR target/37055
2405         * optabs.c (maybe_emit_unop_insn): Remove produced code if
2406         expansion failed.
2407         (expand_fix): Be prepared for expansion to fail.
2408         (expand_sfix_optab): Remove instructions if expansion failed.
2409
2410 2008-08-09  Anatoly Sokolov  <aesok@post.ru>
2411
2412         * config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to
2413         avr31 architecture.
2414         * config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.).
2415         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
2416
2417 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
2418
2419         * config.gcc (mips*-*-linux*, mips64*-*-linux*): Add
2420         mips/t-libgcc-mips16 to tmake_file.
2421         * config/mips/mips-protos.h (mips_call_type): New enum.
2422         (mips_pic_base_register, mips_got_load): Declare.
2423         (mips_restore_gp): Take an rtx argument.
2424         (mips_use_pic_fn_addr_reg_p): Declare.
2425         (mips_expand_call): Replace the sibcall_p argument with
2426         a mips_call_type argument.  Add a lazy_p parameter.
2427         (mips_split_call): Declare.
2428         * config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro.
2429         (MIPS16_PIC_TEMP): Likewise.
2430         (reg_class): Delete M16_NA_REGS.
2431         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
2432         (SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros.
2433         (mips_split_hi_p): Declare.
2434         * config/mips/mips.c (mips_split_hi_p): New array.
2435         (mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS.
2436         (mips_got_symbol_type_p): New function.
2437         (mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P.
2438         (mips16_stub_function_p): New function.
2439         (mips16_local_function_p): Likewise.
2440         (mips_use_pic_fn_addr_reg_p): Likewise.
2441         (mips_cannot_force_const_mem): Return false for HIGHs.
2442         Extend CONST_INT and symbolic handling to MIPS16, using
2443         mips_symbol_insns to check that the base symbol type is a
2444         legitimate constant.  Reject GOT-based constants if
2445         TARGET_MIPS16_PCREL_LOADS.
2446         (mips_const_insns): Check targetm.cannot_force_const_mem when
2447         decomposing a symbolic base and a large offset.
2448         (mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters.
2449         When calling a function that needs $25 from MIPS16 code,
2450         move the target address into $25 separately and add a USE
2451         to the call insn.
2452         (mips16_gp_pseudo_reg): Insert the initializer immediately
2453         before the first real insn.
2454         (mips_pic_base_register, mips_got_load): New functions.
2455         (mips_split_symbol): Generalize the name of the LO_SUM_OUT
2456         parameter to LOW_OUT.  Say that it can be any valid SET_SRC
2457         when splitting a load-address operation.  Split SYMBOL_GOT_DISP
2458         constants and highs of SYMBOL_GOT_PAGE_OFST constants.
2459         (mips_call_tls_get_addr): Update the call to mips_expand_call,
2460         also passing NULL_RTX rather than const0_rtx as the aux argument.
2461         (mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p
2462         instead of TARGET_EXPLICIT_RELOCS.
2463         (mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P.
2464         (mips_load_call_address): Replace the sibcall_p argument with
2465         a mips_call_type argument.  Use mips_got_load.
2466         (mips16_local_alias): New structure.
2467         (mips16_local_aliases): New variable.
2468         (mips16_local_aliases_hash): New function.
2469         (mips16_local_aliases_eq): Likewise.
2470         (mips16_local_alias): Likewise.
2471         (mips16_stub_function): Likewise.
2472         (mips16_build_function_stub): Create a local alias for the target
2473         function.  Handle TARGET_ABICALLS.  For PIC abicalls, emit a
2474         .cpload directive and an R_MIPS_NONE relocation for the target
2475         function, then load the alias rather than the function itself.
2476         Wrap the non-PIC abicalls version in ".option pic0/.option pic2".
2477         (mips16_copy_fpr_return_value): Use mips16_stub_function and
2478         mips_expand_call.  Set SYMBOL_REF_BIND_NOW on the symbol.
2479         (mips16_build_call_stub): Replace the FN parameter with an
2480         FN_PTR parameter.  Force the address into a register if it
2481         isn't a call_insn_operand; don't rely on the caller to do this.
2482         If a call to a locally-defined and locally-binding MIPS16
2483         function must be made indirectly, redirect the call to the
2484         function's local alias.  Use mips16_stub_function_p,
2485         mips16_stub_function, mips_expand_call and use_reg.
2486         Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols.
2487         Use explicit %hi and %lo accesses where possible.
2488         Use MIPS_CALL to generate the correct code form of a
2489         jal instruction.  Add clobbers of $18 instead of uses.
2490         Update the call to mips_emit_call_insn.
2491         (mips_expand_call): Replace the SIBCALL_P argument with a
2492         mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value.
2493         Take a LAZY_P parameter.  Call mips16_build_call_stub first,
2494         allowing it to modify the call address.  Update the calls to
2495         mips_load_call_address and mips_emit_call_insn.
2496         (mips_split_call): New function.
2497         (mips_init_relocs): Clear mips_split_hi_p.  Only use %gp_rel if
2498         !TARGET_MIPS16.  Split SYMBOL_GOT_DISP, and the high parts of
2499         SYMBOL_GOT_PAGE_OFST, for MIPS16 code.
2500         (mips_global_pointer): Check mips16_cfun_returns_in_fpr_p.
2501         (mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM
2502         if TARGET_MIPS16.
2503         (mips_cprestore_slot): New function.
2504         (mips_restore_gp): Take a TEMP parameter.  Handle TARGET_MIPS16
2505         and use mips_cprestore_slot.
2506         (mips_output_function_prologue): Handle TARGET_MIPS16 for
2507         LOADGP_OLDABI.
2508         (mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16,
2509         then use a copygp_mips16 instruction to set up $28.
2510         (mips_expand_prologue): Initialize the cprestore slot for MIPS16 too.
2511         (mips16_lay_out_constants): Call split_all_insns_noflow.
2512         (mips_reorg_process_insns): Explicitly set all_noreorder_p to
2513         false if TARGET_MIPS16.
2514         (mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16.
2515         (mips_output_mi_thunk): Use mips_got_symbol_type_p.  Use the
2516         mips_dangerous_for_la25_p approach for MIPS16 PIC calls too.
2517         (mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for
2518         MIPS16 code.  Allow MIPS16 o32 PIC.
2519         (mips_override_options): Allow MIPS16 o32 PIC.
2520         * config/mips/mips.md: Lower CONST_GP_P moves into register moves
2521         after reload if TARGET_USE_GOT.
2522         (UNSPEC_COPYGP): New constant.
2523         (length): Use a default length of 8 for MIPS16 GOT loads.
2524         (*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT.
2525         (*got_page<mode>): Check mips_split_hi_p.
2526         (*got_disp<mode>, *got_page<mode>): Use mips_got_load.
2527         (unspec_got<mode>, unspec_call<mode>): New expanders.
2528         (load_got<mode>, load_call<mode>): Remove the length attributes.
2529         Use a got attribute instead of a type attribute.
2530         (copygp_mips16): New insn.
2531         (restore_gp): Add a scratch clobber and pass it to mips_restore_gp.
2532         (load_call<mode>): Use a "d" constraint instead of an "r" constraint.
2533         (sibcall, sibcall_value, call, call_value): Update the calls
2534         to mips_expand_call.
2535         (call_internal, call_value_internal): Use mips_split_call.
2536         (call_value_multiple_internal): Likewise.
2537         (call_split): Move after call_internal (the insn it is split from).
2538         (call_internal_direct, call_value_internal_direct): Turn into
2539         define_insn_and_splits.  Split if TARGET_SPLIT_CALLS.
2540         (call_direct_split, call_value_direct_split): New patterns.
2541         * config/mips/constraints.md (c): Handle TARGET_MIPS16 first
2542         and use M16_REGS instead of M16_NA_REGS.
2543         * config/mips/predicates.md (const_call_insn_operand): Replace
2544         the TARGET_ABSOLUTE_ABICALLS-based check with a more general
2545         mips_use_pic_fn_addr_reg_p check.
2546         (move_operand): Reject HIGHs if mips_split_hi_p.
2547         * config/mips/mips16.S: Assembly as empty if the ABI is not suitable.
2548         (__mips16_floatunsisf): Inline __mips16_floatsisf.
2549         (CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25.
2550         * config/mips/libgcc-mips16.ver: New file.
2551         * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add
2552         $(srcdir)/config/mips/libgcc-mips16.ver.
2553
2554 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
2555
2556         * config/mips/mips.c (mips_unspec_address_offset): Move earlier in file.
2557         (mips_unspec_address, mips_unspec_offset_high): Likewise.
2558         (mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise.
2559         (mips16_cfun_returns_in_fpr_p): Likewise.
2560
2561 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
2562
2563         * config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary.
2564         * config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2
2565         rather than 4 to PC.
2566
2567 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
2568
2569         * config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
2570         (FUNCTION_PROFILER): Save the static chain pointer into $2
2571         beforehand and restore it aftewards.
2572         (TRAMPOLINE_TEMPLATE): Adjust accordingly.  Load the target
2573         address directly into $25 and call the function through $25;
2574         do not clobber $3.  Pad the DImode version to cover the space
2575         left by the deleted $25 <- $3 move.
2576         (TRAMPOLINE_SIZE): Adjust the size of the SImode version after
2577         the removal of the $25 <- $3 move.
2578         (INITIALIZE_TRAMPOLINE): Update offsets accordingly.
2579         * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
2580
2581 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
2582             Daniel Jacobowitz  <dan@codesourcery.com>
2583
2584         * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete.
2585         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete.
2586         (ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete.
2587         * config/mips/mips.c (mips_start_function_definition): New function.
2588         (mips_end_function_definition): Likewise.
2589         (mips_output_function_prologue): Use mips_start_function_definition.
2590         (mips_output_function_epilogue): Use mips_end_function_definition.
2591         (build_mips16_function_stub): Use mips_start_function_definition
2592         and mips_end_function_definition.
2593         (build_mips16_call_stub): Likewise.
2594
2595 2008-08-09  Richard Guenther  <rguenther@suse.de>
2596
2597         * gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
2598         * gimple.h (gimple_call_fn): Adjust comment.
2599         (gimple_call_set_fndecl): New function.
2600         (gimple_call_fndecl): Adjust for GIMPLE_CALL no
2601         longer having bare FUNCTION_DECL operand.
2602         (gimple_call_return_type): Likewise.
2603         * tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL.
2604
2605         * value-prof.c (gimple_divmod_fixed_value): Do not emit labels.
2606         (gimple_mod_pow2): Likewise.
2607         (gimple_mod_subtract): Likewise.
2608         (gimple_ic): Likewise.
2609         (gimple_stringop_fixed_value): Likewise.
2610         (gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no
2611         longer having bare FUNCTION_DECL operand.
2612         * ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl.
2613         * omp-low.c (optimize_omp_library_calls): Likewise.
2614         * cgraphunit.c (update_call_expr): Likewise.
2615         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
2616         (execute_convert_to_rsqrt): Likewise.
2617         * cfgexpand.c (gimple_to_tree): Simplify.
2618         (release_stmt_tree): Fix for GIMPLE_CALL no longer having
2619         bare FUNCTION_DECL operand.
2620         * tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type.
2621         (convert_gimple_call): Use gimple_call_fndecl.
2622         * c-common.c (c_warn_unused_result): Likewise.
2623
2624 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2625
2626         PR c/17880
2627         * c-typeck.c (digest_init): Call verify_sequence_points from here.
2628         (c_finish_return): Likewise.
2629         (c_start_case): Likewise.
2630         * c-common.c (warn_for_collisions_1): Use explicit location in
2631         warning.
2632         * c-parser.c (c_parser_condition): New. Call
2633         verify_sequence_points.
2634         (c_parser_paren_condition): Call c_parser_condition.
2635         (c_parser_for_statement): Call c_parser_condition.
2636
2637 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2638
2639         PR 36901
2640         * diagnostic.def (DK_PEDWARN, DK_PERMERROR): New.  
2641         * diagnostic.c (pedantic_warning_kind, permissive_error_kind):
2642         Moved from diagnostic.h
2643         (diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and
2644         DK_PERMERROR.
2645         (emit_diagnostic): New.
2646         (warning0, pedwarn0): Delete.
2647         (warning, warning_at, pedwarn, permerror): Return bool.  
2648         * diagnostic.h (pedantic_warning_kind, permissive_error_kind):
2649         Moved to diagnostic.c.
2650         (struct diagnostic_context): Use correct type for
2651         classify_diagnostic.
2652         (diagnostic_report_diagnostic): Update declaration.
2653         (emit_diagnostic): Declare.
2654         * errors.c (warning): Return bool.  
2655         * errors.h (warning): Update declaration.
2656         * toplev.h (warning0, pedwarn0): Delete.
2657         (warning, warning_at, pedwarn, permerror): Return bool.
2658         * c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN.
2659         * c-decl.c (locate_old_decl): Delete 'diag' argument. Always use
2660         inform. Update all calls.
2661         (diagnose_mismatched_decls): Check return value of warning/pedwarn
2662         before giving informative note.
2663         (implicit_decl_warning): Likewise.  
2664         * c-typeck.c (build_function_call): Likewise.  
2665         * tree-sssa.c (warn_uninit): Likewise.  
2666         * builtins.c (gimplify_va_arg_expr): Likewise.
2667
2668 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2669
2670         PR 7651
2671         * doc/invoke.texi (-Wextra): Move warning from here...
2672         (-Wuninitialized): ... to here.
2673         
2674 2008-08-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2675
2676         PR 28875
2677         * flags.h (set_Wunused): Delete
2678         * toplev.c (process_options): Handle Wunused flags here.
2679         * opts.c (maybe_warn_unused_parameter): Delete.
2680         (common_handle_option): Replace set_Wunused by warn_unused.
2681         (set_Wextra): Do not handle Wunused-parameter here.
2682         (set_Wunused): Delete.
2683         * c-opts.c (c_common_handle_option): Replace set_Wunused by
2684         warn_unused.
2685         * common.opt (Wunused): Add Var and Init.
2686         (Wunused-function): Likewise.
2687         (Wunused-label): Likewise.
2688         (Wunused-parameter): Likewise.
2689         (Wunused-value): Likewise.
2690         (Wunused-variable): Likewise.
2691         
2692 2008-08-08  Peter Bergner  <bergner@vnet.ibm.com>
2693
2694         * doc/invoke.texi: Add cpu_type power7.
2695         * config.in (HAVE_AS_VSX): New.
2696         * config.gcc: Add cpu_type power7.
2697         * configure.ac (HAVE_AS_VSX): Check for assembler support of the
2698         VSX instructions.
2699         * configure: Regenerate.
2700         * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to
2701         power5.
2702         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define.
2703         (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7.
2704         (EXTRA_SPECS): Add asm_cpu_power7 spec string.
2705
2706 2008-08-08  Dorit Nuzman  <dorit@il.ibm.com>
2707
2708         * tree-vect-transform.c (vectorizable_conversion): Pass the integral
2709         type to vectorize.builtin_conversion.
2710         (vectorizable_conversion): Likewise.
2711         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes
2712         integral type as input.
2713         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
2714         FIX_TRUNC_EXPR.
2715         (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS
2716         and ALTIVEC_BUILTIN_VCTSXS.
2717         (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix
2718         formatting. 
2719
2720 2008-08-08  Richard Guenther  <rguenther@suse.de>
2721
2722         * tree-ssa-ccp.c (likely_value): Calls are not all varying.
2723         (surely_varying_stmt_p): Calls are varying only if they are
2724         non-builtin and not indirect or have no result.
2725         (ccp_fold): Re-instantiate code before the tuples merge.
2726
2727 2008-08-08  Richard Guenther  <rguenther@suse.de>
2728
2729         PR tree-optimization/37056
2730         * gimple.h (gimple_assign_rhs_class): New helper function.
2731         * tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle
2732         unary operations properly.
2733
2734 2008-08-07  Jan Hubicka  <jh@suse.cz>
2735
2736         * i386.h (ix86_size_cost): Declare.
2737         (ix86_cur_cost): New function macro.
2738         * i386.md (peepholes expanding size and splitters): Predicate by
2739         optimize_insn_for_speed_p.
2740         (peepholes reduce size and splitters): Predicate by
2741         optimize_insn_for_size_p.
2742         * i386.c (ix86_size_cost): Rename from ...
2743         (size_cost): This one.
2744         (override_options): Update.
2745         (decide_alg): Likewise.
2746         (ix86_expand_clear): Use RTL profile.
2747         (ix86_pad_returns): Use RTL profile.
2748
2749 2008-08-07  Jan Hubicka  <jh@suse.cz>
2750
2751         * recog.c (split_all_insns): Set RTL profile
2752         (peephole2_optimize): Likewise.
2753         * function.c (thread_prologue_and_epilogue_insns): Likewise.
2754         * combine.c (combine_instructions): Likewise.
2755
2756 2008-08-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2757
2758         * c-common.c (c_common_reswords): Also warn about keyword "bool".
2759
2760 2008-08-07  Bob Wilson  <bob.wilson@acm.org>
2761         
2762         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming
2763         value in a6 after the set_frame_ptr insn.
2764         
2765 2008-08-07  Richard Henderson  <rth@redhat.com>
2766
2767         PR debug/37033
2768         * gcc.c (cpp_options): Pass along -g*.
2769
2770 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
2771
2772         * config/arm/arm.c (output_move_neon): Update comment describing
2773         big-endian vector layout.
2774         (arm_assemble_integer): Do not handle big-endian NEON vectors
2775         specially.
2776         * config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>,
2777         neon_vget_lane<mode>_sext_internal,
2778         neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust
2779         element indices for big-endian.
2780
2781 2008-08-07  Richard Henderson  <rth@redhat.com>
2782
2783         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New.
2784         * configure, config.in: Rebuild.
2785         * debug.h (dwarf2out_do_cfi_asm): Declare.
2786         * c-cppbuiltin.c (c_cpp_builtins): Use it.
2787         * dwarf2out.c (dwarf2out_do_cfi_asm): New.
2788         (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info,
2789         dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it.
2790
2791 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
2792
2793         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
2794         movv2si_internal): Combine into mov<mode>_internal.
2795         (movv2si_internal_2): Remove.
2796
2797 2008-08-07  Jan Hubicka  <jh@suse.cz>
2798
2799         PR target/37048
2800         * i386.md (single stringop patterns): Enable unconditionally. 
2801
2802 2008-08-07  H.J. Lu  <hongjiu.lu@intel.com>
2803
2804         PR target/36992
2805         * config/i386/emmintrin.h (_mm_move_epi64): Use
2806         __builtin_ia32_movq128.
2807
2808         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128.
2809         (bdesc_args): Add IX86_BUILTIN_MOVQ128.
2810
2811         * config/i386/sse.md (sse2_movq128): New.
2812
2813         * doc/extend.texi: Document __builtin_ia32_movq128.
2814
2815 2008-08-07  Richard Guenther  <rguenther@suse.de>
2816
2817         PR middle-end/37042
2818         * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all
2819         pointers can access anything.
2820
2821 2008-08-06  Jan Hubicka  <jh@suse.cz>
2822
2823         * optabs.c (emit_unop_insn): Break out to ...
2824         (maybe_emit_unop_insn): ... this one.
2825         (expand_sfix_optab): Use maybe variant.
2826         * optabs.h (maybe_emit_unop_insn): Declare.
2827
2828         * i386.md (mov0 patterns): Enable by default.
2829         (FP conversion expanders): Disable expansion of code expanding
2830         sequences when instruction should be optimized for size.
2831         (single strinop patterns): Enable when optimizing for size.
2832         (string expanders): Disable expanding of code expanding sequences
2833         when optimizning instruction for size.
2834         * i386.c (ix86_expand_vector_move_misalign): Do code size optimization
2835         per BB basis.
2836         (ix86_fp_comparison_sahf_cost): Likewise.
2837         (ix86_expand_branch): Likewise.
2838         (ix86_expand_ashl_const): Likewise.
2839         (ix86_split_ashl): Likewise.
2840         (ix86_expand_strlen): Likewise.
2841         (ix86_emit_fp_unordered_jump): Likewie.
2842
2843 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2844
2845         * c-common.c: Fix typo.
2846         (c_common_reswords): Activate more C++ keyword warnings.
2847
2848         * matrix-reorg.c (compute_offset): Avoid C++ keywords.
2849
2850 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2851
2852         PR 26785
2853         * diagnostic.c (permerror_at): New.
2854         * toplev.h (permerror_at): Declare.
2855         
2856 2008-08-06  Victor Kaplansky  <victork@il.ibm.com>
2857             Ira Rosen  <irar@il.ibm.com>
2858
2859         * tree-vect-transform.c (vect_model_simple_cost): Return
2860         immediately if stmt is pure SLP.
2861         (vect_model_store_cost): Ditto.
2862         (vect_model_load_cost): Ditto.
2863         (vectorizable_store): Remove PURE_SLP check before call
2864         to vect_model_store_cost.
2865         (vect_model_store_cost): When checking whether stmt describe
2866         strided access, add a check that it is not slp_node.
2867
2868 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2869
2870         PR 8715
2871         * c-common.c (warn_for_sign_compare): New. Handle separately the
2872         case that 'constant' is zero.
2873         * c-typeck.c (build_binary_op): Move code to c-common.c
2874         
2875 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2876
2877         * config/alpha/alpha.c (alpha_preferred_reload_class,
2878         alpha_secondary_reload, alpha_emit_set_const_1, function_value,
2879         alpha_output_mi_thunk_osf): Avoid C++ keywords.
2880         * config/arm/arm.c (output_move_vfp, output_move_neon): Likewise.
2881         * config/arm/arm.md: Likewise.
2882         * config/avr/avr-protos.h (preferred_reload_class,
2883         test_hard_reg_class, avr_simplify_comparison_p,
2884         out_shift_with_cnt, class_max_nregs): Likewise.
2885         * config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p,
2886         output_movqi, output_movhi, output_movsisf, out_shift_with_cnt,
2887         preferred_reload_class, test_hard_reg_class): Likewise.
2888         * config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok,
2889         bfin_memory_move_cost, bfin_secondary_reload,
2890         bfin_output_mi_thunk): Likewise.
2891         * config/crx/crx.c (crx_secondary_reload_class,
2892         crx_memory_move_cost): Likewise.
2893         * config/frv/frv-protos.h (frv_secondary_reload_class,
2894         frv_class_likely_spilled_p, frv_class_max_nregs): Likewise.
2895         * config/frv/frv.c (frv_override_options, frv_alloc_temp_reg,
2896         frv_secondary_reload_class, frv_class_likely_spilled_p,
2897         frv_class_max_nregs): Likewise.
2898         * config/h8300/h8300.c (h8300_classify_operand,
2899         h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count):
2900         Likewise.
2901         * config/i386/winnt.c (i386_pe_declare_function_type): Likewise.
2902         * config/ia64/ia64.c (ia64_preferred_reload_class,
2903         ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise.
2904         * config/iq2000/iq2000.c (gen_int_relational): Likewise.
2905         * config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare):
2906         Likewise.
2907         * config/m68hc11/m68hc11.c (preferred_reload_class,
2908         m68hc11_memory_move_cost): Likewise.
2909         * config/mcore/mcore.c (mcore_secondary_reload_class,
2910         mcore_reload_class): Likewise.
2911         * config/mips/mips.c (mips_hard_regno_mode_ok_p,
2912         mips_class_max_nregs, mips_cannot_change_mode_class,
2913         mips_preferred_reload_class, mips_secondary_reload_class,
2914         mips_output_mi_thunk): Likewise.
2915         * config/mmix/mmix.c (mmix_preferred_reload_class,
2916         mmix_preferred_output_reload_class, mmix_secondary_reload_class):
2917         Likewise.
2918         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
2919         Likewise.
2920         * config/pa/pa.c (pa_secondary_reload, pa_combine_instructions,
2921         pa_can_combine_p, pa_cannot_change_mode_class): Likewise.
2922         * config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
2923         * config/rs6000/rs6000.c (paired_expand_vector_init,
2924         rs6000_secondary_reload_class, rs6000_output_mi_thunk,
2925         compare_section_name, rs6000_memory_move_cost): Likewise.
2926         * config/s390/s390.c (s390_emit_compare_and_swap,
2927         s390_preferred_reload_class, s390_secondary_reload,
2928         legitimize_pic_address, legitimize_tls_address,
2929         legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic,
2930         s390_class_max_nregs): Likewise.
2931         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
2932         * config/s390/s390.md: Likewise.
2933         * config/score/score-protos.h (score_secondary_reload_class,
2934         score_preferred_reload_class): Likewise.
2935         * config/score/score.c (score_preferred_reload_class,
2936         score_secondary_reload_class): Likewise.
2937         * config/score/score3.c (score3_output_mi_thunk,
2938         score3_preferred_reload_class, score3_secondary_reload_class,
2939         score3_hard_regno_mode_ok): Likewise.
2940         * config/score/score3.h (score3_preferred_reload_class,
2941         score3_secondary_reload_class): Likewise.
2942         * config/score/score7.c (score7_output_mi_thunk,
2943         score7_preferred_reload_class, score7_secondary_reload_class,
2944         score7_hard_regno_mode_ok): Likewise.
2945         * config/score/score7.h (score7_preferred_reload_class,
2946         score7_secondary_reload_class): Likewise.
2947         * config/sh/sh.c (prepare_move_operands, output_far_jump,
2948         output_branchy_insn, add_constant, gen_block_redirect,
2949         sh_insn_length_adjustment, sh_cannot_change_mode_class,
2950         sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload):
2951         Likewise.
2952         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
2953         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
2954         xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
2955         xstormy16_preferred_reload_class): Likewise.
2956         * config/xtensa/xtensa.c (xtensa_expand_compare_and_swap,
2957         xtensa_expand_atomic, override_options,
2958         xtensa_preferred_reload_class, xtensa_secondary_reload_class):
2959         Likewise.
2960         * reorg.c (try_merge_delay_insns): Likewise.
2961         * tree.c (merge_dllimport_decl_attributes): Likewise.
2962
2963         * config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA.
2964
2965 2008-08-06  Michael Matz  <matz@suse.de>
2966
2967         * Makefile.in (write_entries_to_file): Quote words.
2968         * gengtype.c: (read_input_line): Skip over leading white-space.
2969
2970 2008-08-06  Marc Gauthier  <marc@tensilica.com>
2971
2972         * config.gcc: Match more processor names for Xtensa.
2973         * configure.ac: Likewise.
2974         * doc/install.texi (Specific): Likewise.
2975         * configure: Regenerate.
2976
2977 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2978
2979         * builtins.c (expand_builtin_profile_func): Avoid C++ keywords.
2980         * calls.c (avoid_likely_spilled_reg): Likewise.
2981         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
2982         * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise.
2983         * config/i386/i386.c (ix86_expand_special_args_builtin,
2984         ix86_secondary_reload): Likewise.
2985         * except.c (struct eh_region, gen_eh_region_catch,
2986         remove_unreachable_regions, duplicate_eh_regions,
2987         assign_filter_values, build_post_landing_pads,
2988         sjlj_find_directly_reachable_regions, remove_eh_handler,
2989         reachable_next_level, foreach_reachable_handler,
2990         can_throw_internal_1, can_throw_external_1,
2991         collect_one_action_chain): Likewise.
2992         * expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise.
2993         * fold-const.c (twoval_comparison_p, eval_subst): Likewise.
2994         * function.c (update_temp_slot_address, instantiate_new_reg,
2995         instantiate_virtual_regs_in_rtx,
2996         instantiate_virtual_regs_in_insn): Likewise.
2997         * gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise.
2998         * gimplify.c (gimplify_call_expr, gimplify_init_constructor,
2999         gimplify_cleanup_point_expr): Likewise.
3000         * ipa-cp.c (ipcp_lattice_changed): Likewise.
3001         * passes.c (next_pass_1): Likewise.
3002         * print-tree.c (print_node_brief, print_node): Likewise.
3003         * profile.c (branch_prob): Likewise.
3004         * tree-dump.c (dump_register): Likewise.
3005         * tree-eh.c (replace_goto_queue_cond_clause, lower_catch):
3006         Likewise.
3007         * tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks,
3008         copy_statement_list, remap_gimple_op_r, copy_tree_body_r,
3009         copy_edges_for_bb, copy_cfg_body, copy_tree_r,
3010         copy_arguments_for_versioning, copy_static_chain): Likewise.
3011         * tree-into-ssa.c (names_replaced_by, add_to_repl_tbl,
3012         add_new_name_mapping, register_new_name_mapping): Likewise.
3013         * tree-mudflap.c (mf_xform_derefs): Likewise.
3014         * tree-predcom.c (struct chain, dump_chain, replace_ref_with,
3015         get_init_expr, combine_chains): Likewise.
3016         * tree-pretty-print.c (dump_generic_node): Likewise.
3017         * tree-ssa-structalias.c (create_variable_info_for): Likewise.
3018         * tree-vrp.c (simplify_cond_using_ranges): Likewise.
3019         * tree.c (substitute_in_expr, iterative_hash_expr): Likewise.
3020         * value-prof.c (gimple_duplicate_stmt_histograms): Likewise.
3021
3022 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
3023
3024         PR middle-end/37010
3025         * calls.c (expand_call): Use the biggest preferred stack
3026         boundary.
3027
3028 2008-08-06  Michael Matz  <matz@suse.de>
3029
3030         PR target/36613
3031         * reload.c (push_reload): Merge in,out,in_reg,out_reg members
3032         for reused reload, instead of overwriting them.
3033
3034 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
3035
3036         PR middle-end/37009
3037         * cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary
3038         for incoming stack boundary.
3039
3040         * function.c (assign_parm_find_entry_rtl): Update
3041         parm_stack_boundary.
3042
3043         * function.h (rtl_data): Add parm_stack_boundary.
3044
3045         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Check
3046         parm_stack_boundary for incoming stack boundary.
3047
3048 2008-08-06  Joseph Myers  <joseph@codesourcery.com>
3049
3050         * jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset
3051         for unrepresentable subregs or treat them as equal to other regs
3052         or subregs with the same register number.
3053
3054 2008-08-06  Aldy Hernandez  <aldyh@redhat.com>
3055
3056         PR middle-end/35432
3057         * gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types
3058         if want_value.
3059
3060 2008-08-06  Jan Hubicka  <jh@suse.cz>
3061
3062         * predict.c (maybe_hot_frequency_p): When profile is absent, all
3063         frequencies might be hot.
3064
3065 2008-08-06  Andreas Krebbel  <krebbel1@de.ibm.com>
3066
3067         * reload.c (find_reloads): Force constants into literal pool
3068         also if they are wrapped in a SUBREG.
3069
3070 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3071
3072         PR target/35659
3073         * haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ...
3074         * sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here.
3075         Don't allow predicated instructions for data speculation.
3076         * sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move
3077         declaration.
3078
3079 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3080
3081         * haifa-sched.c (extend_global): Split to extend_global_data and
3082         extend_region_data.  Update all uses.
3083         (extend_all): Rename to extend_block_data.
3084
3085 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3086
3087         * sched-rgn.c (new_ready): Check if instruction can be
3088         speculatively scheduled before attempting speculation.
3089         (debug_rgn_dependencies): Remove wrongful assert.
3090
3091 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
3092
3093         * config/xtensa/t-xtensa: Remove dependency for gt-xtensa.h.
3094         
3095 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
3096         
3097         * config/xtensa/xtensa.c (xtensa_va_start): Unshare valist.
3098         (xtensa_gimplify_va_arg_expr): Unshare valist, orig_ndx, ndx, array,
3099         va_size, and type_size.
3100         
3101 2008-08-04  Jason Merrill  <jason@redhat.com>
3102
3103         PR c++/37016
3104         * tree-ssa.c (useless_type_conversion_p_1): Call langhook
3105         if TYPE_STRUCTURAL_EQUALITY_P is true for both types.
3106
3107 2008-08-05  Richard Henderson  <rth@redhat.com>
3108
3109         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Check .cfi_personality.
3110         * configure: Rebuild.
3111
3112 2008-08-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3113
3114         PR tree-opt/37024
3115         * tree-tailcall.c (process_assignment): Use gimple_assign_cast_p
3116         instead of IS_CONVERT_EXPR_CODE_P for seeing if the assignment
3117         is a conversion.
3118
3119 2008-08-05  Richard Henderson  <rth@redhat.com>
3120
3121         * Makefile.in (c-cppbuiltin.o): Depend on debug.h.
3122         * c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM.
3123         * doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it.
3124         * common.opt (fdwarf2-cfi-asm): New.
3125         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): New.
3126         * config.in, configure: Rebuild.
3127         * dwarf2asm.c (dw2_asm_output_data_raw): New.
3128         (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw): New.
3129         (dw2_force_const_mem): Externalize.
3130         * dwarf2asm.h: Update.
3131         * dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't
3132         generate a real label.
3133         (output_cfi_directive): New.
3134         (add_fde_cfi): If flag_dwarf2_cfi_asm, use it.
3135         (output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm.
3136         (dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality,
3137         and .cfi_lsda.
3138         (dwarf2out_end_epilogue): Emit .cfi_endproc.
3139         (output_loc_operands_raw, output_loc_sequence_raw): New.
3140         (output_cfa_loc_raw): New.
3141         
3142 2008-08-05  Paul Brook  <paul@codesourcery.com>
3143
3144         * doc/invoke.texi: Document new ARM -mfpu= and -mcpu= options.
3145         * config/arm/arm.c (all_fpus): Add vfpv3 and vfpv3-d16.
3146         (fp_model_for_fpu): Add entry for FPUTYPE_VFP3D16.
3147         (arm_file_start): Add FPUTYPE_VFP3D16.  Rename vfp3 to vfpv3.
3148         * config/arm/arm.h (TARGET_VFPD32): Define.
3149         (TARGET_VFP3): Use TARGET_VFPD32.
3150         (fputype): Add FPUTYPE_VFP3D16.
3151         (LAST_VFP_REGNUM): Use TARGET_VFPD32.
3152         * config/arm/constraints.md ("w"): Use TARGET_VFPD32.
3153         * config/arm/arm-cores.def: Add cortex-r4f.
3154         * config/arm/arm-tune.md: Regenerate.
3155
3156 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3157
3158         * config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus.
3159         Reword some comments throughout the file.
3160
3161         (MFC_MIN_DMA_LIST_ELEMENTS): New define.
3162         (MFC_MAX_DMA_LIST_ELEMENTS): Likewise.
3163         (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of MFC_MIN_DMA_LIST_ELEMENTS.
3164         (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of MFC_MAX_DMA_LIST_ELEMENTS.
3165
3166         (MFC_START_ENABLE): Remove PPU-only define.
3167         (MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise.
3168         (MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise.
3169
3170         (MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants.
3171         (MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise.
3172         (MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise.
3173         (MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise.
3174         (MFC_GETB_CMD, MFC_GETF_CMD): Likewise.
3175         (MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise.
3176         (MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise.
3177
3178         (MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines.
3179         (MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise.
3180         (mfc_sdcrt, mfc_sdcrtst): Likewise.
3181         (mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise.
3182
3183         (spu_read_machine_status): Fix typo.
3184
3185 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3186
3187         * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized
3188         SUBREG of multi-word hard register.
3189         * config/spu/spu.c (valid_subreg): Likewise.
3190         (adjust_operand): Handle SUBREGs of multi-word hard registers.
3191
3192 2008-08-04  Richard Guenther  <rguenther@suse.de>
3193
3194         * tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add
3195         the candidate with the stripped base if that base is different
3196         from the original base even for offset zero.
3197
3198 2008-08-04  Richard Guenther  <rguenther@suse.de>
3199
3200         PR middle-end/36691
3201         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly
3202         check for no_overflow.
3203
3204 2008-08-04  Richard Guenther  <rguenther@suse.de>
3205
3206         * tree-vect-transform.c (vectorizable_call): Fix tuplification.
3207
3208 2008-08-04  Paul Brook  <paul@codesourcery.com>
3209
3210         * cofig/arm/arm.c (thumb_core_reg_alloc_order): New.
3211         (arm_order_regs_for_local_alloc): New function.
3212         * config/arm/arm-protos.h (arm_order_regs_for_local_alloc): Add
3213         prototype.
3214         * config/arm/arm.h (ORDER_REGS_FOR_LOCAL_ALLOC): Define.
3215
3216 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
3217
3218         PR target/37012
3219         * config/i386/i386.c (ix86_expand_prologue): Use UNITS_PER_WORD
3220         instead of STACK_BOUNDARY / BITS_PER_UNIT to align stack.
3221         (ix86_expand_epilogue): Likewise.
3222
3223 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
3224
3225         * config/i386/i386.c (ix86_compute_frame_layout): Fix a typo
3226         in comments.
3227
3228 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
3229
3230         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x
3231         to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES.
3232         (*movv2sf_internal_rex64): Ditto.
3233
3234 2008-08-03  Jan Hubicka  <jh@suse.cz>
3235
3236         * optabs.c (expand_binop, expand_builtin_pow, expand_builtin_powi,
3237         expand_builtin_strcat): Upse optimize_insn_for_speed predicate.
3238         * expmed.c (expand_smod_pow2): Likewise.
3239
3240 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
3241
3242         PR target/36992
3243         * config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
3244         alternative 0 of operand 1.
3245         (*vec_concatv2di_rex64_sse): Ditto.
3246         (*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
3247         of operand 1.
3248         (*sse2_storeq_rex64): Penalize allocation of "r" registers.
3249         * config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation
3250         of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
3251         (*movv2sf_internal_rex64): Ditto.
3252
3253 2008-08-02  Richard Guenther  <rguenther@suse.de>
3254
3255         PR target/35252
3256         * config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators.
3257         (ssedoublesizemode): New mode attribute.
3258         (sse_shufps): Call gen_sse_shufps_v4sf.
3259         (sse_shufps_1): Macroize.
3260         (sse2_shufpd): Call gen_Sse_shufpd_v2df.
3261         (sse2_shufpd_1): Macroize.
3262         (vec_extract_odd, vec_extract_even): New expanders.
3263         (vec_interleave_highv4sf, vec_interleave_lowv4sf,
3264         vec_interleave_highv2df, vec_interleave_lowv2df): Likewise.
3265         * i386.c (ix86_expand_vector_init_one_nonzero): Call
3266         gen_sse_shufps_v4sf instead of gen_sse_shufps_1.
3267         (ix86_expand_vector_set): Likewise.
3268         (ix86_expand_reduc_v4sf): Likewise.
3269
3270 2008-08-01  Doug Kwan  <dougkwan@google.com>
3271
3272         * matrix-reorg.c: Re-enable all code.
3273         (struct malloc_call_data): Change CALL_STMT to gimple type.
3274         (collect_data_for_malloc_call): Tuplify.
3275         (struct access_site_info): Change STMT to gimple type.
3276         (struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT,
3277         and MALLOC_FOR_LEVEL to gimple and gimple pointer type.
3278         (struct free_info): Change STMT to gimple type.
3279         (struct matrix_access_phi_node):  Change PHI to gimple type.
3280         (get_inner_of_cast_expr): Remove.
3281         (may_flatten_matrices_1): Tuplify.
3282         (may_flatten_matrices): Ditto.
3283         (mark_min_matrix_escape_level): Ditto.
3284         (ssa_accessed_in_tree): Refactor statement RHS related code into ...
3285         (ssa_accessed_in_call_rhs): New
3286         (ssa_accessed_in_assign_rhs): New
3287         (record_access_alloc_site_info): Tuplify.
3288         (add_allocation_site): Ditto.
3289         (analyze_matrix_allocation_site): Ditto.
3290         (analyze_transpose): Ditto.
3291         (get_index_from_offset): Ditto.
3292         (update_type_size): Ditto.
3293         (analyze_accesses_for_call_expr): Tuplify and renamed into ...
3294         (analyze_accesses_for_call_stmt): New. Also handle LHS of a call.
3295         (analyze_accesses_for_phi_node): Tuplify.
3296         (analyze_accesses_for_modify_stmt): Tuplify and renamed into ...
3297         (analyze_accesses_for_assign_stmt): Remove code for handling call LHS.
3298         (analyze_matrix_accesses): Tuplify.
3299         (check_var_data): New call-back type for check_var_notmodified_p.
3300         (check_var_notmodified_p): Tuplify and use call-back struct to
3301         return statement found.
3302         (can_calculate_expr_before_stmt): Factor out statement related code
3303         into ...
3304         (can_calculate_stmt_before_stmt): New.
3305         (check_allocation_function): Tuplify.
3306         (find_sites_in_func): Ditto.
3307         (record_all_accesses_in_func): Ditto.
3308         (transform_access_sites): Ditto.
3309         (transform_allocation_sites): Ditto.
3310         (matrix_reorg): Re-enable.
3311         (gate_matrix_reorg): Re-enable.
3312
3313 2008-08-01  Jakub Jelinek  <jakub@redhat.com>
3314
3315         * dwarf2out.c (compute_barrier_args_size): Set barrier_args_size
3316         for labels for which it hasn't been set yet.  If it has been set,
3317         stop walking insns and continue with next worklist item.
3318         (dwarf2out_stack_adjust): Don't call compute_barrier_args_size
3319         if the only BARRIER is at the very end of a function.
3320
3321 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
3322
3323         * cfgexpand.c (expand_stack_alignment): Assert that
3324         stack_realign_drap and drap_rtx must match.
3325
3326         * function.c (instantiate_new_reg): If DRAP is used to realign
3327         stack, replace virtual_incoming_args_rtx with internal arg
3328         pointer.
3329
3330 2008-08-01  Richard Guenther  <rguenther@suse.de>
3331
3332         * tree-ssa-pre.c (fini_pre): Take in_fre parameter.  Free
3333         loop information only if we initialized it.
3334         (execute_pre): Call fini_pre with in_fre.
3335         * tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump
3336         if we do not unroll because we hit max-completely-peeled-insns.
3337         Use our estimation for consistency, do allow shrinking.
3338
3339 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
3340
3341         * config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY
3342         with MIN_STACK_BOUNDARY.
3343         (ix86_update_stack_boundary): Likewise.
3344         (ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of
3345         STACK_BOUNDARY.
3346
3347         * config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ...
3348         (MIN_STACK_BOUNDARY): This.
3349
3350 2008-08-01  Richard Guenther  <rguenther@suse.de>
3351
3352         PR middle-end/36997
3353         * gimplify.c (gimplify_call_expr): Set error_mark_node on GS_ERROR.
3354
3355 2008-08-01  Richard Guenther  <rguenther@suse.de>
3356
3357         PR tree-optimization/36988
3358         * tree-ssa-ccp.c (ccp_fold): Conversions of constants only
3359         do not matter if that doesn't change volatile qualification.
3360
3361 2008-08-01  Paolo Bonzini  <bonzini@gnu.org>
3362
3363         * configure.ac: Do not generate libada-mk.  Do not subst
3364         host_cc_for_libada.
3365         * libada-mk.in: Remove.
3366         * Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars.
3367         * configure: Regenerate.
3368
3369 2008-08-01  Basile Starynkevitch  <basile@starynkevitch.net>
3370
3371         * tree-pass.h: Added comment about not dumping passes with name
3372         starting with star in struct opt_pass.
3373         * passes.c (register_dump_files_1): Don't do dump for a pass with
3374         name starting with star.
3375         * doc/passes.texi (Pass manager): Mention pass names and special
3376         meaning of star prefix to avoid dump.
3377
3378 2008-07-31  Adam Nemet  <anemet@caviumnetworks.com>
3379
3380         * config.gcc (mipsisa64r2*-*-linux*): New configuration.  Set ISA
3381         to MIPS64r2.
3382         * config/mips/mips.h (GENERATE_MIPS16E): Update comment.
3383         (ISA_MIPS64R2): New macro.
3384         (TARGET_CPU_CPP_BUILTINS, MULTILIB_ISA_DEFAULT): Handle it.
3385         (ISA_HAS_64BIT_REGS, ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE,
3386         ISA_HAS_8CC, ISA_HAS_FP4, ISA_HAS_PAIRED_SINGLE,
3387         ISA_HAS_MADD_MSUB, ISA_HAS_NMADD4_NMSUB4, ISA_HAS_CLZ_CLO,
3388         ISA_HAS_ROR, ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX, ISA_HAS_SEB_SEH,
3389         ISA_HAS_EXT_INS, ISA_HAS_MXHC1, ISA_HAS_HILO_INTERLOCKS,
3390         ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Return true for ISA_MIPS64R2.
3391         (MIPS_ISA_LEVEL_SPEC, ASM_SPEC, LINK_SPEC): Handle -mips64r2.
3392         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF):
3393         Move up to keep list alphabetically sorted.
3394         (TUNE_20KC, TUNE_24K, TUNE_74K, TUNE_LOONGSON_2EF): Likewise.
3395         * config/mips/mips.c (mips_cpu_info_table): Add default MIPS64r2
3396         processor.
3397         * doc/invoke.texi (MIPS Options): Add -mips64r2.
3398         (-march=@var{arch}): Add mips64r2.
3399
3400 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
3401
3402         * config/i386/darwin.h (MAIN_STACK_BOUNDARY): Define to 128.
3403
3404 2008-07-31  Steve Ellcey  <sje@cup.hp.com>
3405
3406         * expr.c (expand_assignment): Check for complete type.
3407
3408 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
3409
3410         PR debug/36977
3411         * cfgexpand.c (expand_stack_alignment): Set stack_realign_tried.
3412
3413         * dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried
3414         for stack alignment.
3415
3416         * function.h (rtl_data): Add stack_realign_tried.  Update comments.
3417
3418 2008-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
3419
3420         * config/sh/sh.c (sh_canonical_va_list_type): Remove.
3421         (TARGET_CANONICAL_VA_LIST_TYPE): Remove.
3422
3423 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
3424
3425         PR rtl-optimization/36419
3426         * dwarf2out.c (barrier_args_size): New variable.
3427         (compute_barrier_args_size, compute_barrier_args_size_1): New
3428         functions.
3429         (dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size
3430         if not called yet in the current function, use barrier_args_size
3431         array to find the new args_size value.
3432         (dwarf2out_frame_debug): Free and clear barrier_args_size.
3433
3434 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
3435
3436         PR debug/36980
3437         * dwarf2out.c (dwarf2out_frame_debug_expr): Move rule 17 before
3438         rule 19.
3439
3440 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
3441
3442         PR debug/36976
3443         * dwarf2out.c (dwarf2out_args_size_adjust): New.
3444         (dwarf2out_stack_adjust): Use it.
3445         (dwarf2out_frame_debug_expr): Likewise.
3446
3447 2008-07-31  Richard Guenther  <rguenther@suse.de>
3448
3449         PR tree-optimization/36978
3450         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Do not fold
3451         the generated condition.
3452
3453 2008-07-31  Richard Guenther  <rguenther@suse.de>
3454
3455         * passes.c (init_optimization_passes): Always call
3456         pass_early_warn_uninitialized.
3457         * opts.c (decode_options): Do not warn about -Wuninitialized at -O0.
3458         * doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0.
3459         * doc/passes.texi (Warn for uninitialized variables): Adjust.
3460
3461 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
3462
3463         PR c/36970
3464         * builtins.c (maybe_emit_free_warning): New function.
3465         (expand_builtin): Process BUILT_IN_FREE even at -O0.  Call
3466         maybe_emit_free_warning for BUILT_IN_FREE.
3467
3468         PR debug/36278
3469         * dwarf2out.c (get_context_die): New function.
3470         (force_decl_die, force_type_die): Use it.
3471         (dwarf2out_imported_module_or_decl): Likewise.  If base_type_die
3472         returns NULL, force generation of DW_TAG_typedef and put that into
3473         DW_AT_import.
3474
3475         PR preprocessor/36649
3476         * c-pch.c (c_common_read_pch): Save and restore
3477         line_table->trace_includes across PCH restore.
3478
3479 2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>
3480
3481         PR ada/36554
3482         * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.
3483
3484 2008-07-30  Rafael Avila de Espindola  <espindola@google.com>
3485
3486         PR 36974
3487         * final.c (call_from_call_insn): Handle COND_EXEC.
3488
3489 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
3490
3491         * builtins.c (std_gimplify_va_arg_expr): Replace
3492         PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT.
3493         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
3494
3495 2008-07-30  Joey Ye  <joey.ye@intel.com>
3496             H.J. Lu  <hongjiu.lu@intel.com>
3497
3498         * builtins.c (expand_builtin_setjmp_receiver): Replace
3499         virtual_incoming_args_rtx with crtl->args.internal_arg_pointer.
3500         (expand_builtin_apply_args_1): Likewise.
3501         (expand_builtin_longjmp): Need DRAP for stack alignment.
3502         (expand_builtin_apply): Likewise.
3503
3504         * caller-save.c (setup_save_areas): Call assign_stack_local_1
3505         instead of assign_stack_local to allow alignment reduction.
3506
3507         * calls.c (emit_call_1): Need DRAP for stack alignment if
3508         return pops.
3509         (expand_call): Replace virtual_incoming_args_rtx with
3510         crtl->args.internal_arg_pointer.
3511         * stmt.c (expand_nl_goto_receiver): Likewise.
3512
3513         * cfgexpand.c (get_decl_align_unit): Estimate stack variable
3514         alignment and store to stack_alignment_estimated and
3515         max_used_stack_slot_alignment.
3516         (expand_one_var): Likewise.
3517         (expand_stack_alignment): New function.
3518         (tree_expand_cfg): Initialize max_used_stack_slot_alignment
3519         and stack_alignment_estimated fields in rtl_data.  Call
3520         expand_stack_alignment at end.
3521
3522         * defaults.h (INCOMING_STACK_BOUNDARY): New.
3523         (MAX_STACK_ALIGNMENT): Likewise.
3524         (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise.
3525         (SUPPORTS_STACK_ALIGNMENT): Likewise.
3526
3527         * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for
3528         stack alignment when generating virtual registers.
3529
3530         * function.c (assign_stack_local): Renamed to ...
3531         (assign_stack_local_1): This.  Add a parameter to indicate
3532         if it is OK to reduce alignment.
3533         (assign_stack_local): Use it.
3534         (instantiate_new_reg): Instantiate virtual incoming args rtx
3535         to vDRAP if stack realignment and DRAP is needed.
3536         (assign_parms): Collect parameter/return type alignment and
3537         contribute to stack_alignment_estimated.
3538         (locate_and_pad_parm): Likewise.
3539         (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx
3540         with crtl->args.internal_arg_pointer.
3541
3542         * function.h (rtl_data): Add new field drap_reg,
3543         max_used_stack_slot_alignment, stack_alignment_estimated,
3544         stack_realign_needed, need_drap, stack_realign_processed and
3545         stack_realign_finalized.
3546         (stack_realign_fp): New macro.
3547         (stack_realign_drap): Likewise.
3548
3549         * global.c (compute_regsets): Frame pointer is needed when
3550         stack is realigned.  Can eliminate frame pointer when stack is
3551         realigned and dynamic realigned argument pointer isn't used.
3552
3553         * reload1.c (update_eliminables):  Frame pointer is needed
3554         when stack is realigned.
3555         (init_elim_table): Can eliminate frame pointer when stack is
3556         realigned and dynamic realigned argument pointer isn't used.
3557
3558         * rtl.h (assign_stack_local_1): Declare new funtion.
3559
3560         * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New.
3561         (TARGET_GET_DRAP_RTX): Likewise.
3562         (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and
3563         TARGET_GET_DRAP_RTX.
3564
3565         * target.h (gcc_target): Add update_stack_boundary and get_drap_rtx.
3566
3567         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
3568         STACK_BOUNDARY with MAX_STACK_ALIGNMENT.
3569
3570 2008-07-30  Xuepeng Guo  <xuepeng.guo@intel.com>
3571             H.J. Lu  <hongjiu.lu@intel.com>
3572
3573         * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg,
3574         vdrap_reg, stack_realign and drap_reg_saved.
3575         (add_cfi): Don't allow redefining CFA when DRAP is used.
3576         (reg_save): Handle stack alignment.
3577         (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack
3578         alignment.  Don't generate DWARF information for (set fp sp)
3579         when DRAP is used.
3580         (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg
3581         to INVALID_REGNUM.
3582         (int_loc_descriptor): Move prototype forward.  Also define if
3583         DWARF2_UNWIND_INFO is true.
3584         (output_cfa_loc): Handle DW_CFA_expression.
3585         (build_cfa_aligned_loc): New.
3586         (based_loc_descr): Update assert for stack realign.  For local
3587         variables, use sp+offset when stack is aligned without drap and
3588         fp+offset when stack is aligned with drap.  For arguments, use
3589         cfa+offset when drap is used to align stack.
3590
3591 2008-07-30  Joey Ye  <joey.ye@intel.com>
3592             H.J. Lu  <hongjiu.lu@intel.com>
3593
3594         * config/i386/i386.c (ix86_force_align_arg_pointer_string):
3595         Break long line.
3596         (ix86_gen_andsp): New.
3597         (ix86_user_incoming_stack_boundary): Likewise.
3598         (ix86_default_incoming_stack_boundary): Likewise.
3599         (ix86_incoming_stack_boundary): Likewise.
3600         (ix86_can_eliminate): Likewise.
3601         (find_drap_reg): Likewise.
3602         (ix86_update_stack_boundary): Likewise.
3603         (ix86_get_drap_rtx): Likewise.
3604         (ix86_finalize_stack_realign_flags): Likewise.
3605         (TARGET_UPDATE_STACK_BOUNDARY): Likewise.
3606         (TARGET_GET_DRAP_RTX): Likewise.
3607         (override_options): Overide option value for new options.
3608         (ix86_function_ok_for_sibcall): Remove check for
3609         force_align_arg_pointer.
3610         (ix86_handle_cconv_attribute): Likewise.
3611         (ix86_function_regparm): Likewise.
3612         (setup_incoming_varargs_64): Don't set stack_alignment_needed here.
3613         (ix86_va_start): Replace virtual_incoming_args_rtx with
3614         crtl->args.internal_arg_pointer.
3615         (ix86_select_alt_pic_regnum): Check DRAP register.
3616         (ix86_save_reg): Replace force_align_arg_pointer with drap_reg.
3617         (ix86_compute_frame_layout): Compute frame layout wrt stack
3618         realignment.
3619         (ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx.
3620         (ix86_expand_prologue): Decide if stack realignment is needed
3621         and generate prologue code accordingly.
3622         (ix86_expand_epilogue): Generate epilogue code wrt stack
3623         realignment is really needed or not.
3624         
3625         * config/i386/i386.h (MAIN_STACK_BOUNDARY): New.
3626         (ABI_STACK_BOUNDARY): Likewise.
3627         (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise.
3628         (STACK_REALIGN_DEFAULT): Likewise.
3629         (INCOMING_STACK_BOUNDARY): Likewise.
3630         (MAX_STACK_ALIGNMENT): Likewise.
3631         (ix86_incoming_stack_boundary): Likewise.
3632         (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed.
3633         (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG.
3634         (CAN_ELIMINATE): Defined with ix86_can_eliminate.
3635         (machine_function): Remove force_align_arg_pointer.
3636
3637         * config/i386/i386.md (BX_REG): New.
3638         (R13_REG): Likewise.
3639
3640         * config/i386/i386.opt (mforce_drap): New.
3641         (mincoming-stack-boundary): Likewise.
3642         (mstackrealign): Add Init(-1).
3643
3644         * config/i386/i386-protos.h (ix86_can_eliminate): New
3645
3646 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
3647
3648         * doc/extend.texi: Update force_align_arg_pointer.
3649
3650         * doc/invoke.texi: Document -mincoming-stack-boundary.  Update
3651         -mstackrealign.
3652
3653         * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro.
3654         (INCOMING_STACK_BOUNDARY): Likewise.
3655         (TARGET_UPDATE_STACK_BOUNDARY): New target hook.
3656         (TARGET_GET_DRAP_RTX): Likewise.
3657
3658 2008-07-30  Andreas Schwab  <schwab@suse.de>
3659
3660         PR rtl-optimization/36929
3661         * dse.c (replace_inc_dec): Use emit_insn_before instead of
3662         add_insn_before and fix argument order.
3663         (replace_inc_dec_mem): Handle NULL rtx.
3664
3665 2008-07-30  Andrew Jenner  <andrew@codesourcery.com>
3666
3667         * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
3668         function.
3669         (arm_compute_initial_elimination_offset): Use it.
3670         (arm_compute_save_reg_mask): Include static chain save slot when
3671         calculating alignment.
3672         (arm_get_frame_offsets): Ditto.
3673         (thumb1_compute_save_reg_mask): Ensure we have a low register saved
3674         that we can use to decrement the stack when the stack decrement
3675         could be too big for an immediate value in a single insn.
3676         (thumb1_expand_prologue): Avoid using r12 for stack decrement.
3677
3678 2008-07-30  Richard Guenther  <rguenther@suse.de>
3679
3680         PR tree-optimization/36967
3681         * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p.
3682         Release defs of statements we remove.
3683
3684 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
3685
3686         * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
3687         instead of NULL_RTVEC.
3688
3689 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
3690
3691         PR target/35866
3692
3693         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
3694         vector modes.
3695
3696 2008-07-30  Rafael Avila de Espindola  <espindola@google.com>
3697
3698         * final.c (call_from_call_insn): New.
3699         (final_scan_insn): Call assemble_external on FUNCTION_DECLs.
3700
3701 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
3702
3703         * configure.ac: Substitute ADA_CFLAGS.
3704         * configure: Regenerate.
3705         * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files.
3706         * Makefile.in: Remove mention of X_* variables.
3707         * config/pa/x-ada-hpux10: Remove.
3708         * config/pa/x-ada: Remove.
3709
3710         * doc/fragments.texi: Update.
3711
3712 2008-07-30  Olivier Hainque  <hainque@adacore.com>
3713
3714         * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
3715         * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
3716         __dso_handle explicitly here.
3717
3718 2008-07-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3719
3720         PR 34389
3721         * c-typeck.c (build_binary_op): Encapsulate code into...
3722         * c-common.c (shorten_binary_op): ...this new function.
3723         (conversion_warning): Use the new function. Handle non-negative
3724         constant in bitwise-and.
3725         * c-common.h (shorten_binary_op): Declare.
3726
3727 2008-07-30  Olivier Hainque  <hainque@adacore.com>
3728
3729         * scan.c (make_sstring_space): Add explicit conversions of
3730         allocator's return value.
3731         * fix-header.c (recognized_function): Likewise.
3732
3733 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3734
3735         * doc/cpp.texi: Update to GFDL 1.2.
3736         * doc/gcc.texi: Do not list GPL as Invariant Section.
3737         * doc/gccint.texi: Likewise.  Update copyright years.
3738         * doc/install.texi: Update copyright years.
3739
3740 2008-07-30  Alan Modra  <amodra@bigpond.net.au>
3741
3742         PR target/36955
3743         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
3744         a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.
3745
3746 2008-07-29  Jan Hubicka  <jh@suse.cz>
3747
3748         * c-decl.c (merge_decls): Do not handle DECL_INLINE.
3749         (grokdeclarator): Likewise.
3750         * langhooks.c (lhd_warn_unused_global_decl): Use
3751         DECL_DECLARED_INLINE_P.
3752         * print-tree.c (print_node): Remove DECL_INLINE check.
3753
3754 2008-07-29  Richard Guenther  <rguenther@suse.de>
3755
3756         PR tree-optimization/36945
3757         * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
3758         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
3759         Record invariant addresses un-decomposed.
3760         (copy_reference_ops_from_call): Record reference call
3761         arguments properly.  Simplify.
3762         * tree-ssa-pre.c (create_component_ref_by_pieces_1): New
3763         helper split out from ...
3764         (create_component_ref_by_pieces): ... here.  Simplify.
3765         Prepare for recursive invocation for call arguments.
3766         (create_expression_by_pieces): Adjust call to
3767         create_component_ref_by_pieces.
3768         (compute_avail): Process operand 2 of reference ops.
3769
3770 2008-07-29  Richard Guenther  <rguenther@suse.de>
3771
3772         * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for OBJ_TYPE_REF.
3773
3774 2008-07-29  Jakub Jelinek  <jakub@redhat.com>
3775
3776         * c-format.c (check_format_types): Revert unwanted checkin.
3777
3778 2008-07-29  Jan Hubicka  <jh@suse.cz>
3779
3780         * flags.h (flag_really_no_inline): Remove.
3781         * cgraph.c (cgraph_function_possibly_inlined_p): Simplify.
3782         * toplev.c (flag_really_no_inline): Remove.
3783         * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline.
3784         * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline.
3785         (cgraph_decide_inlining_incrementally): Likewise.
3786         (compute_inline_parameters): Likewise.
3787         * opts.c (decode_options): Simplify.
3788         * c-opts.c (c_common_post_options): Do not set flag_no_inline.
3789         * common.opt (finline): Initialize to 1.
3790         * tree-inline.c (inlinable_function_p): Check flag_no_inline.
3791
3792 2008-07-29  Jan Hubicka  <jh@suse.cz>
3793
3794         * predict.c (always_optimize_for_size_p): New function.
3795         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
3796         optimize_edge_for_size_p, optimize_edge_for_speed_p,
3797         optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
3798         functions.
3799         (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
3800         * function.c (prepare_function_start): Set default profile.
3801         * function.h (rtl_data): Add maybe_hot_insn_p.
3802         * cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
3803         (construct_exit_block): Likewise.
3804         (tree_expand_cfg): Likewise.
3805         * basic-block.h
3806         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
3807         optimize_edge_for_size_p, optimize_edge_for_speed_p,
3808         optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
3809         (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
3810         Declare.
3811
3812 2008-07-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3813
3814         PR 34985
3815         * c-decl.c (merge_decls): Merge USED flags.
3816
3817 2008-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
3818
3819         * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
3820         valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit,
3821         next_stack, lab_false and lab_over trees.
3822
3823 2008-07-28  Richard Guenther  <rguenther@suse.de>
3824
3825         PR tree-optimization/36957
3826         * tree-flow.h (tree_ssa_useless_type_conversion): Remove.
3827         (useless_type_conversion_p): Remove.
3828         (types_compatible_p): Remove.
3829         * gimple.h (tree_ssa_useless_type_conversion): Declare.
3830         (useless_type_conversion_p): Declare.
3831         (types_compatible_p): Declare.
3832         (gimple_expr_type): Return the base type only if it is
3833         trivially convertible to the subtype.
3834
3835 2008-07-28  Andreas Tobler  <a.tobler@schweiz.org>
3836
3837         * configure.ac: Use the m4_do macro to concatenate the warnings into
3838         one string in ACX_PROG_CC_WARNING_OPTS,
3839         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and ACX_PROG_CC_WARNINGS_ARE_ERRORS.
3840         * configure: Regenerate.
3841
3842 2008-07-28  Richard Guenther  <rguenther@suse.de>
3843
3844         * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code.
3845         (insert_fake_stores): Remove.
3846         (realify_fake_stores): Likewise.
3847         (execute_pre): Remove dead code.
3848         * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary case.
3849         (find_func_aliases): Deal with it here instead.
3850         Re-enable gcc_unreachable call.
3851
3852 2008-07-28  Richard Guenther  <rguenther@suse.de>
3853
3854         Merge from gimple-tuples-branch.
3855
3856         * ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
3857         * gimple.def: New file.
3858         * gsstruct.def: Likewise.
3859         * gimple-iterator.c: Likewise.
3860         * gimple-pretty-print.c: Likewise.
3861         * tree-gimple.c: Removed.  Merged into ...
3862         * gimple.c: ... here.  New file.
3863         * tree-gimple.h: Removed.  Merged into ...
3864         * gimple.h: ... here.  New file.
3865
3866         * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
3867         * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
3868         --enable-checking=gimple flag.
3869         * config.in: Likewise.
3870         * configure: Regenerated.
3871
3872         * tree-ssa-operands.h: Tuplified.
3873         * tree-vrp.c: Likewise.
3874         * tree-loop-linear.c: Likewise.
3875         * tree-into-ssa.c: Likewise.
3876         * tree-ssa-loop-im.c: Likewise.
3877         * tree-dump.c: Likewise.
3878         * tree-complex.c: Likewise.
3879         * cgraphbuild.c: Likewise.
3880         * tree-ssa-threadupdate.c: Likewise.
3881         * tree-ssa-loop-niter.c: Likewise.
3882         * tree-pretty-print.c: Likewise.
3883         * tracer.c: Likewise.
3884         * gengtype.c: Likewise.
3885         * tree-loop-distribution.c: Likewise.
3886         * tree-ssa-loop-unswitch.c: Likewise.
3887         * cgraph.c: Likewise.
3888         * cgraph.h: Likewise.
3889         * tree-ssa-loop-manip.c: Likewise.
3890         * value-prof.c: Likewise.
3891         * tree-ssa-loop-ch.c: Likewise.
3892         * tree-tailcall.c: Likewise.
3893         * value-prof.h: Likewise.
3894         * tree.c: Likewise.
3895         * tree.h: Likewise.
3896         * tree-pass.h: Likewise.
3897         * ipa-cp.c: Likewise.
3898         * tree-scalar-evolution.c: Likewise.
3899         * tree-scalar-evolution.h: Likewise.
3900         * target.h: Likewise.
3901         * lambda-mat.c: Likewise.
3902         * tree-phinodes.c: Likewise.
3903         * diagnostic.h: Likewise.
3904         * builtins.c: Likewise.
3905         * tree-ssa-alias-warnings.c: Likewise.
3906         * cfghooks.c: Likewise.
3907         * fold-const.c: Likewise.
3908         * cfghooks.h: Likewise.
3909         * omp-low.c: Likewise.
3910         * tree-ssa-dse.c: Likewise.
3911         * ipa-reference.c: Likewise.
3912         * tree-ssa-uncprop.c: Likewise.
3913         * toplev.c: Likewise.
3914         * tree-gimple.c: Likewise.
3915         * tree-gimple.h: Likewise.
3916         * tree-chrec.c: Likewise.
3917         * tree-chrec.h: Likewise.
3918         * tree-ssa-sccvn.c: Likewise.
3919         * tree-ssa-sccvn.h: Likewise.
3920         * cgraphunit.c: Likewise.
3921         * tree-ssa-copyrename.c: Likewise.
3922         * tree-ssa-ccp.c: Likewise.
3923         * tree-ssa-loop-ivopts.c: Likewise.
3924         * tree-nomudflap.c: Likewise.
3925         * tree-call-cdce.c: Likewise.
3926         * ipa-pure-const.c: Likewise.
3927         * c-format.c: Likewise.
3928         * tree-stdarg.c: Likewise.
3929         * tree-ssa-math-opts.c: Likewise.
3930         * tree-ssa-dom.c: Likewise.
3931         * tree-nrv.c: Likewise.
3932         * tree-ssa-propagate.c: Likewise.
3933         * ipa-utils.c: Likewise.
3934         * tree-ssa-propagate.h: Likewise.
3935         * tree-ssa-alias.c: Likewise.
3936         * gimple-low.c: Likewise.
3937         * tree-ssa-sink.c: Likewise.
3938         * ipa-inline.c: Likewise.
3939         * c-semantics.c: Likewise.
3940         * dwarf2out.c: Likewise.
3941         * expr.c: Likewise.
3942         * tree-ssa-loop-ivcanon.c: Likewise.
3943         * predict.c: Likewise.
3944         * tree-ssa-loop.c: Likewise.
3945         * tree-parloops.c: Likewise.
3946         * tree-ssa-address.c: Likewise.
3947         * tree-ssa-ifcombine.c: Likewise.
3948         * matrix-reorg.c: Likewise.
3949         * c-decl.c: Likewise.
3950         * tree-eh.c: Likewise.
3951         * c-pretty-print.c: Likewise.
3952         * lambda-trans.c: Likewise.
3953         * function.c: Likewise.
3954         * langhooks.c: Likewise.
3955         * ebitmap.h: Likewise.
3956         * tree-vectorizer.c: Likewise.
3957         * function.h: Likewise.
3958         * langhooks.h: Likewise.
3959         * tree-vectorizer.h: Likewise.
3960         * ipa-type-escape.c: Likewise.
3961         * ipa-type-escape.h: Likewise.
3962         * domwalk.c: Likewise.
3963         * tree-if-conv.c: Likewise.
3964         * profile.c: Likewise.
3965         * domwalk.h: Likewise.
3966         * tree-data-ref.c: Likewise.
3967         * tree-data-ref.h: Likewise.
3968         * tree-flow-inline.h: Likewise.
3969         * tree-affine.c: Likewise.
3970         * tree-vect-analyze.c: Likewise.
3971         * c-typeck.c: Likewise.
3972         * gimplify.c: Likewise.
3973         * coretypes.h: Likewise.
3974         * tree-ssa-phiopt.c: Likewise.
3975         * calls.c: Likewise.
3976         * tree-ssa-coalesce.c: Likewise.
3977         * tree.def: Likewise.
3978         * tree-dfa.c: Likewise.
3979         * except.c: Likewise.
3980         * except.h: Likewise.
3981         * cfgexpand.c: Likewise.
3982         * tree-cfgcleanup.c: Likewise.
3983         * tree-ssa-pre.c: Likewise.
3984         * tree-ssa-live.c: Likewise.
3985         * tree-sra.c: Likewise.
3986         * tree-ssa-live.h: Likewise.
3987         * tree-predcom.c: Likewise.
3988         * lambda.h: Likewise.
3989         * tree-mudflap.c: Likewise.
3990         * ipa-prop.c: Likewise.
3991         * print-tree.c: Likewise.
3992         * tree-ssa-copy.c: Likewise.
3993         * ipa-prop.h: Likewise.
3994         * tree-ssa-forwprop.c: Likewise.
3995         * ggc-page.c: Likewise.
3996         * c-omp.c: Likewise.
3997         * tree-ssa-dce.c: Likewise.
3998         * tree-vect-patterns.c: Likewise.
3999         * tree-ssa-ter.c: Likewise.
4000         * tree-nested.c: Likewise.
4001         * tree-ssa.c: Likewise.
4002         * lambda-code.c: Likewise.
4003         * tree-ssa-loop-prefetch.c: Likewise.
4004         * tree-inline.c: Likewise.
4005         * tree-inline.h: Likewise.
4006         * tree-iterator.c: Likewise.
4007         * tree-optimize.c: Likewise.
4008         * tree-ssa-phiprop.c: Likewise.
4009         * tree-vect-transform.c: Likewise.
4010         * tree-object-size.c: Likewise.
4011         * tree-outof-ssa.c: Likewise.
4012         * cfgloop.c: Likewise.
4013         * system.h: Likewise.
4014         * tree-profile.c: Likewise.
4015         * cfgloop.h: Likewise.
4016         * c-gimplify.c: Likewise.
4017         * c-common.c: Likewise.
4018         * tree-vect-generic.c: Likewise.
4019         * tree-flow.h: Likewise.
4020         * c-common.h: Likewise.
4021         * basic-block.h: Likewise.
4022         * tree-ssa-structalias.c: Likewise.
4023         * tree-switch-conversion.c: Likewise.
4024         * tree-ssa-structalias.h: Likewise.
4025         * tree-cfg.c: Likewise.
4026         * passes.c: Likewise.
4027         * ipa-struct-reorg.c: Likewise.
4028         * ipa-struct-reorg.h: Likewise.
4029         * tree-ssa-reassoc.c: Likewise.
4030         * cfgrtl.c: Likewise.
4031         * varpool.c: Likewise.
4032         * stmt.c: Likewise.
4033         * tree-ssanames.c: Likewise.
4034         * tree-ssa-threadedge.c: Likewise.
4035         * langhooks-def.h: Likewise.
4036         * tree-ssa-operands.c: Likewise.
4037         * config/alpha/alpha.c: Likewise.
4038         * config/frv/frv.c: Likewise.
4039         * config/s390/s390.c: Likewise.
4040         * config/m32c/m32c.c: Likewise.
4041         * config/m32c/m32c-protos.h: Likewise.
4042         * config/spu/spu.c: Likewise.
4043         * config/sparc/sparc.c: Likewise.
4044         * config/i386/i386.c: Likewise.
4045         * config/sh/sh.c: Likewise.
4046         * config/xtensa/xtensa.c: Likewise.
4047         * config/stormy16/stormy16.c: Likewise.
4048         * config/ia64/ia64.c: Likewise.
4049         * config/rs6000/rs6000.c: Likewise.
4050         * config/pa/pa.c: Likewise.
4051         * config/mips/mips.c: Likewise.
4052
4053 2008-07-28  Simon Baldwin  <simonb@google.com>
4054
4055         * c-pragma.c (handle_pragma_message): New function.
4056         (init_pragma): Register handle_pragma_message.
4057         * doc/extend.texi (Diagnostic Pragmas): Added #pragma message
4058         documentation.
4059
4060 2008-07-27  Victor Kaplansky  <victork@il.ibm.com>
4061
4062         PR tree-optimization/35252
4063         * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
4064         REALPART_EXPR to be considered as same load operation.
4065
4066 2008-07-27  Eric Botcazou  <ebotcazou@adacore.com>
4067
4068         PR tree-optimization/36830
4069         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
4070         (expressions_equal_p): Return false if only one operand is null.
4071
4072 2008-07-26  Gerald Pfeifer  <gerald@pfeifer.com>
4073
4074         * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
4075         version requirements.
4076
4077 2008-07-26  Olivier Hainque  <hainque@adacore.com>
4078
4079         * collect2.c (symkind): New enum.  Symbol kinds we care about.
4080         (is_ctor_dtor): Return symkind instead of int.  Adjust prototype,
4081         code and head comment accordingly.
4082         (scan_prog_file): Use symkind names instead of bare integers.
4083
4084 2008-07-25  Jan Hubicka  <jh@suse.cz>
4085
4086         * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on
4087         DECL_INLINE.
4088         * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
4089         (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
4090         * dojump.c (clear_pending_stack_adjust): Likewise.
4091         * print-tree.c (print_node): Ignore DECL_INLINE.
4092         * tree-inline.c (inlinable_function_p): Likewise.
4093
4094 2008-07-25  Michael Meissner  <gnu@the-meissners.org>
4095
4096         * doc/extend.texi (hot attribute): Document that the hot attribute
4097         turns on -O3 for some ports.
4098         (cold attribute): Document that the cold attribute turns on -Os
4099         for some ports
4100
4101         * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
4102         reflect function specific option support.
4103
4104         * target.h (struct target_option_hooks): Add fields to say whether
4105         the cold attribute implies -Os and the hot attribute implies -O3.
4106
4107         * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
4108         By default, do not turn on -Os for cold functions.
4109         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
4110         not turn on -O3 for hot functions.
4111
4112         * c-common.c (handle_hot_attribute): Use target hook to determine
4113         if hot functions should enable -O3.
4114         (handle_cold_attribute): Use target hook to determine if cold
4115         functions should enable -Os.
4116
4117         * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
4118         (override_options): Move disable scheduling to
4119         optimization_options.
4120         (optimization_options): Disable scheduling here, not
4121         override_options.
4122         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
4123         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
4124
4125         * config/ia64/ia64.c (ia64_override_options): Move setting
4126         scheduling flags to ia64_optimization_options.
4127         (ia64_optimization_options): Disable scheduling options here, and
4128         not in ia64_override_options.
4129         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
4130         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
4131
4132 2008-07-25  H.J. Lu  <hongjiu.lu@intel.com>
4133
4134         PR target/36936
4135         * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
4136
4137 2008-07-25  Martin Jambor  <mjambor@suse.cz>
4138
4139         PR tree-optimization/36926
4140         * ipa-prop.c (ipa_analyze_call_uses): Call
4141         ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
4142
4143 2008-07-25  Joseph Myers  <joseph@codesourcery.com>
4144
4145         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
4146         movv2si_internal): Add mem = reg alternative.
4147
4148 2008-07-25  Andreas Tobler  <a.tobler@schweiz.org>
4149
4150         PR bootstrap/36918
4151         * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
4152         DEFAULT_PCC_STRUCT_RETURN to 127.
4153
4154 2008-07-24  Jan Hubicka  <jh@suse.cz>
4155
4156         * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
4157         (build_cgraph_edges): Likewise.
4158         * cgraph.c (cgraph_node): Do not update assembler hash.
4159         (cgraph_remove_node): Drop non-unit-at-a-time code.
4160         * tree-pass.h (pass_O0_always_inline): Remove.
4161         * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
4162         * toplev.c (process_options): Flag unit-at-a-time does not imply
4163         no section anchors.
4164         * cgraphunit.c: Update comments.
4165         (decide_is_function_needed): Drop non-unit-at-a-time mode.
4166         (cgraph_assemble_pending_functions): Remove.
4167         (cgraph_reset_node): Drop non-unit-at-a-time code.
4168         (cgraph_finalize_function): Likewise.
4169         (cgraph_analyze_function): Likewise.
4170         (cgraph_finalize_compilation_unit): Likewise.
4171         (cgraph_expand_function): Likewise.
4172         (cgraph_optimize): Likesise.
4173         (save_inline_function_body): Likewise.
4174         * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
4175         * tree-ssa-alias.c (maybe_be_aliased): Likewise.
4176         * ipa-inline.c: Update comments.
4177         (enum inlining_mode): remove INLINE_SPEED.
4178         (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
4179         (cgraph_mark_inline_edge): Likewise.
4180         (try_inline): Likewise.
4181         (cgraph_decide_inlining_incrementally): Likewise.
4182         (cgraph_gate_inlining): Remove.
4183         (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
4184         (cgraph_gate_early_inlining): Likewise.
4185         (gate_inline_passes): Remove.
4186         (pass_inline_parameters, pass_ipa_inline): Remove gates.
4187         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
4188         pass_O0_always_inline): Remove.
4189         * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
4190         * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
4191         * opts.c (no_unit_at_a_time_default): Remove.
4192         (decode_options): Remove flag_unit_at_a_time reset and warning.
4193         * opts.h (no_unit_at_a_time_default): Remove.
4194         * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
4195         early in GNU dialect.
4196         (merge_decls): Update comment; drop unit-at-a-time check.
4197         (finish_decl): Likewise.
4198         (grok_declaration): Remove flag_inline_trees code.
4199         (finish_functions): Return on function returning non-void on all
4200         statics.
4201         * ipa-tye-escape.c (gate_type_escape_vars): Remove.
4202         * cfgexpand.c (expand_one_static_var): Remove.
4203         (expand_one_var): Remove expand_one_static_var call.
4204         (expand_used_vars_for_block): Remove flag_unit_a_time check.
4205         * c-opts.c (c_common_post_options): Remove flag_inline_trees code
4206         and flag_unit_at_a-time compatibility checks.
4207         * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
4208         * tree-inline.c (flag_inline_trees): Remove.
4209         (inlinable_function_p): Don't check it.
4210         (expand_call_inline): Remove non-unit-at-a-time code.
4211         * tree-inline.h (flag_inline_trees): Remove.
4212         * tree-optimize.c (execute_early_local_optimizations): Remove
4213         unit-at-a-time checks.
4214         (tree_rest_of_compilation): Likewise.
4215         * combine.c (setup_incoming_promotions): Likewise.
4216         * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
4217         * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
4218         * passes.c (pass_inline_parameters): Update comments; remove
4219         O0_alwaysinline pass.
4220         (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
4221         (execute_one_pass): Likewise.
4222         * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
4223         (ix86_function_sseregparm): Likewise.
4224         * arm.c (arm_function_in_section_p): Likewise.
4225         * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
4226         * varpool.c: Update comments.
4227         (decide_is_variable_needed): Remove unit-at-a-time checks.
4228         (varpool_finalize_decl): Likewise.
4229
4230 2008-07-24  Kaz Kojima  <kkojima@gcc.gnu.org>
4231
4232         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
4233         to 2 instead of -1.
4234         (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal to 2.
4235
4236 2008-07-24  Kai Tietz  <kai.tietz@onevision.com>
4237
4238         * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
4239         imp symbol extension.
4240
4241         2008-07-23  Ian Lance Taylor  <iant@google.com>
4242
4243         * tree-vrp.c (infer_value_range): Ignore asm statements when
4244         looking for memory accesses for -fdelete-null-pointer-checks.
4245
4246 2008-07-24  Ben Elliston  <bje@au.ibm.com>
4247
4248         * config/spu/spu-c.c (__vector_keyword): New variable.
4249         (vector_keyword): Likewise.
4250         (spu_categorize_keyword): New function.
4251         (spu_macro_to_expand): Likewise.
4252         (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
4253         compiling an ISO C dialect.
4254
4255 2008-07-24  Ben Elliston  <bje@au.ibm.com>
4256
4257         * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
4258         conventional usage.
4259
4260 2008-07-23  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
4261
4262         * configure: Regenerate.
4263         * configure.ac: Require texinfo 4.7.
4264         * doc/install.texi: Document texinfo 4.7 requirement.
4265
4266 2008-07-23  Martin Jambor  <mjambor@suse.cz>
4267
4268         * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
4269         rather than for DECL_SAVED_TREE.
4270         * ipa-prop.c: Include diagnostic.h.
4271         (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
4272         thoroughly.
4273         (ipa_detect_param_modifications): Function rewritten from scratch.
4274         (ipa_compute_jump_functions): Changed accesses to modification flags.
4275         (ipa_free_node_params_substructures): Update flags destruction.
4276         (ipa_node_duplication_hook): Update flags duplication.
4277         (ipa_print_all_params_modified): Updated flag access.
4278         * ipa-prop.h (struct ipa_param_flags): New structure.
4279         (struct ipa_node_params): New field modification_analysis_done,
4280         modified_flags changed into param_flags.
4281         (ipa_is_ith_param_modified): Changed to use new flags.
4282         * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
4283
4284         * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
4285         ipa-cp.c and split into two functions.
4286         (ipa_print_node_jump_functions): New function.
4287         (compute_scalar_jump_functions): New function.
4288         (type_like_member_ptr_p): New function.
4289         (compute_pass_through_member_ptrs): New function.
4290         (fill_member_ptr_cst_jump_function): New function.
4291         (determine_cst_member_ptr): New function.
4292         (compute_cst_member_ptr_arguments): New function.
4293         (ipa_compute_jump_functions): Complete rewrite.
4294         * ipa-prop.h (enum jump_func_type): Make explicit that we depend
4295         on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
4296         (struct ipa_member_ptr_cst): New structure.
4297         (union jump_func_value): New field member_cst.
4298         * ipa-cp.c (ipcp_lat_is_insertable): New function.
4299         (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
4300         jump function types.
4301         (ipcp_print_all_lattices): Slight fprintf rearrangement.
4302         (ipcp_print_all_structures): Call ipa_print_all_jump_functions
4303         instead of ipcp_print_all_jump_functions.
4304         (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
4305         only for replacable scalars.
4306
4307         * doc/invoke.texi (Optimize options): Add description of
4308         -findirect-inlining.
4309         * common.opt (flag_indirect_inlining): New flag.
4310         * opts.c (decode_options): Set flag_indirect_inlining when
4311         optimize >= 3.
4312
4313         * ipa-inline.c: Include ipa-prop.h.
4314         (inline_indirect_intraprocedural_analysis): New function.
4315         (inline_generate_summary): Allocate parameter and argument info
4316         structures, call inline_indirect_intraprocedural_analysis on each
4317         node when doing indirect inlining and deallocate indirect inlining
4318         data structures in the end.
4319         * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
4320         (free_all_ipa_structures_after_iinln): New function.
4321         (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be
4322         done.
4323         * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
4324
4325         * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
4326         (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
4327         of computing the frequency separately.
4328         (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
4329         of computing the frequency separately.
4330         * ipa-cp.c (ipcp_print_all_structures): Replace a call to
4331         ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
4332         * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
4333         (ipa_get_stmt_member_ptr_load_param): New function.
4334         (ipa_is_ssa_with_stmt_def): New function.
4335         (ipa_note_param_call): New function.
4336         (ipa_analyze_call_uses): New function.
4337         (ipa_analyze_stmt_uses): New function.
4338         (ipa_analyze_params_uses): New function.
4339         (ipa_free_node_params_substructures): Also free the param_calls linked
4340         list.
4341         (ipa_node_duplication_hook): Also duplicate the param_calls linked list.
4342         (ipa_print_node_param_flags): New function.
4343         (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
4344         (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
4345         * ipa-prop.h (struct ipa_param_flags): New field called.
4346         (struct ipa_param_call_note): New structure.
4347         (struct ipa_node_params): New fields param_calls and
4348         uses_analysis_done.
4349         (ipa_is_ith_param_called): New function.
4350         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
4351         ipa_analyze_params_uses and dump parameter flags.
4352
4353         * ipa-inline.c (cgraph_decide_recursive_inlining): Call
4354         ipa_propagate_indirect_call_infos if performing indirect inlining,
4355         pass a new parameter new_edges to it.
4356         (add_new_edges_to_heap): New fucntion.
4357         (cgraph_decide_inlining_of_small_functions): New vector
4358         new_indirect_edges for newly found indirect edges , call
4359         ipa_propagate_indirect_call_infos after inlining.
4360         (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
4361         inlining if performing indirect inlining.  Call
4362         free_all_ipa_structures_after_iinln when doing so too.
4363         (inline_generate_summary): Do not call
4364         free_all_ipa_structures_after_iinln here.
4365         * ipa-prop.c (update_jump_functions_after_inlining): New function.
4366         (print_edge_addition_message): New function.
4367         (update_call_notes_after_inlining): New function.
4368         (propagate_info_to_inlined_callees): New function.
4369         (ipa_propagate_indirect_call_infos): New function.
4370         * ipa-prop.h: Include cgraph.h
4371         (struct ipa_param_call_note): Fields reordered, new field processed.
4372         * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
4373         flag indirect_call.
4374         * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
4375         rediscovered call statements.
4376         * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
4377         (dump_cgraph_node): Dump also the indirect_call flag.
4378         (cgraph_clone_edge): Copy also the indirect_call flag.
4379         * tree-inline.c (copy_bb): Do not check for fndecls from call
4380         expressions, check for edge availability when moving clones.
4381         (get_indirect_callee_fndecl): New function.
4382         (expand_call_inline): If callee declaration is not apprent from
4383         the statement, try calling get_indirect_callee_fndecl.  Do not
4384         issue warnings or call sorry when not inlinings an indirect edge.
4385         * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
4386
4387         * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
4388         bit more frandly to matching.
4389         * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
4390         * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
4391         * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
4392
4393 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
4394
4395         PR 36907
4396         * opth-gen.awk: Suppress function specific features when building
4397         target libraries.
4398         * optc-gen.awk: Ditto.
4399
4400 2008-07-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4401
4402         PR 35058
4403         * diagnostic.c (pedwarn): Add opt parameter.
4404         (pedwarn0): New.
4405         * c-tree.h (pedwarn_init): Add opt parameter.
4406         (pedwarn_c90): Likewise.
4407         (pedwarn_c99): Likewise.
4408         * c-errors.c (pedwarn_c99): Likewise.
4409         (pedwarn_c90): Likewise.
4410         * toplev.h (pedwarn): Update declaration.
4411         (pedwarn0): Declare.
4412         * c-lex.c: All calls to pedwarn changed.
4413         * builtins.c: All calls to pedwarn changed.
4414         * toplev.c: All calls to pedwarn changed.
4415         * c-decl.c: All calls to pedwarn changed.
4416         * c-typeck.c: All calls to pedwarn changed.
4417         * c-common.c: All calls to pedwarn changed.
4418         * c-parser.c: All calls to pedwarn changed.
4419
4420 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
4421             Karthik Kumar  <karthikkumar@gmail.com>
4422
4423         * attribs.c (file scope): Include c-common.h.
4424         (decl_attributes): Add support for #pragma GCC optimize and
4425         #pragma GCC option.
4426
4427         * targhooks.c (default_can_inline_p): New function that is the
4428         default for the TARGET_CAN_INLINE_P target hook.
4429
4430         * targhooks.h (default_can_inline_p): Add declaration.
4431
4432         * tree.c (cl_optimization_node): New static tree for building
4433         OPTIMIZATION_NODE tree.
4434         (cl_target_option_node): New static tree for building
4435         TARGET_OPTION_NODE tree.
4436         (cl_option_hash_table): New hash table for hashing
4437         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
4438         (cl_option_hash_hash): New function to provide the hash value for
4439         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
4440         (cl_option_hash_eq): New function to provide an equality test for
4441         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
4442         (tree_code_size): Add support for OPTIMIZATION_NODE and
4443         TARGET_OPTION_NODE trees.
4444         (tree_code_structure): Add support for OPTIMIZATION_NODE and
4445         TARGET_OPTION_NODE trees.
4446         (build_optimization_node): Build a tree that has all of the
4447         current optimization options.
4448         (build_target_option_node): Build a tree that has the target
4449         options that might be changed on a per function basis.
4450
4451         * tree.h (file scope): Include options.h.
4452         (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
4453         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
4454         (TREE_OPTIMIZATION): Ditto.
4455         (TREE_TARGET_SPECIFIC): Ditto.
4456         (struct tree_function_decl): Add fields for remembering the
4457         current optimization options and target specific options.
4458         (struct tree_optimization_option): New tree variant that remembers
4459         the optimization options.
4460         (struct tree_target_option): New tree variant that remembers the
4461         target specific flags that might change for compiling a particular
4462         function.
4463         (union tree_node): Include tree_optimization_option and
4464         tree_target_option fields.
4465         (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
4466         TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
4467         TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
4468         TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
4469         TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
4470         optimization and target options.
4471         (optimization_default_node): New macro to refer to global_trees
4472         field.
4473         (optimization_current_node): Ditto.
4474         (optimization_cold_node): Ditto.
4475         (optimization_hot_node): Ditto.
4476         (target_option_default_node): Ditto.
4477         (target_option_current_node): Ditto.
4478         (current_option_pragma): Ditto.
4479         (current_optimize_pragma): Ditto.
4480
4481         * target.h (struct gcc_target): Add valid_option_attribute_p,
4482         target_option_save, target_option_restore, target_option_print,
4483         target_option_pragma_parse, and can_inline_p hooks.
4484
4485         * toplev.h (parse_optimize_options): Add declaration.
4486         (fast_math_flags_struct_set_p): Ditto.
4487
4488         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
4489         adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
4490         optimize is used.
4491
4492         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
4493         tree_can_inline_p hook to see if one function can inline another.
4494         (cgraph_decide_inlining): Ditto.
4495         (cgraph_decide_inlining_incrementally): Ditto.
4496
4497         * opts.c (decode_options): Add support for running multiple times
4498         to allow functions with different target or optimization options
4499         than was specified on the command line.
4500         (fast_math_flags_struct_set_p): New function that is similar to
4501         fast_math_flags_set_p, except it uses the values in the
4502         cl_optimization structure instead of global variables.
4503
4504         * optc-gen.awk: Add support for TargetSave to allow a back end to
4505         declare new fields that need to be saved when using function
4506         specific options.  Include flags.h and target.h in the options.c
4507         source.  Add support for Save to indicate which options can be set
4508         for individual functions.  Generate cl_optimize_save,
4509         cl_optimize_restore, cl_optimize_print, cl_target_option_save,
4510         cl_target_option_restore, cl_target_option_print functions to
4511         allow functions to use different optimization or target options.
4512
4513         * opt-functions.awk (var_type_struct): Return the type used for
4514         storing the field in a structure.
4515
4516         * opth-gen.awk: Add support for TargetSave to allow a back end to
4517         declare new fields that need to be saved when using function
4518         specific options.  Add support for Save to indicate which options
4519         can be set for individual functions.  Only generate one extern for
4520         Mask fields.  Generate cl_optimization and cl_target_option
4521         structures to remember optimization and target options.
4522
4523         * treestruct.def (TS_OPTIMIZATION): Add support for garbage
4524         collecting new tree nodes.
4525         (TS_TARGET_OPTION): Ditto.
4526
4527         * c-decl.c (merge_decls): Merge function specific target and
4528         optimization options.
4529
4530         * function.c (invoke_set_current_function_hook): If the function
4531         uses different optimization options, change the global variables
4532         to reflect this.
4533
4534         * coretypes.h (struct cl_optimization): Add forward reference.
4535         (struct cl_target_option): Ditto.
4536
4537         * c-pragma.c (option_stack): New static vector to remember the
4538         current #pragma GCC option stack.
4539         (handle_pragma_option): New function to support #pragma GCC option
4540         to change target options.
4541         (optimize_stack): New static vector to remember the current
4542         #pragma GCC optimize stack.
4543         (handle_pragma_optimize): New function to support #pragma GCC
4544         optimize to change optimization options.
4545         (init_pragma): Add support for #pragma GCC optimize and #pragma
4546         GCC option.
4547
4548         * tree.def (OPTIMIZATION_NODE): New tree code for remembering
4549         optimization options.
4550         (TARGET_OPTION_NODE): New tree code for remembering certain target
4551         options.
4552
4553         * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
4554         TARGET_OPTION_NODE trees.
4555
4556         * common.opt (-O): Add Optimization flag.
4557         (-Os): Ditto.
4558         (-fmath-errno): Ditto.
4559         (-falign-functions): Add UInteger flag to make sure flag gets full
4560         int in cl_optimization structure.
4561         (-falign-jumps): Ditto.
4562         (-falign-labels): Ditto.
4563         (-falign-loops): Ditto.
4564         (-fsched-stalled-insns): Ditto.
4565         (-fsched-stalled-insns-dep): Ditto.
4566
4567         * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
4568         definition.
4569         (TARGET_OPTION_SAVE): Ditto.
4570         (TARGET_OPTION_RESTORE): Ditto.
4571         (TARGET_OPTION_PRINT): Ditto.
4572         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
4573         (TARGET_CAN_INLINE_P): Ditto.
4574         (TARGET_INITIALIZER): Add new hooks.
4575
4576         * tree-inline.c (tree_can_inline_p): New function to determine
4577         whether one function can inline another.  Check if the functions
4578         use compatible optimization options, and also call the backend
4579         can_inline_p hook.
4580
4581         * tree-inline.h (tree_can_inline_p): Add declaration.
4582
4583         * c-common.c (c_common_attribute): Add support for option and
4584         optimize attributes.
4585         (handle_option_attribute): Add support for the option attribute to
4586         allow the user to specify different target options for compiling a
4587         specific function.
4588         (handle_optimize_attribute): Add support for the optimize
4589         attribute to allow the user to specify different optimization
4590         options for compiling a specific function.
4591         (handle_hot_attribute): Turn on -O3 optimization for this one
4592         function if it isn't the default optimization level.
4593         (handle_cold_attribute): Turn on -Os optimization for this one
4594         function if it insn't the default optimization.
4595         (const_char_p): New const char * typedef.
4596         (optimize_args): New static vector to remember the optimization
4597         arguments.
4598         (parse_optimize_options): New function to set up the optimization
4599         arguments from either the optimize attribute or #pragma GCC optimize.
4600
4601         * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
4602         (builtin_define_std): Ditto.
4603
4604         * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
4605         Add t-i386 Makefile fragment to add i386-c.o and i386.o dependencies.
4606         (x86_64-*-*): Ditto.
4607
4608         * Makefile.in (TREE_H): Add options.h.
4609         (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
4610
4611         * doc/extend.texi (option attribute): Document new attribute.
4612         (optimize attribute): Ditto.
4613         (hot attribute): Document hot attribute sets -O3.
4614         (cold attribute): Document cold attribute sets -Os.
4615         (#pragma GCC option): Document new pragma.
4616         (#pragma GCC optimize): Ditto.
4617
4618         * doc/options.texi (TargetSave): Document TargetSave syntax.
4619         (UInteger): Document UInteger must be used for certain flags.
4620         (Save): Document Save option to create target specific options
4621         that can be saved/restored on a function specific context.
4622
4623         * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new macro.
4624         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
4625
4626         * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new hook.
4627         (TARGET_OPTION_SAVE): Ditto.
4628         (TARGET_OPTION_RESTORE): Ditto.
4629         (TARGET_OPTION_PRINT): Ditto.
4630         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
4631         (TARGET_CAN_INLINE_P): Ditto.
4632
4633         * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
4634         -mfpmath=sse,387.
4635         (-mfpmath=both): Ditto.
4636
4637 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
4638             Karthik Kumar  <karthikkumar@gmail.com>
4639
4640         * config/i386/i386.h (TARGET_ABM): Move switch into ix86_isa_flags.
4641         (TARGET_POPCNT): Ditto.
4642         (TARGET_SAHF): Ditto.
4643         (TARGET_AES): Ditto.
4644         (TARGET_PCLMUL): Ditto.
4645         (TARGET_CMPXCHG16B): Ditto.
4646         (TARGET_RECIP): Move switch into target_flags.
4647         (TARGET_FUSED_MADD): Ditto.
4648         (ix86_arch_features): Make an unsigned char type.
4649         (ix86_tune_features): Ditto.
4650         (OVERRIDE_OPTIONS): Add bool argument to override_options call.
4651         (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
4652         (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
4653
4654         * config/i386/i386.opt (arch): New TargetSave field to define
4655         fields that need to be saved for function specific option support.
4656         (tune): Ditto.
4657         (fpmath): Ditto.
4658         (branch_cost): Ditto.
4659         (ix86_isa_flags_explicit): Ditto.
4660         (tune_defaulted): Ditto.
4661         (arch_specified): Ditto.
4662         (-m128-long-double): Add Save flag to save option for target
4663         specific option support.
4664         (-m80387): Ditto.
4665         (-maccumulate-outgoing-args): Ditto.
4666         (-malign-double): Ditto.
4667         (-malign-stringops): Ditto.
4668         (-mfancy-math-387): Ditto.
4669         (-mhard-float): Ditto.
4670         (-mieee-fp): Ditto.
4671         (-minline-all-stringops): Ditto.
4672         (-minline-stringops-dynamically): Ditto.
4673         (-mms-bitfields): Ditto.
4674         (-mno-align-stringops): Ditto.
4675         (-mno-fancy-math-387): Ditto.
4676         (-mno-push-args): Ditto.
4677         (-mno-red-zone): Ditto.
4678         (-mpush-args): Ditto.
4679         (-mred-zone): Ditto.
4680         (-mrtd): Ditto.
4681         (-msseregparm): Ditto.
4682         (-mstack-arg-probe): Ditto.
4683         (-m32): Ditto.
4684         (-m64): Ditto.
4685         (-mmmx): Ditto.
4686         (-m3dnow): Ditto.
4687         (-m3dnowa): Ditto.
4688         (-msse): Ditto.
4689         (-msse2): Ditto.
4690         (-msse3): Ditto.
4691         (-msse4.1): Ditto.
4692         (-msse4.2): Ditto.
4693         (-msse4): Ditto.
4694         (-mno-sse4): Ditto.
4695         (-msse4a): Ditto.
4696         (-msse5): Ditto.
4697         (-mrecip): Move flag into target_flags.
4698         (-mcld): Ditto.
4699         (-mno-fused-madd): Ditto.
4700         (-mfused-madd): Ditto.
4701         (-mabm): Move flag into ix86_isa_flags.
4702         (-mcx16): Ditto.
4703         (-mpopcnt): Ditto.
4704         (-msahf): Ditto.
4705         (-maes): Ditto.
4706         (-mpclmul): Ditto.
4707
4708         * config/i386/i386-c.c: New file for #pragma support.
4709         (ix86_target_macros_internal): New function to #define or #undef
4710         target macros based when the user uses the #pragma GCC option to
4711         change target options.
4712         (ix86_pragma_option_parse): New function to add #pragma GCC option
4713         support.
4714         (ix86_target_macros): Move defining the target macros here from
4715         TARGET_CPU_CPP_BUILTINS in i386.h.
4716         (ix86_register_pragmas): Register the #pragma GCC option hook.  If
4717         defined, initialize any subtarget #pragmas.
4718
4719         * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
4720         REGISTER_TARGET_PRAGMAS.
4721
4722         * config/i386/t-i386: New file for x86 dependencies.
4723         (i386.o): Make dependencies mirror the include files used.
4724         (i386-c.o): New file, add dependencies.
4725
4726         * config/i386/i386-protos.h (override_options): Add bool argument.
4727         (ix86_valid_option_attribute_tree): Add declaration.
4728         (ix86_target_macros): Ditto.
4729         (ix86_register_macros): Ditto.
4730
4731         * config/i386/i386.c (ix86_tune_features): Move initialization of
4732         the target masks to initial_ix86_tune_features to allow functions
4733         to have different target options.  Make type unsigned char,
4734         instead of unsigned int.
4735         (initial_ix86_tune_features): New static vector to hold processor
4736         masks for the tune variables.
4737         (ix86_arch_features): Move initialization of the target masks to
4738         initial_ix86_arch_features to allow functions to have different
4739         target options.  Make type unsigned char, instead of unsigned int.
4740         (initial_ix86_arch_features): New static vector to hold processor
4741         masks for the arch variables.
4742         (enum ix86_function_specific_strings): New enum to describe the
4743         string options used for attribute((option(...))).
4744         (ix86_target_string): New function to return a string that
4745         describes the target options.
4746         (ix86_debug_options): New function to print the current options in
4747         the debugger.
4748         (ix86_function_specific_save): New function hook to save the
4749         function specific global variables in the cl_target_option structure.
4750         (ix86_function_specific_restore): New function hook to restore the
4751         function specific variables from the cl_target_option structure to
4752         the global variables.
4753         (ix86_function_specific_print): New function hook to print the
4754         target specific options in the cl_target_option structure.
4755         (ix86_valid_option_attribute_p): New function hook to validate
4756         attribute((option(...))) arguments.
4757         (ix86_valid_option_attribute_tree): New function that is common
4758         code between attribute((option(...))) and #pragma GCC option
4759         support that parses the options and returns a tree holding the options.
4760         (ix86_valid_option_attribute_inner_p): New helper function for
4761         ix86_valid_option_attribute_tree.
4762         (ix86_can_inline_p): New function hook to decide if one function
4763         can inline another on a target specific basis.
4764         (ix86_set_current_function); New function hook to switch target
4765         options if the user used attribute((option(...))) or #pragma GCC
4766         option.
4767         (ix86_tune_defaulted): Move to static file scope from
4768         override_options.
4769         (ix86_arch_specified): Ditto.
4770         (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
4771         ix86_isa_flags.
4772         (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
4773         (OPTION_MASK_ISA_ABM_SET): Ditto.
4774         (OPTION_MASK_ISA_POPCNT_SET): Ditto.
4775         (OPTION_MASK_ISA_CX16_SET): Ditto.
4776         (OPTION_MASK_ISA_SAHF_SET): Ditto.
4777         (OPTION_MASK_ISA_AES_UNSET): Ditto.
4778         (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
4779         (OPTION_MASK_ISA_ABM_UNSET): Ditto.
4780         (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
4781         (OPTION_MASK_ISA_CX16_UNSET): Ditto.
4782         (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
4783         (struct ptt): Move to static file scope from override_options.
4784         (processor_target_table): Ditto.
4785         (cpu_names): Ditto.
4786         (ix86_handle_option): Add support for options that are now isa options.
4787         (override_options): Add support for declaring functions that
4788         support different target options than were specified on the
4789         command line.  Move struct ptt, processor_target_table, cpu_names,
4790         ix86_tune_defaulted, ix86_arch_specified to static file scope.
4791         Add bool argument.  Fix up error messages so the appropriate error
4792         is given for either command line or attribute.
4793         (ix86_previous_fndecl): New static to remember previous function
4794         declaration to see if we need to change target options.
4795         (ix86_builtins_isa): New array to record the ISA of each builtin
4796         function.
4797         (def_builtin): Always create the builtin function, even if the
4798         current ISA doesn't support it.
4799         (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
4800         tests for those builtins.
4801         (ix86_init_builtins): Remove TARGET_MMX test for calling
4802         ix86_init_mmx_sse_builtins.
4803         (ix86_expand_builtin): If the current ISA doesn't support a given
4804         builtin, signal an error.
4805         (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
4806         (TARGET_SET_CURRENT_FUNCTION): Ditto.
4807         (TARGET_OPTION_SAVE): Ditto.
4808         (TARGET_OPTION_RESTORE): Ditto.
4809         (TARGET_OPTION_PRINT): Ditto.
4810         (TARGET_CAN_INLINE_P): Ditto.
4811
4812 2008-07-22  Rafael Avila de Espindola  <espindola@google.com>
4813
4814         * c-typeck.c (build_external_ref): Don't call assemble_external.
4815         * final.c (output_operand): Call assemble_external.
4816
4817 2008-07-21  DJ Delorie  <dj@redhat.com>
4818
4819         * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
4820         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
4821
4822 2008-07-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4823
4824         * config/spu/spu.md ("div<mode>3"): Convert into expander, move
4825         original insn and splitter contents into ...
4826         ("*div<mode>3_fast"): ... this new pattern.  Enable only if
4827         flag_unsafe_math_optimizations.  Add dummy scratch register.
4828         ("*div<mode>3_adjusted"): New insn and splitter.  Enable only if
4829         !flag_unsafe_math_optimizations.  Returns number with next
4830         highest magnitude if this is still less or equal to the true
4831         quotient in magnitude.
4832
4833 2008-07-21  Rafael Avila de Espindola  <espindola@google.com>
4834
4835         * Makefile.in: Replace toplev.h with TOPLEV_H.
4836         * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
4837         * c-lex.c (fe_file_change): Don't set in_system_header.
4838         * c-parser.c (c_token): Remove in_system_header.
4839         (c_lex_one_token): Don't set in_system_header.
4840         (c_parser_set_source_position_from_token): Don't set in_system_header.
4841         * diagnostic.c (diagnostic_report_diagnostic): Use location from
4842         diagnostic_info.
4843         (warning_at): New.
4844         * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
4845         * flags.h (in_system_header): Remove.
4846         * function.c (saved_in_system_header): Remove.
4847         (push_cfun): Don't set in_system_header.
4848         (pop_cfun): Don't set in_system_header.
4849         (push_struct_function): Don't set in_system_header.
4850         * input.h (expanded_location): Add sysp.
4851         (in_system_header_at): New.
4852         (in_system_header): New.
4853         * toplev.c (in_system_header): Remove.
4854         * toplev.h: Include input.h
4855         (warning_at): New.
4856         * tree-cfg.c (execute_warn_function_return): Call warning_at.
4857         * tree-ssa.c (warn_uninit): Call warning_at.
4858         (warn_uninitialized_var): Update calls to warn_uninit.
4859         (warn_uninitialized_phi): Update calls to warn_uninit.
4860         * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
4861         (expand_location): Initialize xloc.sysp.
4862         * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
4863         (tree_decl_with_vis): Remove in_system_header_flag.
4864
4865 2008-07-21  Andreas Krebbel  <krebbel1@de.ibm.com>
4866
4867         PR target/36822
4868         * recog.c (asm_operand_ok): Change the order of the extra
4869         memory constraint checks.
4870
4871 2008-07-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4872
4873         PR tree-opt/36879
4874         * tree-switch-conversion.c (build_one_array): Call
4875         varpool_mark_needed_node and varpool_finalize_decl
4876         instead of assemble_variable.
4877
4878 2008-07-19  Jan Hubicka  <jh@suse.cz>
4879
4880         * cgraph.c (cgraph_add_new_function): Do early local passes.
4881         * tree-nrv.c (gate_pass_return_slot): New gate.
4882         (pass_nrv): Add the gate.
4883         * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
4884         functions.
4885         (coalesce_ssa_name): Coalesce SSA names.
4886         * tree-ssa-live.c (remove_unused_locals): Be more conservative when
4887         not optimizing so unused user vars remains visible.
4888         * common.opt (flag_tree_ter): Always enable by default.
4889         * tree-ssa-ter.c: Include flags.h
4890         (is_replaceable_p): Check that locations match; when aliasing is missing
4891         be conservative about loads.
4892         * tree-optimize.c (gate_init_datastructures): Remove.
4893         (pass_init_datastructures): New.
4894         * passes.c: Reorder passes so we always go into SSA.
4895
4896 2008-07-19  Jan Hubicka  <jh@suse.cz>
4897
4898         * doc/extend.texi (flatten attribute): Remove note about unit-at-a-time
4899         * doc/invoke.texi (--combine): Likewise.
4900         (-finline-functions-called-once): Update levels when enabled.
4901         (-funit-at-a-time): Document new behaviour.
4902         (-ftoplevel-reorder): Document that it is enabled -O0 and imply
4903         -fno-section-anchors when disabled explicitly.
4904         (inline params): They are not ignored now.
4905         (precompiled headers): Remove unit-at-a-time as being incompatible.
4906         * opts.c (decode_options): Handle unit-at-a-time as alias;
4907         imply -fno-section-anchors when toplevel reorder is disabled
4908         explicitly.
4909         * common.opt (ftoplevel-reorder): Set default value to 2.
4910         (funit-at-a-time): Set default value to 1.
4911         * config/rs6000/rs6000.c (optimization_options): Set section anchors
4912         to 2.
4913
4914 2008-07-19  Jan Hubicka  <jh@suse.cz>
4915
4916         * builtins.c (expand_builtin_int_roundingfn,
4917         expand_builtin_int_roundingfn_2): Do not take subtarget argument;
4918         it is not useful.
4919
4920 2008-07-19  Richard Guenther  <rguenther@suse.de>
4921
4922         PR bootstrap/36864
4923         * tree-ssa-sccvn.h (get_constant_value_id): Declare.
4924         * tree-ssa-sccvn.c (get_constant_value_id): New function.
4925         * tree-ssa-pre.c (get_expr_value_id): For newly created
4926         constant value-ids make sure to add the expression to its
4927         expression-set.
4928
4929 2008-07-19  Jakub Jelinek  <jakub@redhat.com>
4930
4931         PR middle-end/36877
4932         * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
4933         return value of the builtin is ignored.
4934
4935 2008-07-19  Olivier Hainque  <hainque@adacore.com>
4936
4937         * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
4938         bits, a C conformant malloc implementation has to provide.
4939         * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
4940
4941 2008-07-19  Joseph Myers  <joseph@codesourcery.com>
4942
4943         PR target/36780
4944         PR target/36827
4945         * reload.c (find_reloads_subreg_address): Only reload address if
4946         reloaded == 0, not for reloaded != 1.
4947
4948         Revert:
4949         2008-07-16  Joseph Myers  <joseph@codesourcery.com>
4950         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
4951         (m32c_legitimate_address_p): Handle "++rii" addresses created by
4952         m32c_legitimize_reload_address.
4953
4954         2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
4955         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
4956         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
4957
4958 2008-07-19  Olivier Hainque  <hainque@adacore.com>
4959
4960         * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
4961         argument, saying whether nested array are to be collapsed
4962         into a single array type DIE with multiple subscripts.
4963         (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
4964         issues, centralize the nested array types collapsing control and
4965         disable the transformation for Ada.
4966
4967 2008-07-18  Uros Bizjak  <ubizjak@gmail.com>
4968
4969         PR target/36786
4970         * config/i386/i386.md (x86_64_shift_adj_1): Rename from
4971         x86_64_shift_adj.
4972         (x86_64_shift_adj_2): New expander.
4973         (x86_64_shift_adj_3): Ditto.
4974         * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
4975         to split TImode operands.
4976         (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
4977         (ix86_split_lshr): Ditto.
4978
4979 2008-07-18  Kris Van Hees  <kris.van.hees@oracle.com>
4980
4981         * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
4982         and __CHAR32_TYPE__.
4983         * c-typeck.c (digest_init): Support char16_t and char32_t.
4984         (set_nonincremental_init_from_string): Idem.
4985
4986 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
4987
4988         PR middle-end/36859
4989         * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
4990         PREFERRED_STACK_BOUNDARY.
4991         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
4992
4993 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
4994
4995         PR middle-end/36858
4996         * function.c (locate_and_pad_parm): Cap boundary earlier.
4997
4998 2008-07-17  Julian Brown  <julian@codesourcery.com>
4999
5000         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
5001         no-op for targets which don't use DLLs.
5002
5003 2008-07-17  Martin Jambor  <mjambor@suse.cz>
5004
5005         * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
5006         that nodes are relevant by examining the node->analyzed flag.
5007         (ipcp_init_stage): Check which nodes are relevant, assert that the
5008         relevant ones are also required.
5009         (ipcp_propagate_stage): Check on the side arrays are properly
5010         allocated.
5011         (ipcp_print_all_jump_functions): Make sure not to touch any node
5012         that is not analyzed or an edge that does not have a corresponding
5013         entry in the on-the-side vectors.
5014         (ipcp_function_scale_print): Likewise.
5015         (ipcp_update_callgraph): Check that the node is relevant.
5016         (ipcp_insert_stage): Check that the node is relevant.  Check there is
5017         an info for every node and edge.
5018         * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
5019         (ipa_print_all_tree_maps): Likewise and a new variable info.
5020         (ipa_print_all_params_modified): Likewise.
5021         * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
5022
5023 2008-07-17  Roman Zippel <zippel@linux-m68k.org>
5024
5025         PR target/25343
5026         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
5027
5028 2008-07-17  Paolo Bonzini  <bonzini@gnu.org>
5029
5030         PR rtl-optimization/36753
5031         * fwprop.c (use_killed_between): Don't shortcut
5032         single-definition global registers.
5033
5034 2008-07-16  Jan Hubicka  <jh@suse.cz>
5035
5036         * cgraph.h (varpool_empty_needed_queue): Declare.
5037         * cgraphunit.c (output_in_order): Mark all variables as needed;
5038         empty the queue.
5039         * varpool.c (varpool_assemble_node): Update debug queue.
5040         (varpool_assemble_pending_decls): Don't do it here.
5041         (varpool_empty_needed_queue):  New function.
5042
5043 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5044
5045         * recog.c (peephole2_optimize): Fix formatting.
5046
5047 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5048
5049         * c-pch.c (get_ident): Avoid C++ keywords.
5050         * combine-stack-adj.c (single_set_for_csa): Likewise.
5051         * final.c (asm_insn_count, final_scan_insn, alter_subreg,
5052         output_asm_insn): Likewise.
5053         * reload.c (push_secondary_reload, find_reusable_reload,
5054         push_reload, combine_reloads, find_reloads,
5055         debug_reload_to_stream): Likewise.
5056         * reload.h (struct reload): Likewise.
5057         * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
5058         allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
5059         emit_output_reload_insns): Likewise.
5060         * targhooks.c (default_secondary_reload): Likewise.
5061         * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
5062
5063 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5064
5065         * recog.c (validate_change_1, validate_change,
5066         validate_unshare_change, validate_replace_rtx_1, struct
5067         funny_match, constrain_operands, peephole2_optimize): Avoid C++
5068         keywords.
5069         * reload.c (push_secondary_reload, secondary_reload_class,
5070         scratch_reload_class, find_valid_class, find_reusable_reload,
5071         push_reload, find_dummy_reload, find_reloads_address_1,
5072         find_reloads_address_part, find_equiv_reg): Likewise.
5073         * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
5074         choose_reload_regs): Likewise.
5075         * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
5076         Likewise.
5077         * rtlhooks.c (gen_lowpart_if_possible): Likewise.
5078         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
5079         * sched-rgn.c (concat_INSN_LIST): Likewise.
5080         * stor-layout.c (mode_for_size, mode_for_size_tree,
5081         smallest_mode_for_size): Likewise.
5082
5083 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5084
5085         * cfg.c (dump_reg_info): Avoid C++ keywords.
5086         * dwarf2asm.c (dw2_force_const_mem,
5087         dw2_asm_output_encoded_addr_rtx): Likewise.
5088         * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
5089         * expmed.c (expand_shift): Likewise.
5090         * global.c (find_reg): Likewise.
5091         * graph.c (draw_edge): Likewise.
5092         * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
5093         * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
5094         widen_clz, widen_bswap, expand_parity, expand_unop,
5095         emit_cmp_and_jump_insn_1): Likewise.
5096         * postreload.c (reload_cse_simplify_operands): Likewise.
5097         * ra.h (add_neighbor): Likewise.
5098         * reg-stack.c (remove_regno_note, change_stack): Likewise.
5099         * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
5100         record_reg_classes, copy_cost, record_address_regs,
5101         invalid_mode_change_p): Likewise.
5102         * regrename.c (regrename_optimize, scan_rtx_reg,
5103         dump_def_use_chain, find_oldest_value_reg,
5104         replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
5105
5106 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
5107
5108         * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
5109         MASK_POWERPC64 for power4 in previous commit.
5110
5111 2008-07-16  Olivier Hainque  <hainque@adacore.com>
5112
5113         * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
5114         instead of bare conversion to cast const-ness away.
5115
5116 2008-07-16  Anatoly Sokolov  <aesok@post.ru>
5117
5118         * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
5119         XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
5120         * config/xtensa/xtensa.c (xtensa_function_value): New function.
5121         (TARGET_FUNCTION_VALUE): Define.
5122
5123 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
5124
5125         * config/rs6000/rs6000.c (processor_target_table): Add
5126         MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
5127
5128 2008-07-16  Joseph Myers  <joseph@codesourcery.com>
5129
5130         PR target/36827
5131         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
5132         (m32c_legitimate_address_p): Handle "++rii" addresses created by
5133         m32c_legitimize_reload_address.
5134
5135 2007-07-16  Rafael Avila de Espindola  <espindola@google.com>
5136
5137         * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
5138         DECL_IN_SYSTEM_HEADER in sync.
5139
5140 2008-07-15  Daniel Berlin  <dberlin@dberlin.org>
5141
5142         * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
5143         * tree-ssa-pre.c (pre_expr_eq): Ditto
5144         (get_constant_for_value_id): Take a type as an argument.
5145         (fully_constant_expression): Pass in type.
5146         (find_or_generate_expression): Short circuit constant case.
5147         (create_expression_by_pieces): Remove special casing of
5148         pointer_plus.
5149         (do_regular_insertion): Short circuit constant case.
5150         (do_partial_partial_insertion): Ditto.
5151
5152 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5153
5154         PR target/36782
5155         * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
5156
5157 2008-07-15  Bob Wilson  <bob.wilson@acm.org>
5158
5159         * config/xtensa/libgcc-xtensa.ver: New file.
5160         * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
5161
5162 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5163
5164         * df-problems.c (df_set_note): Avoid C++ keywords.
5165         * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
5166         * dse.c (record_store, remove_useless_values): Likewise.
5167         * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
5168         gen_reg_rtx_offset, operand_subword, change_address_1,
5169         change_address, adjust_address_1, offset_address,
5170         widen_memory_access, emit_copy_of_insn_after): Likewise.
5171         * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
5172         * fwprop.c (should_replace_address, propagate_rtx_1,
5173         propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
5174         Likewise.
5175         * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
5176         gcse_emit_move_after, update_ld_motion_stores): Likewise.
5177         * lcm.c (compute_insert_delete, pre_edge_lcm,
5178         compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
5179         * lower-subreg.c (resolve_reg_notes): Likewise.
5180         * mode-switching.c (optimize_mode_switching): Likewise.
5181
5182 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5183
5184         * bt-load.c (add_btr_def, migrate_btr_def,
5185         branch_target_load_optimize): Avoid C++ keywords.
5186         * caller-save.c (insert_restore, insert_save, insert_one_insn):
5187         Likewise.
5188         * combine.c (subst, simplify_set, make_extraction,
5189         make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
5190         * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
5191         fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
5192
5193 2008-07-15  Richard Guenther  <rguenther@suse.de>
5194
5195         PR middle-end/36369
5196         * c-common.c (strict_aliasing_warning): Do not warn for
5197         TYPE_REF_CAN_ALIAS_ALL pointers.
5198         (c_common_get_alias_set): may_alias types are not special.
5199         * tree.c (build_pointer_type_for_mode): Look up the may_alias
5200         attribute and set can_ref_all accordingly.
5201         (build_reference_type_for_mode): Likewise.
5202         * doc/extend.texi (may_alias): Clarify.
5203
5204 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5205
5206         PR target/36780
5207         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
5208         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
5209
5210 2008-07-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5211
5212         PR target/31568
5213         * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
5214         gcc_assert, instead call output_operand_lossage.
5215
5216 2008-07-15  Kai Tietz  <kai.tietz@onevision.com>
5217
5218         * builtins.c (std_canonical_va_list): Treat structure based
5219         va_list types.
5220
5221 2008-07-15  Ben Elliston  <bje@au.ibm.com>
5222
5223         * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
5224
5225 2007-07-14  Rafael Avila de Espindola  <espindola@google.com>
5226
5227         * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
5228         is set.
5229
5230 2008-07-14  Jan Hubicka  <jh@suse.cz>
5231
5232         * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
5233         * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
5234         fix predicates and constraints.
5235         * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
5236         * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
5237
5238 2008-07-14  Doug Kwan  <dougkwan@google.com>
5239
5240         * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
5241         additional option file arm/eabi.opt.
5242         * config/arm/eabi.h (File): New configuration file for EABI targets.
5243         * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
5244         SUBSUBTARGET_EXTRA_SPECS.
5245         (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
5246         * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
5247         from STARTFILE_SPEC so that it can be referenced in an override.
5248         (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
5249         (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
5250         can be referenced in an override.
5251         (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
5252         * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
5253         so that it can be referenced in an override.
5254         (LINK_SPEC): Use BPABI_LINK_SPEC.
5255         * config/arm/eabi.opt (File): New.
5256
5257 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5258
5259         * Makefile.in (TARGET_DEF_H): Add targhooks.h.
5260         (FIXED_VALUE_H): New variable.
5261         (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
5262         input.h, fixed-value.h.
5263         (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
5264         (BASIC_BLOCK_H): Use $(BITMAP_H).
5265         (FUNCTION_H): Add varray.h.
5266         (IPA_REFERENCE_H): Use $(BITMAP_H).
5267         (CGRAPH_H): Add $(BASIC_BLOCK_H).
5268         (DF_H): Use $(BITMAP_H).
5269         (GGC_H): Add statistics.h.
5270         (INSN_ADDR_H): New.
5271         (INSN_ATTR_H): Use it.
5272         (SYSTEM_H): Add safe-ctype.h, filenames.h.
5273         (INPUT_H): New.
5274         (SYMTAB_H): Add $(OBSTACK_H).
5275         (CPP_INTERNAL_H): New.
5276         (TREE_DUMP_H): Add tree-pass.h.
5277         (TREE_FLOW_H): Use $(BITMAP_H)
5278         (PRETTY_PRINT_H): Use $(INPUT_H).
5279         (EBITMAP_H): Rename from typo-ed EBIMAP_H.
5280         (GSTAB_H): New.
5281         (BITMAP_H): New.
5282         (many object files): Fix lots of header dependencies throughout.
5283
5284 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5285
5286         * Makefile.in (write_entries_to_file, write_entries_to_file_split):
5287         New macros.
5288         (s-gtyp-input): Use them to write tmp-gi.list.
5289         (echo_to_gi.list): Remove.
5290
5291 2008-07-14  Richard Guenther  <rguenther@suse.de>
5292
5293         * tree-ssa-sccvn.c (pre_info): Remove.
5294         (switch_to_PRE_table): Likewise.
5295         (free_scc_vn): Do not clear SSA_NAME_VALUE.  Do not free pre_info.
5296         (set_hashtable_value_ids): Do not create value-ids for the
5297         optimistic tables.
5298         (run_scc_vn): Remove double test.  Remove bogus special-case
5299         in value-number printing.
5300         * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
5301         * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
5302         SSA_NAME_VALUE.
5303         * tree-flow-inline.h (get_value_handle): Remove.
5304         * tree-flow.h (get_value_handle): Remove.
5305
5306 2008-07-14  Martin Jambor  <mjambor@suse.cz>
5307
5308         * tree-switch-conversion.c (gen_inbound_check): Make sure the type
5309         in which we generate arithmetics is not a subrange.
5310
5311 2008-07-14  Martin Jambor  <mjambor@suse.cz>
5312
5313         * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
5314
5315 2008-07-14  Richard Guenther  <rguenther@suse.de>
5316
5317         * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
5318
5319 2008-07-14  Andreas Krebbel  <krebbel1@de.ibm.com>
5320
5321         PR target/36745
5322         * config/s390/s390.c: (s390_secondary_reload): Add a secondary
5323         reload for symbol refs moved to r0 with -fPIC.
5324         (legitimize_pic_address): Use the target register as temporary
5325         reg if possible.
5326         (emit_symbolic_move): Adjust comment.
5327         * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
5328         New expanders.
5329
5330 2008-07-14  Ben Elliston  <bje@au.ibm.com>
5331
5332         * c-common.h (C_CPP_HASHNODE): New macro.
5333         * coretypes.h (struct cpp_token): Forward declare.
5334         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
5335         the context-sensitive keyword method.
5336         * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
5337         __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
5338         expand_bool_pixel): New.
5339         (altivec_categorize_keyword): New function.
5340         (init_vector_keywords): New function.
5341         (rs6000_macro_to_expand): Likewise.
5342         (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
5343         compiling an ISO C dialect.
5344
5345 2008-07-13  Daniel Berlin  <dberlin@dberlin.org>
5346
5347         * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
5348         (create_expression_by_pieces): Fix typo.
5349         (do_regular_insertion): Use debug counter here too.
5350
5351 2008-07-14  Hans-Peter Nilsson  <hp@axis.com>
5352
5353         PR target/35492.
5354         * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
5355         CONST_OK_FOR_LETTER_P.  All port-local users changed.
5356         (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
5357         implement Kp matching power-of-two.
5358         (CONSTRAINT_LEN): Define to match.
5359         * config/cris/cris.md: Replace all use of constraint K with Kc.
5360         ("*btst*): Use Kp for operand 0 of last alternative.
5361
5362 2008-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5363
5364         PR testsuite/36440
5365         * tree-call-cdce.c (check_target_format): Accept MIPS single, double
5366         and quad formats.
5367
5368 2008-07-13  Jan Hubicka  <jh@suse.cz>
5369
5370         * tree.c (decl_assembler_name_equal): Expect assembler name of decl
5371         to be mangled too.
5372
5373 2008-07-13  Richard Guenther  <rguenther@suse.de>
5374
5375         PR middle-end/36811
5376         * langhooks.c (lhd_print_error_function): Deal with recursive
5377         BLOCK trees.
5378
5379 2008-07-12  Jan Hubicka  <jh@suse.cz>
5380
5381         * cgraph.c (assembler_name_hash): New static var.
5382         (hash_node_by_assembler_name, eq_assembler_name): New.
5383         (cgraph_node_for_asm): Use hashtable.
5384         (cgraph_remove_node): Maintain hashtable.
5385         (change_decl_assembler_name): Sanity check that names are not changing
5386         after aliasing was processed.
5387         * cgraph.h (varpoon_node): Add next GGC marker.
5388         * tree.c (decl_assembler_name_equal): Constify.
5389         (decl_assembler_name_hash): New.
5390         * tree.h (decl_assembler_name_equal): Constify.
5391         (decl_assembler_name_hash): Update.
5392
5393 2008-07-12  David Daney  <ddaney@avtrex.com>
5394
5395         * config/mips/driver-native.c (host_detect_local_cpu): Handle
5396         sb1 and r5000 cpus.
5397
5398 2008-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
5399
5400         * doc/md.texi: Document the MIPS "v" constraint.
5401         * config/mips/mips.h (reg_class): Revert last change.
5402         (REG_CLASS_NAMES): Likewise.
5403         (REG_CLASS_CONTENTS): Likewise.
5404         * config/mips/mips.c (mips_regno_to_class): Likewise.
5405         * config/mips/constraints.md (v): Likewise, but add documentation.
5406         Add a comment to say that this constraint should not be used in
5407         gcc code.
5408
5409 2008-07-11  DJ Delorie  <dj@redhat.com>
5410
5411         * config/h8300/h8300.md (length): Fix branch offset limit.
5412
5413 2008-07-11  Anatoly Sokolov  <aesok@post.ru>
5414
5415         * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
5416         * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
5417         (avr_hard_regno_scratch_ok): New function.
5418         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
5419         * config/avr/avr.md (all peepholes that request a scratch register):
5420         Remove avr_peep2_scratch_safe use.
5421
5422 2008-07-11  Tom Tromey  <tromey@redhat.com>
5423             Ian Lance Taylor  <iant@google.com>
5424
5425         * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
5426         (struct c_common_resword): Define.
5427         (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
5428         (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
5429         (c_common_reswords, num_c_common_reswords): Declare.
5430         * c-common.c (c_common_reswords): New global const array.
5431         (num_c_common_reswords): New const int.
5432         * c-parser.c (struct resword, reswords): Don't define.
5433         (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
5434         (c_parse_init): Clarify mask code.  Use c_common_reswords rather
5435         than reswords.  If warning about C++ keywords, give them a special
5436         RID code.
5437         (c_lex_one_token): Warn about C++ keywords.  Call
5438         objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
5439         (c_parser_external_declaration): Look for RID_xxx rather than
5440         RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
5441         (c_parser_statement_after_labels): Likewise.
5442         (c_parser_objc_class_instance_variables): Likewise.
5443         (c_parser_objc_class_declaration): Likewise.
5444         (c_parser_objc_try_catch_statement): Likewise.
5445         * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
5446         (declspecs_add_type): Likewise.
5447
5448 2008-07-11  Angelo Graziosi  <angelo.graziosi@alice.it>
5449
5450         * ggc-page.c (alloc_page):
5451         Substituting xmalloc, xcalloc with
5452         XNEWVEC and XCNEWVAR macros which add the
5453         needed casts.
5454
5455 2008-07-11  Richard Guenther  <rguenther@suse.de>
5456
5457         PR tree-optimization/36765
5458         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
5459         aliases from HEAP vars to SMTs.
5460
5461 2008-07-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5462
5463         * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
5464         * configure.ac (loose_warn): Move -Wc++-compat from here...
5465         (strict_warn): ...to here.
5466         * configure: Regenerate.
5467
5468 2008-07-10  Joseph Myers  <joseph@codesourcery.com>
5469
5470         * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
5471         i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
5472         m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
5473         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
5474         excluding more specific h8300-*-* and sh-*-* targets.
5475
5476 2008-07-10  Daniel Berlin  <dberlin@dberlin.org>
5477
5478         * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
5479         (eliminate): Ditto.
5480         (execute_pre): Call loop_optimizer_finalize in early exit.
5481
5482 2008-07-10  Jakub Jelinek  <jakub@redhat.com>
5483
5484         PR middle-end/36790
5485         * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
5486         uids in the bitmap, not just VAR_DECL uids.
5487
5488         PR rtl-optimization/36419
5489         * combine-stack-adj.c (adjust_frame_related_expr): New function.
5490         (combine_stack_adjustments_for_block): Call it if needed.  Delete
5491         correct insn.
5492         * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
5493         DW_CFA_GNU_args_size if CSA pass merged some adjustments into
5494         prologue sp adjustment.
5495
5496 2008-07-10  Peter Maydell  <pmaydell@chiark.greenend.org.uk>
5497
5498         PR other/28322
5499         * opts.c (print_ignored_options): Report postponed diagnostics for
5500         unknown -Wno-* options as warnings, not errors.
5501         (postpone_unknown_option_error): Renamed to...
5502         (postpone_unknown_option_warning): ... this.
5503
5504 2008-07-09  Doug Kwan  <dougkwan@google.com>
5505
5506         Revert:
5507         2008-07-08  Doug Kwan  <dougkwan@google.com>
5508
5509         * config/arm/arm.opt (mandroid): New option.
5510         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
5511         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
5512         (CC1_SPEC): Same.
5513         (CC1PLUS_SPEC): Same.
5514         (LIB_SPEC): Same.
5515         (STARTFILE_SPEC): Same.
5516         (ENDFILE_SPEC): Same.
5517         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
5518         used.
5519
5520 2008-07-09  Richard Sandiford  <rdsandiford@googlemail.com>
5521
5522         PR target/35802
5523         * config/mips/mips.h (reg_class): Remove V1_REG.
5524         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
5525         * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
5526         instead of V1_REGS.
5527         (mips_get_tp): New function.
5528         (mips_legitimize_tls_address): Use it.
5529         * config/mips/constraints.md (v): Delete.
5530         * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
5531         (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
5532         After reload, split into a move and ...
5533         (*tls_get_tp_<mode>_split): ...this new instruction.
5534
5535 2008-07-09  David Daney  <ddaney@avtrex.com>
5536
5537         * config/mips/driver-native.c: Include coretypes.h and tm.h.
5538
5539 2008-07-09  Jakub Jelinek  <jakub@redhat.com>
5540
5541         * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
5542         (push_gimplify_context): Don't allocate temp_htab nor c itself here.
5543         Add c argument.
5544         (pop_gimplify_context): Check c->temp_htab instead of optimize whether
5545         htab_delete should be called.  Don't free c.
5546         (lookup_tmp_var): Create temp_htab lazily.
5547         (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
5548         gimplify_body, force_gimple_operand): Adjust push_gimplify_context
5549         callers.
5550         * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
5551         lower_omp_ordered, lower_omp_critical, lower_omp_for,
5552         create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
5553         * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
5554         * tree-sra.c (generate_element_init): Likewise.
5555         * tree-mudflap.c (execute_mudflap_function_ops,
5556         execute_mudflap_function_decls): Likewise.
5557         * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
5558         * tree-gimple.h (struct gimplify_ctx): New type.
5559         (push_gimplify_context): Adjust prototype.
5560
5561 2008-07-09  Daniel Berlin  <dberlin@dberlin.org>
5562
5563         * tree-ssa-pre.c (phi_translate_1): Update placement of
5564         add_to_value calls.
5565
5566 2008-07-09  Anatoly Sokolov  <aesok@post.ru>
5567
5568         * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
5569         * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
5570         (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
5571         * targhooks.c (default_hard_regno_scratch_ok): New function.
5572         * targhooks.h (default_hard_regno_scratch_ok): Declare function.
5573         * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
5574         * recog.c:  Include "target.h".
5575         (peep2_find_free_register): Add check for global regs. Add target
5576         specific check.
5577         * Makefile.in (recog.o): Depend on target.h.
5578
5579 2008-07-09  Kaz Kojima  <kkojima@gcc.gnu.org>
5580
5581         * config/sh/sh.c (sh_canonical_va_list_type): New.
5582         (TARGET_CANONICAL_VA_LIST_TYPE): Define.
5583
5584 2008-07-09  Raksit Ashok <raksit@google.com>
5585
5586         * doc/invoke.texi (Option Summary): Mention new option
5587         -Wdisallowed-function-list=...
5588         (Warning Options): Document -Wdisallowed-function-list=...
5589         * common.opt (Wdisallowed-function-list=): New flag.
5590         * flags.h (warn_disallowed_functions): External definition of new
5591         boolean warning flag.
5592         (warn_if_disallowed_function_p): Declare new function.
5593         * opts.c (warning_disallowed_functions): New static variable.
5594         (warn_disallowed_functions): New boolean warning flag.
5595         (warn_if_disallowed_function_p): New function.
5596         (add_comma_separated_to_vector): Rename
5597         add_instrument_functions_exclude_list to this.
5598         (common_handle_option): Handle new option. Rename calls to
5599         add_instrument_functions_exclude_list into calls to
5600         add_comma_separated_to_vector.
5601         * c-parser.c (c_parser_postfix_expression_after_primary): New warning
5602         based on flag warn_disallowed_functions.
5603
5604 2008-07-09  Christian Bruel  <christian.bruel@st.com>
5605
5606         * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
5607          instead of get_attr_length.
5608
5609 2008-07-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5610
5611         * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
5612         keywords.
5613         * genemit.c (gen_insn): Likewise.
5614         * gengtype.c (note_def_vec): Likewise.
5615         * gengtype.h (note_def_vec): Likewise.
5616         * genoutput.c (struct data, output_insn_data, process_template,
5617         gen_expand, gen_split, note_constraint): Likewise.
5618         * genrecog.c (new_decision, add_to_sequence, factor_tests,
5619         make_insn_sequence): Likewise.
5620         * gensupport.c (record_insn_name): Likewise.
5621
5622 2008-07-08  Doug Kwan  <dougkwan@google.com>
5623
5624         * config/arm/arm.opt (mandroid): New option.
5625         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
5626         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
5627         (CC1_SPEC): Same.
5628         (CC1PLUS_SPEC): Same.
5629         (LIB_SPEC): Same.
5630         (STARTFILE_SPEC): Same.
5631         (ENDFILE_SPEC): Same.
5632         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
5633         used.
5634
5635 2008-07-08  Raksit Ashok  <raksit@google.com>
5636
5637         * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
5638         (set_storage_via_setmem): Fix expected_align parameter.
5639         * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
5640         missing from the list.
5641         * doc/md.texi (movmem): Explicitly state that expected alignment is
5642         to be expressed in bytes.
5643         (setmem): Explicitly state that expected alignment is to be expressed
5644         in bytes.
5645
5646 2008-07-08  Joseph Myers  <joseph@codesourcery.com>
5647
5648         * reload.c (find_reloads_subreg_address): Do not require validity
5649         of address in original mode before reloading address.
5650
5651 2008-07-07  Tianwei Sheng  <tianweis@google.com>
5652
5653         * df-core.c (df_remove_problem): Adjust the access to avoid out of
5654         bounds array access.
5655
5656 2008-07-08  Jakub Jelinek  <jakub@redhat.com>
5657
5658         * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
5659
5660 2008-07-05  Daniel Berlin  <dberlin@dberlin.org>
5661
5662         Fix PR tree-optimization/23455
5663         Fix PR tree-optimization/35286
5664         Fix PR tree-optimization/35287
5665         * Makefile.in (OBJS-common): Remove tree-vn.o.
5666         (tree-vn.o): Remove.
5667         * dbgcnt.def: Add treepre_insert debug counter.
5668         * gcc/tree-flow.h (add_to_value): Updated for other changes.
5669         (debug_value_expressions): Ditto.
5670         (print_value_expressions): Ditto.
5671         * tree-pretty-print.c (dump_generic_node): Updated for
5672         VALUE_HANDLE removal.
5673         * tree-ssa-dom.c (record_equality): Ditto.
5674         (cprop_operand): Ditto.
5675         (lookup_avail_expr): Ditto.
5676         * tree-ssa-threadedge.c
5677         (record_temporary_equivalences_from_stmts_at_dest): Ditto.
5678         (simplify_control_stmt_condition): Ditto.
5679         * tree.c (tree_code_size): Ditto.
5680         (tree_node_structure): Ditto.
5681         (iterative_hash_expr): Ditto.
5682         * tree.def: Ditto.
5683         * tree.h (VALUE_HANDLE_ID): Ditto.
5684         (VALUE_HANDLE_EXPR_SET): Ditto.
5685         (struct tree_value_handle): Ditto.
5686         (union tree_node): Ditto.
5687         * treestruct.def: Ditto.
5688         * tree-vn.c: Removed.
5689         * tree-ssa-pre.c: Rewritten entirely.
5690         * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
5691         (constant_value_ids): Ditto.
5692         (vn_nary_op_t): Moved to header.
5693         (vn_phi_t): Ditto.
5694         (vn_reference_op_t): Ditto
5695         (vn_reference_t): Ditto.
5696         (next_value_id): New variable.
5697         (VN_INFO): Add an assert.
5698         (vn_constant_eq): New function.
5699         (vn_constant_hash): Ditto.
5700         (get_or_alloc_constant_value_id): Ditto.
5701         (value_id_constant_p): Ditto.
5702         (vn_reference_compute_hash): De-staticify.
5703         (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
5704         Disable some code with a FIXME.  Remove VALUE_HANDLE use.
5705         (valueize_refs): Update opcode if it changes from ssa name to constant.
5706         (vn_reference_lookup_1): Add new argument.
5707         (vn_reference_lookup):  Ditto.
5708         (vn_reference_lookup_pieces): New function.
5709         (vn_reference_insert): Add return type. Modify to deal with value ids.
5710         (vn_reference_insert_pieces):  New function.
5711         (vn_nary_op_compute_hash): De-staticify.
5712         (vn_nary_op_eq): Ditto.
5713         (vn_nary_op_lookup_pieces): New function.
5714         (vn_nary_op_lookup): Add new argument.
5715         (vn_nary_op_insert_pieces): New function.
5716         (vn_nary_op_insert): Add return type. Modify to deal with value ids.
5717         (vn_phi_insert): Ditto.
5718         (visit_unary_op): Update for callee changes.
5719         (visit_binary_op): Ditto.
5720         (visit_reference_op_load): Ditto.
5721         (visit_reference_op_store): Ditto.
5722         (init_scc_vn): Init next_value_id, constant_to_value_id and
5723         constant_value_ids.
5724         (free_scc_vn): Free them.
5725         (set_hashtable_value_ids): New function.
5726         (run_scc_vn): Use it.
5727         (get_max_value_id): New function.
5728         (get_next_value_id): Ditto.
5729         (expressions_equal_p): Moved from tree-vn.c
5730         (sort_vuses): Ditto.
5731         (sort_vuses_heap): Ditto.
5732         * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
5733         above).
5734         * tree.c (iterative_hash_hashval_t): Made non-static
5735         * tree.h (iterative_hash_hashval_t): Declare it.
5736
5737 2008-07-08  Martin Jambor  <mjambor@suse.cz>
5738
5739         * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
5740         instead of ipa_create_node_params.
5741         (ipcp_driver): Allocate infos with ipa_check_create_node_params and
5742         ipa_check_create_edge_args, free them with
5743         free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
5744
5745         * ipa-prop.c: Include flags.h and tree-inline.h.
5746         (ipa_node_params_vector): New variable.
5747         (ipa_edge_args_vector): New variable.
5748         (edge_removal_hook_holder): New variable.
5749         (node_removal_hook_holder): New variable.
5750         (edge_duplication_hook_holder): New variable.
5751         (node_duplication_hook_holder): New variable.
5752         (ipa_detect_param_modifications): Check for presence of modified flags.
5753         (ipa_compute_jump_functions): Check for presence of jump functions.
5754         (ipa_free_edge_args_substructures): New function.
5755         (ipa_create_node_params): Removed.
5756         (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
5757         (ipa_free_node_params_substructures): New function.
5758         (ipa_free_all_node_params): Changed to deallocate the on-the-side
5759         vector.
5760         (ipa_edge_removal_hook): New function.
5761         (ipa_node_removal_hook): New function.
5762         (duplicate_array): New function.
5763         (ipa_edge_duplication_hook): New function.
5764         (ipa_node_duplication_hook): New function.
5765         (ipa_register_cgraph_hooks): New function.
5766         (ipa_unregister_cgraph_hooks): New function.
5767         (free_all_ipa_structures_after_ipa_cp): New function.
5768
5769         * ipa-prop.h: Include vec.h.
5770         (ipa_node_params_t): New typedef with vector types for it.
5771         (ipa_edge_args_t):  New typedef with vector types for it.
5772         (IPA_NODE_REF): Changed to access an on-the-side vector.
5773         (IPA_EDGE_REF): Changed to access an on-the-side vector.
5774         (ipa_check_create_node_params): New function.
5775         (ipa_check_create_edge_args): New function.
5776
5777         * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h.  Converted
5778         all users.
5779
5780 2008-07-07  Tom Tromey  <tromey@redhat.com>
5781
5782         * configure, config.in: Rebuilt.
5783         * configure.ac: Don't check for scandir or alphasort.
5784
5785 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
5786
5787         * config/arm/arm.c (arm_init_neon_builtins): Register built-in
5788         types immediately after creating them.
5789
5790 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
5791
5792         * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
5793
5794 2008-07-07  Fernando Pereira <fernando@cs.ucla.edu>
5795
5796         * tree-ssa-structalias.c (compute_points_to_sets): Add call to
5797         dump_constraint_graph.
5798         (dump_constraint_edge): New function.
5799         (dump_constraint_graph): New function.
5800         (debug_constraint_graph): New function.
5801         (dump_constraint): Removed useless comparison.
5802         * tree-ssa-structalias.h (dump_constraint_edge): Declare.
5803         (dump_constraint_graph): Declare.
5804         (debug_constraint_graph): Declare.
5805         * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
5806
5807 2008-07-07  Kai Tietz  <kai.tietz@onevision.com>
5808
5809         * config/i386/i386.c (is_va_list_char_pointer): New.
5810         (ix86_va_start): Replace compare with ms_va_list_type_node
5811         by is_va_list_char_pointer.
5812         (ix86_gimplify_va_arg): Likewise.
5813
5814 2008-07-07  Martin Jambor  <mjambor@suse.cz>
5815
5816         * cgraph.c (cgraph_edge_max_uid): New variable.
5817         (struct cgraph_edge_hook_list): New type.
5818         (struct cgraph_node_hook_list): New type.
5819         (struct cgraph_2edge_hook_list): New type.
5820         (struct cgraph_2node_hook_list): New type.
5821         (first_cgraph_edge_removal_hook): New variable.
5822         (first_cgraph_node_removal_hook): New variable.
5823         (first_cgraph_edge_duplicated_hook): New variable.
5824         (first_cgraph_node_duplicated_hook): New variable.
5825         (cgraph_add_edge_removal_hook): New function.
5826         (cgraph_remove_edge_removal_hook): New function.
5827         (cgraph_call_edge_removal_hooks):  New function.
5828         (cgraph_add_node_removal_hook):  New function.
5829         (cgraph_remove_node_removal_hook):  New function.
5830         (cgraph_call_node_removal_hooks):  New function.
5831         (cgraph_add_edge_duplication_hook):  New function.
5832         (cgraph_remove_edge_duplication_hook):  New function.
5833         (cgraph_call_edge_duplication_hooks):  New function.
5834         (cgraph_add_node_duplication_hook):  New function.
5835         (cgraph_remove_node_duplication_hook):  New function.
5836         (cgraph_call_node_duplication_hooks):  New function.
5837         (cgraph_create_edge): Assign to edge uid.
5838         (cgraph_remove_edge): Call edge removal hooks.
5839         (cgraph_node_remove_callees): Call edge removal hooks.
5840         (cgraph_node_remove_callers): Call edge removal hooks.
5841         (cgraph_remove_node): Call node removal hooks.
5842         (cgraph_clone_edge): Call edge duplication hooks.
5843         (cgraph_clone_node): Call node duplication hooks.
5844
5845         * cgraph.h (cgraph_edge): New field uid.
5846         (cgraph_edge_hook): New type.
5847         (cgraph_node_hook): New type.
5848         (cgraph_2edge_hook): New type.
5849         (cgraph_2node_hook): New type.
5850
5851 2008-07-07  Andreas Tobler  <a.tobler@schweiz.org>
5852
5853         * config.in: Regenerate.
5854
5855 2008-07-07  Vladimir Prus  <vladimir@codesourcery.com>
5856
5857         * gcc.c (print_sysroot): New.
5858         (option_map, display_help, process_command): Handle the
5859         -print-sysroot option.
5860         (main): Print the sysroot if requested.
5861         * doc/invoke.texi (Debugging Options): Document -print-sysroot.
5862
5863 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5864
5865         PR target/34780
5866         * unwind-pe.h (size_of_encoded_value): add attribute unused.
5867
5868 2008-07-07  Daniel Jacobowitz  <dan@codesourcery.com>
5869
5870         * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
5871         (assign_parm_setup_block_p): Also check mode of entry_parm.
5872
5873 2008-07-07  Richard Guenther  <rguenther@suse.de>
5874
5875         * tree-ssa-structalias.h (set_used_smts): Remove.
5876         * tree-ssa-structalias.c (used_smts): Likewise.
5877         (set_used_smts): Likewise.
5878         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
5879         call to set_used_smts.
5880
5881 2008-07-07  Richard Guenther  <rguenther@suse.de>
5882
5883         * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
5884         (new_var_info): Set it to false.
5885         (solution_set_add): Correctly handle pointers outside a var and
5886         inside a field.
5887         (type_safe): Treat variables with is_full_var properly.
5888         (do_sd_constraint): Likewise.
5889         (do_ds_constraint): Likewise.
5890         (process_constraint): Remove zeroing offset for !use_field_sensitive.
5891         (get_constraint_for_ptr_offset): New function.
5892         (get_constraint_for_component_ref): For addresses at least include
5893         the last field of the variable.  Handle is_full_vars properly.
5894         (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
5895         (handle_ptr_arith): Remove.
5896         (find_func_aliases): Simplify assignment handling.
5897         (create_function_info_for): For parameter and result varinfos set
5898         is_full_var flag.
5899         (create_variable_info_for): Set is_full_var flag whenever we
5900         just created a single varinfo for a decl.
5901         (init_alias_vars): Initialize use_field_sensitive from
5902         max-fields-for-field-sensitive parameter.
5903
5904 2008-07-07  Richard Guenther  <rguenther@suse.de>
5905
5906         PR tree-optimization/36713
5907         * tree-flow-inline.h (is_call_used): New function.
5908         * tree-nrv.c (dest_safe_for_nrv_p): Use it.
5909         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
5910         * tree-outof-ssa.c (create_temp): Set call-used flag if required.
5911
5912 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
5913
5914         * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
5915
5916 2008-07-07  Mark Shinwell  <shinwell@codesourcery.com>
5917
5918         * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
5919
5920 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
5921             Nathan Sidwell  <nathan@codesourcery.com>
5922
5923         * config.gcc (m68k-*-linux*): Add with_arch.  Add sysroot-suffix.h
5924         to tm_file.  Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
5925         tmake_file.
5926         * config/m68k/t-linux: New.
5927         * doc/install.texi: Document m68k-*-linux is now multilibbed by
5928         default.
5929
5930 2008-07-07  Nathan Sidwell  <nathan@codesourcery.com>
5931
5932         * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
5933         * config/m68k/m68k-devices.def: Remove multilibs that only differ
5934         by MAC/EMAC.
5935
5936 2008-07-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5937
5938         * gcc.c (execute): Fix -Wc++-compat warning.
5939
5940 2008-07-06  H.J. Lu  <hongjiu.lu@intel.com>
5941
5942         PR target/36720
5943         * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
5944         constant for little endian.
5945
5946 2008-07-06  Richard Sandiford  <rdsandiford@googlemail.com>
5947
5948         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
5949         mips_base_mips16 instead of TARGET_MIPS16.
5950         (mips_base_mips16): Declare.
5951         * config/mips/mips.c (mips_base_mips16): Make global.
5952         (was_mips16_p): Remove GTY marker.
5953         (was_mips16_pch_p): New variable.
5954         (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
5955         (mips_override_options): Force to non-MIPS16 mode initially.
5956         Do not complain about MIPS16 PIC incompatibilities here.
5957         Only allow -mgpopt if -mexplicit-relocs is in force for
5958         non-MIPS16 code.
5959
5960 2008-07-06  Andreas Tobler  <a.tobler@schweiz.org>
5961
5962         * configure.ac: Check for caddr_t, define to char * if not defined.
5963         * configure: Regenerate.
5964         * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
5965         (mmap_gt_pch_use_address): Likewise.
5966         * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
5967
5968 2008-07-06  Richard Guenther  <rguenther@suse.de>
5969
5970         * tree-ssa-structalias.c (struct variable_info): Remove has_union.
5971         (new_var_info): Deal with it.
5972         (solution_set_add): Likewise.
5973         (bitpos_of_field): Make signed, fix.
5974         (struct fieldoff): Remove type and decl fields.  Make size field
5975         unsigned HOST_WIDE_INT.  Add has_unknown_size and may_have_pointers
5976         flags.
5977         (fieldoff_compare): Deal with it.
5978         (push_fields_onto_fieldstack): Remove has_union argument, glob
5979         adjacent non-pointer fields together.
5980         (create_function_info_for): Do not set has_union.
5981         (create_variable_info_for): Simplify.
5982
5983 2008-07-06  Kai Tietz  <kai.tietz@onevision.com>
5984
5985         * config.gcc (extra_headers): Add cross-stdarg.h for target
5986         x86_64-*-* and i?86-*-*.
5987         * config/i386/cross-stdarg.h: New.
5988         * builtins.c (std_fn_abi_va_list): New.
5989         (std_canonical_va_list_type): New.
5990         (stabilize_va_list): Replace va_list_type_node use by
5991         mtarget.canonical_va_list_type.
5992         (gimplify_va_arg_expr): Likewise.
5993         (expand_builtin_va_copy): Replace va_list_type_node use by
5994         mtarget.fn_abi_va_list.
5995         * tree-sra.c (is_va_list_type): New helper.
5996         (decl_can_be_decomposed_p): Replace
5997         va_list_type_node use by is_va_list_type.
5998         * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
5999         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
6000         * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
6001         * config/i386/i386-protos.h (ix86_get_valist_type): New.
6002         (ix86_enum_va_list): New.
6003         * config/i386/i386.c (sysv_va_list_type_node): New.
6004         (ms_va_list_type_node): New.
6005         (ix86_function_type_abi): Remove sorry.
6006         (ix86_build_builtin_va_list_abi): New.
6007         (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
6008         for 64-bit targets.
6009         (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
6010         (ix86_init_builtins_va_builtins_abi): New.
6011         (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
6012         for 64-bit targets.
6013         (ix86_handle_abi_attribute): New.
6014         (attribute_spec): Add sysv_abi and ms_abi.
6015         (ix86_fn_abi_va_list): New.
6016         (ix86_canonical_va_list_type): New.
6017         (ix86_enum_va_list): New.
6018         (TARGET_FN_ABI_VA_LIST): New.
6019         (TARGET_CANONICAL_VA_LIST_TYPE): New.
6020         * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
6021         * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
6022         (TARGET_CANONICAL_VA_LIST_TYPE): New.
6023         (TARGET_ENUM_VA_LIST): New.
6024         * expr.h (std_fn_abi_va_list): New.
6025         (std_canonical_va_list_type): New.
6026         * target-def.h (TARGET_FN_ABI_VA_LIST): New.
6027         (TARGET_CANONICAL_VA_LIST_TYPE): New.
6028         (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
6029         TARGET_CANONICAL_VA_LIST_TYPE.
6030         * target.h (struct gcc_target): Add fn_abi_va_list hook
6031         and canonical_va_list_type hook.
6032
6033 2008-07-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6034
6035         * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
6036         integral and pointer types.
6037
6038 2008-07-04  Roger Sayle  <roger@eyesopen.com>
6039
6040         * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
6041         the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
6042
6043 2008-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
6044
6045         PR target/36684
6046         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
6047
6048 2008-07-04  Jakub Jelinek  <jakub@redhat.com>
6049
6050         * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
6051         build_gimple_modify_stmt.
6052         (build_arrays, gen_inbound_check): Likewise.  Force RHS to be
6053         gimple operand.  Use fold_build* instead of build*.
6054
6055 2008-07-04  Richard Guenther  <rguenther@suse.de>
6056
6057         * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
6058         (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
6059         properly to compute the reachability set if we do field-sensitive PTA.
6060         * invoke.texi (max-fields-for-field-sensitive): Document default.
6061         * opts.c (decode_options): Set max-fields-for-field-sensitive to
6062         100 for optimize >= 2.
6063
6064 2008-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6065
6066         * ggc-zone.c (lookup_page_table_if_allocated,
6067         set_page_table_entry, zone_find_object_size, alloc_small_page,
6068         alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
6069         new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
6070         -Wc++-compat and/or -Wcast-qual warnings.
6071
6072 2008-07-04  Alan Modra  <amodra@bigpond.net.au>
6073
6074         PR target/36634
6075         * config/rs6000/rs6000.md (call, call_value): Don't arrange for
6076         pic_offset_table_rtx to be marked as used here.
6077         (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
6078         TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
6079         (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
6080         (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
6081         !TARGET_SECURE_PLT.
6082
6083 2008-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6084
6085         * alloc-pool.c (hash_descriptor, eq_descriptor,
6086         alloc_pool_descriptor): Fix -Wc++-compat warnings.
6087         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
6088         Likewise.
6089         * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
6090         loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
6091         final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
6092         * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
6093         Likewise.
6094
6095 2008-07-03  Eric Botcazou  <ebotcazou@adacore.com>
6096
6097         * tree-flow.h (loop_only_exit_p): Declare.
6098         * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
6099         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
6100         the number of iterations if it is constant.  Otherwise, if this is the
6101         only possible exit of the loop, use the conservative estimate on the
6102         number of iterations of the entire loop if available.
6103
6104 2008-07-03  Richard Sandiford  <rdsandiford@googlemail.com>
6105
6106         * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
6107         * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
6108         Add synchronization functions.
6109         * config/sync.c: New file.
6110         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
6111         (LIBGCC_SYNC_CFLAGS): Likewise.
6112
6113 2008-07-03  Uros Bizjak  <ubizjak@gmail.com>
6114
6115         PR target/36710
6116         * config/i386/i386.md (mode): Add TF to "mode" attribute.
6117         (*pushtf_sse): New insn pattern.
6118         (pushtf splitters): New splitters.
6119
6120 2008-07-03  Michael Meissner  <gnu@the-meissners.org>
6121
6122         PR middle-end/35736
6123         * predict.c (build_predict_expr): Use void_type_node for the tree
6124         type, instead of NULL_TREE.
6125
6126 2008-07-03  H.J. Lu  <hongjiu.lu@intel.com>
6127
6128         * config/i386/i386.c (contains_aligned_value_p): Return true
6129         for TCmode.
6130         (ix86_data_alignment): Align TCmode to 128bits.
6131         (ix86_local_alignment): Likewise.
6132
6133 2008-07-03  Andrew Haley  <aph@redhat.com>
6134
6135         PR bootstrap/33304
6136         * vec.h (VEC_TA): New.
6137         (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
6138         DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
6139         * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
6140         (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
6141         (C_COMMON_FIXED_TYPES): Remove first arg.
6142         (C_COMMON_FIXED_MODE_TYPES): Likewise.
6143         * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
6144         MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
6145         not to use empty macro arguments.
6146
6147 2008-07-02  Joseph Myers  <joseph@codesourcery.com>
6148
6149         * config/alpha/vms_tramp.asm, config/arm/crti.asm,
6150         config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
6151         config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
6152         config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
6153         config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
6154         config/i386/sol2-gc1.asm, config/ia64/crti.asm,
6155         config/ia64/crtn.asm, config/m68hc11/larith.asm,
6156         config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
6157         config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
6158         config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
6159         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
6160         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
6161         config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
6162         config/rs6000/e500crtres64gpr.asm,
6163         config/rs6000/e500crtres64gprctr.asm,
6164         config/rs6000/e500crtrest32gpr.asm,
6165         config/rs6000/e500crtrest64gpr.asm,
6166         config/rs6000/e500crtresx32gpr.asm,
6167         config/rs6000/e500crtresx64gpr.asm,
6168         config/rs6000/e500crtsav32gpr.asm,
6169         config/rs6000/e500crtsav64gpr.asm,
6170         config/rs6000/e500crtsav64gprctr.asm,
6171         config/rs6000/e500crtsavg32gpr.asm,
6172         config/rs6000/e500crtsavg64gpr.asm,
6173         config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
6174         config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
6175         config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
6176         config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
6177         config/sparc/sol2-cn.asm: Remove .file directives.
6178
6179 2008-07-02  Richard Sandiford  <rdsandiford@googlemail.com>
6180
6181         * resource.c (mark_referenced_resources): Look inside
6182         UNSPEC_VOLATILEs and ASM_INPUTs.
6183
6184 2008-07-02  Ian Lance Taylor  <iant@google.com>
6185
6186         * rtlanal.c (add_reg_note): New function.
6187         * rtl.h (add_reg_note): Declare.
6188         * auto-inc-dec.c (attempt_change): Use add_reg_note.
6189         * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
6190         * builtins.c (expand_builtin_longjmp): Likewise.
6191         (expand_builtin_nonlocal_goto): Likewise.
6192         * calls.c (emit_call_1, expand_call): Likewise.
6193         * cfgexpand.c (add_reg_br_prob_note): Likewise.
6194         * cfglayout.c (fixup_reorder_chain): Likewise.
6195         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
6196         (commit_one_edge_insertion): Likewise.
6197         * combine.c (move_deaths, distribute_notes): Likewise.
6198         * df-problems.c (df_set_note): Likewise.
6199         * emit-rtl.c (link_cc0_insns, try_split): Likewise.
6200         (set_unique_reg_note): Likewise.
6201         (emit_copy_of_insn_after): Likewise.
6202         * expr.c (expand_expr_real): Likewise.
6203         * gcse.c (add_label_notes): Likewise.
6204         * haifa-sched.c (create_check_block_twin): Likewise.
6205         * jump.c (mark_jump_label_1): Likewise.
6206         * loop-doloop.c (add_test, doloop_modify): Likewise.
6207         * loop-unswitch.c (compare_and_jump_seq): Likewise.
6208         * lower-subreg.c (move_eh_region_note): Likewise.
6209         * optabs.c (emit_libcall_block): Likewise.
6210         * predict.c (predict_insn): Likewise.
6211         (combine_predictions_for_insn): Likewise.
6212         * recog.c (peephole2_optimize): Likewise.
6213         * regmove.c (try_auto_increment): Likewise.
6214         * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
6215         * reload.c (find_reloads): Likewise.
6216         * reload1.c (fixup_eh_region_note): Likewise.
6217         (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
6218         * reorg.c (delete_prior_computation): Likewise.
6219         (delete_computation, dbr_schedule): Likewise.
6220         * config/pa/pa.c (legitimize_pic_address): Likewise.
6221         * config/sh/sh.c (sh_reorg): Likewise.
6222
6223 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
6224
6225         PR target/36669
6226         * config/libgcc-glibc.ver: Add %exclude.
6227         * config/m32r/libgcc-glibc.ver: Likwise.
6228         * config/s390/libgcc-glibc.ver: Likwise.
6229         * config/sh/libgcc-glibc.ver: Likwise.
6230         * config/sparc/libgcc-sparc-glibc.ver: Likwise.
6231
6232         * config/i386/libgcc-glibc.ver: New.
6233
6234         * config/i386/libgcc-x86_64-glibc.ver: Removed.
6235
6236 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
6237
6238         * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
6239         from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
6240         i[34567]86-*-linux*, x86_64-*-linux*.  Add
6241         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
6242         i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
6243         x86_64-*-linux*.  Add i386/t-linux to tmake_file for
6244         i[34567]86-*-linux*, x86_64-*-linux*.
6245
6246         * libgcc-std.ver: Add empty GCC_4.4.0.
6247
6248         * mkmap-symver.awk: Support multiple versions per symbol.
6249
6250         * config/i386/i386.c (ix86_init_builtins): Always define
6251         __builtin_fabsq and __builtin_copysignq with fallbacks.
6252         (ix86_expand_builtin): Emit normal call for __builtin_fabsq
6253         and __builtin_copysignq if SSE2 isn't available.
6254
6255         * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
6256         (LIBGCC2_TF_CEXT): Likwise.
6257         (TF_SIZE): Likwise.
6258
6259         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
6260
6261         * config/i386/sfp-machine.h: Moved to libgcc.
6262
6263         * config/i386/sfp-machine.h: New.
6264         * config/i386/t-linux: Likwise.
6265
6266         * config/i386/t-darwin: Remove softfp_wrap_start and
6267         softfp_wrap_end.
6268         * config/i386/t-darwin64: Likewise.
6269
6270         * config/i386/t-fprules-softfp64: Renamed to ...
6271         * config/i386/t-fprules-softfp: This.
6272
6273         * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
6274         and softfp_wrap_end.
6275
6276 2008-07-02  Jason Merrill  <jason@redhat.com>
6277
6278         * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
6279
6280         * tree.c (ctor_to_list): New fn.
6281         * tree.h: Declare it.
6282         (CONSTRUCTOR_ELT): New macro.
6283         (CONSTRUCTOR_NELTS): New macro.
6284
6285 2008-07-02  Richard Guenther  <rguenther@suse.de>
6286
6287         * tree-ssa-structalias.c (struct variable_info): Reorder
6288         to fill padding on 64bit hosts.  Make collapsed_to an int.
6289         (get_varinfo_fc): Deal with that.
6290         (new_var_info): Likewise.
6291         (collapse_rest_of_var): Likewise.
6292
6293 2008-07-02  Joshua Sumali  <jsumali@redhat.com>
6294
6295         * doc/install.texi (--enable-java-home): Document.
6296         (--enable-aot-compile-rpm): Likewise.
6297         (--with-arch-directory): Likewise.
6298         (--with-os-directory): Likewise.
6299         (--with-origin-name): Likewise.
6300         (--with-arch-suffix): Likewise.
6301         (--with-jvm-root-dir): Likewise.
6302         (--with-jvm-jar-dir): Likewise.
6303         (--with-python-dir): Likewise.
6304
6305 2008-07-02  Richard Guenther  <rguenther@suse.de>
6306
6307         * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
6308         from decls explicitly.  Merge operand checking from tuples.
6309
6310 2008-07-02  Martin Jambor  <mjambor@suse.cz>
6311
6312         * tree-switch-conversion.c: Included timevar.h which I forgot before.
6313
6314 2008-07-02  Martin Jambor  <mjambor@suse.cz>
6315
6316         * tree-switch-conversion.c: Included timevar.h
6317         (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
6318
6319         * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
6320
6321 2008-07-02  Martin Jambor  <mjambor@suse.cz>
6322
6323         * tree-switch-conversion.c: Corrected various comments and
6324         whitespace issues
6325         (build_constructors): Fixed minor formatting mistakes.
6326
6327         * invoke.texi (Optimize Options): Corrected the
6328         switch-conversion-max-branch-ratio parameter.
6329
6330 2008-07-02  Mark Shinwell  <shinwell@codesourcery.com>
6331
6332         * final.c (asm_insn_count): Return zero for an empty asm body.
6333
6334 2008-07-02  Richard Guenther  <rguenther@suse.de>
6335
6336         * bitmap.h (bitmap_set_bit): Return bool.
6337         (bitmap_clear_bit): Likewise.
6338         * bitmap.c (bitmap_set_bit): Return if the bit changed.  Only
6339         write to the bitmap if it would.
6340         (bitmap_clear_bit): Likewise.
6341         * tree-ssa-structalias.c (add_implicit_graph_edge): Use
6342         bitmap_set_bit return value.
6343         (add_pred_graph_edge): Likewise.
6344         (add_graph_edge): Likewise.
6345         (do_sd_constraint): Likewise.
6346         (do_ds_constraint): Likewise.
6347
6348 2008-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6349
6350         * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
6351         Fix -Wc++-compat and/or -Wcast-qual warnings.
6352         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
6353         gen_regparm_prefix): Likewise.
6354         * vmsdbgout.c (write_modbeg, lookup_filename,
6355         vmsdbgout_source_line, vmsdbgout_init): Likewise.
6356
6357 2008-07-02  Danny Smith  <dannysmith@users.sourceforge.net>
6358
6359         * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
6360         defaults.h definition apply.
6361
6362 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
6363
6364         * function.c (assign_parm_remove_parallels): New.
6365         (assign_parm_setup_block_p): Do not return true for non-BLKmode
6366         PARALLELs.
6367         (assign_parm_setup_block): Do not handle them.
6368         (assign_parm_setup_reg, assign_parm_setup_stack): Call
6369         assign_parm_remove_parallels.
6370
6371 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
6372
6373         * c-typeck.c (convert_for_assignment): Use
6374         vector_targets_convertible_p.
6375         * c-common.c (vector_targets_convertible_p): New.
6376         * c-common.h (vector_targets_convertible_p): New prototype.
6377         * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
6378         opaque_p_V2SI_type_node.
6379
6380 2008-07-01  Steve Ellcey  <sje@cup.hp.com>
6381
6382         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
6383         RFmode constants.
6384
6385 2008-07-01  Uros Bizjak  <ubizjak@gmail.com>
6386
6387         * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
6388         TFmode constants via two element DImode vector for hosts with
6389         HOST_BITS_PER_WIDE_INT < 64.
6390         (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
6391         also for HOST_BITS_PER_WIDE_INT < 64.
6392
6393 2008-07-01  Richard Guenther  <rguenther@suse.de>
6394
6395         PR tree-optimization/36666
6396         * tree-ssa-structalias.c (get_constraint_for_1): Declare.
6397         (get_constraint_exp_from_ssa_var): Split into ...
6398         (get_constraint_exp_for_temp): ... this ...
6399         (get_constraint_for_ssa_var): ... and that.
6400         Return constraint expressions for all touched sub-fields
6401         if the results address is not taken.
6402         (process_constraint): Remove assertion that aggregate
6403         assignments do not happen at this place.
6404         (get_constraint_for_component_ref): Add address_p argument.
6405         Return constraint expressions for all touched sub-fields
6406         if the results address is not taken.
6407         (do_deref): Use get_constraint_exp_for_temp.
6408         (get_constraint_for_1): Rename from ...
6409         (get_constraint_for): ... this.  Add the old function as wrapper.
6410         (do_structure_copy): Use get_constraint_for_1.
6411
6412 2008-07-01  Martin Jambor  <mjambor@suse.cz>
6413
6414         * Makefile.in (tree-switch-conversion.o): Add.
6415         (OBJS-common): Add tree-swtch-conversion.o.
6416         * passes.c (init_optimization_passes): Add pass_convert_switch.
6417         * tree-pass.h: (pass_convert_switch): Add.
6418         * tree-switch-conversion.c: New file.
6419         * gcc.dg/tree-ssa/cswtch.c: New testcase.
6420         * common.opt (ftree-cswtch): New option.
6421         * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
6422         * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
6423         * opts.c (decode_options): Set flag_tree_switch_conversion when
6424         optimization level is >= 2.
6425         * doc/invoke.texi (Optimize Options): Added description of
6426         -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
6427
6428 2008-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6429
6430         * config/darwin-driver.c (darwin_default_min_version): Fix
6431         -Wc++-compat warnings.
6432
6433 2008-06-30  Uros Bizjak  <ubizjak@gmail.com>
6434
6435         * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
6436         of operand 0.
6437
6438 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
6439
6440         * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
6441
6442 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
6443
6444         PR rtl-optimization/34744
6445         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
6446         (df_scan_free_internal): Free data structures not
6447         allocated in storage pools.
6448         (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
6449         (df_refs_add_to_chains): Use df_scan_free_ref_vec and
6450         df_scan_free_mws_vec.
6451         * dse.c (dse_step6): Free offset_map_p and offset_map_n
6452         unconditionally.
6453
6454 2008-06-30  H.J. Lu  <hongjiu.lu@intel.com>
6455
6456         * config/i386/i386.c (contains_aligned_value_p): Return true
6457         for __float128.
6458         (ix86_function_arg_boundary): Return its natural boundary
6459         for __float128.
6460         (return_in_memory_32): Don't check TDmode.
6461         (ix86_split_to_parts): Support splitting into 4 parts and
6462         support TFmode for 32bit target.
6463         (ix86_split_long_move): Support splitting into 4 parts.
6464         (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
6465         for SSE2.
6466         (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
6467         (ix86_init_builtins): Here.
6468         (ix86_scalar_mode_supported_p): Always return true for TFmode.
6469         (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
6470         'q' and 'w', respectively.
6471
6472         * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
6473         TARGET_64BIT.
6474         (movtf_internal): Likewise.
6475         (<code>tf2): Likewise.
6476         (*absnegtf2_sse): Likewise.
6477         (copysign<mode>3): Likewise.
6478         (copysign<mode>3_const): Likewise.
6479         (copysign<mode>3_var): Likewise.
6480         (define_split UNSPEC_COPYSIGN): Likewise.
6481         * config/i386/sse.md (*nandtf3): Likewise.
6482         (<code>tf3): Likewise.
6483         (*<code>tf3): Likewise.
6484
6485 2008-06-30  Joey Ye  <joey.ye@intel.com>
6486             H.J. Lu  <hongjiu.lu@intel.com>
6487
6488         * global.c (compute_regsets): Set frame_pointer_needed here.
6489         * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
6490
6491 2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
6492
6493         * doc/install.texi (specific): Expand Windows build notes.
6494
6495 2008-06-30  Ira Rosen  <irar@il.ibm.com>
6496
6497         PR tree-optimization/36648
6498         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
6499         number of prolog iterations by step. Fix the comment.
6500
6501 2008-06-30  Richard Guenther  <rguenther@suse.de>
6502
6503         PR middle-end/36671
6504         * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
6505         handle calls from ECF_MALLOC functions.
6506         (handle_pure_call): ECF_MALLOC functions do not return
6507         call-used memory.
6508         (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
6509
6510 2008-06-29  Andreas Schwab  <schwab@suse.de>
6511
6512         * config/m68k/m68k.c (print_operand): Always print a float
6513         constant in hex.
6514         * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
6515         (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
6516         Remove macros.
6517
6518         * config/rs6000/x-linux64: Remove never used file.
6519
6520 2008-06-29  Richard Guenther  <rguenther@suse.de>
6521
6522         * tree-ssa-structalias.h (compute_points_to_sets): Adjust
6523         prototype.
6524         (struct alias_info): Move ...
6525         * tree-ssa-alias.c: ... here.
6526         (update_alias_info): Declare.
6527         (compute_may_aliases): Call it.
6528         (update_alias_info): New function.
6529         * tree-ssa-structalias.c (update_alias_info): Move ...
6530         * tree-ssa-alias.c (update_alias_info_1): ... here.
6531         * tree-ssa-structalias.c (process_constraint_1): Remove
6532         unused from_call argument.  Rename to ...
6533         (process_constraint): ... this.  Delete old wrapper.
6534         (make_constraint_to): Adjust callers.
6535         (handle_const_call): Likewise.
6536         (handle_pure_call): Likewise.
6537         (init_base_vars): Likewise.
6538         (handle_lhs_call): Likewise.  Remove unnecessary constraint.
6539         (find_func_aliases): We don't need structure copies for
6540         complex types.
6541         (make_constraint_from_anything): Remove.
6542         (create_variable_info_for): For globals make constraints
6543         from escaped, not from anything.
6544         (compute_points_to_sets): Do not call update_alias_info.
6545         (ipa_pta_execute): Use make_constraint_from.
6546
6547 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6548
6549         * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
6550         (bitmap.o-warn, dominance.o-warn): New.
6551         * configure.ac (cxx_compat_warn): Delete.
6552         (loose_warn): Add -Wcast-qual and -Wc++-compat.
6553         * system.h: Remove #pragma diagnostic for -Wcast-qual and
6554         -Wc++-compat.
6555         * configure: Regenerate.
6556
6557         * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
6558         warnings.
6559
6560 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6561
6562         * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
6563         * df-scan.c (df_notes_rescan): Likewise.
6564         * ggc-page.c (set_page_table_entry): Likewise.
6565         * intl.c (gcc_gettext_width): Likewise.
6566         * varasm.c (get_unnamed_section, get_noswitch_section,
6567         get_section): Likewise.
6568
6569 2008-06-28  Andrew Jenner  <andrew@codesourcery.com>
6570
6571         * regrename.c (build_def_use): Don't copy RTX.
6572
6573 2008-06-28  Sandra Loosemore  <sandra@codesourcery.com>
6574
6575         * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
6576         (Type Attributes): Fix nesting of @table and @subsection.  Adjust
6577         punctuation.  Use @ref instead of @xref.
6578         (Function Names): Remove stray @display/@end display.
6579         (C++ Attributes): Use @ref instead of @xref.
6580         (Deprecated Features): Fix punctuation around @xref.
6581         (Backwards Compatibility): Likewise.
6582         * doc/rtl.texi (Incdec): Remove stray @table/@end table.
6583
6584 2008-06-28  Joseph Myers  <joseph@codesourcery.com>
6585
6586         * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
6587         constants for E500 double.
6588
6589 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6590
6591         * doc/rtl.texi (const_vector): Document const_fixed as legitimate
6592         element type of const_vector.
6593
6594 2008-06-28  Uros Bizjak  <ubizjak@gmail.com>
6595
6596         * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
6597         Remove FLAGS_REG clobber from expander pattern.
6598         (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
6599         (anddi3, andsi3, andhi3, andqi3): Ditto.
6600         (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
6601         (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
6602         (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
6603         (ashlsi3, ashlhi3, ashlqi3): Ditto.
6604         (ashrsi3, ashrhi3, ashrqi3): Ditto.
6605         (lshrsi3, lshrhi3, lshrqi3): Ditto.
6606         (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
6607         (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
6608
6609 2008-06-28  Richard Guenther  <rguenther@suse.de>
6610
6611         * tree-ssa-structalias.c (callused_id, var_callused,
6612         callused_tree): Add.
6613         (handle_pure_call): New function.
6614         (find_func_aliases): Call it.
6615         (find_what_p_points_to): Handle the call-used set.
6616         (clobber_what_escaped): Likewise.
6617         (compute_call_used_vars): New function.
6618         (init_base_vars): Init the call-used variable.
6619         (do_sd_constraint): Do not propagate the solution from CALLUSED
6620         but use CALLUSED as a placeholder.
6621         (solve_graph): Likewise.
6622         * tree-flow-inline.h (gimple_call_used_vars): New function.
6623         * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
6624         (compute_call_used_vars): Declare.
6625         * tree-ssa-alias.c (set_initial_properties): Call
6626         compute_call_used_vars.
6627         (reset_alias_info): Clear call-used variables.
6628         (add_call_clobber_ops): Assert we are not called for const/pure
6629         functions.  Remove handling of them.
6630         (add_call_read_ops): Handle pure functions by adding the
6631         call-used set of variables as VUSEs.
6632         * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
6633         (delete_tree_ssa): Free it.
6634         * tree-dfa.c (remove_referenced_var): Clear the var from the
6635         call-used bitmap.
6636
6637 2008-06-28  Kai Tietz  <kai.tietz@onevision.com>
6638
6639         * tree.c (build_varargs_function_type_list): New.
6640         (build_function_type_list_1): New.
6641         (build_function_type_list): Use build_function_type_list_1.
6642         * tree.h (build_varargs_function_type_list): New.
6643
6644 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6645
6646         PR target/34856
6647         * config/spu/spu.c (spu_builtin_splats): Do not generate
6648         invalid CONST_VECTOR expressions.
6649         (spu_expand_vector_init): Likewise.
6650
6651 2008-06-28  Richard Sandiford  <rdsandiford@googlemail.com>
6652
6653         * optabs.c (libfunc_decls): New variable.
6654         (libfunc_decl_hash, libfunc_decl_eq): New functions.
6655         (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
6656         for the same function twice.
6657
6658 2008-06-27  Uros Bizjak  <ubizjak@gmail.com>
6659
6660         * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
6661         ix86_expand_binary_operator directly.
6662         (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
6663         for operand 2.
6664         (*ashrti3_1): Ditto.
6665         (*lshrti3_1): Ditto.
6666         (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
6667         (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
6668         using only one splitter.  Conditionaly execute splitter before or
6669         after peephole2 pass.
6670         (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
6671         (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
6672         Use only one alternative in asm template.
6673         (x86_64_shld): Compress operand 2 constraints. Use only one alternative
6674         in asm template.
6675         (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
6676         "J" operand constraint for operand 2.
6677         (*ashldi3_cconly_rex64): Ditto.
6678         (*ashrdi3_cmp_rex64): Ditto.
6679         (*ashrdi3_cconly_rex64): Ditto.
6680         (*lshrdi3_cmp_rex64): Ditto.
6681         (*lshrdi3_cconly_rex64): Ditto.
6682         * config/i386/predicates.md (const_1_to_63_operand): New predicate.
6683         * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
6684         (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
6685         gen_x86_shrd_1.
6686
6687 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
6688
6689         * gimplify.c (omp_is_private): Don't return true if decl is not
6690         already private on #pragma omp for or #pragma omp parallel for.
6691
6692         PR debug/36617
6693         * tree-cfg.c (struct move_stmt_d): Replace block field with
6694         orig_block and new_block fields.
6695         (move_stmt_r): Only set TREE_BLOCK to p->new_block if
6696         if it used to be NULL, p->orig_block or if p->orig_block is NULL.
6697         (move_block_to_fn): Replace vars_map and new_label_map arguments
6698         with struct move_stmt_d pointer.
6699         (replace_block_vars_by_duplicates): New function.
6700         (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
6701         move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
6702         all subblocks of ORIG_BLOCK to the new function.  Call
6703         replace_block_vars_by_duplicates.
6704         * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
6705         * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
6706         BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
6707         Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
6708         (expand_omp): Temporarily set input_location to the location of
6709         region's controlling stmt.
6710         (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
6711         BIND_EXPR, push ctx->block_vars and gimplification vars into
6712         the BIND_EXPR and its block's BLOCK_VARS instead of directly
6713         into dest function.
6714         (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
6715         there are any BLOCK_VARS.
6716         (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
6717         OMP_PARALLEL or OMP_TASK stmt.
6718         (lower_omp): Save and restore input_location around the lower_omp_1
6719         call.
6720
6721 2008-06-27  Richard Guenther  <rguenther@suse.de>
6722
6723         PR tree-optimization/36400
6724         PR tree-optimization/36373
6725         PR tree-optimization/36344
6726         * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
6727         var_nonlocal, nonlocal_tree, nonlocal_id): New globals
6728         (update_alias_info): Remove call clobbering code.
6729         (make_constraint_to): New helper function.
6730         (make_escape_constraint): Likewise.
6731         (handle_rhs_call): Use it on all pointer containing arguments.
6732         Also mark the static chain escaped.
6733         (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
6734         instead of ANYTHING.
6735         (make_constraint_from): New helper split out from ...
6736         (make_constraint_from_anything): ... here.
6737         (find_func_aliases): Add constraints for escape sites.
6738         (intra_create_variable_infos): Make constraints from NONLOCAL
6739         for parameters.
6740         (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
6741         as ANYTHING.
6742         (clobber_what_p_points_to): Remove.
6743         (clobber_what_escaped): New function.
6744         (init_base_vars): Init NONLOCAL and ESCAPED.
6745         (do_sd_constraint): Do not propagate the solution from ESCAPED
6746         but use ESCAPED as a placeholder.
6747         (solve_graph): Likewise.
6748         * tree-flow.h (clobber_what_p_points_to): Remove.
6749         (clobber_what_escaped): Declare.
6750         * tree-ssa-alias.c (set_initial_properties): Call it.
6751         Remove code clobbering escaped pointers.
6752
6753 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
6754
6755         * function.c (allocate_struct_function): Only allocate a unique
6756         funcdef_no if the decl is nonzero.
6757
6758 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
6759
6760         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
6761         * config/mips/mips.c (mips_split_const_insns): New function.
6762         * config/mips/mips.md (move_type): New attribute.
6763         (mode): Move attribute definition earlier in file.  Add "TI" and "TF".
6764         (dword_mode): New attribute.
6765         (type): Avoid long line.  Map "move_type"s to "type"s,
6766         choosing "multi" for doubleword moves if appropriate.
6767         Swap MTC/MFC comments to match their declaration order.
6768         (extended_mips16): Default to "yes" if "move_type" is "sll0",
6769         "type" is "branch" or "jal" is "direct".
6770         (length): Handle "extended_mips16" first.  Make the default
6771         "0" for "ghost" instructions.  Set the length from "move_type".
6772         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
6773         of "type", with "sll0" for the register alternative.  Remove the
6774         "extended_mips16" attribute.
6775         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
6776         of "type", with "shift_shift" for the register alternative.
6777         Remove the "length" attribute.
6778         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
6779         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
6780         of "type", with "andi" for the register alternative.
6781         (*zero_extendqihi2): Likewise.
6782         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
6783         of "andi" instead of a "type" of "arith".
6784         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
6785         instead of "type".
6786         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
6787         (mov_<store>r, *mov<mode>_ra): Likewise.
6788         (extendsidi2): Use "move_type" instead of "type", with "move"
6789         for the register alternative.
6790         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
6791         of "type", with "signext" for the register alternative.
6792         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
6793         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
6794         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
6795         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
6796         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
6797         (unnamed branch insn): Likewise.
6798         (*movdi_gp32_fp64): Fold into...
6799         (*movdi_32bit): ...here.
6800         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
6801         (*movdf_hardfloat): ...this new pattern.
6802         (*movdf_softfloat): Remove redundant FPR alternatives.
6803         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
6804         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
6805         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
6806         the "move" attribute.
6807         (*movdi_32bit): Use "move_type" instead of "type" and remove the
6808         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
6809         and "store" for COP loads and stores.
6810         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
6811         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
6812         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
6813         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
6814         (*movtf_mips16, *movv2sf): Likewise.
6815         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
6816         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
6817         (mfhc1<mode>): Use "move_type" instead of "move".
6818         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
6819         (loadgp_blockage): Remove the "length" attribute.
6820         (blockage, set_got_version, update_got_version): Likewise.
6821         (call_internal): Remove the "extended_mips16" attribute.
6822         (call_value_internal, call_value_multiple_internal): Likewise.
6823         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
6824         instead of "move".
6825         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
6826         the "length" attribute.
6827
6828 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6829
6830         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
6831         -Wcast-qual warnings.
6832         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
6833         handle_pragma_pop_macro): Likewise.
6834         * collect2.c (resolve_lib_name): Likewise.
6835         * config/arc/arc.c (arc_init): Likewise.
6836         * config/arm/arm.c (neon_builtin_compare,
6837         locate_neon_builtin_icode): Likewise.
6838         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
6839         * config/bfin/bfin.c (bfin_init_machine_status,
6840         bfin_optimize_loop): Likewise.
6841         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
6842         * config/cris/cris.c (cris_init_expanders): Likewise.
6843         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
6844         * config/darwin.c (machopic_indirection_eq,
6845         machopic_indirection_name, machopic_output_indirection): Likewise.
6846         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
6847         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
6848         frv_optimize_membar): Likewise.
6849         * config/i386/cygwin.h (mingw_scan,
6850         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
6851         * config/i386/cygwin1.c (mingw_scan): Likewise.
6852         * config/i386/i386.c (machopic_output_stub): Likewise.
6853         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
6854         i386_pe_unique_section): Likewise.
6855         * config/ia64/ia64.c (ia64_init_machine_status,
6856         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
6857         Likewise.
6858         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
6859         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
6860         * config/m68k/m68k.c (m68k_handle_option,
6861         m68k_sched_md_init_global): Likewise.
6862         * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
6863         mcore_unique_section): Likewise.
6864         * config/mips/mips.c (mips_block_move_straight,
6865         mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
6866         Likewise.
6867         * config/mmix/mmix.c (mmix_init_machine_status,
6868         mmix_encode_section_info): Likewise.
6869         * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
6870         * config/rs6000/rs6000.c (rs6000_init_machine_status,
6871         print_operand_address, output_toc, redefine_groups,
6872         rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
6873         * config/s390/s390.c (s390_init_machine_status): Likewise.
6874         * config/score/score.c (score_block_move_straight,
6875         score_block_move_loop_body): Likewise.
6876         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
6877         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
6878         * emit-rtl.c (find_auto_inc): Likewise.
6879         * gcc.c (translate_options, process_command): Likewise.
6880         * reorg.c (dbr_schedule): Likewise.
6881         * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
6882         * xcoffout.c (xcoffout_declare_function): Likewise.
6883
6884 2008-06-27  Daniel Berlin  <dberlin@dberlin.org>
6885
6886         * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
6887         ipa-pta working again.
6888
6889 2008-06-27  David Edelsohn  <edelsohn@gnu.org>
6890
6891         * config/rs6000/t-aix52: Append large data option to LDFLAGS for
6892         genautomata.
6893
6894 2008-06-27  Edmar Wienskoski  <edmar@freescale.com>
6895
6896         * config.gcc (powerpc*-*-*): Add new core e500mc.
6897         * config/rs6000/e500mc.md: New file.
6898         * config/rs6000/rs6000.c (processor_costs): Add new costs for
6899         e500mc.
6900         (rs6000_override_options): Add e500mc case to
6901         processor_target_table. Altivec and Spe options not allowed
6902         with e500mc. Add isel instruction to e500mc by
6903         default. Initialize rs6000_cost for e500mc.
6904         (rs6000_issue_rate): Set issue rate for e500mc.
6905         * config/rs6000/rs6000.h (processor_type): Add
6906         PROCESSOR_PPCE500MC.
6907         (ASM_CPU_SPEC): Add e500mc.
6908         Set TARGET_ISEL to rs6000_isel.
6909         * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
6910         (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
6911         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
6912         Include e500mc.md.
6913         * doc/invoke.texi: Add e500mc to list of cpus.
6914
6915 2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
6916
6917         PR c/34867
6918         * c-lex.c (lex_charconst): Initialize unsignedp.
6919
6920 2008-06-27  Olivier Hainque  <hainque@adacore.com>
6921
6922         * gimplify.c (gimplify_modify_expr_to_memset): Assert our
6923         documented assumptions.
6924
6925 2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>
6926
6927         * dwarf2out.c: Remove trailing white spaces.  Break long line
6928         in comments.
6929
6930 2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>
6931
6932         * libfuncs.h (LTI_synchronize): New libfunc_index.
6933         (synchronize_libfunc): Declare.
6934         * builtins.c (expand_builtin_synchronize): Consider using
6935         synchronize_libfunc before falling back on an asm blockage.
6936         * config/mips/mips.c: Include libfuncs.h
6937         (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
6938
6939 2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>
6940
6941         * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
6942         parameter.  Copy stack_reg to r11 where appropriate.
6943         (no_global_regs_above): Add gpr parameter.
6944         (rs6000_stack_info): Only add padding for SPE save area if we
6945         are saving SPE GPRs and CR.
6946         (saveres_routine_syms): New variable.
6947         (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
6948         Define.
6949         (rs6000_savres_routine_sym): New function.
6950         (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
6951         split out of...
6952         (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
6953         rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
6954         Tweak FPR out-of-line saving.
6955         (rs6000_make_savres_rtx): New function.
6956         (rs6000_use_multiple_p): New function.
6957         (rs6000_savres_strategy): New function.
6958         (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
6959         out-of-line if appropriate.
6960         * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
6961         if we are optimizing for size.
6962         (GP_SAVE_INLINE): Define.
6963         (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
6964         * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
6965         * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
6966         * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
6967         (*save_fpregs_<mode>): Add use of r11.
6968         (*restore_gpregs_<mode>): New insn.
6969         (*return_and_restore_gpregs_<mode>): New insn.
6970         (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
6971         use r11.
6972         * config/rs6000/spe.md (*save_gpregs_spe): New insn.
6973         (*restore_gpregs_spe): New insn.
6974         (*return_and_restore_gpregs_spe): New insn.
6975         * config/rs6000/predicates.md (save_world_operation): Fix check.
6976
6977 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
6978
6979         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
6980         this point, so assert that.
6981
6982 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
6983
6984         * cfganal.c: Include vec.h and vecprim.h.
6985         (compute_idf): Import from...
6986         * tree-into-ssa (compute_idf): ...here.
6987         * basic-block.h (compute_idf): Export.
6988
6989 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
6990
6991         * c-decl.c (merge_decls): Use !current_function_decl to check for
6992         extern declaration of C99 inline function being at file scope.
6993
6994 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
6995
6996         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
6997
6998 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6999
7000         * alias.c (record_alias_subset, init_alias_analysis): Fix
7001         -Wc++-compat and/or -Wcast-qual warnings.
7002         * attribs.c (lookup_attribute_spec): Likewise.
7003         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
7004         copy_bb, connect_traces,
7005         find_rarely_executed_basic_blocks_and_cr): Likewise.
7006         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
7007         note_btr_set, migrate_btr_defs): Likewise.
7008         * builtins.c (result_vector, expand_builtin_memcpy,
7009         expand_builtin_mempcpy_args, expand_builtin_strncpy,
7010         builtin_memset_read_str, expand_builtin_printf,
7011         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
7012         Likewise.
7013         * caller-save.c (mark_set_regs): Likewise.
7014         * calls.c (expand_call, emit_library_call_value_1): Likewise.
7015         * cgraph.c (cgraph_edge): Likewise.
7016         * combine.c (likely_spilled_retval_1): Likewise.
7017         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
7018         htab_counts_entry_del, get_coverage_counts): Likewise.
7019         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
7020         new_cselib_val): Likewise.
7021         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
7022         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
7023         Likewise.
7024         * df-core.c (df_compact_blocks): Likewise.
7025         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
7026         * df-scan.c (df_grow_reg_info, df_ref_create,
7027         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
7028         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
7029         df_record_entry_block_defs, df_record_exit_block_uses,
7030         df_bb_verify): Likewise.
7031         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
7032         DF_REF_EXTRACT_MODE_CONST): New.
7033         * dominance.c (get_immediate_dominator, get_dominated_by,
7034         nearest_common_dominator, root_of_dom_tree,
7035         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
7036         -Wc++-compat and/or -Wcast-qual warnings.
7037         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
7038         record_store, replace_read, check_mem_read_rtx, scan_insn,
7039         dse_step1, dse_record_singleton_alias_set): Likewise.
7040         * dwarf2asm.c (dw2_force_const_mem): Likewise.
7041
7042 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7043
7044         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
7045         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
7046         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
7047         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
7048         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
7049         add_ranges_num, add_ranges_by_labels, file_info_cmp,
7050         file_name_acquire, output_file_names, add_const_value_attribute,
7051         premark_used_types_helper, file_table_eq, file_table_hash,
7052         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
7053         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
7054         -Wcast-qual warnings.
7055         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
7056         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
7057         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
7058         gen_reg_rtx, start_sequence, init_emit): Likewise.
7059         * et-forest.c (et_new_occ, et_new_tree): Likewise.
7060         * except.c (init_eh_for_function, gen_eh_region,
7061         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
7062         arh_to_landing_pad, arh_to_label, add_action_record,
7063         add_call_site, switch_to_exception_section): Likewise.
7064         * expmed.c (synth_mult): Likewise.
7065         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
7066         store_expr): Likewise.
7067         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
7068         Likewise.
7069         * function.c (assign_stack_temp_for_type,
7070         allocate_struct_function, match_asm_constraints_1): Likewise.
7071         * gcov-io.c (gcov_allocate): Likewise.
7072         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
7073         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
7074         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
7075         record_one_set, insert_expr_in_table, insert_set_in_table,
7076         dump_hash_table, compute_hash_table_work, alloc_hash_table,
7077         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
7078         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
7079         -Wcast-qual warnings.
7080
7081 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7082
7083         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
7084         -Wcast-qual warnings.
7085         * gcc.c (process_command): Likewise.
7086         * genattrtab.c (oballoc): Use XOBNEW.
7087         (oballocvec): Define.
7088         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
7089         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
7090         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
7091         -Wc++-compat and/or -Wcast-qual warnings.
7092         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
7093         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
7094         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
7095         gen_presence_absence_set, gen_automaton, gen_regexp_el,
7096         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
7097         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
7098         add_excls, process_presence_absence_names,
7099         process_presence_absence_patterns, add_presence_absence,
7100         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
7101         get_free_state, add_arc, get_free_automata_list_el,
7102         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
7103         transform_3, cache_presence, create_ainsns, create_automata,
7104         create_state_ainsn_table, dfa_insn_code_enlarge,
7105         output_trans_func, output_min_issue_delay_func,
7106         output_dead_lock_func, output_reset_func,
7107         output_get_cpu_unit_code_func, output_dfa_start_func,
7108         expand_automata): Likewise.
7109         * genextract.c (gen_insn): Likewise.
7110         * gengtype-lex.l: Likewise.
7111         * gengtype.c (read_input_list, adjust_field_type,
7112         process_gc_options): Likewise.
7113         * genoutput.c (note_constraint): Likewise.
7114         * genpreds.c (mangle, add_constraint): Likewise.
7115         * genrecog.c (process_define_predicate, new_decision,
7116         add_to_sequence): Likewise.
7117         * gensupport.c (record_insn_name): Likewise.
7118
7119 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7120
7121         * config/i386/driver-i386.c (detect_caches_amd,
7122         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
7123         and/or -Wcast-qual warnings.
7124         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
7125         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
7126         gt_pch_save): Likewise.
7127         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
7128         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
7129         * global.c (compute_regsets): Likewise.
7130         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
7131         finish_graph_dump_file): Likewise.
7132         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
7133         unlink_bb_notes): Likewise.
7134         * integrate.c (get_hard_reg_initial_val): Likewise.
7135         * ipa-prop.c (ipa_push_func_to_list): Likewise.
7136         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
7137         * local-alloc.c (update_equiv_regs): Likewise.
7138         * loop-invariant.c (check_invariant_table_size,
7139         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
7140         Likewise.
7141         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
7142         altered_reg_used, mark_altered): Likewise.
7143         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
7144         insert_var_expansion_initialization,
7145         combine_var_copies_in_loop_exit, apply_opt_in_copies,
7146         release_var_copies): Likewise.
7147         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
7148         analyze_matrix_decl, add_allocation_site, analyze_transpose,
7149         analyze_accesses_for_phi_node, check_var_notmodified_p,
7150         check_allocation_function, find_sites_in_func,
7151         record_all_accesses_in_func, transform_access_sites,
7152         transform_allocation_sites): Likewise.
7153         * omp-low.c (new_omp_region, create_omp_child_function_name,
7154         check_omp_nesting_restrictions, check_combined_parallel,
7155         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
7156         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
7157         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
7158         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
7159         Likewise.
7160         * opts-common.c (prune_options): Likewise.
7161         * opts.c (add_input_filename, print_filtered_help,
7162         get_option_state): Likewise.
7163         * params.c (add_params): Likewise.
7164         * passes.c (set_pass_for_id, next_pass_1,
7165         do_per_function_toporder, pass_fini_dump_file): Likewise.
7166         * postreload.c (reload_cse_simplify_operands): Likewise.
7167         * predict.c (tree_predicted_by_p, tree_predict_edge,
7168         clear_bb_predictions, combine_predictions_for_bb): Likewise.
7169
7170 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7171
7172         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
7173         warnings.
7174         * recog.c (check_asm_operands, validate_change_1): Likewise.
7175         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
7176         subst_asm_stack_regs): Likewise.
7177         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
7178         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
7179         * regmove.c (reg_is_remote_constant_p): Likewise.
7180         * regrename.c (regrename_optimize, scan_rtx_reg,
7181         kill_clobbered_value, kill_set_value, kill_autoinc_value):
7182         Likewise.
7183         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
7184         regstat_compute_calls_crossed): Likewise.
7185         * reload1.c (init_reload, new_insn_chain,
7186         has_nonexceptional_receiver, reload, copy_reloads,
7187         calculate_needs_all_insns, init_elim_table): Likewise.
7188         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
7189         * rtl.c (shallow_copy_rtx_stat): Likewise.
7190         * rtlanal.c (parms_set): Likewise.
7191         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
7192         sbitmap_resize, sbitmap_vector_alloc): Likewise.
7193         * sched-ebb.c (earliest_block_with_similiar_load,
7194         add_deps_for_risky_insns): Likewise.
7195         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
7196         schedule_region): Likewise.
7197         * see.c (eq_descriptor_pre_extension,
7198         hash_descriptor_pre_extension, hash_del_pre_extension,
7199         eq_descriptor_properties, hash_descriptor_properties,
7200         hash_del_properties, see_seek_pre_extension_expr,
7201         see_initialize_data_structures, see_print_register_properties,
7202         see_print_pre_extension_expr, see_delete_merged_def_extension,
7203         see_delete_unmerged_def_extension, see_emit_use_extension,
7204         see_pre_delete_extension, see_map_extension, see_commit_changes,
7205         see_analyze_merged_def_local_prop,
7206         see_analyze_merged_def_local_prop,
7207         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
7208         see_set_prop_merged_def, see_set_prop_unmerged_def,
7209         see_set_prop_unmerged_use, see_print_one_extension,
7210         see_merge_one_use_extension, see_merge_one_def_extension,
7211         see_store_reference_and_extension, see_update_uses_relevancy,
7212         see_update_defs_relevancy): Likewise.
7213         * statistics.c (hash_statistics_hash, hash_statistics_eq,
7214         hash_statistics_free, curr_statistics_hash): Likewise.
7215         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
7216         expand_asm_operands, expand_return, case_bit_test_cmp,
7217         expand_case): Likewise.
7218         * stor-layout.c (start_record_layout): Likewise.
7219         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
7220         gt_pch_save_stringpool): Likewise.
7221         * tree-data-ref.c (hash_stmt_vertex_info,
7222         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
7223         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
7224
7225 2008-06-25  Uros Bizjak  <ubizjak@gmail.com>
7226
7227         PR target/36627
7228         * config/i386/i386.md : Change constraints of HImode and QImode
7229         immediate operands from "i" to "n".  Change SImode "ni" constraint to
7230         "i" and SImode "rmi" constraint to "g".  Remove all constraints
7231         from const0_operand and const1_operand predicated operands.
7232         (i): Change QImode and HImode attribute from "i" to "n".
7233         (*subqi_2): Change HImode operands to QImode.
7234         (*subqi_3): Ditto.
7235
7236 2008-06-25  Olivier Hainque  <hainque@adacore.com>
7237
7238         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
7239         sed substitutions.
7240
7241 2008-06-25  Richard Guenther  <rguenther@suse.de>
7242
7243         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
7244         not overflow the result type.
7245
7246 2008-06-25  Richard Guenther  <rguenther@suse.de>
7247
7248         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
7249         (vn_lookup): Likewise.
7250
7251 2008-06-25  Richard Guenther  <rguenther@suse.de>
7252
7253         PR tree-optimization/35518
7254         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
7255         * tree-sra.c (instantiate_element): Use fold_build3 to build
7256         BIT_FIELD_REFs.
7257         (try_instantiate_multiple_fields): Likewise.
7258
7259 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7260
7261         * config/rs6000/rs6000.md: Change all string instruction's clobber to
7262         be early clobbers.
7263
7264 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7265
7266         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
7267         use_backchain_to_restore_sp to true
7268         if the offset of the link register save area would go over the 32k - 1
7269         offset limit of the load
7270         instructions.
7271
7272 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
7273
7274         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
7275         anchor for the type-punning blurb.  Cross-reference "Structures
7276         unions enumerations and bit-fields implementation".  Provide a
7277         cast-through-pointer example.  Make final sentence self-contained.
7278         * doc/implement-c.texi (Structures unions enumerations and
7279         bit-fields implementation): Cross-reference the type-punning blurb
7280         in the -fstrict-aliasing documentation.
7281
7282 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7283
7284         PR middle-end/36594
7285         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
7286         the memory instead of the memory itself for the save area.
7287
7288 2008-06-24  Olivier Hainque  <hainque@adacore.com>
7289             Nicolas Roche  <roche@adacore.com>
7290
7291         * gengtype.c (srcdir_len): size_t instead of int.
7292         (get_file_realbasename): New function.  For F a filename, the real
7293         basename of F, with all the path components stripped.
7294         (get_file_srcdir_relative_path): New function.  For F a filename, the
7295         relative path to F from $(srcdir).
7296         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
7297         get_file_realbasename.  Adjust the head comment.
7298         (get_prefix_langdir_index): New function. For F a filename, return the
7299         lang_dir_names[] relative index of the language directory that is
7300         a prefix in F.
7301         (get_file_langdir): For F a filename, return the name of the language
7302         directory where F is located.
7303         (get_file_gtfilename): New function. The gt- output file name for an
7304         input filename F.
7305         (get_output_file_with_visibility): Replace in-line computations with
7306         uses of get_file_gtfilename and get_prefix_langdir_index.
7307         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
7308
7309 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
7310
7311         PR tree-optimization/36504
7312         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
7313         references without base address.
7314
7315 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
7316
7317         PR middle-end/36584
7318         * calls.c (expand_call): Increase alignment for recursive functions.
7319
7320 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
7321
7322         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
7323         (TARGET_FUNCTION_VALUE): New define.
7324         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
7325         * config/avr/avr.h (FUNCTION_VALUE): Remove.
7326
7327 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
7328
7329         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
7330         (fmod<mode>3): Ditto.
7331         (remainderxf3): Ditto.
7332         (remainder<mode>3): Ditto.
7333
7334 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
7335
7336         PR target/36533
7337         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
7338         REG is a hard register.
7339
7340         PR tree-optimization/36508
7341         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
7342         499, don't check it at all in release compilers.
7343
7344 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
7345
7346         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
7347         together with SSE_TARGET_MATH to disable insn pattern.
7348         (*fop_<MODEF:mode>_2_i387): Ditto.
7349         (*fop_<MODEF:mode>_3_i387): Ditto.
7350
7351 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
7352
7353         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
7354
7355 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7356
7357         PR middle-end/34906
7358         * gimplify.c (gimplify_asm_expr): Check the return code of
7359         parse_output_constraint call, set function return and is_inout
7360         value if it failed.
7361
7362 2008-06-22  Ian Lance Taylor  <iant@google.com>
7363
7364         * c-lex.c (narrowest_unsigned_type): Change itk to int.
7365         (narrowest_signed_type): Likewise.
7366         * c-typeck.c (c_common_type): Change local variable mclass to enum
7367         mode_class, twice.
7368         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
7369         tcc_comparison, not the tree code itself.
7370         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
7371         (c_expand_expr): Cast modifier to enum expand_modifier.
7372         * c-common.h (C_RID_CODE): Add casts.
7373         (C_SET_RID_CODE): Define.
7374         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
7375         (c_lex_one_token): Add cast to avoid warning.
7376         (c_parser_objc_type_name): Rename local typename to type_name.
7377         (check_no_duplicate_clause): Change code parameter to enum
7378         omp_clause_code.
7379         (c_parser_omp_var_list_parens): Change kind parameter to enum
7380         omp_clause_code.
7381         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
7382         c_parser_omp_list_var_parens.
7383         (c_parser_omp_threadprivate): Likewise.
7384         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
7385         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
7386         * c-format.c (NO_FMT): Define.
7387         (printf_length_specs): Use NO_FMT.
7388         (asm_fprintf_length_specs): Likewise.
7389         (gcc_diag_length_specs): Likewise.
7390         (scanf_length_specs): Likewise.
7391         (strfmon_length_specs): Likewise.
7392         (gcc_gfc_length_specs): Likewise.
7393         (printf_flag_specs): Change 0 to STD_C89.
7394         (asm_fprintf_flag_specs): Likewise.
7395         (gcc_diag_flag_specs): Likewise.
7396         (gcc_cxxdiag_flag_specs): Likewise.
7397         (scanf_flag_specs): Likewise.
7398         (strftime_flag_specs): Likewise.
7399         (strfmon_flag_specs): Likewise.
7400         (print_char_table): Likewise.
7401         (asm_fprintf_char_table): Likewise.
7402         (gcc_diag_char_table): Likewise.
7403         (gcc_tdiag_char_table): Likewise.
7404         (gcc_cdiag_char_table): Likewise.
7405         (gcc_cxxdiag_char_table): Likewise.
7406         (gcc_gfc_char_table): Likewise.
7407         (scan_char_table): Likewise.
7408         (time_char_table): Likewis.
7409         (monetary_char_table): Likewise.
7410         * c-format.h (BADLEN): Likewise.
7411
7412 2008-06-21  Ian Lance Taylor  <iant@google.com>
7413
7414         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
7415         Define END_OF_BASE_TREE_CODES around inclusion.
7416         * tree.c (tree_code_type): New global array.
7417         (tree_code_length, tree_code_name): Likewise.
7418         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
7419         $(lang_tree_files).
7420         (all-tree.def, s-alltree): New targets.
7421         (gencheck.h, s-gencheck): Remove.
7422         (tree.o): Depend upon all-tree.def.
7423         (build/gencheck.o): Remove gencheck.h dependency.
7424         (mostlyclean): Don't remove gencheck.h.
7425         * c-common.h (enum c_tree_code): Remove.
7426         * c-lang.c (tree_code_type): Remove.
7427         (tree_code_length, tree_code_name): Remove.
7428         * gencheck.c (tree_codes): Include all-tree.def, rather than
7429         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
7430         after it is used.
7431         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
7432         than tree.def.
7433         * cp/cp-tree.h (enum cplus_tree_code): Remove.
7434         (operator_name_info): Size to MAX_TREE_CODES.
7435         (assignment_operator_name_info): Likewise.
7436         * cp/cp-lang.c (tree_code_type): Remove.
7437         (tree_code_length, tree_code_name): Remove.
7438         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
7439         (assignment_operator_name_info): Likewise.
7440         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
7441         MAX_TREE_CODES.
7442         * cp/mangle.c (write_expression): Likewise.
7443         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
7444         * fortran/f95-lang.c (tree_code_type): Remove.
7445         (tree_code_length, tree_code_name): Remove.
7446         * java/java-tree.h (enum java_tree_code): Remove.
7447         * java/lang.c (tree_code_type): Remove.
7448         (tree_code_length, tree_code_name): Remove.
7449         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
7450         * objc/objc-act.h (enum objc_tree_code): Remove.
7451         * objc/objc-lang.c (tree_code_type): Remove.
7452         (tree_code_length, tree_code_name): Remove.
7453         * objcp/objcp-lang.c (tree_code_type): Remove.
7454         (tree_code_length, tree_code_name): Remove.
7455         * ada/ada-tree.h (enum gnat_tree_code): Remove.
7456         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
7457         * ada/misc.c (tree_code_type): Remove.
7458         (tree_code_length, tree_code_name): Remove.
7459
7460 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
7461
7462         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
7463         the grand_bitmap_obstack.
7464
7465 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7466
7467         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
7468         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
7469         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
7470         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
7471         move_stmt_r, new_label_mapper): Likewise.
7472         * tree-complex.c (cvc_lookup): Likewise.
7473         * tree-dfa.c (create_function_ann): Likewise.
7474         * tree-dump.c (dump_register): Likewise.
7475         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
7476         find_phi_replacement_condition): Likewise.
7477         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
7478         tree_function_versioning): Likewise.
7479         * tree-into-ssa.c (cmp_dfsnum): Likewise.
7480         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
7481         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
7482         get_nonlocal_debug_decl, convert_nonlocal_reference,
7483         convert_nonlocal_omp_clauses, get_local_debug_decl,
7484         convert_local_reference, convert_local_omp_clauses,
7485         convert_nl_goto_reference, convert_nl_goto_receiver,
7486         convert_tramp_reference, convert_call_expr): Likewise.
7487         * tree-outof-ssa.c (contains_tree_r): Likewise.
7488         * tree-parloops.c (reduction_phi, initialize_reductions,
7489         eliminate_local_variables_1, add_field_for_reduction,
7490         add_field_for_name, create_phi_for_local_result,
7491         create_call_for_reduction_1, create_loads_for_reductions,
7492         create_stores_for_reduction, create_loads_and_stores_for_name):
7493         Likewise.
7494         * tree-phinodes.c (allocate_phi_node): Likewise.
7495         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
7496         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
7497         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
7498         * tree-ssa-coalesce.c (compare_pairs): Likewise.
7499         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
7500         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
7501         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
7502         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
7503         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
7504         vn_nary_op_insert): Likewise.
7505         * tree-ssa.c (redirect_edge_var_map_add,
7506         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
7507         * tree-vectorizer.c (vectorize_loops): Likewise.
7508         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
7509         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
7510         tree_cons_stat, build1_stat, build_variant_type_copy,
7511         decl_init_priority_lookup, decl_fini_priority_lookup,
7512         decl_priority_info, decl_restrict_base_lookup,
7513         decl_restrict_base_insert, decl_debug_expr_lookup,
7514         decl_debug_expr_insert, decl_value_expr_lookup,
7515         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
7516         type_hash_add, get_file_function_name, tree_check_failed,
7517         tree_not_check_failed, tree_range_check_failed,
7518         omp_clause_range_check_failed, build_omp_clause,
7519         build_vl_exp_stat): Likewise.
7520         * value-prof.c (gimple_histogram_value,
7521         gimple_duplicate_stmt_histograms): Likewise.
7522         * var-tracking.c (attrs_list_insert, attrs_list_copy,
7523         unshare_variable, variable_union_info_cmp_pos, variable_union,
7524         dataflow_set_different_1, dataflow_set_different_2,
7525         vt_find_locations, variable_was_changed, set_variable_part,
7526         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
7527         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
7528         section_entry_hash, object_block_entry_eq,
7529         object_block_entry_hash, create_block_symbol,
7530         initialize_cold_section_name, default_function_rodata_section,
7531         strip_reg_name, set_user_assembler_name, const_desc_eq,
7532         build_constant_desc, output_constant_def, lookup_constant_def,
7533         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
7534         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
7535         default_internal_label): Likewise.
7536         * varray.c (varray_init, varray_grow): Likewise.
7537         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
7538
7539 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
7540
7541         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
7542         operators for "test" insn.  Macroize insn using SWI mode macro.
7543         (*jcc_fused_2): Ditto.
7544         (*jcc_fused_3): Macroize insn using SWI mode macro.
7545         (*jcc_fused_4): Ditto.
7546
7547 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
7548
7549         * tree-ssa-pre.c: Fix typo in comment.
7550         (init_antic, fini_antic): Add explicit funtions for
7551         initializing and deinitializing ANTIC and AVAIL sets.
7552         (create_expression_by_pieces): Fix typo in comment.
7553         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
7554         (execute_pre): Eventually dump details about ANTIC_IN.
7555
7556 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7557
7558         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
7559         * gcc.c (translate_options, init_spec, store_arg, read_specs,
7560         add_to_obstack, file_at_path, find_a_file, execute,
7561         add_preprocessor_option, add_assembler_option, add_linker_option,
7562         process_command, insert_wrapper, do_option_spec, do_self_spec,
7563         spec_path, do_spec_1, is_directory, main, used_arg,
7564         getenv_spec_function): Likewise.
7565         * tlink.c (symbol_hash_lookup, file_hash_lookup,
7566         demangled_hash_lookup, symbol_push, file_push, frob_extension):
7567         Likewise.
7568
7569 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
7570
7571         * doc/rtl.texi: Updated subreg section.
7572
7573 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
7574
7575         PR c++/36523
7576         * cgraphunit.c (cgraph_process_new_functions): Don't clear
7577         node->needed and node->reachable.
7578         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
7579         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
7580         (expand_task_call): Don't call expand_task_copyfn.
7581         (expand_task_copyfn): Renamed to...
7582         (finalize_task_copyfn): ... this.
7583
7584 2008-06-19  Jan Hubicka  <jh@suse.cz>
7585
7586         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
7587         clobbering framepointer.
7588
7589 2008-06-19  Jan Hubicka  <jh@suse.cz>
7590
7591         * tree-optimize.c (execute_early_local_optimizations): Set
7592         cgraph_state only at first invocation.
7593
7594 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7595
7596         * system.h (-Wc++-compat): Activate as a warning, no an error.
7597
7598 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
7599
7600         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
7601         instead of "#" in insn asm template.
7602         (*jcc_fused_2): Ditto.
7603
7604 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
7605
7606         * config/i386/i386.h (ix86_tune_indices)
7607         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
7608         (TARGET_FUSE_CMP_AND_BRANCH): New define.
7609         * config/i386/i386.md (*jcc_fused_1): New insn pattern
7610         (*jcc_fused_2): Ditto.
7611         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
7612         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
7613         (print operand): Handle 'E' and 'e' code.
7614
7615 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
7616
7617         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
7618         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
7619         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
7620
7621 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
7622
7623         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
7624         node->decl.
7625         (cgraph_expand_function): Use local copy of decl.
7626         (cgraph_expand_all_functions): Remove redundant initialization of
7627         order_pos.
7628         (cgraph_optimize): Reword internal_error message.
7629
7630 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
7631
7632         * arm-protos.h (arm_return_in_memory): Remove public
7633         arm_return_in_memory() prototype.
7634         * arm.c (arm_return_in_memory): Add static prototype, add target
7635         hook macro, change definition and comments.
7636         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
7637
7638 2008-06-19  Ben Elliston  <bje@au.ibm.com>
7639
7640         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
7641         real.c: Remove references to IEEE 754R.
7642         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
7643         * doc/libgcc.texi (Decimal float library routines): Likewise.
7644
7645 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7646
7647         * targhooks.h (struct gcc_target): New member unwind_word_mode.
7648         (default_unwind_word_mode): Add prototype.
7649         * targhooks.c (default_unwind_word_mode): New function.
7650         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
7651         instead of word_mode.
7652         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
7653         (TARGET_INITIALIZER): Use it.
7654
7655         * c-common.c (handle_mode_attribute): Support "unwind_word"
7656         mode attribute.
7657         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
7658
7659         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
7660         word_mode to access SjLj_Function_Context member "data".
7661         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
7662         conversion from targetm.eh_return_filter_mode () to
7663         targetm.unwind_word_mode () if they differ.
7664
7665         * builtin-types.def (BT_UNWINDWORD): New primitive type.
7666         (BT_FN_UNWINDWORD_PTR): New function type.
7667         (BT_FN_WORD_PTR): Remove.
7668         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
7669         * except.c (expand_builtin_extend_pointer): Convert pointer to
7670         targetm.unwind_word_mode () instead of word_mode.
7671
7672         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
7673         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
7674         (spu_unwind_word_mode): New function.
7675         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
7676         (TARGET_UNWIND_WORD_MODE): Define.
7677         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
7678
7679 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7680
7681         * config/spu/spu.c (reg_align): Remove.
7682         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
7683         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
7684         (spu_split_store): Likewise.
7685
7686 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
7687
7688         * gcc/tree-vn.c: Fix typo in comment.
7689
7690 2008-06-18  Jan Hubicka  <jh@suse.cz>
7691
7692         * cgraphunit.c (cgraph_optimize): Output debug info when doing
7693         toplevel reorder too.
7694
7695 2008-06-18  Jan Hubicka  <jh@suse.cz>
7696
7697         * c-opts.c (c_common_post_options): PCH is not compatible with
7698         no-unit-at-a-time.
7699         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
7700         -fno-toplevel-reorder by default now.
7701
7702 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7703
7704         PR documentation/30739
7705         * doc/install.texi (Prerequisites): Document dependency on awk.
7706
7707 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
7708             Ian Lance Taylor  <iant@google.com>
7709
7710         PR rtl-optimization/35604
7711         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
7712         only want to change jump destinations, not eventual label comparisons.
7713
7714 2008-06-16  Jan Hubicka  <jh@suse.cz>
7715
7716         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
7717         syntax errors.
7718         (cgraph_analyze_function): Likewise.
7719
7720 2008-06-16  Jan Hubicka  <jh@suse.cz>
7721
7722         * cgraph.h (cgraph_mark_if_needed): New function.
7723         * cgraphunit.c (cgraph_mark_if_needed): New function.
7724         * c-decl.c (duplicate_decl): Use it.
7725
7726 2008-06-16  Jan Hubicka  <jh@suse.cz>
7727
7728         * cgraph.c (cgraph_add_new_function): When in expansion state, do
7729         lowering.
7730
7731 2008-06-16  Jan Hubicka  <jh@suse.cz>
7732
7733         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
7734
7735 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
7736             Kazu Hirata  <kazu@codesourcery.com>
7737             Maxim Kuvyrkov  <maxim@codesourcery.com
7738
7739         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
7740         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
7741         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
7742         EXTRA_SPEC_FUNCTIONS.
7743         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
7744         (DRIVER_SELF_SPECS): Adjust.
7745         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
7746         * config/mips/st.h, config/mips/t-st: New.
7747         * config/mips/driver-native.c, config/mips/x-native: New.
7748         * doc/invoke.texi (MIPS): Document 'native' value for -march and
7749         -mtune options.
7750
7751 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
7752
7753         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
7754         from it.
7755         (ISA_HAS_FP_CONDMOVE): New macro.
7756         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
7757         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
7758         (ISA_HAS_NMADD3_NMSUB3): New macro.
7759         * config/mips/mips.c (mips_rtx_costs): Update.
7760         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
7761         compiling for ST Loongson 2E/2F.
7762         (madd<mode>): Rename to madd4<mode>.  Update.
7763         (madd3<mode>): New pattern.
7764         (msub<mode>): Rename to msub4<mode>.  Update.
7765         (msub3<mode>): New pattern.
7766         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
7767         (nmadd3<mode>): New pattern.
7768         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
7769         (nmadd3<mode>_fastmath): New pattern.
7770         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
7771         (nmsub3<mode>): New pattern.
7772         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
7773         (nmsub3<mode>_fastmath): New pattern.
7774         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
7775
7776 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
7777
7778         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
7779         (DF_REF_INSN_INFO): New.
7780         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
7781         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
7782         with a NULL DF_REF_INSN_INFO.
7783         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
7784         DF_INSN_SET.
7785         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
7786         DF_INSN_INFO_EQ_USES): New.
7787         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
7788         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
7789         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
7790         * df-core.c: Update comment for above changes.
7791         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
7792         DF_INSN_UID_* macros.
7793         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
7794         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
7795         insn rtx.  Update all callers.
7796         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
7797         df_ref_create_structure, df_insn_refs_collect): Likewise.
7798         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
7799         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
7800         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
7801         macros to access the insn refs.
7802         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
7803         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
7804         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
7805         for accessing the refs.
7806         (try_fwprop_subst): Likewise.
7807         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
7808         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
7809         for accessing the refs.
7810         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
7811         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
7812         to look at the insn refs.
7813         (record_uses): Likewise.
7814         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
7815         function anymore.
7816         (mark_artificial_uses): Don't mark_insn for artificial refs.
7817         (mark_reg_rependencies): Likewise.
7818
7819         * doc/rtl.texi: Remove documentation of ADDRESSOF.
7820
7821 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7822
7823         * configure: Regenerate.
7824
7825 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
7826
7827         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
7828         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
7829         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
7830
7831 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
7832
7833         * config/avr/avr.c (avr_mcu_t): Add attiny167.
7834         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
7835         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
7836
7837 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
7838
7839         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
7840         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
7841         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
7842
7843 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
7844
7845         * tree-ssa-sccvn.c: Fix format of comments.
7846
7847 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
7848
7849         * cgraph.c: Remove unneeded forward declarations of eq_node()
7850         and hash_node().
7851
7852 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
7853
7854         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
7855         REG_RETVAL notes.
7856         (see_update_relevancy): Likewise.
7857         * fwprop.c (try_fwprop_subst): Likewise.
7858         * rtlanal.c (noop_move_p): Likewise.
7859         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
7860         notes to non-existing libcall blocks.
7861         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
7862         Remove orig_set.
7863         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
7864         (dead_libcall_p): Remove.
7865         (delete_trivially_dead_insns): Don't use it.
7866         * web.c (union_defs): Remove comment about keeping nops.
7867         * gcse.c (hash_scan_insn): Don't take libcall pointers.
7868         (compute_hash_table_work): Don't track libcall notes.
7869         (do_local_cprop): Don't take libcall pointers.  Don't update
7870         libcall notes.
7871         (adjust_libcall_notes): Deleted.
7872         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
7873         ever have existed in the first place).
7874         (replace_store_insn): Don't try to remove libcall notes.
7875         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
7876         (resolve_reg_notes): Don't call them.
7877         (resolve_simple_move): Likewise.
7878         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
7879         Don't remove REG_RETVAL notes.
7880         * emit-rtl.c (try_split): Don't update libcall notes.
7881         (emit_copy_of_insn_after): Dito.
7882         * cselib.c (cselib_current_insn_in_libcall): Remove.
7883         (cselib_process_insn): Don't set/clear it.
7884         (new_elt_loc_list): Don't record it.
7885         (cselib_init): Don't initialize it.
7886         * cselib.c (struct elt_loc_list): Remove in_libcall field.
7887         * loop-invariant.c (find_invariant_insn): Don't look for libcall
7888         notes.
7889         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
7890         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
7891         (init_deps): Don't initialize it.
7892         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
7893         * combine.c (delete_noop_moves): Don't update libcall notes.
7894         (can_combine_p): Remove now pointless #if 0 block.
7895         (try_combine): Remove another obsolete #if 0 block.
7896         (distribute_notes): Don't distribute libcall notes.
7897         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
7898         * dce.c (libcall_dead_p): Remove.
7899         (delete_unmarked_insns): Don't handle libcall blocks.
7900         (preserve_libcall_for_dce): Remove.
7901         (prescan_insns_for_dce): Don't special-case libcall block insns.
7902         * reload1 (reload): Don't handle libcall notes.
7903         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
7904         documentation.
7905
7906 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
7907
7908         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
7909         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
7910         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
7911
7912 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
7913
7914         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
7915         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
7916         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
7917
7918 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7919
7920         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
7921
7922 2008-06-16  Ira Rosen  <irar@il.ibm.com>
7923
7924         PR tree-optimization/36493
7925         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
7926         the arguments list. Use VECTYPE to create vector pointer.
7927         (vectorizable_store): Fail if accesses through a pointer to vectype
7928         do not alias the original memory reference operands.
7929         Call vect_create_data_ref_ptr without the removed argument.
7930         (vectorizable_load): Likewise.
7931         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
7932         removed argument.
7933
7934 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
7935
7936         PR target/36336
7937         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
7938         reg_equiv_constant.
7939
7940 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
7941
7942         * config/mips/loongson2ef.md: New file.
7943         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
7944         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
7945         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
7946         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
7947         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
7948         and loongson_2f.
7949         (loongson2ef.md): New include.
7950         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
7951         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
7952         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
7953         (loongson_gt_<mode>, loongson_extract_halfword)
7954         (loongson_insert_halfword_0, loongson_insert_halfword_2)
7955         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
7956         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
7957         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
7958         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
7959         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
7960         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
7961         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
7962         (vec_interleave_low<mode>): Define type attribute.
7963         * config/mips/mips.c (mips_ls2): New static variable.
7964         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
7965         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
7966         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
7967         Implement target scheduling hooks.
7968         (mips_multipass_dfa_lookahead): Update to handle tuning for
7969         Loongson 2E/2F.
7970         (mips_sched_init): Initialize data for Loongson scheduling.
7971         (mips_ls2_variable_issue): New static function.
7972         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
7973         Add sanity check.
7974         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
7975         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
7976         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
7977         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
7978         Handle ST Loongson 2E/2F cores.
7979         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
7980
7981 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7982
7983         * omp-low.c (extract_omp_for_data): Fix comment typo.
7984         * c.opt: Fix typo.
7985
7986 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7987
7988         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
7989         FIXME note about gcc/config.guess.
7990         * doc/options.texi (Option file format): Remove non-ASCII bytes.
7991         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
7992         * doc/cppopts.texi: Likewise.
7993         * doc/extend.texi: Likewise.
7994         * doc/gcc.texi: Likewise.
7995         * doc/gccint.texi: Likewise.
7996         * doc/gcov.texi: Likewise.
7997         * doc/gty.texi: Likewise.
7998         * doc/hostconfig.texi: Likewise.
7999         * doc/install.texi: Likewise.
8000         * doc/invoke.texi: Likewise.
8001         * doc/loop.texi: Likewise.
8002         * doc/makefile.texi: Likewise.
8003         * doc/md.texi: Likewise.
8004         * doc/passes.texi: Likewise.
8005         * doc/tm.texi: Likewise.
8006         * doc/tree-ssa.texi: Likewise.
8007         * doc/trouble.texi: Likewise.
8008
8009 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
8010             Nathan Sidwell  <nathan@codesourcery.com>
8011             Maxim Kuvyrkov  <maxim@codesourcery.com>
8012             Richard Sandiford  <rdsandiford@googlemail.com>
8013
8014         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
8015         * config/mips/mips-protos.h (mips_expand_vector_init): New.
8016         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
8017         builtins.
8018         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
8019         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
8020         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
8021         V8QImode cases.
8022         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
8023         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
8024         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
8025         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
8026         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
8027         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
8028         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
8029         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
8030         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
8031         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
8032         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
8033         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
8034         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
8035         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
8036         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
8037         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
8038         (mips_builtins): Add Loongson builtins.
8039         (mips_loongson_2ef_bdesc): New.
8040         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
8041         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
8042         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
8043         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
8044         New.
8045         (mips_expand_vector_init): New.
8046         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
8047         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
8048         if appropriate.
8049         * config/mips/mips.md: Add unspec numbers for Loongson
8050         builtins.  Include loongson.md.
8051         (MOVE64): Include Loongson vector modes.
8052         (SPLITF): Include Loongson vector modes.
8053         (HALFMODE): Handle Loongson vector modes.
8054         * config/mips/loongson.md: New.
8055         * config/mips/loongson.h: New.
8056         * config.gcc: Add loongson.h header for mips*-*-* targets.
8057         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
8058
8059 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
8060
8061         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
8062         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
8063         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
8064         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
8065         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
8066         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
8067         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
8068         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
8069         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
8070         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
8071         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
8072         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
8073         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
8074         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
8075         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
8076         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
8077         Remove use_fixproto=yes.
8078         (ia64*-*-hpux*): Remove comment about using fixproto.
8079         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
8080
8081 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8082
8083         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
8084         library rebuilds.
8085         * configure: Regenerate.
8086
8087 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
8088
8089         PR middle-end/36520
8090         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
8091         before evaluating it.
8092
8093 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
8094
8095         PR c/36507
8096         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
8097         nested inline functions.
8098         (start_decl, start_function): Don't invert DECL_EXTERNAL
8099         for nested inline functions.
8100
8101 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
8102
8103         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
8104         splits that must be made for correctness.
8105
8106 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
8107
8108         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
8109         (AVAIL_NON_MIPS16): Likewise.
8110         (mips_builtin_description): Replace target_flags with a predicate.
8111         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
8112         (dspr2_32): New availability predicates.
8113         (MIPS_BUILTIN): New macro.
8114         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
8115         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
8116         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
8117         Replace the TARGET_FLAGS parameters with AVAIL parameters.
8118         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
8119         (mips_dsp_32only_bdesc): Merge into...
8120         (mips_builtins): ...this new array.
8121         (mips_bdesc_map, mips_bdesc_arrays): Delete.
8122         (mips_init_builtins): Update after above changes.
8123         (mips_expand_builtin_1): Merge into...
8124         (mips_expand_builtin): ...here and update after above changes.
8125
8126 2008-06-12  Paul Brook  <paul@codesourcery.com>
8127
8128         * longlong.h (__arm__): Define count_leading_zeros.
8129         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
8130         (clzsi2, clzdi2): New functions.
8131         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
8132         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
8133         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
8134         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
8135         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
8136         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
8137         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
8138         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
8139         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
8140         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
8141
8142 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
8143
8144         * config/m68k/m68k.c (m68k_tune_flags): New.
8145         (override_options): Compute m68k_tune_flags.
8146         (MULL_COST, MULW_COST): Update for various variants of CFV2.
8147         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
8148
8149 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
8150
8151         PR middle-end/36506
8152         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
8153
8154 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
8155
8156         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
8157         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
8158
8159 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
8160
8161         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
8162         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
8163
8164 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
8165
8166         PR middle-end/36506
8167         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
8168         reductions.
8169
8170 2008-06-12  Richard Guenther  <rguenther@suse.de>
8171
8172         PR tree-optimization/36345
8173         * tree-flow.h (struct ptr_info_def): Align escape_mask,
8174         add memory_tag_needed flag.
8175         (may_alias_p): Declare.
8176         * tree-ssa-alias.c (may_alias_p): Export.
8177         (set_initial_properties): Use memory_tag_needed flag.
8178         (update_reference_counts): Likewise.
8179         (reset_alias_info): Reset memory_tag_needed flag.
8180         (create_name_tags): Check memory_tag_needed flag.
8181         (dump_points_to_info_for): Dump it.
8182         * tree-ssa-structalias.c (struct variable_info): Remove
8183         directly_dereferenced flag.
8184         (new_var_info): Do not initialize it.
8185         (process_constraint_1): Do not set it.
8186         (update_alias_info): Set is_dereferenced flag.
8187         (set_uids_in_ptset): Use may_alias_p.
8188         (set_used_smts): Check memory_tag_needed flag.
8189         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
8190         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
8191         memory_tag_needed flag.
8192         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
8193         from broken design.
8194
8195 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
8196
8197         * config/i386/i386.c (ix86_compute_frame_layout): Disable
8198         red zone for w64 abi.
8199         (ix86_expand_prologue): Likewise.
8200         (ix86_force_to_memory): Likewise.
8201         (ix86_free_from_memory): Likewise.
8202
8203 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
8204
8205         PR target/36425
8206         * config/rs6000/rs6000.c (rs6000_override_options): Set
8207         rs6000_isel conditionally to the absence of comand line override.
8208         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
8209         Remove duplicate rs6000_isel setting.
8210         * config/rs6000/eabispe.h: Ditto.
8211
8212 2008-06-11  Richard Guenther  <rguenther@suse.de>
8213
8214         * alias.c (get_alias_set): Use the element alias-set for arrays.
8215         (record_component_aliases): For arrays and vectors do nothing.
8216         * c-common.c (strict_aliasing_warning): Handle the cases
8217         of alias set zero explicitly.
8218         * Makefile.in (dfp.o-warn): Add -Wno-error.
8219
8220 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
8221
8222         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
8223         tune_32 tune_64.
8224         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
8225         tune_32 tune_64 to supported_defaults.  Allow values not
8226         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
8227         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
8228         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
8229         with_cpu_64 to generic for 64-bit-supporting configurations, not
8230         with_cpu.  Remove FIXMEs.
8231         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
8232         --with-arch-64, --with-tune-32, --with-tune-64): Document.
8233         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
8234         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
8235         arch_32 and arch_64.
8236
8237 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
8238             Olivier Hainque  <hainque@adacore.com>
8239
8240         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
8241         Use DECL_SIZE_UNIT to retrieve the size of the field.
8242
8243 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
8244
8245         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
8246         with function calls after declarations.  Lay out
8247         neon_float_type_node before further use.
8248
8249 2008-06-11  Richard Guenther  <rguenther@suse.de>
8250
8251         * tree-flow.h (may_point_to_global_var): Declare.
8252         * tree-ssa-alias.c (may_point_to_global_var): New function.
8253         * tree-ssa-sink.c (is_hidden_global_store): Use it.
8254
8255 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
8256
8257         * configure.ac: Teach that fido supports .debug_line.
8258         * configure: Regenerate.
8259
8260 2008-06-10  Tom Tromey  <tromey@redhat.com>
8261
8262         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
8263         debug hook.
8264
8265 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
8266
8267         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
8268         (encode_decimal64, decode_decimal64, encode_decimal128,
8269         decode_decimal128): Reverse order of 32-bit parts of value if host
8270         and target endianness differ.
8271
8272 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
8273
8274         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
8275         Avoid division by 0.
8276         (tree_mod_pow2_value_transform): Likewise.
8277         (tree_ic_transform): Likewise.
8278         (tree_stringops_transform): Likewise.
8279         (tree_mod_subtract_transform): Likewise.
8280         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
8281         (copy_edges_for_bb): Likewise.
8282         (initialize_cfun): Likewise.
8283
8284 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
8285
8286         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
8287         nonmemory_operand. Add "N" operand constraint.
8288         (*btsi): Ditto.
8289         (*jcc_btdi_mask_rex64): New instruction and split pattern.
8290         (*jcc_btsi_mask): Ditto.
8291         (*jcc_btsi_mask_1): Ditto.
8292
8293 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
8294
8295         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
8296         TYPE_CANONICAL for copied element type.
8297
8298 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
8299
8300         PR target/36473
8301         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
8302         Add m_CORE2 and m_GENERIC.
8303         * config/i386/predicates.md (bt_comparison_operator): New predicate.
8304         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
8305         (*btsi): Ditto.
8306         (*jcc_btdi_rex64): New instruction and split pattern.
8307         (*jcc_btsi): Ditto.
8308         (*jcc_btsi_1): Ditto.
8309         (*btsq): Fix Intel asm dialect operand order.
8310         (*btrq): Ditto.
8311         (*btcq): Ditto.
8312
8313 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
8314
8315         PR middle-end/36447
8316         * simplify-rtx.c (simplify_subreg): Add check for shift count
8317         greater than size.
8318
8319 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
8320
8321         * doc/md.texi: Synchronize with later constraints.md change.
8322         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
8323         with a C implementation.
8324         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
8325         MFLO handling.
8326         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
8327         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
8328         when moving to and from MD_REGNUM.
8329         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
8330         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
8331         Handle byte and halfword moves.
8332         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
8333         separately.
8334         * config/mips/constraints.md (h): Turn into NO_REGS.
8335         (l, x): Update documentation.
8336         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
8337         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
8338         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
8339         (HILO): New mode iterator.
8340         (MOVE128): Add TI.
8341         (any_div): New code iterator.
8342         (u): Extend code attribute to div and udiv.
8343         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
8344         d_operand in the splitters.  Remove redundant CONST_INT checks.
8345         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
8346         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
8347         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
8348         accordingly, using normal moves instead of unspecs to move LO into
8349         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
8350         (<u>mulsidi3): Handle expansion in C code.
8351         (<u>mulsidi3_32bit_internal): Rename to...
8352         (<u>mulsidi3_32bit): ...this.
8353         (<u>mulsidi3_32bit_r4000): Fix insn separator.
8354         (*<u>mulsidi3_64bit): Rename to...
8355         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
8356         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
8357         to set LO and HI to the multiplication result.  Use a normal move
8358         for MFLO and an unspec for MFHI.
8359         (*<u>mulsidi3_64bit_parts): Replace with...
8360         (<u>mulsidi3_64bit_hilo): ...this new instruction.
8361         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
8362         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
8363         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
8364         instead of HI.  Split the instruction into a separate multiplication
8365         and MFHI if !TARGET_FIX_R4000.
8366         (<su>muldi3_highpart): Likewise.
8367         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
8368         and the "=h" clobber.
8369         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
8370         (<u>mulditi3): New expander.
8371         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
8372         (madsi): Remove "=h" clobber.
8373         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
8374         Force the modulus result to be a GPR and split the instruction into
8375         a division followed by an MFHI after reload.
8376         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
8377         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
8378         the MIPS16 HIGH define_split.
8379         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
8380         of acc<->gpr moves to "multi".
8381         (*movdi_64bit): Replace the single "x" alternative with
8382         alternatives for moving into and out of "a".
8383         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
8384         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
8385         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
8386         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
8387         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
8388         (movti): New expander.
8389         (*movti, *movti_mips16): New insns.
8390         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
8391         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
8392         (mthi<GPR:mode>_<HILO:mode>): Likewise.
8393         * config/mips/predicates.md (fpr_operand): Delete.
8394         (d_operand): New predicate.
8395
8396 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
8397
8398         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
8399         failure on some Bourne shells.
8400         (x86_64-*-*): Ditto.
8401
8402 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
8403
8404         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
8405
8406 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
8407
8408         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
8409         (sparc-sun-solaris2*): Likewise.
8410
8411 2008-06-09  Arnaud Charlet  <charlet@adacore.com
8412
8413         * doc/install.texi: Update requirements to build the Ada compiler.
8414
8415 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
8416
8417         * df-scan.c (struct df_scan_problem_data): Remove the
8418         mw_link_pool alloc pool.
8419         (df_scan_free_internal): Don't free it.
8420         (df_scan_alloc): Don't allocate it.
8421         * df.h (struct df_link): Update comment.
8422
8423 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
8424
8425         * except.h: Correct checks for when SJLJ exceptions must be used.
8426
8427 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8428
8429         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
8430         default.
8431
8432 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
8433
8434         PR tree-optimization/36218
8435         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
8436         configure for the build system.
8437         (BUILD_LDFLAGS): Define.
8438         * configure: Regenerate.
8439         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
8440
8441 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
8442
8443         PR target/36424
8444         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
8445         * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
8446         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
8447
8448 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
8449
8450         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
8451
8452 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
8453
8454         * config.gcc (Obsolete configurations): Remove list of
8455         configurations.
8456         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
8457         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
8458         targets matched by those patterns.
8459         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
8460         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
8461         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
8462         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
8463         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
8464         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
8465         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
8466         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
8467         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
8468         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
8469         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
8470         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
8471         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
8472         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
8473         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
8474         Make code for Solaris 7 and greater unconditional for Solaris.
8475         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
8476         Remove --with-* handling.
8477         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
8478         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
8479         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
8480         LINK_OS_WINDISS_SPEC): Remove.
8481         * config/rs6000/sysv4.opt (mwindiss): Remove.
8482         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
8483         * configure: Regenerate.
8484         * doc/cpp.texi: Don't mention BeOS.
8485         * doc/extend.texi (interrupt): Don't mention MS1.
8486         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
8487         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
8488         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
8489         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
8490         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
8491         Remove.
8492         * doc/invoke.texi (MT Options): Remove.
8493         (-mwindiss): Remove.
8494         (CRIS Options): Remove cris-axis-aout references.
8495         (HPPA Options): Don't mention hppa1.1-*-pro.
8496         * doc/md.texi: (MorphoTech family): Remove.
8497         * libgcc2.c: Don't handle UWIN.
8498         * config/alpha/t-unicosmk: Remove.
8499         * config/alpha/unicosmk.h: Remove.
8500         * config/arm/kaos-arm.h: Remove.
8501         * config/arm/kaos-strongarm.h: Remove.
8502         * config/arm/strongarm-coff.h: Remove.
8503         * config/arm/strongarm-elf.h: Remove.
8504         * config/arm/strongarm-pe.h: Remove.
8505         * config/arm/t-strongarm-pe: Remove.
8506         * config/arm/t-xscale-coff: Remove.
8507         * config/arm/t-xscale-elf: Remove.
8508         * config/arm/xscale-coff.h: Remove.
8509         * config/arm/xscale-elf.h: Remove.
8510         * config/chorus.h: Remove.
8511         * config/cris/aout.h: Remove.
8512         * config/cris/aout.opt: Remove.
8513         * config/cris/t-aout: Remove.
8514         * config/i386/beos-elf.h: Remove.
8515         * config/i386/kaos-i386.h: Remove.
8516         * config/i386/ptx4-i.h: Remove.
8517         * config/i386/sco5.h: Remove.
8518         * config/i386/sco5.opt: Remove.
8519         * config/i386/sysv4-cpp.h: Remove.
8520         * config/i386/sysv5.h: Remove.
8521         * config/i386/t-beos: Remove.
8522         * config/i386/t-sco5: Remove.
8523         * config/i386/t-uwin: Remove.
8524         * config/i386/uwin.asm: Remove.
8525         * config/i386/uwin.h: Remove.
8526         * config/kaos.h: Remove.
8527         * config/mips/windiss.h: Remove.
8528         * config/mt: Remove directory.
8529         * config/pa/pa-osf.h: Remove.
8530         * config/pa/pa-pro-end.h: Remove.
8531         * config/pa/t-pro: Remove.
8532         * config/ptx4.h: Remove.
8533         * config/rs6000/beos.h: Remove.
8534         * config/rs6000/kaos-ppc.h: Remove.
8535         * config/rs6000/t-beos: Remove.
8536         * config/rs6000/windiss.h: Remove.
8537         * config/sh/kaos-sh.h: Remove.
8538         * config/sol2-6.h: Remove.
8539         * config/sparc/sol26-sld.h: Remove.
8540         * config/sparc/sysv4-only.h: Remove.
8541         * config/vax/bsd.h: Remove.
8542         * config/vax/t-memfuncs: Remove.
8543         * config/vax/ultrix.h: Remove.
8544         * config/vax/vaxv.h: Remove.
8545         * config/windiss.h: Remove.
8546
8547 2008-06-06  Uros Bizjak <ubizjak@gmail.com>
8548
8549         PR rtl-optimization/36438
8550         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
8551         for vector shifts with constant scalar shift operands.
8552
8553 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
8554
8555         * doc/invoke.texi: Document -march=xlr.
8556         * config/mips/xlr.md: New file.
8557         * config/mips/mips.md: Include it.
8558         (cpu): Add "xlr".
8559         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
8560         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
8561         (mips_rtx_cost_data): Likewise.
8562
8563 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
8564
8565         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
8566         PRE_INC and PRE_DEC cases.
8567
8568 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
8569
8570         PR rtl-optimization/36419
8571         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
8572         the emitting jump insn.
8573
8574         PR target/36362
8575         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
8576         is not bool, boolify the whole *expr_p and convert to the desired type.
8577
8578 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
8579
8580         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
8581         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
8582         Add omp_private_outer_ref hook, add another argument to
8583         omp_clause_default_ctor hook.
8584         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
8585         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
8586         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
8587         hook_tree_tree_tree_tree_null.
8588         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
8589         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
8590         * hooks.c (hook_tree_tree_tree_tree_null): New function.
8591         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
8592         * tree.def (OMP_TASK): New tree code.
8593         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
8594         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
8595         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
8596         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
8597         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
8598         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
8599         OMP_CLAUSE_COLLAPSE_EXPR): Define.
8600         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
8601         (OMP_DIRECTIVE_P): Add OMP_TASK.
8602         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
8603         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
8604         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
8605         and OMP_CLAUSE_UNTIED entries.
8606         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
8607         num_ops to 2.
8608         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
8609         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
8610         * tree-pretty-print.c (dump_omp_clause): Handle
8611         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
8612         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
8613         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
8614         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
8615         warning about unsigned iterators.  Change decl/init/cond/incr
8616         arguments to TREE_VECs, check arguments for all collapsed loops.
8617         (c_finish_omp_taskwait): New function.
8618         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
8619         ws_clauses.
8620         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
8621         default_function_array_conversion on init.  Add par_clauses argument.
8622         If decl is present in parallel's lastprivate clause, change it to
8623         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
8624         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
8625         collapse count in clauses.
8626         (c_parser_omp_for, c_parser_omp_parallel): Adjust
8627         c_parser_omp_for_loop callers.
8628         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
8629         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
8630         (c_parser_omp_clause_name): Handle collapse and untied clauses.
8631         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
8632         functions.
8633         (c_parser_omp_clause_schedule): Handle schedule(auto).
8634         Include correct location in the error message.
8635         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
8636         and PRAGMA_OMP_CLAUSE_UNTIED.
8637         (OMP_TASK_CLAUSE_MASK): Define.
8638         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
8639         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
8640         * tree-nested.c (convert_nonlocal_omp_clauses,
8641         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
8642         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
8643         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
8644         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
8645         OMP_CLAUSE_DECL.
8646         (conver_nonlocal_reference, convert_local_reference,
8647         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
8648         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
8649         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
8650         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
8651         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
8652         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
8653         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
8654         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
8655         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
8656         OMP_CLAUSE_UNTIED.
8657         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
8658         * c-common.h (c_finish_omp_taskwait): New prototype.
8659         * gimple-low.c (lower_stmt): Handle OMP_TASK.
8660         * tree-parloops.c (create_parallel_loop): Create 1 entry
8661         vectors for OMP_FOR_{INIT,COND,INCR}.
8662         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
8663         (make_edges): Handle OMP_TASK.
8664         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
8665         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
8666         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
8667         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
8668         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
8669         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
8670         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
8671         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
8672         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
8673         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
8674         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
8675         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
8676         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
8677         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
8678         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
8679         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
8680         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
8681         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
8682         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
8683         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
8684         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
8685         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
8686         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
8687         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
8688         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
8689         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
8690         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
8691         original iterator is present in lastprivate clause or if
8692         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
8693         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
8694         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
8695         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
8696         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
8697         if it is set, lookup var in outer contexts too.  Handle
8698         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
8699         to be implicitly determined firstprivate for task regions.
8700         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
8701         if it is set, lookup var in outer contexts too.  Set
8702         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
8703         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
8704         OMP_CLAUSE_UNTIED.  Take region_type as last argument
8705         instead of in_parallel and in_combined_parallel.
8706         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
8707         Adjust callers.
8708         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
8709         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
8710         (new_omp_context): Set default_kind to
8711         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
8712         (omp_region_type): New enum.
8713         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
8714         fields, add region_type.
8715         (new_omp_context): Take region_type as argument instead of is_parallel
8716         and is_combined_parallel.
8717         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
8718         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
8719         ctx->is_combined_parallel checks.
8720         (gimplify_omp_task): New function.
8721         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
8722         OMP_CLAUSE_UNTIED.
8723         * omp-low.c (extract_omp_for_data): Use schedule(static)
8724         for schedule(auto).  Handle pointer and unsigned iterators.
8725         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
8726         Add loops argument.  Extract data for collapsed OMP_FOR loops.
8727         (expand_parallel_call): Assert sched_kind isn't auto,
8728         map runtime schedule to index 3.
8729         (struct omp_for_data_loop): New type.
8730         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
8731         Add loop, loops, collapse and iter_type fields.
8732         (workshare_safe_to_combine_p): Disallow combined for if
8733         iter_type is unsigned long long.  Don't combine collapse > 1 loops
8734         unless all bounds and steps are constant.  Adjust extract_omp_for_data
8735         caller.
8736         (expand_omp_for_generic): Handle pointer, unsigned and long long
8737         iterators.  Handle collapsed OMP_FOR loops.  Adjust
8738         for struct omp_for_data changes.  If libgomp function doesn't return
8739         boolean_type_node, add comparison of the return value with 0.
8740         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
8741         pointer, unsigned and long long iterators.  Adjust for struct
8742         omp_for_data changes.
8743         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
8744         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
8745         unsigned long long.  Allocate loops array, pass it to
8746         extract_omp_for_data.  For collapse > 1 loops use always
8747         expand_omp_for_generic.
8748         (omp_context): Add sfield_map and srecord_type fields.
8749         (is_task_ctx, lookup_sfield): New functions.
8750         (use_pointer_for_field): Use is_task_ctx helper.  Change first
8751         argument's type from const_tree to tree.  Clarify comment.
8752         In OMP_TASK disallow copy-in/out sharing.
8753         (build_sender_ref): Call lookup_sfield instead of lookup_field.
8754         (install_var_field): Add mask argument.  Populate both record_type
8755         and srecord_type if needed.
8756         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
8757         in srecord_type.
8758         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
8759         and DECL_FIELD_OFFSET.
8760         (scan_sharing_clauses): Adjust install_var_field callers.  For
8761         firstprivate clauses on explicit tasks allocate the var by value in
8762         record_type unconditionally, rather than by reference.
8763         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
8764         Use is_taskreg_ctx instead of is_parallel_ctx.
8765         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
8766         (create_omp_child_function_name): Add task_copy argument, use
8767         *_omp_cpyfn* names if it is true.
8768         (create_omp_child_function): Add task_copy argument, if true create
8769         *_omp_cpyfn* helper function.
8770         (scan_omp_parallel): Adjust create_omp_child_function callers.
8771         Rename parallel_nesting_level to taskreg_nesting_level.
8772         (scan_omp_task): New function.
8773         (lower_rec_input_clauses): Don't run constructors for firstprivate
8774         explicit task vars which are initialized by *_omp_cpyfn*.
8775         Pass outer var ref to omp_clause_default_ctor hook if
8776         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
8777         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
8778         OMP_CLAUSE_REDUCTION_INIT.
8779         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
8780         avoid duplicate setting of fields.  Handle
8781         OMP_CLAUSE_PRIVATE_OUTER_REF.
8782         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
8783         copy-out if TREE_READONLY, only copy-in.
8784         (expand_task_copyfn): New function.
8785         (expand_task_call): New function.
8786         (struct omp_taskcopy_context): New type.
8787         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
8788         New functions.
8789         (lower_omp_parallel): Rename to...
8790         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
8791         Call create_task_copyfn if srecord_type is needed.  Adjust
8792         sender_decl type.
8793         (task_shared_vars): New variable.
8794         (check_omp_nesting_restrictions): Warn if work-sharing,
8795         barrier, master or ordered region is closely nested inside OMP_TASK.
8796         Add warnings for barrier if closely nested inside of work-sharing,
8797         ordered, or master region.
8798         (scan_omp_1): Call check_omp_nesting_restrictions even for
8799         GOMP_barrier calls.  Rename parallel_nesting_level to
8800         taskreg_nesting_level.  Handle OMP_TASK.
8801         (lower_lastprivate_clauses): Even if some lastprivate is found on a
8802         work-sharing construct, continue looking for them on parent parallel
8803         construct.
8804         (lower_omp_for_lastprivate): Add lastprivate clauses
8805         to the beginning of dlist rather than end.  Adjust for struct
8806         omp_for_data changes.
8807         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
8808         not after it.  Handle collapsed OMP_FOR loops, adjust for
8809         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
8810         (get_ws_args_for): Adjust extract_omp_for_data caller.
8811         (scan_omp_for): Handle collapsed OMP_FOR
8812         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
8813         (lower_omp_single_simple): If libgomp function doesn't return
8814         boolean_type_node, add comparison of the return value with 0.
8815         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
8816         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
8817         (parallel_nesting_level): Rename to...
8818         (taskreg_nesting_level): ... this.
8819         (is_taskreg_ctx): New function.
8820         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
8821         of is_parallel_ctx.
8822         (execute_lower_omp): Rename parallel_nesting_level to
8823         taskreg_nesting_level.
8824         (expand_omp_parallel): Rename to...
8825         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
8826         Call omp_task_call for OMP_TASK regions.
8827         (expand_omp): Adjust caller, handle OMP_TASK.
8828         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
8829
8830         * bitmap.c (bitmap_default_obstack_depth): New variable.
8831         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
8832         if argument is NULL and bitmap_default_obstack is already initialized.
8833         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
8834         at the end.
8835         * matrix-reorg.c (matrix_reorg): Likewise.
8836
8837 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
8838
8839         * config/i386/i386.md (*indirect_jump): Macroize using P
8840         mode iterator.  Remove !TARGET_64BIT from insn constraints.
8841         (*tablejump_1): Ditto.
8842         (*indirect_jump_rex64): Remove insn pattern.
8843         (*tablejump_1_rex64): Ditto.
8844         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
8845         and eh_return_si insn patterns.
8846
8847 2008-06-06  Richard Guenther  <rguenther@suse.de>
8848
8849         * tree-ssa-structalias.c (merge_smts_into): Remove.
8850         (find_what_p_points_to): Do not bother to compute the
8851         points-to set for pt_anything pointers.
8852         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
8853         for pt_anything pointers is ok.
8854
8855 2008-06-06  Jan Hubicka  <jh@suse.cz>
8856
8857         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
8858
8859 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8860
8861         * cgraph.c: Fix typos in comments.
8862         (cgraph_availability_names): Fix string typo.
8863         * fold-const.c: Fix typos in comments.
8864         (fold_binary): Fix typo in warning.
8865         * genautomata.c: Fix typos in comments.
8866         (check_presence_pattern_sets): Fix typo in local variable.
8867         (output_description): Fix typo in output.
8868         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
8869         * hwint.h: Likewise.
8870         * matrix-reorg.c (check_allocation_function): Likewise.
8871         * omega.c (smooth_weird_equations): Likewise.
8872         * auto-inc-dec.c: Fix typos in comments.
8873         * bb-reorder.c: Likewise.
8874         * builtins.c: Likewise.
8875         * c-common.c: Likewise.
8876         * c-cppbuiltin.c: Likewise.
8877         * c-parser.c: Likewise.
8878         * c-pretty-print.c: Likewise.
8879         * cfgcleanup.c: Likewise.
8880         * cfgexpand.c: Likewise.
8881         * cfghooks.c: Likewise.
8882         * cfglayout.c: Likewise.
8883         * cfgloopmanip.c: Likewise.
8884         * cgraphunit.c: Likewise.
8885         * coverage.c: Likewise.
8886         * dbxout.c: Likewise.
8887         * df-byte-scan.c: Likewise.
8888         * df-core.c: Likewise.
8889         * df-problems.c: Likewise.
8890         * df-scan.c: Likewise.
8891         * dfp.c: Likewise.
8892         * dominance.c: Likewise.
8893         * domwalk.c: Likewise.
8894         * dse.c: Likewise.
8895         * dwarf2out.c: Likewise.
8896         * emit-rtl.c: Likewise.
8897         * et-forest.c: Likewise.
8898         * function.c: Likewise.
8899         * function.h: Likewise.
8900         * gcc.c: Likewise.
8901         * gcov-io.c: Likewise.
8902         * gcov.c: Likewise.
8903         * gcse.c: Likewise.
8904         * genattrtab.c: Likewise.
8905         * ggc-page.c: Likewise.
8906         * gimplify.c: Likewise.
8907         * gthr-lynx.h: Likewise.
8908         * haifa-sched.c: Likewise.
8909         * ipa-cp.c: Likewise.
8910         * ipa-inline.c: Likewise.
8911         * ipa-prop.h: Likewise.
8912         * ipa-pure-const.c: Likewise.
8913         * ipa-struct-reorg.c: Likewise.
8914         * ipa-struct-reorg.h: Likewise.
8915         * ipa-type-escape.c: Likewise.
8916         * ipa.c: Likewise.
8917         * loop-doloop.c: Likewise.
8918         * mips-tfile.c: Likewise.
8919         * mkmap-flat.awk: Likewise.
8920         * mkmap-symver.awk: Likewise.
8921         * modulo-sched.c: Likewise.
8922         * omp-low.c: Likewise.
8923         * optabs.c: Likewise.
8924         * optabs.h: Likewise.
8925         * opts.c: Likewise.
8926         * passes.c: Likewise.
8927         * postreload-gcse.c: Likewise.
8928         * postreload.c: Likewise.
8929         * predict.c: Likewise.
8930         * pretty-print.h: Likewise.
8931         * profile.c: Likewise.
8932         * protoize.c: Likewise.
8933         * ra-conflict.c: Likewise.
8934         * real.c: Likewise.
8935         * recog.c: Likewise.
8936         * regclass.c: Likewise.
8937         * regs.h: Likewise.
8938         * reload.c: Likewise.
8939         * rtl-error.c: Likewise.
8940         * rtlanal.c: Likewise.
8941         * scan.h: Likewise.
8942         * sched-rgn.c: Likewise.
8943         * see.c: Likewise.
8944         * stmt.c: Likewise.
8945         * target.h: Likewise.
8946         * tree-dfa.c: Likewise.
8947         * tree-eh.c: Likewise.
8948         * tree-flow-inline.h: Likewise.
8949         * tree-inline.c: Likewise.
8950         * tree-into-ssa.c: Likewise.
8951         * tree-loop-distribution.c: Likewise.
8952         * tree-nested.c: Likewise.
8953         * tree-parloops.c: Likewise.
8954         * tree-pass.h: Likewise.
8955         * tree-pretty-print.c: Likewise.
8956         * tree-profile.c: Likewise.
8957         * tree-scalar-evolution.c: Likewise.
8958         * tree-sra.c: Likewise.
8959         * tree-ssa-alias-warnings.c: Likewise.
8960         * tree-ssa-ccp.c: Likewise.
8961         * tree-ssa-coalesce.c: Likewise.
8962         * tree-ssa-dom.c: Likewise.
8963         * tree-ssa-dse.c: Likewise.
8964         * tree-ssa-forwprop.c: Likewise.
8965         * tree-ssa-live.c: Likewise.
8966         * tree-ssa-live.h: Likewise.
8967         * tree-ssa-loop-im.c: Likewise.
8968         * tree-ssa-loop-ivopts.c: Likewise.
8969         * tree-ssa-loop-niter.c: Likewise.
8970         * tree-ssa-loop-prefetch.c: Likewise.
8971         * tree-ssa-phiopt.c: Likewise.
8972         * tree-ssa-phiprop.c: Likewise.
8973         * tree-ssa-sccvn.c: Likewise.
8974         * tree-ssa-ter.c: Likewise.
8975         * tree-ssa-threadupdate.c: Likewise.
8976         * tree-ssa.c: Likewise.
8977         * tree-vect-analyze.c: Likewise.
8978         * tree-vect-transform.c: Likewise.
8979         * tree-vectorizer.c: Likewise.
8980         * tree-vn.c: Likewise.
8981         * tree-vrp.c: Likewise.
8982         * tree.c: Likewise.
8983         * tree.def: Likewise.
8984         * tree.h: Likewise.
8985         * unwind-dw2-fde.c: Likewise.
8986         * unwind.inc: Likewise.
8987         * value-prof.c: Likewise.
8988         * vmsdbgout.c: Likewise.
8989
8990 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
8991
8992         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
8993         always place FP constants in the TOC for TARGET_POWERPC64.
8994         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
8995
8996 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
8997
8998         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
8999         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
9000         enable for TARGET_E500_DOUBLE.
9001         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
9002         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
9003         floating-point modes like integer modes for E500 double.
9004         (rs6000_legitimate_offset_address_p): Likewise.
9005         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
9006         addressing for DDmode for E500 double.
9007         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
9008         modes as using 64-bits of registers for E500 double.
9009         (spe_build_register_parallel): Do not handle DDmode or TDmode.
9010         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
9011         specially for E500 double.
9012         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
9013         TDmode for E500 double.
9014         (rs6000_gimplify_va_arg): Only handle SDmode in registers
9015         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
9016         (rs6000_split_multireg_move): Do not handle TDmode specially for
9017         E500 double.
9018         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
9019         using 64-bit registers for E500 double.
9020         (emit_frame_save): Do not handle DDmode specially for E500 double.
9021         (gen_frame_mem_offset): Likewise.
9022         (rs6000_function_value): Do not call spe_build_register_parallel
9023         for DDmode or TDmode.
9024         (rs6000_libcall_value): Likewise.
9025         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
9026         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
9027         for E500 double.
9028
9029 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
9030
9031         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
9032         in comments.
9033
9034 2008-06-04  Junjie Gu <jgu@tensilica.com>
9035
9036         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
9037         comparison for frame pointers.
9038
9039 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
9040
9041         PR target/27386
9042         * config/avr/avr.h (PUSH_ROUNDING): Remove.
9043
9044 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
9045
9046         PR target/30243
9047         * builtins.c (expand_builtin_signbit): Don't take lowpart when
9048         register is already smaller or equal to required mode.
9049
9050 2008-06-04  Xinliang David Li  <davidxl@google.com>
9051
9052         * tree-call-cdce.c: New file.
9053         (cond_dead_built_in_calls): New static variable.
9054         (input_domain): New struct.
9055         (check_pow): New function.
9056         (check_builtin_call): Ditto.
9057         (check_target_format): Ditto.
9058         (is_call_dce_candidate): Ditto.
9059         (gen_one_condition): Ditto.
9060         (gen_conditions_for_domain): Ditto.
9061         (get_domain): Ditto.
9062         (gen_conditions_for_pow_cst_base): Ditto.
9063         (gen_conditions_for_pow_int_base): Ditto.
9064         (gen_conditions_for_pow): Ditto.
9065         (get_no_error_domain): Ditto.
9066         (gen_shrink_wrap_conditions): Ditto.
9067         (shrink_wrap_one_built_in_call): Ditto.
9068         (shink_wrap_conditional_dead_built_in_calls): Ditto.
9069         (tree_call_cdce): Ditto.
9070         (gate_call_cdce): Ditto.
9071         (pass_call_cdce): New gimple pass.
9072         * passes.c: (init_optimization_passes): New pass.
9073         * tree-pass.h: New pass declaration.
9074         * opts.c (decode_options): New flag setting.
9075         * common.opt: Add -ftree-builtin-call-dce flag.
9076         * Makefile.in: Add new source file.
9077         * tempvar.def: New tv_id.
9078         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
9079
9080 2008-06-04  Richard Guenther  <rguenther@suse.de>
9081
9082         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
9083         (is_call_clobbered): Always check var_ann->call_clobbered.
9084         (mark_call_clobbered): Always set var_ann->call_clobbered.
9085         (clear_call_clobbered): Always clear var_ann->call_clobbered.
9086         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
9087         (reset_alias_info): Clear call clobbering info on MTAGs and
9088         globals as well.
9089         (set_pt_anything): Set pt_global_mem.
9090         (create_tag_raw): Adjust comment.
9091         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
9092
9093 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
9094             Maxim Kuvyrkov  <maxim@codesourcery.com>
9095
9096         * config/m68k/m68k.opt (mxgot): New option.
9097         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
9098         (m68k_output_addr_const_extra): New.
9099         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
9100         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
9101         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
9102         * doc/invoke.texi (M680x0 Options): Document -mxgot.
9103
9104 2008-06-04  Richard Guenther  <rguenther@suse.de>
9105
9106         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
9107         negative or non-representable offsets.
9108
9109 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
9110
9111         * config/i386/i386.c (ix86_gen_leave): New.
9112         (ix86_gen_pop1): Likewise.
9113         (ix86_gen_add3): Likewise.
9114         (ix86_gen_sub3): Likewise.
9115         (ix86_gen_sub3_carry): Likewise.
9116         (ix86_gen_one_cmpl2): Likewise.
9117         (ix86_gen_monitor): Likewise.
9118         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
9119         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
9120         ix86_gen_one_cmpl2 and ix86_gen_monitor.
9121         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
9122         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
9123         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
9124         (ix86_expand_epilogue): Updated.
9125         (print_operand): Handle integer register operand for 'z'.
9126         (ix86_expand_strlensi_unroll_1): Likewise.
9127         (ix86_expand_strlen): Likewise.
9128         (ix86_expand_builtin): Likewise.
9129         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
9130         mov{q}/mov{l} and add{q}/add{l}.
9131
9132 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
9133
9134         * config/i386/i386.md (P): New mode iterator.
9135         (SFmode push_operand splitter): Macroize DImode and SImode pushes
9136         using P mode iterator.
9137         (DFmode push_operand splitter): Ditto.
9138         (XFmode push_operand splitter): Ditto.
9139         (DFmode float_extend SFmode push_operand splitter): Ditto.
9140         (XFmode float_extend SFmode push_operand splitter): Do not generate
9141         SImode pushes for 64bit target.  Macroize Dimode and SImode
9142         pushes using P mode iterator.
9143         (XFmode float_extend DFmode push_operand splitter): Ditto.
9144
9145 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
9146
9147         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
9148         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
9149         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
9150         return type to int.
9151         (ix86_call_abi_override): Remove check for call_used_regs.
9152
9153 2008-06-03  Richard Guenther  <rguenther@suse.de>
9154
9155         * tree-ssa-structalias.c (find_func_aliases): Add constraints
9156         for the lhs of calls if the return type contains pointers.
9157
9158 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
9159
9160         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
9161         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
9162         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
9163         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
9164         of cfun and DEFAULT_ABI to deceide abi mode.
9165         (DEFAULT_ABI): New.
9166         (REG_PARM_STACK_SPACE): Removed.
9167         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
9168         (STACK_BOUNDARY): Use default target to deceide stack boundary.
9169         * config/i386/i386-protos.h (ix86_cfun_abi): New.
9170         (ix86_function_abi): Likewise.
9171         (ix86_function_type_abi): Likewise.
9172         (ix86_call_abi_override): Likewise.
9173         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
9174         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
9175         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
9176         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
9177         specific defines.
9178         (X86_64_REGPARM_MAX): New.
9179         (X86_64_SSE_REGPARM_MAX): New.
9180         (X64_REGPARM_MAX): New.
9181         (X64_SSE_REGPARM_MAX): New.
9182         (X86_32_REGPARM_MAX): New.
9183         (X86_32_SSE_REGPARM_MAX): New.
9184         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
9185         (ix86_function_regparm): Handle user calling abi.
9186         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
9187         by DEFAULT_ABI versus SYSV_ABI check.
9188         (ix86_reg_parm_stack_space): New.
9189         (ix86_function_type_abi): New.
9190         (ix86_call_abi_override): New.
9191         (ix86_function_abi): New.
9192         (ix86_cfun_abi): New.
9193         (init_cumulative_args): Call abi specific initialization.
9194         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
9195         (function_arg_64): Extend SSE_REGPARM_MAX check.
9196         (function_arg (): Remove TARGET_64BIT_MS_ABI.
9197         (ix86_pass_by_reference): Likewise.
9198         (ix86_function_value_regno_p): Likewise.
9199         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
9200         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
9201         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
9202         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
9203         (setup_incoming_varargs_64): Adjust regparm for call abi.
9204         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
9205         (ix86_va_start): Likewise.
9206         (ix86_gimplify_va_arg): Likewise.
9207         (ix86_expand_prologue): Likewise.
9208         (output_pic_addr_const): Likewise.
9209         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
9210         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
9211         (x86_output_mi_thunk): Likewise.
9212         (x86_function_profiler): Likewise.
9213         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
9214         (SYSV_ABI, MS_ABI): New constants.
9215         (DEFAULT_ABI): New.
9216         (init_regs): Add prototype of function in regclass.c file.
9217         (OVERRIDE_ABI_FORMAT): New.
9218         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
9219         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
9220         (OUTGOING_REG_PARM_STACK_SPACE): New.
9221         (ix86_reg_parm_stack_space): New prototype.
9222         (CUMULATIVE_ARGS): Add call_abi member.
9223         (machine_function): Add call_abi member.
9224         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
9225         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
9226
9227 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com>
9228
9229         PR target/34879
9230         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
9231         (avr_builtin_setjmp_frame_value): New function.
9232         * config/avr/avr.md (nonlocal_goto_receiver): Define.
9233         (nonlocal_goto): Define.
9234
9235 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
9236
9237         * config/mips/mips.c (mips_emit_loadgp): Return early if
9238         there is nothing do to, otherwise emit a blockage if
9239         !TARGET_EXPLICIT_RELOCS || crtl->profile.
9240         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
9241
9242 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9243
9244         * configure.ac: Drop unneeded backslash ending up in config.in.
9245         * acinclude.m4: Likewise.
9246         * config.in: Regenerate.
9247
9248 2008-05-26  Jan Hubicka  <jh@suse.cz>
9249
9250         * predict.c (maybe_hot_frequency_p): Break out of...
9251         (maybe_hot_bb_p): ... here.
9252         (maybe_hot_edge_p): New.
9253         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
9254         * basic-block.h (maybe_hot_edge_p): Declare.
9255
9256 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
9257
9258         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
9259         (*cmpfp_<mode>_cc): Ditto.
9260         (*fp_jcc_8<mode>_387): Ditto.
9261         (*fop_<MODEF:mode>_2_i387): Ditto.
9262         (*fop_<MODEF:mode>_3_i387): Ditto.
9263         (*fop_xf_2_i387): Ditto.
9264         (*fop_xf_3_i387): Ditto.
9265
9266 2008-06-02  Tomas Bily  <tbily@suse.cz>
9267
9268         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
9269
9270 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
9271
9272         * config/mips/mips.c (mips_valid_offset_p): New function.
9273         (mips_valid_lo_sum_p): Likewise.
9274         (mips_classify_address): Use them.
9275         (mips_force_address): New function.
9276         (mips_legitimize_address): Use it.
9277         * config/mips/mips.md (MOVE128): New mode iterator.
9278         (movtf): Require TARGET_64BIT.  Remove empty strings.
9279         (*movtf_internal): Rename to...
9280         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
9281         of "R" and use {,fp}{load,store} attributes instead of "multi".
9282         Use a separate define_split.
9283         (*movtf_mips16): New pattern.
9284
9285 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
9286
9287         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
9288         * config/mips/mips.c (mips_expand_before_return): New function.
9289         (mips_expand_epilogue): Call it.
9290         * config/mips/mips.md (return): Turn into a define_expand.
9291         (*return): New insn.
9292
9293 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
9294
9295         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
9296         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
9297         functions.  Do not emit uses and clobbers of CONCATs; individually
9298         use and clobber their operands.
9299         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
9300         gen_clobber, emit_use and gen_use.
9301         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
9302         (expand_builtin_return): Likewise.
9303         * cfgbuild.c (count_basic_blocks): Likewise.
9304         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
9305         * explow.c (emit_stack_restore): Likewise.
9306         * expmed.c (extract_bit_field_1): Likewise.
9307         * expr.c (convert_move, emit_move_complex_parts): Likewise.
9308         (emit_move_multi_word, store_constructor): Likewise.
9309         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
9310         (thread_prologue_and_epilogue_insns): Likewise.
9311         * lower-subreg.c (resolve_simple_move): Likewise.
9312         * optabs.c (widen_operand, expand_binop): Likewise.
9313         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
9314         * reload.c (find_reloads): Likewise.
9315         * reload1.c (eliminate_regs_in_insn): Likewise.
9316         * stmt.c (expand_nl_goto_receiver): Likewise.
9317         * config/alpha/alpha.md (builtin_longjmp): Likewise.
9318         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
9319         * config/arm/arm.c (arm_load_pic_register): Likewise.
9320         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
9321         * config/arm/arm.md (untyped_return): Likewise.
9322         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
9323         * config/avr/avr.c (expand_prologue): Likewise.
9324         * config/bfin/bfin.c (do_unlink): Likewise.
9325         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
9326         * config/cris/cris.c (cris_expand_prologue): Likewise.
9327         * config/darwin.c (machopic_indirect_data_reference): Likewise.
9328         (machopic_legitimize_pic_address): Likewise.
9329         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
9330         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
9331         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
9332         (ix86_expand_convert_uns_didf_sse): Likewise.
9333         (ix86_expand_vector_init_general): Likewise.
9334         * config/ia64/ia64.md (eh_epilogue): Likewise.
9335         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
9336         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
9337         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
9338         (config/iq2000/iq2000.c): Likewise.
9339         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
9340         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
9341         (builtin_longjmp): Likewise.
9342         * config/mn10300/mn10300.md (call, call_value): Likewise.
9343         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
9344         * config/pdp11/pdp11.md (abshi2): Likewise.
9345         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
9346         * config/s390/s390.c (s390_emit_prologue): Likewise.
9347         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
9348         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
9349         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
9350         * config/sh/sh.c (prepare_move_operands): Likewise.
9351         (output_stack_adjust, sh_expand_epilogue): Likewise.
9352         (sh_set_return_address, sh_expand_t_scc): Likewise.
9353         * config/sparc/sparc.c (load_pic_register): Likewise.
9354         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
9355         * config/spu/spu.c (spu_expand_epilogue): Likewise.
9356         * config/v850/v850.c (expand_epilogue): Likewise.
9357
9358 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
9359
9360         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
9361         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
9362         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
9363         * config/avr/avr.c (expand_prologue, expand_epilogue): Use
9364         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
9365         stack pointer register.
9366         (output_movhi): Remove code for interrupt specific writing to the
9367         stack pointer register.
9368
9369 2008-05-31  Richard Guenther  <rguenther@suse.de>
9370
9371         PR tree-optimization/34244
9372         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
9373         (tree_expr_nonzero_warnv_p): Likewise.
9374         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
9375         ssa_name_nonnegative_p.
9376         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
9377         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
9378         not tree_expr_nonzero_warnv_p.
9379
9380         PR tree-optimization/36262
9381         Revert
9382         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
9383
9384         PR tree-optimization/34244
9385         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
9386         (record_numbers_of_iterations): New function.
9387         (execute_vrp): Cache the numbers of iterations of loops.
9388         * tree-scalar-evolution.c (scev_reset_except_niters):
9389         New function.
9390         (scev_reset): Use scev_reset_except_niters.
9391         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
9392
9393 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
9394
9395         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
9396         __WORKAROUND_RETS when appropriate.
9397
9398 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
9399
9400         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
9401         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
9402         mode iterator.
9403         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
9404         *fop_df_comm_sse insn patterns using MODEF mode iterator.
9405         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
9406         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
9407         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
9408         *fop_df_1_mixed insn patterns using MODEF mode iterator.
9409         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
9410         *fop_df_1_sse insn patterns using MODEF mode iterator.
9411         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
9412         *fop_df_1_i387 insn patterns using MODEF mode iterator.
9413         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
9414         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
9415         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
9416         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
9417         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
9418         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
9419         (*fop_xf_4_i387): Use <MODE> for mode attribute.
9420         (*fop_xf_5_i387): Ditto.
9421         (*fop_xf_6_i387): Ditto.
9422
9423 2008-05-30  Richard Guenther  <rguenther@suse.de>
9424
9425         * builtins.c (build_string_literal): Avoid generating
9426         a non-gimple_val result.
9427
9428 2008-05-30  DJ Delorie  <dj@redhat.com>
9429
9430         * exec-tool.in: Use an environment variable (private) instead of a
9431         file (shared) as a semaphore, so as to not break parallel builds.
9432
9433 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
9434
9435         * optabs.c (maybe_encapsulate_block): Remove.
9436         (emit_libcall_block): Adjust accordingly.
9437         * optabs.h (maybe_encapsulate_block): Remove prototype.
9438
9439         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
9440         Don't use maybe_encapsulate_block.
9441
9442 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
9443
9444         * config/rs6000/rs6000.c (rs6000_legitimize_address,
9445         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
9446         rtx is a SYMBOL_REF before calling get_pool_constant.
9447
9448 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
9449
9450         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
9451
9452 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
9453
9454         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
9455         rather than OS names to choose INO_T_EQ definition.
9456         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
9457         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
9458
9459 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
9460
9461         PR target/36348
9462         * config/darwin-f.c: New.
9463         * config/t-darwin: Added rule to build darwin-f.o.
9464         * config.gcc: Defined new variable, fortran_target_objs.
9465         (*-*-darwin*): Set fortran_target_objs.
9466         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
9467         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
9468         * configure: Regenerated.
9469
9470 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
9471
9472         PR target/35771
9473         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
9474         canonical type if needed.
9475
9476 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
9477
9478         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
9479
9480 2008-05-29  Richard Guenther  <rguenther@suse.de>
9481
9482         PR tree-optimization/36343
9483         PR tree-optimization/36346
9484         PR tree-optimization/36347
9485         * tree-flow.h (clobber_what_p_points_to): Declare.
9486         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
9487         pointed-to variable is dereferenced is irrelevant to whether
9488         the pointer can access the pointed-to variable.
9489         (clobber_what_p_points_to): New function.
9490         * tree-ssa-alias.c (set_initial_properties): Use it.
9491         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
9492         call clobber check for NMTs.
9493
9494 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
9495
9496         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
9497         for printing gcov_type.
9498
9499 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
9500
9501         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
9502         and the eh region information.
9503         * value-prof.c (gimple_move_stmt_histograms): New function.
9504         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
9505
9506 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
9507
9508         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
9509
9510 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
9511
9512         * value-prof.c (tree_ic_transform): Print counts.
9513         * tree-profile.c (tree_gen_ic_func_profiler):
9514         Clear __gcov_indreict_call_callee variable to avoid misattribution
9515         of the profile.
9516
9517 2008-05-28  Rafael Espindola  <espindola@google.com>
9518
9519         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
9520         invalid sharing.
9521
9522 2008-05-28  Richard Guenther  <rguenther@suse.de>
9523
9524         PR tree-optimization/36339
9525         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
9526         and clobbering code out of the loop.
9527
9528 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
9529
9530         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
9531         letters defined.
9532
9533         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
9534         s390_contiguous_bitmask_p, s390_symref_operand_p,
9535         s390_check_symref_alignment, s390_reload_larl_operand,
9536         s390_reload_symref_address): New functions.
9537         (s390_branch_condition_mnemonic): Support compare and branch
9538         instructions.
9539         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
9540         and 'W' constraints.
9541         (s390_secondary_reload): Add secondary reloads for unaligned
9542         symbol refs or symbol refs to floating point or QI/TI mode
9543         integer values.
9544         (legitimate_address_p): Accept symbol references as addresses.
9545         (s390_expand_insv): Use rotate and insert selected bits
9546         instruction for insv when building for z10.
9547         (print_operand_address): Handle symbol ref addresses.
9548         (print_operand): Output modifier 'c' added for signed byte values.
9549         (s390_encode_section_info): Mark symbol refs with
9550         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
9551
9552         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
9553         (length attribute): RRF, RRR have 4 byte length.
9554         (FPALL, INTALL): New mode iterators added.
9555         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
9556         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
9557         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
9558         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
9559         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
9560         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
9561         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
9562         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
9563         instructions.
9564         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
9565         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
9566         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
9567         reload<INTALL:mode><P:mode>_toreg_z10,
9568         reload<FPALL:mode><P:mode>_tomem_z10,
9569         reload<FPALL:mode><P:mode>_toreg_z10,
9570         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
9571         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
9572         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
9573         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
9574         definition.
9575         (movmem, clrmem, cmpmem): New splitters added.
9576
9577         * config/s390/predicates.md (larl_operand): Use
9578         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
9579         SYMBOL_REF_ALIGN1_P.
9580         (s390_signed_integer_comparison,
9581         s390_unsigned_integer_comparison): New predicates.
9582
9583         * config/s390/s390-protos.h (s390_check_symref_alignment,
9584         s390_contiguous_bitmask_p, s390_reload_larl_operand,
9585         s390_reload_symref_address,
9586         s390_compare_and_branch_condition_mask): Prototypes added.
9587
9588         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
9589         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
9590         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
9591
9592 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
9593
9594         * config/s390/s390.c (z10_cost): New cost function for z10.
9595         (s390_handle_arch_option, override_options): Support -march=z10 switch.
9596         (s390_issue_rate): Adjust issue rate for z10.
9597         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
9598         (processor_flags): Add PF_Z10.
9599         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
9600         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
9601         * gcc/config.gcc: Add z10.
9602
9603 2008-05-28  Richard Guenther  <rguenther@suse.de>
9604
9605         PR tree-optimization/36291
9606         * tree-flow. h (struct gimple_df): Remove var_anns member.
9607         * tree-flow-inline.h (gimple_var_anns): Remove.
9608         (var_ann): Simplify.
9609         * tree-dfa.c (create_var_ann): Simplify.
9610         (remove_referenced_var): Clear alias info from var_anns of globals.
9611         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
9612         (delete_tree_ssa): Clear alias info from var_anns of globals.
9613         Do not free var_anns.
9614         (var_ann_eq): Remove.
9615         (var_ann_hash): Likewise.
9616
9617 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
9618
9619         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
9620         and loongson2f entries.
9621         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
9622         * config/mips/mips.h (processor_type): Add Loongson-2E
9623         and Loongson-2F entries.
9624         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
9625         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
9626         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
9627         * doc/invoke.texi (MIPS Options): Document loongson2e
9628         and loongson2f processor names.
9629
9630 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
9631
9632         PR target/35767
9633         PR target/35771
9634         * config/i386/i386.c (ix86_function_arg_boundary): Use
9635         alignment of canonical type.
9636         (ix86_expand_vector_move): Check unaligned memory access for
9637         all SSE modes.
9638
9639 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
9640
9641         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
9642         Moved to the front of file.
9643
9644 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
9645             H.J. Lu  <hongjiu.lu@intel.com>
9646
9647         * dwarf2out.c (current_fde): New.
9648         (add_cfi): Use it.
9649         (lookup_cfa:): Likewise.
9650         (dwarf2out_end_epilogue): Likewise.
9651         (dwarf2out_note_section_used): Likewise.
9652
9653 2008-05-27  Michael Matz  <matz@suse.de>
9654
9655         PR c++/27975
9656         * c.opt (Wenum-compare): New warning option.
9657         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
9658
9659 2008-05-27  Michael Matz  <matz@suse.de>
9660
9661         PR middle-end/36326
9662         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
9663         non-BLKmode types.
9664         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
9665         into memory as tail calls.
9666
9667 2008-05-27  Richard Guenther  <rguenther@suse.de>
9668
9669         PR tree-optimization/36339
9670         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
9671         pointers cause all addressable variables to be call clobbered.
9672
9673 2008-05-27  Richard Guenther  <rguenther@suse.de>
9674
9675         PR tree-optimization/36245
9676         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
9677
9678 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
9679
9680         * config/s390/s390.md: Replace all occurences of the 'm'
9681         constraint with 'RT'.
9682
9683 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
9684
9685         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
9686         definitions added.
9687         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
9688         "*movdi_64".
9689         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
9690         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
9691         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
9692
9693 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
9694
9695         * reload.c: (find_reloads): Skip alternatives according to the
9696         "enabled" attribute. Constify the constraint variable.
9697         * recog.c (get_attr_enabled): Add default implementation.
9698         (extract_insn): Set the alternative_enabled_p array
9699         in the recog_data struct.
9700         (preprocess_constraints, constrain_operands): Skip
9701         alternatives according to the "enabled" attribute
9702         * recog.h (struct recog_data): New field alternative_enabled_p.
9703         (skip_alternative): New inline function.
9704         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
9705         (record_reg_classes): Skip alternative according to the
9706         "enabled" attribute.
9707
9708         * doc/md.texi: Add documention for the "enabled" attribute.
9709
9710 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
9711
9712         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
9713         * postreload.c (reload_cse_simplify_operands): Replace 'm'
9714         constraint with TARGET_MEM_CONSTRAINT.
9715         * recog.c (asm_operand_ok, preprocess_constraints,
9716         constrain_operands): Likewise.
9717         * regclass.c (record_reg_classes): Likewise.
9718         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
9719         * reload1.c (maybe_fix_stack_asms): Likewise.
9720         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
9721         * recog.h: Adjust comment.
9722         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
9723         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
9724         * doc/md.texi: Add a note to description of 'm' constraint.
9725         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
9726
9727 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
9728
9729         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
9730         that the bitfield is of integral type before testing its precision.
9731
9732 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
9733             Sa Liu  <saliu@de.ibm.com>
9734
9735         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
9736         __modti3, __udivti3, __umodti3 and __udivmodti4.
9737         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
9738         that implement TImode mul and div functions.
9739         * config/spu/multi3.c: New. Implement __multi3.
9740         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
9741         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
9742         functions on SPU.
9743
9744 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
9745
9746         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
9747         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
9748         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
9749         tls_sysv_suffix): New mode and mode attribute iterators.
9750         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
9751         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
9752         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
9753         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
9754         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
9755         iterators.
9756
9757 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
9758
9759         PR tree-optimization/36329
9760         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
9761         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
9762         * cgraphbuild.c (initialize_inline_failed): Use the latter
9763         macro in lieu of the former.
9764         * ipa-inline.c (cgraph_mark_inline): Likewise.
9765         (cgraph_decide_inlining_of_small_function): Likewise.
9766         (cgraph_decide_inlining): Likewise.
9767         (cgraph_decide_inlining_incrementally): Likewise.
9768
9769 2008-05-26  Tristan Gingold  <gingold@adacore.com>
9770             Anatoly Sokolov  <aesok@post.ru>
9771
9772         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
9773         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
9774         * config/avr/avr.c (expand_prologue): Tune "call_prologue"
9775         optimization for 'avr6' architecture.
9776
9777 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
9778
9779         PR target/34932
9780         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
9781
9782 2008-05-26  Richard Guenther  <rguenther@suse.de>
9783
9784         * tree-ssa-sccvn.c (expr_has_constants): Declare.
9785         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
9786
9787 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
9788
9789         PR middle-end/36253
9790         * caller-save.c (insert_restore): Verify alignment of spill space.
9791         (insert_save): Likewise.
9792         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
9793         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
9794         (STACK_SLOT_ALIGNMENT): Likewise.
9795         * function.c (LOCAL_ALIGNMENT): Removed.
9796         (get_stack_local_alignment): New.
9797         (assign_stack_local): Use it.  Set alignment on stack slot.
9798         (assign_stack_temp_for_type): Use get_stack_local_alignment.
9799         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
9800         (STACK_SLOT_ALIGNMENT): New.
9801         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
9802         stack slot in XFmode.
9803
9804         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
9805
9806 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
9807
9808         PR/36321
9809         * config/i386/i386.md (allocate_stack_worker_64): Make sure
9810         argument operand in rax isn't removed.
9811
9812 2008-05-26  Richard Guenther  <rguenther@suse.de>
9813
9814         PR middle-end/36300
9815         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
9816         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
9817
9818 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
9819
9820         PR bootstrap/36331
9821         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
9822
9823 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
9824
9825         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
9826         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
9827
9828 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
9829
9830         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
9831         build a trampoline if we don't want one.
9832         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
9833         return zero for nested functions if we don't want a trampoline.
9834
9835 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
9836
9837         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
9838
9839 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
9840
9841         PR fortran/18428
9842         * c.opt: Removed undocumented option '-lang-fortran'.
9843         * c-common.h: Removed global variable 'lang_fortran'.
9844         * c-opts.c (c_common_handle_option): Removed code to handle
9845         option '-lang-fortran'. Updated includes.
9846         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
9847         definition of '__GFORTRAN__'.
9848         (define__GNUC__): Reimplemented to use BASEVER and
9849         cpp_define_formatted.
9850         (builtin_define_with_value_n): Removed.
9851         * c-incpath.h: Renamed to ...
9852         * incpath.h: ... this.
9853         * c-incpath.c: Renamed to ...
9854         * incpath.c: ... this. Updated includes.
9855         * fix-header.c: Updated includes.
9856         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
9857         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
9858         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
9859
9860 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
9861
9862         * tree.h: Update the table of flags used on tree nodes.
9863         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
9864         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
9865         (FORCED_LABEL): Add access check.
9866         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
9867         (ASM_INPUT_P): Likewise.
9868         (ASM_VOLATILE_P): Likewise.
9869         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
9870         (OMP_SECTION_LAST): Access private_flag directly.
9871         (OMP_RETURN_NOWAIT): Likewise.
9872         (OMP_PARALLEL_COMBINED): Likewise.
9873         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
9874         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
9875         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
9876         deprecated_flag directly.
9877
9878 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
9879
9880         * final.c (frame_pointer_needed): Removed.
9881         * flags.h (frame_pointer_needed): Likewise.
9882
9883         * function.h (rtl_data): Add frame_pointer_needed.
9884         (frame_pointer_needed): New.
9885
9886 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
9887
9888         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
9889
9890 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
9891
9892         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
9893         SRC is a REG.
9894
9895 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
9896
9897         * c-common.c (strip_array_types): Move function to..
9898         * tree.c: ..here.
9899         (get_inner_array_type): Delete.
9900         * c-common.h (strip_array_types): Move declaration to..
9901         * tree.h: ..here.
9902         (get_inner_array_type): Delete.
9903         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
9904         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
9905         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
9906         * config/pa/pa.c (emit_move_sequence): Likewise.
9907
9908 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
9909
9910         * config/i386/i386.md (*sse_prologue_save_insn): Set length
9911         attribute to 34.
9912
9913 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
9914
9915         * function.c: Include target hook for nonlocal_goto frame value.
9916
9917 2008-05-24  Richard Guenther  <rguenther@suse.de>
9918
9919         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
9920         variable can be only accessed through a pointer or a union.
9921
9922 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9923
9924         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
9925         * doc/extend.texi: Likewise.
9926
9927 2008-05-23  DJ Delorie  <dj@redhat.com>
9928
9929         * config/m32c/jump.md (untyped_call): Add.
9930
9931         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
9932         for A24 to PSImode.
9933         (m32c_address_cost): Detail costs for indirect offsets.
9934
9935 2008-05-23  Rafael Espindola  <espindola@google.com>
9936
9937         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
9938         if a node is a SUBREG.
9939         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
9940         is a SUBREG.
9941
9942 2008-05-23  Paul Brook  <paul@codesourcery.com>
9943             Carlos O'Donell  <carlos@codesourcery.com>
9944
9945         * doc/extend.texi: Clarify use of __attribute__((naked)).
9946         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
9947         * target.h (gcc_target): Add allocate_stack_slots_for_args.
9948         * function.c (use_register_for_decl): Use
9949         targetm.calls.allocate_stack_slots_for_args.
9950         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
9951         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
9952         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
9953
9954 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
9955
9956         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
9957
9958 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
9959
9960         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
9961         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
9962         is only rounded once.
9963
9964 2008-05-23  Richard Guenther  <rguenther@suse.de>
9965
9966         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
9967
9968 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
9969             Jakub Jelinek  <jakub@redhat.com>
9970
9971         PR target/36079
9972         * configure.ac: Handle --enable-cld.
9973         * configure: Regenerated.
9974         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
9975         * config/i386/i386.h (struct machine_function): Add needs_cld field.
9976         (ix86_current_function_needs_cld): New define.
9977         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
9978         (cld): New isns pattern.
9979         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
9980         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
9981         * config/i386/i386.opt (mcld): New option.
9982         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
9983         TARGET_CLD and ix86_current_function_needs_cld.
9984         (override_options): Use -mcld by default for 32-bit code if
9985         USE_IX86_CLD.
9986
9987         * doc/install.texi (Options specification): Document --enable-cld.
9988         * doc/invoke.texi (Machine Dependent Options)
9989         [i386 and x86-64 Options]: Add -mcld option.
9990         (Intel 386 and AMD x86-64 Options): Document -mcld option.
9991
9992 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
9993         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
9994         (return_in_memory_64): Likewise.
9995         (return_in_memory_ms_64): Likewise.
9996
9997 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9998
9999         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
10000         * builtins.c (fold_builtin_fpclassify): New.
10001         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
10002         * builtins.def (BUILT_IN_FPCLASSIFY): New.
10003         * c-common.c (handle_type_generic_attribute): Adjust to accept
10004         fixed arguments before an elipsis.
10005         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
10006         * doc/extend.texi: Document __builtin_fpclassify.
10007
10008 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
10009
10010         * omp-low.c (gate_expand_omp_ssa): Remove.
10011         (pass_expand_omp_ssa): Remove.
10012         (gate_expand_omp): Do not check for flag_openmp_ssa.
10013         * common.opt (-fopenmp-ssa): Remove.
10014         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
10015
10016 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
10017
10018         * config/sh/sh.opt (mfixed-range): New option.
10019         * config/sh/sh-protos.h (sh_fix_range): Declare.
10020         * config/sh/sh.c (sh_fix_range): New function.
10021         * config/sh/sh.h (sh_fixed_range_str): Declare.
10022         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
10023         is not empty.
10024         * doc/invoke.texi (SH Options): Document -mfixed-range.
10025
10026 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
10027
10028         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
10029         it before the redeclaration.
10030
10031 2008-05-22  Anatoly Sokolov <aesok@post.ru>
10032
10033         * config/avr/avr.c (get_sequence_length): Add new function.
10034         (expand_prologue, expand_epilogue): Remove duplicate code.
10035
10036 2008-05-22  Rafael Espindola  <espindola@google.com>
10037
10038         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
10039         sharing.
10040
10041 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
10042
10043         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
10044         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
10045
10046         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
10047         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
10048         (vect_update_misalignment_for_peel): Likewise.
10049         (vector_alignment_reachable_p): Likewise.
10050         * tree-vect-transform.c (vectorizable_load): Likewise.
10051         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
10052         (get_vectype_for_scalar_type): Pass mode of scalar_type
10053         to UNITS_PER_SIMD_WORD.
10054
10055         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
10056         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
10057         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
10058         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
10059         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
10060
10061 2008-05-22  Ira Rosen  <irar@il.ibm.com>
10062
10063         PR tree-optimization/36293
10064         * tree-vect-transform.c (vect_transform_strided_load): Don't check
10065         if the first load must be skipped because of a gap.
10066
10067 2008-05-22  Richard Guenther  <rguenther@suse.de>
10068
10069         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
10070         more cases of offset disambiguation that is possible if
10071         strict-aliasing rules apply.
10072         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
10073         for basic offset and type-based disambiguation.
10074
10075 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
10076
10077         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
10078         ix86_expand_vector_set on V16QImode for SSE4.1.
10079
10080 2008-05-21  Tom Tromey  <tromey@redhat.com>
10081
10082         * c.opt (Wimport): Mark as undocumented.
10083         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
10084         -Wno-import.
10085         (Warning Options): Likewise.
10086         * doc/cppopts.texi: Don't mention -Wimport.
10087
10088 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
10089
10090         PR tree-optimization/36287
10091         PR tree-optimization/36286
10092         * lambda-code.c (build_access_matrix): Do not use the loop->num
10093         for computing the number of induction variables: use the loop depth
10094         instead.
10095
10096 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
10097
10098         PR/36280
10099         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
10100         option -f(no-)leading-underscore.
10101
10102 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
10103
10104         * config/i386/i386.c (ix86_expand_vector_init_general): Use
10105         GET_MODE_NUNITS (mode).
10106
10107 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
10108
10109         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
10110         (-mmulhw): Add 464 to description.
10111         (-mdlmzb): Likewise.
10112         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
10113         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
10114         464fp entries.
10115         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
10116         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
10117         * config/rs6000/rs6000.md: Update comments for 464.
10118
10119 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
10120
10121         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
10122
10123 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
10124
10125         * config/i386/sse.md (vec_extractv4sf): Removed.
10126         (vec_extractv2df): Likewise.
10127         (vec_extractv2di): Likewise.
10128         (vec_extractv4si): Likewise.
10129         (vec_extractv8hi): Likewise.
10130         (vec_extractv16qi): Likewise.
10131         (vec_extract<mode>): New.
10132
10133 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
10134
10135         * config/i386/sse.md (vec_setv4sf): Removed.
10136         (vec_setv2df): Likewise.
10137         (vec_setv2di): Likewise.
10138         (vec_setv4si): Likewise.
10139         (vec_setv8hi): Likewise.
10140         (vec_setv16qi): Likewise.
10141         (vec_set<mode>): New.
10142
10143 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
10144
10145         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
10146         goto for vec_concat and vec_interleave.
10147
10148 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
10149
10150         * config/i386/sse.md (vec_initv4sf): Removed.
10151         (vec_initv2df): Likewise.
10152         (vec_initv2di): Likewise.
10153         (vec_initv4si): Likewise.
10154         (vec_initv8hi): Likewise.
10155         (vec_initv16qi): Likewise.
10156         (vec_init<mode>): New.
10157
10158 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
10159
10160         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
10161
10162 2008-05-21  Tom Tromey  <tromey@redhat.com>
10163
10164         * ggc-zone.c (lookup_page_table_if_allocated): New function.
10165         (zone_find_object_offset): Likewise.
10166         (gt_ggc_m_S): Likewise.
10167         (highest_bit): Likewise.
10168         * ggc-page.c (gt_ggc_m_S): New function.
10169         * stringpool.c (string_stack): Remove.
10170         (init_stringpool): Update.
10171         (ggc_alloc_string): Use ggc_alloc.
10172         (maybe_delete_ident): New function.
10173         (ggc_purge_stringpool): Likewise.
10174         (gt_ggc_m_S): Remove.
10175         * ggc-common.c (ggc_protect_identifiers): New global.
10176         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
10177         ggc_protect_identifiers.
10178         * ggc.h (ggc_protect_identifiers): Declare.
10179         (gt_ggc_m_S): Update.
10180         (ggc_purge_stringpool): Declare.
10181         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
10182         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
10183         special case.
10184         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
10185
10186 2008-05-21  David S. Miller  <davem@davemloft.net>
10187
10188         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
10189         tmake_file.
10190
10191 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
10192
10193         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
10194         once finished.
10195
10196 2008-05-20  David Daney  <ddaney@avtrex.com>
10197
10198         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
10199         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
10200         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
10201         UNSPEC_UPDATE_GOT_VERSION): Renumber.
10202         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
10203         (atomic_hiqi_op): New define_code_iterator.
10204         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
10205         mips_expand_compare_and_swap_12.
10206         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
10207         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
10208         (sync_<optab><mode>, sync_old_<optab><mode>,
10209         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
10210         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
10211         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
10212         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
10213         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
10214         (test_and_set_12): New insn.
10215         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
10216         sync_new_<optab><mode>, sync_old_nand<mode>,
10217         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
10218         clobber to operand 0 for SI and DI mode insns.
10219         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
10220         mips_gen_fn_4): New typedefs.
10221         (mips_gen_fn_ptrs): Define new union type.
10222         (mips_expand_compare_and_swap_12): Remove declaration.
10223         (mips_expand_atomic_qihi): Declare function.
10224         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
10225         (mips_expand_atomic_qihi): ... this.  Use new generator function
10226         parameter.
10227         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
10228         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
10229         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
10230         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
10231         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
10232         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
10233         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
10234         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
10235         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
10236         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
10237         New macros.
10238
10239 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
10240
10241         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
10242         the missing break.
10243
10244 2008-05-20  Anatoly Sokolov <aesok@post.ru>
10245
10246         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
10247         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
10248         (avr_attribute_table): Add 'OS_main' function attribute.
10249         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
10250         functions with 'OS_main' attribute.
10251
10252 2008-05-20  Richard Guenther  <rguenther@suse.de>
10253
10254         PR tree-optimization/35204
10255         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
10256         helper, split out from ...
10257         (DFS): ... here.  Make the DFS walk non-recursive.
10258
10259 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
10260             Jan Sjodin  <jan.sjodin@amd.com>
10261
10262         PR tree-optimization/36181
10263         * tree-parloops.c (loop_has_vector_phi_nodes): New.
10264         (parallelize_loops): Don't parallelize when the loop has vector
10265         phi nodes.
10266
10267 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
10268             Sebastian Pop  <sebastian.pop@amd.com>
10269
10270         * tree-loop-linear.c (gather_interchange_stats): Look in the access
10271         matrix, and never look at the tree representation of the memory
10272         accesses.
10273         (linear_transform_loops): Computes parameters and access matrices.
10274         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
10275         when fails.
10276         (access_matrix_get_index_for_parameter): New.
10277         * tree-data-ref.h (struct access_matrix): New.
10278         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
10279         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
10280         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
10281         am_vector_index_for_loop): New.
10282         (struct data_reference): Add field access_matrix.
10283         (DR_ACCESS_MATRIX): New.
10284         (compute_data_dependences_for_loop): Update declaration.
10285         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
10286         * lambda.h (lambda_vector_vec_p): Declared.
10287         * lambda-code.c: Depend on pointer-set.h.
10288         (lambda_collect_parameters_from_af, lambda_collect_parameters,
10289         av_for_af_base, av_for_af, build_access_matrix,
10290         lambda_compute_access_matrices): New.
10291         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
10292
10293 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
10294
10295         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
10296         $SOURCEDIR/include.
10297
10298 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
10299             Sebastian Pop  <sebastian.pop@amd.com>
10300
10301         PR tree-optimization/36206
10302         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
10303         FOLD_CONVERSIONS.
10304         (instantiate_scev_1): Rename flags to fold_conversions.
10305         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
10306         outeside instantiation_loop.
10307         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
10308         (evolution_function_is_affine_or_constant_p): Removed.
10309         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
10310         instantiate_scev.
10311         (analyze_siv_subscript): Pass in the loop nest number.
10312         Call evolution_function_is_affine_in_loop instead of
10313         evolution_function_is_affine_p.
10314         (analyze_overlapping_iterations): Pass in the loop nest number.
10315
10316 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
10317             Sebastian Pop  <sebastian.pop@amd.com>
10318
10319         PR tree-optimization/36206
10320         * tree-chrec.h (chrec_fold_op): New.
10321         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
10322         and other trees.
10323
10324 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
10325
10326         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
10327         (DIRS_EQ): New.
10328         (remove_duplicates): Do not set inode on non-inode systems.
10329         Use DIRS_EQ.
10330
10331 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
10332
10333         * config.gcc (tm_file): Update comments about relative pathnames.
10334
10335 2008-05-20  Richard Guenther  <rguenther@suse.de>
10336
10337         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
10338         * tree-ssa-sccvn.c (process_scc): Likewise.
10339         * tree-ssa-sink.c (execute_sink_code): Likewise.
10340         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
10341         * tree-vrp.c (process_assert_insertions): Likewise.
10342         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
10343         (perform_tree_ssa_dce): Likewise.
10344         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
10345         (dump_dominator_optimization_stats): Likewise.
10346         * tree-vectorizer.c (vectorize_loops): Likewise.
10347
10348 2008-05-20  Richard Guenther  <rguenther@suse.de>
10349
10350         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
10351
10352 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
10353
10354         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
10355         (ix86_i386elf_return_in_memory): Likewise.
10356         (ix86_i386interix_return_in_memory): Likewise.
10357         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
10358         (SUBTARGET_RETURN_IN_MEMORY): New.
10359         * config/i386/i386elf.h: Likewise.
10360         * config/i386/ptx4-i.h: Likewise.
10361         * config/i386/sol2-10.h: Likewise.
10362         * config/i386/sysv4.h: Likewise.
10363         * config/i386/vx-common.h: Likewise.
10364         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
10365         * config/i386/i386.c (ix86_return_in_memory): Made static and
10366         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
10367         (ix86_i386elf_return_in_memory): Removed.
10368         (ix86_i386interix_return_in_memory): Removed.
10369         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
10370         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
10371
10372 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
10373
10374         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
10375
10376 2008-05-19  Xinliang David Li  <davidxl@google.com>
10377
10378         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
10379         * opts.c: Ditto.
10380         * common.opt: Ditto.
10381         * doc/invoke.texi: Ditto.
10382
10383 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
10384
10385         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
10386         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
10387
10388 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
10389
10390         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
10391         sizes of operand array from 8/4 to 4/2.
10392         (ix86_expand_vector_init_general): Change size of operand array
10393         from 32 to 16.  Remove op0, op1 and half_mode.
10394
10395 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
10396
10397         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
10398         (ix86_expand_vector_init_interleave): Likewise.
10399         (ix86_expand_vector_init_general): Use them.  Assert
10400         word_mode == SImode when n_words == 4.
10401
10402 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
10403
10404         * config/i386/i386.c (ix86_secondary_reload): New static function.
10405         (TARGET_SECONDARY_RELOAD): New define.
10406         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
10407         * config/i386/i386.md (reload_outqi): Remove.
10408
10409 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10410
10411         PR middle-end/35509
10412         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
10413         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
10414         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
10415         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
10416         (fold_builtin_1): Likewise.
10417         * builtins.def (BUILT_IN_ISINF_SIGN): New.
10418         c-common.c (check_builtin_function_arguments): Handle
10419         BUILT_IN_ISINF_SIGN.
10420         * doc/extend.texi: Document __builtin_isinf_sign.
10421         * fold-const.c (operand_equal_p): Handle COND_EXPR.
10422
10423 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
10424
10425         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
10426         EH cleanup at the end of the pass, search for those that have been
10427         turned into forwarder blocks and do the cleanup on their successor.
10428
10429 2008-05-18  Richard Guenther  <rguenther@suse.de>
10430
10431         * tree-cfg.c (verify_gimple_expr): Allow conversions from
10432         pointers to sizetype and vice versa.
10433
10434 2008-05-18 Xinliang David Li   <davidxl@google.com>
10435
10436         * gcc/tree-ssa-dce.c: Coding style fix.
10437         (check_pow): Documentation comment.
10438         (check_log): Documenation comment. Coding style fix.
10439         (is_unnecessary_except_errno_call): Ditto.
10440         (gen_conditions_for_pow): Ditto.
10441         (gen_conditions_for_log): Ditto.
10442         (gen_shrink_wrap_conditions): Ditto.
10443         (shrink_wrap_one_built_in_calls): Ditto.
10444         * gcc/doc/invoke.texi: Better documentation string.
10445         * ChangeLog: Fix wrong change log entries from
10446         May 17 checkin on function call DCE.
10447
10448 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
10449
10450         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
10451
10452 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
10453
10454         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
10455         * df-problems.c (simulation routines): Fixed block comment to
10456         properly say how to add forwards scanning functions.
10457
10458 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
10459
10460         * tree-inline.c (setup_one_parameter): Remove dead code.
10461
10462 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
10463
10464         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
10465         a BIT_AND_EXPR only for an INTEGER_TYPE.
10466
10467 2008-05-17 Xinliang David Li   <davidxl@google.com>
10468
10469         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
10470         (check_pow, check_log, is_unnecessary_except_errno_call): New
10471         functions to check for eliminating math functions that are pure
10472         except for setting errno.
10473         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
10474         general condition expressions for shrink-wrapping pow/log calls.
10475         (gen_shrink_wrap_conditions): Ditto.
10476         (shrink_wrap_one_built_in_call): Ditto.
10477         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
10478         (mark_operand_necessary): If debugging, output if OP is necessary.
10479         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
10480         unnecessary.
10481         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
10482         opt level >= 2.
10483         * gcc/common.opt: New user flag -ftree-builtin-dce.
10484         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
10485
10486 2008-05-16  David S. Miller  <davem@davemloft.net>
10487
10488         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
10489         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
10490
10491 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
10492
10493         PR target/36246
10494         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
10495
10496 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
10497
10498         * ifcvt.c (dead_or_predicable): Rename
10499         df_simulate_one_insn_backwards to df_simulate_one_insn.
10500         * recog.c (peephole2_optimize): Ditto.
10501         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
10502         Ditto.
10503         * df.h: Rename df_simulate_one_insn_backwards to
10504         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
10505         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
10506         scanning of defs and uses.
10507         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
10508         (df_simulate_one_insn_forwards): Removed.
10509
10510 2008-05-16  Doug Kwan  <dougkwan@google.com>
10511
10512         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
10513         QNaN & SNaN.
10514         (real_from_string): Handle NaNs and Inf as approriate.
10515
10516 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
10517
10518         * doc/gty.texi (Source Files Containing Type Information): Note
10519         that headers should appear first in the gtfiles list.
10520
10521 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
10522
10523         * tree.def (COND_EXEC): Properly documented this code.
10524
10525 2008-05-16  Diego Novillo  <dnovillo@google.com>
10526
10527         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
10528         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
10529         the new field.
10530
10531 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
10532
10533         * tree-ssa-dse (max_stmt_uid): Removed.
10534         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
10535         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
10536         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
10537         * function.h (cfun.last_stmt_uid): New field.
10538         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
10539         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
10540         New functions.
10541         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
10542         (create_stmt_ann): Initialize the ann->uid field.
10543         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
10544         with new calls.
10545         * tree-flow.h (renumber_gimple_stmt_uids): New function.
10546
10547 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
10548
10549         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
10550         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
10551         (init_empty_tree_cfg): Call it.
10552
10553 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
10554
10555         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
10556         Update all users.
10557
10558 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
10559
10560         * doc/invoke.text (-fdump-tree-*-verbose): New option.
10561         * tree-dump.c (dump_options): New verbose option.
10562         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
10563         Add verbose dump.
10564         * tree-pass.h (TDF_VERBOSE): New dump flag.
10565         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
10566         (tree-flow.h): Added include.
10567         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
10568
10569 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
10570
10571         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
10572
10573         From Jie Zhang  <jie.zhang@analog.com>
10574         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
10575         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
10576         mcpu=bf561-none and mcpu=bf561-0.2.
10577         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
10578         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
10579         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
10580         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
10581         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
10582         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
10583         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
10584         option.
10585         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
10586         (cputype_selected): Remove.
10587         (bfin_handle_option): Don't use cputype_selected.
10588         (override_options): When no mcpu option, enable all workarounds.
10589         Don't use bfin_workarounds.
10590         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
10591         processor type.
10592         (DEFAULT_CPU_TYPE): Don't define.
10593
10594 2008-05-16  Richard Guenther  <rguenther@suse.de>
10595
10596         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
10597         on deletion of the last stmt.
10598
10599 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
10600
10601         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
10602         V8HImode for SSE2 and V16QImode for SSE4.1.
10603
10604 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
10605
10606         * cgraph.h (compute_inline_parameters): Made public.
10607         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
10608         variable_generate_summary, function_write_summary,
10609         variable_write_summary, variable_read_summary.  Added generate_summary,
10610         write_summary, read_summary.
10611         * cgraphunit.c (cgraph_process_new_functions): Changed call from
10612         pass_ipa_inline.function_generate_summary, to
10613         compute_inline_parameters.
10614         * ipa-inline.c (compute_inline_parameters): Made public and added
10615         node parameter.
10616         (compute_inline_parameters_for_current): New function.
10617         (pass_inline_param): Now calls compute_inline_parameters_for_current.
10618         (inline_generate_summary): Removed parameter and made to loop over
10619         all cgraph nodes.
10620         (pass_ipa_inline): Updated for new IPA_PASS structure.
10621         * passes.c (execute_ipa_summary_passes): Now is called once per
10622         pass rather than once per node*pass.
10623
10624 2008-05-15  Anatoly Sokolov <aesok@post.ru>
10625
10626         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
10627         avr_have_mul_p, avr_asm_only_p): Remove variables.
10628         (avr_override_options): Remove initialization of removed variables.
10629         (avr_file_start):  Convert removed variables to fields of
10630         'struct base_arch_s *avr_current_arch'.
10631         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
10632         (AVR_HAVE_MUL): (Ditto.).
10633         (AVR_HAVE_MOVW): (Ditto.).
10634         (AVR_HAVE_LPMX): (Ditto.).
10635         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
10636         avr_asm_only_p): Remove declaration.
10637
10638 2008-05-15  Diego Novillo  <dnovillo@google.com>
10639
10640         * config/arm/arm.c (arm_return_in_memory): Fix return type.
10641         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
10642
10643 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
10644
10645         PR middle-end/36194
10646         * combine.c (check_conversion): Rename back to check_promoted_subreg.
10647         Don't call record_truncated_value from here.
10648         (record_truncated_value): Turn it into a for_each_rtx callback.
10649         (record_truncated_values): New function.
10650         (combine_instructions): Call note_uses with record_truncated_values.
10651         Change name of check_conversion to check_promoted_subreg.
10652
10653 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
10654
10655         * doc/sourcebuild.texi: Document support for torture tests.
10656
10657 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
10658
10659         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
10660         to alternative 4 of operand 2.
10661
10662 2008-05-15  Richard Guenther  <rguenther@suse.de>
10663
10664         * tree-pass.h (current_pass): Declare.
10665         (get_pass_for_id): Likewise.
10666         * passes.c (passes_by_id, passes_by_id_size): New globals.
10667         (set_pass_for_id): New function.
10668         (get_pass_for_id): Likewise.
10669         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
10670         (execute_function_todo): Flush per function statistics.
10671         * toplev.c (compile_file): Init statistics.
10672         (general_init): Do early statistics initialization.
10673         (finalize): Finish statistics.
10674         * statistics.h (statistics_early_init): Declare.
10675         (statistics_init): Likewise.
10676         (statistics_fini): Likewise.
10677         (statistics_fini_pass): Likewise.
10678         (statistics_counter_event): Likewise.
10679         (statistics_histogram_event): Likewise.
10680         * statistics.c: New file.
10681         * Makefile.in (OBJS-common): Add statistics.o.
10682         (statistics.o): Add dependencies.
10683         * doc/invoke.texi (-fdump-statistics): Document.
10684
10685         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
10686         (insert): Likewise.
10687         (execute_pre): Use statistics_counter_event.
10688         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
10689         (substitute_and_fold): Increment it.  Use statistics_counter_event.
10690
10691 2008-05-15  Diego Novillo  <dnovillo@google.com>
10692
10693         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
10694
10695         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
10696         * tree-ssa-alias.c (new_type_alias): Remove references to
10697         sub-variables from comment.
10698         * tree-ssa-operands.c (swap_tree_operands): Likewise.
10699
10700 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
10701
10702         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
10703         attribute to 1 only for insertps alternative.
10704
10705 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
10706
10707         * config/bfin/bfin.md (loadbytes): New pattern.
10708         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
10709         (bfin_init_builtins): Initialize it.
10710         (bdesc_1arg): Add it.
10711
10712 2008-05-15  Sa Liu  <saliu@de.ibm.com>
10713
10714         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
10715         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
10716         * testsuite/lib/target-supports.exp: Add
10717         check_effective_target_fortran_integer_16.
10718
10719 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
10720
10721         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
10722         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
10723         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
10724         (TARGET_RETURN_IN_MEMORY): Define.
10725
10726 2008-05-15  Richard Guenther  <rguenther@suse.de>
10727
10728         PR middle-end/36244
10729         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
10730         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
10731         represent unmodifiable vars.
10732
10733 2008-05-15  Richard Guenther  <rguenther@suse.de>
10734
10735         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
10736         INDIRECT_REF and TARGET_MEM_REF.
10737         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
10738         TARGET_MEM_REF.
10739
10740 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
10741             H.J. Lu  <hongjiu.lu@intel.com>
10742
10743         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
10744         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
10745         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
10746         insn alternatives.  Add missing alternatives.
10747         (*vec_concatv2di_rex64_sse4_1): Likewise.
10748         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
10749         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
10750         Require TARGET_SSE.
10751
10752 2008-05-15  Richard Guenther  <rguenther@suse.de>
10753
10754         PR tree-optimization/36009
10755         PR tree-optimization/36204
10756         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
10757         (determine_invariantness_stmt): Record the loop a store is
10758         always executed in.
10759         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
10760         dependency.
10761
10762 2008-05-15  Richard Guenther  <rguenther@suse.de>
10763
10764         PR tree-optimization/34330
10765         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
10766         through the pointer will alias the SMT.
10767
10768 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
10769
10770         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
10771
10772 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
10773
10774         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
10775
10776 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
10777             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
10778
10779         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
10780         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
10781         (vashl_optab): New optab for vector/vector shifts.
10782         (vashr_optab): Ditto.
10783         (vlshr_optab): Ditto.
10784         (vrotl_optab): Ditto.
10785         (vrotr_optab): Ditto.
10786         (optab_subtype): New enum for optab_for_tree_code call.
10787         (optab_for_tree_code): Add enum optab_subtype argument.
10788
10789         * optabs.c (optab_for_tree_code): Take an additional argument to
10790         distinguish between a vector shift by a scalar and vector shift by
10791         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
10792         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
10793         vector shift by a vector.
10794         (expand_widen_pattern_expr): Pass additional argument to
10795         optab_for_tree_code.
10796
10797         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
10798         vrotl_optab, vrotr_optab.
10799
10800         * expr.c (expand_expr_real_1): Update calls to
10801         optab_for_tree_code to distinguish between vector shifted by a
10802         scalar and vector shifted by a vector.
10803         * tree-vectorizer.c (supportable_widening_operation): Ditto.
10804         (supportable_narrowing_operation): Ditto.
10805         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
10806         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
10807         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
10808         (vect_create_epilog_for_reduction): Ditto.
10809         (vectorizable_reduction): Ditto.
10810         (vectorizable_operation): Ditto.
10811         (vect_strided_store_supported): Ditto.
10812         (vect_strided_load_supported): Ditto.
10813         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
10814         * expmed.c (expand_shift): Ditto.
10815
10816         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
10817         scalar type.
10818         (ashr@var{m}3): Ditto.
10819         (vashl@var{m}3): Document new vector/vector shift standard name.
10820         (vashr@var{m}3): Ditto.
10821         (vlshr@var{m}3): Ditto.
10822         (vrotl@var{m}3): Ditto.
10823         (vrotr@var{m}3): Ditto.
10824
10825         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
10826         (PPERM_INVERT): Ditto.
10827         (PPERM_REVERSE): Ditto.
10828         (PPERM_REV_INV): Ditto.
10829         (PPERM_ZERO): Ditto.
10830         (PPERM_ONES): Ditto.
10831         (PPERM_SIGN): Ditto.
10832         (PPERM_INV_SIGN): Ditto.
10833         (PPERM_SRC1): Ditto.
10834         (PPERM_SRC2): Ditto.
10835
10836         * config/i386/sse.md (mulv2di3): Add SSE5 support.
10837         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
10838         allows a memory operand to be the value being added, and split it
10839         to improve vectorization.
10840         (sse5_pmacsdqh_mem): Ditto.
10841         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
10842         (sse5_mulv2div2di3_high): Ditto.
10843         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
10844         (vec_pack_trunc_v4si): Ditto.
10845         (vec_pack_trunc_v2di): Ditto.
10846         (sse5_pcmov_<mode>): Remove code that tried to use use
10847         andps/andnps instead of pcmov.
10848         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
10849         pmacsdqh instructions.
10850         (vec_widen_smult_lo_v4si): Ditto.
10851
10852         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
10853         (PPERM_INVERT): Ditto.
10854         (PPERM_REVERSE): Ditto.
10855         (PPERM_REV_INV): Ditto.
10856         (PPERM_ZERO): Ditto.
10857         (PPERM_ONES): Ditto.
10858         (PPERM_SIGN): Ditto.
10859         (PPERM_INV_SIGN): Ditto.
10860         (PPERM_SRC1): Ditto.
10861         (PPERM_SRC2): Ditto.
10862         (ix86_expand_sse_movcc): Move the SSE5 test after the if
10863         true/false tests.
10864         (ix86_expand_int_vcond): If SSE5 generate all possible integer
10865         comparisons.
10866         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
10867         says ignore whether the last reference is a memory operand.
10868
10869 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
10870             Paolo Bonzini <bonzini at gnu dot org>
10871
10872         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
10873         shift patterns.
10874
10875         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
10876         (vlshr<mode>3): Rename from vlshr<mode>3.
10877         (vashr<mode>3): Rename from vashr<mode>3.
10878         (mulv4sf3): Change the names of vector shift patterns.
10879         (mulv4si3): Ditto.
10880         (negv4sf2): Ditt.
10881
10882         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
10883         shift insns.
10884
10885         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
10886         (SI_SHLHI): Ditto.
10887         (SI_SHL): Ditto.
10888         (SI_SHLI): Ditto.
10889         (SI_ROTH): Ditto.
10890         (SI_ROTHI): Ditto.
10891         (SI_ROT): Ditto.
10892         (SI_ROTI): Ditto.
10893         (SPU_RL_0): Ditto.
10894         (SPU_RL_1): Ditto.
10895         (SPU_RL_2): Ditto.
10896         (SPU_RL_3): Ditto.
10897         (SPU_RL_4): Ditto.
10898         (SPU_RL_5): Ditto.
10899         (SPU_RL_6): Ditto.
10900         (SPU_RL_7): Ditto.
10901         (SPU_SL_0): Ditto.
10902         (SPU_SL_1): Ditto.
10903         (SPU_SL_2): Ditto.
10904         (SPU_SL_3): Ditto.
10905         (SPU_SL_4): Ditto.
10906         (SPU_SL_5): Ditto.
10907         (SPU_SL_6): Ditto.
10908         (SPU_SL_7): Ditto.
10909
10910         * config/spu/spu.md (v): New iterator macro to add v for vector types.
10911         (floatunssidf2_internal): Change vector/vector shift names.
10912         (floatunsdidf2_internal): Ditto.
10913         (mulv8hi3): Ditto.
10914         (ashrdi3): Ditto.
10915         (ashrti3): Ditto.
10916         (cgt_df): Ditto.
10917         (cgt_v2df): Ditto.
10918         (dftsv): Ditto.
10919         (vashl<mode>3): Rename from ashl<mode>3.
10920         (vashr<mode>3): Rename from ashr<mode>3.
10921         (vlshr<mode>3): Rename from lshr<mode>3.
10922         (vrotl<mode>3): Rename from rotl<mode>3.
10923
10924 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
10925
10926         PR target/36224
10927         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
10928         multiply gives the wrong value when doing widening multiplies.
10929         (vec_widen_smult_lo_v4si): Ditto.
10930
10931 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
10932
10933         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
10934         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
10935         emit_library_call_value.
10936         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
10937         * tree.h (ECF_LIBCALL_BLOCK): Removed.
10938         * calls.c (initialize_argument_information, precompute_arguments,
10939         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
10940         (precompute_arguments): Removed flags parameter.
10941         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
10942
10943 2008-05-14  Richard Guenther  <rguenther@suse.de>
10944
10945         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
10946         Make sure to register the store if the use is a PHI_NODE.
10947
10948 2008-05-14  Olivier Hainque  <hainque@adacore.com>
10949
10950         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
10951         memory if the component is to be referenced in BLKmode according
10952         to get_inner_reference.
10953
10954 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
10955
10956         * calls.c (emit_library_call_value_1): Restore code clearing
10957         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
10958
10959 2008-05-14  Olivier Hainque  <hainque@adacore.com>
10960             Nicolas Roche  <roche@adacore.com>
10961
10962         * configure.ac: Add support for a "gcc_subdir" variable in
10963         config-lang.in, to denote a subdirectory where the language/GCC
10964         integration files are to be found.
10965         * configure: Regenerate.
10966
10967 2008-05-14  Ira Rosen  <irar@il.ibm.com>
10968
10969         PR tree-optimization/36098
10970         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
10971         value for the first load in the group in case of a gap.
10972         (vect_build_slp_tree): Check that there are no gaps in loads.
10973
10974 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
10975
10976         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
10977         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
10978         expand_copysign_bit, ): Change call to emit_no_conflict_block to
10979         emit_insn and remove unneeded code to construct extra args.
10980         (emit_no_conflict_block): Removed.
10981         * optabls.h: (emit_no_conflict_block): Removed.
10982         * cse.c (cse_extended_basic_block): Remove search for
10983         REG_NO_CONFLICT note.
10984         * global.c: Removed incorrect comment added in revision 117.
10985         * expr.c (convert_move): Change call to emit_no_conflict_block to
10986         emit_insn.
10987         * recog.c: Change comments so that they do not mention
10988         REG_NO_CONFLICT.
10989         * local_alloc.c (combine_regs): Removed last parameter.
10990         (no_conflict_p): Removed.
10991         (block_alloc): Removed note, no_conflict_combined_regno and set
10992         local vars. Removed all code to process REG_NO_CONFLICT blocks.
10993         (combine_regs): Removed already_dead and code to look for
10994         REG_NO_CONFLICT notes.
10995         * lower_subreg (remove_retval_note): Removed code to look for
10996         REG_NO_CONFLICT block.
10997         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
10998         (resolve_clobber): Remove code to process libcalls that have
10999         REG_NO_CONFLICT notes.
11000         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
11001         case.
11002         * combine.c (can_combine_p, distribute_notes):  Removed
11003         REG_NO_CONFLICT case.
11004         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
11005         to emit_insns.
11006         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
11007         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
11008         Ditto.
11009         * reg-notes.def (NO_CONFLICT): Removed.
11010
11011 2008-05-14  David S. Miller  <davem@davemloft.net>
11012
11013         * config/sparc/sparc.c (sparc_profile_hook): If
11014         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
11015         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
11016         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
11017
11018 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
11019
11020         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
11021
11022 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
11023
11024         PR target/36222
11025         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
11026         and op1 expansion before vector concat to have less live pseudos.
11027
11028 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
11029
11030         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
11031         ix86_expand_vector_set if supported.
11032
11033 2008-05-13  Diego Novillo  <dnovillo@google.com>
11034             Kenneth Zadeck  <zadeck@naturalbridge.com>
11035
11036         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
11037
11038         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
11039         phinodes_print_statistics, init_ssanames, fini_ssanames,
11040         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
11041         release_ssa_name, release_defs, replace_ssa_name_symbol,
11042         ssanames_print_statistics): Move ...
11043         * tree-flow.h: ... here.
11044         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
11045         Use FN instead of cfun.
11046         (make_ssa_name_fn): Rename from make_ssa_name.
11047         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
11048         * tree-flow-inline.h (make_ssa_name): Move from
11049         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
11050         * omp-low.c (expand_omp_parallel):
11051         * tree-flow-inline.h (redirect_edge_var_map_result):
11052         * tree-ssa.c (init_tree_ssa): Add argument FN.
11053         Use it instead of cfun.  Update all users.
11054
11055 2008-05-13  Tom Tromey  <tromey@redhat.com>
11056
11057         PR preprocessor/22168:
11058         * doc/cpp.texi (Top): Update menu.
11059         (Alternatives to Wrapper #ifndef): New node.
11060         (Other Directives): Document deprecation.
11061         (Obsolete Features): Remove menu.
11062         (Assertions): Merge node into Obsolete Features.
11063         (Obsolete once-only headers): Move earlier; rename to Alternatives
11064         to Wrapper #ifndef.
11065         * doc/cppopts.texi: Update.
11066         * c.opt (Wdeprecated): Enable for C and ObjC.
11067         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
11068         (C++ Dialect Options): Move -Wno-deprecated from here to...
11069         (Warning Options): ... here.
11070
11071 2008-05-13  Richard Guenther  <rguenther@suse.de>
11072
11073         PR middle-end/36227
11074         * fold-const.c (fold_sign_changed_comparison): Do not allow
11075         changes in pointer-ness.
11076
11077 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
11078
11079         PR target/24713
11080         * config/sh/sh.c (sh_expand_prologue): Don't clear
11081         RTX_FRAME_RELATED_P for push insns.
11082
11083 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
11084
11085         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
11086
11087 2008-05-12  Anatoly Sokolov <aesok@post.ru>
11088
11089         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
11090         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
11091         Use 'machine->is_leaf' instead of 'leaf_func_p'.
11092
11093 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
11094
11095         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
11096         (*vec_concatv4sf_sse): This.
11097         (*sse2_concatv2si): Renamed to ...
11098         (*vec_concatv2si_sse2): This.
11099         (*sse1_concatv2si): Renamed to ...
11100         (*vec_concatv2si_sse): This.
11101         (*vec_concatv2di_rex): Renamed to ...
11102         (*vec_concatv2di_rex64): This.
11103         (*vec_concatv2si_sse4_1): New.
11104         (*vec_concatv2di_rex64_sse4_1): Likewise.
11105
11106 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
11107
11108         PR rtl-optimization/36111
11109         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
11110         that was created for swappable operands.
11111
11112 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
11113
11114         PR ada/36001
11115         * Makefile.in: Substitute GNATMAKE and GNATBIND.
11116         * configure.ac: Add call to ACX_PROG_GNAT.
11117
11118 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
11119
11120         * optc-gen.awk: Fix comment typo.
11121
11122 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
11123
11124         * pretty-print.c (pp_integer_with_precision): Use
11125         HOST_LONG_LONG_FORMAT.
11126
11127 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
11128
11129         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
11130
11131 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
11132
11133         * config/i386/i386.c (bdesc_ptest): Removed.
11134         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
11135         (bdesc_args): Add __builtin_ia32_ptestz128,
11136         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
11137         (ix86_init_mmx_sse_builtins): Updated.
11138         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
11139         (ix86_expand_builtin): Updated.
11140
11141 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
11142
11143         * tree-cfg.c (valid_fixed_convert_types_p): New function.
11144         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
11145
11146 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
11147
11148         * value-prof.c (interesting_stringop_to_profile): Do not
11149         return early for BUILT_IN_MEMPCPY.
11150
11151 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
11152
11153         * calls.c (expand_call): Don't use callgraph to increase
11154         preferred_stack_boundary.
11155
11156         * cgraph.h (cgraph_rtl_info): Use unsigned on
11157         preferred_incoming_stack_boundary.
11158
11159         * final.c (rest_of_clean_state): Use unsigned on
11160         preferred_stack_boundary.
11161
11162 2008-05-09  Tom Tromey  <tromey@redhat.com>
11163
11164         PR preprocessor/22231:
11165         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
11166         proceeding.
11167
11168 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
11169
11170         PR tree-optimization/36129
11171         * tree-ssa-ccp.c: Include value-prof.h.
11172         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
11173         built-in function was folded to a constant.
11174         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
11175
11176 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
11177             Sebastian Pop  <sebastian.pop@amd.com>
11178
11179         * tree-scalar-evolution.c: Document instantiate_scev.
11180         (instantiate_parameters_1): Renamed instantiate_scev_1.
11181         Don't use the same loop for instantiation_loop and evolution_loop.
11182         (instantiate_scev): New.
11183         (instantiate_parameters): Moved...
11184         (resolve_mixers): Update call to instantiate_scev_1 to pass the
11185         same loop twice.  Maintains the semantics for this function.
11186         * tree-scalar-evolution.h (instantiate_scev): Declare.
11187         (instantiate_parameters): ...here.  Now static inline.
11188         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
11189         instead of resolve_mixers.
11190
11191 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
11192
11193         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
11194
11195 2008-05-09  Tomas Bily  <tbily@suse.cz>
11196
11197         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
11198         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
11199         * tree-ssa-structalias.c (get_constraint_for): Likewise.
11200         * c-common.c (c_common_truthvalue_conversion): Likewise.
11201         * tree-object-size.c (compute_object_offset): Likewise.
11202         * tree-inline.c (estimate_num_insns_1): Likewise.
11203         * varasm.c (const_hash_1, compare_constant, copy_constant)
11204         (compute_reloc_for_constant, output_addressed_constants)
11205         (initializer_constant_valid_p): Likewise.
11206         * c-omp.c (check_omp_for_incr_expr): Likewise.
11207         * gimplify.c (gimplify_expr): Likewise.
11208         * c-typeck.c (c_finish_return): Likewise.
11209         * tree-vectorizer.c (supportable_widening_operation)
11210         (supportable_narrowing_operation): Likewise.
11211         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
11212         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
11213         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
11214         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
11215         (descr_info_loc): Likewise.
11216         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
11217         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
11218         (fold_unary): Likewise.
11219         * builtins.c (get_pointer_alignment): Likewise.
11220         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
11221         (instantiate_parameters_1): Likewise.
11222         * tree.c (expr_align, stabilize_reference): Likewise.
11223         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
11224         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
11225         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
11226         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
11227         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
11228         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
11229         Likewise.
11230         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
11231         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
11232         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
11233         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
11234         (forward_propagate_comparison)
11235         (tree_ssa_forward_propagate_single_use_vars): Likewise.
11236         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
11237         * emit-rtl.c (component_ref_for_mem_expr)
11238         (set_mem_attributes_minus_bitpos): Likewise.
11239         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
11240         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
11241         Likewise.
11242         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
11243         (build_function_call, pointer_diff, build_compound_expr)
11244         (c_finish_return): Likewise.
11245         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
11246         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
11247         Likewise.
11248         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
11249         * expr.c (is_aligning_offset): Likewise.
11250         * tree-ssa-alias.c (is_escape_site): Likewise.
11251         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
11252         (check_all_va_list_escapes): Likewise.
11253         * tree-ssa-loop-ivopts.c (determine_base_object)
11254         (determine_common_wider_type): Likewise.
11255         * dojump.c (do_jump): Likewise.
11256         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
11257         * tree-gimple.c (is_gimple_cast): Likewise.
11258         * fold-const.c (decode_field_reference, )
11259         (fold_sign_changed_comparison, fold_unary, fold_comparison)
11260         (fold_binary): Likewise.
11261         * tree-ssa-alias-warnings.c (find_alias_site_helper)
11262         (already_warned_in_frontend_p): Likewise.
11263         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
11264         * tree.c (really_constant_p, get_unwidened): Likewise.
11265         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
11266         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
11267         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
11268         Likewise.
11269         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
11270         CONVERT_EXPR_P.
11271         (CONVERT_EXPR_P): Define.
11272         (CASE_CONVERT): Define.
11273
11274 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
11275
11276         PR middle-end/36117
11277         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
11278         (delete_unmarked_insns): When deleting a call, call
11279         delete_unreachable_blocks.
11280         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
11281         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
11282
11283 2008-05-08  Richard Guenther  <rguenther@suse.de>
11284
11285         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
11286         (-ftree-salias): Likewise.
11287         (salias-max-implicit-fields): Remove param documentation.
11288         (salias-max-array-elements): Likewise.
11289         * tree-pass.h (pass_create_structure_vars): Remove.
11290         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
11291         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
11292         * tree-ssa-alias.c (create_structure_vars): Remove.
11293         (gate_structure_vars): Likewise.
11294         (pass_create_structure_vars): Likewise.
11295         (gate_build_alias): Likewise.
11296         (pass_build_alias): Adjust to run always and dump the function.
11297         * common.opt (ftree-salias): Hide.
11298         * passes.c (init_optimization_passes): Remove
11299         pass_create_structure_vars, adjust comment.
11300         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
11301         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
11302         * opts.c (decode_options): Do not set flag_tree_salias.
11303         (common_handle_option): Add OPT_ftree_salias to the backward
11304         compatibility section.
11305
11306 2008-05-08  Richard Guenther  <rguenther@suse.de>
11307
11308         * tree-flow-inline.h (var_can_have_subvars): Move ...
11309         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
11310         * tree-flow.h (var_can_have_subvars): Remove.
11311         (push_fields_onto_fieldstack): Remove.
11312         (sort_fieldstack): Likewise.
11313         (struct fieldoff): Move ...
11314         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
11315         alias_set and base_for_components fields.
11316         (sort_fieldstack): Make static.
11317         (push_fields_onto_fieldstack): Likewise.  Remove code that
11318         handles anything but RECORD_TYPEs.  Remove alias_set and
11319         base_for_components handling.
11320         (create_variable_info_for): Adjust.
11321
11322 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
11323
11324         * common.opt (Wframe-larger-than=): Shorten the help message
11325         to one line.
11326         * doc/invoke.texi (Wframe-larger-than=): Add more description.
11327
11328 2008-05-08  Rafael Espindola  <espindola@google.com>
11329
11330         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
11331         trap.
11332         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
11333         trap and that both operands are gimple values.
11334         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
11335         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
11336         is a fp operation.
11337
11338 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
11339
11340         * read-rtl.c (join_c_conditions): Return the first string if the
11341         two strings are equal.
11342
11343 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
11344
11345         * gensupport.h (pred_data): Add a "num_codes" field.
11346         (add_predicate_code): Declare.
11347         * gensupport.c (add_predicate_code): New function.
11348         (std_pred_table): Add an "allows_const_p" field.
11349         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
11350         Remove the (incomplete) list of such codes from the codes field.
11351         (init_predicate_table): Use add_predicate_code.  Add all
11352         RTX_CONST_OBJs if allows_const_p is true.
11353         * genrecog.c (process_define_predicate): Use add_predicate_code.
11354
11355 2008-05-08  David Daney  <ddaney@avtrex.com>
11356             Richard Sandiford  <rsandifo@nildram.co.uk>
11357
11358         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
11359         special case of constant zero operands.
11360         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
11361         old and new values.  Special case constant zero values.
11362         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
11363         fails.
11364         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
11365         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
11366
11367 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
11368
11369         PR target/36090
11370         * simplify-rtx.c (simplify_plus_minus): Create CONST of
11371         similar RTX_CONST_OBJ before CONST_INT.
11372
11373 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
11374
11375         * stmt.c (expand_stack_restore): Change sa mode if needed.
11376
11377 2008-05-08  Richard Guenther  <rguenther@suse.de>
11378
11379         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
11380         return type to bool.
11381         (ix86_sol10_return_in_memory): Likewise.
11382         (ix86_i386elf_return_in_memory): Likewise.
11383         (ix86_i386interix_return_in_memory): Likewise.
11384         * config/i386/i386.c (ix86_return_in_memory): Likewise.
11385         (ix86_sol10_return_in_memory): Likewise.
11386         (ix86_i386elf_return_in_memory): Likewise.
11387         (ix86_i386interix_return_in_memory): Likewise.
11388
11389 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
11390
11391         PR bootstrap/36180
11392         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
11393         fndecl argument.
11394         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
11395         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
11396         declared in front.
11397
11398 2008-05-08  Richard Guenther  <rguenther@suse.de>
11399
11400         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
11401         * tree-data-ref.h (struct dr_alias): Remove subvars field.
11402         (DR_SUBVARS): Remove.
11403         * tree-dfa.c (dump_subvars_for): Remove.
11404         (debug_subvars_for): Likewise.
11405         (dump_variable): Do not dump subvars.
11406         (remove_referenced_var): Do not remove subvars.
11407         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
11408         (lookup_subvars_for_var): Remove.
11409         (get_subvars_for_var): Likewise.
11410         (get_subvars_at): Likewise.
11411         (get_first_overlapping_subvar): Likewise.
11412         (overlap_subvar): Likewise.
11413         * tree-flow.h (subvar_t): Remove.
11414         (struct var_ann_d): Remove subvars field.
11415         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
11416         argument.  Remove special handling of SFTs.
11417         (compute_tag_properties): Likewise.
11418         (set_initial_properties): Likewise.
11419         (compute_call_clobbered): Likewise.
11420         (count_mem_refs): Likewise.
11421         (compute_memory_partitions): Likewise.
11422         (compute_flow_insensitive_aliasing): Likewise.
11423         (setup_pointers_and_addressables): Likewise.
11424         (new_type_alias): Likewise.
11425         (struct used_part): Remove.
11426         (used_portions): Likewise.
11427         (struct used_part_map): Likewise.
11428         (used_part_map_eq): Likewise.
11429         (used_part_map_hash): Likewise.
11430         (free_used_part_map): Likewise.
11431         (up_lookup): Likewise.
11432         (up_insert): Likewise.
11433         (get_or_create_used_part_for): Likewise.
11434         (create_sft): Likewise.
11435         (create_overlap_variables_for): Likewise.
11436         (find_used_portions): Likewise.
11437         (create_structure_vars): Likewise.
11438         * tree.def (STRUCT_FIELD_TAG): Remove.
11439         * tree.h (MTAG_P): Adjust.
11440         (struct tree_memory_tag): Remove base_for_components and
11441         unpartitionable flags.
11442         (struct tree_struct_field_tag): Remove.
11443         (SFT_PARENT_VAR): Likewise.
11444         (SFT_OFFSET): Likewise.
11445         (SFT_SIZE): Likewise.
11446         (SFT_NONADDRESSABLE_P): Likewise.
11447         (SFT_ALIAS_SET): Likewise.
11448         (SFT_UNPARTITIONABLE_P): Likewise.
11449         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
11450         (union tree_node): Remove sft field.
11451         * alias.c (get_alias_set): Remove special handling of SFTs.
11452         * print-tree.c (print_node): Remove handling of SFTs.
11453         * tree-dump.c (dequeue_and_dump): Likewise.
11454         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
11455         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
11456         * tree-predcom.c (set_alias_info): Do not set subvars.
11457         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
11458         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
11459         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
11460         (add_vars_for_offset): Remove.
11461         (add_virtual_operand): Remove special handling of SFTs.
11462         (add_call_clobber_ops): Likewise.
11463         (add_call_read_ops): Likewise.
11464         (get_asm_expr_operands): Likewise.
11465         (get_modify_stmt_operands): Likewise.
11466         (get_expr_operands): Likewise.
11467         (add_to_addressable_set): Likewise.
11468         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
11469         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
11470         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
11471         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
11472         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
11473         (tree_node_structure): Likewise.
11474         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
11475         handling of SFTs.
11476         (find_what_p_points_to): Likewise.
11477
11478 2008-05-08  Sa Liu  <saliu@de.ibm.com>
11479
11480         * config/spu/spu.md: Fixed subti3 pattern.
11481
11482 2008-05-08  Richard Guenther  <rguenther@suse.de>
11483
11484         PR middle-end/36154
11485         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
11486         sure to create a representative for trailing arrays for PTA.
11487
11488 2008-05-08  Richard Guenther  <rguenther@suse.de>
11489
11490         PR middle-end/36172
11491         * fold-const.c (operand_equal_p): Two objects which types
11492         differ in pointerness are not equal.
11493
11494 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
11495
11496         * calls.c (compute_argument_block_size): Add argument tree fndecl.
11497         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
11498         (emit_library_call_value_1): Add new variable fndecl initialized by
11499         NULL_TREE. It should be the decl type of orgfun, but this information
11500         seems not to be available here, so it uses the default calling abi.
11501         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
11502         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
11503         by TARGET_RETURN_IN_MEMORY.
11504         * config/i386/i386-interix.h: Likewise.
11505         * config/i386/i386.h: Likewise.
11506         * config/i386/i386elf.h: Likewise.
11507         * config/i386/ptx4-i.h: Likewise.
11508         * config/i386/sol2-10.h: Likewise.
11509         * config/i386/sysv4.h: Likewise.
11510         * config/i386/vx-common.h: Likewise.
11511         * config/cris/cris.h: Removed #if 0 clause.
11512         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
11513         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
11514         argument.
11515         (ix86_sol10_return_in_memory): Likewise.
11516         (ix86_i386elf_return_in_memory): New.
11517         (ix86_i386interix_return_in_memory): New.
11518         * config/mt/mt-protos.h (mt_return_in_memory): New.
11519         * config/mt/mt.c: Likewise.
11520         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
11521         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
11522         * config/bfin/bfin.h: Likewise.
11523         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
11524         argument.
11525         * config/bfin/bfin.c: Likewise.
11526         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
11527         * config/alpha/unicosmk.h: Likewise.
11528         * config/i386/cygming.h: Likewise.
11529         * config/iq2000/iq2000.h: Likewise.
11530         * config/mips/mips.h: Likewise.
11531         * config/mn10300/mn10300.h: Likewise.
11532         * config/rs6000/rs6000.h: Likewise.
11533         * config/score/score.h: Likewise.
11534         * config/spu/spu.h: Likewise.
11535         * config/v850/v850.h: Likewise.
11536         * defaults.h: Likewise.
11537         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
11538         * expr.c (emit_block_move): Adjust use of
11539         OUTGOING_REG_PARM_STACK_SPACE.
11540         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
11541         OUTGOING_REG_PARM_STACK_SPACE.
11542         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
11543
11544 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
11545
11546         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
11547         on OMP_RETURN for OMP_FOR.
11548
11549         PR debug/35896
11550         * dwarf2out.c (dw_expand_expr, common_check): Removed.
11551         (fortran_common): New function.
11552         (gen_variable_die): Call fortran_common instead of common_check,
11553         adjust for it returning tree instead of rtx.  Formatting.
11554
11555 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
11556
11557         PR rtl/7335
11558         PR rtl/33826
11559         * see.c (see_copy_insn): Copy new pure const attributes for new call.
11560         * c-decl.c (merge_decls): Ditto.
11561         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
11562         to RTL_CONST_OR_PURE_CALL_P.
11563         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
11564         Initialized DECL_LOOPING_CONST_PURE.
11565         (process_call_operands): Set tree_side_effects properly.
11566         * tree.h (TREE_READONLY_DECL_P): Removed.
11567         (DECL_IS_PURE): Renamed to DECL_PURE_P.
11568         (DECL_LOOPING_OR_CONST_P): New macro.
11569         (struct tree_function_decl): Added looping_const_or_pure_p.
11570         (ECF_*) Renumbered.
11571         (ECF_LOOPING_OR_CONST_P): New macro.
11572         * rtlanal.c (pure_const_p): Removed.
11573         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
11574         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
11575         to RTL_CONST_CALL_P.
11576         * ipa-pure-const.c (pure_const_state_e): Added looping field.
11577         (check_decl, check_tree, check_call, scan_function): Initialize
11578         looping.
11579         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
11580         (static_execute): Set looping true for recursive functions.
11581         Undo setting state to IPA_NEITHER for recursive functions.
11582         * cse.c (cse_insn):
11583         * ifcvt.c (noce_can_store_speculate_p): Changed
11584         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
11585         RTL_CONST_OR_PURE_CALL_P.
11586         * dse.c (scan_insn): Ditto.
11587         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
11588         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
11589         RTL_CONST_OR_PURE_CALL_P.
11590         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
11591         pure_call_p to RTL_CONST_CALL_P.
11592         * gimplify.c (gimplify_call_expr): Clear side effects for
11593         non-looping pure and constant calls.
11594         * calls.c (emit_call_1): Set rtl flags from ecf flags.
11595         (flags_from_decl_or_type): Set ecf flags from decl flags.
11596         (initialize_argument_information): Turn off
11597         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
11598         Change const to pure if callee_copies is true rather than just
11599         turning off const.
11600         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
11601         way of marking pure calls.
11602         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
11603         Remove hack that was supposed to fix pr7335 and remove old
11604         way of marking pure calls.
11605         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
11606         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
11607         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
11608         RTL_CONST_OR_PURE_CALL_P.
11609         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
11610         * loop-invariant.c (find_exits, find_invariant_bb): Changed
11611         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
11612         * sched-deps.c (schedule_analyze): Ditto.
11613         * rtl.h (struct rtx_def): Use call field, unchanging field, and
11614         return_val field of calls to represent pure and const function info.
11615         (CONST_OR_PURE_CALL_P): Deleted macro.
11616         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
11617         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
11618         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
11619         TREE_READONLY.
11620         * tree-optimize.c (execute_fixup_cfg): Added test for
11621         ECF_LOOPING_CONST_OR_PURE.
11622         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
11623         DECL_PURE_P.
11624         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
11625         effects for looping pure or const calls.
11626         (verify_gimple_expr): Added verification code.
11627         * config/alpha/alpha.c (alpha_legitimize_address,
11628         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
11629         RTL_CONST_CALL_P.
11630         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
11631         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
11632         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
11633         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
11634         RTL_CONST_OR_PURE_CALL_P.
11635         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
11636         and const calls to be deleted.
11637
11638 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
11639
11640         PR target/35714
11641         * config/i386/mmx.md (mmx_subv2sf3): New expander.
11642         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
11643         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
11644         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
11645         to handle nonimmediate operands.
11646         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
11647         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
11648         to handle nonimmediate operands.
11649         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
11650         (mmx_pmulhrwv4hi3): New expander.  Use
11651         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11652         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
11653         (sse2_umulv1siv1di3): New expander.  Use
11654         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11655         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
11656         (mmx_eq<mode>3): New expander.  Use
11657         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11658         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
11659         (mmx_uavgv8qi3): New expander.  Use
11660         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11661         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
11662         (mmx_uavgv4hi3): New expander.  Use
11663         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11664
11665         * config/i386/sse.md
11666         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
11667         to handle nonimmediate operands.
11668         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
11669         to handle nonimmediate operands.
11670         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
11671         to handle nonimmediate operands.
11672         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
11673         to handle nonimmediate operands.
11674         (sse2_unpckhpd_exp): New expander.  Use
11675         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11676         (sse2_unpcklpd_exp): New expander.  Use
11677         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11678         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
11679         to handle nonimmediate operands.
11680         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
11681         to handle nonimmediate operands.
11682         (*sse2_<plusminus_insn><mode>3): Rename from
11683         sse2_<plusminus_insn><mode>3 insn pattern.
11684         (sse2_<plusminus_insn><mode>3): New expander.  Use
11685         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11686         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
11687         (sse2_umulv2siv2di3): New expander.  Use
11688         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11689         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
11690         (sse4_1_mulv2siv2di3): New expander.  Use
11691         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11692         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
11693         (sse2_pmaddwd): New expander.  Use
11694         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11695         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
11696         (sse2_eq<mode>3): New expander.  Use
11697         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11698         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
11699         (sse4_1_eqv2di3): New expander.  Use
11700         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11701         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
11702         (sse2_uavgv16qi3): New expander.  Use
11703         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11704         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
11705         (sse2_uavgv16qi3): New expander.  Use
11706         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11707         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
11708         (sse2_uavgv8hi3): New expander.  Use
11709         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11710         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
11711         (ssse3_pmulhrswv8hi3): New expander.  Use
11712         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11713         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
11714         (ssse3_pmulhrswv4hi3): New expander.  Use
11715         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11716
11717         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
11718         (<sse>_vmmul<mode>3): Ditto.
11719         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
11720         (divv2df3): Ditto.
11721         (ssse3_pmaddubsw128): Use register_operand for operand 1.
11722         (ssse3_pmaddubsw): Ditto.
11723
11724         * config/i386/i386.c (struct_builtin_description)
11725         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
11726         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
11727         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
11728         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
11729         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
11730         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
11731         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
11732         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
11733         (ix86_fixup_binary_operands): Assert that src1
11734         and src2 must have the same mode when swapped.
11735         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
11736         and ix86_binary_operator_ok.  Do not force operands in registers
11737         when optimizing.
11738
11739 2008-05-07  Jan Hubicka  <jh@suse.cz>
11740
11741         * cgraph.c (dump_cgraph_node): Update.
11742         * cgraph.h (cgraph_local_info): Break out inline summary.
11743         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
11744         hook.
11745         * ipa-inline (inline_summary): New accestor function.
11746         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
11747         cgraph_decide_inlining, compute_inline_parameters): Update.
11748         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
11749
11750 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
11751
11752         Cleanup ColdFire scheduling support and add V4 pipeline model.
11753
11754         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
11755         (define_attr cpu): Add cfv4 value.
11756         (define_attr type, define_attr type1): Merge into a single 'type'
11757         attribute.  Update all uses.
11758         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
11759         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
11760         Update all uses.
11761         (define_attr opx_mem, define_attr opy_mem): Remove.
11762         (define_attr op_mem): Clean up, update comment.
11763         (define_attr size): Use specific values instead of general int.
11764         (define_attr guess, define_attr split): Remove.  Update all uses.
11765         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
11766         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
11767         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
11768         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
11769         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
11770         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
11771         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
11772         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
11773         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
11774         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
11775         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
11776         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
11777         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
11778         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
11779         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
11780         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
11781         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
11782         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
11783         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
11784         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
11785         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
11786         Update or set attributes.
11787         (stack_tie): New fake instruction.
11788
11789         * config/m68k/m68k.h (TUNE_CFV4): New macro.
11790         (m68k_sched_attr_size): Update declaration.
11791         (m68k_sched_attr_type2): Remove.
11792         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
11793         Declare new bypass predicates.
11794
11795         * config/m68k/m68k.c (m68k_sched_issue_rate,
11796         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
11797         implementations.
11798         (TARGET_SCHED_ISSUE_RATE,
11799         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
11800         (override_options): Handle scheduling for ColdFire V4 core.
11801         (m68k_expand_prologue): Emit stack_tie.
11802         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
11803         'OP_TYPE_FPN'.  Update all uses.
11804         (sched_guess_p): Remove.
11805         (sched_address_type): Handle symbolic addresses.
11806         (sched_get_operand): New static function.
11807         (sched_operand_type): Merge into sched_attr_op_type.
11808         (sched_attr_op_type): Handle FP registers, handle quick constants,
11809         update.
11810         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
11811         (m68k_sched_attr_size): Update.  Move logic to ...
11812         (sched_get_attr_size_int): New static function.
11813         (sched_get_opxy_mem_type): New static function.
11814         (m68k_sched_attr_op_mem): Update.
11815         (m68k_sched_attr_type2): Remove.
11816         (sched_cfv4_bypass_data): New static variable.
11817         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
11818         (m68k_sched_issue_rate): Implement scheduler hook.
11819         (struct _sched_ib: enabled_p): New field.
11820         (m68k_sched_variable_issue): Update.  Handle V4.
11821         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
11822         sched_dump_class_func_t, sched_dump_split_class,
11823         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
11824         sched_dump_dfa_class, m68k_sched_dump): Remove.
11825         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
11826         hook.
11827         (m68k_sched_init_global): Remove statisctics dumping, introduce
11828         sanity check that all instructions have pipeline reservations.  Handle
11829         ColdFire V4 core.
11830         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
11831         Handle ColdFire V4 core.
11832         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
11833         New static functions.
11834         (m68k_sched_address_bypass_p): New bypass predicate.
11835         (sched_get_indexed_address_scale): New static function.
11836         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
11837
11838         * cf.md: Update comments.
11839         (define_attr type2): Remove.  Use 'type' attribute instead.
11840         Update all uses.
11841         (cf_ib): Rename to cfv123_ib.  Update all uses.
11842         (cf_oep): Rename to cfv123_oep.  Update all uses.
11843         (cf_chr): Rename to cfv123_chr.  Update all uses.
11844         (cf_mem): Rename to cfv123_mem.  Update all uses.
11845         (cf_mac): Move to more appropriate place.
11846         (cfv123_guess): New automaton and cpu_unit.
11847         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
11848         Update uses of 'size' attribute.  Handle before reload scheduling.
11849         (cfv123_guess): New dummy reservation for unhandled instructions.
11850         (cfv4_*): Pipeline description of ColdFire V4 core.
11851         (ignore): New reservation to handle 'ignore' type.
11852
11853 2008-05-07  Ian Lance Taylor  <iant@google.com>
11854
11855         PR middle-end/36013
11856         * gimplify.c (find_single_pointer_decl_1): Don't look through
11857         indirections.
11858         (find_single_pointer_decl): Adjust comments.
11859
11860 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
11861
11862         PR middle-end/36137
11863         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
11864         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
11865
11866         PR middle-end/36106
11867         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
11868         integral type rather than floating point, then VIEW_CONVERT_EXPR
11869         to the floating point type.
11870
11871 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
11872
11873         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
11874         TFmode op0 to register.
11875
11876 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
11877
11878         * c-decl.c (grokdeclarator): Comment typo.
11879
11880 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
11881
11882         * tree-flow.h: Remove prototype for computed_goto_p.
11883         * tree-cfg.c (computed_goto_p): Make static.
11884
11885 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
11886
11887         PR target/35657
11888         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
11889         (contains_aligned_value_p): This.  Handle _Decimal128.
11890         (ix86_function_arg_boundary): Only align _Decimal128 to its
11891         natural boundary and handle it properly.
11892
11893 2008-05-06  Martin Jambor  <mjambor@suse.cz>
11894
11895         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
11896         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
11897         (ipcp_method_set_orig_node): Removed.
11898         (ipcp_cval_get_cvalue_type): Removed.
11899         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
11900         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
11901         (ipcp_cval_set_cvalue_type): Removed.
11902         (ipcp_cval_get_cvalue): Removed.
11903         (ipcp_cval_set_cvalue): Removed.
11904         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
11905         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
11906         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
11907         (ipcp_cval_meet): Renamed to ipa_lattice_meet
11908         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
11909         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
11910         (ipcp_get_ith_lattice): Changed parameters.
11911         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
11912         (ipcp_lattice_from_jfunc): Changed parameters.
11913         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
11914         (ipcp_method_cval_print): Added temporary variable info.
11915         (ipcp_redirect): Removed already unused local variable caller.
11916         (ipcp_redirect): New temporary variable orig_callee_info
11917         (ipcp_redirect): Removed newly unused local variable callee.
11918         (ipcp_redirect): Removed (a bit confusing) local variable type.
11919         (ipcp_insert_stage): Added local variable info.
11920         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
11921         renamed too
11922         (ipcp_formal_create): Removed.
11923         (ipcp_method_cval_set): Removed.
11924         (ipcp_propagate_stage): Renamed lattice variables.
11925         (ipcp_method_cval_set_cvalue_type): Removed.
11926         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
11927         (ipcp_print_all_lattices): Changed printed strings to refer to
11928         lattices rather than cvals.
11929         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
11930         (ipcp_propagate_const): Changed formal parameters.
11931         (build_const_val): Changed formal parameters.
11932         (ipcp_insert_stage): Removed useless variable cvalue
11933         (build_const_val): Changed formal parameters.
11934         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
11935         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
11936         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
11937         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
11938         (ipcp_print_func_profile_counts): Changed string from "method" to
11939         "function"
11940         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
11941         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
11942         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
11943         (ipcp_structures_print): Renamed to ipcp_print_all_structures
11944         (ipcp_profile_print): Renamed to ipcp_print_profile_data
11945         (ipcp_lat_is_const): Changed parameters and made inline.
11946         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
11947         (ipcp_redirect): Renamed to ipcp_need_redirect_p
11948         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
11949         the predicate condition directly
11950         (ipcp_propagate_stage): Added local variable args. Removed local
11951         variable callee.  (Both are mere code simplifications.)
11952         (ipcp_method_dont_insert_const): Renamed to
11953         ipcp_node_not_modifiable_p.
11954         (ipcp_node_not_modifiable_p): Made inline.
11955         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
11956         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
11957         (ipcp_print_all_lattices): Removed variable cvalue
11958         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
11959         Updated comments.
11960
11961 2008-05-06  Olivier Hainque  <hainque@adacore.com>
11962
11963         * tree-sra.c (try_instantiate_multiple_fields): Early return
11964         if field has POINTER_TYPE.
11965
11966 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
11967
11968         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
11969         by using 'q' specifier for instruction.
11970         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
11971
11972 2008-05-06  Anatoly Sokolov <aesok@post.ru>
11973
11974         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
11975         Change mode of zero_extract from QImode to HImode.
11976         (sign bit tests peepholes): (Ditto.).
11977
11978 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
11979
11980         * config/i386/mmx.md: Remove double backslashes from asm templates.
11981         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
11982         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
11983         to handle nonimmediate operands.
11984         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
11985         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
11986         to handle nonimmediate operands.
11987         (*mmx_<code>v2sf3_finite): New insn pattern.
11988         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
11989         (mmx_<code>v2sf3): New expander.  Use
11990         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11991         (mmx_<plusminus_insn><mode>3): New expander.  Use
11992         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11993         (*mmx_<plusminus_insn><mode>3): New insn pattern.
11994         (mmx_add<mode>3): Removed.
11995         (mmx_ssadd<mode>3): Ditto.
11996         (mmx_usadd<mode>3): Ditto.
11997         (mmx_sub<mode>3): Ditto.
11998         (mmx_sssub<mode>3): Ditto.
11999         (mmx_ussub<mode>3): Ditto.
12000         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
12001         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
12002         to handle nonimmediate operands.
12003         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
12004         insn pattern.
12005         (mmx_smulv4hi3_highpart): New expander.  Use
12006         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12007         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
12008         insn pattern.
12009         (mmx_umulv4hi3_highpart): New expander.  Use
12010         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12011         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
12012         (mmx_<code>v4hi3): New expander.  Use
12013         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12014         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
12015         (mmx_<code>v8qi3): New expander.  Use
12016         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12017         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
12018         (mmx_<code><mode>3): New expander.  Use
12019         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12020
12021 2008-05-05  Jan Hubicka  <jh@suse.cz>
12022
12023         PR tree-optimization/36118
12024         * passes.c (pass_init_dump_file): Fix dump header.
12025
12026 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12027
12028         PR middle-end/36141
12029         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
12030         VCE for function decls.
12031
12032 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
12033
12034         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
12035
12036 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
12037
12038         * config/i386/i386.md (sat_plusminus): New.
12039         (plusminus_insn): Likewise.
12040         (plusminus_mnemonic): Likewise.
12041         (addsub): Removed.
12042         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
12043         (*<addsub><mode>3_cc_overflow): Renamed to ...
12044         (*<plusminus_insn><mode>3_cc_overflow): This.
12045         (*<addsub>si3_zext_cc_overflow): Renamed to ...
12046         (*<plusminus_insn>si3_zext_cc_overflow): This.
12047
12048         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
12049         (<plusminus_insn><mode>3): This.
12050         (*<addsub><mode>3): Renamed to ...
12051         (*<plusminus_insn><mode>3): This.
12052         (<sse>_vm<addsub><mode>3): Renamed to ...
12053         (<sse>_vm<plusminus_insn><mode>3): This.
12054         (sse3_h<addsub>v4sf3): Renamed to ...
12055         (sse3_h<plusminus_insn>v4sf3): This.
12056         (sse3_h<addsub>v2df3): Renamed to ...
12057         (sse3_h<plusminus_insn>v2df3): This.
12058         (<plusminus_insn><mode>3): New.
12059         (*<plusminus_insn><mode>3): Likewise.
12060         (sse2_<plusminus_insn><mode>3): Likewise.
12061         (add<mode>): Removed.
12062         (*add<mode>3): Likewise.
12063         (sse2_ssadd<mode>3): Likewise.
12064         (sse2_usadd<mode>3): Likewise.
12065         (sub<mode>3): Likewise.
12066         (*sub<mode>3): Likewise.
12067         (sse2_sssub<mode>3): Likewise.
12068         (sse2_ussub<mode>3): Likewise.
12069
12070 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
12071
12072         * gthr-single.h: Add in required interface elements as per gthr.h.
12073         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
12074         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
12075         Generalize UNUSED macro.
12076         (__gthread_once): Add.
12077         (__gthread_key_create): Add.
12078         (__gthread_key_delete): Add.
12079         (__gthread_getspecific): Add.
12080         (__gthread_setspecific): Add.
12081
12082 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
12083
12084         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
12085         the same size types for the indirect reference on the rhs, then
12086         create a VCE.
12087
12088 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
12089
12090         * config/i386/i386.md
12091         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
12092         one insn template instead of template series.
12093         (*xordi_1_rex64): Ditto.
12094         (*xordi_2_rex64): Ditto.
12095
12096 2008-05-05  Ira Rosen  <irar@il.ibm.com>
12097
12098         PR tree-optimization/36119
12099         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
12100         in case of SLP.
12101
12102 2008-06-04  Jan Hubicka  <jh@suse.cz>
12103
12104         tree-optimization/36100
12105         * tree-pass.h (pass_O0_always_inline): Declare.
12106         * ipa-inline.c (inline_transform): Remove dead code.
12107         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
12108         pass_O0_always_inline): New.
12109         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
12110
12111 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
12112
12113         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
12114         mnemonic in this_param move for TARGET_64BIT.
12115
12116 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
12117
12118         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
12119         (*strmovsi_rex_1): Ditto.
12120         (*strsetsi_1): Ditto.
12121         (*strsetsi_rex_1): Ditto.
12122
12123         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
12124         adddicc expanders using SWI mode iterator.
12125
12126 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
12127
12128         PR target/36121
12129         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
12130         argument handling.
12131
12132 2008-05-04  David S. Miller  <davem@davemloft.net>
12133
12134         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
12135         (sparc*-*-linux*): Use linux.h in tm_file.
12136         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
12137         compiler defaulting to 32-bit.
12138         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
12139         no longer needed.
12140         * config/sparc/linux.h: Remove definitions now obtained
12141         properly from linux.h
12142         * config/sparc/linux64.h: Likewise.
12143         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
12144         don't want this setting for 32-bit builds in a biarch compiler.
12145         * doc/install.texi: Add sparc-linux to list of targets
12146         supporting --enable-targets=all.
12147
12148 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
12149
12150         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
12151
12152 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
12153
12154         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
12155         after V4SI_FTYPE_V8HI.
12156         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
12157         case V4SI_FTYPE_V2DF.
12158
12159 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
12160
12161         * doc/invoke.texi (max-flow-memory-locations): Removed.
12162         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
12163
12164 2008-05-03  Richard Guenther  <rguenther@suse.de>
12165
12166         PR middle-end/34973
12167         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
12168
12169 2008-05-02  David S. Miller  <davem@davemloft.net>
12170
12171         * config.gcc (need_64bit_hwint): Document libcpp dependency.
12172
12173 2008-05-02  Simon Baldwin <simonb@google.com>
12174
12175         PR bootstrap/36108
12176         * c-common.h (warn_array_subscript_range): Removed.
12177         * c-common.c (warn_array_subscript_range): Ditto.
12178         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
12179         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
12180
12181 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
12182
12183         * config/i386/i386.c (ix86_special_builtin_type): New.
12184         (bdesc_special_args): Likewise.
12185         (ix86_expand_special_args_builtin): Likewise.
12186         (ix86_init_mmx_sse_builtins): Updated.
12187         (ix86_expand_builtin): Updated.
12188         (ix86_expand_store_builtin): Removed.
12189         (ix86_expand_unop_builtin): Likewise.
12190
12191         * config/i386/mm3dnow.h (__v2sf): Moved to ...
12192         * config/i386/mmintrin.h (__v2sf): Here.
12193
12194         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
12195         const __v2sf.
12196         (_mm_loadl_pi): Likewise.
12197         (_mm_storeh_pi): Replace __v2si with __v2sf.
12198         (_mm_storel_pi): Likewise.
12199
12200         * doc/extend.texi: Correct __builtin_ia32_loadhps,
12201         __builtin_ia32_loadlps, __builtin_ia32_storehps,
12202         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
12203         __builtin_ia32_loadlpd.
12204
12205 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
12206
12207         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
12208         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
12209         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
12210         (ix86_init_mmx_sse_builtins): Updated.
12211         (ix86_expand_args_builtin): Likewise.
12212         (ix86_expand_builtin): Likewise.
12213         (ix86_expand_unop1_builtin): Renamed to ...
12214         (ix86_expand_unop_vec_merge_builtin): This.
12215
12216 2008-05-01  Jan Hubicka  <jh@suse.cz>
12217
12218         PR bootstrap/36100
12219         * ipa-inline.c (inline_generate_summary): Make static.
12220         (inline_transform): Do not call inlining at -O0; make static.
12221         * passes.c (execute_todo): Add sanity check.
12222         (execute_one_ipa_transform_pass): Execute proper flags.
12223
12224 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
12225
12226         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
12227         (DECL_NONADDRESSABLE_P): Likewise.
12228         * alias.c (record_component_aliases): Fix comment.
12229
12230 2008-05-01  Simon Baldwin <simonb@google.com>
12231
12232         * c-common.h (warn_array_subscript_range): New function.
12233         * c-common.c (warn_array_subscript_range): Ditto.
12234         * tree-vrp.c (check_array_ref): Corrected code to agree with
12235         comment, ignoring only arrays of size 0 or size 1.
12236         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
12237
12238 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
12239
12240         * config/i386/i386.c (ix86_builtin_type): Replace
12241         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
12242         (bdesc_args): Updated.
12243         (ix86_init_mmx_sse_builtins): Likewise.
12244         (ix86_expand_args_builtin): Likewise.
12245
12246         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
12247         with __v1di.
12248
12249         * doc/extend.texi: Correct __builtin_ia32_palignr.
12250
12251 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
12252
12253         PR target/36095
12254         * config/i386/i386.c (bdesc_crc32): Removed.
12255         (ix86_expand_crc32): Likewise.
12256         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
12257         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
12258         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
12259         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
12260         UINT_FTYPE_UINT_UCHAR.
12261         (bdesc_args): Updated. Add crc32 builtins.
12262         (ix86_init_mmx_sse_builtins): Updated.
12263         (ix86_expand_args_builtin): Updated to support subreg.
12264
12265         * doc/extend.texi: Correct __builtin_ia32_crc32di.
12266
12267 2008-05-01  Jan Hubicka  <jh@suse.cz>
12268
12269         * tree-pass.h (opt_pass): Add IPA_PASS.
12270         (varpool_node, cgraph_node): Forward declare.
12271         (ipa_opt_pass): Define.
12272         (pass_ipa_inline): Turn into ipa_opt_pass.
12273         (pass_apply_inline): Remove.
12274         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
12275         (apply_inline): Turn into ....
12276         (inline_transform): ... this one.
12277         (inline_generate_summary): New function.
12278         (pass_apply_inline): Remove.
12279         * function.h (ipa_opt_pass): Forward declare structure; typedef;
12280         vector.
12281         (struct function): Add ipa_transforms_to_apply.
12282         * passes.c (register_one_dump_file): Work on IPA_PASS.
12283         (init_optimization_passes): Remove pass_inline_parameters and
12284         pass_apply_inline.
12285         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
12286         (execute_one_pass) ... here; apply transforms when possible.
12287         (add_ipa_transform_pass, execute_ipa_summary_asses,
12288         execute_one_ipa_transform_pass): New.
12289         (execute_ipa_pass_list): Update for IPA_PASS type.
12290
12291 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
12292
12293         * config/i386/i386.c (ix86_builtin_type): Add
12294         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
12295         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
12296         (bdesc_args): Add SSE4a builtins.
12297         (ix86_init_mmx_sse_builtins): Updated.
12298         (ix86_expand_args_builtin): Likewise.
12299         (ix86_expand_builtin): Likewise.
12300
12301 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
12302
12303         * config/i386/i386.c (ix86_builtin_type): Add
12304         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
12305         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
12306         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
12307         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
12308         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
12309         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
12310         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
12311         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
12312         and DI_FTYPE_DI_DI_INT.
12313         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
12314         (ix86_init_mmx_sse_builtins): Updated.
12315         (ix86_expand_args_builtin): Likewise.
12316         (ix86_expand_builtin): Likewise.
12317         (ix86_expand_binop_imm_builtin): Removed.
12318
12319         * doc/extend.texi: Correct __builtin_ia32_palignr128.
12320
12321 2008-04-30  Richard Guenther  <rguenther@suse.de>
12322
12323         PR tree-optimization/32921
12324         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
12325
12326 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
12327
12328         * config/arm/arm.c (arm_unwind_emit): Use
12329         crtl->all_throwers_are_sibcalls instead of
12330         cfun->all_throwers_are_sibcalls.
12331         (arm_output_fn_unwind): Likewise.
12332         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
12333         instead of cfun->uses_pic_offset_table.
12334         (frv_expand_prologue): Likewise.
12335         (frv_frame_pointer_required): Likewise.
12336         (frv_expand_fdpic_call): Likewise.
12337         (frv_emit_movsi): Likewise.
12338         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
12339         cfun->returns_pcc_struct instead of
12340         current_function_returns_pcc_struct.
12341         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
12342         instead of cfun->calls_eh_return.
12343         (m32c_pushm_popm): Likewise.
12344         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
12345         "extern" declaration.
12346
12347 2008-04-30  Richard Guenther  <rguenther@suse.de>
12348
12349         PR tree-optimization/21636
12350         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
12351         constant address.
12352         (evaluate_stmt): Print the likely value.
12353         (ccp_visit_stmt): Avoid excessive vertical spacing.
12354
12355 2008-04-30  Rafael Espindola  <espindola@google.com>
12356
12357         * builtins.c (fold_call_expr): Return realret.
12358         * tree-ssa-threadedge.c
12359         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
12360         __builtin_object_size.
12361
12362 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
12363
12364         * gcc.c (wrapper_string): New variable.
12365         (insert_wrapper): New function.
12366         (execute): New option -wrapper.
12367         * doc/invoke.texi (Overall Options): New driver option -wrapper.
12368
12369 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
12370
12371         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
12372         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
12373         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
12374         from...
12375         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
12376         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
12377         config/rs6000/e500crtres64gprctr.asm,
12378         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
12379         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
12380         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
12381         config/rs6000/e500crtsav64gprctr.asm,
12382         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
12383         config/rs6000/e500crtsavg64gprctr.asm: New files.
12384         * config/rs6000/t-ppccomm: Add build rules for new files.
12385         (LIB2FUNCS_STATIC_EXTRA): Add new files.
12386         * config/rs6000/t-netbsd: Add build rules for new files.
12387         (LIB2FUNCS_STATIC_EXTRA): New variable.
12388         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
12389         (CRTSAVRES_DEFAULT_SPEC): Likewise.
12390         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
12391
12392 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
12393
12394         * config/i386/i386.c (ix86_builtin_type): Add
12395         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
12396         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
12397         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
12398         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
12399         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
12400         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
12401         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
12402         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
12403         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
12404         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
12405         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
12406         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
12407         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
12408         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
12409         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
12410         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
12411         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
12412         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
12413         V1DI_FTYPE_V2SI_V2SI.
12414         (bdesc_2arg): Moved to ...
12415         (bdesc_args): Here.
12416         (ix86_init_mmx_sse_builtins): Updated.
12417         (ix86_expand_args_builtin): Updated.  Take a pointer
12418         to const struct builtin_description.  Handle comparison
12419         builtin functions.
12420         (ix86_expand_sse_compare): Take a new argument for swapping operands.
12421         (ix86_expand_builtin): Updated.
12422
12423         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
12424         (ssse3_pmaddubsw128): This.
12425         (ssse3_pmaddubswv4hi3): Renamed to ...
12426         (ssse3_pmaddubsw): This.
12427
12428         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
12429         (__builtin_ia32_packssdw128): Likewise.
12430         (__builtin_ia32_packuswb128): Likewise.
12431         (__builtin_ia32_pmaddubsw): Likewise.
12432         (__builtin_ia32_pmaddubsw128): Likewise.
12433
12434 2008-04-30  Richard Guenther  <rguenther@suse.de>
12435
12436         PR tree-optimization/14847
12437         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
12438         (recognize_bits_test): Use it.
12439         (recognize_single_bit_test): Likewise.
12440
12441 2008-04-30  Martin Jambor  <mjambor@suse.cz>
12442
12443         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
12444         instead of setting number of formal parameters to zero.
12445         (ipcp_init_stage): Do not set the number of actual parameters to zero
12446         either.
12447         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
12448         which are called with variable number of arguments.
12449         (ipcp_insert_stage): Explicitely skipping all nodes which are
12450         called with variable number of arguments.
12451         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
12452         number of parameters.
12453
12454         * ipa-prop.h (struct ipa_node_params): Added flag
12455         called_with_var_arguments
12456         (ipa_set_param_count): Added.  Changed sole setter to use it.
12457         (ipa_get_param_count): Added.  All readers of param_count
12458         converted to use it instead.
12459         (ipa_set_called_with_variable_arg): Added.
12460         (ipa_is_called_with_var_arguments): Added.
12461         (ipa_get_ith_param): Added.  All readers of param_decls converted
12462         to use it instead.
12463         (ipa_set_cs_argument_count): Added, sole writer to argument_count
12464         changed to use it.
12465         (ipa_get_cs_argument_count): Added, all readers of argument_count
12466         changed to cal it.
12467         (ipa_get_ith_jump_func): Added. Accessors of jump values changed
12468         to use it.
12469
12470         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
12471         (struct ipcp_lattice): Renamed cval_type to type
12472         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
12473
12474         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
12475         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
12476         (ipcp_insert_stage): Changed the type of variable cvalue to tree
12477         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
12478         (build_const_val): Changed the type of parameter cvalue to tree
12479         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
12480         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
12481
12482         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
12483         constant
12484
12485         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
12486         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
12487         (ipa_add_method): Renamed to ipa_push_func_to_list
12488         (ipa_remove_method): Renamed to ipa_pop_func_from_list
12489         (ipa_callsite_param_count): Removed.
12490         (ipa_callsite_param_count_set): Removed.
12491         (ipa_callsite_param): Removed.
12492         (ipa_callsite_callee): Removed.
12493         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
12494         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
12495         (ipa_method_formal_count): Removed.
12496         (ipa_method_formal_count_set): Removed.
12497         (ipa_method_get_tree): Removed.
12498         (ipa_method_tree_map_create): Removed.
12499         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
12500         (ipa_create_param_decls_array): Creates the array itself
12501         (ipa_create_param_decls_array): Temporary variable info instead of
12502         a few dereferences.
12503         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
12504         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
12505         (get_type): Removed.
12506         (ipa_jf_get_info_type): Removed.
12507         (ipa_node_create): Renamed to ipa_create_node_params
12508         (ipa_free): Renamed to ipa_free_all_node_params
12509         (ipa_nodes_create): Renamed to ipa_create_all_node_params
12510         (ipa_edges_create): Renamed to ipa_create_all_edge_args
12511         (ipa_edges_free): Renamed to ipa_free_all_edge_args
12512         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
12513         (ipa_free_all_node_params): Deallocation to jump_functions moved to
12514         ipa_free_all_edge_args
12515         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
12516         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
12517         (ipa_create_methodlist_node): Removed.
12518         (ipa_methodlist_method): Removed.
12519         (ipa_methodlist_method_set): Removed.
12520         (ipa_methodlist_next_method): Removed.
12521         (ipa_methodlist_next_method_set): Removed.
12522         (ipa_method_is_modified): Removed.
12523         (ipa_method_modify_create): Removed.
12524         (ipa_method_modify_init): Temporary variable info instead of a few
12525         dereferences.
12526         (ipa_detect_param_modifications): Temporary variable info instead of
12527         a few dereferences.
12528         (ipa_compute_jump_functions): Temporary variable info instead of
12529         a few dereferences.
12530         (ipa_method_modify_set): Removed.
12531         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
12532         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
12533         than craph_node as the first parameter.
12534         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
12535         (ipa_method_modify_init): Removed.
12536         (ipa_compute_jump_functions): Added a temp variable instead of
12537         repeatadly dereferencing the cgraph_edge.aux pointer
12538         (ipa_callsite_param_set_type): Removed.
12539         (ipa_compute_jump_functions): i renamed to index and moved to
12540         an inner block
12541         (ipa_callsite_param_set_info_type_formal): Removed.
12542         (ipa_callsite_param_set_info_type): Removed.
12543         (ipa_callsite_param_map_create): Removed.
12544         (ipa_callsite_tree): Removed.
12545         (ipa_callsite_caller): Removed.
12546         (ipa_pop_func_from_list): return_method removed to return_func
12547
12548         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
12549         prefixed all values with IPA_. Changed all users.
12550         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
12551         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
12552         and FORMAL_IPATYPE IPA_PASS_THROUGH.
12553         (union parameter_info): Renamed to jump_func_value.
12554         (union jump_func_value): Renamed value to constant
12555         (struct ipa_jump_func): Renamed info_type to value
12556         (struct ipa_node): Renamed to ipa_node_params
12557         (struct ipa_node_params): Renamed ipa_arg_num to param_count
12558         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
12559         (struct ipa_node_params): Renamed ipa_mod to modified_flags
12560         (struct ipa_edge): Renamed to ipa_edge_args
12561         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
12562         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
12563         (struct ipa_methodlist): Renamed to ipa_func_list
12564         (struct ipa_func_list): method_p renamed to node, next_method
12565         renamed to next
12566         (ipa_methodlist_p): Removed, switched all users to struct pointer
12567         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
12568
12569 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
12570
12571         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
12572         (rs6000_emit_epilogue): Use backchain to restore only when we
12573         have a large frame.  Make use of frame pointer to restore if we
12574         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
12575
12576 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
12577
12578         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
12579         Add mode to zero_extract.
12580         (sign bit tests peepholes): (Ditto.).
12581
12582 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
12583
12584         * config/i386/i386.c (ix86_builtins): Replace Prescott New
12585         Instructions in comments with SSE3.
12586         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
12587         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
12588         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
12589         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
12590         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
12591         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
12592         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
12593         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
12594         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
12595         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
12596         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
12597         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
12598         (bdesc_sse_args): Renamed to ...
12599         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
12600         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
12601         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
12602         IX86_BUILTIN_FABSQ.
12603         (bdesc_1arg): Moved to ...
12604         (bdesc_args): Here.
12605         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
12606         Instructions in comments with SSE3.
12607         (ix86_expand_sse_operands_builtin): Renamed to ...
12608         (ix86_expand_args_builtin): This.  Updated.
12609         (ix86_expand_unop1_builtin): Update comments.
12610         (ix86_expand_builtin): Updated.
12611
12612 2008-04-29  Richard Guenther  <rguenther@suse.de>
12613
12614         PR tree-optimization/36078
12615         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
12616         Update virtual SSA form after cleaning up the CFG.
12617
12618 2008-04-29  Richard Guenther  <rguenther@suse.de>
12619
12620         PR middle-end/15255
12621         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
12622
12623 2008-04-29  Richard Guenther  <rguenther@suse.de>
12624
12625         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
12626         (compute_may_aliases): Do not call finalize_ref_all_pointers.
12627         (compute_flow_insensitive_aliasing): Do not treat
12628         PTR_IS_REF_ALL pointers special.
12629         (get_smt_for): Likewise.
12630         (may_alias_p): Re-structure.
12631         (is_escape_site): A ref-all pointer conversion is not an escape site.
12632         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
12633         PTR_IS_REF_ALL pointers special.
12634         * tree-ssa-structalias.h (struct alias_info): Remove
12635         ref_all_symbol_mem_tag field.
12636         (PTR_IS_REF_ALL): Remove.
12637
12638 2008-04-29  Richard Guenther  <rguenther@suse.de>
12639
12640         PR middle-end/36077
12641         * fold-const.c (extract_muldiv_1): In combining division constants
12642         make sure to never overflow.
12643
12644 2008-04-29  Nick Clifton  <nickc@redhat.com>
12645
12646         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
12647
12648 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12649
12650         PR bootstrap/35169
12651         * optc-gen.awk: Work around HP-UX/IA awk bug.
12652
12653 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
12654
12655         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
12656         2008-04-25 commit.
12657
12658 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
12659
12660         PR target/36073
12661         * config/i386/i386.md
12662         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
12663         Change operand 1 predicate to nonimmediate_operand.
12664
12665 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
12666
12667         PR debug/36060
12668         * dwarf2out.c (struct die_struct): Mark as chain_circular through
12669         die_sub field.
12670         * gengtype.c (walk_type, write_func_for_structure): Handle
12671         chain_circular.
12672         * doc/gty.texi: Document chain_circular.
12673
12674 2008-04-28  Richard Guenther  <rguenther@suse.de>
12675
12676         PR tree-optimization/36066
12677         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
12678         SCEV and loop.
12679
12680 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
12681
12682         PR target/36064
12683         * config/i386/i386.md
12684         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
12685         Use match_scratch instead of match_operand for operands 3 and 4.
12686
12687 2008-04-27  Richard Guenther  <rguenther@suse.de>
12688
12689         PR tree-optimization/18754
12690         PR tree-optimization/34223
12691         * tree-pass.h (pass_complete_unrolli): Declare.
12692         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
12693         loop size before and after unconditionally of UL_NO_GROWTH in effect.
12694         Rewrite loop into loop closed SSA form if it is not already.
12695         (tree_unroll_loops_completely): Re-structure to iterate over
12696         innermost loops with intermediate CFG cleanups.
12697         Unroll outermost loops only if requested or the code does not grow
12698         doing so.
12699         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
12700         loops are available.
12701         (tree_vectorize): Instead do so here.
12702         (tree_complete_unroll): Also unroll outermost loops.
12703         (tree_complete_unroll_inner): New function.
12704         (gate_tree_complete_unroll_inner): Likewise.
12705         (pass_complete_unrolli): New pass.
12706         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
12707         uses outside of the loop.
12708         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
12709         form if it is available.
12710         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
12711         * passes.c (init_optimization_passes): Schedule complete inner
12712         loop unrolling pass before the first CCP pass after final inlining.
12713
12714 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
12715
12716         * targhooks.h (default_emutls_var_fields,
12717         default_emutls_var_init): Declare.
12718         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
12719         * target.h (struct gcc_target): Add struct emutls member.
12720         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
12721         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
12722         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
12723         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
12724         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
12725         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
12726         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
12727         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
12728         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
12729         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
12730         emit debug information.
12731         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
12732         * varasm.c: Include targhooks.h.
12733         (emutls_object_section, emutls_tmpl_section): New.
12734         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
12735         (EMUTLS_SEPARATOR): New.
12736         (prefix_name): New.
12737         (get_emutls_object_name): New.
12738         (default_emutls_var_fields): New, broken out of ...
12739         (get_emutls_object_type): ... here.  Adjust to use target hooks.
12740         (get_emutls_init_templ_addr): Adjust to use target hooks.
12741         (emutls_decl): Adjust to use target hooks.
12742         (emutls_finish): Likewise.
12743         (default_emutls_var_init): New, broken out of ...
12744         (assemble_variable): ... here.  Adjust to use target hooks.
12745         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
12746         SECCAT_EMUTLS_TMPL.
12747         * c-common.c (handle_section_attribute): Prevent overriding
12748         sections for emulated tls with special sections.
12749         * config/i386/i386.c (x86_64_elf_select_section): Add
12750         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
12751         (x86_64_elf_unique_section): Likewise.
12752         * config/vxworks.c: Include tree.h.
12753         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
12754         (vxworks_override_options): Set TLS scheme.
12755         * doc/tm.texi (Emulated TLS): New node.
12756
12757 2008-04-26  Simon Baldwin <simonb@google.com>
12758
12759         PR c/35652
12760         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
12761         with propagated string constants.
12762
12763 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
12764
12765         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
12766         constraint for operand 2 when operand 0 is memory operand.
12767         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
12768         operand 0 is memory operand.
12769         (fix_trunc<mode>_i387_with_temp): Ditto.
12770         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
12771         operand 2 when operand 1 is memory operand.
12772         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
12773         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
12774         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
12775         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
12776         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
12777         operands 2,3 and 4 when operand 1 is memory operand.
12778         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
12779         is memory operand.
12780         (fistdi2_floor_with_temp): Ditto.
12781         (fist<mode>2_floor_with_temp): Ditto.
12782         (fistdi2_ceil_with_temp): Ditto.
12783         (fist<mode>2_ceil_with_temp): Ditto.
12784         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
12785
12786 2008-04-26  David Daney  <ddaney@avtrex.com>
12787
12788         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
12789         unspec_volitile.
12790         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
12791         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
12792         UNSPEC_UPDATE_GOT_VERSION): Renumber.
12793         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
12794         (compare_and_swap_12): New insn.
12795         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
12796         * config/mips/mips.c (mips_force_binary): New function.
12797         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
12798         (mips_expand_compare_and_swap_12): New function.
12799         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
12800
12801 2008-04-25  Jan Hubicka  <jh@suse.cz>
12802
12803         PR testsuite/35843
12804         * cfgexpand.c (pass_expand): Turn into RTL pass.
12805         * passes.c (execute_one_pass): Do pass typechecking after execution.
12806         * tree-pass.h (pass_expand): Turn into RTL pass.
12807
12808         * function.h (struct rtl_data): Move here fields
12809         accesses_prior_frames, calls_eh_return, saves_all_registers,
12810         has_nonlocal_goto, has_asm_statement, is_thunk,
12811         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
12812         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
12813         arg_pointer_save_area_init from struct function; turn into bool.
12814         (struct function): Move
12815         calls_eh_return, saves_all_registers, has_nonlocal_goto,
12816         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
12817         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
12818         tail_call_emit, arg_pointer_save_area_init
12819         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
12820         (current_function_returns_struct, current_function_returns_pcc_struct,
12821         current_function_calls_setjmp, current_function_calls_alloca,
12822         current_function_accesses_prior_frames,
12823         current_function_calls_eh_return, current_function_is_thunk,
12824         current_function_stdarg, current_function_profile,
12825         current_function_limit_stack, current_function_uses_pic_offset_table,
12826         current_function_uses_const_pool, current_function_has_nonlocal_label,
12827         current_function_saves_all_registers,
12828         current_function_has_nonlocal_goto,
12829         current_function_has_asm_statement): Remove accesor macros.
12830         * ra-conflict.c (global_conflicts): Update.
12831         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
12832         (suitable_for_tail_call_opt_p): Update.
12833         * builtins.c (expand_builtin_return_addr): Update.
12834         (expand_builtin_setjmp_setup): Update.
12835         (expand_builtin_nonlocal_goto): Update.
12836         * final.c (final_start_function): Update.
12837         (profile_function): Update.
12838         (leaf_function_p): Update.
12839         (only_leaf_regs_used): Update.
12840         * df-scan.c (df_get_exit_block_use_set): Update.
12841         * dojump.c (clear_pending_stack_adjust): Update.
12842         * tree-stdarg.c (gate_optimize_stdarg): Update.
12843         * gimple-low.c (lower_function_body): Update.
12844         * global.c (compute_regsets): Update.
12845         (global_alloc): Update.
12846         * dwarf2out.c (dwarf2out_begin_prologue): Update.
12847         * expr.c (expand_assignment): Update.
12848         * dse.c (dse_step0): Update.
12849         (dse_step1): Update.
12850         * c-decl.c (store_parm_decls): Update.
12851         * local-alloc.c (combine_regs): Update.
12852         (find_free_reg): Update.
12853         * function.c (assign_parms_augmented_arg_list): Update.
12854         (assign_parm_find_data_types): Update.
12855         (assign_parms): Update.
12856         (allocate_struct_function): Update.
12857         (expand_function_start): Update.
12858         (expand_function_end): Update.
12859         (get_arg_pointer_save_area): Update.
12860         (thread_prologue_and_epilogue_insns): Update.
12861         (rest_of_match_asm_constraints): Update.
12862         * stor-layout.c (variable_size): Update.
12863         * gcse.c (gcse_main): Update.
12864         (bypass_jumps): Update.
12865         * gimplify.c (gimplify_function_tree): Update.
12866         * calls.c (emit_call_1): Update.
12867         (expand_call): Update.
12868         * bt-load.c (compute_defs_uses_and_gen): Update.
12869         * except.c (sjlj_assign_call_site_values): Update.
12870         (sjlj_emit_function_enter): Update.
12871         (can_throw_external): Update.
12872         (set_nothrow_function_flags): Update.
12873         (expand_builtin_unwind_init): Update.
12874         (expand_eh_return): Update.
12875         (convert_to_eh_region_ranges): Update.
12876         (output_function_exception_table): Update.
12877         * emit-rtl.c (gen_tmp_stack_mem): Update.
12878         * cfgexpand.c (expand_used_vars): Update.
12879         (tree_expand_cfg): Update.
12880         * cfgcleanup.c (rest_of_handle_jump): Update.
12881         * explow.c (allocate_dynamic_stack_space): Update.
12882         * varasm.c (assemble_start_function): Update.
12883         (force_const_mem): Update.
12884         (mark_constant_pool): Update.
12885         * tree-optimize.c (tree_rest_of_compilation): Update.
12886         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
12887         * tree-cfg.c (notice_special_calls): Update.
12888         (is_ctrl_altering_stmt): Update.
12889         (tree_can_make_abnormal_goto): Update.
12890         (tree_purge_dead_abnormal_call_edges): Update.
12891         * config/alpha/predicates.md: Update.
12892         * config/alpha/alpha.c (alpha_sa_mask): Update.
12893         (alpha_sa_size): Update.
12894         (alpha_does_function_need_gp): Update.
12895         (alpha_expand_prologue): Update.
12896         (alpha_start_function): Update.
12897         (alpha_output_function_end_prologue): Update.
12898         (alpha_expand_epilogue): Update.
12899         * config/frv/frv.c (frv_stack_info): Update.
12900         (frv_expand_epilogue): Update.
12901         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
12902         (s390_register_info): Update.
12903         (s390_frame_info): Update.
12904         (s390_init_frame_layout): Update.
12905         (s390_can_eliminate): Update.
12906         (save_gprs): Update.
12907         * config/spu/spu.c (spu_split_immediate): Update.
12908         (need_to_save_reg): Update.
12909         (spu_expand_prologue): Update.
12910         (spu_expand_epilogue): Update.
12911         * config/sparc/sparc.md: Update.
12912         * config/sparc/sparc.c (eligible_for_return_delay): Update.
12913         (sparc_tls_got): Update.
12914         (legitimize_pic_address): Update.
12915         (sparc_emit_call_insn): Update.
12916         (sparc_expand_prologue): Update.
12917         (output_return): Update.
12918         (print_operand): Update.
12919         (sparc_function_ok_for_sibcall): Update.
12920         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
12921         * config/m32r/m32r.md: Update.
12922         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
12923         (m32r_compute_frame_size): Update.
12924         (m32r_expand_prologue): Update.
12925         (m32r_expand_epilogue): Update.
12926         (m32r_legitimize_pic_address): Update.
12927         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
12928         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
12929         * config/i386/i386.c (ix86_frame_pointer_required): Update.
12930         (gen_push): Update.
12931         (ix86_save_reg): Update.
12932         (ix86_compute_frame_layout): Update.
12933         (ix86_expand_prologue): Update.
12934         (ix86_expand_epilogue): Update.
12935         * config/sh/sh.c (output_stack_adjust): Update.
12936         (calc_live_regs): Update.
12937         (sh5_schedule_saves): Update.
12938         (sh_expand_prologue): Update.
12939         (sh_expand_epilogue): Update.
12940         (sh_setup_incoming_varargs): Update.
12941         (sh_allocate_initial_value): Update.
12942         (sh_get_pr_initial_val): Update.
12943         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
12944         * config/sh/sh.md (label:): Update.
12945         * config/avr/avr.c (out_movhi_mr_r): Update.
12946         * config/crx/crx.h (enum): Update.
12947         * config/xtensa/xtensa.h (along): Update.
12948         * config/stormy16/stormy16.c Update.
12949         (xstormy16_compute_stack_layout): Update.
12950         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
12951         (fr30_expand_prologue): Update.
12952         * config/cris/cris.c (cris_conditional_register_usage): Update.
12953         (cris_reg_saved_in_regsave_area): Update.
12954         (cris_initial_frame_pointer_offset): Update.
12955         (cris_simple_epilogue): Update.
12956         (cris_expand_prologue): Update.
12957         (cris_expand_epilogue): Update.
12958         (cris_expand_pic_call_address): Update.
12959         (cris_asm_output_symbol_ref): Update.
12960         (cris_asm_output_label_ref): Update.
12961         * config/cris/cris.md Update.
12962         * config/iq2000/iq2000.c (compute_frame_size): Update.
12963         (iq2000_expand_epilogue): Update.
12964         * config/mt/mt.h (save_direction): Update.
12965         * config/mn10300/mn10300.c (mn10300_function_value): Update.
12966         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
12967         (ia64_secondary_reload_class): Update.
12968         * config/m68k/m68k.c (m68k_save_reg): Update.
12969         (m68k_expand_prologue): Update.
12970         (m68k_expand_epilogue): Update.
12971         (legitimize_pic_address): Update.
12972         * config/rs6000/rs6000.c (rs6000_got_register): Update.
12973         (first_reg_to_save): Update.
12974         (first_altivec_reg_to_save): Update.
12975         (compute_vrsave_mask): Update.
12976         (compute_save_world_info): Update.
12977         (rs6000_stack_info): Update.
12978         (spe_func_has_64bit_regs_p): Update.
12979         (rs6000_ra_ever_killed): Update.
12980         (rs6000_emit_eh_reg_restore): Update.
12981         (rs6000_emit_allocate_stack): Update.
12982         (rs6000_emit_prologue): Update.
12983         (rs6000_emit_epilogue): Update.
12984         (rs6000_output_function_epilogue): Update.
12985         (output_profile_hook): Update.
12986         (rs6000_elf_declare_function_name): Update.
12987         * config/rs6000/rs6000.h (rs6000_args): Update.
12988         * config/rs6000/rs6000.md: Update.
12989         * config/mcore/mcore.c (mcore_expand_prolog): Update.
12990         * config/arc/arc.c (arc_output_function_epilogue): Update.
12991         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
12992         * config/darwin.c (machopic_function_base_name): Update.
12993         * config/score/score3.c (score3_compute_frame_size): Update.
12994         (rpush): Update.
12995         (rpop): Update.
12996         (score3_epilogue): Update.
12997         * config/score/score7.c (score7_compute_frame_size): Update.
12998         (score7_prologue): Update.
12999         (score7_epilogue): Update.
13000         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
13001         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
13002         * config/arm/arm.c (use_return_insn): Update.
13003         (require_pic_register): Update.
13004         (arm_load_pic_register): Update.
13005         (arm_compute_save_reg0_reg12_mask): Update.
13006         (arm_compute_save_reg_mask): Update.
13007         (thumb1_compute_save_reg_mask): Update.
13008         (output_return_instruction): Update.
13009         (arm_output_function_prologue): Update.
13010         (arm_output_epilogue): Update.
13011         (arm_get_frame_offsets): Update.
13012         (arm_expand_prologue): Update.
13013         (thumb_pushpop): Update.
13014         (thumb_exit): Update.
13015         (thumb1_expand_prologue): Update.
13016         (thumb1_expand_epilogue): Update.
13017         (arm_unwind_emit): Update.
13018         (arm_output_fn_unwind): Update.
13019         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
13020         * config/arm/arm.md: Update.
13021         * config/pa/pa.md: Update.
13022         * config/pa/pa.c (legitimize_pic_address): Update.
13023         (compute_frame_size): Update.
13024         (hppa_expand_prologue): Update.
13025         (hppa_expand_epilogue): Update.
13026         (borx_reg_operand): Update.
13027         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
13028         (HARD_REGNO_RENAME_OK): Update.
13029         * config/mips/mips.c (mips_global_pointer): Update.
13030         (mips_save_reg_p): Update.
13031         (mips_compute_frame_info): Update.
13032         (mips_frame_pointer_required): Update.
13033         (mips_expand_prologue): Update.
13034         (mips_expand_epilogue): Update.
13035         (mips_can_use_return_insn): Update.
13036         (mips_reorg_process_insns): Update.
13037         * config/v850/v850.c (compute_register_save_size): Update.
13038         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
13039         * config/mmix/mmix.c (along): Update.
13040         (mmix_expand_epilogue): Update.
13041         * config/bfin/bfin.c (legitimize_pic_address): Update.
13042         (must_save_p): Update.
13043         (stack_frame_needed_p): Update.
13044         (add_to_reg): Update.
13045         (bfin_expand_prologue): Update.
13046         * stmt.c (expand_asm_operands): Update.
13047         * reload1.c (reload): Update.
13048         (init_elim_table): Update.
13049
13050 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
13051
13052         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
13053
13054 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
13055
13056         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
13057         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
13058         (mov<mode>): Removed.
13059         (*movv4sf_internal): Likewise.
13060         (*movv2df_internal): Likewise.
13061
13062 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
13063
13064         * config.gcc (crx-*-elf): Remove deprecation.
13065
13066 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
13067
13068         * config/i386/cygming-crtend.c (register_frame_ctor): Register
13069         __gcc_deregister_frame with atexit.
13070         (deregister_frame_dtor): Remove.
13071
13072 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
13073             Nathan Sidwell  <nathan@codesourcery.com>
13074
13075         * config/rs6000/rs6000.opt (mspe): Remove Var property.
13076         (misel): Likewise.
13077         * config/rs6000/rs6000.h (rs6000_spe): Declare.
13078         (rs6000_isel): Likewise.
13079         * config/rs6000/rs6000.c (rs6000_spe): New variable.
13080         (rs6000_isel): New variable.
13081         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
13082
13083 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
13084
13085         PR c++/35758
13086         * c-common.c (handle_vector_size_attribute): Call
13087         lang_hooks.types.reconstruct_complex_type instead of
13088         reconstruct_complex_type.
13089         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
13090         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
13091         * langhooks.h (struct lang_hooks_for_types): Add
13092         reconstruct_complex_type hook.
13093         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
13094         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
13095
13096 2008-04-24  Richard Guenther  <rguenther@suse.de>
13097
13098         * c-common.h (check_builtin_function_arguments): Declare.
13099         * c-common.c (validate_nargs): New function.
13100         (check_builtin_function_arguments): Likewise.
13101         * c-typeck.c (build_function_call): Call
13102         check_builtin_function_arguments.
13103         * builtins.c (fold_builtin_classify): Remove error reporting code.
13104         (fold_builtin_unordered_cmp): Likewise.
13105         (fold_builtin_1): Likewise.
13106         (fold_builtin_n): Likewise.
13107
13108 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
13109
13110         PR tree-optimization/36008
13111         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
13112         the original op1, rather than delta by step.
13113
13114 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
13115             Sebastian Pop  <sebastian.pop@amd.com>
13116
13117         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
13118         eliminate_local_variables_stmt, eliminate_local_variables,
13119         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
13120         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
13121         of code delimited by two edges in the CFG.
13122         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
13123         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
13124         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate
13125         the case of parallelisation of reductions.
13126         (expr_invariant_in_region_p): New.
13127
13128         * tree-flow.h (gather_blocks_in_sese_region): Declared.
13129         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
13130
13131 2008-04-24  Ira Rosen  <irar@il.ibm.com>
13132             Richard Guenther  <rguenther@suse.de>
13133
13134         PR tree-optimization/36034
13135         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
13136         incapable of dealing with loads with gaps.
13137
13138 2008-04-24  Rafael Espindola  <espindola@google.com>
13139
13140         * tree-flow.h (vrp_evaluate_conditional): Change signature.
13141         * tree-ssa-propagate.c (fold_predicate_in): Update call to
13142         vrp_evaluate_conditional.
13143         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
13144         (vrp_evaluate_conditional): Split the cond argument.
13145         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
13146         (simplify_stmt_for_jump_threading): Update call to
13147         vrp_evaluate_conditional.
13148
13149 2008-04-24  Ira Rosen  <irar@il.ibm.com>
13150
13151         PR tree-optimization/35982
13152         * tree-vect-analyze.c (vect_check_interleaving): Check that the
13153         interleaved data-refs are of the same type.
13154
13155 2008-04-24  Danny Smith  <dannysmith@users.net>
13156
13157         * c-format.c (check_format_info_main): Use strncmp rather than a
13158         magic prefix to handle multichar length specs.
13159         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
13160         Don't prefix "I64" and "I32" with '\0'.
13161
13162 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
13163
13164         PR target/36015
13165         * config/i386/i386.c (init_cumulative_args): Don't pass anything
13166         in registers for -m32 only if stdarg_p (fntype).
13167
13168 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
13169
13170         PR rtl-optimization/36006
13171         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
13172         temp to op0 in order to avoid invalid rtx sharing.
13173
13174 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
13175
13176         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
13177         check TREE_INVARIANT.
13178         * tree-gimple.c (is_gimple_address): New.
13179         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
13180         * tree-gimple.h (is_gimple_address): New.
13181         * tree.h (decl_address_invariant_p): New.
13182         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
13183         (build_string): Likewise.
13184         (decl_address_invariant_p): New, from is_gimple_invariant_address.
13185         (tree_invariant_p_1): Likewise.
13186         (save_expr): Use it.
13187         (tree_invariant_p): New.
13188         (skip_simple_arithmetic): Use it.
13189         (stabilize_reference_1): Use it.
13190         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
13191         simplify.
13192         (build1_stat): Drop code to compute TREE_INVARIANT.
13193         (build2_stat): Drop code to compute TREE_INVARIANT.
13194         (build3_stat): Drop code to compute TREE_INVARIANT.
13195         (build4_stat): Drop code to compute TREE_INVARIANT.
13196         (build5_stat): Drop code to compute TREE_INVARIANT.
13197         (build7_stat): Drop code to compute TREE_INVARIANT.
13198         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
13199         * tree.h (struct tree_base): Remove invariant_flag.
13200         (TREE_INVARIANT): Remove.
13201         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
13202         (fold_builtin_expect): Check TREE_CONSTANT.
13203         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
13204         * c-tree.h (c_expr_to_decl): Drop third parameter.
13205         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
13206         (build_c_cast): Don't set TREE_INVARIANT.
13207         (pop_init_level): Don't set TREE_INVARIANT.
13208         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
13209         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
13210         TREE_CONSTANT.
13211         (gimplify_init_constructor): Don't set TREE_INVARIANT.
13212         (gimplify_addr_expr): Adjust comment.
13213         * tree-mudflap.c (mf_build_string):
13214         * print-tree.c (print_node): Don't print TREE_INVARIANT.
13215         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
13216         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
13217         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
13218         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
13219         * langhooks.h (struct lang_hooks): Drop third parameter from
13220         expr_to_decl.
13221
13222 2008-04-23  Richard Guenther  <rguenther@suse.de>
13223
13224         PR tree-optimization/27799
13225         PR tree-optimization/32921
13226         PR tree-optimization/32624
13227         * tree-ssa-structalias.c (merge_smts_into): Only merge the
13228         SMTs aliases and the tag itself into the solution.
13229         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
13230         merge the points-to solution back into the SMT aliases.
13231         (may_alias_p): Use alias_set_subset_of instead of
13232         aliases_conflict_p.  A pointer which points to
13233         memory with alias set zero may access any variable.
13234
13235 2008-04-23  Richard Guenther  <rguenther@suse.de>
13236
13237         * alias.c (alias_set_subset_of): Correctly handle asking
13238         if zero is a subset of an alias set with zero child.
13239         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
13240         (compute_flow_insensitive_aliasing): Correctly walk all
13241         pointers.  Do not unnecessarily union sets.
13242
13243 2008-04-23  Richard Guenther  <rguenther@suse.de>
13244
13245         PR middle-end/36021
13246         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
13247
13248 2008-04-22  Tomas Bily  <tbily@suse.cz>
13249
13250         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
13251         unreachable case.
13252         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
13253         NON_LVALUE_EXPR.
13254         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
13255         * tree-ssa-structalias.c (get_constraint_for): Likewise.
13256         * tree-inline.c (estimate_num_insns_1): Likewise.
13257         * varasm.c (const_hash_1, compare_constant, copy_constant)
13258         (compute_reloc_for_constant, output_addressed_constants): Likewise.
13259         * emit-rtl.c (component_ref_for_mem_expr)
13260         (set_mem_attributes_minus_bitpos): Likewise.
13261         * expr.c (highest_pow2_factor, expand_expr_real_1, )
13262         (is_aligning_offset): Likewise.
13263         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
13264         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
13265         * dojump.c (do_jump): Likewise.
13266         * builtins.c (get_pointer_alignment, get_memory_rtx)
13267         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
13268         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
13269
13270 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
13271
13272         PR rtl-optimization/36017
13273         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
13274         expanding the library call.
13275
13276 2008-04-22  Ian Lance Taylor  <iant@google.com>
13277
13278         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
13279         than size_in_bytes.
13280
13281 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
13282
13283         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
13284         of LR/CTR moves for Power6.
13285
13286 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
13287
13288         PR middle-end/36003
13289         * passes.c (init_optimization_passes): Remove
13290         pass_fast_rtl_byte_dce.
13291
13292 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
13293
13294         PR target/29096
13295         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
13296         builtin functions to generate faster code.
13297         (_mm_cvtpu16_ps): Ditto.
13298         (_mm_cvtpi32x2_ps): Ditto.
13299
13300 2008-04-22  Nick Clifton  <nickc@redhat.com>
13301
13302         * common.opt (ftree-loop-distribution): Add Optimization
13303         attribute.
13304
13305         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
13306         (frv_expand_builtin_va_start): Likewise.
13307
13308         * config/arm/arm.c (thumb_find_work_register): Fix location of
13309         argument register count.
13310
13311 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
13312
13313         Support scheduling for ColdFire V1 and V3 microarchitecture.
13314         Improve scheduling of multiplication instructions.
13315
13316         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
13317         (mac): New instruction attribute.
13318         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
13319         (m68k_sched_mac): New variable.
13320         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
13321         Handle cfv1 and cfv3.
13322         (max_insn_size): New static variable.
13323         (struct _sched_ib): New type.
13324         (sched_ib): New static variable.
13325         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
13326         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
13327         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
13328         Update.
13329         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
13330         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
13331         new variables.  Update.
13332         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
13333         Add modeling of cfv3 instruction buffer.  Update.
13334         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
13335         * config/m68k/m68k.h (TUNE_CFV3): New macro.
13336         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
13337         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
13338         a particular reservation applies to.
13339         (type2): Reorganize attribute values.  Rename alu to alu_reg,
13340         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
13341         to mul_l and mul_w.
13342         (cf_ib_*): Simplify description of instruction buffer.
13343         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
13344         (cf_mem): Split into cf_mem1 and cf_mem2.
13345         (cf_v2_move_??): Rename to cfv12_alu_??.
13346         (cf_v2_move_l_??): Rename to cfv12_omove_??.
13347         (cf_v2_mul_??): Remove reservations.
13348         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
13349         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
13350         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
13351         appropriate place.
13352         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
13353         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
13354         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
13355         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
13356         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
13357         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
13358         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
13359         expansions of the above reservations for instructions of sizes
13360         1, 2 and 3 words.
13361
13362 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
13363
13364         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
13365
13366 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
13367
13368         * coverage.c: Include tree-pass.h.
13369         (coverage_counter_alloc): Print da_file_name to the dump file.
13370
13371 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
13372
13373         * sbitmap.c (sbitmap_range_empty_p): New function.
13374         * sbitmap.h (sbitmap_range_empty_p): New function.
13375         * bitmap.h: Now includes obstack.h.
13376
13377 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
13378             Kenneth Zadeck  <zadeck@naturalbridge.com>
13379
13380         * dbgcnt.def (ra_byte_scan): Added.
13381         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
13382         when the last hit happens for a counter.
13383         * timevar.def (TV_DF_BYTE_LR): New variable.
13384         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
13385         * passes.c (pass_fast_rtl_byte_dce): New pass.
13386         * fwprop.c (update_df): Added mode to call df_ref_create.
13387         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
13388         DF_REF_EXTRACT_OFFSET.
13389         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
13390         DF_BYTE_LR_OUT, df_byte_lr): New macro.
13391         (df_mm): New enum.
13392         (df_ref_extract): Added mode field.
13393         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
13394         DF_REF_EXTRACT_OFFSET.
13395         (DF_REF_EXTRACT_MODE): New macro.
13396         (df_byte_lr_bb_info): New structure.
13397         (df_print_byte_regset, df_compute_accessed_bytes,
13398         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
13399         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
13400         df_byte_lr_simulate_uses,
13401         df_byte_lr_simulate_artificial_refs_at_top,
13402         df_byte_lr_simulate_artificial_refs_at_end,
13403         df_compute_accessed_bytes): New function.
13404         (df_ref_create): Add parameter.
13405         (df_byte_lr_get_bb_info): New inline function.
13406         * df-scan.c (df_ref_record, df_uses_record,
13407         df_ref_create_structure): Added mode parameter.
13408         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
13409         df_defs_record, df_uses_record, df_get_conditional_uses,
13410         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
13411         df_entry_block_defs_collect, df_exit_block_uses_collect):
13412         Added mode parameter to calls to df_ref_record, df_uses_record,
13413         df_ref_create_structure.
13414         (df_ref_equal_p, df_ref_compare): Added test for modes.
13415         (df_ref_create_structure): Added code to set mode.  Renamed
13416         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
13417         DF_REF_EXTRACT_OFFSET.
13418         * df-core.c (df_print_byte_regset): New function.
13419         * df-byte-scan.c: New file.
13420         * df-problems.c (df_rd_transfer_function): Removed unnecessary
13421         calls to BITMAP_FREE.
13422         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
13423         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
13424         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
13425         df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
13426         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
13427         df_byte_lr_local_compute, df_byte_lr_init,
13428         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
13429         df_byte_lr_transfer_function, df_byte_lr_free,
13430         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
13431         df_byte_lr_add_problem, df_byte_lr_simulate_defs,
13432         df_byte_lr_simulate_uses,
13433         df_byte_lr_simulate_artificial_refs_at_top,
13434         df_byte_lr_simulate_artificial_refs_at_end): New function.
13435         * dce.c (byte_dce_process_block): New function.
13436         (dce_process_block): au is now passed in rather than computed
13437         locally.  Changed loops that look at artificial defs to not look
13438         for conditional or partial ones, because there never are any.
13439         (fast_dce): Now is able to drive byte_dce_process_block or
13440         dce_process_block depending on the kind of dce being done.
13441         (rest_of_handle_fast_dce): Add parameter to fast_dce.
13442         (rest_of_handle_fast_byte_dce): New function.
13443         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
13444         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
13445
13446 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
13447
13448         PR fortran/35019
13449         * gcc.h: Added fortran options that take arguments to
13450         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
13451         macros.
13452
13453 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
13454
13455         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
13456         scalarization if on the LHS and not a full access.
13457
13458 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13459
13460         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
13461
13462 2008-04-18  Rafael Espindola  <espindola@google.com>
13463
13464         * tree-vrp.c (find_case_label_index): Fix the binary search.
13465         (find_case_label_range): New.
13466         (vrp_visit_switch_stmt): Use find_case_label_range.
13467         (simplify_switch_using_ranges): Use find_case_label_range.
13468
13469 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
13470
13471         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
13472         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
13473
13474 2008-04-18  Tom Tromey  <tromey@redhat.com>
13475
13476         PR libcpp/15500:
13477         * doc/cpp.texi (Implementation-defined behavior): Mention
13478         -finput-charset.
13479
13480 2008-04-18  Ian Lance Taylor  <iant@google.com>
13481
13482         * fold-const.c (pointer_may_wrap_p): New static function.
13483         (fold_comparison): Add another test for pointer overflow.  Use
13484         pointer_may_wrap_p to disable some false positives.
13485
13486 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
13487
13488         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
13489         (fname_as_string): Match updated cpp_interpret_string prototype.
13490         (fix_string_type): Support char16_t* and char32_t*.
13491         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
13492         derivative) nodes.  Register as builtin if C++0x.
13493         (c_parse_error): Support CPP_CHAR{16,32}.
13494         * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
13495         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
13496         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
13497         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
13498         CTI_CHAR32_ARRAY_TYPE>: New elements.
13499         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
13500         char32_type_node, signed_char32_type_node, char16_array_type_node,
13501         char32_array_type_node): New defines.
13502         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
13503         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
13504         (lex_string): Support CPP_STRING{16,32}, match updated
13505         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
13506         (lex_charconst): Support CPP_CHAR{16,32}.
13507         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
13508         and CPP_STRING{16,32}.
13509
13510 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
13511
13512         PR bootstrap/35457
13513         * aclocal.m4: Regenerate.
13514         * configure: Regenerate.
13515
13516 2008-04-18  Jan Hubicka  <jh@suse.cz>
13517
13518         * except.c (dw2_size_of_call_site_table,
13519         sjlj_size_of_call_site_table): Use vector API for call_site_record.
13520
13521         * cgraphbuild.c (build_cgraph_edges): Update.
13522         * tree-pass.h: Update comment.
13523         * final.c (leaf_function_p): Update.
13524         (leaf_renumber_regs): Update.
13525         (rest_of_clean_state): Update.
13526         * omp-low.c (expand_omp_parallel): Update.
13527         * ipa-reference.c (analyze_function): Update.
13528         * reorg.c (find_end_label): Update.
13529         (optimize_skip): Update.
13530         (fill_simple_delay_slots): Update.
13531         (fill_simple_delay_slots): Update.
13532         (make_return_insns): Update.
13533         (dbr_schedule): Update.
13534         * gimple-low.c (record_vars_into): Update.
13535         * cfgbuild.c (make_edges): Update.
13536         * function.c (assign_stack_local): Update.
13537         (assign_parm_adjust_stack_rtl): Update.
13538         (locate_and_pad_parm): Update.
13539         (allocate_struct_function): Do not initialize stack_alignment_needed
13540         and preferred_stack_boundary here.
13541         (stack_protect_prologue): Update.
13542         (stack_protect_epilogue): Update.
13543         (expand_function_start): Initialize stack_alignment_needed,
13544         preferred_stack_boundary and max_jumptable_ents.
13545         (expand_function_end): Update.
13546         (free_after_compilation): Do not NULLify epilogue_delay_list.
13547         * function.h (struct rtl_data): Add stack_protect_guard,
13548         stack_alignment_needed,
13549         preferred_stack_boundary, epilogue_delay_list.
13550         (struct function): Remove value_histograms, stack_alignment_needed,
13551         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
13552         last_label_uid,
13553         unexpanded_var_list, stack_protect_guard.
13554         (current_function_epilogue_delay_list): Remove.
13555         * ipa-type-escape.c (analyze_function): Update.
13556         * gimplify.c (pop_gimplify_context): Update comment.
13557         * calls.c (expand_call): Update.
13558         (emit_library_call_value_1): Update.
13559         * except.c (set_nothrow_function_flags): Update.
13560         * cfgexpand.c (get_decl_align_unit): Update.
13561         (create_stack_guard): Update.
13562         (estimated_stack_frame_size): Update.
13563         (expand_used_vars): Update.
13564         (tree_expand_cfg): Free histogram earliers, init expansion variables.
13565         * explow.c (allocate_dynamic_stack_space): Update.
13566         * tree-ssa-live.c (remove_unused_locals): Update.
13567         * varasm.c (mark_constant_pool): Update.
13568         * tree-inline.c (remap_decls): Update.
13569         (initialize_cfun): Update.
13570         (declare_return_variable): Update.
13571         (inline_forbidden_p): Update.
13572         (expand_call_inline): Update.
13573         (declare_inline_vars): Update.
13574         (tree_function_versioning): Update.
13575         * tree-flow.h (value_histograms): New.
13576         (VALUE_HISTOGRAMS): New macro.
13577         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
13578         last_label_uid.
13579         * tree-cfg.c (set_bb_for_stmt): Update.
13580         (replace_by_duplicate_decl): Update.
13581         (move_block_to_fn): Update.
13582         (new_label_mapper): Update.
13583         (dump_function_to_file): Update.
13584         * ipa-struct-reorg.c (build_data_structure): Update.
13585         * cfgrtl.c (print_rtl_with_bb): Update.
13586         * reload1.c (reload): Update.
13587         (reload): Update.
13588         * config/i386/i386.c (setup_incoming_varargs_64,
13589         ix86_compute_frame_layout): Update.
13590         * config/arc/arc.c (arc_output_function_epilogue): Update.
13591
13592 2008-04-18  Marius Strobl <marius@FreeBSD.org>
13593
13594         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
13595         for FreeBSD as well.
13596         * gthr-posix95.h: Likewise.
13597
13598 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
13599
13600         PR rtl-optimization/35838
13601         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
13602         out the byte offset of the first subreg.
13603
13604 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
13605
13606         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
13607         to split_ti instead of three separate calls with single member arrays.
13608         (subti3 splitter): Ditto.
13609         (adddi3 splitter): Ditto with split_di.
13610         (subdi3 splitter): Ditto.
13611         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
13612         two separate calls with single member arrays.  Swap match_dup
13613         operands 1 and 2 to better fit into the array.
13614         (negdi2 splitter): Ditto with split_di.
13615         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
13616         two separate calls with single member arrays.  Swap match_dup operands
13617         6 and 7 to better fit into the array.
13618
13619 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
13620
13621         * config/i386/i386.c (sse_builtin_type): New.
13622         (bdesc_sse_args): Likewise.
13623         (bdesc_sse_3arg): Removed.
13624         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
13625         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
13626         IX86_BUILTIN_ROUNDPS.
13627         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
13628         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
13629         IX86_BUILTIN_ROUNDPS.
13630         (ix86_expand_sse_4_operands_builtin): Removed.
13631         (ix86_expand_sse_operands_builtin): New.
13632         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
13633         and CODE_FOR_sse4_1_roundps.
13634         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
13635         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
13636
13637 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
13638
13639         PR target/35907
13640         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
13641         regs before frame pop when needed.  If use_backchain_to_restore_sp
13642         then load backchain into a temp reg to restore vr and vrsave.  Add
13643         code to restore vr after frame pop if possible.
13644
13645 2008-04-17  Richard Guenther  <rguenther@suse.de>
13646
13647         * tree-vn.c (expressions_equal_p): Do not check type
13648         equality or compatibility before calling operand_equal_p.
13649         * fold-const.c (operand_equal_p): Check equivalence of
13650         integer constants before bailing out due to signedness or
13651         precision differences.
13652         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
13653         spurious differences in type qualification.  Ignore types
13654         for COMPONENT_REFs at all.
13655
13656 2008-04-17  Christian Bruel  <christian.bruel@st.com>
13657
13658         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
13659         msw_skip comparison.
13660
13661 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
13662
13663         PR c/35739
13664         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
13665         reg type.
13666
13667         PR tree-optimization/35899
13668         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
13669         rather than TREE_OPERAND.
13670
13671 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
13672
13673         PR target/35944
13674         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
13675         temporary registers.  Change operand predicate to general_operand.
13676         (remainderxf3): Ditto.
13677
13678 2008-04-16  Richard Guenther  <rguenther@suse.de>
13679
13680         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
13681         * tree-affine.c (aff_combination_expand): Look through some
13682         conversions.
13683
13684 2008-04-15  Doug Kwan  <dougkwan@google.com>
13685
13686         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
13687         for hex printing.
13688         * tree-pretty-print.c (dump_generic_node): Ditto.
13689         * final.c (output_addr_const): Ditto.
13690         * dwarf2out.c (output_cfi): Ditto.
13691         * c-pretty-print.c (pp_c_integer_constant): Ditto.
13692         * print-rtl.c (print_rtx): Ditto.
13693         * print-tree.c (print_node_brief, print_node): Ditto.
13694         * c-common.c (match_case_to_enum_1): Ditto.
13695         * sched-vis.c (print_value): Ditto.
13696         * config/i386/i386.c (print_operand): Cast to long unsigned int
13697         for hex printing.
13698
13699 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
13700         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
13701         MS Windows VirtualProtect function.
13702
13703 2008-04-15  Jan Hubicka  <jh@suse.cz>
13704
13705         * gengtype.c (write_root): Param_is argument is OK.
13706         * expr.c (expand_expr_real_1): Update call of get_exception_*.
13707         * function.h: Include varray.h
13708         (rtl_eh): New stucture based on except.c one.
13709         (call_site_record): New forward declaration and vector type.
13710         * calls.c (emit_call_1): Do not call
13711         note_current_region_may_contain_throw.
13712         * except.c (eh_status): Remove cur_region, try_region since they are
13713         unused.
13714         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
13715         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
13716         sjlj_fc, sjlj_exit_after to rth_eh in function.h.
13717         Remove call_site_data_used, call_site_data_size.
13718         Turn call_site_record into vector in function.h.
13719         (note_current_region_may_contain_throw): Remove.
13720         (get_exception_pointer, get_exception_filter): Do not take struct
13721         function argument; update.
13722         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
13723         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
13724         build_post_landing_pads, dw2_build_landing_pads,
13725         sjlj_assign_call_site_values, sjlj_mark_call_sites,
13726         sjlj_emit_function_enter, sjlj_emit_function_enter,
13727         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
13728         sjlj_build_landing_pads, finish_eh_generation,
13729         remove_exception_handler_label, remove_eh_handler,
13730         maybe_remove_eh_handler, add_reachable_handler,
13731         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
13732         add_action_record, collect_one_action_chain, add_call_site,
13733         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
13734         sjlj_output_call_site_table, output_function_exception_table,
13735         * except.h (note_current_region_may_contain_throw): Remove
13736         (get_exception_pointer, get_exception_filter): Do not take struct
13737         function argument.
13738         * Makefile.in (GTFILES): Put varargs before struct function.
13739
13740 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
13741
13742         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
13743         punt for STRING_CST.
13744         (get_constraint_for): Deal with STRING_CST here instead.
13745
13746 2008-04-15  Richard Guenther  <rguenther@suse.de>
13747
13748         * tree-ssa-propagate.c (substitute_and_fold): Substitute
13749         statements in a basic-block with a backward walk.  Do not
13750         substitute into dead statements but instead remove those.
13751
13752 2008-04-15  Richard Guenther  <rguenther@suse.de>
13753
13754         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
13755         to zero, thus disable creation of SFTs.
13756
13757 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
13758
13759         * tree-predcom.c (suitable_reference_p): Return false if the
13760         reference can throw.
13761
13762 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
13763
13764         PR c/35751
13765         * c-decl.c (finish_decl): If extern or static var has variable
13766         size, set TREE_TYPE (decl) to error_mark_node.
13767
13768 2008-04-15  Rafael Espindola  <espindola@google.com>
13769
13770         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
13771         variable arg1.
13772
13773 2008-04-15  Richard Guenther  <rguenther@suse.de>
13774
13775         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
13776         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
13777         (visit_reference_op_load): Do walk vuse-vdef chains on
13778         vn_reference_lookup.
13779         (visit_reference_op_store): But do not here.
13780         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
13781         vn_reference_lookup.
13782         (vn_lookup_with_vuses): But do so here.
13783
13784 2008-04-14  Ian Lance Taylor  <iant@google.com>
13785
13786         * fold-const.c (fold_overflow_warning): Remove assertion.
13787
13788 2008-04-15  Ben Elliston  <bje@au.ibm.com>
13789
13790         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
13791         temp1 local variables.
13792
13793 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
13794
13795         PR target/35661
13796         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
13797         ".text.unlikely" section as executable.
13798
13799 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
13800
13801         * config/ia64/ia64.c (rtx_needs_barrier): Handle
13802         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
13803         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
13804         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
13805         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
13806         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
13807         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
13808
13809 2008-04-14  Ian Lance Taylor  <iant@google.com>
13810
13811         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
13812         * fold-const.c (fold_comparison): If appropriate, test
13813         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
13814         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
13815         reassociating a pointer type.
13816         * doc/invoke.texi (Optimize Options): Document that
13817         -fstrict-overflow applies to pointer wraparound.
13818
13819 2008-04-13  Jan Hubicka  <jh@suse.cz>
13820
13821         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
13822
13823 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
13824
13825         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
13826         we are going to "save the world".
13827
13828 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
13829
13830         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
13831         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
13832         operand 0 constraint, not "=".
13833
13834 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
13835
13836         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
13837
13838 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
13839
13840         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
13841         of size of positions_needed * CHAR_BIT.
13842
13843 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
13844
13845         PR middle-end/35897
13846         * dse.c (store_info): Change positions_needed to unsigned
13847         HOST_WIDE_INT.
13848         (lowpart_bitmask): New.
13849         (record_store): Cast to unsigned HOST_WIDE_INT for
13850         positions_needed.  Assert width <= size of positions_needed *
13851         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
13852         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
13853         lowpart_bitmask to set mask.
13854
13855 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
13856
13857         * config/bfin/constraints.md: New file.
13858         * config/bfin/bfin.md: Include it.
13859         (adddi3): Use satisfies_constraint functions instead of the old macros.
13860         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
13861         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
13862         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
13863         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
13864         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
13865         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
13866         EXTRA_CONSTRAINT): Delete.
13867         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
13868         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
13869         of the old macros.
13870         * config/bfin/bfin.c: Include "tm-constrs.h".
13871         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
13872         Use satisfies_constraint functions instead of the old macros.
13873         * doc/md.texi (Blackfin Constraints): Update file name reference.
13874
13875 2008-04-11  Richard Guenther  <rguenther@suse.de>
13876
13877         PR tree-optimization/35869
13878         * tree-vrp.c (execute_vrp): Move switch statement update after
13879         jump threading.  Schedule another cfg cleanup run.
13880
13881 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
13882
13883         PR c/35744
13884         * attribs.c (decl_attributes): Return early on errorneous node.
13885
13886 2008-04-10  Oleg Ryjkov  <olegr@google.com>
13887
13888         * tree.h (struct tree_base): Added a new flag default_def_flag.
13889         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
13890
13891 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
13892
13893         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
13894
13895 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13896
13897         PR target/35768
13898         * pa.md: Define mode iterator P.  Define mode attribute dwc.
13899         (dcacheflush): Update pattern to use iterator P and attribute dwc.
13900         (icacheflush): Likewise.
13901         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
13902         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
13903
13904 2008-04-11  Ben Elliston  <bje@au.ibm.com>
13905
13906         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
13907
13908 2008-04-10  Rafael Espindola  <espindola@google.com>
13909
13910         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
13911         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
13912         (extract_range_from_expr): The same.
13913
13914 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
13915
13916         * config/mips/mips.md (GPR2): New mode iterator.
13917         (seq): Add comment.
13918         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
13919         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
13920         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
13921         Rewrite these to take two modes, the mode of comparison and the
13922         mode of the destination.
13923         * config/mips/mips.c (mips_expand_scc): Instead of having
13924         paradoxical subreg as destination, expand "narrowing" scc if mode
13925         of comparison is SI and target is requested in DI mode.
13926         (mips_emit_int_order_test): Update comment.  Make mode of
13927         comparison match CMP0 rather than TARGET.  When creating inverse
13928         target use mode of TARGET.
13929
13930 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
13931
13932         * gcov-dump.c (tag_summary): Only print summaries for the first
13933         GCOV_COUNTERS_SUMMABLE counters.
13934
13935 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
13936
13937         * config/i386/i386.md (absneg): New code iterator.
13938         (absnegprefix): New code attribute.
13939         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
13940         patterns using absneg code iterator.
13941         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
13942         using absneg code iterator.
13943         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
13944         *neg<mode>2 patterns using absneg code iterator.
13945         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
13946         *negextendsfdf2 patterns using absneg code iterator.
13947         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
13948         *negextendsfxf2 patterns using absneg code iterator.
13949         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
13950         *negextendsfdf2 patterns using absneg code iterator.
13951         * config/i386/sse.md (<code><mode>2): Macroize expander from
13952         abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
13953
13954 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
13955
13956         * config/s390/s390.h: Remove the remains of the recent search
13957         & replace action of current_function_outgoing_args_size.
13958
13959 2008-04-10  Ira Rosen  <irar@il.ibm.com>
13960
13961         PR tree-optimization/35821
13962         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
13963         NEW_STMT_LIST is not NULL.
13964
13965 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
13966
13967         PR libstdc++/35597
13968         * toplev.c (process_options): Remove -ffunction-sections debugging
13969         warning.
13970
13971 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
13972
13973         PR middle-end/PR28690
13974         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
13975         than gen_rtx_fmt_ee to perform more canonicalizations.
13976
13977 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13978
13979         PR driver/35665
13980         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
13981
13982 2008-04-09  Richard Guenther  <rguenther@suse.de>
13983
13984         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
13985         (dump_function_to_file): Dump function arguments with types.
13986
13987 2008-04-08  Richard Guenther  <rguenther@suse.de>
13988
13989         * fold-const.c (fold_widened_comparison): Do not allow
13990         sign-changes that change the result.
13991
13992 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
13993
13994         PR target/35839
13995         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
13996         kinds of indirect references.
13997
13998 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
13999
14000         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
14001         GNU Fortran language string.
14002
14003 2008-04-08  Rafael Espindola  <espindola@google.com>
14004
14005         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
14006         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
14007         * tree.h (tree_call_nonnegative_warnv_p): New.
14008
14009 2008-04-08  Jan Hubicka  <jh@suse.cz>
14010
14011         * function.c (free_after_compilation): Clear out regno_reg_rtx
14012         pointer.
14013
14014 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
14015
14016         Revert
14017         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
14018
14019         PR middle-end/PR28690
14020         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
14021         same precedence as REG_POINTER and MEM_POINTER operands.
14022
14023 2008-04-08  Richard Guenther  <rguenther@suse.de>
14024
14025         PR middle-end/35834
14026         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
14027         for adding index to base.
14028
14029 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
14030
14031         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
14032         (MINGW_ENABLE_EXECUTE_STACK): New.
14033         (IN_LIBGCC2): For libgcc include windows.h file for
14034         function declarations.
14035
14036 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
14037
14038         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
14039         and tem2 if tem1 is not a REG or MULT.
14040
14041 2008-04-08  Jan Hubicka  <jh@suse.cz>
14042
14043         * function.h (incomming_args): Break out of struct function.
14044         (function_subsections): Break out of struct function.
14045         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
14046         return_rtx and hard_reg_initial_vals from struct function.
14047         Kill inl_max_label_num.
14048         (current_function_pops_args, current_function_args_info,
14049         current_function_args_size, current_function_args_size,
14050         current_function_pretend_args_size,
14051         current_function_outgoing_args_size,
14052         current_function_internal_arg_pointer, current_function_return_rtx):
14053         Kill compatibility accestor macros.
14054         * builtins.c (expand_builtin_apply_args_1): Update.
14055         (expand_builtin_next_arg): Update.
14056         * df-scan.c (df_get_call_refs): Update.
14057         * dbxout.c (dbxout_function_end): Update.
14058         * dwarf2out.c (dwarf2out_switch_text_section): Update.
14059         (output_line_info): Update.
14060         (secname_for_decl): Update.
14061         (dwarf2out_var_location): Update.
14062         * function.c (free_after_compilation): Update.
14063         (assign_parm_find_stack_rtl): Update.
14064         (assign_parms): Update.
14065         (expand_dummy_function_end): Update.
14066         (expand_function_end): Update.
14067         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
14068         (expand_call): Update.
14069         (emit_library_call_value_1): Update.
14070         (store_one_arg): Update.
14071         * varasm.c (initialize_cold_section_name): Update.
14072         (unlikely_text_section): Update.
14073         (unlikely_text_section_p): Update.
14074         (assemble_start_function): Update.
14075         (assemble_end_function): Update.
14076         (default_section_type_flags): Update.
14077         (switch_to_section): Update.
14078         * integrate.c (set_decl_abstract_flags): Update.
14079         (get_hard_reg_initial_val): Update.
14080         (has_hard_reg_initial_val): Update.
14081         (allocate_initial_values): Update.
14082         * resource.c (init_resource_info): Update.
14083         * config/alpha/alpha.c (NUM_ARGS): Update.
14084         (direct_return): Update.
14085         (alpha_va_start): Update.
14086         (alpha_sa_size): Update.
14087         (alpha_initial_elimination_offset): Update.
14088         (alpha_expand_prologue): Update.
14089         (alpha_start_function): Update.
14090         (alpha_expand_epilogue): Update.
14091         (unicosmk_initial_elimination_offset):
14092         * config/alpha/alpha.md (call expander): Update.
14093         * config/s390/s390.c (s390_register_info): Update.
14094         (s390_register_info): Update.
14095         (s390_frame_info): Update.
14096         (s390_initial_elimination_offset): Update.
14097         (s390_build_builtin_va_list): Update.
14098         (s390_va_start): Update.
14099         * config/spu/spu.c (direct_return): Update.
14100         (spu_expand_prologue): Update.
14101         (spu_initial_elimination_offset): Update.
14102         (spu_build_builtin_va_list): Update.
14103         (spu_va_start): Update.
14104         * config/sparc/sparc.c (sparc_init_modes): Update.
14105         (sparc_compute_frame_size): Update.
14106         (function_value): Update.
14107         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
14108         * config/i386/i386.md (return expander): Update.
14109         * config/i386/i386.c (ix86_va_start): Update.
14110         (ix86_can_use_return_insn_p): Update.
14111         (ix86_compute_frame_layout): Update.
14112         (ix86_expand_epilogue): Update.
14113         * config/sh/sh.c (output_stack_adjust): Update.
14114         (calc_live_regs): Update.
14115         (sh_expand_prologue): Update.
14116         (sh_builtin_saveregs): Update.
14117         (sh_va_start): Update.
14118         (initial_elimination_offset): Update.
14119         (sh_allocate_initial_value): Update.
14120         (sh_function_ok_for_sibcall): Update.
14121         (sh_get_pr_initial_val): Update.
14122         * config/sh/sh.md (return expander): Update.
14123         * config/avr/avr.c (frame_pointer_required_p): UPdate.
14124         * config/crx/crx.c (crx_compute_frame): UPdate.
14125         (crx_initial_elimination_offset): UPdate.
14126         * config/xtensa/xtensa.c (compute_frame_size): Update
14127         (xtensa_builtin_saveregs): Update.
14128         (xtensa_va_start): Update.
14129         (order_regs_for_local_alloc): Update.
14130         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
14131         (xstormy16_expand_builtin_va_start): Update.
14132         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
14133         * config/m68hc11/m68hc11.md (return expanders): Update.
14134         * config/m68hc11/m68hc11.c (expand_prologue): Update.
14135         (expand_epilogue): Update.
14136         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
14137         (cris_simple_epilogue): Update.
14138         (cris_expand_prologue): Update.
14139         (cris_expand_epilogue): Update.
14140         * config/iq2000/iq2000.c (iq2000_va_start): Update.
14141         (compute_frame_size): Update.
14142         * config/mt/mt.c (mt_compute_frame_size): Update.
14143         * config/mn10300/mn10300.c (expand_prologue): Update.
14144         (expand_epilogue): Update.
14145         (initial_offset): Update.
14146         (mn10300_builtin_saveregs):
14147         * config/mn10300/mn10300.md (return expander): Update.
14148         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
14149         (ia64_initial_elimination_offset): Update.
14150         (ia64_initial_elimination_offset): Update.
14151         (ia64_expand_prologue): Update.
14152         * config/m68k/m68k.md (return expander): Update.
14153         * config/rs6000/rs6000.c (rs6000_va_start): Update.
14154         (rs6000_stack_info): Update.
14155         * config/mcore/mcore.c (layout_mcore_frame): Update.
14156         (mcore_expand_prolog): Update.
14157         * config/arc/arc.c (arc_compute_frame_size): Update.
14158         * config/score/score3.c (score3_compute_frame_size): Update.
14159         * config/score/score7.c (score7_compute_frame_size): Update.
14160         * config/arm/arm.c (use_return_insn): Update.
14161         (thumb_find_work_register): Update.
14162         (arm_compute_save_reg_mask): Update.
14163         (arm_output_function_prologue): Update.
14164         (arm_output_epilogue): Update.
14165         (arm_size_return_regs): Update.
14166         (arm_get_frame_offsets): Update.
14167         (arm_expand_prologue): Update.
14168         (thumb_exit): Update.
14169         (thumb_unexpanded_epilogue): Update.
14170         (thumb1_output_function_prologue): Update.
14171         * config/pa/pa.md (return expander): Update.
14172         * config/pa/pa.c (compute_frame_size): Update.
14173         (hppa_builtin_saveregs): Update.
14174         * config/mips/mips.c (mips_va_start): Update.
14175         (mips16_build_function_stub): Update.
14176         (mips_compute_frame_info): Update.
14177         (mips_restore_gp): Update.
14178         (mips_output_function_prologue): Update.
14179         (mips_expand_prologue): Update.
14180         * config/v850/v850.c (compute_frame_size): Update.
14181         (expand_prologue): * config/mmix/mmix.c (along): update.
14182         (mmix_initial_elimination_offset): update.
14183         (mmix_reorg): update.
14184         (mmix_use_simple_return): update.
14185         (mmix_expand_prologue): update.
14186         (mmix_expand_epilogue): Update.
14187         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
14188         (emit_link_insn): Update.
14189
14190 2008-04-08  Anatoly Sokolov <aesok@post.ru>
14191
14192         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
14193         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
14194         instructions.
14195         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
14196         atmega103 device.
14197
14198 2008-04-07  Jan Hubicka  <jh@suse.cz>
14199
14200         * function.h (rtl): Rename to x_rtl.
14201         (crtl): New define.
14202         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
14203         frame_offset, stack_check_probe_note, arg_pointer_save_area,
14204         used_temp_slots avail_temp_slots, temp_slot_level,
14205         nonlocal_goto_handler_labels): Update accesstors.
14206         (rtl): New global variable.
14207         (struct function): Move some fileds to rtl_data.
14208         (get_arg_pointer_save_area): Update prototype.
14209         * builtins.c (expand_builtin_setjmp_receiver): Update call of
14210         get_arg_pointer_save_area.
14211         * expr.c (init_expr): Update
14212         * function.c (get_frame_size): Update
14213         (assign_stack_local): Update
14214         (expand_function_end): Update.
14215         (get_art_pointer_save_area): Update
14216         * function.h
14217         * emit-rtl.c (rtl): Declare.
14218         (regno_reg_rtx): Declare.
14219         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
14220         Update.
14221         (gen_reg_rtx): Update.
14222         * varasm.c (n_deferred_constatns): Update accestor.
14223         (init_varasm_status): Do not allocate varasm_status.
14224         (force_const_mem, get_pool_size, output_constant_pool): Update.
14225         * stmt.c (force_label_rtx): Do not use x_ prefixes.
14226         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
14227         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
14228         * sparc/sparc.h (INIT_EXPANDERS): Update.
14229         * ia64/ia64.h (INIT_EXPANDERS): Update.
14230
14231 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
14232
14233         * reload.c (push_secondary_reload): Add missing break to for loop.
14234
14235 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
14236
14237         PR middle-end/PR28690
14238         * rtlanal.c: Update copyright years.
14239         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
14240         as REG_POINTER and MEM_POINTER operands.
14241         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
14242         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
14243         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
14244         * gcse.c: Update copyright years.
14245         (pre_delete): Call gen_reg_rtx_and_attrs.
14246         (hoist_code): Likewise.
14247         (build_store_vectors): Likewise.
14248         (delete_store): Likewise.
14249         * loop-invariant.c (move_invariant_reg): Likewise.
14250         Update copyright years.
14251
14252 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
14253
14254         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
14255         control string instead of quoted.
14256
14257 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
14258
14259         * doc/rtl.texi: Rewrite of subreg section.
14260
14261 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
14262
14263         PR/35842
14264         * config/i386/i386.c (legitimize_pic_address): Add treating
14265         of dllimport SYM_REF's.
14266         (legitimize_dllimport_symbol): Add prototype.
14267
14268 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
14269
14270         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
14271         reference in constructor with non self-referential type.
14272
14273 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
14274
14275         Removal of Return with Depressed Stack Pointer support
14276         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
14277         (ECF_SP_DEPRESSED): Likewise.
14278         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
14279         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
14280         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
14281         (expand_call): Do not test ECF_SP_DEPRESSED.
14282         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
14283         * function.c (keep_stack_depressed): Delete.
14284         (handle_epilogue_set): Likewise.
14285         (update_epilogue_consts): Likewise.
14286         (emit_equiv_load): Likewise.
14287         (thread_prologue_and_epilogue_insns): Remove support for Return with
14288         Depressed Stack Pointer.
14289         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
14290
14291 2008-04-06  Richard Guenther  <rguenther@suse.de>
14292
14293         PR tree-optimization/35400
14294         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
14295         information from SSA_NAMEs.
14296
14297 2008-04-06  Anatoly Sokolov <aesok@post.ru>
14298
14299         * config/avr/avr.h (avr_mega_p): Remove declaration.
14300         (AVR_MEGA): Remove macro.
14301         * config/avr/avr.c (avr_mega_p): Remove variable.
14302         (avr_override_options): Remove inicializion of avr_mega_p.
14303         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
14304         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
14305         (avr_jump_mode): (Ditto.).
14306         (avr_output_progmem_section_asm_op): (Ditto.).
14307         (avr_asm_init_sections): (Ditto.).
14308         (avr_asm_init_sections): (Ditto.).
14309         (avr_rtx_costs): (Ditto.).
14310         * config/avr/avr.md: (Ditto.).
14311         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
14312         '__AVR_MEGA__'.
14313
14314 2008-04-06  Richard Guenther  <rguenther@suse.de>
14315
14316         PR tree-optimization/35842
14317         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
14318         is_gimple_invariant_address.
14319
14320 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
14321
14322         * gcc.c (default_compilers): Sync Fortran extensions list with
14323         that in fortran/lang-specs.h.
14324         * doc/invoke.texi: Likewise.
14325         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
14326         * dwarf2out.c (gen_compile_unit_die): Likewise.
14327
14328 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
14329
14330         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
14331
14332 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
14333
14334         PR target/12329
14335         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
14336         attribute is used for nested functions.
14337
14338 2008-04-05  Jan Hubicka  <jh@suse.cz>
14339
14340         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
14341
14342         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
14343         letter argument.
14344         (dump_files): Update.
14345         (enable_rtl_dump_file): Do not accept letter argument.
14346         * tree-pass.h (dump_file_info): Remove letter argument.
14347         * toplev.c (decode_d_option): Update -da handling.
14348         * toplev.h (enable_rtl_dump_file): Update prototype.
14349         * passes.c (register_one_dump_file): Do not accept IPA argument; work
14350         it out based on pass type.
14351         (register_dump_files_1): Likewise.
14352         (init_optimization_passes): Update register_one_dump_file calls.
14353         (execute_one_pass): Sanity check that IPA passes are called at IPA
14354         level and RTL passes at RTL level.
14355         (execute_pass_list): IPA pass can not be after or subpass of
14356         GIMPLE/RTL pass.
14357         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
14358         disallov RTL subpasses of IPA subpasses.
14359
14360 2008-04-05  Ben Elliston  <bje@au.ibm.com>
14361
14362         * tree-cfg.c (need_fake_edge_p): Return false for calls to
14363         builtins that return exactly once and do not throw. Cache call to
14364         call_expr_flags.
14365
14366 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
14367
14368         PR rtl-optimization/34916
14369         PR middle-end/35519
14370         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
14371         between instruction pairs.
14372
14373 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
14374
14375         * doc/invoke.texi: Document -mbitops for SH.
14376         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
14377         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
14378         * config/sh/sh.c (print_operand): Add %t operand code.
14379         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
14380         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
14381         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
14382         (extendqihi2): Likewise.
14383         (movqi_i): Likewise.
14384         (insv): Use bset, bclr and bst instructions for SH2A if possible.
14385         (extv): Use bld instruction for SH2A if possible.
14386         (extzv): Likewise.
14387         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
14388         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
14389         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
14390         (bset.b, bclr.b): Define peepholes.
14391         * config/sh/sh.opt (mbitops): New option.
14392
14393 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
14394
14395         PR target/35620
14396         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
14397         and view convert expression.
14398
14399 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
14400
14401         PR target/35364
14402         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
14403
14404 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
14405
14406         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
14407
14408         * config/i386/cpuid.h (bit_AES): New.
14409         (bit_PCLMUL): Likewise.
14410
14411         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
14412         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
14413         SSE2 if AES or PCLMUL is enabled.
14414         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
14415         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
14416         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
14417         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
14418         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
14419         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
14420         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
14421         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
14422         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
14423         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
14424         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
14425         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
14426         __builtin_ia32_aeskeygenassist128 and
14427         __builtin_ia32_pclmulqdq128.
14428         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
14429         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
14430         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
14431
14432         * config/i386/i386.h (TARGET_AES): New.
14433         (TARGET_PCLMUL): Likewise.
14434         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
14435
14436         * config/i386/i386.md (UNSPEC_AESENC): New.
14437         (UNSPEC_AESENCLAST): Likewise.
14438         (UNSPEC_AESDEC): Likewise.
14439         (UNSPEC_AESDECLAST): Likewise.
14440         (UNSPEC_AESIMC): Likewise.
14441         (UNSPEC_AESKEYGENASSIST): Likewise.
14442         (UNSPEC_PCLMUL): Likewise.
14443
14444         * config/i386/i386.opt (maes): New.
14445         (mpclmul): Likewise.
14446
14447         * config/i386/sse.md (aesenc): New pattern.
14448         (aesenclast): Likewise.
14449         (aesdec): Likewise.
14450         (aesdeclast): Likewise.
14451         (aesimc): Likewise.
14452         (aeskeygenassist): Likewise.
14453         (pclmulqdq): Likewise.
14454
14455         * config/i386/wmmintrin.h: New.
14456
14457         * doc/extend.texi: Document AES and PCLMUL built-in function.
14458
14459         * doc/invoke.texi: Document -maes and -mpclmul.
14460
14461 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
14462
14463         * function.c (free_after_parsing): Replace with
14464         cxx_push_function_context from C++ front-end.
14465         (allocate_struct_function): Don't call langhook.
14466         * langhooks.h (struct lang_hooks_for_functions): Delete.
14467         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
14468         member "function".
14469         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
14470         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
14471         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
14472         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
14473         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
14474         remove LANG_HOOKS_FUNCTION_INITIALIZER.
14475         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
14476
14477         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
14478         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
14479
14480 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
14481
14482         PR c/35440
14483         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
14484         for all types.
14485
14486 2008-04-04  Richard Guenther  <rguenther@suse.de>
14487
14488         PR middle-end/35823
14489         * fold-const.c (optimize_minmax_comparison): Use the correct
14490         type for the constant in the simplified comparison.
14491
14492 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
14493
14494         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
14495         Pass L2 size as "--param l2-cache-size" to the compiler.
14496         (decode_l2_cache): New function to decode L2 cache parameters using
14497         0x8000006 extended cpuid function.
14498         (detect_caches_amd): Determine parameters of L2 cache using
14499         decode_l2_caches function.
14500         (decode_caches_intel): Decode L2 cache parameters.
14501         (detect_caches_intel): Determine L2 cache parameters using
14502         decode_caches_intel and decode_l2_caches functions.
14503
14504 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
14505
14506         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
14507         secondary input reload for subword loads from the constant pool.
14508
14509 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
14510
14511         PR target/35713
14512         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
14513           constants of the appropriate size for runtime calculations.
14514
14515         PR c/35712
14516         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
14517           decimal-float literal constant zero.
14518
14519 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
14520
14521         PR c/35738
14522         * c-parser.c (c_parser_omp_atomic): Call
14523         default_function_array_conversion on the RHS.
14524
14525         PR middle-end/35818
14526         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
14527         call is_variable_sized if decl has incomplete type.
14528
14529 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
14530
14531         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
14532
14533 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
14534
14535         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
14536         iterators.
14537         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
14538         (sgt<u>): Merge sgt and sgtu into new expander.
14539         (sgt, sgtu): Remove expanders.
14540         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
14541         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
14542         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
14543         *sgtu_<mode>_mips16 into new pattern.
14544         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
14545         (sge<u>): Merge sge and sgeu into new expander.
14546         (sge, sgeu): Remove expanders.
14547         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
14548         new pattern.
14549         (*sge_<mode>, second *sge_<mode>): Remove patterns.
14550         (slt<u>): Merge slt and sltu into new expander.
14551         (slt, sltu): Remove expanders.
14552         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
14553         (*slt_<mode>, *sltu_<mode>): Remove patterns.
14554         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
14555         *sltu_<mode>_mips16 into new pattern.
14556         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
14557         (sle<u>): Merge sle and sleu into new expander.
14558         (sle, sleu): Remove expanders.
14559         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
14560         (*sle_<mode>, *sleu_<mode>): Remove patterns.
14561         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
14562         *sleu_<mode>_mips16 into new pattern.
14563         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
14564
14565 2008-04-03  Jan Hubicka  <jh@suse.cz>
14566
14567         PR tree-optimization/35795
14568         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
14569         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
14570         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
14571         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
14572         * score/score3.c (score3_output_mi_thunk): Likewise.
14573         * score/score7.c (score7_output_mi_thunk): Likewise.
14574         * mips/mips.c (mips_output_mi_thunk): Likewise.
14575
14576 2008-04-03  Richard Guenther  <rguenther@suse.de>
14577
14578         * tree-vrp.c (extract_range_from_unary_expr): Handle all
14579         conversions.  Simplify code.
14580
14581 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
14582
14583         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
14584
14585 2008-04-03  Tom Tromey  <tromey@redhat.com>
14586             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14587
14588         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
14589         * config/bfin/t-bfin-linux (generated_files): Add
14590         linux-sysroot-suffix.h.
14591         * doc/install.texi (Prerequisites): Require make 3.80.
14592         * doc/sourcebuild.texi (Front End Directory): Document new
14593         variable.
14594         * Makefile.in (generated_files): New variable.
14595         (ALL_HOST_OBJS): New variable.
14596         ($(ALL_HOST_OBJS)): New target.
14597
14598 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
14599
14600         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
14601         (remap_block): Call id->transform_lang_insert_block instead
14602         of langhook.
14603         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
14604         Set id.transform_lang_insert_block to NULL.
14605         (clone_body): Move to cp/optimize.c
14606         * tree-inline.h (struct copy_body_data): Change
14607         transform_lang_insert_block to function pointer.
14608         (copy_generic_body, copy_decl_no_change): Export.
14609         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
14610         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
14611         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
14612
14613         * c-tree.h (insert_block): Kill.
14614         * c-decl.c (insert_block): Kill.
14615
14616 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
14617
14618         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
14619         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
14620         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
14621         argument.
14622         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
14623         argument, call {push,pop}_function_context from here.
14624         * c-parser.c: Use c_{push,pop}_function_context.
14625
14626         * function.c (push_function_context_to): Move meat ...
14627         (push_function_context): ... here.  Simplify.
14628         * function.c (pop_function_context_from): Move meat ...
14629         (pop_function_context): ... here.  Simplify.
14630         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
14631         leave_nested).
14632         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
14633         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
14634         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
14635         * tree.h (push_function_context_to, pop_function_context_from): Remove.
14636
14637 2008-04-03  Ben Elliston  <bje@au.ibm.com>
14638
14639         * expmed.c (extract_force_align_mem_bit_field): Remove.
14640
14641 2008-04-03  Richard Guenther  <rguenther@suse.de>
14642
14643         PR middle-end/35800
14644         * expr.h (try_casesi): Adjust prototype.
14645         * expr.c (try_casesi): Take fallback label as extra parameter.
14646         Use that for gen_casesi if default_label is NULL.
14647         * stmt.c (expand_case): Pass fallback label to try_casesi,
14648         make sure to fill gaps with a fallback label if default_label
14649         is not present.
14650
14651 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
14652
14653         PR target/35801
14654         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
14655
14656 2008-04-03  Ben Elliston  <bje@au.ibm.com>
14657
14658         * expmed.c (extract_split_bit_field): Remove if (0) code.
14659         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
14660         (do_ds_constraint): Likewise.
14661
14662 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
14663
14664         * doc/cppopts.texi (-dU): Document.
14665         * c-common.h (flag_dump_macros): Update comment.
14666         * c-opts.c (handle_OPT_d): Handle -dU.
14667         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
14668         dump_queued_macros, cb_used_define, cb_used_undef): New.
14669         (init_pp_output): Handle -dU.
14670         (cb_line_change): Call dump_queued_macros.
14671         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
14672
14673 2008-04-02  Anatoly Sokolov <aesok@post.ru>
14674
14675         * config/avr/predicates.md (io_address_operand): New predicate.
14676         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
14677         * config/avr/avr.c (avr_io_address_p): Remove function.
14678         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
14679         'avr_io_address_p' function.
14680         (out_movhi_r_mr): (Ditto.).
14681         (out_movqi_mr_r): (Ditto.).
14682         (out_movhi_mr_r): (Ditto.).
14683         (avr_address_cost): (Ditto.).
14684
14685 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
14686
14687         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
14688         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
14689         in 32bit mode when XMM registers are available to avoid store
14690         forwarding stalls.
14691         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
14692         corresponding post-reload splitters.
14693
14694 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
14695
14696         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
14697         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
14698         __builtin_ia32_roundss.
14699         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
14700         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
14701         __builtin_ia32_roundss.
14702         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
14703         IX86_BUILTIN_SHUFPD here.
14704
14705 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
14706
14707         * config/i386/i386.md (plogic): New.
14708         (plogicprefix): Likewise.
14709
14710         * config/i386/mmx.md (mmx_<code><mode>3): New.
14711         (mmx_and<mode>3): Removed.
14712         (mmx_ior<mode>3): Likewise.
14713         (mmx_xor<mode>3): Likewise.
14714
14715         * config/i386/sse.md (<code><mode>3): New.
14716         (*<code><mode>3): Likewise.
14717         (*<code><mode>3): Likewise.
14718         (<code><mode>3): Likewise.
14719         (*sse_<code><mode>3): Likewise.
14720         (*sse2_<code><mode>3): Likewise.
14721         (<code>tf3): Likewise.
14722         (*<code>tf3): Likewise.
14723         (and<mode>3): Likewise.
14724         (*and<mode>3): Likewise.
14725         (ior<mode>3): Removed.
14726         (*ior<mode>3): Likewise.
14727         (xor<mode>3): Likewise.
14728         (*xor<mode>3): Likewise.
14729         (*and<mode>3): Likewise.
14730         (*ior<mode>3): Likewise.
14731         (*xor<mode>3): Likewise.
14732         (and<mode>3): Likewise.
14733         (*sse_and<mode>3): Likewise.
14734         (*sse2_and<mode>3): Likewise.
14735         (andtf3): Likewise.
14736         (*andtf3): Likewise.
14737         (ior<mode>3): Likewise.
14738         (*sse_ior<mode>3): Likewise.
14739         (*sse2_ior<mode>3): Likewise.
14740         (iortf3): Likewise.
14741         (*iortf3): Likewise.
14742         (xor<mode>3): Likewise.
14743         (*sse_xor<mode>3): Likewise.
14744         (*sse2_xor<mode>3): Likewise.
14745         (xortf3): Likewise.
14746         (*xortf3): Likewise.
14747
14748 2008-04-02  Richard Guenther  <rguenther@suse.de>
14749
14750         PR tree-optimization/14495
14751         PR tree-optimization/34793
14752         * tree-vrp.c (struct switch_update): New structure.
14753         (to_remove_edges, to_update_switch_stmts): New VECs.
14754         (simplify_switch_using_ranges): New function.  Remove not taken
14755         case labels and edges.
14756         (simplify_stmt_using_ranges): Call it.
14757         (identify_jump_threads): Mark edges we have queued for removal
14758         so we don't thread them.
14759         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
14760         case label vector.
14761         * tree-cfg.c (group_case_labels): Deal with missing default label.
14762         (tree_verify_flow_info): Allow missing default label.
14763         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
14764         (emit_case_nodes): Likewise.
14765         (expand_case): Do not rely on the default label to be present.
14766         * expr.c (try_casesi): Deal with NULL default_label.
14767         (do_tablejump): Likewise.
14768
14769 2008-04-02  Richard Guenther  <rguenther@suse.de>
14770
14771         PR tree-optimization/14495
14772         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
14773         SWITCH_EXPR here ...
14774         (vrp_visit_switch_stmt): ... but here (new function).
14775         (find_case_label_index): New helper function.
14776         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
14777
14778 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
14779
14780         * fwprop.c: Fix ISO-C99ism.
14781
14782 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
14783
14784         PR bootstrap/35752
14785         * Makefile.in (objdir): Set it here.
14786         * configure.ac: Not here.  Find dynamic linker characteristics.
14787         * exec-tool.in: Use them.
14788         * aclocal.m4: Regenerate.
14789         * configure: Regenerate.
14790
14791 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
14792
14793         * expr.c (expand_var): Delete it.
14794         * expr.h (expand_var): Delete prototype.
14795         * function.c (expand_function_start): Use expand_decl instead.
14796         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
14797         langhook.
14798
14799 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
14800
14801         PR rtl-optimization/35542
14802         * fwprop.c (forward_propagate_and_simplify): Replace
14803         loc_reg_mentioned_in_p with reg_mentioned_p.
14804
14805 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
14806
14807         PR rtl-optimization/35281
14808         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
14809         (propagate_rtx_1): Handle PR_HANDLE_MEM.
14810         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
14811         (varying_mem_p): Move above propagate_rtx.
14812         (all_uses_available_at): Do not check MEMs.
14813
14814 2008-04-02  Rafael Espindola  <espindola@google.com>
14815
14816         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
14817         (register_edge_assert_for_2): Split the cond argument.
14818         (register_edge_assert_for_1): Adjust for the change in
14819         register_edge_assert_for_2.
14820         (register_edge_assert_for): Split the cond argument.
14821         (find_switch_asserts): Adjust for the change in
14822         register_edge_assert_for.
14823
14824 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
14825
14826         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
14827         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
14828         offsets for 64-bit mingw.
14829         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
14830         abi for x86_64-pc-mingw.
14831
14832 2008-04-02  Richard Guenther  <rguenther@suse.de>
14833
14834         * tree-vrp.c (extract_range_from_assert): Make sure to not
14835         produce range min/max with TREE_OVERFOW set.
14836         If merging a anti-range and a range keep the anti-range if
14837         the range covers all values of the type.
14838         (register_edge_assert_for_2): Only allow sign-changing
14839         conversions in detecting canonical range checks.  Also
14840         register an assert for the unsigned name if useful.
14841
14842         PR tree-optimization/35787
14843         * tree-vrp.c (vrp_val_max): New function.
14844         (vrp_val_min): Likewise.
14845         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
14846         (vrp_val_is_min): Likewise.
14847         (supports_overflow_infinity): Use vrp_val_{min,max}.
14848         (negative_overflow_infinity): Likewise.
14849         (positive_overflow_infinity): Likewise.
14850         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
14851         (is_positive_overflow_infinity): Likewise.
14852         (is_overflow_infinity): Likewise.
14853         (avoid_overflow_infinity): Use vrp_val_{min,max} and
14854         vrp_val_is_{min,max}.
14855         (set_and_canonicalize_value_range): Canonicalize anti-ranges
14856         to ranges if possible.  Avoid empty ranges.
14857
14858 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14859
14860         PR middle-end/35705
14861         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
14862         the expression is a function address.
14863
14864 2008-04-01  George Helffrich  <george@gcc.gnu.org>
14865
14866         PR fortran/35154, fortran/23057
14867         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
14868         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
14869         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
14870         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
14871         in common.
14872         (dbxout_syms): Check for COMMON-based symbol and wrap in
14873         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
14874         in bracket for efficiency.
14875
14876         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
14877         using DW_TAG_common_block + member offset.
14878         (add_pubname_string): New function.
14879         (dw_expand_expr): New function to find block name and offset for
14880         COMMON var.
14881         (common_check): New function to check whether symbol in Fortran COMMON.
14882         (gen_variable_die): If COMMON, use DW_TAG_common_block.
14883
14884 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
14885
14886         PR c/35436
14887         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
14888
14889 2008-04-02  Ben Elliston  <bje@au.ibm.com>
14890
14891         * config/v850/v850.md (casesi): Remove if (0) code.
14892         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
14893         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
14894
14895 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
14896
14897         * config/i386/i386.md (rex64suffix): New mode attribute.
14898         (floathi<mode>2): Disable expander for SSE math.
14899         (*floathi<mode>2_1): New insn insn_and_split pattern.
14900         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
14901         corresponding post-reload splitters.
14902         (*floathi<mode>2_i387): New macroized insn pattern.
14903         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
14904         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
14905         insn_and_split pattern.
14906         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
14907         New macroized instruction patterns and corresponding post-reload
14908         splitters.
14909         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
14910         and corresponding post-reload splitters.
14911         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
14912         New macroized instruction patterns.
14913         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
14914         macroized instruction patterns and corresponding post-reload splitters.
14915         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
14916         corresponding post-reload splitters.
14917         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
14918         New macroized instruction patterns.
14919         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
14920         corresponding post-reload splitters.
14921         (*floatsi<mode>2_i387): New macroized instruction patterns.
14922
14923 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
14924
14925         * config/i386/i386.md (smaxmin): New.
14926         (umaxmin): Likewise.
14927         (maxminiprefix): Likewise.
14928         (maxminfprefix): Likewise.
14929         (<code><mode>3): Likewise.
14930         (smin<mode>3): Removed.
14931         (smax<mode>3): Likewise.
14932
14933         * config/i386/mmx.md (mmx_<code>v2sf3): New.
14934         (mmx_<code>v4hi3): Likewise.
14935         (mmx_<code>v8qi3): Likewise.
14936         (mmx_smaxv2sf3): Removed.
14937         (mmx_sminv2sf3): Likewise.
14938         (mmx_umaxv8qi3): Likewise.
14939         (mmx_smaxv4hi3): Likewise.
14940         (mmx_uminv8qi3): Likewise.
14941         (mmx_sminv4hi3): Likewise.
14942
14943         * config/i386/sse.md (<addsub><mode>3): New.
14944         (*<addsub><mode>3): Likewise.
14945         (<sse>_vm<addsub><mode>3): Likewise.
14946         (<maxmin><mode>3): Likewise.
14947         (*<maxmin><mode>3_finite): Likewise.
14948         (*<maxmin><mode>3): Likewise.
14949         (<sse>_vm<maxmin><mode>3): Likewise.
14950         (sse3_h<addsub>v4sf3): Likewise.
14951         (sse3_h<addsub>v2df3): Likewise.
14952         (<maxmin>v16qi3): Likewise.
14953         (*<maxmin>v16qi3): Likewise.
14954         (<maxmin>v8hi3): Likewise.
14955         (*<maxmin>v8hi3): Likewise.
14956         (*sse4_1_<maxmin><mode>3): Likewise.
14957         (*sse4_1_<maxmin><mode>3): Likewise.
14958         (add<mode>3): Removed.
14959         (*add<mode>3): Likewise.
14960         (<sse>_vmadd<mode>3): Likewise.
14961         (sub<mode>3): Likewise.
14962         (*sub<mode>3): Likewise.
14963         (<sse>_vmsub<mode>3): Likewise.
14964         (smin<mode>3): Likewise.
14965         (*smin<mode>3_finite): Likewise.
14966         (*smin<mode>3): Likewise.
14967         (<sse>_vmsmin<mode>3): Likewise.
14968         (smax<mode>3): Likewise.
14969         (*smax<mode>3_finite): Likewise.
14970         (*smax<mode>3): Likewise.
14971         (<sse>_vmsmax<mode>3): Likewise.
14972         (sse3_haddv4sf3): Likewise.
14973         (sse3_haddv2df3): Likewise.
14974         (sse3_hsubv4sf3): Likewise.
14975         (sse3_hsubv2df3): Likewise.
14976         (umaxv16qi3): Likewise.
14977         (*umaxv16qi3): Likewise.
14978         (smaxv8hi3): Likewise.
14979         (*smaxv8hi3): Likewise.
14980         (*sse4_1_smax<mode>3): Likewise.
14981         (*sse4_1_umax<mode>3): Likewise.
14982         (uminv16qi3): Likewise.
14983         (*uminv16qi3): Likewise.
14984         (sminv8hi3): Likewise.
14985         (*sminv8hi3): Likewise.
14986         (*sse4_1_smin<mode>3): Likewise.
14987         (*sse4_1_umin<mode>3): Likewise.
14988
14989 2008-04-01  Rafael Espindola  <espindola@google.com>
14990
14991         * tree-cfg.c (verify_expr): remove in_phi.
14992         (verify_stmt): Don't call walk_tree with verify_expr. Use
14993         is_gimple_min_invariant instead of is_gimple_val.
14994
14995 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
14996
14997         * doc/include/gpl_v3.texi: Update for manpage generation.
14998         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
14999         gpl.texi.
15000         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
15001         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
15002         gpl_v3.texi instead of gpl.texi.
15003         (gpl.pod): New.
15004
15005 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
15006
15007         PR pch/13675
15008         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
15009
15010 2008-04-01  Rafael Espindola  <espindola@google.com>
15011
15012         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
15013         (extract_code_and_val_from_cond): Use
15014         extract_code_and_val_from_cond_with_ops.
15015
15016 2008-04-01  Jan Hubicka  <jh@suse.cz>
15017
15018         * function.c (free_after_compilation): Free epilogue_delay_list.
15019         (prepare_function_start): Assert that previous compilation was freed.
15020
15021 2008-04-01  Jan Hubicka  <jh@suse.cz>
15022             Jim Wilson  <wilson@tuliptree.org>
15023             Andreas Tobler <andreast@gcc.gnu.org>
15024
15025         PR middle-end/35781
15026         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
15027         rtl.emit instead cfun->emit.
15028         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
15029         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
15030
15031 2008-04-01  Ben Elliston  <bje@au.ibm.com>
15032
15033         * doc/c-tree.texi (Function Basics): Fix grammatical error.
15034
15035 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
15036
15037         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
15038         New options
15039         (fprofile-use): Add var flag_profile_use
15040         * coverage.c (coverage_begin_output): Do not open a gcno file for
15041         output only if -ftest-coverage is set.
15042         Do not add getpwd() to gcda file path.
15043         (build_gcov_info): Check the new flag
15044         flag_profile_datafile_relative_path.
15045         (coverage_init): Use profile_data_prefix.
15046         Read profile counter only if flag_profile_use is set.
15047         * opts.c (common_handle_option): New option fprofile-use=,
15048         fprofile-dir=, fprofile-generate=.
15049         * toplev.c (profile_data_prefix): New variable definition.
15050         * toplev.h (profile_data_prefix): New declaration.
15051         * doc/invoke.tex (Option Summary, Optimization Options):
15052         Add new options.
15053
15054 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
15055
15056         * varasm.c (output_constant_pool_1): In LABEL_REF check,
15057         use tmp consistently.
15058
15059         PR target/35695
15060         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
15061         * config/ia64/ia64.c (rtx_needs_barrier): Handle
15062         UNSPEC_FR_RECIP_APPROX_RES.
15063         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
15064
15065 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
15066
15067         PR c/35750
15068         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
15069
15070 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15071
15072         PR middle-end/30186
15073         * fold-const.c (fold_indirect_ref_1): Support accessing non first
15074         element of the vector via a pointer.
15075
15076 2008-03-31  Ian Lance Taylor  <iant@google.com>
15077
15078         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
15079
15080 2008-03-31  Jan Hubicka  <jh@suse.cz>
15081
15082         * builtins.c (expand_builtin_setjmp_receiver): Update call of
15083         get_arg_pointer_save_area.
15084         * expr.c (init_expr): Just clear out rtl.expr.
15085         * function.c (free_after_compilation): Clear out whole RTL structure.
15086         (get_func_frame_size): Merge into ...
15087         (get_frame_size): ... this one.
15088         (assign_stack_local_1): Merge into ...
15089         (assign_stack_local): ... this one.
15090         (expand_function_end): Update call of get_arg_pointer_save_area.
15091         (get_art_pointer_save_area): Remove cfun argument.
15092         * function.h (emit_status): regno_pointer_align does not need length
15093         attribute. Move x_regno_reg_rtx to ...
15094         (regno_reg_rtx): ... new global array.
15095         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
15096         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
15097         apply_args_value, forced_labels, stack_pointer_delta):
15098         Update accestors.
15099         (struct varasm_status): Move here from varasm.c
15100         (struct rtl_data): New. Move here some fields from struct function.
15101         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
15102         frame_offset, stack_check_probe_note, arg_pointer_save_area,
15103         used_temp_slots avail_temp_slots, temp_slot_level,
15104         nonlocal_goto_handler_labels): Update accesstors.
15105         (rtl): New global variable.
15106         (struct function): Move some fileds to rtl_data.
15107         (get_arg_pointer_save_area): Update prototype.
15108         * emit-rtl.c (rtl): Declare.
15109         (regno_reg_rtx): Declare.
15110         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
15111         Update.
15112         (gen_reg_rtx): Update.
15113         (init_virtual_regs): Do not tate emit_status argument.
15114         (init_emit): Do not allocate emit.
15115         * varasm.c (varasm_statuc): Move to function.h.
15116         (n_deferred_constatns): Update accestor.
15117         (init_varasm_status): Do not allocate varasm_status.
15118         (force_const_mem, get_pool_size, output_constant_pool): Update.
15119         * stmt.c (force_label_rtx): Do not use x_ prefixes.
15120         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
15121
15122 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
15123
15124         PR rtl-optimization/35729
15125         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
15126         references.
15127
15128 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
15129
15130         PR target/32000
15131         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
15132         load/store if memory is unaligned.
15133         (*movti_rex64): Likewise.
15134
15135         * config/i386/predicates.md (misaligned_operand): New.
15136
15137 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
15138
15139         PR tree-opt/35431
15140         * tree-ssa-phiopt.c (conditional_replacement): Return early for
15141         complex types.
15142
15143 2008-03-31  Jan Beulich  <jbeulich@novell.com>
15144
15145         * config/ia64/constraints.md: Add 'j' constraint.
15146         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
15147         (movdi_internal): Likewise.
15148
15149 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
15150
15151         PR c/35748
15152         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
15153
15154 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
15155
15156         PR target/35757
15157         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
15158         proper error message for the third argument on blendpd and
15159         blendps.
15160
15161         * config/i386/sse.md (blendbits): New.
15162         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
15163
15164 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
15165
15166         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
15167
15168 2008-03-30  Richard Guenther  <rguenther@suse.de>
15169
15170         PR middle-end/31023
15171         * fold-const.c (fold_sign_changed_comparison): Do leave
15172         conversions to base-types alone.
15173
15174 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15175
15176         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
15177         the link register if one altivec register is be saved.
15178
15179 2008-03-30  Ben Elliston  <bje@au.ibm.com>
15180
15181         * final.c (final_scan_insn): Remove if (0) code.
15182
15183 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
15184
15185         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
15186
15187 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
15188
15189         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
15190         of V4SFmode to ix86_binary_operator_ok.
15191
15192 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
15193
15194         * config/i386/i386.c (override_options): Initialize
15195         ix86_veclib_handler to ix86_veclibabi_svml when
15196         -mveclibabi=svml is used.
15197         (ix86_veclibabi_svml): New function for SVML ABI style
15198         vectorization support.
15199         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
15200
15201 2008-03-28  Rafael Espindola  <espindola@google.com>
15202
15203         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
15204         (tree_binary_nonnegative_warnv_p): Make it public.
15205         (tree_single_nonnegative_warnv_p): Make it public.
15206         (tree_invalid_nonnegative_warnv_p): Make it public.
15207         (tree_unary_nonzero_warnv_p): Make it public.
15208         (tree_binary_nonzero_warnv_p): Make it public
15209         (tree_single_nonzero_warnv_p): Make it public.
15210         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
15211         (extract_range_from_binary_expr): Split the expr argument.
15212         (extract_range_from_unary_expr): Split the expr argument.
15213         (extract_range_from_comparison): Split the expr argument.
15214         (extract_range_from_expr): Use the new aux functions.
15215         (vrp_evaluate_conditional_warnv): Use
15216         vrp_evaluate_conditional_warnv_with_ops.
15217         * tree.h (tree_unary_nonzero_warnv_p): Declare.
15218         (tree_binary_nonzero_warnv_p): Declare.
15219         (tree_single_nonzero_warnv_p): Declare.
15220         (tree_expr_nonzero_warnv_p): Declare.
15221         (tree_unary_nonnegative_warnv_p): Declare.
15222         (tree_binary_nonnegative_warnv_p): Declare.
15223         (tree_single_nonnegative_warnv_p): Declare.
15224         (tree_invalid_nonnegative_warnv_p): Declare.
15225
15226 2008-03-28  Richard Guenther  <rguenther@suse.de>
15227
15228         PR tree-optimization/30317
15229         PR tree-optimization/30911
15230         PR tree-optimization/34793
15231         * tree-vrp.c (set_and_canonicalize_value_range): New function.
15232         (struct assert_locus_d): New member EXPR.
15233         (register_new_assert_for): Add EXPR parameter to support
15234         ASSERT_EXPR <name, expr OP limit>.
15235         (register_edge_assert_for_1): Adjust callers.
15236         (find_assert_locations): Likewise.
15237         (process_assert_insertions_for): Build condition from expression.
15238         (extract_range_from_assert): Handle ASSERT_EXPRs
15239         of the form ASSERT_EXPR <name, expr OP limit>.
15240         (register_edge_assert_for_2): New helper registering
15241         asserts for comparisons.  Recognize range tests of the form
15242         (unsigned)i - CST1 OP CST2.
15243         (register_edge_assert_for_1): Use it.
15244         (register_edge_assert_for): Likewise.
15245         (needs_overflow_infinity): Integer sub-types
15246         do not need overflow infinities.
15247         (vrp_val_is_max): The extreme values of integer sub-types
15248         are those of the base type.
15249         (vrp_val_is_min): Likewise.
15250         * tree.def (ASSERT_EXPR): Document extra allowed conditional
15251         expressions.
15252
15253 2008-03-28  Nick Clifton  <nickc@redhat.com>
15254
15255         PR target/31110
15256         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
15257         Return GENERAL_REGS for stack adjustment reloads.
15258
15259 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15260
15261         PR target/31334
15262         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
15263         const_vector when all the vectors are constant.
15264
15265 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
15266
15267         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
15268         comparisons.
15269         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
15270         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
15271         (scc_sf): New.
15272         (s<code>_sf): Use new scc_sf attribute for opcode names.
15273
15274 2008-03-27  Tom Tromey  <tromey@redhat.com>
15275
15276         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
15277         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
15278         config/spu/t-spu-elf, config/i386/t-interix,
15279         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
15280         config/i386/x-darwin, config/i386/x-mingw32,
15281         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
15282         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
15283         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
15284         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
15285         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
15286         config/rs6000/x-darwin, config/rs6000/t-rs6000,
15287         config/score/t-score-elf, config/arm/t-strongarm-pe,
15288         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
15289         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
15290         Revert automatic dependency patch.
15291
15292 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15293
15294         PR target/35657
15295         * config/i386/i386.c (ix86_function_arg_boundary): Align
15296         decimal floating point to its natural boundary.
15297
15298 2008-03-27  Richard Guenther  <rguenther@suse.de>
15299
15300         PR middle-end/35716
15301         * fold-const.c (fold_comparison): Restrict distinct decl
15302         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
15303         solely rely on operand_equal_p.
15304
15305 2008-03-27  Richard Guenther  <rguenther@suse.de>
15306
15307         PR c/32511
15308         * c-common.c (handle_weak_attribute): Reject combination of
15309         weak and inline.
15310
15311 2008-03-27  Richard Guenther  <rguenther@suse.de>
15312
15313         PR tree-optimization/32810
15314         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
15315         conversions from DECL_INITIAL.
15316         (fold_const_aggregate_ref): Likewise from constructor elements.
15317
15318 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
15319
15320         * tree-affine.h (aff_combination_expand): Declare.
15321         (get_inner_reference_aff): Likewise.
15322         * tree-affine.c (aff_combination_expand): Split out from
15323         tree_to_aff_combination_expand.
15324         (get_inner_reference_aff): New function.
15325         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
15326         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
15327         (struct lim_aux_data): sm_done field removed.
15328         (mem_ref_loc_p, mem_ref_locs_p): New types.
15329         (struct mem_ref): Added id, stored, accesses_in_loop,
15330         indep_loop, dep_loop, indep_ref, dep_ref fields.
15331         Removed is_stored, locs and next fields.
15332         (memory_accesses): New variable.
15333         (movement_possibility): Do not allow moving statements
15334         that store to memory.
15335         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
15336         New functions.
15337         (determine_max_movement): For statements with memory references,
15338         find the outermost loop in that the reference is independent.
15339         (move_computations_stmt): Mark the virtual operands for renaming.
15340         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
15341         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
15342         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
15343         add_vop_ref_mapping, create_vop_ref_mapping_loop,
15344         create_vop_ref_mapping, analyze_memory_references,
15345         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
15346         get_all_locs_in_loop, ref_always_accessed_p,
15347         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
15348         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
15349         store_motion_loop, store_motion): New functions.
15350         (struct vop_to_refs_elt): New type.
15351         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
15352         memref_hash, memref_eq, hoist_memory_references): Rewritten.
15353         (schedule_sm): Replaced by...
15354         (execute_sm): ... this.
15355         (determine_lsm_ref, hoist_memory_references,
15356         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
15357         find_more_ref_vops, free_mem_ref, free_mem_refs,
15358         determine_lsm_loop, determine_lsm): Removed.
15359         (tree_ssa_lim_finalize): Free data structures used by store motion.
15360         (tree_ssa_lim): Call analyze_memory_references.  Use
15361         store_motion instead of determine_lsm.
15362
15363 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
15364
15365         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
15366         rename tmake_file to m68hc11/t-m68hc11.
15367         (mcore): Set inhibit_libc to true.
15368         * config.host (alpha*-dec-*vms*): Set extra_programs.
15369         (interix3*): Don't use host_xmake_file.
15370         * configure.ac: Let config.gcc override inhibit_libc.
15371         * configure: Regenerate.
15372
15373         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
15374         * config/t-openbsd-thread: Remove commented out lines.
15375
15376         * config/x-interix: Remove.
15377
15378         * config/m68hc11/t-m68hc11-gas: Rename to...
15379         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
15380
15381         * config/mcore/t-mcore: Remove T_CFLAGS.
15382         * config/mcore/t-mcore-pe: Likewise.
15383
15384 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
15385
15386         * configure.ac: Replace custom __GNU_SOURCE test with
15387         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
15388         * aclocal.m4: Regenerate.
15389         * configure: Regenerate.
15390         * config.in: Regenerate.
15391
15392 2008-03-27  Richard Guenther  <rguenther@suse.de>
15393
15394         * fold-const.c (target.h): Include.
15395         (fold_comparison): Fold comparison of addresses of decls
15396         that bind locally or of constants.  Consolidate address folding code.
15397         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
15398         results from fold_binary_to_constant.
15399         (compare_values_warnv): Likewise.
15400
15401 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
15402
15403         PR middle-end/35429
15404         * fold-const.c (fold_truthop): Check for integeral types when folding
15405         a == 0 && b == 0 and a != 0 || b != 0 .
15406
15407 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
15408
15409         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
15410
15411 2008-03-26  Andreas Schwab  <schwab@suse.de>
15412
15413         * doc/invoke.texi: Fix use of @item vs. @itemx.
15414
15415 2008-03-26  Tom Tromey  <tromey@redhat.com>
15416
15417         * Makefile.in (build/gensupport.o, build/print-rtl.o,
15418         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
15419         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
15420         build/gencodes.o, build/genconditions.o, build/genconfig.o,
15421         build/genconstants.o, build/genemit.o, build/genextract.o,
15422         build/genflags.o, build/genmddeps.o, build/genopinit.o,
15423         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
15424         options.h.
15425
15426 2008-03-26  Richard Guenther  <rguenther@suse.de>
15427
15428         Revert
15429         2008-03-26  Richard Guenther  <rguenther@suse.de>
15430
15431         * fold-const.c (target.h): Include.
15432         (fold_comparison): Fold comparison of addresses of two decls
15433         that bind locally.  Consolidate address folding code.
15434
15435 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15436
15437         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
15438         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
15439         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
15440         dconstsqrt2, dconstthird, dconste and/or dconst10.
15441         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
15442         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
15443         dconstsqrt2, dconste): Delete.
15444         (init_emit_once): Likewise.  Simplify initializing dconstm1.
15445         Constify variable.
15446         * real.c (get_real_const): New.
15447         * real.h (dconst3, dconst10, dconstm2, dconstthird,
15448         dconstsqrt2, dconste): Delete.
15449         (real_value_const, get_real_const): New.
15450
15451 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
15452
15453         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
15454
15455         * config/i386/i386.c (ix86_function_arg_boundary): Check
15456         BIGGEST_ALIGNMENT instead of 128.
15457         (setup_incoming_varargs_64): Likewise.
15458
15459 2008-03-26  Tom Tromey  <tromey@redhat.com>
15460
15461         * Makefile.in (DEPFILES): Add missing '/'.
15462
15463 2008-03-26  Richard Guenther  <rguenther@suse.de>
15464
15465         * fold-const.c (target.h): Include.
15466         (fold_comparison): Fold comparison of addresses of two decls
15467         that bind locally.  Consolidate address folding code.
15468
15469 2008-03-26  Nick Clifton  <nickc@redhat.com>
15470
15471         PR target/31232
15472         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
15473         not allow INT+INT as a legitimate addressing mode.
15474
15475 2008-03-26  Richard Guenther  <rguenther@suse.de>
15476
15477         * tree-flow.h (widen_bitfield): Remove declaration.
15478         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
15479         (widen_bitfield): Remove function.
15480         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
15481         code.
15482
15483 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15484
15485         PR target/31558
15486         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
15487         error_mark_node's.
15488
15489 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
15490
15491         PR rtl-optimization/35232
15492         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
15493         (forget_old_reloads_1, forget_marked_reloads): Don't clear
15494         reg_reloaded_call_part_clobbered here.
15495         (reload_regs_reach_end_p): New function.
15496         (reload_reg_rtx_for_input): New variable.
15497         (reload_reg_rtx_for_output): Likewise.
15498         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
15499         when reassigning a pseudo register.  Load reloadreg from
15500         reload_reg_rtx_for_input, moving the mode and register
15501         calculation to...
15502         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
15503         instead of the original when deciding whether an input reload
15504         would be a no-op or whether an output reload can be deleted.
15505         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
15506         when setting up new_spill_reg_store.  Load it from
15507         reload_reg_rtx_for_output, moving the mode and register
15508         calculation to...
15509         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
15510         instead of the original when deciding whether an output reload
15511         would be a no-op.  Do the same when modifying insn notes.
15512         Use rtx_equal_p instead of == to compare the registers.
15513         (inherit_piecemeal_p): Take a mode and two register numbers
15514         as argument.
15515         (emit_reload_insns): Clear new_spill_reg_store for every hard
15516         register in the reload register.  Remove spill registers
15517         from reg_reloaded_valid before considering whether to record
15518         inheritance information for them.  Use reload_reg_rtx_for_output
15519         instead of reg_rtx when recording output reloads.  Use
15520         reload_reg_rtx_for_input instead of reg_rtx when recording
15521         input reloads.  Set or clear reg_reloaded_call_part_clobbered
15522         at the same time as setting reg_reloaded_valid.
15523         (delete_output_reload): Add a new_reload_reg parameter and use it
15524         instead of rld[j].reg_rtx.
15525         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
15526         calls accordingly.
15527
15528 2008-03-25  Tom Tromey  <tromey@redhat.com>
15529
15530         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
15531         (build/genattr.o): Likewise.
15532         (build/genattrtab.o): Likewise.
15533         (build/gencodes.o): Likewise.
15534         (build/genconfig.o): Likewise.
15535         (build/genconstants.o): Likewise.
15536         (build/genemit.o): Likewise.
15537         (build/genextract.o): Likewise.
15538         (build/genflags.o): Likewise.
15539
15540 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
15541
15542         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
15543         instead of size_int for integer types.
15544         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
15545         to match type of MINUS_EXPR.
15546
15547 2008-03-25  Tom Tromey  <tromey@redhat.com>
15548
15549         * configure: Rebuilt.
15550         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
15551         Makefile.
15552
15553 2008-03-25  Tom Tromey  <tromey@redhat.com>
15554
15555         * config/x-solaris (host-solaris.o): Update.
15556         * config/x-linux (host-linux.o): Update.
15557         * config/x-hpux (host-hpux.o): Update.
15558         * config/x-darwin (host-darwin.o): Update.
15559         * config/v850/t-v850e (v850-c.o): Update.
15560         * config/v850/t-v850 (v850-c.o): Update.
15561         * config/t-vxworks (vxworks.o): Update.
15562         * config/t-sol2 (sol2-c.o, sol2.o): Update.
15563         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
15564         * config/spu/t-spu-elf (spu-c.o): Update.
15565         (spu.o): Remove.
15566         * config/sh/t-symbian (sh-c.o): Update.
15567         (symbian.o): Update.
15568         * config/sh/t-sh (sh-c.o): Update.
15569         * config/score/t-score-elf (score7.o, score3.o): Update.
15570         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
15571         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
15572         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
15573         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
15574         (rs6000.o): Remove.
15575         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
15576         * config/m32c/t-m32c (m32c-pragma.o): Update.
15577         * config/ia64/t-ia64 (ia64-c.o): Update.
15578         * config/i386/x-mingw32 (host-mingw32.o): Update.
15579         * config/i386/x-i386 (driver-i386.o): Update.
15580         * config/i386/x-darwin (host-i386-darwin.o): Update.
15581         * config/i386/x-cygwin (host-cygwin.o): Update.
15582         * config/i386/t-nwld (nwld.o): Update.
15583         * config/i386/t-netware (netware.o): Update.
15584         * config/i386/t-interix (winnt.o): Update.
15585         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
15586         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
15587         msformat-c.o): Update.
15588         * config/bfin/t-bfin-linux (generated_files): Add
15589         linux-sysroot-suffix.h.
15590         * config/arm/t-wince-pe (pe.o): Update.
15591         * config/arm/t-strongarm-pe (pe.o): Update.
15592         * config/arm/t-pe (pe.o): Update.
15593         * config/arm/t-arm (arm-c.o): Update.
15594         * doc/install.texi (Prerequisites): Require make 3.80.
15595         * Makefile.in: Remove .o targets.
15596         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
15597         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
15598         (simple_generated_h, simple_generated_c): Move earlier.
15599         (generated_files): New variable.
15600         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
15601         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
15602         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
15603         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
15604         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
15605         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
15606         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
15607         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
15608         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
15609         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
15610         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
15611         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
15612         (.c.o): Remove.
15613         (COMPILE.base, COMPILE): New variables.
15614         (%.o): New pattern rule.
15615         (ALL_HOST_OBJS): New variable.
15616         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
15617         (dummy-checksum.o, cc1-checksum.o): Remove.
15618         (DRIVER_SHLIB): New variable.
15619         (DRIVER_DEFINES): Use it.
15620         (gencondmd.c): Move out of build/.
15621         (s-conditions): Update.
15622         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
15623         (ALL_BUILD_OBJS): Likewise.
15624         (build/%.o): Use BUILDCOMPILE.
15625         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
15626         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
15627         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
15628         build/gencheck.o, build/gencodes.o, build/genconditions.o,
15629         build/genconfig.o, build/genconstants.o, build/genemit.o,
15630         build/genextract.o, build/genflags.o, build/genmddeps.o,
15631         build/genopinit.o, build/genoutput.o, build/genpeep.o,
15632         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
15633         build/gen-protos.o, build/scan.o, build/fix-header.o,
15634         build/scan-decls.o): Simplify.
15635         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
15636         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
15637         prefix.o, toplev.o): Reduce to variable setting.
15638         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
15639         ($(out_object_file), gcc-options.o): New targets.
15640         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
15641         * configure: Rebuilt.
15642         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
15643         * doc/sourcebuild.texi (Front End Directory): Document new variable.
15644
15645 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
15646
15647         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
15648         complain when we hit an error, return ERROR_MARK_NODE.
15649
15650 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
15651
15652         * config/sh/constraints.md (Pso, Psz): New constraints.
15653         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
15654         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
15655
15656 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
15657
15658         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
15659         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
15660
15661 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
15662
15663         * config/sh/sh.md (prefetch): Add condition for SH2A target.
15664         (prefetch_sh2a): New.
15665
15666 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
15667             Naveen.H.S  <naveen.hs@kpitcummins.com>
15668
15669         * config/sh/constraints.md (I28): New constraint.
15670         * config/sh/sh.c (broken_move): Add support for movi20s.
15671         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
15672
15673 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
15674             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
15675             Naveen.H.S  <naveen.hs@kpitcummins.com>
15676
15677         * config/sh/sh.c (SH_ATTRIBUTES): Define.
15678         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
15679         (print_operand): Handle resbank in %@ operand code.
15680         (sh_encode_section_info): New.
15681         (push_regs): Add conditions for resbank.
15682         (sh_expand_epilogue): Likewise.
15683         (sh_insert_attributes): Likewise.
15684         (sh_attribute_table): Likewise.
15685         (sh_handle_resbank_handler_attribute): New.
15686         (sh2a_handle_function_vector_handler_attribute): New.
15687         (sh2a_is_function_vector_call): New.
15688         (sh2a_get_function_vector_number): New.
15689         (sh2a_function_vector_p): New.
15690         (sh_cfun_resbank_handler_p): New.
15691         * config/sh/sh.md (calli): Emit jsr/n if possible.
15692         (calli_tbr_rel): New.
15693         (calli_pcrel): Emit jsr/n if possible.
15694         (return_i): Emit rts/n if possible.
15695         (call_valuei_tbr_rel): New.
15696         (call_valuei_pcrel): Add condition for SH2A target.
15697         (call_value): Likewise.
15698         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
15699         (sh2a_get_function_vector_number): Likewise.
15700         (sh2a_is_function_vector_call): Likewise.
15701         * doc/extend.texi: Document TBR relative addressing of SH2A.
15702         (resbank): Add description for SH2A.
15703
15704 2008-03-24  Richard Guenther  <rguenther@suse.de>
15705
15706         PR c/22371
15707         * gimplify.c (gimplify_modify_expr): For frontend type-correct
15708         pointer assignments change conversions according to middle-end rules.
15709         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
15710         * configure.ac: Include type checking in yes.
15711         * configure: Regenerate.
15712
15713 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15714
15715         * diagnostic.c (diagnostic_count_diagnostic): Delete.
15716         (diagnostic_report_diagnostic): Update. Handle ICEs here.
15717
15718 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
15719
15720         * gthr-vxworks.h (UNUSED): Define.
15721
15722 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
15723
15724         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
15725
15726 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
15727
15728         * doc/extend.texi (Function Attributes): Add missing comma in the
15729         example of the "alloc_size" attribute.
15730
15731 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
15732
15733         Revert:
15734         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
15735
15736         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
15737         32bit host.
15738
15739         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
15740
15741         PR target/35496
15742         * stor-layout.c (update_alignment_for_field): Set minimum alignment
15743         of the underlying type of a MS bitfield layout to the natural
15744         alignment of the type.
15745
15746         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
15747
15748         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
15749         to their natural alignment to avoid store forwarding stalls.
15750
15751 2008-03-22  Richard Guenther  <rguenther@suse.de>
15752
15753         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
15754         For PHI nodes verify the address is invariant.
15755         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
15756         (get_symbol_constant_value): Use is_gimple_min_invariant.
15757         (maybe_fold_stmt_indirect): Likewise.
15758
15759 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
15760
15761         PR rtl-optimization/33927
15762         * Makefile.in (dse.o): Depend on $(TM_P_H).
15763         * expr.h (extract_low_bits): Declare.
15764         * expmed.c (extract_low_bits): New function.
15765         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
15766         * dse.c: Include tm_p.h.
15767         (find_shift_sequence): Remove the read_reg argument and return the
15768         read value.  Emit the instructions instead of returning them.
15769         Iterate on new_mode rather than calculating it each time.
15770         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
15771         source to NEW_MODE and extract_low_bits to convert the shifted
15772         value to READ_MODE.
15773         (replace_read): Allow the load and store to have different mode
15774         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
15775         or extraction instructions before trying the replacement.  Update
15776         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
15777
15778 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
15779
15780         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
15781         to their natural alignment to avoid store forwarding stalls.
15782
15783 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15784
15785         PR target/27946
15786         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
15787         encouraging but not allowing gprs for input;
15788         change the input constraint to !f#r.
15789         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
15790         gprs for output;
15791         change the output constraint to !f#r.
15792
15793 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
15794
15795         PR target/13958
15796         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
15797         corresponding post-reload splitters.
15798         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
15799         when x87 FP math is selected.
15800         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
15801         New function prototype.
15802         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
15803         unreachable function to ease macroization of insn patterns.
15804
15805 2008-03-21  Martin Jambor  <mjambor@suse.cz>
15806
15807         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
15808         reference dumps if ddr is NULL or dependence is unknown.
15809
15810 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
15811
15812         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
15813         unsigned extension into account.
15814         (ATOMIC_COMPARE_AND_SWAP): Likewise.
15815         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
15816         Do computations on a scratch register.
15817
15818 2008-03-21  Richard Guenther  <rguenther@suse.de>
15819
15820         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
15821         Use is_gimple_min_invariant instead of TREE_INVARIANT.
15822         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
15823         * tree-ssa-dom.c (record_equality): Likewise.
15824         * tree-inline.c (copy_body_r): Likewise.
15825         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
15826         TREE_INVARIANT.
15827
15828 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
15829
15830         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
15831         as 'delete_unused' argument.
15832
15833 2008-03-20  Richard Guenther  <rguenther@suse.de>
15834
15835         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
15836         special casing of constant qualifiers.
15837         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
15838         care about them in general.
15839         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
15840         regardless of their type.
15841         (fold_stmt_r): Forcefully fold *& if we end up with that.
15842
15843 2008-03-20  Paul Brook  <paul@codesourcery.com>
15844
15845         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
15846         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
15847         linker flags.
15848         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
15849         definition.
15850         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
15851         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
15852
15853 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
15854
15855         * common.opt (Wmudflap): New option.
15856         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
15857         (mx_register_decls): Likewise.
15858         (mudflap_finish_file): Likewise.
15859         * doc/invoke.texi: Document -Wno-mudflap.
15860
15861 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
15862
15863         * c-format.c (replace_format_name_to_system_name): New.
15864         (cmp_attribs): New.
15865         (convert_format_name_to_system_name): New.
15866         (decode_format_attr): Add use of convert_format_name_to_system_name.
15867         (format_types_orig): Add gnu_ prefix to names.
15868         (check_format_info_main): Special treating of \0 escaped names for
15869         supporting multi-character format specifiers as I32, I64.
15870         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
15871         (gnu_target_overrides_format_attributes): New.
15872         * c-format.h: Add structure target_ovr_attr to hold
15873         system specific formatter names.
15874         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
15875         msformat-c.o file to c_target_objs and cxx_target_objs.
15876         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
15877         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
15878         (TARGET_N_FORMAT_TYPES): New.
15879         * config/i386/msformat-c.c: New.
15880         * config/i386/t-cygming: Add build rule for msformat-c.o.
15881         * doc/extend.texi: Add new format names gnu_* and ms_* and
15882         further details.
15883         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
15884
15885 2008-03-20  Ira Rosen  <irar@il.ibm.com>
15886
15887         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
15888         optimizations turned on under -O3.
15889         (ftree-vectorize): Add that the flag is turned on with -O3.
15890
15891 2008-03-20  Ben Elliston  <bje@au.ibm.com>
15892
15893         * regmove.c (try_auto_increment): Fix spelling error in comment.
15894         * final.c (final_scan_insn): Likewise.
15895
15896 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
15897
15898         PR target/14552
15899         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
15900         allocator preferences for "y" and "r" class registers.
15901         ("*mov<mode>_internal"): Ditto.
15902         ("*movv2sf_internal_rex64"): Ditto.
15903         ("*movv2sf_internal"): Ditto.
15904
15905 2008-03-19  Michael Matz  <matz@suse.de>
15906
15907         PR middle-end/35616
15908         * calls.c (expand_call): Check overlap of arguments with call
15909         address for sibcalls.
15910
15911 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
15912
15913         PR target/35496
15914         * stor-layout.c (update_alignment_for_field): Set minimum alignment
15915         of the underlying type of a MS bitfield layout to the natural
15916         alignment of the type.
15917
15918 2008-03-19  Jan Hubicka  <jh@suse.cz>
15919
15920         PR other/35094
15921         * toplev.c (decode_d_option): Handle all CPP flags.
15922         * tree-vrp.c: Update tree_pass descriptors.
15923         * regrename.c: Update tree_pass descriptors.
15924         * fwprop.c: Update tree_pass descriptors.
15925         * doc/invoke.texi: Remove documentation of dropped -d? flags.
15926         * tree-into-ssa.c: Update tree_pass descriptors.
15927         * tree-dump.c: Update tree_pass descriptors.
15928         * tree-complex.c: Update tree_pass descriptors.
15929         * tree-dump.h: Update tree_pass descriptors.
15930         * see.c: Update tree_pass descriptors.
15931         * cgraphbuild.c: Update tree_pass descriptors.
15932         * tracer.c: Update tree_pass descriptors.
15933         * tree-loop-distribution.c: Update tree_pass descriptors.
15934         * cgraph.c: Update tree_pass descriptors.
15935         * postreload-gcse.c: Update tree_pass descriptors.
15936         * postreload.c: Update tree_pass descriptors.
15937         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
15938         * tree-tailcall.c: Update tree_pass descriptors.
15939         * tree-pass.h (tree_opt_pass): Rename to ...
15940         (opt_pass) ... this one; add "type" field and remove letter field.
15941         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
15942         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
15943         all_lowering_passes): Update declaration.
15944         * ipa-cp.c: Update tree_pass descriptors.
15945         * final.c: Update tree_pass descriptors.
15946         * omp-low.c: Update tree_pass descriptors.
15947         * tree-ssa-dse.c: Update tree_pass descriptors.
15948         * ipa-reference.c: Update tree_pass descriptors.
15949         * tree-ssa-uncprop.c: Update tree_pass descriptors.
15950         * auto-inc-dec.c: Update tree_pass descriptors.
15951         * reorg.c: Update tree_pass descriptors.
15952         * cgraphunit.c: Update tree_pass descriptors.
15953         * tree-ssa-copyrename.c: Update tree_pass descriptors.
15954         * tree-ssa-ccp.c: Update tree_pass descriptors.
15955         * df-core.c: Update tree_pass descriptors.
15956         * mode-switching.c: Update tree_pass descriptors.
15957         * tree-nomudflap.c: Update tree_pass descriptors.
15958         * modulo-sched.c: Update tree_pass descriptors.
15959         * ipa-pure-const.c: Update tree_pass descriptors.
15960         * cse.c: Update tree_pass descriptors.
15961         * web.c: Update tree_pass descriptors.
15962         * tree-stdarg.c: Update tree_pass descriptors.
15963         * tree-ssa-math-opts.c: Update tree_pass descriptors.
15964         * tree-ssa-dom.c: Update tree_pass descriptors.
15965         * tree-nrv.c: Update tree_pass descriptors.
15966         * tree-ssa-alias.c: Update tree_pass descriptors.
15967         * loop-init.c: Update tree_pass descriptors.
15968         * gimple-low.c: Update tree_pass descriptors.
15969         * ipa-inline.c: Update tree_pass descriptors.
15970         * tree-ssa-sink.c: Update tree_pass descriptors.
15971         * global.c: Update tree_pass descriptors.
15972         * ifcvt.c: Update tree_pass descriptors.
15973         * jump.c: Update tree_pass descriptors.
15974         * predict.c: Update tree_pass descriptors.
15975         * tree-ssa-loop.c: Update tree_pass descriptors.
15976         * recog.c: Update tree_pass descriptors.
15977         * dse.c: Update tree_pass descriptors.
15978         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
15979         * tree-eh.c: Update tree_pass descriptors.
15980         * regmove.c: Update tree_pass descriptors.
15981         * local-alloc.c
15982         * function.c: Update tree_pass descriptors.
15983         * tree-vectorizer.c: Update tree_pass descriptors.
15984         * gcse.c: Update tree_pass descriptors.
15985         * ipa-type-escape.c: Update tree_pass descriptors.
15986         * tree-if-conv.c: Update tree_pass descriptors.
15987         * init-regs.c: Update tree_pass descriptors.
15988         * ipa.c: Update tree_pass descriptors.
15989         * tree-ssa-phiopt.c: Update tree_pass descriptors.
15990         * rtl-factoring.c: Update tree_pass descriptors.
15991         * lower-subreg.c: Update tree_pass descriptors.
15992         * bt-load.c: Update tree_pass descriptors.
15993         * tree-dfa.c: Update tree_pass descriptors.
15994         * except.c: Update tree_pass descriptors.
15995         * emit-rtl.c: Update tree_pass descriptors.
15996         * cfgexpand.c: Update tree_pass descriptors.
15997         * tree-cfgcleanup.c: Update tree_pass descriptors.
15998         * cfgcleanup.c: Update tree_pass descriptors.
15999         * tree-ssa-pre.c: Update tree_pass descriptors.
16000         * tree-sra.c: Update tree_pass descriptors.
16001         * tree-mudflap.c: Update tree_pass descriptors.
16002         * tree-ssa-copy.c: Update tree_pass descriptors.
16003         * cfglayout.c: Update tree_pass descriptors.
16004         * tree-ssa-forwprop.c: Update tree_pass descriptors.
16005         * tree-ssa-dce.c: Update tree_pass descriptors.
16006         * tree-ssa.c: Update tree_pass descriptors.
16007         * regclass.c: Update tree_pass descriptors.
16008         * integrate.c: Update tree_pass descriptors.
16009         * tree-optimize.c: Update tree_pass descriptors.
16010         * tree-ssa-phiprop.c: Update tree_pass descriptors.
16011         * tree-object-size.c: Update tree_pass descriptors.
16012         * combine.c: Update tree_pass descriptors.
16013         * tree-outof-ssa.c: Update tree_pass descriptors.
16014         * bb-reorder.c: Update tree_pass descriptors.
16015         * stack-ptr-mod.c: Update tree_pass descriptors.
16016         * var-tracking.c: Update tree_pass descriptors.
16017         * tree-profile.c: Update tree_pass descriptors.
16018         * tree-vect-generic.c: Update tree_pass descriptors.
16019         * reg-stack.c: Update tree_pass descriptors.
16020         * sched-rgn.c: Update tree_pass descriptors.
16021         * tree-ssa-structalias.c: Update tree_pass descriptors.
16022         * tree-cfg.c: Update tree_pass descriptors.
16023         * passes.c (current_pass): Update declaration.
16024         (finish_optimization_passes): Update.
16025         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
16026         (register_one_dump_file, register_dump_files_1, next_pass_1):
16027         Update arguments.
16028         (init_optimization_passes): Update handling of new types.
16029         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
16030         * ipa-struct-reorg.c: Update tree_pass descriptors.
16031         * tree-ssa-reassoc.c: Update tree_pass descriptors.
16032         * combine-stack-adj.c: Update tree_pass descriptors.
16033         * cfgrtl.c: Update tree_pass descriptors.
16034         * dce.c: Update tree_pass descriptors.
16035         * tree-ssanames.c: Update tree_pass descriptors.
16036
16037 2008-03-19  Richard Guenther  <rguenther@suse.de>
16038
16039         PR middle-end/35609
16040         * tree-ssa.c (walk_data): New structure.
16041         (warn_uninitialized_var): If not always_executed warn with "maybe"
16042         instead of "is".
16043         (execute_early_warn_uninitialized): Compute post-dominators.
16044         Initialize always_executed before processing each basic block.
16045
16046 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
16047
16048         PR target/35504
16049         * config/i386/i386.c (x86_this_parameter): Calculate correct location
16050         of "this" pointer when "regparm = N" or "fastcall" is in effect.
16051
16052 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16053
16054         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
16055
16056 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
16057
16058         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
16059         is true.
16060         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
16061         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
16062         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
16063         target after ignore has been set, and move there also the commputation
16064         of subtarget and original_target.
16065         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
16066         (LANG_HOOKS_INITIALIZER): Remove it.
16067         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
16068
16069 2008-03-18  Richard Guenther  <rguenther@suse.de>
16070
16071         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
16072         found an expression with constants, note that in the VN for the lhs.
16073         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
16074         fold them to constants if possible.  Run cleanup_cfg if done so.
16075         (execute_pre): Return todo.
16076         (do_pre): Likewise.
16077         (execute_fre): Likewise.
16078         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
16079         of constants.
16080         (get_prop_source_stmt): Look through pointer conversions.
16081
16082 2008-03-18  Jan Hubicka  <jh@suse.cz>
16083
16084         * tree-pretty-print.c: Include predict.h.
16085         (dump_generic_node): Dump predictor.
16086         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
16087         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
16088         * gimple-low.c (lower_stmt): Likewise.
16089         * expr.c (expand_expr_real): Likewise.
16090         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
16091         them.
16092         (build_predict_expr, build_predict_expr): New.
16093         * predict.h (predictor_name, build_predict_expr): Update.
16094         * c-typeck.c (c_finish_bc_stmt): Add prediction.
16095         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
16096         * predict.def (PRED_CONTINUE): Update hitrate.
16097         * tree.def (PREDICT_EXPR): Define.
16098         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
16099         do not handle BIND_EXPR.
16100         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
16101         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
16102         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
16103         operands.
16104
16105 2008-03-18  Michael Matz  <matz@suse.de>
16106
16107         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
16108
16109 2008-03-18  Richard Guenther  <rguenther@suse.de>
16110
16111         * tree-gimple.h (is_gimple_invariant_address): Declare.
16112         (is_gimple_constant): Likewise.
16113         * tree-gimple.c (is_gimple_constant): New function.
16114         (is_gimple_invariant_address): Likewise.
16115         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
16116         and is_gimple_invariant_address.
16117         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
16118         previous change.
16119         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
16120         an addressable base.
16121
16122 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
16123
16124         PR middle-end/35611
16125         * gimplify.c (gimplify_expr): Gimplify second operand of
16126         OMP_ATOMIC_LOAD.
16127
16128 2008-03-17  Richard Guenther  <rguenther@suse.de>
16129
16130         PR tree-optimization/19637
16131         * fold-const.c (fold_unary): Remove restrictions of removing
16132         intermediate pointer-conversions (P2)(P1)P0.
16133         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
16134         conversion to void pointer.
16135         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
16136
16137 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
16138
16139         PR debug/31510
16140         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
16141         emulated thread local variables.
16142
16143 2008-03-16  Richard Guenther  <rguenther@suse.de>
16144
16145         PR middle-end/35607
16146         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
16147         expand TREE_INVARIANT operations that are not gimple invariant.
16148
16149 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
16150
16151         * doc/extend.texi (Alignment): Say that the ABI controls
16152         the __alignof__ for non-strict-alignment targets rather
16153         than being a recommendation.
16154
16155 2008-03-15  Paul Brook  <paul@codesourcery.com>
16156
16157         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
16158         annotations.
16159         (arm_output_fn_unwind): Mark functions that can not be unwound.
16160
16161 2008-03-15  Paul Brook  <paul@codesourcery.com>
16162
16163         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
16164         extension instructions.
16165
16166 2008-03-15  Richard Guenther  <rguenther@suse.de>
16167
16168         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
16169         and fold constant aggregate refs.
16170         (fold_const_aggregate_ref): Handle string constants
16171         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
16172         (evaluate_stmt): Simplify now that ccp_fold folds constant
16173         aggregate refs.
16174
16175 2008-03-15  Paul Brook  <paul@codesourcery.com>
16176
16177         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
16178         (extzv): Use gen_extzv_t2.
16179         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
16180
16181 2008-03-15  Richard Guenther  <rguenther@suse.de>
16182
16183         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
16184         (fold_const_aggregate_ref): Likewise.
16185         (get_value): Return NULL if we don't have any values.
16186         (ccp_finalize): Set const_val to NULL after freeing it.
16187         * tree-flow.h (get_symbol_constant_value): Declare.
16188         (fold_const_aggregate_ref): Likewise.
16189         * tree-ssa-sccvn.c (try_to_simplify): Use them.
16190
16191 2008-03-15  Richard Guenther  <rguenther@suse.de>
16192
16193         PR middle-end/35593
16194         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
16195         to not produce negative array indices if not allowed.  Add
16196         parameter to indicate that.
16197         (maybe_fold_offset_to_component_ref): Allow negative array
16198         indices only for the first member of a structure.
16199         (maybe_fold_offset_to_reference): Allow negative array indices.
16200         (maybe_fold_stmt_addition): Likewise.
16201
16202 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
16203             Anatoly Sokolov <aesok@post.ru>
16204
16205         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
16206         (avr_arch): Add ARCH_AVR6.
16207         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
16208         (initial_elimination_offset): Initialize and use 'avr_pc_size'
16209         instead of fixed value 2.
16210         (print_operand_address): Use gs() asm specifier instead of pm().
16211         (avr_assemble_integer): (Ditto.).
16212         (avr_output_addr_vec_elt): (Ditto.).
16213         (print_operand): Handle "!" code.
16214         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
16215         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
16216         (AVR_HAVE_EIJMP_EICALL): Define.
16217         (AVR_3_BYTE_PC): Redefine.
16218         (AVR_2_BYTE_PC): (Ditto.).
16219         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
16220         (LINK_SPEC): Add atmega2560 and atmega2561.
16221         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
16222         (crtm2561.o).
16223         * config/avr/avr.md (call_insn): Use eicall instead of icall
16224         for 3 byte PC devices.
16225         (call_value_insn): (Ditto.).
16226         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
16227         (indirect_jump): Use only for for 2 byte PC devices.
16228         (*tablejump): (Ditto.).
16229         (*indirect_jump_avr6): Add insn.
16230         (*tablejump_rjmp): Don't use for 3 byte PC devices.
16231         * config/avr/libgcc.S (__prologue_saves__): Use eijmp
16232         instead of ijmp for 3 byte PC devices.
16233         (__tablejump2__): (Ditto.).
16234         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
16235         (MULITLIB_DIRNAMES): (Ditto.).
16236         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
16237
16238 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
16239
16240         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
16241         "sse2_umulsidi3".  Use V1DI mode for operand 0.
16242         ("mmx_psadbw"): Use V1DI mode for operand 0.
16243         * config/i386/i386-modes.def (V1SI): New vector mode.
16244         * config/i386/i386.c (struct builtin_description)
16245         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
16246         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
16247         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
16248         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
16249         v1di_ftype_v8qi_v8qi type.
16250         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
16251
16252         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
16253         __builtin_ia32_pmuludq]: Fix the mode of return value.
16254
16255 2008-03-15  Richard Guenther  <rguenther@suse.de>
16256
16257         PR middle-end/35595
16258         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
16259         being a PHI_NODE.
16260
16261 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
16262
16263         * doc/invoke.texi (Option Summary, Xtensa Options): Document
16264         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
16265         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
16266         unless TARGET_SERIALIZE_VOLATILE is enabled.
16267         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
16268         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
16269         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
16270
16271 2008-03-14  Richard Guenther  <rguenther@suse.de>
16272
16273         PR tree-optimization/34172
16274         * tree-flow.h (refs_may_alias_p): Declare.
16275         (get_single_def_stmt): Likewise.
16276         (get_single_def_stmt_from_phi): Likewise.
16277         (get_single_def_stmt_with_phi): Likewise.
16278         * tree-dfa.c (refs_may_alias_p): New function.
16279         (get_single_def_stmt): Likewise.
16280         (get_single_def_stmt_from_phi): Likewise.
16281         (get_single_def_stmt_with_phi): Likewise.
16282         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
16283         (vn_reference_lookup_1): New helper function.
16284         (vn_reference_lookup): Walk the virtual use-def chain to
16285         continue searching for a match if the def does not alias the
16286         reference we are looking for.
16287
16288 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
16289
16290         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
16291         archive and Perzl.  Update The Written Word listing.
16292
16293 2008-03-14  Richard Guenther  <rguenther@suse.de>
16294
16295         PR tree-optimization/34043
16296         PR tree-optimization/33989
16297         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
16298         when doing FRE.
16299         (bitmap_find_leader): Use extra argument to verify dominance
16300         relationship inside a basic-block.
16301         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
16302         (find_leader_in_sets): Adjust.
16303         (create_component_ref_by_pieces): Take extra argument for
16304         dominance check, handle lookup failures.
16305         (find_or_generate_expression): Likewise.
16306         (create_expression_by_pieces): Likewise.
16307         (insert_into_preds_of_block): Adjust.
16308         (create_value_expr_from): If asked for, verify all operands
16309         are in the blocks AVAIL_OUT set.
16310         (make_values_for_stmt): Check for SSA_NAMEs that are life
16311         over an abnormal edge.
16312         (compute_avail): Remove such check.
16313         (do_SCCVN_insertion): New function.
16314         (eliminate): If we do not find a leader suitable for replacement
16315         insert a replacement expression from SCCVN if available.
16316         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
16317         (struct vn_ssa_aux): Add needs_insertion flag.
16318         * tree-ssa-sccvn.c (may_insert): New global flag.
16319         (copy_reference_ops_from_ref): Value-number union member access
16320         based on its size, not type and member if insertion is allowed.
16321         (visit_reference_op_load): For a weak match from union type
16322         punning lookup a view-converted value and insert a SSA_NAME
16323         for that value if that is not found.
16324         (visit_use): Make dumps shorter.  Do not disallow value numbering
16325         SSA_NAMEs that are life over an abnormal edge to constants.
16326         (free_scc_vn): Release inserted SSA_NAMEs.
16327         (run_scc_vn): New flag to specify whether insertion is allowed.
16328         Process SSA_NAMEs in forward order.
16329         * tree-ssa-loop-im.c (for_each_index): Handle invariant
16330         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
16331         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
16332         pointer type to/from integral types that do not change the
16333         precision to regular conversions.
16334
16335 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
16336
16337         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
16338         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
16339         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
16340         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
16341         input arguments and the mode of return value.  Built-in functions
16342         that operate on whole 64-bit MMX register now use V1DI mode.
16343
16344 2008-03-13  Alon Dayan  <alond@il.ibm.com>
16345             Olga Golovanevsky  <olga@il.ibm.com>
16346
16347         PR tree-optimization/35041
16348         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
16349         to locate the right position in a statement.
16350
16351 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
16352
16353         PR target/34000
16354         PR target/35553
16355         * config/i386/xmmintrin.h:  Change all static inline functions to
16356         extern inline and add __gnu_inline__ attribute.
16357         * config/i386/bmintrin.h: Ditto.
16358         * config/i386/smmintrin.h: Ditto.
16359         * config/i386/tmmintrin.h: Ditto.
16360         * config/i386/mmintrin-common.h: Ditto.
16361         * config/i386/ammintrin.h: Ditto.
16362         * config/i386/emmintrin.h: Ditto.
16363         * config/i386/pmmintrin.h: Ditto.
16364         * config/i386/mmintrin.h: Ditto.
16365         * config/i386/mm3dnow.h: Ditto.
16366
16367 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
16368
16369         PR middle-end/35185
16370         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
16371         (lower_omp_2): New function.
16372         (lower_omp_1, lower_omp): Rewritten.
16373
16374 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
16375
16376         PR 35054
16377         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
16378         with the phrase "Microsoft Windows compilers".
16379         (Push/Pop Macro Pragmas): New subsection. Document
16380         #pragma push_macro and pragma pop_macro.
16381
16382 2008-03-12  Paul Brook  <paul@codesourcery.com>
16383
16384         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
16385
16386 2008-03-12  Paul Brook  <paul@codesourcery.com>
16387
16388         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
16389         (thumb2_alusi3_short): Exclude PLUS and MINUS.
16390         (thumb2_addsi_shortim): Rename ...
16391         (thumb2_addsi_short): ... to this.  Allow register operands.
16392         (thumb2_subsi_short): New pattern.
16393         (thumb2_one_cmplsi2_short,
16394         thumb2_negsi2_short): New patterns and peepholes.
16395
16396 2008-03-12  Paul Brook  <paul@codesourcery.com>
16397
16398         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
16399
16400 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
16401
16402         * config/i386/i386.md (int_cond): New code iterator.
16403         (fp_cond): Ditto.
16404         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
16405         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
16406         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
16407         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
16408         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
16409         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
16410         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
16411         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
16412
16413 2008-03-12  Paul Brook  <paul@codesourcery.com>
16414
16415         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
16416         instead of {arm,thumb}_compute_save_reg_mask.
16417         (output_return_instruction): Ditto.
16418         (thumb_unexpanded_epilogue): Ditto.
16419         (thumb1_expand_prologue): Ditto.
16420         (thumb1_output_function_prologue): Ditto.
16421         (arm_set_return_address): Ditto.
16422         (thumb_set_return_address): Ditto.
16423         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
16424         regs to achieve stack alignment.
16425         (thumb1_compute_save_reg_mask): Fix compiler warning.
16426         (arm_output_epilogue): Use offsets->saved_regs_mask.
16427         Adjust stack pointer by poping call clobered registers.
16428         (arm_expand_prologue): Use offsets->saved_regs_mask.
16429         Adjust stack pointer by pushing extra registers.
16430         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
16431
16432 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
16433
16434         PR tree-opt/35422
16435         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
16436         conversion to the operands of a multiplication.
16437
16438 2008-03-12  Richard Guenther  <rguenther@suse.de>
16439
16440         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
16441         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
16442         * timevar.def (TV_TREE_PHIPROP): Add.
16443         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
16444         pass description.  Use TV_TREE_PHIPROP.
16445         * tree-ssa-forwprop.c: Remove phiprop code.
16446
16447 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
16448
16449         PR middle-end/35549
16450         * omp-low.c (maybe_lookup_decl): Constify first argument.
16451         (use_pointer_for_field): Change last argument from bool to
16452         omp_context *.  Disallow shared copy-in/out in nested
16453         parallel if decl is shared in outer parallel too.
16454         (build_outer_var_ref, scan_sharing_clauses,
16455         lower_rec_input_clauses, lower_copyprivate_clauses,
16456         lower_send_clauses, lower_send_shared_vars): Adjust callers.
16457
16458 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
16459             Ira Rosen  <irar@il.ibm.com>
16460
16461         * tree-vectorizer.c (free_stmt_vec_info): New function.
16462         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
16463         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
16464         * tree-vectorizer.h (free_stmt_vec_info): Declare.
16465         * tree-vect-transform.c (vectorizable_conversion): Free
16466         vec_oprnds0 if it was allocated.
16467         (vect_permute_store_chain): Remove unused VECs.
16468         (vectorizable_store): Free VECs that are allocated in the..
16469         function.
16470         (vect_transform_strided_load, vectorizable_load): Likewise.
16471         (vect_remove_stores): Simplify the code.
16472         (vect_transform_loop): Move code to vect_remove_stores().
16473         Call vect_remove_stores() and free_stmt_vec_info().
16474
16475 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16476
16477         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
16478         TARGET_HPUX.  Revise comment.
16479         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
16480         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
16481         Use sr4 variant of `be' instruction when not generating PIC code.
16482         (attr_length_call): Adjust for above change.
16483
16484 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16485
16486         * ipa-reference.c (static_execute): Remove module_statics_const and
16487         associated setting code.
16488
16489 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
16490
16491         PR target/35540
16492         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
16493         predicate for operand 1.
16494         (paritysi2_cmp): Use register_operand predicate for operand 2.
16495         Use earlyclobber modifier for operand 1.  Remove support for
16496         memory operands.
16497         (paritydi2_cmp): Use register_operand predicate for operand 3.
16498         Use earlyclobber modifier for operand 1.  Remove support for
16499         memory operands.
16500
16501 2008-03-11  Paul Brook  <paul@codesourcery.com>
16502             Vladimir Prus  <vladimir@codesourcery.com>
16503
16504         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
16505         (arm_compute_save_reg0_reg12_mask): Always
16506         check if register 11 must be saved.  Always safe hard frame pointer
16507         when frame_pointer_needeed.
16508         (arm_compute_save_reg_mask): Save IP and PC
16509         only with apcs frames.
16510         (arm_output_epilogue): Adjust Thumb2 codepath to
16511         be also invoked and work for ARM non-apcs frames.
16512         (arm_expand_prologue): Don't bother saving IP
16513         for non-apcs frame, since it's not clobbered by
16514         prologue code.  Implement non-apcs frame
16515         layout.
16516
16517 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
16518
16519         PR rtl-optimization/35281
16520         * expr.c (convert_move): Use a new pseudo for the intermediate
16521         from_mode->word_mode result.
16522
16523 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
16524
16525         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
16526         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
16527         * toplev.c (compile_file): Don't call it.
16528
16529 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
16530
16531         PR middle-end/35526
16532         * expr.c (store_expr): Call emit_block_move if the mode
16533         of "temp" RTX is BLKmode.
16534
16535 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16536             Richard Guenther  <rguenther@suse.de>
16537
16538         PR tree-optimization/31358
16539         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
16540         the step with a NULL_TREE.
16541         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
16542         to sizetype if type is a pointer type.
16543         (add_candidate_1): Don't convert the base and step to
16544         the generic type if the orginal type is a pointer type.
16545         (add_iv_value_candidates): Use sizetype for the step
16546         if type is a pointer type.
16547         (cand_value_at): Likewise.
16548         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
16549         for pointer types.
16550         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
16551         Don't convert the tem affine to the type.
16552         (add_elt_to_tree): Use sizetype for the step if a pointer.
16553         Use POINTER_PLUS_EXPR for pointers.
16554         (aff_combination_to_tree): Use sizetype for the step if a
16555         pointer.
16556
16557 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
16558
16559         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
16560         Remove commutativity hint.
16561
16562 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
16563
16564         PR c/35438
16565         PR c/35439
16566         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
16567         errorneous type.  Check that v is a VAR_DECL.
16568
16569         PR middle-end/35099
16570         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
16571
16572 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
16573
16574         PR tree-optimization/35494
16575         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
16576         may be overriden at link and run time.
16577
16578 2008-03-10  Richard Guenther  <rguenther@suse.de>
16579
16580         PR tree-optimization/34677
16581         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
16582         (poolify_tree): Likewise.
16583         (modify_expr_template): Likewise.
16584         (poolify_modify_stmt): Likewise.
16585         (insert_fake_stores): Handle all component-ref style stores
16586         in addition to INDIRECT_REF.  Also handle complex types.
16587         Do not poolify the inserted load.
16588         (realify_fake_stores): Do not rebuild the tree but only
16589         make it a SSA_NAME copy.
16590         (init_pre): Remove initialzation of modify_expr_template.
16591         Do not allocate modify_expr_node_pool.
16592         (fini_pre): Do not free modify_expr_node_pool.
16593
16594 2008-03-10  Paul Brook  <paul@codesourcery.com>
16595
16596         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
16597         to avoid conflicts.
16598
16599 2008-03-10  Paul Brook  <paul@codesourcery.com>
16600             Mark Shinwell  <shinwell@codesourcery.com>
16601
16602         * config/arm/cortex-r4.md: New.
16603         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
16604         insn attributes.
16605         * config/arm/arm.md: Include cortex-r4.md.
16606         (insn): Add smmls, sdiv and udiv values.
16607         (generic_sched): Don't use generic scheduling for Cortex-R4.
16608         (arm_issue_rate): New function.
16609         (TARGET_SCHED_ISSUE_RATE): Define.
16610
16611 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
16612
16613         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
16614
16615 2008-03-10  Richard Guenther  <rguenther@suse.de>
16616
16617         * tree-ssa-pre.c (get_sccvn_value): Simplify.
16618         (compute_avail): Do not add stmt uses to AVAIL_OUT.
16619
16620 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
16621
16622         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
16623         Set default to true.
16624
16625 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16626
16627         * c.opt (Wsynth): Deprecate.
16628         * doc/invoke.texi (Option Summary, Warning Options): Document
16629         -Wno-format-contains-nul.
16630
16631 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
16632
16633         PR target/35496
16634         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
16635         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
16636
16637 2008-03-09  Ira Rosen  <irar@il.ibm.com>
16638
16639         * config/rs6000/rs6000.c (builtin_description): Rename vector
16640         left shift operations.
16641         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
16642         (altivec_vsl<VI_char>): Rename to ...
16643         (ashl<mode>3): ... new name.
16644         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
16645         gen_ashlv4si3.
16646         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
16647
16648 2008-03-08  Richard Guenther  <rguenther@suse.de>
16649
16650         * coverage.h (tree_coverage_counter_addr): Declare.
16651         * coverage.c (tree_coverage_counter_addr): New function.
16652         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
16653         before using again.
16654         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
16655         (tree_gen_one_value_profiler): Likewise.
16656         (tree_gen_ic_profiler): Likewise.
16657         (tree_gen_average_profiler): Likewise.
16658         (tree_gen_ior_profiler): Likewise.
16659
16660 2008-03-08  Richard Guenther  <rguenther@suse.de>
16661
16662         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
16663         (vn_binary_op_insert): Likewise.
16664         (vn_unary_op_lookup): Likewise.
16665         (vn_unary_op_insert): Likewise.
16666         (vn_nary_op_lookup): Declare.
16667         (vn_nary_op_insert): Likewise.
16668         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
16669         and binary hashes, use a single obstack for unary_op_pool
16670         and binary_op_pool.
16671         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
16672         a single struct vn_nary_op_s.  Store tree code length and
16673         a variable number of operands.
16674         (struct vn_reference_op_struct): Remove unused op2.
16675         (vn_reference_op_eq): Do not compare op2.
16676         (vn_reference_op_compute_hash): Do not compute hash of op2.
16677         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
16678         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
16679         with vn_nary_op_compute_hash.
16680         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
16681         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
16682         vn_nary_op_lookup.
16683         (vn_unary_op_insert, vn_binary_op_insert): Replace with
16684         vn_nary_op_insert.
16685         (visit_unary_op): Call nary functions.
16686         (visit_binary_op): Likewise.
16687         (process_scc): Adjust for struct vn_tables_s changes.
16688         (allocate_vn_table): Likewise.
16689         (free_vn_table): Likewise.
16690         * tree-vn.c (vn_add): Call nary functions.
16691         (vn_lookup): Likewise.
16692
16693 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
16694
16695         PR target/35498
16696         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
16697         wdst back after sync_compare_and_swapqhi_internal.
16698
16699 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
16700
16701         PR target/22152
16702         * config/i386/i386-modes.def (V1DI): New vector mode.
16703         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
16704         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
16705         (MMXMODE248): Ditto.
16706         (MMXMODE): Add V1DI mode.
16707         (mmxvecsize): Change DI mode to V1DI mode.
16708         ("mov<mode>): Use MMXMODEI8 mode iterator.
16709         ("*mov<mode>_internal_rex64"): Ditto.
16710         ("*mov<mode>_internal"): Ditto.
16711         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
16712         ("mmx_sub<mode>3"): Ditto.
16713         ("mmx_adddi3"): Remove insn pattern.
16714         ("mmx_subdi3"): Ditto.
16715         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
16716         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
16717         ("mmx_ashl<mode>3"): Ditto.
16718         ("mmx_lshrdi3"): Remove insn pattern.
16719         ("mmx_ashldi3"): Ditto.
16720         * config/i386/i386.c (classify_argument): Handle V1DImode.
16721         (function_arg_advance_32): Ditto.
16722         (function_arg_32): Ditto.
16723         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
16724         mmx_addv1di3 insn pattern.
16725         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
16726         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
16727         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
16728         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
16729         Remove definitions of built-in functions.
16730         (V1DI_type_node): New node.
16731         (v1di_ftype_v1di_int): Ditto.
16732         (v1di_ftype_v1di_v1di): Ditto.
16733         (v2si_ftype_v2si_si): Ditto.
16734         (v4hi_ftype_v4hi_di): Remove node.
16735         (v2si_ftype_v2si_di): Ditto.
16736         (ix86_init_mmx_sse_builtins): Handle V1DImode.
16737         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
16738         Redefine builtins using def_builtin_const with *_ftype_*_int node.
16739         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
16740         Add new builtins using def_builtin_const.
16741         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
16742         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
16743         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
16744         * config/i386/mmintrin.h (__v1di): New typedef.
16745         (_mm_add_si64): Cast arguments to __v1di type.
16746         (_mm_sub_si64): Ditto.
16747         (_mm_sll_pi16): Cast __count to __v4hi type.
16748         (_mm_sll_pi32): Cast __count to __v2si type.
16749         (_mm_sll_si64): Cast arguments to __v1di type.
16750         (_mm_srl_pi16): Cast __count to __v4hi type.
16751         (_mm_srl_pi32): Cast __count to __v2si type.
16752         (_mm_srl_si64): Cast arguments to __v1di type.
16753         (_mm_sra_pi16): Cast __count to __v4hi type.
16754         (_mm_sra_pi32): Cast __count to __v2si type.
16755         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
16756         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
16757         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
16758         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
16759         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
16760         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
16761         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
16762         (_mm_srai_pi32): Use __builtin_ia32_psradi.
16763         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
16764         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
16765         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
16766         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
16767
16768 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
16769
16770         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
16771
16772 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
16773
16774         PR target/35373
16775         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
16776         reg+const addressing for Altivec modes.  Don't generate reg+reg
16777         addressing for TFmode or TDmode quantities.
16778
16779 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
16780
16781         * c-common.c (vector_types_convertible_p): Call langhook
16782         instead of comptypes.
16783
16784 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16785
16786         PR tree-opt/35402
16787         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
16788         integral and scalar float variables which have a
16789         NULL DECL_INITIAL.
16790
16791 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
16792
16793         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
16794         dwarf_register_span hook when emitting unwind information for
16795         register-to-memory saves.
16796         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
16797         (rs6000_frame_related): Remove call to spe_synthesize_frame.
16798
16799 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
16800
16801         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
16802         for the same VAR_DECL.
16803
16804 2008-03-06  Tom Tromey  <tromey@redhat.com>
16805
16806         * treelang: Delete.
16807         * doc/standards.texi (Standards): Don't mention treelang.
16808         * doc/invoke.texi (Overall Options): Don't mention treelang.
16809         * doc/install.texi (Prerequisites): Don't mention bison or
16810         treelang.
16811         (Configuration): Don't mention treelang.
16812         (Building): Likewise.
16813         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
16814
16815 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
16816
16817         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
16818         word-extractions out of a multi-word object.
16819
16820 2008-03-06  Richard Guenther  <rguenther@suse.de>
16821
16822         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
16823         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
16824         result type and precision.
16825         * expr.c (get_inner_reference): Set unsignedp based on the result
16826         type of BIT_FIELD_REF.
16827         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
16828         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
16829         (try_instantiate_multiple_fields): Likewise.  Use the correct type
16830         for BIT_FIELD_REF.
16831         (sra_build_assignment): Likewise.
16832         (sra_build_elt_assignment): Likewise.
16833         (sra_explode_bitfield_assignment): Likewise.
16834         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
16835         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
16836         set BIT_FIELD_REF_UNSIGNED.
16837         (vectorizable_load): Likewise.
16838
16839 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
16840
16841         * cse.c (cse_extended_basic_block): Invalidate artificial defs
16842         at bb start.
16843
16844 2008-03-06  Richard Guenther  <rguenther@suse.de>
16845
16846         * alias.c (struct alias_set_entry): Move has_zero_child field
16847         to pack with alias_set.
16848
16849 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
16850
16851         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
16852         32bit host.
16853
16854 2008-03-05  Ian Lance Taylor  <iant@google.com>
16855
16856         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
16857
16858 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
16859
16860         * fwprop.c (update_df): Support width and offset parameters of
16861         df_ref_create.
16862         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
16863         global_conflicts): Change DF_REF_EXTRACT to either
16864         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
16865         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
16866         * df-scan.c (df_ref_record, df_defs_record,
16867         df_ref_create_structure, df_def_record_1, df_uses_record,
16868         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
16869         df_bb_refs_collect, df_entry_block_defs_collect,
16870         df_exit_block_uses_collect): Support new width and offset fields.
16871         (ref_extract_pool): New storage pool.
16872         (df_free_ref): New function.
16873         (df_reg_chain_unlink, df_free_collection_rec,
16874         df_sort_and_compress_refs): Call df_free_ref.
16875         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
16876         of df_ref_extract.
16877         (df_ref_create_structure): Allocate df_ref_extract if offset and
16878         width fields are used.
16879         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
16880         (df_uses_record): Get offset and width from ZERO_EXTRACT
16881         and SIGN_EXTRACT.
16882         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
16883         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
16884         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
16885         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
16886         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
16887         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
16888         (df_ref_extract): New structure.
16889         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
16890         (df_ref_create): Add width and offset parameters.
16891
16892 2008-03-05  Richard Guenther  <rguenther@suse.de>
16893
16894         * tree-ssa-structalias.c (get_constraint_for_component_ref):
16895         Use ranges_overlap_p.
16896         (offset_overlaps_with_access): Rename
16897         to ranges_overlap_p and move ...
16898         * tree-flow-inline.h (ranges_overlap_p): ... here.
16899
16900         * tree.h (get_inner_reference, handled_component_p): Update
16901         comments.
16902
16903         * tree.h (record_component_aliases, get_alias_set,
16904         alias_sets_conflict_p, alias_sets_must_conflict_p,
16905         objects_must_conflict_p): Move declarations ...
16906         * alias.h (record_component_aliases, get_alias_set,
16907         alias_sets_conflict_p, alias_sets_must_conflict_p,
16908         objects_must_conflict_p): ... here.
16909         Include coretypes.h.
16910         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
16911
16912 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
16913
16914         * cfg.c: Include tree-flow.h.
16915         (remove_edge_raw): Call redirect_edge_var_map_clear.
16916         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
16917         * tree-flow-inline.h (redirect_edge_var_map_def): New.
16918         (redirect_edge_var_map_result): New.
16919         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
16920         PENDING_STMT use with redirect_edge_var_map_*.
16921         * tree-ssa.c (edge_var_maps): New definition.
16922         (redirect_edge_var_map_add): New.
16923         (redirect_edge_var_map_clear): New.
16924         (redirect_edge_var_map_dup): New.
16925         (redirect_edge_var_map_vector): New.
16926         (redirect_edge_var_map_destroy): New.
16927         (ssa_redirect_edge): Replace PENDING_STMT use with
16928         redirect_edge_var_map_*.
16929         (flush_pending_stmts): Same.
16930         (delete_tree_ssa): Destroy edge var map.
16931         * tree-flow.h (struct _edge_var_map): New.
16932         Define edge_var_map vector type.
16933         Declare redirect_edge_var_map_* prototypes.
16934         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
16935         * tree-cfg.c (reinstall_phi_args): Replace
16936         PENDING_STMT use with redirect_edge_var_map_*.
16937
16938 2008-03-05  Richard Guenther  <rguenther@suse.de>
16939
16940         PR tree-optimization/35472
16941         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
16942         whose single use_stmt has a overlapping set of loaded and
16943         stored symbols as that use_stmt might be a noop assignment then.
16944
16945 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
16946
16947         * gthr-rtems.h: Implement __gthread_mutex_destroy.
16948
16949 2008-03-05  Richard Guenther  <rguenther@suse.de>
16950
16951         PR c++/35336
16952         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
16953         should be constants.
16954         * tree-cfg.c (verify_expr): Verify it.
16955         * fold-const.c (fold_truthop): Remove code generating
16956         BIT_FIELD_REFs of structure bases.
16957         (fold_binary): Likewise.
16958         (fold_ternary): Position and size of BIT_FIELD_REFs are
16959         always host integers.
16960         (make_bit_field_ref): Remove.
16961         (optimize_bit_field_compare): Remove.
16962         (all_ones_mask_p): Remove.
16963
16964 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
16965
16966         PR gcc/33009
16967         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
16968         (split_block_and_df_analyze): New. Split basic block and rebuild
16969         dataflow.
16970         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
16971         SPLIT_BLOCK.
16972         (split_pattern_seq): Likewise.
16973         (erase_matching_seqs): Likewise.
16974         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
16975
16976 2008-03-04  Geoff Keating  <geoffk@apple.com>
16977
16978         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
16979         declaration and code.
16980         (tree_invalid_nonnegative_warnv_p): Likewise.
16981
16982 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
16983
16984         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
16985         examples.  Truncate option-names then causing overfull hbox.
16986
16987 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16988
16989         PR target/35222
16990         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
16991         on hpux10.
16992         * configure: Rebuilt.
16993
16994 2008-03-04  Rafael Espindola  <espindola@google.com>
16995
16996         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
16997         (tree_unary_nonnegative_warnv_p): New.
16998         (tree_binary_nonnegative_warnv_p): New.
16999         (tree_single_nonnegative_warnv_p): New.
17000         (tree_invalid_nonnegative_warnv_p): New.
17001         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
17002
17003 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17004
17005         PR 28322
17006         * opts.c (handle_option): Postpone 'unknown option' errors only for
17007         warning options.
17008
17009 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
17010
17011         PR target/35453
17012         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
17013         (_SIDD_XXX): This.
17014
17015 2008-03-04  Rafael Espindola  <espindola@google.com>
17016
17017         * fold-const.c (tree_unary_nonzero_warnv_p): New.
17018         (tree_binary_nonzero_warnv_p): New.
17019         (tree_single_nonzero_warnv_p): New.
17020         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
17021
17022 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
17023
17024         PR middle-end/35456
17025         * fold-const.c (fold_cond_expr_with_comparison): Prevent
17026         transformations for modes that have signed zeros.
17027         * ifcvt.c (noce_try_abs): Ditto.
17028
17029 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
17030
17031         * config/i386/i386.c (override_options): Force
17032         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
17033
17034 2008-03-04  Jan Hubicka  <jh@suse.cz>
17035
17036         PR c++/35262
17037         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
17038         in last commit.
17039
17040 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
17041
17042         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
17043         label to probe the stack.
17044
17045 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
17046
17047         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
17048         (__gthr_win32_mutex_destroy): Declare.
17049         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
17050         __gthr_win32_mutex_destroy.
17051         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
17052
17053 2008-03-03  Jan Hubicka  <jh@suse.cz>
17054
17055         PR c++/35262
17056         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
17057         aggressive on inlining cold calls.
17058
17059 2008-03-03  Richard Guenther  <rguenther@suse.de>
17060
17061         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
17062         struct copies into the expression table.
17063         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
17064         (try_to_simplify): Likewise.
17065         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
17066         integral and pointer arguments which do not change the
17067         precision to NOP_EXPRs.
17068         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
17069         VIEW_CONVERT_EXPR case.
17070
17071 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
17072
17073         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
17074         defined in a loop at depth 0 is invariant.
17075         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
17076         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
17077         be called at loop depth 0.
17078
17079 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
17080
17081         PR driver/35420
17082         * gcc.c (process_command): Update copyright notice dates.
17083         * gcov.c (print_version): Likewise.
17084         * gcov-dump.c (print_version): Likewise.
17085         * mips-tfile.c (main): Likewise.
17086         * mips-tdump.c (main): Likewise.
17087
17088 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17089
17090         PR 24924
17091         * c-common.c (flag_permissive): Delete.
17092         (constant_expression_warnings): Check flags first.
17093         (constant_expression_error): New.
17094         * c-common.h (flag_permissive): Delete.
17095         (constant_expression_error): Declare.
17096         * flags.h (flag_permissive): Declare. Update description.
17097         * diagnostic.c (pedwarn): Update.
17098         (permerror): New.
17099         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
17100         (permissive_error_kind): New.
17101         * toplev.c (flag_permissive): Define. Update description.
17102         * toplev.h (permissive_error_kind): Declare.
17103         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
17104         (pedwarn_c90): Use pedantic_warning_kind.
17105         * c-opts.c (c_common_post_options): flag_permissive does not affect
17106         flag_pedantic_errors.
17107
17108 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
17109
17110         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
17111         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
17112         __absvsi2, __absvDI2): Use unsigned arithmetic.
17113
17114 2008-03-02  Andi Kleen  <ak@suse.de>
17115             Richard Guenther  <rguenther@suse.de>
17116
17117         * struct-equiv.c: Remove file.
17118         * cfg_cleanup.c (condjump_equiv_p): Remove.
17119         * Makefile.in (OBJS-common): Remove struct-equiv.o.
17120         (struct-equiv.o): Remove rule.
17121         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
17122         insns_match_p, struct_equiv_block_eq, struct_equiv_init,
17123         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
17124
17125 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
17126
17127         * ifcvt.c (noce_process_if_block): Try to handle only the then
17128         block if the else block exists but isn't suitable.
17129
17130 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
17131
17132         PR gcc/35063
17133         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
17134         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
17135         regression from previous patch.
17136
17137 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
17138
17139         PR gcc/35063
17140         * gthr.h: Add __gthread_mutex_destroy as a function that must be
17141         implemented.
17142         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
17143         * gthr-single.h (__gthread_mutex_destroy): Likewise.
17144         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
17145         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
17146         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
17147         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
17148         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
17149         (__gthread_mutex_destroy_function): Rename to
17150         __gthread_mutex_destroy.
17151         * gthr-dce.h (__gthread_mutex_destroy): Call
17152         pthread_mutex_destroy.
17153         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
17154         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
17155         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
17156
17157 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
17158
17159         * df-scan.c (df_ref_chain_change_bb): Simplify.
17160         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
17161         set_block_for_insn if there's any change.
17162         * df.h ((df_insn_change_bb): Fix prototype.
17163         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
17164         df_insn_change_bb, don't call set_block_for_insn.
17165         * emit-rtl.c (reorder_insns): Likewise.
17166         * haifa-sched.c (move_insn): Likewise.
17167
17168 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
17169
17170         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
17171
17172 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
17173
17174         * tree-flow-inline.h (next_readonly_imm_use): Return
17175         NULL_USE_OPERAND_P after the end.
17176
17177 2008-03-01  Richard Guenther  <rguenther@suse.de>
17178
17179         PR tree-optimization/35411
17180         * tree-sra.c (sra_build_assignment): Split conversion to
17181         final type to a separate statement if we are not assigning
17182         to a register.
17183
17184 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
17185
17186         * fold-const.c (fold_convertible_p): Correct the logic to follow
17187         that in fold_convert().
17188
17189 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
17190
17191         PR c++/35315
17192         * tree-inline.c (build_duplicate_type): When we make a
17193         duplicate type, make it unique in the canonical types system.
17194
17195 2008-02-29  Tom Tromey  <tromey@redhat.com>
17196
17197         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
17198         input_file_stack_history, input_file_stack_restored): Remove.
17199         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
17200         * input.h (struct file_stack): Remove.
17201         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
17202         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
17203         Likewise.
17204         * diagnostic.h (struct diagnostic_context) <last_module>: Change
17205         type.
17206         (diagnostic_last_module_changed): Add 'map' argument.
17207         (diagnostic_set_last_function): Likewise.
17208         * diagnostic.c (undiagnostic_report_current_module): Iterate using
17209         line map, not input_file_stack.
17210         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
17211
17212 2008-02-29  Paul Brook  <paul@codesourcery.com>
17213
17214         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
17215
17216 2008-02-29  Paul Brook  <paul@codesourcery.com>
17217
17218         * config/arm/ieee754-df.S (muldf3): Use RET macros.
17219
17220 2008-02-29  Richard Guenther  <rguenther@suse.de>
17221
17222         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
17223         vn_lookup_or_add.
17224         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
17225         value for comparing for a store match.
17226         (simplify_unary_expression): Do nothing for SSA_NAMEs.
17227         (try_to_simplify): Do not do a full-blown reference lookup.
17228
17229 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
17230
17231         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
17232         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
17233
17234         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
17235
17236 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
17237
17238         * tree-loop-linear.c (try_interchange_loops): Compare memory access
17239         strides against cache sizes.
17240
17241 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
17242
17243         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
17244         constant to fpul.
17245
17246 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
17247
17248         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
17249         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
17250         is smaller than the original promoted value.
17251         (simplify_subreg): If OP is a SUBREG, try to preserve its
17252         SUBREG_PROMOTED_VAR_P information.
17253
17254 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
17255
17256         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
17257         (VN_INFO_GET): Allocate new objects on the obstack.
17258         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
17259         for rpo_numbers_temp, for consistency.
17260         (free_scc_vn): Free the obstack.
17261
17262 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
17263
17264         * doc/invoke.texi: Document -ftree-loop-distribution.
17265         * tree-loop-distribution.c: New.
17266         * tree-pass.h (pass_loop_distribution): New.
17267         * graphds.h (struct graph): Add htab_t indices.
17268         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
17269         * tree-vectorizer.c (rename_variables_in_loop): Extern.
17270         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
17271         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
17272         * tree-data-ref.c (debug_data_dependence_relations): New.
17273         (dump_data_dependence_relation): Also print data references.
17274         (free_data_ref): Extern.
17275         (same_access_functions): Moved...
17276         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
17277         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
17278         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
17279         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
17280         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
17281         (stmts_from_loop): Skip LABEL_EXPR.
17282         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
17283         New.
17284         (build_rdg): Initialize rdg->indices htab.
17285         (free_rdg, stores_from_loop, ref_base_address,
17286         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
17287         have_similar_memory_accesses_1, ref_base_address_1,
17288         remove_similar_memory_refs): New.
17289         * tree-data-ref.h: Depend on tree-chrec.h.
17290         (debug_data_dependence_relations, free_data_ref): Declared.
17291         (same_access_functions): ... here.
17292         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
17293         New.
17294         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
17295         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
17296         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
17297         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
17298         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
17299         rdg_vertex_for_stmt): Declared.
17300         (struct rdg_edge): Add level.
17301         (RDGE_LEVEL): New.
17302         (free_rdg, stores_from_loop, remove_similar_memory_refs,
17303         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
17304         Declared.
17305         (rdg_has_similar_memory_accesses): New.
17306         * tree-vect-analyze.c: Remove unused static decls.
17307         * lambda.h (dependence_level): New.
17308         * common.opt (ftree-loop-distribution): New.
17309         * tree-flow.h (mark_virtual_ops_in_bb,
17310         slpeel_tree_duplicate_loop_to_edge_cfg,
17311         rename_variables_in_loop): Declared.
17312         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
17313         (OBJS-common): Add tree-loop-distribution.o.
17314         (tree-loop-distribution.o): New rule.
17315         * tree-cfg.c (mark_virtual_ops_in_bb): New.
17316         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
17317         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
17318
17319 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
17320
17321         PR target/33963
17322         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
17323         other than structures and unions.
17324
17325 2008-02-28  Richard Guenther  <rguenther@suse.de>
17326
17327         Revert:
17328         2008-02-26  Richard Guenther  <rguenther@suse.de>
17329
17330         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
17331         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
17332         (lookup_decl_from_uid): Declare.
17333         (remove_decl_from_map): Likewise.
17334         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
17335         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
17336         (decl_for_uid_map): New global hashtable mapping DECL_UID
17337         to the decl tree.
17338         (init_ttree): Allocate it.
17339         (insert_decl_to_uid_decl_map): New helper function.
17340         (make_node_stat): Insert new decls into the map.
17341         (copy_node_stat): Likewise.
17342         (lookup_decl_from_uid): New function.
17343         (remove_decl_from_map): Likewise.
17344         (print_decl_for_uid_map_statistics): New helper.
17345         (dump_tree_statistics): Call it.
17346
17347         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
17348         (referenced_var_iterator): Adjust.
17349         (FOR_EACH_REFERENCED_VAR): Adjust.
17350         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
17351         (num_referenced_vars): Adjust.
17352         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
17353         (first_referenced_var): Remove.
17354         (end_referenced_vars_p): Likewise.
17355         (next_referenced_var): Likewise.
17356         (referenced_var_iterator_set): New helper function.
17357         * tree-dfa.c (referenced_var_lookup): Adjust.
17358         (referenced_var_check_and_insert): Likewise.
17359         (remove_referenced_var): Likewise.
17360         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
17361         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17362         (verify_call_clobbering): Likewise.
17363         (verify_memory_partitions): Likewise.
17364         (init_tree_ssa): Allocate bitmap instead of hashtable for
17365         referenced_vars.
17366         (delete_tree_ssa): Adjust.
17367         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
17368         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17369         (compute_tag_properties): Likewise.
17370         (set_initial_properties): Likewise.
17371         (find_partition_for): Likewise.
17372         (update_reference_counts): Likewise.
17373         (dump_may_aliases_for): Likewise.
17374         * tree-ssa-operands.c (add_virtual_operand): Likewise.
17375         (add_call_clobber_ops): Likewise.
17376         (add_call_read_ops): Likewise.
17377         (get_asm_expr_operands): Likewise.
17378         * tree-into-ssa.c (dump_decl_set): Likewise.
17379         (update_ssa): Likewise.
17380         * tree-sra.c (scan_function): Likewise.
17381         (decide_instantiations): Likewise.
17382         (scalarize_parms): Likewise.
17383         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
17384         (dsa_named_for): Likewise.
17385         * tree-ssa-structalias.c (update_alias_info): Likewise.
17386         (merge_smts_into): Likewise.
17387
17388 2008-02-27  David Daney  <ddaney@avtrex.com>
17389
17390         PR target/34409
17391         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
17392         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
17393         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
17394         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
17395         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
17396
17397 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
17398
17399         PR target/25477
17400         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
17401         (BUILT_IN_NEXTTOWARD): Remove.
17402         (BUILT_IN_NEXTTOWARDF): Ditto.
17403         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
17404         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
17405
17406 2008-02-27  Tom Tromey  <tromey@redhat.com>
17407
17408         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
17409         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
17410
17411 2008-02-27  Jan Beulich  <jbeulich@novell.com>
17412
17413         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
17414         update the respective field on newdecl.
17415
17416 2008-02-27  Revital Eres  <eres@il.ibm.com>
17417
17418         PR rtl-optimization/34999
17419         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
17420         crossing edges that ends with a call insn.
17421         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
17422         call insn and clear the EDGE_CROSSING flag of the crossing edge
17423         when fixing fallthru edges.
17424
17425 2008-02-27  Richard Guenther  <rguenther@suse.de>
17426
17427         PR middle-end/35390
17428         * fold-const.c (fold_unary): Return the correct argument,
17429         converted to the result type.
17430
17431 2008-02-27  Richard Guenther  <rguenther@suse.de>
17432
17433         PR middle-end/34971
17434         * expr.c (expand_expr_real_1): Assert on rotates that operate
17435         on partial modes.
17436         * fold-const.c (fold_binary): Use the types precision, not the
17437         bitsize of the mode if folding rotate expressions.  Build rotates
17438         only for full modes.
17439
17440 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
17441
17442         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
17443         and CPP_PRAGMA_EOL.
17444         * c-pragma.c (pragma_ns_name): New typedef.
17445         (registered_pp_pragmas): New variable.
17446         (c_pp_lookup_pragma): New function.
17447         (c_register_pragma_1): If flag_preprocess_only, do nothing
17448         for non-expanded pragmas, for expanded ones push pragma's
17449         namespace and name into registered_pp_pragmas vector.
17450         (c_invoke_pragma_handler): Register OpenMP pragmas even when
17451         flag_preprocess_only, don't register GCC pch_preprocess
17452         pragma if flag_preprocess_only.
17453         * c-opts.c (c_common_init): Call init_pragma even if
17454         flag_preprocess_only.
17455         * c-pragma.c (c_pp_lookup_pragma): New prototype.
17456         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
17457         cpp_register_pragma if flag_preprocess_only.
17458
17459 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17460
17461         PR c/28800
17462         * c-parser.c (c_parser_translation_unit): Warn for empty
17463         translation unit, not empty source file.
17464
17465 2008-02-26  Paul Brook  <paul@codesourcery.com>
17466
17467         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
17468         operand for Thumb-2.
17469         * config/arm/arm.h (reg_class): Add CORE_REGS.
17470         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
17471         (BASE_REG_CLASS): Use CORE_REGS.
17472         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
17473         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
17474         (REGNO_OK_FOR_INDEX_P): Exclude SP.
17475         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
17476         ARM_REGNO_OK_FOR_INDEX_P.
17477         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
17478         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
17479         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
17480         (ldm/stm peepholes): Ditto.
17481         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
17482         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
17483         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
17484         * config/arm/constraints.md: Enable "k" constraint on ARM.
17485
17486 2008-02-27  Ben Elliston  <bje@au.ibm.com>
17487
17488         * config/rs6000/rs6000.c: Annotate cache line size field in all
17489         instances of struct processor_costs.
17490
17491 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
17492
17493         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
17494         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
17495         jump_bypass): New counters.
17496         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
17497         * dce.c (gate_ud_dce): Same.
17498         (gate_fast_dce): Same.
17499         * dse.c (gate_dse1): New function.
17500         (gate_dse2): New function.
17501         (gate_dse): Merge results of new gate functions.
17502         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
17503         (gate_handle_jump_bypass): Add dbg_cnt.
17504         (gate_handle_gcse): Add dbg_cnt.
17505         * ifcvt.c (gate_handle_if_conversion): Same.
17506         (gate_handle_if_after_combine): Same.
17507         (gate_handle_if_after_reload): Same.
17508         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
17509
17510 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
17511
17512         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
17513         line sizes.
17514         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
17515
17516 2008-02-26  Jason Merrill  <jason@redhat.com>
17517
17518         PR c++/35315
17519         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
17520         alone if it's the naming decl for the type's main variant.
17521
17522 2008-02-26  Tom Tromey  <tromey@redhat.com>
17523
17524         * system.h (USE_MAPPED_LOCATION): Poison.
17525         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
17526         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
17527         (make_goto_expr_edges): Likewise.
17528         (remove_bb): Likewise.
17529         (execute_warn_function_return): Likewise.
17530         * basic-block.h (struct edge_def) <goto_locus>: Change type to
17531         location_t.
17532         * c-common.c (fname_decl): Remove old location code.
17533         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
17534         location code.
17535         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
17536         variant.
17537         (ASM_INPUT_SOURCE_LOCATION): Likewise.
17538         (gen_rtx_ASM_INPUT): Likewise.
17539         (gen_rtx_ASM_INPUT_loc): Likewise.
17540         (get_rtx_asm_OPERANDS): Remove.
17541         * cfglayout.c (insn_locators_alloc): Remove old location code.
17542         (set_curr_insn_source_location): Likewise.
17543         (curr_insn_locator): Likewise.
17544         * print-tree.c (print_node): Remove old location code.
17545         * tree-mudflap.c (mf_varname_tree): Remove old location code.
17546         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
17547         * cfgexpand.c (expand_gimple_cond_expr): Don't use
17548         location_from_locus.
17549         (construct_exit_block): Remove old location code.
17550         * emit-rtl.c (force_next_line_note): Remove old location code.
17551         * profile.c (branch_prob): Remove old location code.
17552         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
17553         LOC_LINE): Remove old-location variants.
17554         * langhooks.c (lhd_print_error_function): Remove old location
17555         code.
17556         * configure, config.in: Rebuilt.
17557         * configure.ac (--enable-mapped-location): Remove.
17558         * c-decl.c (c_init_decl_processing): Remove old location code.
17559         (finish_function): Likewise.
17560         * recog.c (decode_asm_operands): Remove old location code.
17561         * c-pch.c (c_common_read_pch): Remove old location code.
17562         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
17563         variants.
17564         * gimple-low.c (lower_function_body): Remove old location code.
17565         * toplev.c (unknown_location): Remove.
17566         (push_srcloc): Remove old-location variant.
17567         (process_options): Remove old location code.
17568         (lang_dependent_init): Likewise.
17569         * input.h (UNKNOWN_LOCATION): Move definition.
17570         (location_t): Undeprecate.
17571         (source_locus): Remove.
17572         (location_from_locus): Remove.
17573         (struct location_s): Remove.
17574         Remove all old-location code.
17575         (input_line, input_filename): Remove.
17576         * final.c (final_scan_insn): Remove old location code.
17577         * diagnostic.c (diagnostic_build_prefix): Remove
17578         USE_MAPPED_LOCATION test.
17579         * tree.h (gimple_stmt) <locus>: Now a location_t.
17580         (tree_exp) <locus>: Likewise.
17581         (DECL_IS_BUILTIN): Remove old-location variant.
17582         (annotate_with_file_line, annotate_with_locus): Likewise.
17583         (expr_locus, set_expr_locus): Update.
17584         * tree.c (build1_stat): Remove old location code.
17585         (last_annotated_node): Remove.
17586         (annotate_with_file_line): Remove old-location variant.
17587         (annotate_with_locus): Likewise.
17588         (expr_location): Remove old location code.
17589         (set_expr_location): Likewise.
17590         (expr_has_location): Likewise.
17591         (expr_locus): Likewise.
17592         (set_expr_locus): Likewise.
17593         (expr_filename): Don't use location_from_locus.
17594         (expr_lineno): Likewise.
17595         * rtl-error.c (location_for_asm): Remove old location code.
17596         * c-lex.c (cb_line_change): Remove old location code.
17597         (fe_file_change): Likewise.
17598         (cb_def_pragma): Likewise.
17599         (c_lex_with_flags): Likewise.
17600         * gengtype.c (do_typedef): Don't special-case location types.
17601         (define_location_structures): Remove.
17602         (main): Don't call define_location_structures.
17603         * tree-pretty-print.c (dump_implicit_edges): Remove old location
17604         code.
17605
17606 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17607
17608         PR 26264
17609         * builtins.def (BUILT_IN_STDARG_START): Remove.
17610         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
17611         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
17612         * tree-inline.c (inline_forbidden_p_1): Likewise.
17613
17614 2008-02-26  Richard Guenther  <rguenther@suse.de>
17615
17616         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
17617         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
17618         (lookup_decl_from_uid): Declare.
17619         (remove_decl_from_map): Likewise.
17620         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
17621         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
17622         (decl_for_uid_map): New global hashtable mapping DECL_UID
17623         to the decl tree.
17624         (init_ttree): Allocate it.
17625         (insert_decl_to_uid_decl_map): New helper function.
17626         (make_node_stat): Insert new decls into the map.
17627         (copy_node_stat): Likewise.
17628         (lookup_decl_from_uid): New function.
17629         (remove_decl_from_map): Likewise.
17630         (print_decl_for_uid_map_statistics): New helper.
17631         (dump_tree_statistics): Call it.
17632
17633         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
17634         (referenced_var_iterator): Adjust.
17635         (FOR_EACH_REFERENCED_VAR): Adjust.
17636         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
17637         (num_referenced_vars): Adjust.
17638         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
17639         (first_referenced_var): Remove.
17640         (end_referenced_vars_p): Likewise.
17641         (next_referenced_var): Likewise.
17642         (referenced_var_iterator_set): New helper function.
17643         * tree-dfa.c (referenced_var_lookup): Adjust.
17644         (referenced_var_check_and_insert): Likewise.
17645         (remove_referenced_var): Likewise.
17646         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
17647         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17648         (verify_call_clobbering): Likewise.
17649         (verify_memory_partitions): Likewise.
17650         (init_tree_ssa): Allocate bitmap instead of hashtable for
17651         referenced_vars.
17652         (delete_tree_ssa): Adjust.
17653         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
17654         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17655         (compute_tag_properties): Likewise.
17656         (set_initial_properties): Likewise.
17657         (find_partition_for): Likewise.
17658         (update_reference_counts): Likewise.
17659         (dump_may_aliases_for): Likewise.
17660         * tree-ssa-operands.c (add_virtual_operand): Likewise.
17661         (add_call_clobber_ops): Likewise.
17662         (add_call_read_ops): Likewise.
17663         (get_asm_expr_operands): Likewise.
17664         * tree-into-ssa.c (dump_decl_set): Likewise.
17665         (update_ssa): Likewise.
17666         * tree-sra.c (scan_function): Likewise.
17667         (decide_instantiations): Likewise.
17668         (scalarize_parms): Likewise.
17669         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
17670         (dsa_named_for): Likewise.
17671         * tree-ssa-structalias.c (update_alias_info): Likewise.
17672         (merge_smts_into): Likewise.
17673
17674 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17675
17676         PR 34351
17677         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
17678         * c-opts.c (c_common_handle_option): Wall enables
17679         Wvolatile-register-var.
17680         * common.opt: Move Wvolatile-register-var to...
17681         * c.opt: ...here.
17682
17683 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17684
17685         * common.opt (Wlarger-than=): New.
17686         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
17687         -Wlarger-than=.
17688         * opts.c (common_handle_option): Handle -Wlarger-than=.
17689         * optc-gen.awk: Likewise.
17690         * opth-gen.awk: Likewise.
17691         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
17692         * tree-optimize.c (tree_rest_of_compilation): Likewise.
17693
17694 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
17695
17696         * c-common.c (match_case_to_enum_1): Add appropriate
17697         OPT_W* parameter to warning.
17698         (c_do_switch_warnings): Likewise.
17699         * c-typeck.c (warning_init): Add one more parameter following
17700         'warning' function.
17701         (push_init_level): Update call to warning_init.
17702         (pop_init_level): Likewise.
17703         (add_pending_init): Likewise.
17704         (output_init_element: Likewise.
17705
17706 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17707
17708         PR 28322
17709         * toplev.c (toplev_main): If there are warnings or error, print
17710         errors for ignored options.
17711         * opts.c (ignored_options): New static variable.
17712         (postpone_unknown_option_error): New.
17713         (print_ignored_options): New.
17714         (handle_option): Postpone errors for unknown -Wno-* options.
17715         * opts.h (print_ignored_options): Declare.
17716
17717 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
17718
17719         * config/mips/mips.md (loadgp_blockage, blockage): Change type
17720         to "ghost".
17721
17722 2008-02-25  Richard Guenther  <rguenther@suse.de>
17723
17724         Revert:
17725         2008-02-25  Richard Guenther  <rguenther@suse.de>
17726
17727         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
17728         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
17729         (lookup_decl_from_uid): Declare.
17730         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
17731         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
17732         (decl_for_uid_map): New global hashtable mapping DECL_UID
17733         to the decl tree.
17734         (init_ttree): Allocate it.
17735         (insert_decl_to_uid_decl_map): New helper function.
17736         (make_node_stat): Insert new decls into the map.
17737         (copy_node_stat): Likewise.
17738         (lookup_decl_from_uid): New function.
17739         (print_decl_for_uid_map_statistics): New helper.
17740         (dump_tree_statistics): Call it.
17741
17742         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
17743         (referenced_var_iterator): Adjust.
17744         (FOR_EACH_REFERENCED_VAR): Adjust.
17745         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
17746         (num_referenced_vars): Adjust.
17747         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
17748         (first_referenced_var): Remove.
17749         (end_referenced_vars_p): Likewise.
17750         (next_referenced_var): Likewise.
17751         (referenced_var_iterator_set): New helper function.
17752         * tree-dfa.c (referenced_var_lookup): Adjust.
17753         (referenced_var_check_and_insert): Likewise.
17754         (remove_referenced_var): Likewise.
17755         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
17756         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17757         (verify_call_clobbering): Likewise.
17758         (verify_memory_partitions): Likewise.
17759         (init_tree_ssa): Allocate bitmap instead of hashtable for
17760         referenced_vars.
17761         (delete_tree_ssa): Adjust.
17762         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
17763         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17764         (compute_tag_properties): Likewise.
17765         (set_initial_properties): Likewise.
17766         (find_partition_for): Likewise.
17767         (update_reference_counts): Likewise.
17768         (dump_may_aliases_for): Likewise.
17769         * tree-ssa-operands.c (add_virtual_operand): Likewise.
17770         (add_call_clobber_ops): Likewise.
17771         (add_call_read_ops): Likewise.
17772         (get_asm_expr_operands): Likewise.
17773         * tree-into-ssa.c (dump_decl_set): Likewise.
17774         (update_ssa): Likewise.
17775         * tree-sra.c (scan_function): Likewise.
17776         (decide_instantiations): Likewise.
17777         (scalarize_parms): Likewise.
17778         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
17779         (dsa_named_for): Likewise.
17780         * tree-ssa-structalias.c (update_alias_info): Likewise.
17781         (merge_smts_into): Likewise.
17782
17783 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
17784
17785         PR fortran/29549
17786         * doc/invoke.texi (-fcx-limited-range): Document new option.
17787         * toplev.c (process_options): Handle -fcx-fortran-rules.
17788         * common.opt: Add documentation for -fcx-fortran-rules.
17789
17790 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
17791
17792         PR c/35162
17793         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
17794         actual behaviour and C99.
17795
17796 2008-02-26  Ben Elliston  <bje@au.ibm.com>
17797
17798         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
17799         (ASM_CPU_POWER6_SPEC): Likewise.
17800         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
17801         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
17802         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
17803
17804 2008-02-25  Richard Guenther  <rguenther@suse.de>
17805
17806         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
17807         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
17808         (lookup_decl_from_uid): Declare.
17809         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
17810         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
17811         (decl_for_uid_map): New global hashtable mapping DECL_UID
17812         to the decl tree.
17813         (init_ttree): Allocate it.
17814         (insert_decl_to_uid_decl_map): New helper function.
17815         (make_node_stat): Insert new decls into the map.
17816         (copy_node_stat): Likewise.
17817         (lookup_decl_from_uid): New function.
17818         (print_decl_for_uid_map_statistics): New helper.
17819         (dump_tree_statistics): Call it.
17820
17821         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
17822         (referenced_var_iterator): Adjust.
17823         (FOR_EACH_REFERENCED_VAR): Adjust.
17824         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
17825         (num_referenced_vars): Adjust.
17826         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
17827         (first_referenced_var): Remove.
17828         (end_referenced_vars_p): Likewise.
17829         (next_referenced_var): Likewise.
17830         (referenced_var_iterator_set): New helper function.
17831         * tree-dfa.c (referenced_var_lookup): Adjust.
17832         (referenced_var_check_and_insert): Likewise.
17833         (remove_referenced_var): Likewise.
17834         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
17835         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17836         (verify_call_clobbering): Likewise.
17837         (verify_memory_partitions): Likewise.
17838         (init_tree_ssa): Allocate bitmap instead of hashtable for
17839         referenced_vars.
17840         (delete_tree_ssa): Adjust.
17841         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
17842         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17843         (compute_tag_properties): Likewise.
17844         (set_initial_properties): Likewise.
17845         (find_partition_for): Likewise.
17846         (update_reference_counts): Likewise.
17847         (dump_may_aliases_for): Likewise.
17848         * tree-ssa-operands.c (add_virtual_operand): Likewise.
17849         (add_call_clobber_ops): Likewise.
17850         (add_call_read_ops): Likewise.
17851         (get_asm_expr_operands): Likewise.
17852         * tree-into-ssa.c (dump_decl_set): Likewise.
17853         (update_ssa): Likewise.
17854         * tree-sra.c (scan_function): Likewise.
17855         (decide_instantiations): Likewise.
17856         (scalarize_parms): Likewise.
17857         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
17858         (dsa_named_for): Likewise.
17859         * tree-ssa-structalias.c (update_alias_info): Likewise.
17860         (merge_smts_into): Likewise.
17861
17862 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
17863
17864         PR target/35258
17865         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
17866         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
17867         * alias.h (nonoverlapping_memrefs_p): Likewise.
17868
17869 2008-02-25  Jan Beulich  <jbeulich@novell.com>
17870
17871         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
17872         * config/i386/netware-libgcc.exp: Add __bswap?i2,
17873         __emultls_get_address, __emultls_register_common,
17874         __floatundi?f, and _Unwind_GetIPInfo.
17875         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
17876         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
17877         (gen_regparm_prefix): Likewise.
17878         (i386_nlm_encode_section_info): Sync with
17879         config/i386/winnt.c:i386_pe_encode_section_info().
17880         (i386_nlm_maybe_mangle_decl_assembler_name): New.
17881         i386_nlm_mangle_decl_assembler_name): New.
17882         (netware_override_options): New.
17883         * config/i386/netware.h (netware_override_options): Declare.
17884         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
17885         (i386_nlm_mangle_decl_assembler_name): Declare.
17886         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
17887
17888 2008-02-25  Ben Elliston  <bje@au.ibm.com>
17889
17890         PR other/32948
17891         * c-decl.c (grokdeclarator): Remove unused local variables
17892         `typedef_type' and `type_as_written'.
17893         * bb-reorder.c
17894         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
17895         unused local variable `has_hot_blocks'.
17896         (fix_crossing_conditional_branches): Remove unused local variable
17897         `prev_bb'.
17898
17899 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
17900
17901         PR middle-end/19984
17902         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
17903         using DEF_C99_BUILTIN.
17904         (BUILT_IN_NANF): Ditto.
17905         (BUILT_IN_NANL): Ditto.
17906
17907 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
17908             Revital Eres  <eres@il.ibm.com>
17909
17910         * modulo-sched.c (calculate_must_precede_follow): Address TODO
17911         regarding the order of two dependent insns in the same row.
17912
17913 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
17914
17915         * stor-layout.c (layout_decl): Do not bump the alignment of a
17916         bit-field to more than byte alignment if it is packed.
17917
17918 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
17919
17920         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
17921         e300c2 and e300c3.
17922
17923 2008-02-24  Diego Novillo  <dnovillo@google.com>
17924
17925         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
17926
17927         PR 33738
17928         * tree-vrp.c (vrp_evaluate_conditional): With
17929         -Wtype-limits, emit a warning when comparing against a
17930         constant outside the natural range of OP0's type.
17931         * c.opt (Wtype-limits): Move ...
17932         * common.opt (Wtype-limits): ... here.
17933
17934 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
17935
17936         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
17937         * config/rs6000/e300c2c3.md: New file.
17938         * config/rs6000/rs6000.c (processor_costs): Add new costs for
17939         e300c2 and e300c3.
17940         (rs6000_override_options): Add e300c2 and e300c3 cases to
17941         processor_target_table. Do not allow usage of Altivec or Spe
17942         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
17943         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
17944         * config/rs6000/rs6000.h (processor_type): Add
17945         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
17946         (ASM_CPU_SPEC): Add e300c2 and e300c3.
17947         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
17948         and ppce300c3. Include e300c2c3.md.
17949
17950 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
17951
17952         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
17953         instead of TARGET_STRICT_ALIGN.
17954
17955 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
17956
17957         * explow.c (memory_address): Assert that the generated address is
17958         valid.
17959
17960 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
17961
17962         PR target/25477
17963         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
17964         * config/darwin-ppc-ldouble-patch.def: New file.
17965         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
17966         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
17967         SUBTARGET_INIT_BUILTINS if defined.
17968         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
17969         New functions.
17970
17971 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
17972
17973         PR rtl-opt/33512
17974         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
17975         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
17976
17977 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
17978
17979         PR pch/35027
17980         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
17981         file" warning condtional on -Winvalid-PCH.
17982
17983 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
17984
17985         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
17986
17987 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
17988
17989         PR target/22076
17990         PR target/34256
17991         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
17992         prevent reload from using MMX registers.
17993         (*mov<mode>_internal): Ditto.
17994         (*movv2sf_internal_rex64): Ditto.
17995         (*movv2sf_internal): Ditto.
17996
17997 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17998
17999         PR documentation/31569
18000         * doc/install.texi2html: Use makeinfo --no-number-sections.
18001
18002 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
18003
18004         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
18005         ensure that we can address an entire entity > 8 bytes.  Don't
18006         generate reg+reg addressing for such data.
18007
18008 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
18009
18010         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
18011         strings when optimizing for size, unless the target cares about
18012         alignment.
18013
18014 2008-02-22  Tom Tromey  <tromey@redhat.com>
18015
18016         * regclass.c (current_pass): Remove declaration.
18017
18018 2008-02-22  Anatoly Sokolov <aesok@post.ru>
18019
18020         * config/avr/libgcc.S (__RAMPZ__): Define.
18021         (__do_copy_data): Add for devices with 128KB code memory.
18022
18023 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
18024
18025         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
18026         Use spe_abi.
18027         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
18028
18029 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
18030
18031         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
18032         GENNONACR_REGS.
18033
18034 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18035
18036         PR c/19999
18037         * c-typeck.c (build_binary_op): Warn about floating point
18038         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
18039
18040 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
18041
18042         PR target/34526
18043         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
18044         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
18045         add vrsave.
18046         (rs6000_override_options): Set altivec_abi as default, not override,
18047         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
18048         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
18049         is used; use new member spe_abi.
18050         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
18051         spe_abi and altivec_abi.
18052
18053 2008-02-22  Tomas Bily  <tbily@suse.cz>
18054
18055         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
18056
18057 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18058
18059         PR bootstrap/35273
18060         * config.build (build_file_translate): Set to `CMD //c' only if
18061         it works.
18062         * Makefile.in (build_file_translate): Improve comment.
18063
18064 2008-02-21  Jan Hubicka  <jh@suse.cz>
18065
18066         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
18067         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
18068         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
18069
18070 2008-02-21  Michael Matz  <matz@suse.de>
18071
18072         PR target/35264
18073         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
18074
18075 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
18076
18077         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
18078         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
18079         as insn constraint.
18080         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
18081         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
18082         SSE_VEC_FLOAT_MODE_P as insn constraint.
18083         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
18084         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
18085         sse4a_movntdf using MODEF mode iterator.
18086         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
18087         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
18088         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
18089         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
18090         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
18091         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
18092         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
18093
18094 2008-02-21  Richard Guenther  <rguenther@suse.de>
18095
18096         * tree.def (PAREN_EXPR): New tree code.
18097         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
18098         and PAREN_EXPR.
18099         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
18100         * expr.c (expand_expr_real_1): Likewise.
18101         * tree-inline.c (estimate_num_insns_1): Likewise.
18102         * tree-complex.c (expand_complex_move): Likewise.
18103         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
18104         as plain x.
18105
18106 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
18107
18108         PR target/35225
18109         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
18110
18111 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
18112
18113         PR target/35190
18114         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
18115
18116         * config/sh/sh.c (find_barrier): Don't go past
18117         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
18118
18119 2008-02-20  DJ Delorie  <dj@redhat.com>
18120
18121         * config/h8300/h8300.md (insv): Force source operand to be a register.
18122
18123         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
18124         as a jump, not as a plain insn.
18125
18126 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
18127
18128         * doc/invoke.texi (Warning Options): Add new option
18129         -Wframe-larger-than=.
18130         (-Wframe-larger-than): Document.
18131
18132         * flags.h (warn_frame_larger_than, frame_larger_than_size):
18133         Add declarations for new option variables.
18134
18135         * final.c (final_start_function): Check the frame size
18136         before emission and issue a Wframe-larger-than warning.
18137
18138         * opts.c (warn_frame_larger_than, frame_larger_than_size):
18139         Add definitions for new option variables.
18140         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
18141
18142         * common.opt (Wframe-larger-than=): New option.
18143
18144 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
18145
18146         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
18147         (<sse>_div<mode>3): Ditto.
18148         (<sse>_vmdiv<mode>3): Ditto.
18149         (<sse>_vmsqrt<mode>2): Ditto.
18150         (*smax<mode>3): Ditto.
18151         (sse5_frcz<mode>2): Ditto.
18152         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
18153         as insn constraint.
18154
18155 2008-02-20  Richard Guenther  <rguenther@suse.de>
18156
18157         PR middle-end/35265
18158         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
18159         be happy with INTEGRAL_TYPE_P.
18160
18161 2008-02-20  Richard Guenther  <rguenther@suse.de>
18162
18163         * fold-const.c (split_tree): Associate floatig-point expressions
18164         if flag_associative_math is set.
18165
18166 2008-02-20  Richard Guenther  <rguenther@suse.de>
18167
18168         * tree.h (fold_real_zero_addition_p): Declare.
18169         * fold-const.c (fold_real_zero_addition_p): Export.
18170         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
18171         floating-point operations with zero and one.
18172
18173 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
18174
18175         * doc/install.texi: Correct references to CFLAGS, replacing them
18176         with BOOT_CFLAGS.  Document flags used during bootstrap for
18177         target libraries.
18178
18179 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
18180
18181         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
18182         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
18183         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
18184         insn constraint.
18185         (smin<mode>3): Ditto from similar patterns.
18186         (smax<mode>3): Ditto.
18187         (*ieee_smin<mode>3): Ditto.
18188         (*ieee_smax<mode>3): Ditto.
18189         * config/i386/sse.md (sse): New mode attribute.
18190         (mov<mode>): Macroize expander from movv4sf and movv2df using
18191         SSEMODEF2P mode iterator.
18192         (<sse>_movnt<mode>): Ditto from similar patterns. Use
18193         SSE_VEC_FLOAT_MODE_P as insn constraint.
18194         (storent<mode>): Ditto.
18195         (storent<mode>): Macroize expander from storentsf and storentdf using
18196         MODEF mode iterator.
18197         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
18198         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
18199         (abs<mode>2): Ditto from similar patterns.
18200         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
18201         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
18202         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
18203         (<sse>_vmsqrt<mode>2): Ditto.
18204         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
18205         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
18206         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
18207         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
18208         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
18209         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
18210         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
18211         insn constraint.
18212         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
18213         iterator and SSE_FLOAT_MODE_P as insn constraint.
18214         (<sse>_ucomi): Ditto from similar patterns.
18215         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
18216         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
18217         SSE_VEC_FLOAT_MODE_P as insn constraint.
18218         (vcond<mode>): Ditto from similar patterns.
18219         (and<mode>3, *and<mode>3): Ditto.
18220         (<sse>_nand<mode>3): Ditto.
18221         (ior<mode>3, *ior<mode>3): Ditto.
18222         (xor<mode>3, *xor<mode>3): Ditto.
18223         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
18224         iterator and SSE_FLOAT_MODE_P as insn constraint.
18225         (*nand<mode>3): Ditto from similar patterns.
18226         (*ior<mode>3): Ditto.
18227         (*xor<mode>3): Ditto.
18228
18229 2008-02-20  Ira Rosen  <irar@il.ibm.com>
18230
18231         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
18232         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
18233         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
18234
18235 2008-02-19  Jan Hubicka  <jh@suse.cz>
18236
18237         * predict.c (tree_bb_level_predictions): Remove variable next
18238         mistakely introduced by previous commit.
18239
18240 2008-02-19  Jan Hubicka  <jh@suse.cz>
18241
18242         * predict.c (predict_paths_leading_to): Rewrite.
18243         (predict_paths_for_bb): New.
18244         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
18245
18246 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18247
18248         PR bootstrap/35218
18249         * Makefile.in (build_file_translate): New.
18250         (gcc-vers.texi): Use it for translating $(abs_srcdir).
18251         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
18252         * configure.ac (build_file_translate): Substitute it.
18253         * configure: Regenerate.
18254
18255 2008-02-19  Jan Hubicka  <jh@suse.cz>
18256
18257         PR rtl-optimization/34408
18258         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
18259         invalid sharing.
18260
18261 2008-02-19  Jan Hubicka  <jh@suse.cz>
18262
18263         PR middle-end/28779
18264         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
18265         call_expr.
18266
18267 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
18268
18269         PR Ada/35186
18270         * config/i386/i386-modes.def: Revert the last DI alignment
18271         change until Ada people can look into it.
18272
18273 2008-02-19  Nick Clifton  <nickc@redhat.com>
18274
18275         * opts.c (print_specific_help): Fix typo in --help text.
18276
18277 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
18278
18279         PR target/35239
18280         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
18281         32-bit inline asm without asm alternatives for host GCC < 3.0.
18282
18283 2008-02-19  Richard Guenther  <rguenther@suse.de>
18284
18285         PR tree-optimization/34989
18286         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
18287         Allow propagation to INDIRECT_REF if we can simplify only.
18288
18289 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18290
18291         * c-common.c (warn_for_collisions_1): Use appropriate option when
18292         warning.
18293
18294 2008-02-19  Nick Clifton  <nickc@redhat.com>
18295
18296         PR other/31349
18297         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
18298         (handle_options): Fix indentation.
18299         (print_filtered_help): If no language-specific options were
18300         displayed tell the user how to list all the options supported by
18301         the language's front-end.
18302         (print_specific_help): Fix indentation and remove duplicate line.
18303         (common_handle_option): Handle the -v option.
18304         For --help enable the display of undocumented options if the -v
18305         switch has been included on the command line.
18306         For --help= check for overlaps in the arguments between the option
18307         classes and the language names and issue a warning when they
18308         cannot be disambiguated.
18309         * c.opt (v): Pass on to the common option handler.
18310
18311 2008-02-19  Revital Eres  <eres@il.ibm.com>
18312
18313         * modulo-sched.c (sms_schedule): Change dump message when
18314         create_ddg function fails.
18315         (try_scheduling_node_in_cycle): Rename row to cycle.
18316         (print_partial_schedule): Rename CYCLE to ROW.
18317
18318 2008-02-19  Christian Bruel  <christian.bruel@st.com>
18319             Zdenek Dvorak  <ook@ucw.cz>
18320
18321         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
18322
18323 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
18324
18325         PR target/33555
18326         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
18327         (*x86_movdicc_0_m1_se): Ditto.
18328
18329 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
18330
18331         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
18332         (CMPtype): Define as __gcc_CMPtype.
18333         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
18334         (CMPtype): Define as __gcc_CMPtype.
18335
18336 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
18337
18338         Support valgrind 3.3 for --enable-checking=valgrind.
18339         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
18340         here.
18341         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
18342         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
18343         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
18344         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
18345         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
18346         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
18347         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
18348         respectively.
18349         * ggc-zone.c: Similar.
18350         * ggc-page.c: Similar.
18351
18352 2008-02-19  Paul Brook  <paul@codesourcery.com>
18353
18354         PR target/35071
18355         * config/arm/ieee754-df.S: Fix do_it typo.
18356         * config/arm/ieee754-sf.S: Fix do_it typo.
18357
18358 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
18359
18360         PR target/35189
18361         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
18362         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
18363         (OPTION_MASK_ISA_SSE_SET): Likewise.
18364         (OPTION_MASK_ISA_SSE2_SET): Likewise.
18365         (OPTION_MASK_ISA_SSE3_SET): Likewise.
18366         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
18367         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
18368         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
18369         (OPTION_MASK_ISA_SSE4_SET): Likewise.
18370         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
18371         (OPTION_MASK_ISA_SSE5_SET): Likewise.
18372         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
18373         (OPTION_MASK_ISA_MMX_UNSET): Updated.
18374         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
18375         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
18376         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
18377         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
18378         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
18379         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
18380         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
18381         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
18382         (OPTION_MASK_ISA_SSE4): Removed.
18383         (ix86_handle_option): Turn on bits in ix86_isa_flags and
18384         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
18385         (override_options): Don't turn on implied SSE/MMX bits in
18386         ix86_isa_flags.
18387
18388 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
18389
18390         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
18391         32bit host.
18392
18393 2008-02-18  Joey Ye  <joey.ye@intel.com>
18394
18395         PR middle-end/34921
18396         * tree-nested.c (insert_field_into_struct): Set type alignment
18397         to field alignment if the former is less than the latter.
18398
18399 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
18400
18401         * BASE-VER: Set to 4.4.0.
18402
18403 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18404
18405         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
18406         * doc/cfg.texi: Likewise.
18407         * doc/extend.texi: Likewise.
18408         * doc/gty.texi: Likewise.
18409         * doc/invoke.texi: Likewise.
18410         * doc/loop.texi: Likewise.
18411         * doc/md.texi: Likewise.
18412         * doc/passes.texi: Likewise.
18413         * doc/rtl.texi: Likewise.
18414         * doc/sourcebuild.texi: Likewise.
18415         * doc/tm.texi: Likewise.
18416         * doc/tree-ssa.texi: Likewise.
18417
18418 2008-02-17  Richard Guenther  <rguenther@suse.de>
18419
18420         PR middle-end/35227
18421         * tree-complex.c (init_parameter_lattice_values): Handle parameters
18422         without default definition.
18423
18424 2008-02-17  Richard Guenther  <rguenther@suse.de>
18425
18426         PR tree-optimization/35231
18427         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
18428         if A | B != 1.
18429
18430 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
18431
18432         Revert:
18433         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
18434         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
18435         libgcc_cmp_return mode.
18436
18437 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18438
18439         PR c/28368
18440         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
18441
18442 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
18443
18444         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
18445         multilibs.
18446
18447 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18448
18449         * doc/c-tree.texi: Use `@.' where appropriate.
18450         * doc/extend.texi: Likewise.
18451         * doc/install.texi: Likewise.
18452         * doc/invoke.texi: Likewise.
18453         * doc/loop.texi: Likewise.
18454         * doc/makefile.texi: Likewise.
18455         * doc/md.texi: Likewise.
18456         * doc/passes.texi: Likewise.
18457         * doc/standards.texi: Likewise.
18458         * doc/tm.texi: Likewise.
18459
18460 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
18461
18462         PR middle-end/35196
18463         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
18464         in entry_bb.
18465         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
18466         rather than in entry_bb.
18467
18468 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
18469
18470         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
18471         libgcc_cmp_return mode.
18472
18473 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
18474
18475         PR middle-end/35130
18476         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
18477         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
18478
18479 2008-02-15  Richard Guenther  <rguenther@suse.de>
18480             Zdenek Dvorak  <ook@ucw.cz>
18481
18482         PR tree-optimization/35164
18483         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
18484         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
18485         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
18486         Only propagate addresses which do not have abnormal SSA_NAMEs
18487         in their operands.
18488
18489 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
18490
18491         PR target/35088
18492         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
18493
18494 2008-02-15  Jan Hubicka  <jh@suse.cz>
18495
18496         PR middle-end/35149
18497         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
18498
18499 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
18500
18501         PR middle-end/34621
18502         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
18503         when calculating alignment_pad.
18504
18505 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
18506
18507         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
18508         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
18509         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
18510         and STACK_BOUNDARY define.
18511
18512 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
18513
18514         PR preprocessor/35061
18515         * c-pragma.c (handle_pragma_pop_macro): Check that
18516         pushed_macro_table has been allocated.
18517
18518 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
18519
18520         PR middle-end/35136
18521         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
18522         (force_gimple_operand): Likewise.
18523         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
18524         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
18525         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
18526         (find_interesting_uses_address): Check addressability and alignment
18527         of the base expression only after substituting bases of IVs into it.
18528
18529 2008-02-14  Michael Matz  <matz@suse.de>
18530
18531         PR target/34930
18532         * function.c (instantiate_virtual_regs_in_insn): Reload address
18533         before falling back to reloading the whole operand.
18534
18535 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
18536
18537         * config/s390/s390.c (s390_mainpool_start): Emit the pool
18538         before the first section switch note.
18539
18540 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18541
18542         * doc/bugreport.texi: Update copyright years.
18543         * doc/c-tree.texi: Likewise.
18544         * doc/cfg.texi: Likewise.
18545         * doc/cpp.texi: Likewise.
18546         * doc/cppinternals.texi: Likewise.
18547         * doc/fragments.texi: Likewise.
18548         * doc/frontends.texi: Likewise.
18549         * doc/gcc.texi: Likewise.
18550         * doc/gty.texi: Likewise.
18551         * doc/hostconfig.texi: Likewise.
18552         * doc/implement-c.texi: Likewise.
18553         * doc/libgcc.texi: Likewise.
18554         * doc/loop.texi: Likewise.
18555         * doc/makefile.texi: Likewise.
18556         * doc/options.texi: Likewise.
18557         * doc/passes.texi: Likewise.
18558         * doc/rtl.texi: Likewise.
18559         * doc/sourcebuild.texi: Likewise.
18560         * doc/standards.texi: Likewise.
18561         * doc/tree-ssa.texi: Likewise.
18562         * doc/trouble.texi: Likewise.
18563
18564         * doc/extend.texi: Use @: or add comma where appropriate.
18565         * doc/invoke.texi: Likewise.
18566         * doc/tm.texi: Likewise.
18567
18568 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
18569
18570         PR target/34393
18571         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
18572         to a reg.
18573
18574 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
18575
18576         * doc/md.texi (clz, ctz): Add reference.
18577         * doc/rtl.texi (clz, ctz): Likewise.
18578
18579 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18580
18581         PR other/35148
18582         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
18583         srcdir.
18584
18585 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
18586
18587         * config/s390/s390.c (struct constant_pool): New field
18588         emit_pool_after added.
18589         (s390_mainpool_start): Set the emit_pool_after flag according
18590         to the section switch notes.
18591         (s390_mainpool_finish): Consider emit_pool_after when emitting
18592         the literal pool at the end of the function.
18593         (s390_chunkify_start): Force literal pool splits at section
18594         switch notes.
18595
18596 2008-02-13  Michael Matz  <matz@suse.de>
18597
18598         PR debug/35065
18599         * var-tracking.c (clobber_variable_part): Correctly traverse the
18600         list.
18601
18602 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18603
18604         PR 29673
18605         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
18606         Add -fdump-ipa-inline.
18607         * tree-dump.c (dump_files): Remove tree-inlined dump.
18608         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
18609
18610 2008-02-12  Richard Guenther  <rguenther@suse.de>
18611
18612         PR tree-optimization/35171
18613         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
18614         default defs.
18615
18616 2008-02-12  Richard Guenther  <rguenther@suse.de>
18617
18618         PR middle-end/35163
18619         * fold-const.c (fold_widened_comparison): Use get_unwidened in
18620         value-preserving mode.  Disallow final truncation.
18621
18622 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
18623
18624         PR middle-end/35136
18625         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
18626         code from here to...
18627         (force_gimple_operand): ...here.
18628
18629 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
18630
18631         PR c++/35144
18632         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
18633         non-compatible pointers.
18634         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
18635         different FIELD_DECLs, try harder by comparing field offsets, sizes
18636         and types.
18637
18638         PR inline-asm/35160
18639         * function.c (match_asm_constraints_1): Don't replace the same input
18640         multiple times.
18641
18642 2008-02-12  Anatoly Sokolov <aesok@post.ru>
18643
18644         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
18645         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
18646         (expand_epilogue): Restore RAMPZ register.
18647         * config/avr/avr.md (RAMPZ_ADDR): New constant.
18648
18649 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
18650
18651         * config/i386/cygwin.asm: (__alloca): Correct calling
18652         convention and alignment.
18653         (__chkstk): Force 8 byte stack alignment.
18654
18655 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
18656             Richard Guenther  <rguenther@suse.de>
18657
18658         PR tree-optimization/33992
18659         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
18660         the zero we compare against.
18661
18662 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
18663
18664         PR libfortran/35063
18665         * gthr-win32.h (__gthread_mutex_destroy_function): New function
18666         to CloseHandle after unlocking to prevent accumulation of handle
18667         count.
18668
18669 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18670
18671         PR middle_end/34150
18672         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
18673         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
18674         and update LABEL_NUSES during and after reload.
18675
18676 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
18677
18678         PR middle-end/34627
18679         * combine.c (simplify_if_then_else): Make sure the comparison is
18680         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
18681
18682 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
18683
18684         PR bootstrap/35051
18685         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
18686         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
18687         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
18688         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
18689         * tree.h (get_type_static_bounds): Likewise.
18690
18691 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18692
18693         * doc/invoke.texi (Option Summary, C++ Dialect Options)
18694         (Objective-C and Objective-C++ Dialect Options, Warning Options):
18695         Make -Wfoo language annotations match what the compiler outputs.
18696
18697 2008-02-08  Sa Liu  <saliu@de.ibm.com>
18698
18699         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
18700         intrinsics spu_convts, spu_convtu, spu_convtf.
18701
18702 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
18703
18704         * doc/extend.texi (Function Attributes) <noinline>: Mention
18705         asm ("") as method to keep calls.
18706
18707 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18708
18709         PR other/32754
18710         * doc/options.texi (Options): Replace references to opts.sh with
18711         optc-gen.awk.
18712         * opts-common.c: Likewise.
18713         * optc-gen.awk: Likewise.
18714
18715 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
18716
18717         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
18718
18719 2008-02-07  Richard Henderson  <rth@redhat.com>
18720
18721         PR rtl-opt/33410
18722         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
18723         EXPR_LIST for the REG_EQUAL instead of a comparison with a
18724         funny mode.
18725
18726 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
18727
18728         PR tree-optimization/35085
18729         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
18730         for operand entry oe2 in addition to operand entry oe3 in order to
18731         expose more opportunities for vectorizer sum reduction.
18732
18733 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18734
18735         PR other/35107
18736         * Makefile.in (LIBS): Remove $(GMPLIBS).
18737         (cc1-dummy, cc1): Add $(GMPLIBS).
18738
18739 2008-02-06  Jan Hubicka  <jh@suse.cz>
18740
18741         PR target/23322
18742         * i386.md (moddf_integer): Do not produce partial memory stalls for
18743         targets where it hurts.
18744
18745 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
18746
18747         PR target/35083
18748         * optabs.c (expand_float): Do not check for decimal modes when
18749         expanding unsigned integer through signed conversion.
18750
18751 2008-02-06  Nick Clifton  <nickc@redhat.com>
18752
18753         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
18754         inside the clobber with a match_operand and duplicated operand
18755         number in the constraint.
18756         (ineqbranchsi): Delete redundant comment.
18757
18758 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
18759
18760         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
18761         builtin_define ("__USE_INIT_FINI__").
18762         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
18763         -msx multilibs.
18764         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
18765
18766 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18767
18768         PR documentation/30330
18769         * doc/invoke.texi (C++ Dialect Options)
18770         (Objective-C and Objective-C++ Dialect Options, Warning Options):
18771         For each warning option -Wfoo that allows -Wno-foo, ensure both
18772         -Wfoo and -Wno-foo are listed in the option index.  Fix index
18773         entry of -Wswitch-default, index -Wnormalized= including the
18774         `=', and -Wlarger-than-@var{len} including @var{len}.
18775
18776 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
18777
18778         * config/i386/i386.md (floatunssisf2): Use
18779         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
18780         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
18781         Macroize expander using MODEF mode iterator.
18782
18783 2008-02-05  Diego Novillo  <dnovillo@google.com>
18784
18785         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
18786
18787         PR 33738
18788         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
18789
18790 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18791
18792         PR other/35070
18793         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
18794
18795 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
18796
18797         PR target/35084
18798         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
18799         to indicate if a message should be generated.
18800         (init_cumulative_args): Updated.
18801         (function_value_32): Likewise.
18802
18803 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
18804
18805         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
18806
18807 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
18808
18809         PR target/35083
18810         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
18811         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
18812
18813 2008-02-04  Diego Novillo  <dnovillo@google.com>
18814
18815         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
18816
18817         PR 33738
18818         * tree-vrp.c (vrp_evaluate_conditional): With
18819         -Wtype-limits, emit a warning when comparing against a
18820         constant outside the natural range of OP0's type.
18821
18822 2008-02-04  Richard Guenther  <rguenther@suse.de>
18823
18824         PR middle-end/33631
18825         * expr.c (count_type_elements): Give for unions instead of
18826         guessing.
18827
18828 2008-02-04  Richard Guenther  <rguenther@suse.de>
18829
18830         PR middle-end/35043
18831         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
18832         to TYPE_DOMAINs base type instead of using bitsizetype here.
18833
18834 2008-02-03  Jason Merrill  <jason@redhat.com>
18835
18836         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
18837
18838 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18839
18840         PR other/29972
18841         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
18842         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
18843         (RS/6000 and PowerPC Options): Fix typos and markup.
18844         * doc/passes.texi (Tree-SSA passes): Likewise.
18845
18846 2008-02-02  Michael Matz  <matz@suse.de>
18847
18848         PR target/35045
18849         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
18850         from record_last_reg_set_info.
18851         (record_last_reg_set_info): Take an RTX argument, iterate over all
18852         constituent hardregs.
18853         (record_last_set_info, record_opr_changes): Change calls to
18854         new signature or to record_last_reg_set_info_regno.
18855
18856 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
18857
18858         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
18859
18860 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
18861
18862         PR rtl-optimization/34773
18863         * reg-notes.def (EQUAL): Mention significance of combination of
18864         REG_EQUAL and REG_RETVAL.
18865         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
18866         insn that has a REG_RETVAL.
18867
18868 2008-02-01  Roger Sayle  <roger@eyesopen.com>
18869
18870         PR bootstrap/33781
18871         * configure.ac (--enable-fixed-point): Disable unless explicitly
18872         requested on IRIX.
18873         * configure: Regenerate.
18874
18875 2008-02-01  Richard Guenther  <rguenther@suse.de>
18876
18877         PR other/35042
18878         * invoke.texi (-finline-limit): Remove no longer true parts
18879         of the documentation.  Note that there is no default value.
18880
18881 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
18882             Mark Mitchell  <mark@codesourcery.com>
18883             Ben Elliston  <bje@au.ibm.com>
18884
18885         PR c/29326
18886         * doc/extend.texi (Other Builtins): Document.
18887
18888 2008-01-31  Tom Browder <tom.browder@gmail.com>
18889
18890         * doc/c-tree.texi (Types): Fix grammar.
18891         (Expression trees): Ditto.
18892         * doc/passes.texi (Tree-SSA passes): Ditto.
18893
18894         * doc/configterms.texi (Configure Terms): Fix typo.
18895         * doc/cpp.texi (Common Predefined Macros): Ditto.
18896         * doc/md.texi (Machine Constraints): Ditto.
18897
18898         * doc/makefile.texi (Makefile): Add comma.
18899
18900 2008-01-31  Tom Browder  <tom.browder@gmail.com>
18901             Gerald Pfeifer  <gerald@pfeifer.com>
18902
18903         * doc/sourcebuild.texi (Front End): Remove references to CVS
18904         and CVSROOT/modules.
18905         (Texinfo Manuals): Replace reference to CVS by one to SVN.
18906         (Back End): Remove reference to CVS.
18907
18908 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
18909
18910         PR target/34900
18911         * config/mips/mips.c (gen_load_const_gp): New function, taking a
18912         comment from...
18913         (mips16_gp_pseudo_reg): ...here.
18914         * config/mips/mips.md (load_const_gp): Replace with...
18915         (load_const_gp_<mode>): ...this :P-based insn.
18916
18917 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18918
18919         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
18920         options. Minor fixes.
18921         (-std): Move reference to standards closer to where language
18922         standards are first mentioned.
18923
18924 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
18925
18926         PR rtl-optimization/34995
18927         * reload.c (alternative_allows_const_pool_ref): Take an rtx
18928         parameter and return a bool.  If the rtx parameter is nonnull,
18929         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
18930         (find_reloads): Update call accordingly.  Pass the new operand
18931         if it needed no address reloads, otherwise pass null.
18932
18933 2008-01-30  Richard Henderson  <rth@redhat.com>
18934
18935         PR c/34993
18936         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
18937         for unbounded arrays.
18938
18939 2008-01-30  Silvius Rus  <rus@google.com>
18940
18941         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
18942
18943 2008-01-30  Jan Hubicka  <jh@suse.cz>
18944
18945         PR target/34982
18946         * i386.c (init_cumulative_args): Use real function declaration when
18947         calling locally.
18948
18949 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
18950
18951         PR rtl-optimization/34998
18952         * global.c (build_insn_chain): Treat non-subreg_lowpart
18953         SUBREGs of pseudos as clobbering all the words covered by the
18954         SUBREG, not just all the bytes.
18955         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
18956         original df_ref rather than an extract parameter.
18957         (global_conflicts): Update call accordingly.
18958
18959 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
18960
18961         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
18962         the overflow check to make it easier to read.
18963         (__fixtfdi): Change the type of the ll member in union
18964         long_double to UDItype_x.
18965
18966 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
18967
18968         PR middle-end/34969
18969         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
18970         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
18971         * tree-inline.c (fold_marked_statements): Call
18972         cgraph_update_edges_for_call_stmt if folding a call statement.
18973         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
18974         debug_generic_stmt calls, reset it back afterwards.
18975
18976         PR c/35017
18977         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
18978         static decls.
18979         * c-typeck.c (build_external_ref): Don't pedwarn about
18980         static vars in current function's scope.
18981
18982 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
18983
18984         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
18985
18986 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
18987
18988         PR c/35002
18989         * ipa-struct-reorg.c: Fix spelling.
18990         * params.def: Ditto.
18991
18992 2008-01-29  Richard Guenther  <rguenther@suse.de>
18993
18994         PR middle-end/35006
18995         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
18996         field.
18997         * tree-inline.c (remap_type): Increment remapping_type_depth
18998         around remapping types.
18999         (copy_body_r): Only add referenced variables if they are referenced
19000         from code, not types.
19001
19002 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
19003
19004         PR c++/34055
19005         PR c++/34103
19006         PR c++/34219
19007         PR c++/34606
19008         PR c++/34753
19009         PR c++/34754
19010         PR c++/34755
19011         PR c++/34919
19012         PR c++/34961
19013         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
19014         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
19015
19016 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
19017
19018         PR target/34412
19019         * config/avr/avr.c (expand_prologue): Use correct QI mode frame
19020         pointer for tiny stack.
19021
19022 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
19023
19024         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
19025
19026 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
19027
19028         * config/vx-common.h: Fix typo in comment.
19029
19030 2008-01-28  Ian Lance Taylor  <iant@google.com>
19031
19032         PR c++/34862
19033         PR c++/33407
19034         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
19035         coalesce pointers if they have different DECL_NO_TBAA_P values.
19036         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
19037         between variables with different DECL_NO_TBAA_P values.
19038
19039 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
19040
19041         PR 31535
19042         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
19043         are not legitimate small data references on SPE targets.
19044
19045 2008-01-28  David Daney  <ddaney@avtrex.com>
19046
19047         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
19048
19049 2008-01-28  David Daney  <ddaney@avtrex.com>
19050
19051         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
19052
19053 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
19054
19055         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
19056         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
19057         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
19058         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
19059         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
19060         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
19061         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
19062         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
19063
19064 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
19065
19066         * basic-block.h (condjump_equiv_p): Fix comment.
19067
19068 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
19069
19070         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
19071         print_generic_stmt_indented): Fix comment.
19072
19073 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
19074
19075         * configure.ac (__stack_chk_fail): Add detecion for availability
19076         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
19077         * configure: Regenerate.
19078
19079 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
19080
19081         PR middle-end/34688
19082         * final.c (output_addr_const): Handle TRUNCATE.
19083
19084 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
19085
19086         PR target/34711
19087         * tree-ssa-loop-ivopts.c (comp_cost): New type.
19088         (zero_cost, infinite_cost): New constants.
19089         (struct cost_pair): Change type of cost to comp_cost.
19090         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
19091         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
19092         New functions.
19093         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
19094         split_address_cost, ptr_difference_cost, difference_cost,
19095         get_computation_cost_at, get_computation_cost,
19096         determine_use_iv_cost_generic, determine_use_iv_cost_address,
19097         determine_use_iv_cost_condition, determine_use_iv_costs,
19098         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
19099         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
19100         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
19101         Change type of cost to comp_cost.
19102         (determine_iv_cost): Increase cost of non-original ivs, instead
19103         of decreasing the cost of original ones.
19104         (get_address_cost): Indicate the complexity of the addressing mode
19105         in comp_cost.
19106         (try_add_cand_for): Prefer using ivs not specific to some object.
19107         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
19108
19109 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
19110             Janis Johnson  <janis187@us.ibm.com>
19111
19112         PR target/34814
19113         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
19114         (TARGET_INSTANTIATE_DECLS): Likewise.
19115         * target.h (expand_to_rtl_hook): New target hook.
19116         (instantiate_decls): Likewise.
19117         * function.c (instantiate_decl): Make non-static.  Rename to...
19118         (instantiate_decl_rtl): ... this.
19119         (instantiate_expr): Use instantiate_decl_rtl.
19120         (instantiate_decls_1): Likewise.
19121         (instantiate_decls): Likewise.
19122         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
19123         * function.h (instantiate_decl_rtl): Add prototype.
19124         * cfgexpand.c (target.h): New include.
19125         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
19126         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
19127         (TARGET_INSTANTIATE_DECLS): Likewise.
19128         (TARGET_INITIALIZER): New target hooks added.
19129         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
19130         New prototype.
19131         * config/rs6000/rs6000.c (tree-flow.h): New include.
19132         (machine_function): Add sdmode_stack_slot field.
19133         (rs6000_alloc_sdmode_stack_slot): New function.
19134         (rs6000_instantiate_decls): Likewise.
19135         (rs6000_secondary_memory_needed_rtx): Likewise.
19136         (rs6000_check_sdmode): Likewise.
19137         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
19138         (TARGET_INSTANTIATE_DECLS): Likewise.
19139         (rs6000_hard_regno_mode_ok): Allow SDmode.
19140         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
19141         (rs6000_emit_move): Handle SDmode.
19142         (function_arg_advance): Likewise.
19143         (function_arg): Likewise.
19144         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
19145         SDmode var args for 32-bit compiles.
19146         (rs6000_secondary_reload_class): Handle SDmode.
19147         (rs6000_output_function_epilogue): Likewise.
19148         (rs6000_function_value): Simplify if statement.
19149         (rs6000_libcall_value): Likewise.
19150         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
19151         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
19152         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
19153         (movsd_hardfloat): New define_insn.
19154         (movsd_softfloat): Likewise.
19155         (movsd_store): Likewise.
19156         (movsd_load): Likewise.
19157         (extendsddd2): Likewise.
19158         (extendsdtd2): Likewise.
19159         (truncddsd2): Likewise.
19160         (movdd_hardfloat64): Fixup comment.
19161         (UNSPEC_MOVSD_LOAD): New constant.
19162         (UNSPEC_MOVSD_STORE): Likewise.
19163
19164 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
19165
19166         PR c++/34965
19167         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
19168         TRUTH_XOR_EXPR.
19169         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
19170         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
19171         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
19172         and TRUTH_XOR_EXPR.
19173
19174 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
19175
19176         PR target/34794
19177         * config.gcc: Separate AIX 5.3 from AIX 6.1.
19178         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
19179         __LONGDOUBLE128 too.
19180         * config/rs6000/aix61.h: New file.
19181
19182 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
19183
19184         PR rtl-optimization/34959
19185         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
19186         popcount and parity rtxes the same mode as their operand.
19187         Truncate or extend the result to the return value's mode
19188         if necessary.
19189
19190 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
19191
19192         PR target/34981
19193         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
19194         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
19195         to GOT_VERSION_REGNUM.
19196         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
19197         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
19198         * config/mips/mips.c (mips_emit_call_insn): New function.
19199         (mips_call_tls_get_addr): Call mips_expand_call directly.
19200         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
19201         emit_call_insn.
19202         (mips16_build_call_stub): Likewise.  Return the call insn or null.
19203         (mips_expand_call): Update the call to mips16_build_call_stub
19204         accordingly and a remove redundant condition.  Assert that MIPS16
19205         stubs do not use lazy binding.  Use mips_emit_call_insn and return
19206         the call insn.
19207         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
19208         TARGET_USE_GOT.
19209         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
19210         (mips_avoid_hazard): Remove hazard_set handling.
19211         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
19212         (UNSPEC_RESTORE_GP): ...this.
19213         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
19214         (FAKE_CALL_REGNO): Rename to...
19215         (GOT_VERSION_REGNUM): ...this.
19216         (type): Add "ghost" value.  Add an associated insn reservation.
19217         (hazard_set): Remove.
19218         (exception_receiver): Rename to...
19219         (restore_gp): ...this and update the unspec identifier accordingly.
19220         (exception_receiver, nonlocal_got_receiver): New expanders.
19221         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
19222         FAKE_CALL_REGNO.  Remove hazard_set attribute.
19223         (set_got_version, update_got_version): New patterns.
19224
19225 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
19226
19227         PR target/34970
19228         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
19229
19230 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
19231
19232         PR other/31955
19233         * doc/install.texi2html: Generate gcc-vers.texi.
19234
19235 2008-01-25  DJ Delorie  <dj@redhat.com>
19236
19237         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
19238
19239 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
19240
19241         * config/c4x: Remove directory.
19242         * config.gcc (crx-*, mt-*): Mark obsolete.
19243         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
19244         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
19245         sh-*-rtemscoff*): Remove cases.
19246         * defaults.h (C4X_FLOAT_FORMAT): Remove.
19247         * real.c (encode_c4x_single, decode_c4x_single,
19248         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
19249         c4x_extended_format): Remove.
19250         * real.h (c4x_single_format, c4x_extended_format): Remove.
19251         * doc/extend.texi (interrupt, naked): Remove mention of attributes
19252         on C4x.
19253         (Pragmas): Remove comment about c4x pragmas.
19254         * doc/install.texi (c4x): Remove target-specific instructions.
19255         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
19256         * doc/md.texi (Machine Constraints): Remove C4x documentation.
19257         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
19258         refer to C4x source files as examples.
19259         (C4X_FLOAT_FORMAT): Remove documentation.
19260
19261 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
19262
19263         * config/bfin/bfin.c (override_options): Reorder tests so that
19264         flag_pic gets enabled for -msep-data.
19265
19266 2008-01-25  Richard Guenther  <rguenther@suse.de>
19267
19268         PR middle-end/32244
19269         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
19270         to its bitfield precision if required.
19271
19272 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
19273
19274         PR middle-end/33880
19275         * tree-nested.c (walk_omp_for): New function.
19276         (convert_nonlocal_reference, convert_local_reference): Call
19277         walk_omp_for on OMP_FOR.
19278         (convert_call_expr): Call walk_body on OMP_FOR's
19279         OMP_FOR_PRE_INIT_BODY.
19280
19281 2008-01-25  Richard Guenther  <rguenther@suse.de>
19282
19283         PR tree-optimization/34966
19284         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
19285         default defs and PHI_NODEs we have to insert after the
19286         defining statement.
19287
19288 2008-01-24  Nick Clifton  <nickc@redhat.com>
19289
19290         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
19291         Provide a default definition.
19292         (LIBGCC2_UNITS_PER_WORD): Likewise.
19293
19294         * config/stormy16/stormy16.c: Include df.h for the prototype
19295         for df_regs_ever_live_p.
19296         (xstormy16_expand_builtin_va_start): Convert the stack offset
19297         into a component_ref and then use POINTER_PLUS_EXPR to add it
19298         to the incoming_virtual_args_rtx.
19299         (xstormy16_gimplify_va_arg_expr): Rename to
19300         xstormy16_gimplify_va_arg_expr.
19301         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
19302         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
19303         xstormy16_gimplify_va_arg_expr.
19304         Fix up some formatting issues.
19305
19306         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
19307         Move to predicates.md.
19308         (xs_hi_general_operand): Likewise.
19309         (xs_hi_nonmemory_operand): Likewise.
19310         * config/stormy16/predicates.md:
19311         (xstormy16_carry_plus_operand): New predicate.
19312         (xs_hi_general_operand): New predicate.
19313         (xs_hi_nonmemory_operand): New predicate.
19314         * config/stormy16/stormy16-protos.h:
19315         (xstormy16_carry_plus_operand): Delete prototype.
19316         (xs_hi_general_operand): Likewise.
19317         (xs_hi_nonmemory_operand): Likewise.
19318
19319         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
19320         modifiers as they are no longer needed and they can trigger
19321         reload spill failures.
19322
19323         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
19324         with a match_operand in order to help reload.
19325
19326         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
19327         constraint with 'e' for the 8th alternative as this version of
19328         the mov.w instruction only accepts the lower 8 registers.
19329
19330 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
19331
19332         PR target/34856
19333         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
19334         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
19335         vector elements.
19336
19337 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
19338
19339         PR middle-end/33333
19340         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
19341
19342 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
19343
19344         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
19345         New functions.
19346         (remove_structure): Update allocations list before removing structure.
19347
19348 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
19349
19350         * ipa-struct-reorg.c (is_safe_cond_expr,
19351         create_new_stmts_for_cond_expr): Use integer_zerop function,
19352         that recognize not only zero-pointer, but zero-integer too.
19353
19354 2008-01-25  Ben Elliston  <bje@au.ibm.com>
19355
19356         PR other/22232
19357         * fixproto: Escape "." in sed expression that strips leading "./".
19358
19359 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
19360
19361         PR driver/34904
19362         * gcc.c (SWITCH_OK): Removed.
19363         (SWITCH_LIVE): Changed to bit.
19364         (SWITCH_FALSE): Likewise.
19365         (SWITCH_IGNORE): Likewise.
19366         (switchstr): Change live_cond to unsigned int.
19367         (process_command): Replace SWITCH_OK with 0.
19368         (do_self_spec): Likewise.
19369         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
19370         (give_switch): Likewise.
19371         (used_arg): Likewise.
19372         (do_spec_1): Set the SWITCH_IGNORE bit.
19373         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
19374         bits.  Set the SWITCH_LIVE bit.
19375
19376 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
19377
19378         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
19379
19380 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
19381
19382         PR tree-optimization/34472
19383         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
19384         parameter to a "bool *" and set *DATA to false if there is
19385         an unsafe access.  Do not delete the structure here.
19386         (check_cond_exprs): Delete it here instead.
19387         (check_cond_exprs, exclude_cold_structs): Do not increase
19388         I when removing a structure.
19389
19390 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
19391
19392         PR target/34856
19393         * config/i386/i386.c (ix86_expand_vector_init): Consider only
19394         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
19395
19396 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
19397
19398         PR middle-end/34934
19399         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
19400         a fixed vector for stack.
19401
19402 2008-01-24  Ben Elliston  <bje@au.ibm.com>
19403
19404         PR c++/25701
19405         * doc/gcc.texi (Software development): Add a direntry for g++.
19406
19407 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
19408
19409         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
19410         stale and straggling -fforce-addr comments above.
19411
19412         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
19413         define.
19414         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
19415         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
19416
19417 2008-01-23  Michael Matz  <matz@suse.de>
19418
19419         PR debug/34895
19420         * dwarf2out.c (force_type_die): Use modified_type_die instead of
19421         gen_type_die.
19422
19423 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
19424
19425         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
19426         malloc result type.
19427
19428 2008-01-23 Anatoly Sokolov <aesok@post.ru>
19429
19430         * config/avr/avr.c (avr_current_arch): New variable.
19431         (avr_arch_types): Add 'avr31' and 'avr51' entries.
19432         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
19433         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
19434         (avr_override_options): Init 'avr_current_arch'.
19435         (base_arch_s): Move from here...
19436         * config/avr/avr.h (base_arch_s): ... here. Add new members
19437         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
19438         'mega' to 'have_jmp_call'.
19439         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
19440         "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
19441         macros.
19442         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
19443         architectures.
19444         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
19445         MULTILIB_MATCHES): Ditto.
19446
19447 2008-01-23  Richard Guenther  <rguenther@suse.de>
19448
19449         PR middle-end/31529
19450         * cgraphunit.c (cgraph_reset_node): Always mark the node
19451         not reachable if it is not queued already.
19452
19453 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
19454
19455         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
19456         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
19457         (cputype_selected): New static variable.
19458         (bfin_handle_option): Set it if -mcpu is used.
19459         (override_option): Select default set of workarounds if no cpu type
19460         selected on the command line.
19461         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
19462
19463         From  Michael Frysinger  <michael.frysinger@analog.com>
19464         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
19465         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
19466
19467         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
19468         for bf547, bf523, bf524, and bf526.
19469         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
19470         bf526.
19471         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
19472         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
19473         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
19474         __ADSPBF547__ and __ADSPBF54x__ for bf547.
19475         * doc/invoke.texi (Blackfin Options): Document that
19476         -mcpu now accept bf547, bf523, bf524, and bf526.
19477
19478 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
19479
19480         PR rtl-optimization/34628
19481         * combine.c (try_combine): Stop and undo after the first combination
19482         if an autoincrement side-effect on the first insn has effectively
19483         been lost.
19484
19485 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
19486
19487         PR target/34529
19488         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
19489         Offset addresses are not valid for Altivec or paired float modes.
19490
19491 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
19492
19493         PR c++/34607
19494         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
19495         if DECL_INITIAL (decl) is error_mark_node.
19496
19497         PR c++/34914
19498         * c-common.c (handle_vector_size_attribute): Only allow
19499         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
19500         the same way as pointer, array etc. types.
19501         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
19502
19503         PR c++/34917
19504         * tree.c (build_type_attribute_qual_variant): Call
19505         build_qualified_type if attributes are equal, but quals are not.
19506
19507 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
19508
19509         PR 32102
19510         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
19511         * flags.h (warn_strict_aliasing): Remove.
19512         (warn_strict_overflow): Remove.
19513         * opts.c (warn_strict_aliasing): Remove.
19514         (warn_strict_overflow): Remove.
19515         * c-opts.c (c_common_handle_option): -Wall only sets
19516         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
19517         (c_common_post_options): Give default values to -Wstrict-aliasing
19518         and -Wstrict-overflow if they are uninitialized.
19519         * common.opt (Wstrict-aliasing): Specify Var and Init.
19520         (Wstrict-overflow): Likewise.
19521
19522 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
19523
19524         PR rtl-optimization/26854
19525         PR rtl-optimization/34400
19526         PR rtl-optimization/34884
19527         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
19528         DF_RD->gen.
19529         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
19530         (df_rd_bb_info.expanded_lr_out): Deleted
19531         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
19532         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
19533         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
19534         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
19535         Removed code to allocate, initialize or free expanded_lr_out.
19536         (df_rd_bb_local_compute_process_def): Restructured to make more
19537         understandable.
19538         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
19539         sets if the sets are being trimmed.
19540
19541 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
19542
19543         PR bootstrap/32287
19544         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
19545         (as_vers): Likewise.
19546         * configure: Regenerated.
19547
19548 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
19549
19550         PR middle-end/33092
19551         * tree-pass.h (pass_build_alias): New pass.
19552         * tree-ssa-alias.c (gate_build_alias): New.
19553         (pass_build_alias): New.
19554         * passes.c (init_optimization_passes): Add pass_build_alias after
19555         pass_create_structure_vars.
19556
19557 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
19558
19559         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
19560         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
19561         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
19562         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
19563         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
19564         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
19565         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
19566         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
19567         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
19568         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
19569         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
19570         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
19571         * config/s390/s390.md (FP_ALL): New mode iterator.
19572         (_d): New mode attribute.
19573         ("*signbit<mode>2>"): Changed mode of first operand.
19574         ("isinf<mode>2"): Changed mode of first operand.
19575         ("*TDC_insn"): Adaptation for DFP modes.
19576
19577 2008-01-22  Ben Elliston  <bje@au.ibm.com>
19578
19579         * tree.c (check_qualified_type): Improve function description.
19580
19581 2008-01-21  Jason Merrill  <jason@redhat.com>
19582
19583         PR c++/34196
19584         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
19585         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
19586         if it is set.
19587
19588 2008-01-21  DJ Delorie  <dj@redhat.com>
19589
19590         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
19591         return zero.
19592
19593 2008-01-21  Richard Guenther  <rguenther@suse.de>
19594
19595         PR middle-end/34856
19596         * tree-cfg.c (verify_expr): Allow all invariant expressions
19597         instead of just constant class ones as reference argument.
19598         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
19599         like any other constant.
19600         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
19601
19602 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
19603
19604         * regmove.c (fixup_match_1): Update call crossed frequencies.
19605
19606 2008-01-21  Richard Guenther  <rguenther@suse.de>
19607
19608         PR c/34885
19609         * tree-inline.c (setup_one_parameter): Deal with mismatched
19610         types using a VIEW_CONVERT_EXPR.
19611
19612 2008-01-21  Alon Dayan  <alond@il.ibm.com>
19613             Olga Golovanevsky  <olga@il.ibm.com>
19614
19615         PR tree-optimization/34701
19616         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
19617         when the structure size is not a power of 2.
19618
19619 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
19620
19621         * doc/install.texi: Add doc for --enable-checking=df.
19622
19623 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
19624
19625         PR rtl-optimization/34808
19626         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
19627
19628 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
19629
19630         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
19631         input.
19632
19633 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
19634
19635         PR rtl-optimization/26854
19636         PR rtl-optimization/34400
19637         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
19638         DF_RD->gen.
19639         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
19640         (df_rd_bb_info.expanded_lr_out): New.
19641         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
19642         * loop_iv.c (iv_analysis_loop_init): Ditto.
19643         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
19644         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
19645         Added code to allocate, initialize or free expanded_lr_out.
19646         (df_rd_bb_local_compute_process_def): Restructured to make
19647         more understandable.
19648         (df_rd_confluence_n): Add code to do nothing with fake edges and
19649         code to no apply invalidate_by_call sets if the sets are being trimmed.
19650         (df_lr_local_finalize): Renamed to df_lr_finalize.
19651         (df_live_local_finalize): Renamed to df_live_finalize.
19652
19653 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
19654
19655         PR target/34831
19656         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
19657         deciding whether to use reciprocal instructions.
19658
19659 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
19660
19661         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
19662         dwarf2out_note_section_used if cold_text_section is NULL.
19663
19664 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
19665
19666         PR gcov-profile/34610
19667         * tree-cfg.c (make_edges): Mark both outgoing edges from
19668         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
19669         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
19670         from OMP_FOR and OMP_CONTINUE outgoing edges.
19671
19672         * tree-profile.c (tree_profiling): Return early if
19673         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
19674         at the end.
19675         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
19676         from cfun to child_cfun.
19677         * function.h (struct function): Add after_tree_profile bit.
19678
19679 2008-01-19 Anatoly Sokolov <aesok@post.ru>
19680
19681         * config/avr/avr.S (_exit): Disable interrupt.
19682
19683 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
19684             Steven Bosscher  <stevenb.gcc@gmail.com>
19685
19686         PR rtl-optimization/26854
19687         PR rtl-optimization/34400
19688         * df-problems.c (df_live_scratch): New scratch bitmap.
19689         (df_live_alloc): Allocate df_live_scratch when doing df_live.
19690         (df_live_reset): Clear the proper bitmaps.
19691         (df_live_bb_local_compute): Only process the artificial defs once
19692         since the order is not important.
19693         (df_live_init): Init the df_live sets only with the variables
19694         found live by df_lr.
19695         (df_live_transfer_function): Use the df_lr sets to prune the
19696         df_live sets as they are being computed.
19697         (df_live_free): Free df_live_scratch.
19698
19699 2008-01-18  Ian Lance Taylor  <iant@google.com>
19700
19701         * common.opt: Add fmerge-debug-strings.
19702         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
19703         flag_merge_debug_strings rather than flag_merge_constants.
19704         * doc/invoke.texi (Option Summary): Mention
19705         -fmerge-debug-strings.
19706         (Debugging Options): Document -fmerge-debug-strings.
19707
19708 2008-01-18  Ian Lance Taylor  <iant@google.com>
19709
19710         PR c++/33407
19711         * tree.h (DECL_IS_OPERATOR_NEW): Define.
19712         (struct tree_function_decl): Add new field operator_new_flag.
19713         * tree-inline.c (expand_call_inline): When inlining a call to
19714         operator new, force the return value to go into a variable, and
19715         set DECL_NO_TBAA_P on that variable.
19716         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
19717
19718 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
19719
19720         PR debug/34484
19721         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
19722         DWARF2_DEBUGGING_INFO.
19723         (dwarf2out_note_section_used): Ditto.  Add prototype.
19724         (have_multiple_function_sections, text_section_used,
19725         cold_text_section_used, *cold_text_sections): Move declarations
19726         before their uses.
19727
19728 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
19729
19730         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
19731         field and add signal_ra.
19732         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
19733         assignments to frame state pc.  Move end of stack check after
19734         MD_FALLBACK_FRAME_STATE_FOR.
19735         (uw_update_context_1): Use frame state signal_regs if set, instead
19736         of checking signal_frame flag.
19737         (uw_update_context): Use frame state signal_ra if set.
19738         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
19739         * config/xtensa/linux-unwind.h: New file.
19740
19741 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
19742
19743         * modulo-sched.c (get_sched_window): Fix comment typo.
19744
19745 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
19746
19747         PR tree-optimization/34648
19748         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
19749
19750 2008-01-17  Anatoly Sokolov <aesok@post.ru>
19751
19752         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
19753         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
19754
19755 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
19756
19757         PR rtl-optimization/34400
19758         * df-core.c (df_worklist_dataflow_overeager,
19759         df_worklist_dataflow_doublequeue): New functions.
19760         (df_worklist_dataflow): Two different worklist solvers.
19761         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
19762         New param.
19763
19764 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
19765
19766         PR testsuite/34821
19767         * doc/invoke.texi: Document the dependence on pthread for fopenmp
19768         and ftree-parallelize-loops.
19769
19770 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
19771
19772         PR rtl-optimization/34826
19773         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
19774
19775 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
19776
19777         * global.c (find_reg): Mark the eh regs as used if necessary.
19778         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
19779         * ra.h (struct allocno): no_eh_reg field added.  Changed
19780         no_stack_reg type to bitfield.
19781
19782 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
19783
19784         * tree.c (substitute_in_expr): Add missing 'break'.
19785
19786 2008-01-17  Richard Guenther  <rguenther@suse.de>
19787
19788         PR tree-optimization/34825
19789         * tree-ssa-math-opts.c (is_division_by): Do not recognize
19790         x / x as division to handle.
19791
19792 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19793
19794         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
19795         "-pthread" is specified.
19796         * pa-hpux11.h (LIB_SPEC): Likewise.
19797
19798 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
19799             Peter Bergner  <bergner@vnet.ibm.com>
19800
19801         PR rtl-optimization/33796
19802         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
19803
19804 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19805
19806         PR libgfortran/34699
19807         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
19808         static links.
19809         * pa-hpux10.h (LINK_SPEC): Likewise.
19810         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
19811
19812 2008-01-16  Richard Guenther  <rguenther@suse.de>
19813
19814         PR middle-end/32628
19815         * fold-const.c (fold_convert_const_int_from_int): Do not
19816         set overflow if that occured only because of a sign extension
19817         change when converting from/to a sizetype with the same
19818         precision and signedness.
19819
19820 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
19821
19822         PR debug/34249
19823         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
19824         location address to the correct place.  Update copyright year.
19825
19826 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
19827
19828         * lambda-code.c (lambda_transform_legal_p): Handle the case of
19829         no dependences in the dependence_relations vector.
19830
19831 2008-01-16  Jan Hubicka  <jh@suse.cz>
19832
19833         PR rtl-optimization/31396
19834         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
19835         * cfg.c (dump_reg_info): Print it.
19836         * regs.h (struct reg_info_t): add freq_calls_crossed.
19837         (REG_FREQ_CALLS_CROSSED): New macro.
19838         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
19839         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
19840         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
19841         regmove_optimize): Update call crossed frequencies.
19842         * local-alloc.c (struct qty): Add freq_calls_crossed.
19843         (alloc_qty): Copute freq_calls_crossed.
19844         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
19845         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
19846         * ra.h (struct allocno): Add freq_calls_crossed.
19847
19848 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
19849
19850         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
19851         libgomp when compiling with ftree-parallelize-loops.
19852         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
19853
19854 2008-01-16  Richard Guenther  <rguenther@suse.de>
19855
19856         PR tree-optimization/34769
19857         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
19858         * tree.c (int_cst_value): Instead make this function more
19859         permissive in what it accepts as valid input.  Document this
19860         function always sign-extends the value.
19861
19862 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
19863             Richard Guenther  <rguenther@suse.de>
19864
19865         PR c/34668
19866         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
19867         (gimple_fold_indirect_ref_rhs): ... this.
19868         (gimple_fold_indirect_ref): New function with foldings
19869         that preserve lvalueness.
19870         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
19871         * tree-flow.h (gimple_fold_indirect_ref): Declare.
19872         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
19873         to fold an INDIRECT_REF, fall back to the old use of
19874         fold_indirect_ref_1.
19875
19876 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
19877
19878         * tree-data-ref.c (subscript_dependence_tester_1): Call
19879         free_conflict_function.
19880         (compute_self_dependence): Same.
19881
19882 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
19883
19884         PR debug/34249
19885         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
19886         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
19887         function global.
19888         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
19889         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
19890         for DWARF2_UNWIND_INFO targets.
19891
19892 2008-01-16  Richard Guenther  <rguenther@suse.de>
19893
19894         PR c/34768
19895         * c-typeck.c (common_pointer_type): Do not merge inconsistent
19896         type qualifiers for function types.
19897
19898 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
19899
19900         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
19901         loop_iterator li from previous commit.
19902
19903 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
19904
19905         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
19906
19907 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
19908
19909         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
19910         (parallelize_loops): Don't parallelize irreducible components.
19911
19912 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
19913
19914         PR c++/24924
19915         * c-opts (c_common_post_options): Do not enable CPP
19916         flag_pedantic_errors by default.
19917
19918 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
19919
19920         PR rtl-optimization/31944
19921         * cse.c (remove_pseudo_from_table): New function.
19922         (merge_equiv_classes): Use above function to remove pseudo-registers.
19923         (invalidate): Likewise.
19924
19925 2008-01-13  Richard Guenther  <rguenther@suse.de>
19926
19927         PR middle-end/34601
19928         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
19929         instead of TYPE_MODE to deal with calls from expand_one_error_var.
19930
19931 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
19932
19933         * gcse.c (cprop_jump): Call validate_unshare_change instead of
19934         validate_change to unshare the source of the PC set.
19935
19936 2008-01-12  Jan Hubicka  <jh@suse.cz>
19937
19938         PR middle-end/32135
19939         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
19940         references above array bounds.  This might trigger bounds checks for
19941         pointers to arrays.
19942
19943 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
19944
19945         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
19946         new_replaceable_dependencies.
19947
19948 2008-01-12  Doug Kwan  <dougkwan@google.com>
19949
19950         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
19951         instead of OPT_Wreturn_type in warning due to ignored return type
19952         qualifiers.
19953         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
19954         options included in -Wextra.
19955         * c.opt: New option -Wignored_qualifiers.
19956         * doc/invoke.texi (Warning Options, -Wextra): Add new option
19957         -Wignore_qualifiers.
19958         (-Wignored-qualifiers): Document.
19959         (-Wreturn-type): Remove description of functionality now handled
19960         by -Wignored-qualifiers.
19961
19962 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
19963
19964         PR ada/33788
19965         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
19966         NOP_EXPR if it is between integral types with the same precision.
19967
19968 2008-01-12  Jan Hubicka  <jh@suse.cz>
19969
19970         PR other/28023
19971         * invoke.texi (max-inline-recursive-depth): Fix default value.
19972
19973 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
19974
19975         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
19976         correct type.
19977
19978 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
19979
19980         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
19981
19982 2008-01-11  James E. Wilson  <wilson@specifix.com>
19983
19984         PR target/26015
19985         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
19986
19987 2008-01-11  Anatoly Sokolov <aesok@post.ru>
19988
19989         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
19990         save/restore frame pointer register and don't use 'call-prologues'
19991         optimization in function with "OS_task" attribute.
19992
19993 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
19994
19995         PR middle-end/31309
19996         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
19997         when copying to memory.
19998
19999 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
20000
20001         PR rtl-optimization/30905
20002         * cfgcleanup.c: Include dce.h
20003         (crossjumps_occured): New global variable.
20004         (try_crossjump_bb): Exit loop after finding a fallthru edge.
20005         If something changed, set crossjumps_occured to true.
20006         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
20007         Don't add/remove fake edges to exit here...
20008         (cleanup_cfg): ...but do it here, when crossjumping.
20009         Run a fast DCE when successful crossjumps occured in the latest
20010         iteration of try_optimize_cfg.
20011
20012 2008-01-11  Richard Guenther  <rguenther@suse.de>
20013
20014         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
20015         (struct vn_unary_op_s): Likewise.
20016         (vn_reference_insert): Free old reference on hash collision.
20017
20018 2008-01-10  Raksit Ashok  <raksit@google.com>
20019
20020         PR rtl-optimization/27971
20021         * combine.c (find_split_point): Split PLUS expressions which are
20022         inside a MEM rtx, and whose first operand is complex.
20023
20024 2008-01-10  DJ Delorie  <dj@redhat.com>
20025
20026         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
20027         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
20028         (m32c_hard_regno_ok): Call the underlying function.
20029
20030 2008-01-10  Richard Guenther  <rguenther@suse.de>
20031
20032         PR middle-end/34683
20033         * tree-cfg.c (tree_merge_blocks): Do not go through the
20034         full-blown folding and stmt updating path if we just deal
20035         with virtual operands.
20036         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
20037         test for abnormal SSA_NAMEs.
20038
20039 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
20040
20041         PR middle-end/34641
20042         * reload.c (push_reload): Add assertions.  All constants from
20043         reg_equiv_constant should have been used for replacing the respective
20044         pseudo earlier.
20045         (find_reloads_address): Invoke find_reloads_address_part for
20046         constant taken from the reg_equiv_constant array.
20047
20048 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
20049
20050         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
20051         field (valnum) the first in the struct.  Replace bools with
20052         unit bit fields.
20053
20054 2008-01-10  Richard Guenther  <rguenther@suse.de>
20055
20056         PR tree-optimization/34651
20057         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
20058         types and ordering for masking and converting.
20059
20060 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
20061
20062         PR tree-optimization/34017
20063         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
20064         also for PHI_NODE expressions.
20065
20066 2008-01-09  Jan Hubicka  <jh@suse.cz>
20067
20068         PR tree-optimization/34708
20069         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
20070         based on number of case labels.
20071         (init_inline_once): Remove switch_cost.
20072         * tree-inline.h (eni_weights_d): Remove switch_cost.
20073
20074 2008-01-09  Richard Guenther  <rguenther@suse.de>
20075         Andrew Pinski  <andrew_pinski@playstation.sony.com>
20076
20077         PR middle-end/30132
20078         * gimplify.c (gimplify_cond_expr): Do not create an addressable
20079         temporary if an rvalue is ok or an lvalue is not required.
20080
20081 2008-01-09  Richard Guenther  <rguenther@suse.de>
20082
20083         PR middle-end/34458
20084         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
20085         adjust return type.
20086
20087 2008-01-09  Richard Guenther  <rguenther@suse.de>
20088
20089         PR middle-end/34679
20090         * tree.c (host_integerp): Check for sizetype only if the
20091         type is an integer type.
20092
20093 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
20094
20095         PR debug/26364
20096         * opts.c (decode_options): Disable inlining of functions called
20097         once if not in unit-at-a-time mode.
20098
20099 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
20100
20101         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
20102
20103 2008-01-08  Richard Guenther  <rguenther@suse.de>
20104
20105         PR middle-end/31863
20106         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
20107         out early if the result will be unused.
20108
20109 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
20110
20111         PR target/34709
20112         Revert:
20113
20114         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
20115         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
20116         for TARGET_RECIP.
20117
20118 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
20119
20120         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
20121         for vectorization tuned.
20122
20123 2008-01-08  Richard Guenther  <rguenther@suse.de>
20124
20125         PR tree-optimization/34683
20126         * tree-ssa-operands.c (operand_build_cmp): Export.
20127         * tree-ssa-operands.h (operand_build_cmp): Declare.
20128         * tree-vn.c (vuses_compare): Remove.
20129         (sort_vuses): Use operand_build_cmp.
20130         (sort_vuses_heap): Likewise.
20131         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
20132         to re-use old VEC if available.  Do not sort already sorted VUSEs.
20133         (vdefs_to_vec): Do not sort already sorted VDEFs.
20134
20135 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
20136
20137         PR middle-end/34694
20138         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
20139
20140 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
20141
20142         PR target/34702
20143         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
20144         limitations of reciprocal sequences on x86 targets.
20145
20146 2008-01-08  Richard Guenther  <rguenther@suse.de>
20147
20148         PR tree-optimization/34683
20149         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
20150
20151 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
20152
20153         PR target/34622
20154         * config/darwin.c (darwin_mergeable_string_section): Don't use
20155         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
20156
20157 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
20158
20159         PR target/34682
20160         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
20161         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
20162         predicates of op0 and op1 to register_operand.
20163         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
20164         expander using X87MODEF mode iterator.  Change predicates of
20165         op0 and op1 to register_operand.
20166         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
20167         corresponding patterns and macroize using MODEF macro.  Change
20168         predicates of op0 and op1 to register_operand and remove
20169         "m" constraint. Disparage "r" alternative with "!".
20170         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
20171         macroize using X87MODEF macro.  Change predicates of op0 and op1
20172         to register_operand and remove "m" constraint.  Disparage "r"
20173         alternative with "!".
20174         (absneg splitter with memory operands): Remove.
20175         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
20176         patterns and macroize using X87MODEF mode iterator.
20177         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
20178         Change predicate of op1 to register_operand.
20179         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
20180         for memory operands.
20181
20182 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
20183
20184         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
20185
20186 2008-01-07  Richard Guenther  <rguenther@suse.de>
20187
20188         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
20189         fields.
20190
20191 2008-01-07  Richard Guenther  <rguenther@suse.de>
20192
20193         PR tree-optimization/34683
20194         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
20195         VOPs of the needed size to save memory.  Use VEC_quick_push
20196         to save compile-time.
20197         (vdefs_to_vec): Likewise.
20198
20199 2008-01-07  Sa Liu  <saliu@de.ibm.com>
20200
20201         * config/spu/spu.md (divdf3): Genetate inline code for double
20202         division.  The implementation doesn't handle INF or NAN, therefore it
20203         only applies when -ffinite-math-only is given.
20204
20205 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
20206
20207         PR libstdc++/34680
20208         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
20209         * doc/cpp.texi ([Common Predefined Macros]): Document.
20210
20211 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
20212
20213         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
20214         order to use commutative addition instead of subtraction.
20215
20216 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
20217             Mircea Namolaru  <namolaru@il.ibm.com>
20218             Vladimir Yanovsky  <yanov@il.ibm.com>
20219             Revital Eres  <eres@il.ibm.com>
20220
20221         PR tree-optimization/34263
20222         * tree-outof-ssa.c (process_single_block_loop_latch,
20223         contains_tree_r): New functions.
20224         (analyze_edges_for_bb): Call process_single_block_loop_latch
20225         function to empty single-basic-block latch block if possible.
20226
20227 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
20228
20229         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
20230         for TARGET_RECIP.
20231         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
20232
20233 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
20234
20235         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
20236
20237 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
20238
20239         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
20240
20241 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
20242
20243         PR tree-optimization/34618
20244         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
20245         flag from T.
20246
20247 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
20248
20249         PR target/34673
20250         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
20251         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
20252         Update copyright year.
20253
20254         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
20255         Update copyright year.
20256         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
20257         using NR fixup.
20258
20259 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
20260
20261         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
20262         edge does not point to current bb before changing need_assert.
20263
20264 2008-01-04  Richard Guenther  <rguenther@suse.de>
20265
20266         PR middle-end/34029
20267         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
20268         for verifying purposes if they are is_gimple_min_invariant.
20269
20270 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
20271
20272         PR tree-optimization/34448
20273         PR tree-optimization/34465
20274         * gimplify.c (gimplify_init_constructor): Add new parameter
20275         notify_temp_creation.  Use it.
20276         (gimplify_modify_expr_rhs): Take volatiles into account when
20277         optimizing constructors.
20278         Do not optimize constructors if gimplify_init_constructor will dump to
20279         memory.
20280         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
20281         * gcc.c-torture/compile/pr34448.c: New.
20282
20283 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
20284
20285         PR gcov-profile/34609
20286         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
20287         return_slot if result is TREE_ADDRESSABLE.
20288
20289 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
20290
20291         * config/mips/mips.md (sqrt_condition): Tweak comment.
20292         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
20293
20294 2008-01-03  Tom Tromey  <tromey@redhat.com>
20295
20296         PR c/34457
20297         * c-common.c (c_type_hash): Handle VLAs.
20298
20299 2008-01-03  Jan Hubicka  <jh@suse.cz>
20300
20301         PR tree-optimization/31081
20302         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
20303         0 when inlining and not inlining to first basic block.
20304         (remap_decl): When var is initialized to 0, don't set default_def.
20305         (expand_call_inline): Set entry_bb.
20306         * tree-inline.h (copy_body_data): Add entry_bb.
20307
20308 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
20309
20310         PR c++/34619
20311         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
20312         before returning.
20313
20314         PR tree-optimization/29484
20315         * tree-inline.c (inline_forbidden_p_2): New function.
20316         (inline_forbidden_p): Disallow inlining if some static var
20317         has an address of a local LABEL_DECL in its initializer.
20318         * doc/extend.texi (Labels as Values): Document &&foo behaviour
20319         vs. inlining.
20320
20321 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
20322
20323         PR tree-optimization/34635
20324         * tree-data-ref.c (add_other_self_distances): Make sure that the
20325         evolution step is constant.
20326
20327 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
20328
20329         PR middle-end/34608
20330         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
20331
20332 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
20333
20334         * tree-sra.c (scalarize_init): Insert the generate_element_init
20335         statements after the generate_element_zero statements.
20336
20337 2008-01-02  Richard Guenther  <rguenther@suse.de>
20338
20339         PR middle-end/34093
20340         PR middle-end/31976
20341         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
20342         for very large number of operands instead of ICEing.
20343
20344 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
20345
20346         PR target/34013
20347         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
20348         while stack probing.
20349
20350 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
20351
20352         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
20353         in C++0x mode.
20354
20355 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
20356
20357         PR libmudflap/26442
20358         * tree-mudflap.c (mx_register_decls): Guard warning by
20359         !DECL_ARTIFICIAL check.
20360
20361 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
20362
20363         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
20364         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
20365         sse5_perm<mode>): Fix constraints.