OSDN Git Service

* config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Treat LABEL_REFs in
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-08-29  Nick Clifton  <nickc@redhat.com>
2
3         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Treat LABEL_REFs in
4         the same way as SYMBOL_REFs.
5
6 2008-08-28  Bob Wilson  <bob.wilson@acm.org>
7
8         * config/xtensa/xtensa.md (<u>mulsidi3): Use a temporary register.
9
10 2008-08-28  Adam Nemet  <anemet@caviumnetworks.com>
11
12         * config/mips/mips.h (ISA_HAS_BBIT): New macro.
13         * config/mips/mips.md (branch_likely): Remove const.  Fix
14         comment formatting.
15         (define_delay for type "branch"): Change to only apply for branch
16         with likely variant.
17         (define_delay for type "branch" and "branch_likely" no).  New delay
18         definition.
19         (equality_op): New code iterator.
20         (bbv, bbinv): New code attributes.
21         (*branch_bit<bbv><mode>, *branch_bit<bbv><mode>_inverted): New
22         patterns.
23
24 2008-08-28  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
25             Andrew Pinski  <pinskia@gcc.gnu.org>
26
27         PR 18050
28         * c-common.c (verify_tree): Fix handling of ADDR_EXPR.
29
30 2008-08-28  Paolo Carlini  <paolo.carlini@oracle.com>
31
32         * gtrh-posix.h: Fix uses of _POSIX_TIMEOUTS per the normal Posix
33         rule that a symbolic constant must be defined and >= 0 for the
34         corresponding facility to be present at compile-time.
35         * gthr-posix.c: Likewise.
36
37 2008-08-28  Adam Nemet  <anemet@caviumnetworks.com>
38
39         * config/mips/mips.h (ISA_HAS_DMUL3): New macro.
40         * config/mips/mips.md (D): New mode attribute.
41         (mulsi3, muldi3): Merge it into ...
42         (mul<mode>3): ... new template.  Use _mul3 ending for 3-op
43         patterns.
44         (muldi3_mul3): New pattern.
45         (mulsi3_mult3): Rename to mulsi3_mul3.
46
47 2008-08-28  Jan Hubicka  <jh@suse.cz>
48
49         * expmed.c (store_bit_field_1): Be prepared for movstrict expander
50         to fail.
51         * predict.c (always_optimize_for_size_p): Rename to ...
52         (optimize_function_for_size): ... this one; make extern.
53         (optimize_function_for_speed_p): New.
54         (optimize_bb_for_size_p, optimize_bb_for_size_p,
55         optimize_edge_for_size_p,optimize_edge_for_size_p,
56         optimize_insn_for_size_p, optimize_insn_for_size_p): Update.
57         * basic-block.h (optimize_function_for_size_p,
58         optimize_function_for_speed_p): Declare.
59         * i386.md (optimize_size checks): Replace them by appropriate
60         predicate.
61         (standard_80387_constant_p, ix86_compute_frame_layout,
62         ix86_expand_epilogue, ix86_decompose_address,
63         print_operand, emit_i387_cw_initialization,
64         inline_memory_move_cost, ix86_pad_returns,
65         ix86_reorg): Replace optimize_size checks.
66
67 2008-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
68
69         * rtl.h (simplify_subreg_regno): Declare.
70         * rtlanal.c (simplify_subreg_regno): New function, split out from...
71         * simplify-rtx.c (simplify_subreg): ...here.
72         * reload.c (find_reloads): Use simplify_subreg_regno instead of
73         subreg_offset_representable_p.
74
75 2008-08-28  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
76
77         PR c/30949
78         * c-typeck.c (convert_for_assignment): Give a note describing what
79         was passed and what was expected.
80
81 2008-08-28  Joey Ye  <joey.ye@intel.com>
82
83         * doc/extend.texi: Document AVX built-in functions.
84         * doc/invoke.texi: Document -mavx.
85
86 2008-08-28  H.J. Lu  <hongjiu.lu@intel.com>
87             Joey Ye  <joey.ye@intel.com>
88             Xuepeng Guo  <xuepeng.guo@intel.com>
89
90         * config.gcc (extra_headers): Add gmmintrin.h for x86 and x86-64.
91
92         * config/i386/cpuid.h (bit_FMA): New.
93         (bit_XSAVE): Likewise.
94         (bit_OSXSAVE): Likewise.
95         (bit_AVX): Likewise.
96
97         * config/i386/gas.h (ASM_OUTPUT_OPCODE): Undefine before
98         define.  Use ASM_OUTPUT_AVX_PREFIX.
99
100         * config/i386/gmmintrin.h: New.
101
102         * config/i386/i386.c (x86_64_reg_class): Add X86_64_AVX_CLASS.
103         (OPTION_MASK_ISA_AVX_SET): New.
104         (OPTION_MASK_ISA_FMA_SET): Likewise.
105         (OPTION_MASK_ISA_AVX_UNSET): Likewise.
106         (OPTION_MASK_ISA_FMA_SET): Likewise.
107         (OPTION_MASK_ISA_SSE4_2_UNSET): Updated.
108         (ix86_handle_option): Handle OPT_mavx and OPT_mfma.
109         (pta_flags): Add PTA_AVX and PTA_FMA.
110         (override_options): Handle PTA_AVX and PTA_FMA.
111         (init_cumulative_args): Handle warn_avx.
112         (classify_argument): Return 0 for COImode and OImode.  Return
113         1 and X86_64_AVX_CLASS for 256bit vector types.
114         (examine_argument): Handle X86_64_AVX_CLASS.
115         (construct_container): Likewise.
116         (function_arg_advance_32): Pass OImode and 256bit vector types
117         in AVX register.
118         (function_arg_advance_64): Take a new argument to indicate if a
119         parameter is named.  Handle 256bit vector types.  Return
120         immediately for unnamed 256bit vector mode parameters.
121         (function_arg_advance): Updated.
122         (function_arg_32): Add comments for TImode.  Handle OImode
123         and 256bit vector types.
124         (function_arg_64): Take a new argument to indicate if a
125         parameter is named.  Handle 256bit vector types.  Return NULL
126         for unnamed 256bit vector mode parameters.
127         (function_arg): Updated.
128         (setup_incoming_varargs_64): Support
129         AVX encoding for *sse_prologue_save_insn.
130         (ix86_gimplify_va_arg): Handle 256bit vector mode parameters.
131         (standard_sse_constant_p): Return -2 for all 1s if SSE2 isn't
132         enabled.  For all 1s in 256bit vector modes, return 3 if AVX is
133         enabled, otherwise return -3.
134         (standard_sse_constant_opcode): Handle AVX and 256bit vector
135         modes.
136         (print_reg): Support AVX registers.  Handle 'x' and 't'.
137         Handle 'd' to duplicate the operand.
138         (print_operand): Likewise.  Also support AVX vector compare
139         instructions.
140         (output_387_binary_op): Support AVX.
141         (output_fp_compare): Likewise.
142         (ix86_expand_vector_move_misalign): Likewise.
143         (ix86_attr_length_vex_default): New.
144         (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
145         IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
146         IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
147         IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
148         IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_BLENDPD256,
149         IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
150         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DIVPD256,
151         IX86_BUILTIN_DIVPS256, IX86_BUILTIN_DPPS256,
152         IX86_BUILTIN_HADDPD256, IX86_BUILTIN_HADDPS256,
153         IX86_BUILTIN_HSUBPD256, IX86_BUILTIN_HSUBPS256,
154         IX86_BUILTIN_MAXPD256, IX86_BUILTIN_MAXPS256,
155         IX86_BUILTIN_MINPD256, IX86_BUILTIN_MINPS256,
156         IX86_BUILTIN_MULPD256, IX86_BUILTIN_MULPS256,
157         IX86_BUILTIN_ORPD256, IX86_BUILTIN_ORPS256,
158         IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
159         IX86_BUILTIN_SUBPD256, IX86_BUILTIN_SUBPS256,
160         IX86_BUILTIN_XORPD256, IX86_BUILTIN_XORPS256,
161         IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
162         IX86_BUILTIN_CMPPS, IX86_BUILTIN_CMPPD256,
163         IX86_BUILTIN_CMPPS256, IX86_BUILTIN_CVTDQ2PD256,
164         IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
165         IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
166         IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
167         IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_EXTRACTF128PD256,
168         IX86_BUILTIN_EXTRACTF128PS256, IX86_BUILTIN_EXTRACTF128SI256,
169         IX86_BUILTIN_VZEROALL, IX86_BUILTIN_VZEROUPPER,
170         IX86_BUILTIN_VZEROUPPER_REX64, IX86_BUILTIN_VPERMILVARPD,
171         IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
172         IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_VPERMILPD,
173         IX86_BUILTIN_VPERMILPS, IX86_BUILTIN_VPERMILPD256,
174         IX86_BUILTIN_VPERMILPS256, IX86_BUILTIN_VPERMIL2PD,
175         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256,
176         IX86_BUILTIN_VPERMIL2PS256, IX86_BUILTIN_VPERM2F128PD256,
177         IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
178         IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
179         IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
180         IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_VINSERTF128PD256,
181         IX86_BUILTIN_VINSERTF128PS256, IX86_BUILTIN_VINSERTF128SI256,
182         IX86_BUILTIN_LOADUPD256, IX86_BUILTIN_LOADUPS256,
183         IX86_BUILTIN_STOREUPD256, IX86_BUILTIN_STOREUPS256,
184         IX86_BUILTIN_LDDQU256, IX86_BUILTIN_LOADDQU256,
185         IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_MASKLOADPD,
186         IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKSTOREPD,
187         IX86_BUILTIN_MASKSTOREPS, IX86_BUILTIN_MASKLOADPD256,
188         IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKSTOREPD256,
189         IX86_BUILTIN_MASKSTOREPS256, IX86_BUILTIN_MOVSHDUP256,
190         IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
191         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
192         IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
193         IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
194         IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
195         IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
196         IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
197         IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
198         IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
199         IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
200         IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
201         IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
202         IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
203         IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
204         IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
205         IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
206         IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
207         IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256
208         and IX86_BUILTIN_MOVMSKPS256,
209         (ix86_special_builtin_type): Add V32QI_FTYPE_PCCHAR,
210         V8SF_FTYPE_PCV4SF, V8SF_FTYPE_PCFLOAT, V4DF_FTYPE_PCV2DF,
211         V4DF_FTYPE_PCDOUBLE, V8SF_FTYPE_PCV8SF_V8SF,
212         V4DF_FTYPE_PCV4DF_V4DF, V4SF_FTYPE_PCV4SF_V4SF,
213         V2DF_FTYPE_PCV2DF_V2DF, VOID_FTYPE_PCHAR_V32QI,
214         VOID_FTYPE_PFLOAT_V8SF, VOID_FTYPE_PDOUBLE_V4DF,
215         VOID_FTYPE_PV8SF_V8SF_V8SF, VOID_FTYPE_PV4DF_V4DF_V4DF,
216         VOID_FTYPE_PV4SF_V4SF_V4SF and VOID_FTYPE_PV2DF_V2DF_V2DF,
217         (ix86_builtin_type): Add INT_FTYPE_V8SF_V8SF_PTEST,
218         INT_FTYPE_V4DI_V4DI_PTEST, INT_FTYPE_V4DF_V4DF_PTEST,
219         INT_FTYPE_V4SF_V4SF_PTEST, INT_FTYPE_V2DF_V2DF_PTEST,
220         INT_FTYPE_V8SF, INT_FTYPE_V4DF, V8SI_FTYPE_V8SF, V8SI_FTYPE_V4SI,
221         V8SF_FTYPE_V8SF, V8SF_FTYPE_V8SI, V8SF_FTYPE_V4SF,
222         V4SI_FTYPE_V8SI, V4SI_FTYPE_V4DF, V4DF_FTYPE_V4DF,
223         V4DF_FTYPE_V4SI, V4DF_FTYPE_V4SF, V4DF_FTYPE_V2DF,
224         V4SF_FTYPE_V4DF, V4SF_FTYPE_V8SF, V2DF_FTYPE_V4DF,
225         V8SF_FTYPE_V8SF_V8SF, V8SF_FTYPE_V8SF_V8SI,
226         V4DF_FTYPE_V4DF_V4DF, V4DF_FTYPE_V4DF_V4DI,
227         V4SF_FTYPE_V4SF_V4SI, V2DF_FTYPE_V2DF_V2DI,
228         V8SF_FTYPE_V8SF_INT, V4SI_FTYPE_V8SI_INT, V4SF_FTYPE_V8SF_INT,
229         V2DF_FTYPE_V4DF_INT, V4DF_FTYPE_V4DF_INT,
230         V8SF_FTYPE_V8SF_V8SF_V8SF, V4DF_FTYPE_V4DF_V4DF_V4DF,
231         V8SI_FTYPE_V8SI_V8SI_INT, V8SF_FTYPE_V8SF_V8SF_INT,
232         V4DF_FTYPE_V4DF_V4DF_INT, V4DF_FTYPE_V4DF_V2DF_INT,
233         V8SF_FTYPE_V8SF_V8SF_V8SI_INT, V4DF_FTYPE_V4DF_V4DF_V4DI_INT,
234         V4SF_FTYPE_V4SF_V4SF_V4SI_INT and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
235         (bdesc_special_args): Add IX86_BUILTIN_VZEROALL,
236         IX86_BUILTIN_VZEROUPPER. IX86_BUILTIN_VZEROUPPER_REX64,
237         IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
238         IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
239         IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_LOADUPD256,
240         IX86_BUILTIN_LOADUPS256, IX86_BUILTIN_STOREUPD256,
241         IX86_BUILTIN_STOREUPS256, IX86_BUILTIN_LOADDQU256,
242         IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_LDDQU256,
243         IX86_BUILTIN_MASKLOADPD, IX86_BUILTIN_MASKLOADPS,
244         IX86_BUILTIN_MASKLOADPD256, IX86_BUILTIN_MASKLOADPS256,
245         IX86_BUILTIN_MASKSTOREPD, IX86_BUILTIN_MASKSTOREPS,
246         IX86_BUILTIN_MASKSTOREPD256 and IX86_BUILTIN_MASKSTOREPS256.
247         (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
248         IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
249         IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
250         IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
251         IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_DIVPD256,
252         IX86_BUILTIN_DIVPS256, IX86_BUILTIN_HADDPD256,
253         IX86_BUILTIN_HSUBPS256, IX86_BUILTIN_HSUBPD256,
254         IX86_BUILTIN_HADDPS256, IX86_BUILTIN_MAXPD256,
255         IX86_BUILTIN_MAXPS256, IX86_BUILTIN_MINPD256,
256         IX86_BUILTIN_MINPS256, IX86_BUILTIN_MULPD256,
257         IX86_BUILTIN_MULPS256, IX86_BUILTIN_ORPD256,
258         IX86_BUILTIN_ORPS256, IX86_BUILTIN_SUBPD256,
259         IX86_BUILTIN_SUBPS256, IX86_BUILTIN_XORPD256,
260         IX86_BUILTIN_XORPS256, IX86_BUILTIN_VPERMILVARPD,
261         IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
262         IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_BLENDPD256,
263         IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
264         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DPPS256,
265         IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
266         IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
267         IX86_BUILTIN_CMPPS,
268         IX86_BUILTIN_CMPPD256,IX86_BUILTIN_CMPPS256,
269         IX86_BUILTIN_EXTRACTF128PD256, IX86_BUILTIN_EXTRACTF128PS256,
270         IX86_BUILTIN_EXTRACTF128SI256, IX86_BUILTIN_CVTDQ2PD256,
271         IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
272         IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
273         IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
274         IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_VPERM2F128PD256,
275         IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
276         IX86_BUILTIN_VPERMILPD, IX86_BUILTIN_VPERMILPS,
277         IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
278         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMILPS,
279         IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
280         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
281         IX86_BUILTIN_VPERMIL2PD256, IX86_BUILTIN_VPERMIL2PS256,
282         IX86_BUILTIN_VINSERTF128PD256, IX86_BUILTIN_VINSERTF128PS256,
283         IX86_BUILTIN_VINSERTF128SI256, IX86_BUILTIN_MOVSHDUP256,
284         IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
285         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
286         IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
287         IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
288         IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
289         IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
290         IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
291         IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
292         IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
293         IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
294         IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
295         IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
296         IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
297         IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
298         IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
299         IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
300         IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
301         IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256 and
302         IX86_BUILTIN_MOVMSKPS256.
303         (ix86_init_mmx_sse_builtins): Support AVX builtins.
304         (ix86_expand_args_builtin): Likewise.
305         (ix86_expand_special_args_builtin): Likewise.
306         (ix86_hard_regno_mode_ok): Handle AVX modes.
307         (ix86_expand_vector_init_duplicate): Likewise.
308         (ix86_expand_vector_init_one_nonzero): Likewise.
309         (ix86_expand_vector_init_one_var): Likewise.
310         (ix86_expand_vector_init_concat): Likewise.
311         (ix86_expand_vector_init_general): Likewise.
312         (ix86_expand_vector_set): Likewise.
313         (ix86_vector_mode_supported_p): Likewise.
314         (x86_extended_reg_mentioned_p): Check INSN_P before using
315         PATTERN.
316
317         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
318         OPTION_MASK_ISA_AVX and OPTION_MASK_ISA_FMA.
319
320         * config/i386/i386.h (TARGET_AVX): New.
321         (TARGET_FMA): Likewise.
322         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AVX and TARGET_FMA.
323         (BIGGEST_ALIGNMENT): Set to 256 for TARGET_AVX.
324         (VALID_AVX256_REG_MODE): New.
325         (AVX256_VEC_FLOAT_MODE_P): Likewise.
326         (AVX_FLOAT_MODE_P): Likewise.
327         (AVX128_VEC_FLOAT_MODE_P): Likewise.
328         (AVX256_VEC_FLOAT_MODE_P): Likewise.
329         (AVX_VEC_FLOAT_MODE_P): Likewise.
330         (ASM_OUTPUT_AVX_PREFIX): Likewise.
331         (ASM_OUTPUT_OPCODE): Likewise.
332         (UNITS_PER_SIMD_WORD): Add a FIXME for 32byte vectorizer
333         support.
334         (SSE_REG_MODE_P): Allow 256bit vector modes.
335         (ix86_args): Add a warn_avx field.
336
337         * config/i386/i386.md (UNSPEC_PCMP): New.
338         (UNSPEC_VPERMIL): Likewise.
339         (UNSPEC_VPERMIL2): Likewise.
340         (UNSPEC_VPERMIL2F128): Likewise.
341         (UNSPEC_MASKLOAD): Likewise.
342         (UNSPEC_MASKSTORE): Likewise.
343         (UNSPEC_CAST): Likewise.
344         (UNSPEC_VTESTP): Likewise.
345         (UNSPECV_VZEROALL): Likewise.
346         (UNSPECV_VZEROUPPER): Likewise.
347         (XMM0_REG): Likewise.
348         (XMM1_REG): Likewise.
349         (XMM2_REG): Likewise.
350         (XMM3_REG): Likewise.
351         (XMM4_REG): Likewise.
352         (XMM5_REG): Likewise.
353         (XMM6_REG): Likewise.
354         (XMM8_REG): Likewise.
355         (XMM9_REG): Likewise.
356         (XMM10_REG): Likewise.
357         (XMM11_REG): Likewise.
358         (XMM12_REG): Likewise.
359         (XMM13_REG): Likewise.
360         (XMM14_REG): Likewise.
361         (XMM15_REG): Likewise.
362         (prefix): Likewise.
363         (prefix_vex_imm8): Likewise.
364         (prefix_vex_w): Likewise.
365         (length_vex): Likewise.
366         (maxmin): Likewise.
367         (movoi): Likewise.
368         (*avx_ashlti3): Likewise.
369         (*avx_lshrti3): Likewise.
370         (*avx_setcc<mode>): Likewise.
371         (*fop_<mode>_comm_mixed_avx): Likewise.
372         (*fop_<mode>_comm_avx): Likewise.
373         (*fop_<mode>_1_mixed_avx): Likewise.
374         (*fop_<mode>_1_avx): Likewise.
375         (*avx_<code><mode>3): Likewise.
376         (*avx_ieee_smin<mode>3): Likewise.
377         (*avx_ieee_smax<mode>3): Likewise.
378         (mode): Add OI, V8SF and V4DF.
379         (length): Support VEX prefix.
380         (*cmpfp_i_mixed): Set prefix attribute.
381         (*cmpfp_i_sse): Likewise.
382         (*cmpfp_iu_mixed): Likewise.
383         (*cmpfp_iu_sse): Likewise.
384         (*movsi_1): Support AVX.
385         (*movdi_2): Likewise.
386         (*movdi_1_rex64): Likewise.
387         (*movti_internal): Likewise.
388         (*movti_rex64): Likewise.
389         (*movsf_1): Likewise.
390         (*movdf_nointeger): Likewise.
391         (*movdf_integer_rex64): Likewise.
392         (*movtf_internal): Likewise.
393         (zero_extendsidi2_32): Likewise.
394         (zero_extendsidi2_rex64): Likewise.
395         (*extendsfdf2_mixed): Likewise.
396         (*extendsfdf2_sse): Likewise.
397         (*truncdfsf_fast_mixed): Likewise.
398         (*truncdfsf_fast_sse): Likewise.
399         (*truncdfsf_mixed): Likewise.
400         (fix_trunc<mode>di_sse): Likewise.
401         (fix_trunc<mode>si_sse): Likewise.
402         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
403         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
404         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
405         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
406         (*rcpsf2_sse): Likewise.
407         (*rsqrtsf2_sse): Likewise.
408         (*sqrt<mode>2_sse): Likewise.
409         (sse4_1_round<mode>2): Likewise.
410         (*sse_prologue_save_insn): Disallow REX prefix for AVX.
411         Support AVX.  Set length attribute properly for AVX.
412
413         * config/i386/i386-modes.def (VECTOR_MODES (INT, 32)): New.
414         (VECTOR_MODES (FLOAT, 32)): Likewise.
415         (VECTOR_MODE (INT, DI, 8)): Likewise.
416         (VECTOR_MODE (INT, HI, 32)): Likewise.
417         (VECTOR_MODE (INT, QI, 64)): Likewise.
418         (VECTOR_MODE (FLOAT, DF, 8)): Likewise.
419         (VECTOR_MODE (FLOAT, SF, 16)): Likewise.
420         (VECTOR_MODE (INT, DI, 4)): Removed.
421         (VECTOR_MODE (INT, SI, 8)): Likewise.
422         (VECTOR_MODE (INT, HI, 16)): Likewise.
423         (VECTOR_MODE (INT, QI, 32)): Likewise.
424         (VECTOR_MODE (FLOAT, SF, 8)): Likewise.
425         (INT_MODE (OI, 32)): Likewise.
426
427         * config/i386/i386.opt (mavx): New.
428         (mfma): Likewise.
429
430         * config/i386/i386-protos.h (ix86_attr_length_vex_default): New.
431
432         * config/i386/mmx.md (*mov<mode>_internal_rex64): Support AVX.
433         (*mov<mode>_internal_avx): New.
434         (*movv2sf_internal_rex64_avx): Likewise.
435         (*movv2sf_internal_avx): Likewise.
436
437         * config/i386/predicates.md (const_4_to_5_operand): New.
438         (const_6_to_7_operand): Likewise.
439         (const_8_to_11_operand): Likewise.
440         (const_12_to_15_operand): Likewise.
441         (avx_comparison_float_operator): Likewise.
442
443         * config/i386/sse.md (AVX256MODEI): New.
444         (AVX256MODE): Likewise.
445         (AVXMODEQI): Likewise.
446         (AVXMODE): Likewise.
447         (AVX256MODEF2P): Likewise.
448         (AVX256MODE2P): Likewise.
449         (AVX256MODE4P): Likewise.
450         (AVX256MODE8P): Likewise.
451         (AVXMODEF2P): Likewise.
452         (AVXMODEF4P): Likewise.
453         (AVXMODEDCVTDQ2PS): Likewise.
454         (AVXMODEDCVTPS2DQ): Likewise.
455         (avxvecmode): Likewise.
456         (avxvecpsmode): Likewise.
457         (avxhalfvecmode): Likewise.
458         (avxscalarmode): Likewise.
459         (avxcvtvecmode): Likewise.
460         (avxpermvecmode): Likewise.
461         (avxmodesuffixf2c): Likewise.
462         (avxmodesuffixp): Likewise.
463         (avxmodesuffixs): Likewise.
464         (avxmodesuffix): Likewise.
465         (vpermilbits): Likewise.
466         (pinsrbits): Likewise.
467         (mov<mode>): Likewise.
468         (*mov<mode>_internal): Likewise.
469         (push<mode>1): Likewise.
470         (movmisalign<mode>): Likewise.
471         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Likewise.
472         (avx_movdqu<avxmodesuffix>): Likewise.
473         (avx_lddqu<avxmodesuffix>): Likewise.
474         (<plusminus_insn><mode>3): Likewise.
475         (*avx_<plusminus_insn><mode>3): Likewise.
476         (*avx_vm<plusminus_insn><mode>3): Likewise.
477         (mul<mode>3): Likewise.
478         (*avx_mul<mode>3): Likewise.
479         (*avx_vmmul<mode>3): Likewise.
480         (divv8sf3): Likewise.
481         (divv4df3): Likewise.
482         (avx_div<mode>3): Likewise.
483         (*avx_div<mode>3): Likewise.
484         (*avx_vmdiv<mode>3): Likewise.
485         (avx_rcpv8sf2): Likewise.
486         (*avx_vmrcpv4sf2): Likewise.
487         (sqrtv8sf2): Likewise.
488         (avx_sqrtv8sf2): Likewise.
489         (*avx_vmsqrt<mode>2): Likewise.
490         (rsqrtv8sf2): Likewise.
491         (avx_rsqrtv8sf2): Likewise.
492         (*avx_vmrsqrtv4sf2): Likewise.
493         (<code><mode>3): Likewise.
494         (*avx_<code><mode>3_finite): Likewise.
495         (*avx_<code><mode>3): Likewise.
496         (*avx_vm<code><mode>3): Likewise.
497         (*avx_ieee_smin<mode>3): Likewise.
498         (*avx_ieee_smax<mode>3): Likewise.
499         (avx_addsubv8sf3): Likewise.
500         (avx_addsubv4df3): Likewise.
501         (*avx_addsubv4sf3): Likewise.
502         (*avx_addsubv2df3): Likewise.
503         (avx_h<plusminus_insn>v4df3): Likewise.
504         (avx_h<plusminus_insn>v8sf3): Likewise.
505         (*avx_h<plusminus_insn>v4sf3): Likewise.
506         (*avx_h<plusminus_insn>v2df3): Likewise.
507         (avx_cmpp<avxmodesuffixf2c><mode>3): Likewise.
508         (avx_cmps<ssemodesuffixf2c><mode>3): Likewise.
509         (*avx_maskcmp<mode>3): Likewise.
510         (avx_nand<mode>3): Likewise.
511         (*avx_<code><mode>3): Likewise.
512         (*avx_nand<mode>3): Likewise.
513         (*avx_<code><mode>3): Likewise.
514         (*avx_cvtsi2ss): Likewise.
515         (*avx_cvtsi2ssq): Likewise.
516         (*avx_cvtsi2sd): Likewise.
517         (*avx_cvtsi2sdq): Likewise.
518         (*avx_cvtsd2ss): Likewise.
519         (avx_cvtss2sd): Likewise.
520         (avx_cvtdq2ps<avxmodesuffix>): Likewise.
521         (avx_cvtps2dq<avxmodesuffix>): Likewise.
522         (avx_cvttps2dq<avxmodesuffix>): Likewise.
523         (*avx_cvtsi2sd): Likewise.
524         (*avx_cvtsi2sdq): Likewise.
525         (avx_cvtdq2pd256): Likewise.
526         (avx_cvtpd2dq256): Likewise.
527         (avx_cvttpd2dq256): Likewise.
528         (*avx_cvtsd2ss): Likewise.
529         (*avx_cvtss2sd): Likewise.
530         (avx_cvtpd2ps256): Likewise.
531         (avx_cvtps2pd256): Likewise.
532         (*avx_movhlps): Likewise.
533         (*avx_movlhps): Likewise.
534         (avx_unpckhps256): Likewise.
535         (*avx_unpckhps): Likewise.
536         (avx_unpcklps256): Likewise.
537         (*avx_unpcklps): Likewise.
538         (avx_movshdup256): Likewise.
539         (avx_movsldup256): Likewise.
540         (avx_shufps256): Likewise.
541         (avx_shufps256_1): Likewise.
542         (*avx_shufps_<mode>): Likewise.
543         (*avx_loadhps): Likewise.
544         (*avx_storelps): Likewise.
545         (*avx_loadlps): Likewise.
546         (*avx_movss): Likewise.
547         (*vec_dupv4sf_avx): Likewise.
548         (*vec_concatv2sf_avx): Likewise.
549         (*vec_concatv4sf_avx): Likewise.
550         (*vec_setv4sf_0_avx): Likewise.
551         (*vec_setv4sf_avx): Likewise.
552         (*avx_insertps): Likewise.
553         (avx_vextractf128<mode>): Likewise.
554         (vec_extract_lo_<mode>): Likewise.
555         (vec_extract_hi_<mode>): Likewise.
556         (vec_extract_lo_<mode>): Likewise.
557         (vec_extract_hi_<mode>): Likewise.
558         (vec_extract_lo_v16hi): Likewise.
559         (vec_extract_hi_v16hi): Likewise.
560         (vec_extract_lo_v32qi): Likewise.
561         (vec_extract_hi_v32qi): Likewise.
562         (avx_unpckhpd256): Likewise.
563         (*avx_unpckhpd): Likewise.
564         (avx_movddup256): Likewise.
565         (*avx_movddup): Likewise.
566         (avx_unpcklpd256): Likewise.
567         (*avx_unpcklpd): Likewise.
568         (avx_shufpd256): Likewise.
569         (avx_shufpd256_1): Likewise.
570         (*avx_punpckhqdq): Likewise.
571         (*avx_punpcklqdq): Likewise.
572         (*avx_shufpd_<mode>): Likewise.
573         (*avx_storehpd): Likewise.
574         (*avx_loadhpd): Likewise.
575         (*avx_loadlpd): Likewise.
576         (*avx_movsd): Likewise.
577         (*vec_concatv2df_avx): Likewise.
578         (*avx_<plusminus_insn><mode>3): Likewise.
579         (*avx_<plusminus_insn><mode>3): Likewise.
580         (*avx_mulv8hi3): Likewise.
581         (*avxv8hi3_highpart): Likewise.
582         (*avx_umulv8hi3_highpart): Likewise.
583         (*avx_umulv2siv2di3): Likewise.
584         (*avx_mulv2siv2di3): Likewise.
585         (*avx_pmaddwd): Likewise.
586         (*avx_mulv4si3): Likewise.
587         (*avx_ashr<mode>3): Likewise.
588         (*avx_lshr<mode>3): Likewise.
589         (*avx_ashl<mode>3): Likewise.
590         (*avx_<code><mode>3): Likewise.
591         (*avx_eq<mode>3): Likewise.
592         (*avx_gt<mode>3): Likewise.
593         (*avx_nand<mode>3): Likewise.
594         (*avx_nand<mode>3): Likewise.
595         (*avx_<code><mode>3): Likewise.
596         (*avx_<code><mode>3): Likewise.
597         (*avx_packsswb): Likewise.
598         (*avx_packssdw): Likewise.
599         (*avx_packuswb): Likewise.
600         (*avx_punpckhbw): Likewise.
601         (*avx_punpcklbw): Likewise.
602         (*avx_punpckhwd): Likewise.
603         (*avx_punpcklwd): Likewise.
604         (*avx_punpckhdq): Likewise.
605         (*avx_punpckldq): Likewise.
606         (*avx_pinsr<avxmodesuffixs>): Likewise.
607         (*avx_pinsrq): Likewise.
608         (*avx_loadld): Likewise.
609         (*vec_extractv2di_1_rex64_avx): Likewise.
610         (*vec_extractv2di_1_avx): Likewise.
611         (*vec_dupv2di_avx): Likewise.
612         (*vec_concatv2si_avx): Likewise.
613         (*vec_concatv4si_1_avx): Likewise.
614         (*vec_concatv2di_avx): Likewise.
615         (*vec_concatv2di_rex64_avx): Likewise.
616         (*avx_uavgv16qi3): Likewise.
617         (*avx_uavgv8hi3): Likewise.
618         (*avx_psadbw): Likewise.
619         (avx_movmskp<avxmodesuffixf2c>256): Likewise.
620         (*avx_phaddwv8hi3): Likewise.
621         (*avx_phadddv4si3): Likewise.
622         (*avx_phaddswv8hi3): Likewise.
623         (*avx_phsubwv8hi3): Likewise.
624         (*avx_phsubdv4si3): Likewise.
625         (*avx_phsubswv8hi3): Likewise.
626         (*avx_pmaddubsw128): Likewise.
627         (*avx_pmulhrswv8hi3): Likewise.
628         (*avx_pshufbv16qi3): Likewise.
629         (*avx_psign<mode>3): Likewise.
630         (*avx_palignrti): Likewise.
631         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
632         (avx_blendvp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
633         (avx_dpp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
634         (*avx_mpsadbw): Likewise.
635         (*avx_packusdw): Likewise.
636         (*avx_pblendvb): Likewise.
637         (*avx_pblendw): Likewise.
638         (avx_vtestp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
639         (avx_ptest256): Likewise.
640         (avx_roundp<avxmodesuffixf2c>256): Likewise.
641         (*avx_rounds<ssemodesuffixf2c>): Likewise.
642         (*avx_aesenc): Likewise.
643         (*avx_aesenclast): Likewise.
644         (*avx_aesdec): Likewise.
645         (*avx_aesdeclast): Likewise.
646         (avx_vzeroupper): Likewise.
647         (avx_vzeroupper_rex64): Likewise.
648         (avx_vpermil<mode>): Likewise.
649         (avx_vpermilvar<mode>3): Likewise.
650         (avx_vpermil2<mode>3): Likewise.
651         (avx_vperm2f128<mode>3): Likewise.
652         (avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>): Likewise.
653         (avx_vbroadcastss256): Likewise.
654         (avx_vbroadcastf128_p<avxmodesuffixf2c>256): Likewise.
655         (avx_vinsertf128<mode>): Likewise.
656         (vec_set_lo_<mode>): Likewise.
657         (vec_set_hi_<mode>): Likewise.
658         (vec_set_lo_<mode>): Likewise.
659         (vec_set_hi_<mode>): Likewise.
660         (vec_set_lo_v16hi): Likewise.
661         (vec_set_hi_v16hi): Likewise.
662         (vec_set_lo_v32qi): Likewise.
663         (vec_set_hi_v32qi): Likewise.
664         (avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
665         (avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>): Likewise.
666         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
667         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Likewise.
668         (vec_init<mode>): Likewise.
669         (*vec_concat<mode>_avx): Likewise.
670         (blendbits): Support V8SF and V4DF.
671         (sse2_movq128): Support AVX.
672         (<sse>_movnt<mode>): Likewise.
673         (sse2_movntv2di): Likewise.
674         (sse_rcpv4sf2): Likewise.
675         (sse_sqrtv4sf2): Likewise.
676         (sse_rsqrtv4sf2): Likewise.
677         (<sse>_comi): Likewise.
678         (<sse>_ucomi): Likewise.
679         (sse_cvtss2si): Likewise.
680         (sse_cvtss2si_2): Likewise.
681         (sse_cvtss2siq): Likewise.
682         (sse_cvtss2siq_2): Likewise.
683         (sse_cvttss2si): Likewise.
684         (sse_cvttss2siq): Likewise.
685         (sse2_cvtsd2si): Likewise.
686         (sse2_cvtsd2si_2): Likewise.
687         (sse2_cvtsd2siq): Likewise.
688         (sse2_cvtsd2siq_2): Likewise.
689         (sse2_cvttsd2si): Likewise.
690         (sse2_cvttsd2siq): Likewise.
691         (sse2_cvtdq2pd): Likewise.
692         (*sse2_cvtpd2dq): Likewise.
693         (*sse2_cvttpd2dq): Likewise.
694         (*sse2_cvtpd2ps): Likewise.
695         (sse2_cvtps2pd): Likewise.
696         (sse3_movshdup): Likewise.
697         (sse3_movsldup): Likewise.
698         (sse_storehps): Likewise.
699         (*sse4_1_extractps): Likewise.
700         (sse2_storelpd): Likewise.
701         (vec_dupv2df_sse3): Likewise.
702         (*vec_concatv2df_sse3): Likewise.
703         (*sse4_1_pextrb): Likewise.
704         (*sse4_1_pextrb_memory): Likewise.
705         (*sse2_pextrw): Likewise.
706         (*sse4_1_pextrw_memory): Likewise.
707         (*sse4_1_pextrd): Likewise.
708         (*sse4_1_pextrq): Likewise.
709         (sse2_pshufd_1): Likewise.
710         (sse2_pshuflw_1): Likewise.
711         (sse2_pshufhw_1): Likewise.
712         (*sse2_storeq_rex64): Likewise.
713         (*vec_dupv4si): Likewise.
714         (<sse>_movmskp<ssemodesuffixf2c>): Likewise.
715         (sse2_pmovmskb): Likewise.
716         (*sse2_maskmovdqu): Likewise.
717         (*sse2_maskmovdqu_rex64): Likewise.
718         (sse_ldmxcsr): Likewise.
719         (sse_stmxcsr): Likewise.
720         (abs<mode>2): Likewise.
721         (sse4_1_movntdqa): Likewise.
722         (sse4_1_phminposuw): Likewise.
723         (sse4_1_extendv8qiv8hi2): Likewise.
724         (*sse4_1_extendv8qiv8hi2): Likewise.
725         (sse4_1_extendv4qiv4si2): Likewise.
726         (*sse4_1_extendv4qiv4si2): Likewise.
727         (sse4_1_extendv2qiv2di2): Likewise.
728         (*sse4_1_extendv2qiv2di2): Likewise.
729         (sse4_1_extendv4hiv4si2): Likewise.
730         (*sse4_1_extendv4hiv4si2): Likewise.
731         (sse4_1_extendv2hiv2di2): Likewise.
732         (*sse4_1_extendv2hiv2di2): Likewise.
733         (sse4_1_extendv2siv2di2): Likewise.
734         (*sse4_1_extendv2siv2di2): Likewise.
735         (sse4_1_zero_extendv8qiv8hi2): Likewise.
736         (*sse4_1_zero_extendv8qiv8hi2): Likewise.
737         (sse4_1_zero_extendv4qiv4si2): Likewise.
738         (*sse4_1_zero_extendv4qiv4si2): Likewise.
739         (sse4_1_zero_extendv2qiv2di2): Likewise.
740         (*sse4_1_zero_extendv2qiv2di2): Likewise.
741         (sse4_1_zero_extendv4hiv4si2): Likewise.
742         (*sse4_1_zero_extendv4hiv4si2): Likewise.
743         (sse4_1_zero_extendv2hiv2di2): Likewise.
744         (*sse4_1_zero_extendv2hiv2di2): Likewise.
745         (sse4_1_zero_extendv2siv2di2): Likewise.
746         (*sse4_1_zero_extendv2siv2di2): Likewise.
747         (sse4_1_ptest): Likewise.
748         (sse4_1_roundp<ssemodesuffixf2c>): Likewise.
749         (sse4_2_pcmpestri): Likewise.
750         (sse4_2_pcmpestrm): Likewise.
751         (sse4_2_pcmpistri): Likewise.
752         (sse4_2_pcmpistrm): Likewise.
753         (aesimc): Likewise.
754         (aeskeygenassist): Likewise.
755
756 2008-08-28  Uros Bizjak  <ubizjak@gmail.com>
757
758         * config/i386/predicates.md (vzeroall_operation): New.
759
760         * config/i386/sse.md (avx_vzeroall): New.
761         (*avx_vzeroall): Likewise.
762
763 2008-08-28  Paul Brook  <paul@codesourcery.com>
764             Mark Shinwell  <shinwell@codesourcery.com>
765             Richard Earnshaw  <richard.earnshaw@arm.com>
766
767         * config/arm/arm.c (TARGET_MAX_ANCHOR_OFFSET): New.
768         (TARGET_MIN_ANCHOR_OFFSET): New.
769         (arm_override_options): Set correct anchor ranges for Thumb-1
770         and Thumb-2 if required.
771         (legitimize_pic_address): Handle case involving a TLS symbol
772         reference with an addend.
773         (arm_optimization_options): Enable section anchors at -O1 and
774         above.
775         * config/arm/arm.h (OPTIMIZATION_OPTIONS): New.
776         * config/arm/arm-protos.h (arm_optimization_options): New.
777
778 2008-08-28  Nick Clifton  <nickc@redhat.com>
779
780         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Define.
781         * config/stormy16/stormy16.md (zero_extendqihi2): Fix length
782         attribute.
783
784         * config/v850/v850.h (IRA_COVER_CLASSES): Define.
785         * config/v850/v850.md (return): Remove frame size restriction.  
786
787         * config/mcore/mcore.h (IRA_COVER_CLASSES): Define.
788
789         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Define.
790
791         * config/fr30/fr30.h (IRA_COVER_CLASSES): Define.
792
793         * config/m32r/m32r.h (IRA_COVER_CLASSES): Define.
794
795 2008-08-28  Paul Brook  <paul@codesourcery.com>
796
797         * config/arm/vfp11.md: Update license notice.
798         * config/arm/cortex-r4.md: Ditto.
799
800 2008-08-28  Richard Guenther  <rguenther@suse.de>
801
802         PR tree-optimization/37207
803         * tree-ssa-ifcombine.c (recognize_single_bit_test): Fix
804         tuplification bug.
805
806 2008-08-28  Dodji Seketeli  <dodji@redhat.com>
807
808         PR c++/36741
809         * tree.c (int_fits_type_p): Don't forget unsigned integers
810           of type sizetype which higher end word equals -1.
811
812 2008-08-28  Ira Rosen  <irar@il.ibm.com>
813
814         * target.h (struct vectorize): Add new target builtin.
815         * tree-vectorizer.c (destroy_loop_vec_info): Call 
816         vect_free_slp_instance instead of vect_free_slp_node.
817         * tree-vectorizer.h (enum slp_load_perm_type): New.
818         (struct _slp_instance): Add new fields.
819         (SLP_INSTANCE_LOAD_PERMUTATION): New.
820         (SLP_INSTANCE_LOADS): New.
821         (vect_free_slp_tree): Remove.
822         (vect_free_slp_instance): Declare.        
823         (SLP_TREE_LOADS_PERM_TYPE, TARG_VEC_PERMUTE_COST): New.
824         (vectorizable_load): Add argument.
825         (vect_transform_slp_perm_load): New.
826         * tree-vect-analyze.c (vect_analyze_operations): Add an argument to 
827         vectorizable_load.
828         (vect_get_place_in_interleaving_chain): New function.
829         (vect_free_slp_tree): Make static.
830         (vect_free_slp_instance): New function.
831         (vect_build_slp_tree): Add new arguments. Allow load permutations and 
832         collect the load location in the interleaving chain.
833         (vect_supported_slp_permutation_p): New function.
834         (vect_supported_load_permutation_p): Likewise.
835         (vect_analyze_slp_instance): In case of loads permutation, call
836         vect_supported_load_permutation_p to check that the permutation is 
837         supported.
838         * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM): New.
839         * tree-vect-transform.c (vect_transform_stmt): Add new argument.
840         (vect_create_mask_and_perm): New function.
841         (vect_get_mask_element, vect_transform_slp_perm_load): Likewise.
842         (vectorizable_load): Add an argument. Don't keep the created vectors  
843         statements in the node if permutation is required. Call 
844         vect_transform_slp_perm_load to generate the permutation.
845         (vect_transform_stmt): Add new argument. Call vectorizable_load with 
846         additional argument.
847         (vect_schedule_slp_instance): In case of loads permutation, allocate  
848         vectorized statements structure for all the related SLP nodes. Call 
849         vect_transform_stmt with addditional argument.
850         (vect_transform_loop): Call vect_transform_stmt with correct arguments. 
851         * config/spu/spu.c (spu_builtin_vec_perm): New. 
852         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
853         * config/spu/spu.h (TARG_VEC_PERMUTE_COS): Define.
854         * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): New.
855         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
856
857 2008-08-28  Chris Fairles  <chris.fairles@gmail.com>
858
859         * gthr-posix.h (__gthread_create,  __gthread_join, __gthread_detach,
860         __gthread_mutex_timed_lock, __gthread_recursive_mutex_timed_lock,
861         __gthread_cond_signal, __gthread_cond_timedwait,
862         __gthread_cond_timedwait_recursive): New functions.
863         * gthr-posix.c (pthread_mutex_timedlock, pthread_cond_timedwait):
864         Likewise.
865         * gthr.h: Comment on defining __GTHREADS_CXX0X macro in conforming
866         thread interfaces.
867
868 2008-08-28  Richard Guenther  <rguenther@suse.de>
869
870         PR middle-end/37005
871         * fold-const.c (maybe_canonicalize_comparison_1): Require
872         undefined overflow only for canonicalizing A +- CST cmp CST.
873         Make sure to not generate new constants that are not inside
874         their TYPE_MIN/MAX_VALUE range.
875         (maybe_canonicalize_comparison): Remove undefined overflow
876         checking from here.
877         (fold_binary): Remove now duplicate folding.
878
879 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
880
881         * c-typeck.c (convert_for_assignment): Adjust WARN_FOR_ASSIGNMENT
882         use not updated in the last change.
883
884 2008-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
885
886         * config/sh/sh.h (REG_CLASS_CONTENTS): Drop fr32 from FPUL_REGS.
887         (IRA_COVER_CLASSES): Add FPUL_REGS.
888
889 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
890
891         PR 37217
892         * c-common.c (conversion_warning): Check for null operands.
893
894 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
895
896         PR c/31673
897         * c-decl.c (check_for_loop_decls): Improve error message. Give
898         hint.
899
900 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
901
902         PR c/37186
903         * c-typeck.c (WARN_FOR_ASSIGNMENT): Add OPT parameter.
904         (convert_for_assignment): Pass corrent OPT_W* parameter to
905         WARN_FOR_ASSIGNMENT.
906
907 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
908
909         PR c++/35321
910         * c-common.c (fold_offsetof_1): Handle TARGET_EXPR like CALL_EXPR.
911
912 2008-08-27  Paul Brook  <paul@codesourcery.com>
913
914         * config.gcc: Loosen checks for arm uclinux eabi targets.
915
916 2008-08-27  Paul Brook  <paul@codesourcery.com>
917
918         * config/arm/t-arm-coff (LIB1ASMFUNCS): Add missing undescrore on
919         _clzsi2.
920         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
921
922 2008-08-26  Douglas Gregor  <doug.gregor@gmail.com>
923
924         * c-common.c (do_switch_warnings): Look through the CONST_DECLs in
925         the enumerators of an ENUMERAL_TYPE.
926         * dbxout.c (dbxout_type): Ditto.
927
928 2008-08-26  Andrew Pinski  <andrew_pinski@playstation.sony.com>
929
930         PR rtl-opt/37219
931         * fwprop.c (fwprop): Check that the loop_father is the outer loop.
932         (fwprop_addr): Check that the loop_father is not the outer loop.
933
934 2008-08-26  Paul Brook  <paul@codesourcery.com>
935
936         * config/arm/vfp.md: Document fmul{s,d} and fmac{s,d} types.
937         Remove documentation entry for fmul type.
938         Use fmuls to annotate single-precision multiplication patterns,
939         fmuld to annotate double-precision multiplication patterns,
940         fmacs to annotate single-precision multiply-accumulate patterns
941         and fmacd to annotate double-precision multiply-accumulate patterns.
942         * config/arm/vfp11.md: Update reservations accordingly.
943         * config/arm/arm.md: Note that certain values of the "type"
944         attribute are documented in vfp.md.
945         * config/arm/arm1020e.md: Remove out of date duplicate comment.
946         (v10_cvt): Use new fmul types.
947
948 2008-08-26  Paul Brook   <paul@codesourcery.com>
949
950         * config/arm/vfp.md: Move pipeline description for VFP11 to...
951         * config/arm/vfp11.md: ...here.  New.
952         * config/arm/arm.md: Include vfp11.md.
953
954 2008-08-26  Hans-Peter Nilsson  <hp@axis.com>
955
956         * opts.c (decode_options) [!IRA_COVER_CLASSES]: Add missing
957         parameter to inform call.
958
959 2008-08-26  Jeff Law  <law@redhat.com>
960
961         * mn10300.md (movqi, movhi): Split i->d*a case into two cases to
962         avoid the possibility of getting DATA_OR_ADDRESS_REGS as the
963         preferred class when copying a constant into a partial word register.
964
965 2008-08-26  Ben Elliston  <bje@au.ibm.com>
966
967         * rtlanal.c: Fix uses of "it's" with "its" where appropriate.
968         * cp/typeck.c: Likewise.
969         * cp/tree.c: Likewise.
970         * gimple-low.c: Likewise.
971         * jump.c: Likewise.
972
973 2008-08-26  Vladimir Makarov  <vmakarov@redhat.com>
974
975         * ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
976         ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.
977
978         * doc/passes.texi: Describe IRA.
979
980         * doc/tm.texi (IRA_COVER_CLASSES,
981         IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.
982
983         * doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
984         (-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
985         -fira-propagate-cost, -fno-ira-share-save-slots,
986         -fno-ira-share-spill-slots, -fira-verbose): Describe new options.
987
988         * flags.h (ira_algorithm): New enumeration.
989         (flag_ira_algorithm, flag_ira_verbose): New external variable
990         declarations.
991
992         * postreload.c (gate_handle_postreload): Don't do post reload
993         optimizations unless the reload is completed.
994
995         * reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
996         IRA.
997
998         * tree-pass.h (pass_ira): New external variable declaration.
999
1000         * reload.h: Add 2008 to the Copyright.
1001     
1002         * cfgloopanal.c: Include params.h.
1003         (estimate_reg_pressure_cost): Decrease cost for IRA optimization
1004         mode.
1005     
1006         * params.h (IRA_MAX_LOOPS_NUM): New macro.
1007
1008         * toplev.c (ira.h): New include.
1009         (flag_ira_algorithm, flag_ira_verbose): New external variables.
1010         (backend_init_target): Call ira_init.
1011         (backend_init): Call ira_init_once.
1012         (finalize): Call finish_ira_once.
1013
1014         * toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
1015         flag_ira_share_save_slots, flag_ira_share_spill_slots): New
1016         external variables.
1017
1018         * regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
1019         may_move_out_cost): New external variable declarations.
1020         (move_table): New typedef.
1021     
1022         * caller-save.c: Include headers output.h and ira.h.
1023         (no_caller_save_reg_set): New global variable.
1024         (save_slots_num, save_slots): New variables.
1025         (reg_save_code, reg_restore_code, add_stored_regs): Add
1026         prototypes.
1027         (init_caller_save): Set up no_caller_save_reg_set.
1028         (init_save_areas): Reset save_slots_num.
1029         (saved_hard_reg): New structure.
1030         (hard_reg_map, saved_regs_num, all_saved_regs): New variables.
1031         (initiate_saved_hard_regs, new_saved_hard_reg,
1032         finish_saved_hard_regs, saved_hard_reg_compare_func): New
1033         functions.
1034         (setup_save_areas): Add code for sharing stack slots.
1035         (all_blocks): New variable.
1036         (save_call_clobbered_regs): Process pseudo-register too.
1037         (mark_set_regs): Process pseudo-register too.
1038         (insert_one_insn): Put the insn after bb note in a empty basic
1039         block.  Add insn check.
1040     
1041         * global.c (eliminable_regset): Make it external.
1042         (mark_elimination): Use DF_LR_IN for IRA.
1043         (pseudo_for_reload_consideration_p): New.
1044         (build_insn_chain): Make it external.  Don't ignore spilled
1045         pseudos for IRA.  Use pseudo_for_reload_consideration_p.
1046         (gate_handle_global_alloc): New function.
1047         (pass_global_alloc): Add the gate function.
1048
1049         * opts.c (decode_options): Set up flag_ira.  Print the warning for
1050         -fira.
1051         (common_handle_option): Process -fira-algorithm and -fira-verbose.
1052
1053         * timevar.def (TV_IRA, TV_RELOAD): New passes.
1054
1055         * regmove.c (regmove_optimize): Don't do replacement of output for
1056         IRA.
1057
1058         * hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
1059         New external variable declarations.
1060
1061         * local-alloc.c (update_equiv_regs): Make it external.  Return
1062         true if jump label rebuilding should be done.  Rescan new_insn for
1063         notes.
1064         (gate_handle_local_alloc): New function.
1065         (pass_local_alloc): Add the gate function.
1066
1067         * alias.c (value_addr_p, stack_addr_p): New functions.
1068         (nonoverlapping_memrefs_p): Use them for IRA.
1069
1070         * common.opt (fira, fira-algorithm, fira-coalesce,
1071         fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
1072         fira-verbose): New options.
1073
1074         * regclass.c (reg_class_subclasses, contains_reg_of_mode,
1075         move_cost, may_move_in_cost, may_move_out_cost): Make the
1076         variables external.
1077         (move_table): Remove typedef.
1078         (init_move_cost): Make it external.
1079         (allocate_reg_info, resize_reg_info, setup_reg_classes): New
1080         functions.
1081
1082         * rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
1083         setup_reg_classes): New function prototypes.
1084         (eliminable_regset): New external variable declaration.
1085         (build_insn_chain, update_equiv_regs): New function prototypes.
1086     
1087         * Makefile.in (IRA_INT_H): New definition.
1088         (OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
1089         ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
1090         (reload1.o, toplev.o): Add dependence on ira.h.
1091         (cfgloopanal.o): Add PARAMS_H.
1092         (caller-save.o): Add dependence on output.h and ira.h.
1093         (ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
1094         ira-emit.o, ira-lives.o): New entries.
1095
1096         * passes.c (pass_ira): New pass.
1097
1098         * params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.
1099
1100         * reload1.c (ira.h): Include the header.
1101         (changed_allocation_pseudos): New bitmap.
1102         (init_reload): Initiate the bitmap.
1103         (compute_use_by_pseudos): Permits spilled registers in FROM.
1104         (temp_pseudo_reg_arr): New variable.
1105         (reload): Allocate and free temp_pseudo_reg_arr.  Sort pseudos for
1106         IRA.  Call alter_reg with the additional parameter.  Don't clear
1107         spilled_pseudos for IRA.  Restore original insn chain for IRA.
1108         Clear changed_allocation_pseudos at the end of reload.
1109         (calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
1110         (hard_regno_to_pseudo_regno): New variable.
1111         (count_pseudo): Check spilled pseudos.  Set up
1112         hard_regno_to_pseudo_regno.
1113         (count_spilled_pseudo): Check spilled pseudos. Update
1114         hard_regno_to_pseudo_regno.
1115         (find_reg): Use better_spill_reload_regno_p.  Check
1116         hard_regno_to_pseudo_regno.
1117         (alter_reg): Set up spilled_pseudos.  Add a new parameter.  Add
1118         code for IRA.
1119         (eliminate_regs_1): Use additional parameter for alter_reg.
1120         (finish_spills): Set up pseudo_previous_regs only for spilled
1121         pseudos.  Call reassign_pseudos once for all spilled pseudos, pass
1122         more arguments.  Don't clear live_throughout and dead_or_set for
1123         spilled pseudos.  Use additional parameter for alter_reg.  Call
1124         mark_allocation_change.  Set up changed_allocation_pseudos.
1125         Remove sanity check.
1126         (emit_input_reload_insns, delete_output_reload): Use additional
1127         parameter for alter_reg.  Call mark_allocation_change.
1128         (substitute, gen_reload_chain_without_interm_reg_p): New
1129         functions.
1130         (reloads_conflict): Use gen_reload_chain_without_interm_reg_p.
1131     
1132         * testsuite/gcc.dg/20080410-1.c: New file.
1133         
1134         * config/s390/s390.h (IRA_COVER_CLASSES,
1135         IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.
1136
1137         * config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.
1138
1139         * config/i386/i386.h (IRA_COVER_CLASSES): Ditto.
1140
1141         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
1142
1143         * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
1144
1145         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
1146     
1147         * config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.
1148     
1149         2008-08-24  Jeff Law  <law@redhat.com>
1150         * ira.c (setup_reg_class_intersect_union): Prefer smallest class
1151         when ignoring unavailable registers.
1152
1153         2008-08-24  Jeff Law  <law@redhat.com>
1154         * ira-color.c (coalesced_pseudo_reg_slot_compare): Check
1155         FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
1156         * ira.c (setup_eliminable_regset): Check stack_realign_needed.
1157         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.
1158
1159         2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com>
1160         * ira-build.c (allocno_range_compare_func): Stabilize sort.
1161
1162         2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com>
1163         * config/avr/avr.h (IRA_COVER_CLASSES): New macro.
1164         * reload1.c (find_reg): Process registers in register allocation order.
1165
1166         2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
1167         * toplev.c (backend_init_target): Move ira_init call from
1168         here...
1169         (lang_dependent_init_target): ...to here.
1170
1171         2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
1172         * ira.c (setup_class_subset_and_memory_move_costs): Don't
1173         calculate memory move costs for NO_REGS.
1174
1175         2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org>
1176         * ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
1177         STACK_REGS is defined.
1178
1179         2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
1180         * config/spu/spu.h (IRA_COVER_CLASSES): New macro.
1181
1182         2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com>
1183         * config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.
1184
1185         2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org>
1186         * config/sh/sh.h (IRA_COVER_CLASSES): Define.
1187         * config/sh/sh.md (movsicc_true+3): Check if emit returns a
1188         barrier.
1189
1190 2008-08-26  Victor Kaplansky  <victork@il.ibm.com>
1191             Dorit Nuzman  <dorit@il.ibm.com>
1192
1193         * gcc/config/spu/spu.md (vec_extract_evenv4si,
1194         vec_extract_evenv4sf, vec_extract_evenv8hi,
1195         vec_extract_evenv16qi, vec_extract_oddv4si,
1196         vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
1197         vec_interleave_highv4sf, vec_interleave_lowv4sf,
1198         vec_interleave_highv4si, vec_interleave_lowv4si,
1199         vec_interleave_highv8hi, vec_interleave_lowv8hi,
1200         vec_interleave_highv16qi, vec_interleave_lowv16qi,
1201         vec_pack_trunc_v8hi, vec_pack_trunc_v4si): Implement.S
1202
1203 2008-08-25  Janis Johnson  <janis187@us.ibm.com>
1204
1205         PR target/36756
1206         * config/rs6000/rs6000.c (optimization_options): Don't default to
1207         section anchors without toplevel reorder.
1208
1209 2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1210
1211         * config/spu/spu_mfcio.h (mfc_begin_critical_section): New function.
1212         (mfc_end_critical_section): Likewise.
1213
1214 2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1215
1216         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Propagate
1217         all type qualifiers from element type to vector type.
1218
1219 2008-08-25  David Daney  <ddaney@avtrex.com>
1220
1221         * config/mips/mips.md (immediate_insn): Move up in file, fix
1222         comment typo, reformat.
1223         (fetchop_bit, atomic_hiqi_op memory_barrier,
1224         sync_compare_and_swap<mode>, compare_and_swap_12, sync_add<mode>,
1225         sync_<optab><mode>, sync_<optab>_12, sync_old_<optab><mode>,
1226         sync_old_<optab>_12, sync_new_<optab><mode>, sync_new_<optab>_12,
1227         sync_nand<mode>, sync_nand_12, sync_old_nand<mode>,
1228         sync_old_nand_12, sync_new_nand<mode>, sync_new_nand_12,
1229         sync_sub<mode>, sync_old_add<mode>, sync_old_sub<mode>,
1230         sync_new_add<mode>, sync_new_sub<mode>, sync_<optab><mode>,
1231         sync_old_<optab><mode>, sync_new_<optab><mode>, sync_nand<mode>,
1232         sync_old_nand<mode>, sync_new_nand<mode>,
1233         sync_lock_test_and_set<mode>, sync_lock_test_and_set<mode>,
1234         test_and_set_12): Moved to sync.md.
1235         (sync.md): Include.
1236         * config/mips/sync.md: New file.
1237
1238 2008-08-25  Richard Henderson  <rth@redhat.com>
1239
1240         * dwarf2out.c (def_cfa_1): Don't scale by DWARF_CIE_DATA_ALIGNMENT.
1241         (regsave): Likewise.
1242         (lookup_cfa_1): Don't rescale by DWARF_CIE_DATA_ALIGNMENT.
1243         (output_cfi_directive): Likewise.
1244         (div_data_align): New.
1245         (output_cfi): Use it.
1246
1247 2008-08-24  Adam Nemet  <anemet@caviumnetworks.com>
1248
1249         * config.gcc (mips64*-*-linux*): Handle mips64octeon*-*-linux*.
1250         * config/mips/mips.h (enum processor_type): Add PROCESSOR_OCTEON.
1251         (TARGET_OCTEON): New macro.
1252         (TARGET_CPU_CPP_BUILTINS): Define __OCTEON__ for Octeon.
1253         (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC): Handle -march=octeon.
1254         (ISA_HAS_POP): New macro.
1255         * config/mips/driver-native.c (host_detect_local_cpu): Handle
1256         Octeon.
1257         * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
1258         Handle Octeon.
1259         * config/mips/mips.md (cpu): Add octeon.
1260         (type): Add pop attribute value.
1261         (popcount<mode>2): New pattern.
1262         * doc/invoke.texi (-march=@var{arch}): Add octeon.
1263
1264 2008-08-24  Jan Hubicka  <jh@suse.cz>
1265
1266         * doc/invoke.texi (-fipa-cp-clone): New option.
1267         (-fipa-cp): Update docs.
1268         (--param ipcp-unit-growth):New.
1269         * ipa-cp.c: Include fibheap.h, params.h
1270         (ipcp_initialize_node_lattices): When not cloning, all externally
1271         visible functions are bottom.
1272         (ipcp_need_redirect_p): Accept clones.
1273         (ipcp_insert_stage): Use cost driven heuristics.
1274         (max_count, dead_nodes): New static vars.
1275         (ipcp_need_original_clone_p, ipcp_estimate_cloning_cost,
1276         ipcp_const_param_count): New functions.
1277         * common.opt (ipa-cp-clone): New command line option.
1278         * params.def (ipcp-unit-growth): New.
1279
1280 2008-08-24  Jan Hubicka  <jh@suse.cz>
1281
1282         * tree-inline.c (tree_function_versioning): Look harder
1283         for referenced vars.
1284
1285 2008-08-24  Razya Ladelsky  <razya@il.ibm.com>
1286
1287         PR tree-optimization/37185
1288         * matrix-reorg.c (transform_access_sites): Update changed stmt.
1289
1290 2008-08-23  Jan Hubicka  <jh@suse.cz>
1291
1292         * ipa-cp.c (ipcp_analyze_node): New function.
1293         (ipcp_update_cloned_node): Use it.
1294         (ipcp_init_stage): Likewise.
1295         * ipa-inline.c (function_insertion_hook_holder): New static var.
1296         (analyze_function): Break out from ....
1297         (inline_generate_summary): Here; register insertion hook.
1298         (cgraph_decide_inlining): Remove hook.
1299         (add_new_function): New function.
1300
1301 2008-08-23  Jan Hubicka  <jh@suse.cz>
1302
1303         * opts.c (decode_options): Revert accidental change enabling ipa-cp.
1304
1305 2008-08-23  Jan Hubicka  <jh@suse.cz>
1306
1307         * ipa-cp.c (constant_val_insert): Remove.
1308         (ipcp_propagate_one_const): Remove.
1309         (ipcp_create_replace_map): Always insert replacements to the map.
1310         (ipcp_insert_stage): Do not try to insert statements by hand.
1311         * tree-inline.c (insert_init_stmt): Break out from ...
1312         (setup_one_parameter): ... here; allow NULL BB pointer.
1313         (tree_function_versioning): Use setup_one_parameter to process
1314         replacement map.
1315
1316 2008-08-23  Jan Hubicka  <jh@suse.cz>
1317
1318         * tree.c (decl_address_ip_invariant_p): New function.
1319         * tree.h (decl_address_ip_invariant_p): Declare.
1320         * gimple.c (strip_invariant_refs): Break out from ...
1321         (is_gimple_invariant_address): ... here
1322         (is_gimple_ip_invariant_address): New function.
1323         (is_gimple_ip_invariant): New function.
1324         * gimple.h (is_gimple_ip_invariant_address, is_gimple_ip_invariant):
1325         Declare.
1326
1327         * ipa-cp.c (ipcp_lat_is_const): Remove handling of IPA_CONST_VALUE_REF.
1328         (ipcp_lat_is_insertable): All constants are insertable.
1329         (ipcp_lattice_from_jfunc, ipcp_print_all_lattices): Remove handling of
1330         IPA_CONST_VALUE_REF.
1331         (ipcp_initialize_node_lattices): Propagate all types of operands.
1332         (build_const_val): Do not handle IPA_CONST_VALUE_REF.
1333         (ipcp_create_replace_map): Reformat.
1334         (ipcp_need_redirect_p): Simplify.
1335         (ipcp_insert_stage): Check that argument is used before clonning.
1336         * ipa-prop.c (ipa_print_node_jump_functions): Do not handle IPA_CONST_REF.
1337         (compute_scalar_jump_functions): Simplify using is_gimple_ip_invariat.
1338         (determine_cst_member_ptr): Keep wrapping ADDR_EXPR of members.
1339         (update_call_notes_after_inlining): Expect ADDR_EXPR in operand.
1340         * ipa-prop.h (jump_func_type): Remove IPA_CONST_REF.
1341         (jump_func_type): Remove IPA_CONST_VALUE_REF.
1342         * tree-inline.c (tree_function_versioning): Add variables referenced by
1343         replacing trees.
1344
1345 2008-08-23  Jan Hubicka  <jh@suse.cz>
1346
1347         PR target/37094
1348         * i386.c (standard_80387_constant_p): Use optimize_size.
1349
1350 2008-08-23  Ira Rosen  <irar@il.ibm.com>
1351
1352         PR tree-optimization/37161
1353         * tree-vectorizer.h (vect_get_smallest_scalar_type): Declare.
1354         * tree-vect-analyze.c (vect_get_smallest_scalar_type): New function.
1355         (vect_determine_vectorization_factor): Move the scalar type
1356         retrieval to vect_get_smallest_scalar_type.
1357         (vect_build_slp_tree): Call vect_get_smallest_scalar_type to get
1358         scalar type. Remove redundant computation.
1359         * tree-vect-transform.c (vect_get_constant_vectors): Add argument.
1360         (vect_get_slp_defs): Take the type of RHS into account if
1361         necessary by calling vect_get_smallest_scalar_type. Call
1362         vect_get_constant_vectors with additional argument.
1363
1364 2008-08-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1365
1366         PR 35648
1367         * doc/invoke.texi (Wwrite-strings): Clarify description.
1368         
1369 2008-08-23  Ira Rosen  <irar@il.ibm.com>
1370
1371         PR tree-optimization/37174
1372         * tree-vect-analyze.c (vect_get_and_check_slp_defs): Check that the
1373         def stmt is a part of the loop before accessing its stmt_vec_info.
1374
1375 2008-08-22  Anatoly Sokolov  <aesok@post.ru>
1376
1377         PR target/11259
1378         * config/avr/avr.md (UNSPEC_SWAP): New constants.
1379         (*swap): New insn pattern.
1380         (*ashlqi3): Rename from ashlqi3 insn pattern.
1381         (ashlqi3): New expanders.
1382         (*lshrqi3): Rename from lshrqi3 insn pattern.
1383         (lshrqi3): New expanders.       
1384         (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, lshrqi3_const4,
1385         lshrqi3_const5, lshrqi3_const6): New splitters.
1386         (andi, ashlqi3_l_const4, ashlqi3_l_const5, ashlqi3_l_const6,
1387         lshrqi3_l_const4, lshrqi3_l_const5, lshrqi3_l_const6): Define
1388         peephole2 patterns.
1389
1390 2008-08-22  Richard Guenther  <rguenther@suse.de>
1391
1392         PR tree-optimization/37078
1393         * tree-vrp.c (extract_range_from_unary_expr): Avoid generating
1394         [+INF, +INF] ranges.
1395
1396 2008-08-22  Richard Guenther  <rguenther@suse.de>
1397
1398         PR tree-optimization/37143
1399         * tree-vect-transform.c (vect_create_cond_for_align_checks): Build
1400         a conversion statement instead of a copy.
1401
1402 2008-08-22  Uros Bizjak  <ubizjak@gmail.com>
1403
1404         PR target/37184
1405         * config/i386/i386.c (ix86_match_ccmode): Handle CCAmode,
1406         CCCmode, CCOmode and CCSmode destination modes.
1407
1408         PR target/37191
1409         * config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers
1410         from different units in a single alternative.
1411         (*vec_extractv2sf_1): Ditto.
1412         (*vec_extractv2si_0): Ditto.
1413         (*vec_extractv2si_1): Ditto.
1414         * config/i386/sse.md (sse2_storehpd): Ditto.
1415         (sse2_storelpd): Ditto.
1416         (sse2_loadhpd): Ditto.
1417         (sse2_loadlpd): Ditto.
1418
1419         PR target/37197
1420         * config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints.
1421         (popcountsi2): Ditto.
1422         (clzdi2_abm): Ditto.
1423         (popcountdi2): Ditto.
1424         (clzhi2_abm): Ditto.
1425         (popcounthi2): Ditto.
1426
1427 2008-08-22  Richard Guenther  <rguenther@suse.de>
1428
1429         PR middle-end/36548
1430         PR middle-end/37125
1431         * fold-const.c (extract_muldiv_1): Optimize (X * C1) % C2 only
1432         if the multiplication does not overflow.
1433
1434 2008-08-21  Nathan Sidwell  <nathan@codesourcery.com>
1435
1436         * c-ppoutput.c (init_pp_output): Initialize src_line to 1.
1437
1438 2008-08-21  Richard Henderson  <rth@redhat.com>
1439
1440         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Remove
1441         spurrious comma from test.
1442         * configure: Rebuild.
1443
1444 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1445
1446         PR 30457
1447         * builtins.c (fold_builtin_next_arg): Add warning about undefined
1448         behaviour.
1449         
1450 2008-08-21  Aldy Hernandez  <aldyh@redhat.com>
1451
1452         * c-tree.h (grokfield): New argument.
1453         * c-decl.c (grokfield): Handle new location argument.
1454         * c-parser.c (c_parser_struct_declaration): Pass location to
1455         grokfield.
1456
1457 2008-08-21  Richard Guenther  <rguenther@suse.de>
1458
1459         * tree-ssa-ccp.c (ccp_fold): Fold VIEW_CONVERT_EXPRs of constants.
1460
1461 2008-08-21  Jan Hubicka  <jh@suse.cz>
1462
1463         * cgraph.c (first_cgraph_function_insertion_hook): New variable.
1464         (cgraph_add_function_insertion_hook,
1465         cgraph_remove_function_insertion_hook,
1466         cgraph_call_function_insertion_hooks): New functions.
1467         * cgraph.h (cgraph_add_function_insertion_hook,
1468         cgraph_remove_function_insertion_hook,
1469         cgraph_call_function_insertion_hooks): Declare.
1470         * ipa-reference.c (function_insertion_hook_holder): New variable.
1471         (check_operand, look_for_address_of): When checking late, do not care
1472         about module bitmaps.
1473         (add_new_function): New function.
1474         (generate_summary): Register hooks; zero module bitmaps.
1475         (propagate): Unregister hooks.
1476         * ipa-pure-const.c (function_insertion_hook_holder): New variable.
1477         (add_new_function): New function.
1478         (generate_summary): Register hook.
1479         (propagate): Remove hook.
1480
1481         * ipa-cp.c (ipcp_need_redirect_p): Fix to not be constant 0.
1482
1483         * tree-pass.h (pass_ipa_cp): Make ipa_opt_pass.
1484         * ipa-cp.c (ipcp_update_cloned_node): New function.
1485         (build_const_val): Handle functions correctly; bring type logic
1486         into sync with tree-inline.c
1487         (ipcp_init_stage):  Take care of computing stuff needed by
1488         indirect inlining; update clones.
1489         (ipcp_generate_summary): Break out of ipcp_driver.
1490         (ipcp_driver): Do only execution and transformation.
1491         (pass_ipa_cp): Make IPA_PASS.
1492         * tree-ssa-ccp.c (fold_stmt_r): Check type before trying to fold
1493         offset to address.
1494         * ipa-inline.c (inline_indirect_intraprocedural_analysis): When doing
1495         ipcp, some info is already available.
1496         * ipa-prop.c (ipa_count_arguments): Grow edge lists as needed.
1497         * tree-inline.c (remap_ssa_name): Unshare expression.
1498
1499 2008-08-21  Richard Guenther  <rguenther@suse.de>
1500
1501         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
1502         a PHI ask VN if it is already available.
1503         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
1504         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
1505
1506 2008-08-21  Richard Guenther  <rguenther@suse.de>
1507
1508         PR middle-end/36817
1509         * tree-chrec.c (chrec_apply): Always call chrec_fold_plus which
1510         makes sure to produce a result of the correct type.
1511
1512 2008-08-21  Jan Hubicka  <jh@suse.cz>
1513         Backport from LTO branch:
1514
1515         2008-05-05  Kenneth Zadeck <zadeck@naturalbridge.com>
1516                     Jan Hubicka  <jh@suse.cz>
1517         
1518         * ipa-pure-const.c
1519         (init_state, finish_state, set_function_state, generate_summary):
1520         New functions.
1521         (scan_stmt): Renamed from scan_function.  Changed to keep state in
1522         local static vars rather than cgraph aux field.
1523         (propagate): Renamed from static_execute. Changed to keep state in
1524         local static vars rather than cgraph aux field.
1525         (pass_ipa_pure_const): Changed from SIMPLE_IPA_PASS to IPA_PASS.
1526         * tree-pass.h (pass_ipa_pure_const): Turn into IPA_PASS.
1527
1528         2008-07-15  Kenneth Zadeck <zadeck@naturalbridge.com>
1529
1530         * tree-pass.h (pass_ipa_reference): Make into ipa_opt_pass.
1531         * ipa-reference.c (init_function_info, generate_summary, 
1532         propagate): New functions.
1533         (analyze_function):  Call init_function_info.
1534         (static_execute): Stripped into generate_summary and propagate.
1535         (pass_ipa_reference): Made into ipa_opt_pass.
1536
1537 2008-08-21  Richard Guenther  <rguenther@suse.de>
1538
1539         PR tree-optimization/37181
1540         * tree-vrp.c (extract_range_from_binary_expr): Check for NULL
1541         folding result.
1542         (extract_range_from_unary_expr): Likewise.
1543
1544 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1545
1546         * diagnostic.c (pedwarn_at): Rename as pedwarn.
1547         (pedwarn): Delete.
1548         * toplev.h (pedwarn_at): Likewise.
1549         * builtins.c: Update all calls to pedwarn.
1550         * c-lex.c: Likewise.
1551         * toplev.c: Likewise.
1552         * c-tree.h: Likewise.
1553         * c-decl.c: Likewise.
1554         * c-errors.c: Likewise.
1555         * c-typeck.c: Likewise.
1556         * c-common.c: Likewise.
1557         * c-parser.c: Likewise.
1558
1559 2008-08-20  Joseph Myers  <joseph@codesourcery.com>
1560
1561         PR target/31070
1562         * config/sparc/sparc.c (function_arg_slotno): Handle structure
1563         with MODE_VECTOR_INT mode.
1564
1565 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1566
1567         PR middle-end/179
1568         * tree-ssa.c (warn_uninit): Do not warn for variables that can be
1569         initialized outside the current module.
1570         (warn_uninitialized_var): Ignore left-hand side when walking the
1571         trees. Ignore address expressions. Examine VUSE operands in gimple
1572         statements with a variable declaration on the right-hand side.
1573
1574 2008-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
1575
1576         PR bootstrap/37155
1577         * rtlanal.c (subreg_offset_representable_p): Revert last change.
1578
1579 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1580
1581         PR 35701
1582         * c-common.c (conversion_warning): Do not warn if applying bit-and
1583         operator to unsigned constant that fits in the target type.
1584
1585 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1586
1587         PR c++/35602
1588         * c-common.c (conversion_warning): Do not warn for artificial
1589         expressions.
1590
1591 2008-08-20  Richard Guenther  <rguenther@suse.de>
1592
1593         * tree-vrp.c (op_with_constant_singleton_value_range): New function.
1594         (extract_range_from_binary_expr): Fall back to constant propagation.
1595         (extract_range_from_unary_expr): Likewise.
1596
1597 2008-08-20  Richard Guenther  <rguenther@suse.de>
1598
1599         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Do not mess
1600         with TREE_THIS_VOLATILE on shared nodes.
1601         (fold_stmt_r): Likewise.
1602
1603 2008-08-20  Jakub Jelinek  <jakub@redhat.com>
1604
1605         PR c/37171
1606         * c-parser.c (c_parser_attributes): For keywords use canonical
1607         spelling for attr_name.
1608
1609 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1610
1611         * value-prof.c (check_counter): Revert wrong call to error.
1612         
1613 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1614
1615         * profile.c: Update calls to inform.
1616         * value-prof.c: Update calls to inform.
1617         
1618 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1619
1620         * diagnostic.c (inform): Add an explicit location_t parameter.
1621         * toplev.h (inform): Update declaration.
1622         * builtins.c: Update all calls to inform.
1623         * c-common.c: Likewise.
1624         * c-decl.c: Likewise.
1625         * c-opts.c: Likewise.
1626         * c-pch.c: Likewise.
1627         * c-pragma.c: Likewise.
1628         * c-typeck.c: Likewise.
1629         * coverage.c: Likewise.
1630         * opts.c: Likewise.
1631         * toplev.c: Likewise.
1632         * tree-cfg.c: Likewise.
1633         * tree-ssa.c: Likewise.
1634
1635 2008-08-20  H.J. Lu  <hongjiu.lu@intel.com>
1636
1637         PR target/37169
1638         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): In
1639         V2DI mode, for SSE4.1, use movq instead of vector set if the
1640         second element is zero and inter-unit moves are OK.
1641
1642 2008-08-20  Richard Guenther  <rguenther@suse.de>
1643
1644         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): More
1645         properly handle conversion/copy chains after tuplification.
1646
1647 2008-08-20  Richard Guenther  <rguenther@suse.de>
1648
1649         * passes.c (init_optimization_passes): Move the second
1650         forwprop pass before alias computation.  Remove the second
1651         DCE pass.  Remove the first dominator and phi copy/const
1652         prop passes.
1653
1654 2008-08-20  Nick Clifton  <nickc@redhat.com>
1655
1656         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Always test for assembler
1657         support of this feature.  Do not assume that a sufficiently new
1658         assembler will support the feature regardless of the target type.
1659         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
1660         * configure: Regenerate.
1661
1662 2008-08-20  Richard Guenther  <rguenther@suse.de>
1663
1664         * tree-vrp.c (found_in_subgraph): Remove.
1665         (live): New global static.
1666         (live_on_edge): New function.
1667         (blocks_visited): Remove.
1668         (register_edge_assert_for_2): Use live_on_edge.
1669         (find_conditional_asserts): Remove code dealing with
1670         found_in_subgraph.  Do not walk the CFG.
1671         (find_switch_asserts): Likewise.
1672         (find_assert_locations_1): Renamed from find_assert_locations.
1673         Move finding assert locations for conditional and switch
1674         statements first.  Update live bitmap.  Do not walk the CFG.
1675         (find_assert_locations): New function.
1676         (insert_range_assertions): Remove entry of CFG walk.
1677         Adjust call to find_assert_locations.
1678         * tree-ssa-pre.c (do_regular_insertion): Ignore critical edges
1679         that only can appear because of fake exit edges but assert we
1680         never try to insert on those.
1681         (fini_pre): Do not remove fake exit edges here...
1682         (execute_pre): ...but here, before committing edge inserts.
1683
1684 2008-08-19  Richard Guenther  <rguenther@suse.de>
1685
1686         * passes.c (init_optimization_passes): Exchange store-ccp
1687         with a ccp pass.
1688
1689 2008-08-19  Rafael Espindola  <espindola@google.com>
1690
1691         * varasm.c (weak_decls): Move earlier in the file.
1692         (assemble_external): Add weak decls to the weak_decls list.
1693         (declare_weak): Don't add decls to the weak_decls list.
1694
1695 2008-08-19  H.J. Lu  <hongjiu.lu@intel.com>
1696
1697         PR target/37157
1698         * config/i386/sse.md (sse2_punpckhqdq, sse2_punpcklqdq): Moved
1699         before (sse2_shufpd_<mode>).
1700
1701 2008-08-19  Jakub Jelinek  <jakub@redhat.com>
1702
1703         PR debug/37156
1704         * pretty-print.c (pp_base_format): Deal with recursive BLOCK trees.
1705         * tree.c (block_nonartificial_location): Likewise.
1706
1707 2008-08-19  Richard Guenther  <rguenther@suse.de>
1708
1709         PR tree-optimization/35972
1710         PR tree-optimization/23094
1711         * tree-ssa-sccvn.h (vn_reference_lookup_pieces): Add maywalk
1712         parameter.
1713         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
1714         handle MISALIGNED_INDIRECT_REF.
1715         (get_ref_from_reference_ops): New helper.
1716         (vn_reference_lookup_pieces): Walk the use-def chain using the
1717         alias-oracle if requested.
1718         * tree-ssa-pre.c (phi_translate_1): Do reference lookup with
1719         walking the use-def chain.
1720         (compute_avail): But not here.
1721         (create_component_ref_by_pieces_1): Properly handle
1722         MISALIGNED_INDIRECT_REF.
1723         (do_regular_insertion): Handle fully redundant
1724         expressions after PHI-translation also for SSA_NAME values, not
1725         only constants.  Correctly use edoubleprime for that.
1726
1727 2008-08-19  Ira Rosen  <irar@il.ibm.com>
1728
1729         * tree-vectorizer.c (supportable_widening_operation): Support
1730         multi-step conversion, return the number of steps in such conversion
1731         and the required intermediate types.
1732         (supportable_narrowing_operation): Likewise.
1733         * tree-vectorizer.h (vect_pow2): New function.
1734         (supportable_widening_operation): Change argument types.
1735         (supportable_narrowing_operation): Likewise.
1736         (vectorizable_type_promotion): Add an argument.
1737         (vectorizable_type_demotion): Likewise.
1738         * tree-vect-analyze.c (vect_analyze_operations): Call 
1739         vectorizable_type_promotion and vectorizable_type_demotion with
1740         additional argument.
1741         (vect_get_and_check_slp_defs): Detect patterns.
1742         (vect_build_slp_tree): Add an argument, don't fail in case of multiple
1743         types. 
1744         (vect_analyze_slp_instance): Don't fail in case of multiple types. Call
1745         vect_build_slp_tree with correct arguments. Calculate unrolling factor
1746         according to the smallest type in the loop.
1747         (vect_detect_hybrid_slp_stmts): Include statements from patterns.
1748         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call 
1749         supportable_widening_operation with correct arguments. 
1750         * tree-vect-transform.c (vect_get_slp_defs): Allocate output vector 
1751         operands lists according to the number of vector statements in left
1752         or right node, if exists.
1753         (vect_gen_widened_results_half): Remove unused argument.
1754         (vectorizable_conversion): Call supportable_widening_operation, 
1755         supportable_narrowing_operation, and vect_gen_widened_results_half
1756         with correct arguments. 
1757         (vectorizable_assignment): Change documentation, support multiple
1758         types in SLP. 
1759         (vectorizable_operation): Likewise.
1760         (vect_get_loop_based_defs): New function.
1761         (vect_create_vectorized_demotion_stmts): Likewise.
1762         (vectorizable_type_demotion): Support loop-aware SLP and general
1763         multi-step conversion. Call vect_get_loop_based_defs and
1764         vect_create_vectorized_demotion_stmts for transformation.
1765         (vect_create_vectorized_promotion_stmts): New function.
1766         (vectorizable_type_promotion): Support loop-aware SLP and general
1767         multi-step conversion. Call vect_create_vectorized_promotion_stmts
1768         for transformation.     
1769         (vectorizable_store): Change documentation, support multiple
1770         types in SLP. 
1771         (vectorizable_load): Likewise.
1772         (vect_transform_stmt): Pass SLP_NODE to 
1773         vectorizable_type_promotion and vectorizable_type_demotion.
1774         (vect_schedule_slp_instance): Move here the calculation of number
1775         of vectorized statements for each node from...
1776         (vect_schedule_slp): ... here.
1777         (vect_transform_loop): Call vect_schedule_slp without the last
1778         argument.
1779
1780 2008-08-19  Dorit Nuzman  <dorit@il.ibm.com>
1781
1782         PR bootstrap/37152
1783         * tree-vect-transform.c (vect_create_epilog_for_reduction): Change = 
1784         to == in assert statement.
1785         (vectorizable_reduction): Fix typo.
1786
1787 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
1788
1789         PR bootstrap/37153
1790         * value-prof.c (check_counter): Dereference pointer to overall
1791         count when printing it.
1792
1793 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
1794
1795         * profile.h: Really add it.
1796
1797 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
1798
1799         * mcf.c: Really add it.
1800
1801 2008-08-18  Paul Yuan  <yingbo.com@gmail.com>
1802             Vinodha Ramasamy  <vinodha@google.com>
1803
1804         * cgraph.c (cgraph_edge): Handle inconsistent counts when setting
1805         count_scale.
1806         * value-prof.c (check_counter): Fix the counter if
1807         flag_profile_correction is true.
1808         (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
1809         tree_mod_subtract_transform):
1810         Follow check_counter parameter change.
1811         * common.opt (fprofile-correction): New option.
1812         * mcf.c: New file.
1813         * profile.h: Likewise.
1814         * profile.c (edge_info, EDGE_INFO): Moved to new file profile.h.
1815         (sum_edge_counts, is_edge_inconsistent, correct_negative_edge_counts,
1816         is_inconsistent, set_bb_counts, read_profile_edge_counts): New
1817         functions.
1818         (compute_branch_probabilities): Refactored. Invokes mcf_smooth_cfg if
1819         flag_profile_correction is set.
1820
1821 2008-08-18  Richard Sandiford  <rdsandiford@googlemail.com>
1822
1823         * rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
1824
1825 2008-08-18  Tomas Bily  <tbily@suse.cz>
1826
1827         * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P.
1828         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Use
1829         CONVERT_EXPR_P.
1830         * tree-data-ref.c (split_constant_offset_1): Likewise.
1831         * tree-inline.c (estimate_operator_cost): Use CASE_CONVERT.
1832         * tree-sra.c (sra_walk_expr): Likewise.
1833         * matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise.
1834         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
1835         * gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P.
1836         * tree-ssa-structalias.c (find_func_aliases, find_func_aliases):
1837         Likewise.
1838         * gimple.c (gimple_assign_unary_nop_p): Likewise.
1839         * tree-vect-transform.c (vectorizable_type_demotion)
1840         (vectorizable_type_promotion): Likewise.
1841         * tree-inline.c (expand_call_inline): 
1842         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
1843         (forward_propagate_addr_expr_1, forward_propagate_comparison)
1844         (tree_ssa_forward_propagate_single_use_vars): Likewise.
1845         * expr.c (expand_expr_real_1): Likewise.
1846         * tree-ssa-dom.c (hashable_expr_equal_p, iterative_hash_hashable_expr)
1847         (gimple_assign_unary_useless_conversion_p): Likewise.
1848         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
1849         * tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise.
1850         * fold-const.c (fold_unary): Likewise.
1851         * tree.h (CONVERT_EXPR_P): Likewise.
1852         * tree.c (simple_cst_equal, iterative_hash_expr): Likewise.
1853         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
1854         * tree-vrp.c: 
1855         (register_edge_assert_for_2, extract_range_from_unary_expr)
1856         (register_edge_assert_for_1): Likewise.
1857         
1858 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1859
1860         * real.h (dconst_e, dconst_third, dconst_sqrt2, dconst_e_ptr,
1861         dconst_third_ptr, dconst_sqrt2_ptr): Declare.
1862         (enum real_value_const): Delete.
1863         (get_real_const): Delete.
1864         * real.c (get_real_const): Delete.
1865         (dconst_e_ptr): Define.
1866         (dconst_third_ptr): Define.
1867         (dconst_sqrt2_ptr): Define.
1868         * builtins.c: Update all callers.
1869
1870 2008-08-18  Richard Guenther  <rguenther@suse.de>
1871
1872         * tree-ssa-reassoc.c (reassociate_bb): Properly reset the
1873         statement iterator after statement removal.
1874
1875 2008-08-18  Andreas Tobler  <a.tobler@schweiz.org>
1876
1877         * config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.
1878         (detect_processor_freebsd): Likewise.
1879         (host_detect_local_cpu): Call newly added functions for FreeBSD.
1880
1881 2008-08-18  Richard Guenther  <rguenther@suse.de>
1882
1883         * tree-cfg.c (verify_types_in_gimple_assign): Verify copies
1884         and loads have the correct types.
1885
1886 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1887
1888         PR cpp/7263
1889         * c-opts.c (cpp_opts): Remove static.
1890         * c-parser.c (cpp_opts): Declare it extern.
1891         (disable_extension_diagnostics): Handle cpp options.
1892         (enable_extension_diagnostics): Likewise.
1893
1894 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1895
1896         * diagnostics.c (permerror_at): Rename as permerror.
1897         (permerror): Delete.
1898         * toplev.h: Likewise.
1899
1900 2008-08-18  Richard Guenther  <rguenther@suse.de>
1901
1902         * passes.c (init_optimization_passes): Remove cleanup_cfg1,
1903         sdse1 and addressables2 passes.  Replace dce1 with cddce1.
1904         Move call_cdce before build_alias.  Move copyrename2,
1905         cunrolli and ccp2 beafore build_alias.  Re-add addressable2
1906         right after final inlining.
1907         * tree-cfg.c (build_gimple_cfg): Do not dump function here.
1908         (pass_build_cfg): But instead via TODO_dump_func.
1909
1910 2008-08-18  Richard Guenther  <rguenther@suse.de>
1911
1912         * tree-sra.c (generate_element_init_1): Deal with NULL constructor
1913         element index.
1914         (scalarize_init): If we failed to generate some initializers
1915         do not generate zeros for not instantiated members.  Instead
1916         rely on the copy out.
1917         * tree-ssa-operands.c (get_addr_dereference_operands): Warn
1918         about missing flow-sensitive alias info only if we have
1919         aliases computed.
1920
1921 2008-08-17  Nick Clifton  <nickc@redhat.com>
1922
1923         * doc/extend.texi (Function Attributes): Fix typo in description
1924         if hot function attribute.
1925
1926 2008-08-17  Daniel Jacobowitz  <dan@codesourcery.com>
1927             Richard Sandiford  <rdsandiford@googlemail.com>
1928
1929         * doc/install.texi (--with-mips-plt): Document.
1930         * doc/invoke.texi (-mplt, -mno-plt): Document.
1931         * config.gcc (mips*-*-*): Add mips-plt to supported_defaults
1932         and handle ${with_mips_plt}.
1933         * config/mips/mips.opt (mplt): New option.
1934         * config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
1935         (TARGET_ABICALLS_PIC2): Likewise.
1936         (TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
1937         (OPTION_DEFAULT_SPECS): Add a mips-plt entry.
1938         (ASM_SPEC): Use !mabi=* instead of !mabi*.
1939         (MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
1940         to decide whether to output ".option picX" directives.
1941         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
1942         Pass -call_nonpic rather than -KPIC for -mplt.
1943         (BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
1944         on the command line.  Also remove it when -mabi=64 is used without
1945         -msym32.
1946         * config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
1947         * config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
1948         TARGET_ABICALLS_PIC0.
1949         (mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
1950         TARGET_ABICALLS.
1951         (mips16_build_function_stub): Only output ".option pic" directives
1952         and PIC stubs if TARGET_ABICALLS_PIC2.  Call through $25 instead of $1.
1953         (mips16_build_call_stub): Fix comment and remove redundant
1954         ".set at"/"set .noat" directives.
1955         (mips_function_rodata_section): Use the default behaviour for
1956         TARGET_ABSOLUTE_ABICALLS.
1957         (mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
1958         (mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
1959         (mips_restore_gp): Do nothing if the current function doesn't use
1960         a global pointer.
1961         (mips_expand_prologue): Only save $gp if the current function uses it.
1962         Use a normal move for TARGET_ABICALLS_PIC0.
1963         (mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.
1964
1965 2008-08-17  Richard Sandiford  <rdsandiford@googlemail.com>
1966
1967         * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest
1968         of function when handling GLOBAL_POINTER_REGNUM.
1969
1970 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
1971
1972         PR ada/20548
1973         * common.opt (-fstack-check): Do not declare the variable here.
1974         (-fstack-check=): New option variant.
1975         * doc/invoke.texi (Code Gen Options): Document it.
1976         * expr.h (STACK_OLD_CHECK_PROTECT): New macro.
1977         (STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used.
1978         (STACK_CHECK_STATIC_BUILTIN): New macro.
1979         * doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN.
1980         * opts.c: Include expr.h.
1981         (common_handle_option) <OPT_fold_stack_check_>: New case.
1982         <OPT_fstack_check>: Likewise.
1983         * calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT
1984         consistently in the test for variable-sized types.  Adjust for
1985         new behaviour of flag_stack_check.
1986         * explow.c: Include except.h.
1987         (allocate_dynamic_stack_space): Do not take into account
1988         STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking.
1989         * function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test
1990         for variable-sized parameters.  Treat all parameters whose size is
1991         greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic
1992         stack checking is enabled.
1993         * gimplify.c (gimplify_decl_expr): Treat non-static objects whose
1994         size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized
1995         if generic stack checking is enabled.
1996         (expand_function_end): Adjust for new behaviour of flag_stack_check.
1997         * reload1.c (reload): Likewise.
1998         * stmt.c (expand_decl): Assert that all automatic variables have
1999         fixed size at this point and remove dead code.
2000         * flags.h (stack_check_type): New enumeration type.
2001         (flag_stack_check): Declare.
2002         * toplev.c (flag_stack_check): New global variable.
2003         * Makefile.in (opts.o): Add dependency on EXPR_H.
2004         (explow.o): Add dependency on except.h.
2005
2006 2008-08-16  Andy Hutchinson  <hutchinsonandy@aim.com>
2007
2008         * config/avr/avr.c (avr_override_options): Reduce value of 
2009         PARAM_INLINE_CALL_COST.
2010
2011 2008-08-15  Eric Botcazou  <ebotcazou@adacore.com>
2012
2013         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: When converting
2014         to BLKmode, try to fetch an inner memory reference.  Use 'mode' in
2015         lieu of TYPE_MODE (type) throughout.
2016
2017 2008-08-15  Joseph Myers  <joseph@codesourcery.com>
2018
2019         * config/arm/arm.c (add_minipool_backward_ref): Check for
2020         8-byte-aligned entries in second case of forcing insertion after a
2021         particular entry.  Change third case to avoid inserting
2022         non-8-byte-aligned entries before 8-byte-aligned ones.
2023
2024 2008-08-15  Richard Guenther  <rguenther@suse.de>
2025
2026         * tree-ssa-ccp.c (maybe_fold_offset_to_reference): Do not
2027         strip components for unknown size accesses.
2028
2029 2008-08-15  Wolfgang Gellerich  <gellerich@de.ibm.com>
2030
2031         * config/s390/2097.md New file.
2032         * config/s390/s390.md ("z10prop" attribute): Define none,
2033         z10_super, z10_super_E1, z10_super_A1, z10_super_c,
2034         z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
2035         z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
2036         possible values and apply them to insns as appropriate.
2037         ("type" attribute): Removed itof and added ftrunctf,ftruncdf,
2038         ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
2039         fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
2040         fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible
2041         values.
2042         ("bfp" mode attribute): Removed.  Every occurence replaced
2043         with <mode>.
2044         * config/s390/s390.c (struct "z10_cost"): Updated entries.
2045         * config/s390/2084.md (insn_reservation "x_itof"): Updated
2046           type attribute.
2047
2048 2008-08-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2049
2050         PR c/28152
2051         * c-parser.c (c_lex_one_token): Do not store the canonical spelling
2052         for keywords.
2053         
2054 2008-08-14  Dorit Nuzman  <dorit@il.ibm.com>
2055
2056         * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an
2057         additional argument. Support reduction when duplication is needed due
2058         to data-types of different sizes in the loop.
2059         (get_initial_def_for_induction): Fix printout.
2060         (vect_get_vec_def_for_stmt_copy): Support case where the
2061         vec_stmt_for_operand is a phi node.
2062         (vectorizable_reduction): Support reduction when duplication is needed 
2063         due to data-types of different sizes in the loop.
2064         (vectorizable_call): Remove restriction to not vectorize in case we 
2065         have data-types of different sizes in the loop.
2066         (vectorizable_conversion): Likewise.
2067         (vectorizable_operation): Likewise.
2068         (vectorizable_type_demotion): Likewise.
2069         (vectorizable_type_promotion): Likewise.
2070         (vectorizable_induction): Add restriction to not vectorize in case 
2071         we have data-types of different sizes in the loop.
2072
2073 2008-08-14  Christophe Saout  <christophe@saout.de>
2074             Uros Bizjak  <ubizjak@gmail.com>
2075
2076         PR target/37101
2077         * config/i386/sse.md (vec_concatv2di): Remove movlps alternative.
2078         (*vec_concatv2di_rex64_sse4_1): Ditto.
2079         (*vec_concatv2di_rex64_sse): Ditto.
2080
2081 2008-08-14  Jakub Jelinek  <jakub@redhat.com>
2082
2083         PR middle-end/37103
2084         * fold-const.c (fold_widened_comparison): Do not allow
2085         sign changes that change the result even if shorter type
2086         is wider than arg1_unw's type.
2087
2088 2008-08-13  Kazu Hirata  <kazu@codesourcery.com>
2089
2090         * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c:
2091         Skip if the multilib testing specifies -march that does not
2092         agree with the one specified in the testcase.
2093
2094 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
2095
2096         * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or
2097         zero extend SImode values being converted to TFmode before passing
2098         to libcalls.
2099
2100 2008-08-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2101
2102         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
2103         __PPU__ when targeting the Cell/B.E. PPU processor.
2104
2105 2008-08-13  Eric Botcazou  <ebotcazou@adacore.com>
2106
2107         * gimple.h (gimple_call_set_chain): Accept SSA variables.
2108         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>:
2109         Rematerialize the static chain, if any.
2110         * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the
2111         static chain.
2112
2113 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
2114
2115         * dwarf2out.c (dwarf_stack_op_name): Remove prototype.
2116         (new_loc_descr): Likewise.
2117         (add_loc_descr): Likewise.
2118         (size_of_loc_descr): Likewise.
2119         (size_of_locs): Likewise.
2120         (output_loc_operands): Likewise.
2121         (output_loc_sequence): Likewise.
2122         (new_reg_loc_descr): New.
2123         (build_cfa_loc): Use it.
2124         (build_cfa_aligned_loc): Likewise.
2125         (one_reg_loc_descriptor): Likewise.
2126         (based_loc_descr): Likewise.
2127
2128 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2129
2130         PR 30551
2131         * doc/invoke.texi (Wmain): Update.
2132         * c-decl.c (start_decl): warn_main is only 0 or 1.
2133         (start_function): Likewise. Fix formatting.
2134         (finish_function): Delete redundant warning.
2135         * c.opt (Wmain): Add Var(warn_main) and Init(-1).
2136         * c-opts (c_common_handle_option): -Wall only has effect if
2137         warn_main is uninitialized. OPT_Wmain is automatically
2138         handled. -pedantic also enables Wmain.
2139         (c_common_post_options): Handle all logic for Wmain here.
2140         * c-common.c (warn_main): Delete.
2141         (check_main_parameter_types): Make pedwarns conditional on
2142         OPT_Wmain.
2143         * c-common.h (warn_main): Delete.
2144
2145 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
2146
2147         PR middle-end/36701
2148         * expr.c (emit_group_store): Allocate stack temp with the
2149         largest alignment when copying from register to stack.
2150
2151 2008-08-13  Richard Guenther  <rguenther@suse.de>
2152
2153         * tree.h (maybe_fold_offset_to_address): Declare.
2154         * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit.
2155         (ccp_fold): Handle pointer conversions the same as fold_stmt.
2156         Likewise for POINTER_PLUS_EXPR.
2157         (maybe_fold_offset_to_reference): Enable disabled code.
2158         (maybe_fold_offset_to_address): New function.
2159         (fold_stmt_r): Use it.
2160         (fold_gimple_assign): Likewise.
2161         * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address.
2162         (gimplify_expr): Likewise.
2163
2164 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2165
2166         * toplev.h (pedwarn_at): Fix declaration.
2167         
2168 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
2169
2170         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
2171         LINK_SPEC): Use %R in -Y P argument.
2172
2173 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2174
2175         PR c/15236
2176         * diagnostic.c (pedwarn_at): New.
2177         * toplev.h (pedwarn_at): Declare.
2178         * c-tree.h (build_enumerator): Update declaration.
2179         * c-decl.c (finish_enum): Update comment.
2180         (build_enumerator): Take a location parameter. Give a pedwarn but do
2181         not perform any conversion.
2182         * c-parser.c (c_parser_enum_specifier): Set correct location for
2183         enumerator.
2184
2185 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2186
2187         PR 35635
2188         * c-common.c (conversion_warning): Use a switch. Ignore boolean
2189         expressions except for conversions to signed:1 bitfields. Handle
2190         COND_EXPR with constant operands.
2191         
2192 2008-08-13  Richard Guenther  <rguenther@suse.de>
2193
2194         PR tree-optimization/15255
2195         * tree-ssa-reassoc.c (linearize_expr_tree): Declare.
2196         (struct oecount_s): New struct and VEC types.
2197         (cvec): New global.
2198         (oecount_hash): New function.
2199         (oecount_eq): Likewise.
2200         (oecount_cmp): Likewise.
2201         (zero_one_operation): New function.
2202         (build_and_add_sum): Likewise.
2203         (undistribute_ops_list): Perform un-distribution of multiplication
2204         and division on the chain of summands.
2205         (should_break_up_subtract): Also break up subtracts for factors.
2206         (reassociate_bb): Delete dead visited statements.
2207         Call undistribute_ops_list.  Re-sort and optimize if it did something.
2208         * passes.c (init_optimization_passes): Move DSE before
2209         reassociation.
2210         * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle
2211         PHI nodes.
2212
2213 2008-08-12  Janis Johnson  <janis187@us.ibm.com>
2214
2215         * doc/invoke.texi (-fipa-pta): Say the option is experimental.
2216
2217         * doc/invoke.texi: Revert unintended checkin.
2218
2219 2008-08-12  Nathan Froyd  <froydnj@codesourcery.com>
2220
2221         PR libgomp/26165
2222         * gcc.c (include_spec_function): Tweak call to find_a_file.
2223
2224 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
2225
2226         PR middle-end/37014
2227         * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
2228         and TRUTH_ORIF_EXPR.
2229         * dojump.c (do_jump): Likewise.
2230
2231         PR tree-optimization/37084
2232         * tree-inline.c (copy_bb): Call gimple_regimplify_operands
2233         if id->regimplify, don't assume stmt is a cast assignment.
2234
2235 2008-08-12  Anatoly Sokolov  <aesok@post.ru>
2236
2237         * final.c (final_scan_insn): Use app_enable/app_disable functions.
2238
2239 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2240
2241         PR bootstrap/37097
2242         * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced
2243         by last change.
2244
2245 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2246
2247         * defaults.h (TARGET_FLOAT_FORMAT): Remove.
2248         (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove.
2249
2250         * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove.
2251         * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove.
2252         * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove.
2253         * config/score/score.h (TARGET_FLOAT_FORMAT): Remove.
2254         * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove.
2255
2256         * doc/tm.texi (Storage Layout): Remove documentation for
2257         TARGET_FLOAT_FORMAT.
2258
2259         * simplify-rtx.c (simplify_binary_operation_1): Replace
2260         TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks.
2261
2262 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2263
2264         * real.h (struct real_format): New member has_sign_dependent_rounding.
2265         * real.c (ieee_single_format, mips_single_format, motorola_single_format,
2266         spu_single_format, ieee_double_format, mips_double_format,
2267         motorola_double_format, ieee_extended_motorola_format,
2268         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
2269         ieee_extended_intel_96_round_53_format, ibm_extended_format,
2270         mips_extended_format, ieee_quad_format, mips_quad_format,
2271         vax_f_format, vax_d_format, vax_g_format): Initialize it.
2272         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
2273
2274         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
2275         MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
2276         * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
2277         MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
2278         (ROUND_TOWARDS_ZERO): Likewise.
2279
2280         * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion.
2281         (FLOAT_MODE_FORMAT): New macro.
2282         (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ...
2283         (MODE_COMPOSITE_P): ... this new macro.
2284         (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
2285         MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros.
2286         * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode.
2287
2288         * flags.h: Include "real.h".
2289
2290         * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of
2291         REAL_MODE_FORMAT_COMPOSITE_P.
2292         * simplify-rtx.c (simplify_const_binary_operation): Likewise.
2293
2294         * doc/tm.texi (Storage Layout): Remove documentation of
2295         MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
2296         MODE_HAS_SIGN_DEPENDENT_ROUNDING.  Update documentation of
2297         ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify
2298         they only apply to libgcc2.a.
2299
2300 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2301
2302         * config/spu/float_disf.c: New file.
2303         * config/spu/float_unsdisf.c: New file.
2304         * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them.
2305         (LIB2FUNCS_EXCLUDE): Define.
2306
2307 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2308             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2309
2310         * real.h (struct real_format): New member round_towards_zero.
2311         * real.c (round_for_format): Respect fmt->round_towards_zero.
2312         (ieee_single_format, mips_single_format, motorola_single_format,
2313         spu_single_format, ieee_double_format, mips_double_format,
2314         motorola_double_format, ieee_extended_motorola_format,
2315         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
2316         ieee_extended_intel_96_round_53_format, ibm_extended_format,
2317         mips_extended_format, ieee_quad_format, mips_quad_format,
2318         vax_f_format, vax_d_format, vax_g_format): Initialize it.
2319         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
2320
2321         * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of
2322         real_format to choose rounding mode when calling MPFR functions.
2323         (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise.
2324         (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise.
2325
2326         * real.h (real_to_decimal_for_mode): Add prototype.
2327         * real.c (real_to_decimal_for_mode): Renames old real_to_decimal.
2328         Respect target rounding mode when generating decimal representation.
2329         (real_to_decimal): New stub for backwards compatibility.
2330         * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use
2331         real_to_decimal_for_mode instead of real_to_decimal.
2332
2333         * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New.
2334
2335 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2336             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2337
2338         * real.c (spu_single_format): New variable.
2339         * real.h (spu_single_format): Declare.
2340
2341         * config/spu/spu.c (spu_override_options): Install SFmode format.
2342         (spu_split_immediate): Use integer mode to operate on pieces of
2343         floating-point values in all cases.
2344
2345         * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New.
2346         ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND.
2347         ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE.
2348
2349 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2350
2351         * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA.
2352
2353 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2354
2355         * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define.
2356
2357 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
2358
2359         PR c++/36688
2360         * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY
2361         on the VAR_DECL instead of TYPE_READONLY on its type.
2362
2363 2008-08-12  Ira Rosen  <irar@il.ibm.com>
2364
2365         * tree-vectorizer.c: Depend on langhooks.h.
2366         (supportable_widening_operation): Add two arguments. Support double
2367         type conversions.
2368         (supportable_narrowing_operation): Likewise.
2369         * tree-vectorizer.h (supportable_widening_operation): Add two 
2370         arguments.
2371         (supportable_narrowing_operation): Likewise.
2372         * tree-vect-patterns.c (vect_recog_widen_mult_pattern) : Call
2373         supportable_widening_operation with correct arguments.
2374         * tree-vect-transform.c (vectorizable_conversion): Likewise.
2375         (vectorizable_type_demotion): Support double type conversions.
2376         (vectorizable_type_promotion): Likewise.
2377         * Makefile.in (tree-vectorizer.o): Depend on langhooks.h.
2378
2379 2008-08-11  Michael Matz  <matz@suse.de>
2380
2381         * i386/i386.c (override_options): Move initialisation from
2382         flag_schedule_insns_after_reload to here from ...
2383         (optimization_options): ... here.
2384
2385 2008-08-11  Jakub Jelinek  <jakub@redhat.com>
2386
2387         PR rtl-optimization/36998
2388         * dwarf2out.c (compute_barrier_args_size_1,
2389         compute_barrier_args_size): Temporarily remove assertions.
2390
2391 2008-08-10  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2392
2393         PR middle-end/20644
2394         * tree-ssa.c (struct walk_data): Add new flag
2395         warn_possibly_uninitialized.
2396         (warn_uninitialized_var): Use it.
2397         (warn_uninitialized_vars): New.
2398         (execute_early_warn_uninitialized): Call it.
2399         (execute_late_warn_uninitialized): Likewise.
2400
2401 2008-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2402
2403         PR middle-end/36238
2404         * reload1.c (gen_reload): Guard calls to get_secondary_mem
2405         for memory subregs.
2406
2407 2008-08-09  Jan Hubicka  <jh@suse.cz>
2408
2409         PR target/37055
2410         * optabs.c (maybe_emit_unop_insn): Remove produced code if
2411         expansion failed.
2412         (expand_fix): Be prepared for expansion to fail.
2413         (expand_sfix_optab): Remove instructions if expansion failed.
2414
2415 2008-08-09  Anatoly Sokolov  <aesok@post.ru>
2416
2417         * config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to
2418         avr31 architecture.
2419         * config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.).
2420         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
2421
2422 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
2423
2424         * config.gcc (mips*-*-linux*, mips64*-*-linux*): Add
2425         mips/t-libgcc-mips16 to tmake_file.
2426         * config/mips/mips-protos.h (mips_call_type): New enum.
2427         (mips_pic_base_register, mips_got_load): Declare.
2428         (mips_restore_gp): Take an rtx argument.
2429         (mips_use_pic_fn_addr_reg_p): Declare.
2430         (mips_expand_call): Replace the sibcall_p argument with
2431         a mips_call_type argument.  Add a lazy_p parameter.
2432         (mips_split_call): Declare.
2433         * config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro.
2434         (MIPS16_PIC_TEMP): Likewise.
2435         (reg_class): Delete M16_NA_REGS.
2436         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
2437         (SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros.
2438         (mips_split_hi_p): Declare.
2439         * config/mips/mips.c (mips_split_hi_p): New array.
2440         (mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS.
2441         (mips_got_symbol_type_p): New function.
2442         (mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P.
2443         (mips16_stub_function_p): New function.
2444         (mips16_local_function_p): Likewise.
2445         (mips_use_pic_fn_addr_reg_p): Likewise.
2446         (mips_cannot_force_const_mem): Return false for HIGHs.
2447         Extend CONST_INT and symbolic handling to MIPS16, using
2448         mips_symbol_insns to check that the base symbol type is a
2449         legitimate constant.  Reject GOT-based constants if
2450         TARGET_MIPS16_PCREL_LOADS.
2451         (mips_const_insns): Check targetm.cannot_force_const_mem when
2452         decomposing a symbolic base and a large offset.
2453         (mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters.
2454         When calling a function that needs $25 from MIPS16 code,
2455         move the target address into $25 separately and add a USE
2456         to the call insn.
2457         (mips16_gp_pseudo_reg): Insert the initializer immediately
2458         before the first real insn.
2459         (mips_pic_base_register, mips_got_load): New functions.
2460         (mips_split_symbol): Generalize the name of the LO_SUM_OUT
2461         parameter to LOW_OUT.  Say that it can be any valid SET_SRC
2462         when splitting a load-address operation.  Split SYMBOL_GOT_DISP
2463         constants and highs of SYMBOL_GOT_PAGE_OFST constants.
2464         (mips_call_tls_get_addr): Update the call to mips_expand_call,
2465         also passing NULL_RTX rather than const0_rtx as the aux argument.
2466         (mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p
2467         instead of TARGET_EXPLICIT_RELOCS.
2468         (mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P.
2469         (mips_load_call_address): Replace the sibcall_p argument with
2470         a mips_call_type argument.  Use mips_got_load.
2471         (mips16_local_alias): New structure.
2472         (mips16_local_aliases): New variable.
2473         (mips16_local_aliases_hash): New function.
2474         (mips16_local_aliases_eq): Likewise.
2475         (mips16_local_alias): Likewise.
2476         (mips16_stub_function): Likewise.
2477         (mips16_build_function_stub): Create a local alias for the target
2478         function.  Handle TARGET_ABICALLS.  For PIC abicalls, emit a
2479         .cpload directive and an R_MIPS_NONE relocation for the target
2480         function, then load the alias rather than the function itself.
2481         Wrap the non-PIC abicalls version in ".option pic0/.option pic2".
2482         (mips16_copy_fpr_return_value): Use mips16_stub_function and
2483         mips_expand_call.  Set SYMBOL_REF_BIND_NOW on the symbol.
2484         (mips16_build_call_stub): Replace the FN parameter with an
2485         FN_PTR parameter.  Force the address into a register if it
2486         isn't a call_insn_operand; don't rely on the caller to do this.
2487         If a call to a locally-defined and locally-binding MIPS16
2488         function must be made indirectly, redirect the call to the
2489         function's local alias.  Use mips16_stub_function_p,
2490         mips16_stub_function, mips_expand_call and use_reg.
2491         Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols.
2492         Use explicit %hi and %lo accesses where possible.
2493         Use MIPS_CALL to generate the correct code form of a
2494         jal instruction.  Add clobbers of $18 instead of uses.
2495         Update the call to mips_emit_call_insn.
2496         (mips_expand_call): Replace the SIBCALL_P argument with a
2497         mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value.
2498         Take a LAZY_P parameter.  Call mips16_build_call_stub first,
2499         allowing it to modify the call address.  Update the calls to
2500         mips_load_call_address and mips_emit_call_insn.
2501         (mips_split_call): New function.
2502         (mips_init_relocs): Clear mips_split_hi_p.  Only use %gp_rel if
2503         !TARGET_MIPS16.  Split SYMBOL_GOT_DISP, and the high parts of
2504         SYMBOL_GOT_PAGE_OFST, for MIPS16 code.
2505         (mips_global_pointer): Check mips16_cfun_returns_in_fpr_p.
2506         (mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM
2507         if TARGET_MIPS16.
2508         (mips_cprestore_slot): New function.
2509         (mips_restore_gp): Take a TEMP parameter.  Handle TARGET_MIPS16
2510         and use mips_cprestore_slot.
2511         (mips_output_function_prologue): Handle TARGET_MIPS16 for
2512         LOADGP_OLDABI.
2513         (mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16,
2514         then use a copygp_mips16 instruction to set up $28.
2515         (mips_expand_prologue): Initialize the cprestore slot for MIPS16 too.
2516         (mips16_lay_out_constants): Call split_all_insns_noflow.
2517         (mips_reorg_process_insns): Explicitly set all_noreorder_p to
2518         false if TARGET_MIPS16.
2519         (mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16.
2520         (mips_output_mi_thunk): Use mips_got_symbol_type_p.  Use the
2521         mips_dangerous_for_la25_p approach for MIPS16 PIC calls too.
2522         (mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for
2523         MIPS16 code.  Allow MIPS16 o32 PIC.
2524         (mips_override_options): Allow MIPS16 o32 PIC.
2525         * config/mips/mips.md: Lower CONST_GP_P moves into register moves
2526         after reload if TARGET_USE_GOT.
2527         (UNSPEC_COPYGP): New constant.
2528         (length): Use a default length of 8 for MIPS16 GOT loads.
2529         (*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT.
2530         (*got_page<mode>): Check mips_split_hi_p.
2531         (*got_disp<mode>, *got_page<mode>): Use mips_got_load.
2532         (unspec_got<mode>, unspec_call<mode>): New expanders.
2533         (load_got<mode>, load_call<mode>): Remove the length attributes.
2534         Use a got attribute instead of a type attribute.
2535         (copygp_mips16): New insn.
2536         (restore_gp): Add a scratch clobber and pass it to mips_restore_gp.
2537         (load_call<mode>): Use a "d" constraint instead of an "r" constraint.
2538         (sibcall, sibcall_value, call, call_value): Update the calls
2539         to mips_expand_call.
2540         (call_internal, call_value_internal): Use mips_split_call.
2541         (call_value_multiple_internal): Likewise.
2542         (call_split): Move after call_internal (the insn it is split from).
2543         (call_internal_direct, call_value_internal_direct): Turn into
2544         define_insn_and_splits.  Split if TARGET_SPLIT_CALLS.
2545         (call_direct_split, call_value_direct_split): New patterns.
2546         * config/mips/constraints.md (c): Handle TARGET_MIPS16 first
2547         and use M16_REGS instead of M16_NA_REGS.
2548         * config/mips/predicates.md (const_call_insn_operand): Replace
2549         the TARGET_ABSOLUTE_ABICALLS-based check with a more general
2550         mips_use_pic_fn_addr_reg_p check.
2551         (move_operand): Reject HIGHs if mips_split_hi_p.
2552         * config/mips/mips16.S: Assembly as empty if the ABI is not suitable.
2553         (__mips16_floatunsisf): Inline __mips16_floatsisf.
2554         (CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25.
2555         * config/mips/libgcc-mips16.ver: New file.
2556         * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add
2557         $(srcdir)/config/mips/libgcc-mips16.ver.
2558
2559 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
2560
2561         * config/mips/mips.c (mips_unspec_address_offset): Move earlier in file.
2562         (mips_unspec_address, mips_unspec_offset_high): Likewise.
2563         (mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise.
2564         (mips16_cfun_returns_in_fpr_p): Likewise.
2565
2566 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
2567
2568         * config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary.
2569         * config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2
2570         rather than 4 to PC.
2571
2572 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
2573
2574         * config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
2575         (FUNCTION_PROFILER): Save the static chain pointer into $2
2576         beforehand and restore it aftewards.
2577         (TRAMPOLINE_TEMPLATE): Adjust accordingly.  Load the target
2578         address directly into $25 and call the function through $25;
2579         do not clobber $3.  Pad the DImode version to cover the space
2580         left by the deleted $25 <- $3 move.
2581         (TRAMPOLINE_SIZE): Adjust the size of the SImode version after
2582         the removal of the $25 <- $3 move.
2583         (INITIALIZE_TRAMPOLINE): Update offsets accordingly.
2584         * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
2585
2586 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
2587             Daniel Jacobowitz  <dan@codesourcery.com>
2588
2589         * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete.
2590         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete.
2591         (ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete.
2592         * config/mips/mips.c (mips_start_function_definition): New function.
2593         (mips_end_function_definition): Likewise.
2594         (mips_output_function_prologue): Use mips_start_function_definition.
2595         (mips_output_function_epilogue): Use mips_end_function_definition.
2596         (build_mips16_function_stub): Use mips_start_function_definition
2597         and mips_end_function_definition.
2598         (build_mips16_call_stub): Likewise.
2599
2600 2008-08-09  Richard Guenther  <rguenther@suse.de>
2601
2602         * gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
2603         * gimple.h (gimple_call_fn): Adjust comment.
2604         (gimple_call_set_fndecl): New function.
2605         (gimple_call_fndecl): Adjust for GIMPLE_CALL no
2606         longer having bare FUNCTION_DECL operand.
2607         (gimple_call_return_type): Likewise.
2608         * tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL.
2609
2610         * value-prof.c (gimple_divmod_fixed_value): Do not emit labels.
2611         (gimple_mod_pow2): Likewise.
2612         (gimple_mod_subtract): Likewise.
2613         (gimple_ic): Likewise.
2614         (gimple_stringop_fixed_value): Likewise.
2615         (gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no
2616         longer having bare FUNCTION_DECL operand.
2617         * ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl.
2618         * omp-low.c (optimize_omp_library_calls): Likewise.
2619         * cgraphunit.c (update_call_expr): Likewise.
2620         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
2621         (execute_convert_to_rsqrt): Likewise.
2622         * cfgexpand.c (gimple_to_tree): Simplify.
2623         (release_stmt_tree): Fix for GIMPLE_CALL no longer having
2624         bare FUNCTION_DECL operand.
2625         * tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type.
2626         (convert_gimple_call): Use gimple_call_fndecl.
2627         * c-common.c (c_warn_unused_result): Likewise.
2628
2629 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2630
2631         PR c/17880
2632         * c-typeck.c (digest_init): Call verify_sequence_points from here.
2633         (c_finish_return): Likewise.
2634         (c_start_case): Likewise.
2635         * c-common.c (warn_for_collisions_1): Use explicit location in
2636         warning.
2637         * c-parser.c (c_parser_condition): New. Call
2638         verify_sequence_points.
2639         (c_parser_paren_condition): Call c_parser_condition.
2640         (c_parser_for_statement): Call c_parser_condition.
2641
2642 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2643
2644         PR 36901
2645         * diagnostic.def (DK_PEDWARN, DK_PERMERROR): New.  
2646         * diagnostic.c (pedantic_warning_kind, permissive_error_kind):
2647         Moved from diagnostic.h
2648         (diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and
2649         DK_PERMERROR.
2650         (emit_diagnostic): New.
2651         (warning0, pedwarn0): Delete.
2652         (warning, warning_at, pedwarn, permerror): Return bool.  
2653         * diagnostic.h (pedantic_warning_kind, permissive_error_kind):
2654         Moved to diagnostic.c.
2655         (struct diagnostic_context): Use correct type for
2656         classify_diagnostic.
2657         (diagnostic_report_diagnostic): Update declaration.
2658         (emit_diagnostic): Declare.
2659         * errors.c (warning): Return bool.  
2660         * errors.h (warning): Update declaration.
2661         * toplev.h (warning0, pedwarn0): Delete.
2662         (warning, warning_at, pedwarn, permerror): Return bool.
2663         * c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN.
2664         * c-decl.c (locate_old_decl): Delete 'diag' argument. Always use
2665         inform. Update all calls.
2666         (diagnose_mismatched_decls): Check return value of warning/pedwarn
2667         before giving informative note.
2668         (implicit_decl_warning): Likewise.  
2669         * c-typeck.c (build_function_call): Likewise.  
2670         * tree-sssa.c (warn_uninit): Likewise.  
2671         * builtins.c (gimplify_va_arg_expr): Likewise.
2672
2673 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2674
2675         PR 7651
2676         * doc/invoke.texi (-Wextra): Move warning from here...
2677         (-Wuninitialized): ... to here.
2678         
2679 2008-08-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2680
2681         PR 28875
2682         * flags.h (set_Wunused): Delete
2683         * toplev.c (process_options): Handle Wunused flags here.
2684         * opts.c (maybe_warn_unused_parameter): Delete.
2685         (common_handle_option): Replace set_Wunused by warn_unused.
2686         (set_Wextra): Do not handle Wunused-parameter here.
2687         (set_Wunused): Delete.
2688         * c-opts.c (c_common_handle_option): Replace set_Wunused by
2689         warn_unused.
2690         * common.opt (Wunused): Add Var and Init.
2691         (Wunused-function): Likewise.
2692         (Wunused-label): Likewise.
2693         (Wunused-parameter): Likewise.
2694         (Wunused-value): Likewise.
2695         (Wunused-variable): Likewise.
2696         
2697 2008-08-08  Peter Bergner  <bergner@vnet.ibm.com>
2698
2699         * doc/invoke.texi: Add cpu_type power7.
2700         * config.in (HAVE_AS_VSX): New.
2701         * config.gcc: Add cpu_type power7.
2702         * configure.ac (HAVE_AS_VSX): Check for assembler support of the
2703         VSX instructions.
2704         * configure: Regenerate.
2705         * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to
2706         power5.
2707         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define.
2708         (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7.
2709         (EXTRA_SPECS): Add asm_cpu_power7 spec string.
2710
2711 2008-08-08  Dorit Nuzman  <dorit@il.ibm.com>
2712
2713         * tree-vect-transform.c (vectorizable_conversion): Pass the integral
2714         type to vectorize.builtin_conversion.
2715         (vectorizable_conversion): Likewise.
2716         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes
2717         integral type as input.
2718         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
2719         FIX_TRUNC_EXPR.
2720         (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS
2721         and ALTIVEC_BUILTIN_VCTSXS.
2722         (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix
2723         formatting. 
2724
2725 2008-08-08  Richard Guenther  <rguenther@suse.de>
2726
2727         * tree-ssa-ccp.c (likely_value): Calls are not all varying.
2728         (surely_varying_stmt_p): Calls are varying only if they are
2729         non-builtin and not indirect or have no result.
2730         (ccp_fold): Re-instantiate code before the tuples merge.
2731
2732 2008-08-08  Richard Guenther  <rguenther@suse.de>
2733
2734         PR tree-optimization/37056
2735         * gimple.h (gimple_assign_rhs_class): New helper function.
2736         * tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle
2737         unary operations properly.
2738
2739 2008-08-07  Jan Hubicka  <jh@suse.cz>
2740
2741         * i386.h (ix86_size_cost): Declare.
2742         (ix86_cur_cost): New function macro.
2743         * i386.md (peepholes expanding size and splitters): Predicate by
2744         optimize_insn_for_speed_p.
2745         (peepholes reduce size and splitters): Predicate by
2746         optimize_insn_for_size_p.
2747         * i386.c (ix86_size_cost): Rename from ...
2748         (size_cost): This one.
2749         (override_options): Update.
2750         (decide_alg): Likewise.
2751         (ix86_expand_clear): Use RTL profile.
2752         (ix86_pad_returns): Use RTL profile.
2753
2754 2008-08-07  Jan Hubicka  <jh@suse.cz>
2755
2756         * recog.c (split_all_insns): Set RTL profile
2757         (peephole2_optimize): Likewise.
2758         * function.c (thread_prologue_and_epilogue_insns): Likewise.
2759         * combine.c (combine_instructions): Likewise.
2760
2761 2008-08-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2762
2763         * c-common.c (c_common_reswords): Also warn about keyword "bool".
2764
2765 2008-08-07  Bob Wilson  <bob.wilson@acm.org>
2766         
2767         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming
2768         value in a6 after the set_frame_ptr insn.
2769         
2770 2008-08-07  Richard Henderson  <rth@redhat.com>
2771
2772         PR debug/37033
2773         * gcc.c (cpp_options): Pass along -g*.
2774
2775 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
2776
2777         * config/arm/arm.c (output_move_neon): Update comment describing
2778         big-endian vector layout.
2779         (arm_assemble_integer): Do not handle big-endian NEON vectors
2780         specially.
2781         * config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>,
2782         neon_vget_lane<mode>_sext_internal,
2783         neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust
2784         element indices for big-endian.
2785
2786 2008-08-07  Richard Henderson  <rth@redhat.com>
2787
2788         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New.
2789         * configure, config.in: Rebuild.
2790         * debug.h (dwarf2out_do_cfi_asm): Declare.
2791         * c-cppbuiltin.c (c_cpp_builtins): Use it.
2792         * dwarf2out.c (dwarf2out_do_cfi_asm): New.
2793         (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info,
2794         dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it.
2795
2796 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
2797
2798         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
2799         movv2si_internal): Combine into mov<mode>_internal.
2800         (movv2si_internal_2): Remove.
2801
2802 2008-08-07  Jan Hubicka  <jh@suse.cz>
2803
2804         PR target/37048
2805         * i386.md (single stringop patterns): Enable unconditionally. 
2806
2807 2008-08-07  H.J. Lu  <hongjiu.lu@intel.com>
2808
2809         PR target/36992
2810         * config/i386/emmintrin.h (_mm_move_epi64): Use
2811         __builtin_ia32_movq128.
2812
2813         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128.
2814         (bdesc_args): Add IX86_BUILTIN_MOVQ128.
2815
2816         * config/i386/sse.md (sse2_movq128): New.
2817
2818         * doc/extend.texi: Document __builtin_ia32_movq128.
2819
2820 2008-08-07  Richard Guenther  <rguenther@suse.de>
2821
2822         PR middle-end/37042
2823         * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all
2824         pointers can access anything.
2825
2826 2008-08-06  Jan Hubicka  <jh@suse.cz>
2827
2828         * optabs.c (emit_unop_insn): Break out to ...
2829         (maybe_emit_unop_insn): ... this one.
2830         (expand_sfix_optab): Use maybe variant.
2831         * optabs.h (maybe_emit_unop_insn): Declare.
2832
2833         * i386.md (mov0 patterns): Enable by default.
2834         (FP conversion expanders): Disable expansion of code expanding
2835         sequences when instruction should be optimized for size.
2836         (single strinop patterns): Enable when optimizing for size.
2837         (string expanders): Disable expanding of code expanding sequences
2838         when optimizning instruction for size.
2839         * i386.c (ix86_expand_vector_move_misalign): Do code size optimization
2840         per BB basis.
2841         (ix86_fp_comparison_sahf_cost): Likewise.
2842         (ix86_expand_branch): Likewise.
2843         (ix86_expand_ashl_const): Likewise.
2844         (ix86_split_ashl): Likewise.
2845         (ix86_expand_strlen): Likewise.
2846         (ix86_emit_fp_unordered_jump): Likewie.
2847
2848 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2849
2850         * c-common.c: Fix typo.
2851         (c_common_reswords): Activate more C++ keyword warnings.
2852
2853         * matrix-reorg.c (compute_offset): Avoid C++ keywords.
2854
2855 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2856
2857         PR 26785
2858         * diagnostic.c (permerror_at): New.
2859         * toplev.h (permerror_at): Declare.
2860         
2861 2008-08-06  Victor Kaplansky  <victork@il.ibm.com>
2862             Ira Rosen  <irar@il.ibm.com>
2863
2864         * tree-vect-transform.c (vect_model_simple_cost): Return
2865         immediately if stmt is pure SLP.
2866         (vect_model_store_cost): Ditto.
2867         (vect_model_load_cost): Ditto.
2868         (vectorizable_store): Remove PURE_SLP check before call
2869         to vect_model_store_cost.
2870         (vect_model_store_cost): When checking whether stmt describe
2871         strided access, add a check that it is not slp_node.
2872
2873 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2874
2875         PR 8715
2876         * c-common.c (warn_for_sign_compare): New. Handle separately the
2877         case that 'constant' is zero.
2878         * c-typeck.c (build_binary_op): Move code to c-common.c
2879         
2880 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2881
2882         * config/alpha/alpha.c (alpha_preferred_reload_class,
2883         alpha_secondary_reload, alpha_emit_set_const_1, function_value,
2884         alpha_output_mi_thunk_osf): Avoid C++ keywords.
2885         * config/arm/arm.c (output_move_vfp, output_move_neon): Likewise.
2886         * config/arm/arm.md: Likewise.
2887         * config/avr/avr-protos.h (preferred_reload_class,
2888         test_hard_reg_class, avr_simplify_comparison_p,
2889         out_shift_with_cnt, class_max_nregs): Likewise.
2890         * config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p,
2891         output_movqi, output_movhi, output_movsisf, out_shift_with_cnt,
2892         preferred_reload_class, test_hard_reg_class): Likewise.
2893         * config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok,
2894         bfin_memory_move_cost, bfin_secondary_reload,
2895         bfin_output_mi_thunk): Likewise.
2896         * config/crx/crx.c (crx_secondary_reload_class,
2897         crx_memory_move_cost): Likewise.
2898         * config/frv/frv-protos.h (frv_secondary_reload_class,
2899         frv_class_likely_spilled_p, frv_class_max_nregs): Likewise.
2900         * config/frv/frv.c (frv_override_options, frv_alloc_temp_reg,
2901         frv_secondary_reload_class, frv_class_likely_spilled_p,
2902         frv_class_max_nregs): Likewise.
2903         * config/h8300/h8300.c (h8300_classify_operand,
2904         h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count):
2905         Likewise.
2906         * config/i386/winnt.c (i386_pe_declare_function_type): Likewise.
2907         * config/ia64/ia64.c (ia64_preferred_reload_class,
2908         ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise.
2909         * config/iq2000/iq2000.c (gen_int_relational): Likewise.
2910         * config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare):
2911         Likewise.
2912         * config/m68hc11/m68hc11.c (preferred_reload_class,
2913         m68hc11_memory_move_cost): Likewise.
2914         * config/mcore/mcore.c (mcore_secondary_reload_class,
2915         mcore_reload_class): Likewise.
2916         * config/mips/mips.c (mips_hard_regno_mode_ok_p,
2917         mips_class_max_nregs, mips_cannot_change_mode_class,
2918         mips_preferred_reload_class, mips_secondary_reload_class,
2919         mips_output_mi_thunk): Likewise.
2920         * config/mmix/mmix.c (mmix_preferred_reload_class,
2921         mmix_preferred_output_reload_class, mmix_secondary_reload_class):
2922         Likewise.
2923         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
2924         Likewise.
2925         * config/pa/pa.c (pa_secondary_reload, pa_combine_instructions,
2926         pa_can_combine_p, pa_cannot_change_mode_class): Likewise.
2927         * config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
2928         * config/rs6000/rs6000.c (paired_expand_vector_init,
2929         rs6000_secondary_reload_class, rs6000_output_mi_thunk,
2930         compare_section_name, rs6000_memory_move_cost): Likewise.
2931         * config/s390/s390.c (s390_emit_compare_and_swap,
2932         s390_preferred_reload_class, s390_secondary_reload,
2933         legitimize_pic_address, legitimize_tls_address,
2934         legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic,
2935         s390_class_max_nregs): Likewise.
2936         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
2937         * config/s390/s390.md: Likewise.
2938         * config/score/score-protos.h (score_secondary_reload_class,
2939         score_preferred_reload_class): Likewise.
2940         * config/score/score.c (score_preferred_reload_class,
2941         score_secondary_reload_class): Likewise.
2942         * config/score/score3.c (score3_output_mi_thunk,
2943         score3_preferred_reload_class, score3_secondary_reload_class,
2944         score3_hard_regno_mode_ok): Likewise.
2945         * config/score/score3.h (score3_preferred_reload_class,
2946         score3_secondary_reload_class): Likewise.
2947         * config/score/score7.c (score7_output_mi_thunk,
2948         score7_preferred_reload_class, score7_secondary_reload_class,
2949         score7_hard_regno_mode_ok): Likewise.
2950         * config/score/score7.h (score7_preferred_reload_class,
2951         score7_secondary_reload_class): Likewise.
2952         * config/sh/sh.c (prepare_move_operands, output_far_jump,
2953         output_branchy_insn, add_constant, gen_block_redirect,
2954         sh_insn_length_adjustment, sh_cannot_change_mode_class,
2955         sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload):
2956         Likewise.
2957         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
2958         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
2959         xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
2960         xstormy16_preferred_reload_class): Likewise.
2961         * config/xtensa/xtensa.c (xtensa_expand_compare_and_swap,
2962         xtensa_expand_atomic, override_options,
2963         xtensa_preferred_reload_class, xtensa_secondary_reload_class):
2964         Likewise.
2965         * reorg.c (try_merge_delay_insns): Likewise.
2966         * tree.c (merge_dllimport_decl_attributes): Likewise.
2967
2968         * config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA.
2969
2970 2008-08-06  Michael Matz  <matz@suse.de>
2971
2972         * Makefile.in (write_entries_to_file): Quote words.
2973         * gengtype.c: (read_input_line): Skip over leading white-space.
2974
2975 2008-08-06  Marc Gauthier  <marc@tensilica.com>
2976
2977         * config.gcc: Match more processor names for Xtensa.
2978         * configure.ac: Likewise.
2979         * doc/install.texi (Specific): Likewise.
2980         * configure: Regenerate.
2981
2982 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2983
2984         * builtins.c (expand_builtin_profile_func): Avoid C++ keywords.
2985         * calls.c (avoid_likely_spilled_reg): Likewise.
2986         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
2987         * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise.
2988         * config/i386/i386.c (ix86_expand_special_args_builtin,
2989         ix86_secondary_reload): Likewise.
2990         * except.c (struct eh_region, gen_eh_region_catch,
2991         remove_unreachable_regions, duplicate_eh_regions,
2992         assign_filter_values, build_post_landing_pads,
2993         sjlj_find_directly_reachable_regions, remove_eh_handler,
2994         reachable_next_level, foreach_reachable_handler,
2995         can_throw_internal_1, can_throw_external_1,
2996         collect_one_action_chain): Likewise.
2997         * expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise.
2998         * fold-const.c (twoval_comparison_p, eval_subst): Likewise.
2999         * function.c (update_temp_slot_address, instantiate_new_reg,
3000         instantiate_virtual_regs_in_rtx,
3001         instantiate_virtual_regs_in_insn): Likewise.
3002         * gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise.
3003         * gimplify.c (gimplify_call_expr, gimplify_init_constructor,
3004         gimplify_cleanup_point_expr): Likewise.
3005         * ipa-cp.c (ipcp_lattice_changed): Likewise.
3006         * passes.c (next_pass_1): Likewise.
3007         * print-tree.c (print_node_brief, print_node): Likewise.
3008         * profile.c (branch_prob): Likewise.
3009         * tree-dump.c (dump_register): Likewise.
3010         * tree-eh.c (replace_goto_queue_cond_clause, lower_catch):
3011         Likewise.
3012         * tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks,
3013         copy_statement_list, remap_gimple_op_r, copy_tree_body_r,
3014         copy_edges_for_bb, copy_cfg_body, copy_tree_r,
3015         copy_arguments_for_versioning, copy_static_chain): Likewise.
3016         * tree-into-ssa.c (names_replaced_by, add_to_repl_tbl,
3017         add_new_name_mapping, register_new_name_mapping): Likewise.
3018         * tree-mudflap.c (mf_xform_derefs): Likewise.
3019         * tree-predcom.c (struct chain, dump_chain, replace_ref_with,
3020         get_init_expr, combine_chains): Likewise.
3021         * tree-pretty-print.c (dump_generic_node): Likewise.
3022         * tree-ssa-structalias.c (create_variable_info_for): Likewise.
3023         * tree-vrp.c (simplify_cond_using_ranges): Likewise.
3024         * tree.c (substitute_in_expr, iterative_hash_expr): Likewise.
3025         * value-prof.c (gimple_duplicate_stmt_histograms): Likewise.
3026
3027 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
3028
3029         PR middle-end/37010
3030         * calls.c (expand_call): Use the biggest preferred stack
3031         boundary.
3032
3033 2008-08-06  Michael Matz  <matz@suse.de>
3034
3035         PR target/36613
3036         * reload.c (push_reload): Merge in,out,in_reg,out_reg members
3037         for reused reload, instead of overwriting them.
3038
3039 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
3040
3041         PR middle-end/37009
3042         * cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary
3043         for incoming stack boundary.
3044
3045         * function.c (assign_parm_find_entry_rtl): Update
3046         parm_stack_boundary.
3047
3048         * function.h (rtl_data): Add parm_stack_boundary.
3049
3050         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Check
3051         parm_stack_boundary for incoming stack boundary.
3052
3053 2008-08-06  Joseph Myers  <joseph@codesourcery.com>
3054
3055         * jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset
3056         for unrepresentable subregs or treat them as equal to other regs
3057         or subregs with the same register number.
3058
3059 2008-08-06  Aldy Hernandez  <aldyh@redhat.com>
3060
3061         PR middle-end/35432
3062         * gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types
3063         if want_value.
3064
3065 2008-08-06  Jan Hubicka  <jh@suse.cz>
3066
3067         * predict.c (maybe_hot_frequency_p): When profile is absent, all
3068         frequencies might be hot.
3069
3070 2008-08-06  Andreas Krebbel  <krebbel1@de.ibm.com>
3071
3072         * reload.c (find_reloads): Force constants into literal pool
3073         also if they are wrapped in a SUBREG.
3074
3075 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3076
3077         PR target/35659
3078         * haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ...
3079         * sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here.
3080         Don't allow predicated instructions for data speculation.
3081         * sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move
3082         declaration.
3083
3084 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3085
3086         * haifa-sched.c (extend_global): Split to extend_global_data and
3087         extend_region_data.  Update all uses.
3088         (extend_all): Rename to extend_block_data.
3089
3090 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3091
3092         * sched-rgn.c (new_ready): Check if instruction can be
3093         speculatively scheduled before attempting speculation.
3094         (debug_rgn_dependencies): Remove wrongful assert.
3095
3096 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
3097
3098         * config/xtensa/t-xtensa: Remove dependency for gt-xtensa.h.
3099         
3100 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
3101         
3102         * config/xtensa/xtensa.c (xtensa_va_start): Unshare valist.
3103         (xtensa_gimplify_va_arg_expr): Unshare valist, orig_ndx, ndx, array,
3104         va_size, and type_size.
3105         
3106 2008-08-04  Jason Merrill  <jason@redhat.com>
3107
3108         PR c++/37016
3109         * tree-ssa.c (useless_type_conversion_p_1): Call langhook
3110         if TYPE_STRUCTURAL_EQUALITY_P is true for both types.
3111
3112 2008-08-05  Richard Henderson  <rth@redhat.com>
3113
3114         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Check .cfi_personality.
3115         * configure: Rebuild.
3116
3117 2008-08-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3118
3119         PR tree-opt/37024
3120         * tree-tailcall.c (process_assignment): Use gimple_assign_cast_p
3121         instead of IS_CONVERT_EXPR_CODE_P for seeing if the assignment
3122         is a conversion.
3123
3124 2008-08-05  Richard Henderson  <rth@redhat.com>
3125
3126         * Makefile.in (c-cppbuiltin.o): Depend on debug.h.
3127         * c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM.
3128         * doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it.
3129         * common.opt (fdwarf2-cfi-asm): New.
3130         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): New.
3131         * config.in, configure: Rebuild.
3132         * dwarf2asm.c (dw2_asm_output_data_raw): New.
3133         (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw): New.
3134         (dw2_force_const_mem): Externalize.
3135         * dwarf2asm.h: Update.
3136         * dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't
3137         generate a real label.
3138         (output_cfi_directive): New.
3139         (add_fde_cfi): If flag_dwarf2_cfi_asm, use it.
3140         (output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm.
3141         (dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality,
3142         and .cfi_lsda.
3143         (dwarf2out_end_epilogue): Emit .cfi_endproc.
3144         (output_loc_operands_raw, output_loc_sequence_raw): New.
3145         (output_cfa_loc_raw): New.
3146         
3147 2008-08-05  Paul Brook  <paul@codesourcery.com>
3148
3149         * doc/invoke.texi: Document new ARM -mfpu= and -mcpu= options.
3150         * config/arm/arm.c (all_fpus): Add vfpv3 and vfpv3-d16.
3151         (fp_model_for_fpu): Add entry for FPUTYPE_VFP3D16.
3152         (arm_file_start): Add FPUTYPE_VFP3D16.  Rename vfp3 to vfpv3.
3153         * config/arm/arm.h (TARGET_VFPD32): Define.
3154         (TARGET_VFP3): Use TARGET_VFPD32.
3155         (fputype): Add FPUTYPE_VFP3D16.
3156         (LAST_VFP_REGNUM): Use TARGET_VFPD32.
3157         * config/arm/constraints.md ("w"): Use TARGET_VFPD32.
3158         * config/arm/arm-cores.def: Add cortex-r4f.
3159         * config/arm/arm-tune.md: Regenerate.
3160
3161 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3162
3163         * config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus.
3164         Reword some comments throughout the file.
3165
3166         (MFC_MIN_DMA_LIST_ELEMENTS): New define.
3167         (MFC_MAX_DMA_LIST_ELEMENTS): Likewise.
3168         (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of MFC_MIN_DMA_LIST_ELEMENTS.
3169         (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of MFC_MAX_DMA_LIST_ELEMENTS.
3170
3171         (MFC_START_ENABLE): Remove PPU-only define.
3172         (MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise.
3173         (MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise.
3174
3175         (MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants.
3176         (MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise.
3177         (MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise.
3178         (MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise.
3179         (MFC_GETB_CMD, MFC_GETF_CMD): Likewise.
3180         (MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise.
3181         (MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise.
3182
3183         (MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines.
3184         (MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise.
3185         (mfc_sdcrt, mfc_sdcrtst): Likewise.
3186         (mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise.
3187
3188         (spu_read_machine_status): Fix typo.
3189
3190 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3191
3192         * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized
3193         SUBREG of multi-word hard register.
3194         * config/spu/spu.c (valid_subreg): Likewise.
3195         (adjust_operand): Handle SUBREGs of multi-word hard registers.
3196
3197 2008-08-04  Richard Guenther  <rguenther@suse.de>
3198
3199         * tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add
3200         the candidate with the stripped base if that base is different
3201         from the original base even for offset zero.
3202
3203 2008-08-04  Richard Guenther  <rguenther@suse.de>
3204
3205         PR middle-end/36691
3206         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly
3207         check for no_overflow.
3208
3209 2008-08-04  Richard Guenther  <rguenther@suse.de>
3210
3211         * tree-vect-transform.c (vectorizable_call): Fix tuplification.
3212
3213 2008-08-04  Paul Brook  <paul@codesourcery.com>
3214
3215         * cofig/arm/arm.c (thumb_core_reg_alloc_order): New.
3216         (arm_order_regs_for_local_alloc): New function.
3217         * config/arm/arm-protos.h (arm_order_regs_for_local_alloc): Add
3218         prototype.
3219         * config/arm/arm.h (ORDER_REGS_FOR_LOCAL_ALLOC): Define.
3220
3221 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
3222
3223         PR target/37012
3224         * config/i386/i386.c (ix86_expand_prologue): Use UNITS_PER_WORD
3225         instead of STACK_BOUNDARY / BITS_PER_UNIT to align stack.
3226         (ix86_expand_epilogue): Likewise.
3227
3228 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
3229
3230         * config/i386/i386.c (ix86_compute_frame_layout): Fix a typo
3231         in comments.
3232
3233 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
3234
3235         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x
3236         to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES.
3237         (*movv2sf_internal_rex64): Ditto.
3238
3239 2008-08-03  Jan Hubicka  <jh@suse.cz>
3240
3241         * optabs.c (expand_binop, expand_builtin_pow, expand_builtin_powi,
3242         expand_builtin_strcat): Upse optimize_insn_for_speed predicate.
3243         * expmed.c (expand_smod_pow2): Likewise.
3244
3245 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
3246
3247         PR target/36992
3248         * config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
3249         alternative 0 of operand 1.
3250         (*vec_concatv2di_rex64_sse): Ditto.
3251         (*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
3252         of operand 1.
3253         (*sse2_storeq_rex64): Penalize allocation of "r" registers.
3254         * config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation
3255         of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
3256         (*movv2sf_internal_rex64): Ditto.
3257
3258 2008-08-02  Richard Guenther  <rguenther@suse.de>
3259
3260         PR target/35252
3261         * config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators.
3262         (ssedoublesizemode): New mode attribute.
3263         (sse_shufps): Call gen_sse_shufps_v4sf.
3264         (sse_shufps_1): Macroize.
3265         (sse2_shufpd): Call gen_Sse_shufpd_v2df.
3266         (sse2_shufpd_1): Macroize.
3267         (vec_extract_odd, vec_extract_even): New expanders.
3268         (vec_interleave_highv4sf, vec_interleave_lowv4sf,
3269         vec_interleave_highv2df, vec_interleave_lowv2df): Likewise.
3270         * i386.c (ix86_expand_vector_init_one_nonzero): Call
3271         gen_sse_shufps_v4sf instead of gen_sse_shufps_1.
3272         (ix86_expand_vector_set): Likewise.
3273         (ix86_expand_reduc_v4sf): Likewise.
3274
3275 2008-08-01  Doug Kwan  <dougkwan@google.com>
3276
3277         * matrix-reorg.c: Re-enable all code.
3278         (struct malloc_call_data): Change CALL_STMT to gimple type.
3279         (collect_data_for_malloc_call): Tuplify.
3280         (struct access_site_info): Change STMT to gimple type.
3281         (struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT,
3282         and MALLOC_FOR_LEVEL to gimple and gimple pointer type.
3283         (struct free_info): Change STMT to gimple type.
3284         (struct matrix_access_phi_node):  Change PHI to gimple type.
3285         (get_inner_of_cast_expr): Remove.
3286         (may_flatten_matrices_1): Tuplify.
3287         (may_flatten_matrices): Ditto.
3288         (mark_min_matrix_escape_level): Ditto.
3289         (ssa_accessed_in_tree): Refactor statement RHS related code into ...
3290         (ssa_accessed_in_call_rhs): New
3291         (ssa_accessed_in_assign_rhs): New
3292         (record_access_alloc_site_info): Tuplify.
3293         (add_allocation_site): Ditto.
3294         (analyze_matrix_allocation_site): Ditto.
3295         (analyze_transpose): Ditto.
3296         (get_index_from_offset): Ditto.
3297         (update_type_size): Ditto.
3298         (analyze_accesses_for_call_expr): Tuplify and renamed into ...
3299         (analyze_accesses_for_call_stmt): New. Also handle LHS of a call.
3300         (analyze_accesses_for_phi_node): Tuplify.
3301         (analyze_accesses_for_modify_stmt): Tuplify and renamed into ...
3302         (analyze_accesses_for_assign_stmt): Remove code for handling call LHS.
3303         (analyze_matrix_accesses): Tuplify.
3304         (check_var_data): New call-back type for check_var_notmodified_p.
3305         (check_var_notmodified_p): Tuplify and use call-back struct to
3306         return statement found.
3307         (can_calculate_expr_before_stmt): Factor out statement related code
3308         into ...
3309         (can_calculate_stmt_before_stmt): New.
3310         (check_allocation_function): Tuplify.
3311         (find_sites_in_func): Ditto.
3312         (record_all_accesses_in_func): Ditto.
3313         (transform_access_sites): Ditto.
3314         (transform_allocation_sites): Ditto.
3315         (matrix_reorg): Re-enable.
3316         (gate_matrix_reorg): Re-enable.
3317
3318 2008-08-01  Jakub Jelinek  <jakub@redhat.com>
3319
3320         * dwarf2out.c (compute_barrier_args_size): Set barrier_args_size
3321         for labels for which it hasn't been set yet.  If it has been set,
3322         stop walking insns and continue with next worklist item.
3323         (dwarf2out_stack_adjust): Don't call compute_barrier_args_size
3324         if the only BARRIER is at the very end of a function.
3325
3326 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
3327
3328         * cfgexpand.c (expand_stack_alignment): Assert that
3329         stack_realign_drap and drap_rtx must match.
3330
3331         * function.c (instantiate_new_reg): If DRAP is used to realign
3332         stack, replace virtual_incoming_args_rtx with internal arg
3333         pointer.
3334
3335 2008-08-01  Richard Guenther  <rguenther@suse.de>
3336
3337         * tree-ssa-pre.c (fini_pre): Take in_fre parameter.  Free
3338         loop information only if we initialized it.
3339         (execute_pre): Call fini_pre with in_fre.
3340         * tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump
3341         if we do not unroll because we hit max-completely-peeled-insns.
3342         Use our estimation for consistency, do allow shrinking.
3343
3344 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
3345
3346         * config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY
3347         with MIN_STACK_BOUNDARY.
3348         (ix86_update_stack_boundary): Likewise.
3349         (ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of
3350         STACK_BOUNDARY.
3351
3352         * config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ...
3353         (MIN_STACK_BOUNDARY): This.
3354
3355 2008-08-01  Richard Guenther  <rguenther@suse.de>
3356
3357         PR middle-end/36997
3358         * gimplify.c (gimplify_call_expr): Set error_mark_node on GS_ERROR.
3359
3360 2008-08-01  Richard Guenther  <rguenther@suse.de>
3361
3362         PR tree-optimization/36988
3363         * tree-ssa-ccp.c (ccp_fold): Conversions of constants only
3364         do not matter if that doesn't change volatile qualification.
3365
3366 2008-08-01  Paolo Bonzini  <bonzini@gnu.org>
3367
3368         * configure.ac: Do not generate libada-mk.  Do not subst
3369         host_cc_for_libada.
3370         * libada-mk.in: Remove.
3371         * Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars.
3372         * configure: Regenerate.
3373
3374 2008-08-01  Basile Starynkevitch  <basile@starynkevitch.net>
3375
3376         * tree-pass.h: Added comment about not dumping passes with name
3377         starting with star in struct opt_pass.
3378         * passes.c (register_dump_files_1): Don't do dump for a pass with
3379         name starting with star.
3380         * doc/passes.texi (Pass manager): Mention pass names and special
3381         meaning of star prefix to avoid dump.
3382
3383 2008-07-31  Adam Nemet  <anemet@caviumnetworks.com>
3384
3385         * config.gcc (mipsisa64r2*-*-linux*): New configuration.  Set ISA
3386         to MIPS64r2.
3387         * config/mips/mips.h (GENERATE_MIPS16E): Update comment.
3388         (ISA_MIPS64R2): New macro.
3389         (TARGET_CPU_CPP_BUILTINS, MULTILIB_ISA_DEFAULT): Handle it.
3390         (ISA_HAS_64BIT_REGS, ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE,
3391         ISA_HAS_8CC, ISA_HAS_FP4, ISA_HAS_PAIRED_SINGLE,
3392         ISA_HAS_MADD_MSUB, ISA_HAS_NMADD4_NMSUB4, ISA_HAS_CLZ_CLO,
3393         ISA_HAS_ROR, ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX, ISA_HAS_SEB_SEH,
3394         ISA_HAS_EXT_INS, ISA_HAS_MXHC1, ISA_HAS_HILO_INTERLOCKS,
3395         ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Return true for ISA_MIPS64R2.
3396         (MIPS_ISA_LEVEL_SPEC, ASM_SPEC, LINK_SPEC): Handle -mips64r2.
3397         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF):
3398         Move up to keep list alphabetically sorted.
3399         (TUNE_20KC, TUNE_24K, TUNE_74K, TUNE_LOONGSON_2EF): Likewise.
3400         * config/mips/mips.c (mips_cpu_info_table): Add default MIPS64r2
3401         processor.
3402         * doc/invoke.texi (MIPS Options): Add -mips64r2.
3403         (-march=@var{arch}): Add mips64r2.
3404
3405 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
3406
3407         * config/i386/darwin.h (MAIN_STACK_BOUNDARY): Define to 128.
3408
3409 2008-07-31  Steve Ellcey  <sje@cup.hp.com>
3410
3411         * expr.c (expand_assignment): Check for complete type.
3412
3413 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
3414
3415         PR debug/36977
3416         * cfgexpand.c (expand_stack_alignment): Set stack_realign_tried.
3417
3418         * dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried
3419         for stack alignment.
3420
3421         * function.h (rtl_data): Add stack_realign_tried.  Update comments.
3422
3423 2008-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
3424
3425         * config/sh/sh.c (sh_canonical_va_list_type): Remove.
3426         (TARGET_CANONICAL_VA_LIST_TYPE): Remove.
3427
3428 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
3429
3430         PR rtl-optimization/36419
3431         * dwarf2out.c (barrier_args_size): New variable.
3432         (compute_barrier_args_size, compute_barrier_args_size_1): New
3433         functions.
3434         (dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size
3435         if not called yet in the current function, use barrier_args_size
3436         array to find the new args_size value.
3437         (dwarf2out_frame_debug): Free and clear barrier_args_size.
3438
3439 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
3440
3441         PR debug/36980
3442         * dwarf2out.c (dwarf2out_frame_debug_expr): Move rule 17 before
3443         rule 19.
3444
3445 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
3446
3447         PR debug/36976
3448         * dwarf2out.c (dwarf2out_args_size_adjust): New.
3449         (dwarf2out_stack_adjust): Use it.
3450         (dwarf2out_frame_debug_expr): Likewise.
3451
3452 2008-07-31  Richard Guenther  <rguenther@suse.de>
3453
3454         PR tree-optimization/36978
3455         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Do not fold
3456         the generated condition.
3457
3458 2008-07-31  Richard Guenther  <rguenther@suse.de>
3459
3460         * passes.c (init_optimization_passes): Always call
3461         pass_early_warn_uninitialized.
3462         * opts.c (decode_options): Do not warn about -Wuninitialized at -O0.
3463         * doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0.
3464         * doc/passes.texi (Warn for uninitialized variables): Adjust.
3465
3466 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
3467
3468         PR c/36970
3469         * builtins.c (maybe_emit_free_warning): New function.
3470         (expand_builtin): Process BUILT_IN_FREE even at -O0.  Call
3471         maybe_emit_free_warning for BUILT_IN_FREE.
3472
3473         PR debug/36278
3474         * dwarf2out.c (get_context_die): New function.
3475         (force_decl_die, force_type_die): Use it.
3476         (dwarf2out_imported_module_or_decl): Likewise.  If base_type_die
3477         returns NULL, force generation of DW_TAG_typedef and put that into
3478         DW_AT_import.
3479
3480         PR preprocessor/36649
3481         * c-pch.c (c_common_read_pch): Save and restore
3482         line_table->trace_includes across PCH restore.
3483
3484 2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>
3485
3486         PR ada/36554
3487         * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.
3488
3489 2008-07-30  Rafael Avila de Espindola  <espindola@google.com>
3490
3491         PR 36974
3492         * final.c (call_from_call_insn): Handle COND_EXEC.
3493
3494 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
3495
3496         * builtins.c (std_gimplify_va_arg_expr): Replace
3497         PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT.
3498         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
3499
3500 2008-07-30  Joey Ye  <joey.ye@intel.com>
3501             H.J. Lu  <hongjiu.lu@intel.com>
3502
3503         * builtins.c (expand_builtin_setjmp_receiver): Replace
3504         virtual_incoming_args_rtx with crtl->args.internal_arg_pointer.
3505         (expand_builtin_apply_args_1): Likewise.
3506         (expand_builtin_longjmp): Need DRAP for stack alignment.
3507         (expand_builtin_apply): Likewise.
3508
3509         * caller-save.c (setup_save_areas): Call assign_stack_local_1
3510         instead of assign_stack_local to allow alignment reduction.
3511
3512         * calls.c (emit_call_1): Need DRAP for stack alignment if
3513         return pops.
3514         (expand_call): Replace virtual_incoming_args_rtx with
3515         crtl->args.internal_arg_pointer.
3516         * stmt.c (expand_nl_goto_receiver): Likewise.
3517
3518         * cfgexpand.c (get_decl_align_unit): Estimate stack variable
3519         alignment and store to stack_alignment_estimated and
3520         max_used_stack_slot_alignment.
3521         (expand_one_var): Likewise.
3522         (expand_stack_alignment): New function.
3523         (tree_expand_cfg): Initialize max_used_stack_slot_alignment
3524         and stack_alignment_estimated fields in rtl_data.  Call
3525         expand_stack_alignment at end.
3526
3527         * defaults.h (INCOMING_STACK_BOUNDARY): New.
3528         (MAX_STACK_ALIGNMENT): Likewise.
3529         (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise.
3530         (SUPPORTS_STACK_ALIGNMENT): Likewise.
3531
3532         * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for
3533         stack alignment when generating virtual registers.
3534
3535         * function.c (assign_stack_local): Renamed to ...
3536         (assign_stack_local_1): This.  Add a parameter to indicate
3537         if it is OK to reduce alignment.
3538         (assign_stack_local): Use it.
3539         (instantiate_new_reg): Instantiate virtual incoming args rtx
3540         to vDRAP if stack realignment and DRAP is needed.
3541         (assign_parms): Collect parameter/return type alignment and
3542         contribute to stack_alignment_estimated.
3543         (locate_and_pad_parm): Likewise.
3544         (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx
3545         with crtl->args.internal_arg_pointer.
3546
3547         * function.h (rtl_data): Add new field drap_reg,
3548         max_used_stack_slot_alignment, stack_alignment_estimated,
3549         stack_realign_needed, need_drap, stack_realign_processed and
3550         stack_realign_finalized.
3551         (stack_realign_fp): New macro.
3552         (stack_realign_drap): Likewise.
3553
3554         * global.c (compute_regsets): Frame pointer is needed when
3555         stack is realigned.  Can eliminate frame pointer when stack is
3556         realigned and dynamic realigned argument pointer isn't used.
3557
3558         * reload1.c (update_eliminables):  Frame pointer is needed
3559         when stack is realigned.
3560         (init_elim_table): Can eliminate frame pointer when stack is
3561         realigned and dynamic realigned argument pointer isn't used.
3562
3563         * rtl.h (assign_stack_local_1): Declare new funtion.
3564
3565         * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New.
3566         (TARGET_GET_DRAP_RTX): Likewise.
3567         (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and
3568         TARGET_GET_DRAP_RTX.
3569
3570         * target.h (gcc_target): Add update_stack_boundary and get_drap_rtx.
3571
3572         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
3573         STACK_BOUNDARY with MAX_STACK_ALIGNMENT.
3574
3575 2008-07-30  Xuepeng Guo  <xuepeng.guo@intel.com>
3576             H.J. Lu  <hongjiu.lu@intel.com>
3577
3578         * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg,
3579         vdrap_reg, stack_realign and drap_reg_saved.
3580         (add_cfi): Don't allow redefining CFA when DRAP is used.
3581         (reg_save): Handle stack alignment.
3582         (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack
3583         alignment.  Don't generate DWARF information for (set fp sp)
3584         when DRAP is used.
3585         (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg
3586         to INVALID_REGNUM.
3587         (int_loc_descriptor): Move prototype forward.  Also define if
3588         DWARF2_UNWIND_INFO is true.
3589         (output_cfa_loc): Handle DW_CFA_expression.
3590         (build_cfa_aligned_loc): New.
3591         (based_loc_descr): Update assert for stack realign.  For local
3592         variables, use sp+offset when stack is aligned without drap and
3593         fp+offset when stack is aligned with drap.  For arguments, use
3594         cfa+offset when drap is used to align stack.
3595
3596 2008-07-30  Joey Ye  <joey.ye@intel.com>
3597             H.J. Lu  <hongjiu.lu@intel.com>
3598
3599         * config/i386/i386.c (ix86_force_align_arg_pointer_string):
3600         Break long line.
3601         (ix86_gen_andsp): New.
3602         (ix86_user_incoming_stack_boundary): Likewise.
3603         (ix86_default_incoming_stack_boundary): Likewise.
3604         (ix86_incoming_stack_boundary): Likewise.
3605         (ix86_can_eliminate): Likewise.
3606         (find_drap_reg): Likewise.
3607         (ix86_update_stack_boundary): Likewise.
3608         (ix86_get_drap_rtx): Likewise.
3609         (ix86_finalize_stack_realign_flags): Likewise.
3610         (TARGET_UPDATE_STACK_BOUNDARY): Likewise.
3611         (TARGET_GET_DRAP_RTX): Likewise.
3612         (override_options): Overide option value for new options.
3613         (ix86_function_ok_for_sibcall): Remove check for
3614         force_align_arg_pointer.
3615         (ix86_handle_cconv_attribute): Likewise.
3616         (ix86_function_regparm): Likewise.
3617         (setup_incoming_varargs_64): Don't set stack_alignment_needed here.
3618         (ix86_va_start): Replace virtual_incoming_args_rtx with
3619         crtl->args.internal_arg_pointer.
3620         (ix86_select_alt_pic_regnum): Check DRAP register.
3621         (ix86_save_reg): Replace force_align_arg_pointer with drap_reg.
3622         (ix86_compute_frame_layout): Compute frame layout wrt stack
3623         realignment.
3624         (ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx.
3625         (ix86_expand_prologue): Decide if stack realignment is needed
3626         and generate prologue code accordingly.
3627         (ix86_expand_epilogue): Generate epilogue code wrt stack
3628         realignment is really needed or not.
3629         
3630         * config/i386/i386.h (MAIN_STACK_BOUNDARY): New.
3631         (ABI_STACK_BOUNDARY): Likewise.
3632         (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise.
3633         (STACK_REALIGN_DEFAULT): Likewise.
3634         (INCOMING_STACK_BOUNDARY): Likewise.
3635         (MAX_STACK_ALIGNMENT): Likewise.
3636         (ix86_incoming_stack_boundary): Likewise.
3637         (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed.
3638         (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG.
3639         (CAN_ELIMINATE): Defined with ix86_can_eliminate.
3640         (machine_function): Remove force_align_arg_pointer.
3641
3642         * config/i386/i386.md (BX_REG): New.
3643         (R13_REG): Likewise.
3644
3645         * config/i386/i386.opt (mforce_drap): New.
3646         (mincoming-stack-boundary): Likewise.
3647         (mstackrealign): Add Init(-1).
3648
3649         * config/i386/i386-protos.h (ix86_can_eliminate): New
3650
3651 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
3652
3653         * doc/extend.texi: Update force_align_arg_pointer.
3654
3655         * doc/invoke.texi: Document -mincoming-stack-boundary.  Update
3656         -mstackrealign.
3657
3658         * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro.
3659         (INCOMING_STACK_BOUNDARY): Likewise.
3660         (TARGET_UPDATE_STACK_BOUNDARY): New target hook.
3661         (TARGET_GET_DRAP_RTX): Likewise.
3662
3663 2008-07-30  Andreas Schwab  <schwab@suse.de>
3664
3665         PR rtl-optimization/36929
3666         * dse.c (replace_inc_dec): Use emit_insn_before instead of
3667         add_insn_before and fix argument order.
3668         (replace_inc_dec_mem): Handle NULL rtx.
3669
3670 2008-07-30  Andrew Jenner  <andrew@codesourcery.com>
3671
3672         * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
3673         function.
3674         (arm_compute_initial_elimination_offset): Use it.
3675         (arm_compute_save_reg_mask): Include static chain save slot when
3676         calculating alignment.
3677         (arm_get_frame_offsets): Ditto.
3678         (thumb1_compute_save_reg_mask): Ensure we have a low register saved
3679         that we can use to decrement the stack when the stack decrement
3680         could be too big for an immediate value in a single insn.
3681         (thumb1_expand_prologue): Avoid using r12 for stack decrement.
3682
3683 2008-07-30  Richard Guenther  <rguenther@suse.de>
3684
3685         PR tree-optimization/36967
3686         * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p.
3687         Release defs of statements we remove.
3688
3689 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
3690
3691         * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
3692         instead of NULL_RTVEC.
3693
3694 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
3695
3696         PR target/35866
3697
3698         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
3699         vector modes.
3700
3701 2008-07-30  Rafael Avila de Espindola  <espindola@google.com>
3702
3703         * final.c (call_from_call_insn): New.
3704         (final_scan_insn): Call assemble_external on FUNCTION_DECLs.
3705
3706 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
3707
3708         * configure.ac: Substitute ADA_CFLAGS.
3709         * configure: Regenerate.
3710         * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files.
3711         * Makefile.in: Remove mention of X_* variables.
3712         * config/pa/x-ada-hpux10: Remove.
3713         * config/pa/x-ada: Remove.
3714
3715         * doc/fragments.texi: Update.
3716
3717 2008-07-30  Olivier Hainque  <hainque@adacore.com>
3718
3719         * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
3720         * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
3721         __dso_handle explicitly here.
3722
3723 2008-07-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3724
3725         PR 34389
3726         * c-typeck.c (build_binary_op): Encapsulate code into...
3727         * c-common.c (shorten_binary_op): ...this new function.
3728         (conversion_warning): Use the new function. Handle non-negative
3729         constant in bitwise-and.
3730         * c-common.h (shorten_binary_op): Declare.
3731
3732 2008-07-30  Olivier Hainque  <hainque@adacore.com>
3733
3734         * scan.c (make_sstring_space): Add explicit conversions of
3735         allocator's return value.
3736         * fix-header.c (recognized_function): Likewise.
3737
3738 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3739
3740         * doc/cpp.texi: Update to GFDL 1.2.
3741         * doc/gcc.texi: Do not list GPL as Invariant Section.
3742         * doc/gccint.texi: Likewise.  Update copyright years.
3743         * doc/install.texi: Update copyright years.
3744
3745 2008-07-30  Alan Modra  <amodra@bigpond.net.au>
3746
3747         PR target/36955
3748         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
3749         a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.
3750
3751 2008-07-29  Jan Hubicka  <jh@suse.cz>
3752
3753         * c-decl.c (merge_decls): Do not handle DECL_INLINE.
3754         (grokdeclarator): Likewise.
3755         * langhooks.c (lhd_warn_unused_global_decl): Use
3756         DECL_DECLARED_INLINE_P.
3757         * print-tree.c (print_node): Remove DECL_INLINE check.
3758
3759 2008-07-29  Richard Guenther  <rguenther@suse.de>
3760
3761         PR tree-optimization/36945
3762         * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
3763         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
3764         Record invariant addresses un-decomposed.
3765         (copy_reference_ops_from_call): Record reference call
3766         arguments properly.  Simplify.
3767         * tree-ssa-pre.c (create_component_ref_by_pieces_1): New
3768         helper split out from ...
3769         (create_component_ref_by_pieces): ... here.  Simplify.
3770         Prepare for recursive invocation for call arguments.
3771         (create_expression_by_pieces): Adjust call to
3772         create_component_ref_by_pieces.
3773         (compute_avail): Process operand 2 of reference ops.
3774
3775 2008-07-29  Richard Guenther  <rguenther@suse.de>
3776
3777         * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for OBJ_TYPE_REF.
3778
3779 2008-07-29  Jakub Jelinek  <jakub@redhat.com>
3780
3781         * c-format.c (check_format_types): Revert unwanted checkin.
3782
3783 2008-07-29  Jan Hubicka  <jh@suse.cz>
3784
3785         * flags.h (flag_really_no_inline): Remove.
3786         * cgraph.c (cgraph_function_possibly_inlined_p): Simplify.
3787         * toplev.c (flag_really_no_inline): Remove.
3788         * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline.
3789         * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline.
3790         (cgraph_decide_inlining_incrementally): Likewise.
3791         (compute_inline_parameters): Likewise.
3792         * opts.c (decode_options): Simplify.
3793         * c-opts.c (c_common_post_options): Do not set flag_no_inline.
3794         * common.opt (finline): Initialize to 1.
3795         * tree-inline.c (inlinable_function_p): Check flag_no_inline.
3796
3797 2008-07-29  Jan Hubicka  <jh@suse.cz>
3798
3799         * predict.c (always_optimize_for_size_p): New function.
3800         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
3801         optimize_edge_for_size_p, optimize_edge_for_speed_p,
3802         optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
3803         functions.
3804         (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
3805         * function.c (prepare_function_start): Set default profile.
3806         * function.h (rtl_data): Add maybe_hot_insn_p.
3807         * cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
3808         (construct_exit_block): Likewise.
3809         (tree_expand_cfg): Likewise.
3810         * basic-block.h
3811         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
3812         optimize_edge_for_size_p, optimize_edge_for_speed_p,
3813         optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
3814         (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
3815         Declare.
3816
3817 2008-07-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3818
3819         PR 34985
3820         * c-decl.c (merge_decls): Merge USED flags.
3821
3822 2008-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
3823
3824         * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
3825         valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit,
3826         next_stack, lab_false and lab_over trees.
3827
3828 2008-07-28  Richard Guenther  <rguenther@suse.de>
3829
3830         PR tree-optimization/36957
3831         * tree-flow.h (tree_ssa_useless_type_conversion): Remove.
3832         (useless_type_conversion_p): Remove.
3833         (types_compatible_p): Remove.
3834         * gimple.h (tree_ssa_useless_type_conversion): Declare.
3835         (useless_type_conversion_p): Declare.
3836         (types_compatible_p): Declare.
3837         (gimple_expr_type): Return the base type only if it is
3838         trivially convertible to the subtype.
3839
3840 2008-07-28  Andreas Tobler  <a.tobler@schweiz.org>
3841
3842         * configure.ac: Use the m4_do macro to concatenate the warnings into
3843         one string in ACX_PROG_CC_WARNING_OPTS,
3844         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and ACX_PROG_CC_WARNINGS_ARE_ERRORS.
3845         * configure: Regenerate.
3846
3847 2008-07-28  Richard Guenther  <rguenther@suse.de>
3848
3849         * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code.
3850         (insert_fake_stores): Remove.
3851         (realify_fake_stores): Likewise.
3852         (execute_pre): Remove dead code.
3853         * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary case.
3854         (find_func_aliases): Deal with it here instead.
3855         Re-enable gcc_unreachable call.
3856
3857 2008-07-28  Richard Guenther  <rguenther@suse.de>
3858
3859         Merge from gimple-tuples-branch.
3860
3861         * ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
3862         * gimple.def: New file.
3863         * gsstruct.def: Likewise.
3864         * gimple-iterator.c: Likewise.
3865         * gimple-pretty-print.c: Likewise.
3866         * tree-gimple.c: Removed.  Merged into ...
3867         * gimple.c: ... here.  New file.
3868         * tree-gimple.h: Removed.  Merged into ...
3869         * gimple.h: ... here.  New file.
3870
3871         * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
3872         * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
3873         --enable-checking=gimple flag.
3874         * config.in: Likewise.
3875         * configure: Regenerated.
3876
3877         * tree-ssa-operands.h: Tuplified.
3878         * tree-vrp.c: Likewise.
3879         * tree-loop-linear.c: Likewise.
3880         * tree-into-ssa.c: Likewise.
3881         * tree-ssa-loop-im.c: Likewise.
3882         * tree-dump.c: Likewise.
3883         * tree-complex.c: Likewise.
3884         * cgraphbuild.c: Likewise.
3885         * tree-ssa-threadupdate.c: Likewise.
3886         * tree-ssa-loop-niter.c: Likewise.
3887         * tree-pretty-print.c: Likewise.
3888         * tracer.c: Likewise.
3889         * gengtype.c: Likewise.
3890         * tree-loop-distribution.c: Likewise.
3891         * tree-ssa-loop-unswitch.c: Likewise.
3892         * cgraph.c: Likewise.
3893         * cgraph.h: Likewise.
3894         * tree-ssa-loop-manip.c: Likewise.
3895         * value-prof.c: Likewise.
3896         * tree-ssa-loop-ch.c: Likewise.
3897         * tree-tailcall.c: Likewise.
3898         * value-prof.h: Likewise.
3899         * tree.c: Likewise.
3900         * tree.h: Likewise.
3901         * tree-pass.h: Likewise.
3902         * ipa-cp.c: Likewise.
3903         * tree-scalar-evolution.c: Likewise.
3904         * tree-scalar-evolution.h: Likewise.
3905         * target.h: Likewise.
3906         * lambda-mat.c: Likewise.
3907         * tree-phinodes.c: Likewise.
3908         * diagnostic.h: Likewise.
3909         * builtins.c: Likewise.
3910         * tree-ssa-alias-warnings.c: Likewise.
3911         * cfghooks.c: Likewise.
3912         * fold-const.c: Likewise.
3913         * cfghooks.h: Likewise.
3914         * omp-low.c: Likewise.
3915         * tree-ssa-dse.c: Likewise.
3916         * ipa-reference.c: Likewise.
3917         * tree-ssa-uncprop.c: Likewise.
3918         * toplev.c: Likewise.
3919         * tree-gimple.c: Likewise.
3920         * tree-gimple.h: Likewise.
3921         * tree-chrec.c: Likewise.
3922         * tree-chrec.h: Likewise.
3923         * tree-ssa-sccvn.c: Likewise.
3924         * tree-ssa-sccvn.h: Likewise.
3925         * cgraphunit.c: Likewise.
3926         * tree-ssa-copyrename.c: Likewise.
3927         * tree-ssa-ccp.c: Likewise.
3928         * tree-ssa-loop-ivopts.c: Likewise.
3929         * tree-nomudflap.c: Likewise.
3930         * tree-call-cdce.c: Likewise.
3931         * ipa-pure-const.c: Likewise.
3932         * c-format.c: Likewise.
3933         * tree-stdarg.c: Likewise.
3934         * tree-ssa-math-opts.c: Likewise.
3935         * tree-ssa-dom.c: Likewise.
3936         * tree-nrv.c: Likewise.
3937         * tree-ssa-propagate.c: Likewise.
3938         * ipa-utils.c: Likewise.
3939         * tree-ssa-propagate.h: Likewise.
3940         * tree-ssa-alias.c: Likewise.
3941         * gimple-low.c: Likewise.
3942         * tree-ssa-sink.c: Likewise.
3943         * ipa-inline.c: Likewise.
3944         * c-semantics.c: Likewise.
3945         * dwarf2out.c: Likewise.
3946         * expr.c: Likewise.
3947         * tree-ssa-loop-ivcanon.c: Likewise.
3948         * predict.c: Likewise.
3949         * tree-ssa-loop.c: Likewise.
3950         * tree-parloops.c: Likewise.
3951         * tree-ssa-address.c: Likewise.
3952         * tree-ssa-ifcombine.c: Likewise.
3953         * matrix-reorg.c: Likewise.
3954         * c-decl.c: Likewise.
3955         * tree-eh.c: Likewise.
3956         * c-pretty-print.c: Likewise.
3957         * lambda-trans.c: Likewise.
3958         * function.c: Likewise.
3959         * langhooks.c: Likewise.
3960         * ebitmap.h: Likewise.
3961         * tree-vectorizer.c: Likewise.
3962         * function.h: Likewise.
3963         * langhooks.h: Likewise.
3964         * tree-vectorizer.h: Likewise.
3965         * ipa-type-escape.c: Likewise.
3966         * ipa-type-escape.h: Likewise.
3967         * domwalk.c: Likewise.
3968         * tree-if-conv.c: Likewise.
3969         * profile.c: Likewise.
3970         * domwalk.h: Likewise.
3971         * tree-data-ref.c: Likewise.
3972         * tree-data-ref.h: Likewise.
3973         * tree-flow-inline.h: Likewise.
3974         * tree-affine.c: Likewise.
3975         * tree-vect-analyze.c: Likewise.
3976         * c-typeck.c: Likewise.
3977         * gimplify.c: Likewise.
3978         * coretypes.h: Likewise.
3979         * tree-ssa-phiopt.c: Likewise.
3980         * calls.c: Likewise.
3981         * tree-ssa-coalesce.c: Likewise.
3982         * tree.def: Likewise.
3983         * tree-dfa.c: Likewise.
3984         * except.c: Likewise.
3985         * except.h: Likewise.
3986         * cfgexpand.c: Likewise.
3987         * tree-cfgcleanup.c: Likewise.
3988         * tree-ssa-pre.c: Likewise.
3989         * tree-ssa-live.c: Likewise.
3990         * tree-sra.c: Likewise.
3991         * tree-ssa-live.h: Likewise.
3992         * tree-predcom.c: Likewise.
3993         * lambda.h: Likewise.
3994         * tree-mudflap.c: Likewise.
3995         * ipa-prop.c: Likewise.
3996         * print-tree.c: Likewise.
3997         * tree-ssa-copy.c: Likewise.
3998         * ipa-prop.h: Likewise.
3999         * tree-ssa-forwprop.c: Likewise.
4000         * ggc-page.c: Likewise.
4001         * c-omp.c: Likewise.
4002         * tree-ssa-dce.c: Likewise.
4003         * tree-vect-patterns.c: Likewise.
4004         * tree-ssa-ter.c: Likewise.
4005         * tree-nested.c: Likewise.
4006         * tree-ssa.c: Likewise.
4007         * lambda-code.c: Likewise.
4008         * tree-ssa-loop-prefetch.c: Likewise.
4009         * tree-inline.c: Likewise.
4010         * tree-inline.h: Likewise.
4011         * tree-iterator.c: Likewise.
4012         * tree-optimize.c: Likewise.
4013         * tree-ssa-phiprop.c: Likewise.
4014         * tree-vect-transform.c: Likewise.
4015         * tree-object-size.c: Likewise.
4016         * tree-outof-ssa.c: Likewise.
4017         * cfgloop.c: Likewise.
4018         * system.h: Likewise.
4019         * tree-profile.c: Likewise.
4020         * cfgloop.h: Likewise.
4021         * c-gimplify.c: Likewise.
4022         * c-common.c: Likewise.
4023         * tree-vect-generic.c: Likewise.
4024         * tree-flow.h: Likewise.
4025         * c-common.h: Likewise.
4026         * basic-block.h: Likewise.
4027         * tree-ssa-structalias.c: Likewise.
4028         * tree-switch-conversion.c: Likewise.
4029         * tree-ssa-structalias.h: Likewise.
4030         * tree-cfg.c: Likewise.
4031         * passes.c: Likewise.
4032         * ipa-struct-reorg.c: Likewise.
4033         * ipa-struct-reorg.h: Likewise.
4034         * tree-ssa-reassoc.c: Likewise.
4035         * cfgrtl.c: Likewise.
4036         * varpool.c: Likewise.
4037         * stmt.c: Likewise.
4038         * tree-ssanames.c: Likewise.
4039         * tree-ssa-threadedge.c: Likewise.
4040         * langhooks-def.h: Likewise.
4041         * tree-ssa-operands.c: Likewise.
4042         * config/alpha/alpha.c: Likewise.
4043         * config/frv/frv.c: Likewise.
4044         * config/s390/s390.c: Likewise.
4045         * config/m32c/m32c.c: Likewise.
4046         * config/m32c/m32c-protos.h: Likewise.
4047         * config/spu/spu.c: Likewise.
4048         * config/sparc/sparc.c: Likewise.
4049         * config/i386/i386.c: Likewise.
4050         * config/sh/sh.c: Likewise.
4051         * config/xtensa/xtensa.c: Likewise.
4052         * config/stormy16/stormy16.c: Likewise.
4053         * config/ia64/ia64.c: Likewise.
4054         * config/rs6000/rs6000.c: Likewise.
4055         * config/pa/pa.c: Likewise.
4056         * config/mips/mips.c: Likewise.
4057
4058 2008-07-28  Simon Baldwin  <simonb@google.com>
4059
4060         * c-pragma.c (handle_pragma_message): New function.
4061         (init_pragma): Register handle_pragma_message.
4062         * doc/extend.texi (Diagnostic Pragmas): Added #pragma message
4063         documentation.
4064
4065 2008-07-27  Victor Kaplansky  <victork@il.ibm.com>
4066
4067         PR tree-optimization/35252
4068         * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
4069         REALPART_EXPR to be considered as same load operation.
4070
4071 2008-07-27  Eric Botcazou  <ebotcazou@adacore.com>
4072
4073         PR tree-optimization/36830
4074         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
4075         (expressions_equal_p): Return false if only one operand is null.
4076
4077 2008-07-26  Gerald Pfeifer  <gerald@pfeifer.com>
4078
4079         * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
4080         version requirements.
4081
4082 2008-07-26  Olivier Hainque  <hainque@adacore.com>
4083
4084         * collect2.c (symkind): New enum.  Symbol kinds we care about.
4085         (is_ctor_dtor): Return symkind instead of int.  Adjust prototype,
4086         code and head comment accordingly.
4087         (scan_prog_file): Use symkind names instead of bare integers.
4088
4089 2008-07-25  Jan Hubicka  <jh@suse.cz>
4090
4091         * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on
4092         DECL_INLINE.
4093         * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
4094         (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
4095         * dojump.c (clear_pending_stack_adjust): Likewise.
4096         * print-tree.c (print_node): Ignore DECL_INLINE.
4097         * tree-inline.c (inlinable_function_p): Likewise.
4098
4099 2008-07-25  Michael Meissner  <gnu@the-meissners.org>
4100
4101         * doc/extend.texi (hot attribute): Document that the hot attribute
4102         turns on -O3 for some ports.
4103         (cold attribute): Document that the cold attribute turns on -Os
4104         for some ports
4105
4106         * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
4107         reflect function specific option support.
4108
4109         * target.h (struct target_option_hooks): Add fields to say whether
4110         the cold attribute implies -Os and the hot attribute implies -O3.
4111
4112         * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
4113         By default, do not turn on -Os for cold functions.
4114         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
4115         not turn on -O3 for hot functions.
4116
4117         * c-common.c (handle_hot_attribute): Use target hook to determine
4118         if hot functions should enable -O3.
4119         (handle_cold_attribute): Use target hook to determine if cold
4120         functions should enable -Os.
4121
4122         * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
4123         (override_options): Move disable scheduling to
4124         optimization_options.
4125         (optimization_options): Disable scheduling here, not
4126         override_options.
4127         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
4128         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
4129
4130         * config/ia64/ia64.c (ia64_override_options): Move setting
4131         scheduling flags to ia64_optimization_options.
4132         (ia64_optimization_options): Disable scheduling options here, and
4133         not in ia64_override_options.
4134         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
4135         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
4136
4137 2008-07-25  H.J. Lu  <hongjiu.lu@intel.com>
4138
4139         PR target/36936
4140         * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
4141
4142 2008-07-25  Martin Jambor  <mjambor@suse.cz>
4143
4144         PR tree-optimization/36926
4145         * ipa-prop.c (ipa_analyze_call_uses): Call
4146         ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
4147
4148 2008-07-25  Joseph Myers  <joseph@codesourcery.com>
4149
4150         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
4151         movv2si_internal): Add mem = reg alternative.
4152
4153 2008-07-25  Andreas Tobler  <a.tobler@schweiz.org>
4154
4155         PR bootstrap/36918
4156         * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
4157         DEFAULT_PCC_STRUCT_RETURN to 127.
4158
4159 2008-07-24  Jan Hubicka  <jh@suse.cz>
4160
4161         * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
4162         (build_cgraph_edges): Likewise.
4163         * cgraph.c (cgraph_node): Do not update assembler hash.
4164         (cgraph_remove_node): Drop non-unit-at-a-time code.
4165         * tree-pass.h (pass_O0_always_inline): Remove.
4166         * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
4167         * toplev.c (process_options): Flag unit-at-a-time does not imply
4168         no section anchors.
4169         * cgraphunit.c: Update comments.
4170         (decide_is_function_needed): Drop non-unit-at-a-time mode.
4171         (cgraph_assemble_pending_functions): Remove.
4172         (cgraph_reset_node): Drop non-unit-at-a-time code.
4173         (cgraph_finalize_function): Likewise.
4174         (cgraph_analyze_function): Likewise.
4175         (cgraph_finalize_compilation_unit): Likewise.
4176         (cgraph_expand_function): Likewise.
4177         (cgraph_optimize): Likesise.
4178         (save_inline_function_body): Likewise.
4179         * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
4180         * tree-ssa-alias.c (maybe_be_aliased): Likewise.
4181         * ipa-inline.c: Update comments.
4182         (enum inlining_mode): remove INLINE_SPEED.
4183         (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
4184         (cgraph_mark_inline_edge): Likewise.
4185         (try_inline): Likewise.
4186         (cgraph_decide_inlining_incrementally): Likewise.
4187         (cgraph_gate_inlining): Remove.
4188         (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
4189         (cgraph_gate_early_inlining): Likewise.
4190         (gate_inline_passes): Remove.
4191         (pass_inline_parameters, pass_ipa_inline): Remove gates.
4192         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
4193         pass_O0_always_inline): Remove.
4194         * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
4195         * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
4196         * opts.c (no_unit_at_a_time_default): Remove.
4197         (decode_options): Remove flag_unit_at_a_time reset and warning.
4198         * opts.h (no_unit_at_a_time_default): Remove.
4199         * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
4200         early in GNU dialect.
4201         (merge_decls): Update comment; drop unit-at-a-time check.
4202         (finish_decl): Likewise.
4203         (grok_declaration): Remove flag_inline_trees code.
4204         (finish_functions): Return on function returning non-void on all
4205         statics.
4206         * ipa-tye-escape.c (gate_type_escape_vars): Remove.
4207         * cfgexpand.c (expand_one_static_var): Remove.
4208         (expand_one_var): Remove expand_one_static_var call.
4209         (expand_used_vars_for_block): Remove flag_unit_a_time check.
4210         * c-opts.c (c_common_post_options): Remove flag_inline_trees code
4211         and flag_unit_at_a-time compatibility checks.
4212         * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
4213         * tree-inline.c (flag_inline_trees): Remove.
4214         (inlinable_function_p): Don't check it.
4215         (expand_call_inline): Remove non-unit-at-a-time code.
4216         * tree-inline.h (flag_inline_trees): Remove.
4217         * tree-optimize.c (execute_early_local_optimizations): Remove
4218         unit-at-a-time checks.
4219         (tree_rest_of_compilation): Likewise.
4220         * combine.c (setup_incoming_promotions): Likewise.
4221         * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
4222         * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
4223         * passes.c (pass_inline_parameters): Update comments; remove
4224         O0_alwaysinline pass.
4225         (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
4226         (execute_one_pass): Likewise.
4227         * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
4228         (ix86_function_sseregparm): Likewise.
4229         * arm.c (arm_function_in_section_p): Likewise.
4230         * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
4231         * varpool.c: Update comments.
4232         (decide_is_variable_needed): Remove unit-at-a-time checks.
4233         (varpool_finalize_decl): Likewise.
4234
4235 2008-07-24  Kaz Kojima  <kkojima@gcc.gnu.org>
4236
4237         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
4238         to 2 instead of -1.
4239         (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal to 2.
4240
4241 2008-07-24  Kai Tietz  <kai.tietz@onevision.com>
4242
4243         * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
4244         imp symbol extension.
4245
4246         2008-07-23  Ian Lance Taylor  <iant@google.com>
4247
4248         * tree-vrp.c (infer_value_range): Ignore asm statements when
4249         looking for memory accesses for -fdelete-null-pointer-checks.
4250
4251 2008-07-24  Ben Elliston  <bje@au.ibm.com>
4252
4253         * config/spu/spu-c.c (__vector_keyword): New variable.
4254         (vector_keyword): Likewise.
4255         (spu_categorize_keyword): New function.
4256         (spu_macro_to_expand): Likewise.
4257         (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
4258         compiling an ISO C dialect.
4259
4260 2008-07-24  Ben Elliston  <bje@au.ibm.com>
4261
4262         * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
4263         conventional usage.
4264
4265 2008-07-23  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
4266
4267         * configure: Regenerate.
4268         * configure.ac: Require texinfo 4.7.
4269         * doc/install.texi: Document texinfo 4.7 requirement.
4270
4271 2008-07-23  Martin Jambor  <mjambor@suse.cz>
4272
4273         * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
4274         rather than for DECL_SAVED_TREE.
4275         * ipa-prop.c: Include diagnostic.h.
4276         (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
4277         thoroughly.
4278         (ipa_detect_param_modifications): Function rewritten from scratch.
4279         (ipa_compute_jump_functions): Changed accesses to modification flags.
4280         (ipa_free_node_params_substructures): Update flags destruction.
4281         (ipa_node_duplication_hook): Update flags duplication.
4282         (ipa_print_all_params_modified): Updated flag access.
4283         * ipa-prop.h (struct ipa_param_flags): New structure.
4284         (struct ipa_node_params): New field modification_analysis_done,
4285         modified_flags changed into param_flags.
4286         (ipa_is_ith_param_modified): Changed to use new flags.
4287         * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
4288
4289         * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
4290         ipa-cp.c and split into two functions.
4291         (ipa_print_node_jump_functions): New function.
4292         (compute_scalar_jump_functions): New function.
4293         (type_like_member_ptr_p): New function.
4294         (compute_pass_through_member_ptrs): New function.
4295         (fill_member_ptr_cst_jump_function): New function.
4296         (determine_cst_member_ptr): New function.
4297         (compute_cst_member_ptr_arguments): New function.
4298         (ipa_compute_jump_functions): Complete rewrite.
4299         * ipa-prop.h (enum jump_func_type): Make explicit that we depend
4300         on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
4301         (struct ipa_member_ptr_cst): New structure.
4302         (union jump_func_value): New field member_cst.
4303         * ipa-cp.c (ipcp_lat_is_insertable): New function.
4304         (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
4305         jump function types.
4306         (ipcp_print_all_lattices): Slight fprintf rearrangement.
4307         (ipcp_print_all_structures): Call ipa_print_all_jump_functions
4308         instead of ipcp_print_all_jump_functions.
4309         (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
4310         only for replacable scalars.
4311
4312         * doc/invoke.texi (Optimize options): Add description of
4313         -findirect-inlining.
4314         * common.opt (flag_indirect_inlining): New flag.
4315         * opts.c (decode_options): Set flag_indirect_inlining when
4316         optimize >= 3.
4317
4318         * ipa-inline.c: Include ipa-prop.h.
4319         (inline_indirect_intraprocedural_analysis): New function.
4320         (inline_generate_summary): Allocate parameter and argument info
4321         structures, call inline_indirect_intraprocedural_analysis on each
4322         node when doing indirect inlining and deallocate indirect inlining
4323         data structures in the end.
4324         * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
4325         (free_all_ipa_structures_after_iinln): New function.
4326         (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be
4327         done.
4328         * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
4329
4330         * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
4331         (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
4332         of computing the frequency separately.
4333         (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
4334         of computing the frequency separately.
4335         * ipa-cp.c (ipcp_print_all_structures): Replace a call to
4336         ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
4337         * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
4338         (ipa_get_stmt_member_ptr_load_param): New function.
4339         (ipa_is_ssa_with_stmt_def): New function.
4340         (ipa_note_param_call): New function.
4341         (ipa_analyze_call_uses): New function.
4342         (ipa_analyze_stmt_uses): New function.
4343         (ipa_analyze_params_uses): New function.
4344         (ipa_free_node_params_substructures): Also free the param_calls linked
4345         list.
4346         (ipa_node_duplication_hook): Also duplicate the param_calls linked list.
4347         (ipa_print_node_param_flags): New function.
4348         (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
4349         (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
4350         * ipa-prop.h (struct ipa_param_flags): New field called.
4351         (struct ipa_param_call_note): New structure.
4352         (struct ipa_node_params): New fields param_calls and
4353         uses_analysis_done.
4354         (ipa_is_ith_param_called): New function.
4355         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
4356         ipa_analyze_params_uses and dump parameter flags.
4357
4358         * ipa-inline.c (cgraph_decide_recursive_inlining): Call
4359         ipa_propagate_indirect_call_infos if performing indirect inlining,
4360         pass a new parameter new_edges to it.
4361         (add_new_edges_to_heap): New fucntion.
4362         (cgraph_decide_inlining_of_small_functions): New vector
4363         new_indirect_edges for newly found indirect edges , call
4364         ipa_propagate_indirect_call_infos after inlining.
4365         (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
4366         inlining if performing indirect inlining.  Call
4367         free_all_ipa_structures_after_iinln when doing so too.
4368         (inline_generate_summary): Do not call
4369         free_all_ipa_structures_after_iinln here.
4370         * ipa-prop.c (update_jump_functions_after_inlining): New function.
4371         (print_edge_addition_message): New function.
4372         (update_call_notes_after_inlining): New function.
4373         (propagate_info_to_inlined_callees): New function.
4374         (ipa_propagate_indirect_call_infos): New function.
4375         * ipa-prop.h: Include cgraph.h
4376         (struct ipa_param_call_note): Fields reordered, new field processed.
4377         * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
4378         flag indirect_call.
4379         * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
4380         rediscovered call statements.
4381         * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
4382         (dump_cgraph_node): Dump also the indirect_call flag.
4383         (cgraph_clone_edge): Copy also the indirect_call flag.
4384         * tree-inline.c (copy_bb): Do not check for fndecls from call
4385         expressions, check for edge availability when moving clones.
4386         (get_indirect_callee_fndecl): New function.
4387         (expand_call_inline): If callee declaration is not apprent from
4388         the statement, try calling get_indirect_callee_fndecl.  Do not
4389         issue warnings or call sorry when not inlinings an indirect edge.
4390         * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
4391
4392         * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
4393         bit more frandly to matching.
4394         * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
4395         * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
4396         * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
4397
4398 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
4399
4400         PR 36907
4401         * opth-gen.awk: Suppress function specific features when building
4402         target libraries.
4403         * optc-gen.awk: Ditto.
4404
4405 2008-07-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4406
4407         PR 35058
4408         * diagnostic.c (pedwarn): Add opt parameter.
4409         (pedwarn0): New.
4410         * c-tree.h (pedwarn_init): Add opt parameter.
4411         (pedwarn_c90): Likewise.
4412         (pedwarn_c99): Likewise.
4413         * c-errors.c (pedwarn_c99): Likewise.
4414         (pedwarn_c90): Likewise.
4415         * toplev.h (pedwarn): Update declaration.
4416         (pedwarn0): Declare.
4417         * c-lex.c: All calls to pedwarn changed.
4418         * builtins.c: All calls to pedwarn changed.
4419         * toplev.c: All calls to pedwarn changed.
4420         * c-decl.c: All calls to pedwarn changed.
4421         * c-typeck.c: All calls to pedwarn changed.
4422         * c-common.c: All calls to pedwarn changed.
4423         * c-parser.c: All calls to pedwarn changed.
4424
4425 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
4426             Karthik Kumar  <karthikkumar@gmail.com>
4427
4428         * attribs.c (file scope): Include c-common.h.
4429         (decl_attributes): Add support for #pragma GCC optimize and
4430         #pragma GCC option.
4431
4432         * targhooks.c (default_can_inline_p): New function that is the
4433         default for the TARGET_CAN_INLINE_P target hook.
4434
4435         * targhooks.h (default_can_inline_p): Add declaration.
4436
4437         * tree.c (cl_optimization_node): New static tree for building
4438         OPTIMIZATION_NODE tree.
4439         (cl_target_option_node): New static tree for building
4440         TARGET_OPTION_NODE tree.
4441         (cl_option_hash_table): New hash table for hashing
4442         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
4443         (cl_option_hash_hash): New function to provide the hash value for
4444         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
4445         (cl_option_hash_eq): New function to provide an equality test for
4446         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
4447         (tree_code_size): Add support for OPTIMIZATION_NODE and
4448         TARGET_OPTION_NODE trees.
4449         (tree_code_structure): Add support for OPTIMIZATION_NODE and
4450         TARGET_OPTION_NODE trees.
4451         (build_optimization_node): Build a tree that has all of the
4452         current optimization options.
4453         (build_target_option_node): Build a tree that has the target
4454         options that might be changed on a per function basis.
4455
4456         * tree.h (file scope): Include options.h.
4457         (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
4458         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
4459         (TREE_OPTIMIZATION): Ditto.
4460         (TREE_TARGET_SPECIFIC): Ditto.
4461         (struct tree_function_decl): Add fields for remembering the
4462         current optimization options and target specific options.
4463         (struct tree_optimization_option): New tree variant that remembers
4464         the optimization options.
4465         (struct tree_target_option): New tree variant that remembers the
4466         target specific flags that might change for compiling a particular
4467         function.
4468         (union tree_node): Include tree_optimization_option and
4469         tree_target_option fields.
4470         (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
4471         TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
4472         TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
4473         TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
4474         TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
4475         optimization and target options.
4476         (optimization_default_node): New macro to refer to global_trees
4477         field.
4478         (optimization_current_node): Ditto.
4479         (optimization_cold_node): Ditto.
4480         (optimization_hot_node): Ditto.
4481         (target_option_default_node): Ditto.
4482         (target_option_current_node): Ditto.
4483         (current_option_pragma): Ditto.
4484         (current_optimize_pragma): Ditto.
4485
4486         * target.h (struct gcc_target): Add valid_option_attribute_p,
4487         target_option_save, target_option_restore, target_option_print,
4488         target_option_pragma_parse, and can_inline_p hooks.
4489
4490         * toplev.h (parse_optimize_options): Add declaration.
4491         (fast_math_flags_struct_set_p): Ditto.
4492
4493         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
4494         adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
4495         optimize is used.
4496
4497         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
4498         tree_can_inline_p hook to see if one function can inline another.
4499         (cgraph_decide_inlining): Ditto.
4500         (cgraph_decide_inlining_incrementally): Ditto.
4501
4502         * opts.c (decode_options): Add support for running multiple times
4503         to allow functions with different target or optimization options
4504         than was specified on the command line.
4505         (fast_math_flags_struct_set_p): New function that is similar to
4506         fast_math_flags_set_p, except it uses the values in the
4507         cl_optimization structure instead of global variables.
4508
4509         * optc-gen.awk: Add support for TargetSave to allow a back end to
4510         declare new fields that need to be saved when using function
4511         specific options.  Include flags.h and target.h in the options.c
4512         source.  Add support for Save to indicate which options can be set
4513         for individual functions.  Generate cl_optimize_save,
4514         cl_optimize_restore, cl_optimize_print, cl_target_option_save,
4515         cl_target_option_restore, cl_target_option_print functions to
4516         allow functions to use different optimization or target options.
4517
4518         * opt-functions.awk (var_type_struct): Return the type used for
4519         storing the field in a structure.
4520
4521         * opth-gen.awk: Add support for TargetSave to allow a back end to
4522         declare new fields that need to be saved when using function
4523         specific options.  Add support for Save to indicate which options
4524         can be set for individual functions.  Only generate one extern for
4525         Mask fields.  Generate cl_optimization and cl_target_option
4526         structures to remember optimization and target options.
4527
4528         * treestruct.def (TS_OPTIMIZATION): Add support for garbage
4529         collecting new tree nodes.
4530         (TS_TARGET_OPTION): Ditto.
4531
4532         * c-decl.c (merge_decls): Merge function specific target and
4533         optimization options.
4534
4535         * function.c (invoke_set_current_function_hook): If the function
4536         uses different optimization options, change the global variables
4537         to reflect this.
4538
4539         * coretypes.h (struct cl_optimization): Add forward reference.
4540         (struct cl_target_option): Ditto.
4541
4542         * c-pragma.c (option_stack): New static vector to remember the
4543         current #pragma GCC option stack.
4544         (handle_pragma_option): New function to support #pragma GCC option
4545         to change target options.
4546         (optimize_stack): New static vector to remember the current
4547         #pragma GCC optimize stack.
4548         (handle_pragma_optimize): New function to support #pragma GCC
4549         optimize to change optimization options.
4550         (init_pragma): Add support for #pragma GCC optimize and #pragma
4551         GCC option.
4552
4553         * tree.def (OPTIMIZATION_NODE): New tree code for remembering
4554         optimization options.
4555         (TARGET_OPTION_NODE): New tree code for remembering certain target
4556         options.
4557
4558         * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
4559         TARGET_OPTION_NODE trees.
4560
4561         * common.opt (-O): Add Optimization flag.
4562         (-Os): Ditto.
4563         (-fmath-errno): Ditto.
4564         (-falign-functions): Add UInteger flag to make sure flag gets full
4565         int in cl_optimization structure.
4566         (-falign-jumps): Ditto.
4567         (-falign-labels): Ditto.
4568         (-falign-loops): Ditto.
4569         (-fsched-stalled-insns): Ditto.
4570         (-fsched-stalled-insns-dep): Ditto.
4571
4572         * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
4573         definition.
4574         (TARGET_OPTION_SAVE): Ditto.
4575         (TARGET_OPTION_RESTORE): Ditto.
4576         (TARGET_OPTION_PRINT): Ditto.
4577         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
4578         (TARGET_CAN_INLINE_P): Ditto.
4579         (TARGET_INITIALIZER): Add new hooks.
4580
4581         * tree-inline.c (tree_can_inline_p): New function to determine
4582         whether one function can inline another.  Check if the functions
4583         use compatible optimization options, and also call the backend
4584         can_inline_p hook.
4585
4586         * tree-inline.h (tree_can_inline_p): Add declaration.
4587
4588         * c-common.c (c_common_attribute): Add support for option and
4589         optimize attributes.
4590         (handle_option_attribute): Add support for the option attribute to
4591         allow the user to specify different target options for compiling a
4592         specific function.
4593         (handle_optimize_attribute): Add support for the optimize
4594         attribute to allow the user to specify different optimization
4595         options for compiling a specific function.
4596         (handle_hot_attribute): Turn on -O3 optimization for this one
4597         function if it isn't the default optimization level.
4598         (handle_cold_attribute): Turn on -Os optimization for this one
4599         function if it insn't the default optimization.
4600         (const_char_p): New const char * typedef.
4601         (optimize_args): New static vector to remember the optimization
4602         arguments.
4603         (parse_optimize_options): New function to set up the optimization
4604         arguments from either the optimize attribute or #pragma GCC optimize.
4605
4606         * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
4607         (builtin_define_std): Ditto.
4608
4609         * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
4610         Add t-i386 Makefile fragment to add i386-c.o and i386.o dependencies.
4611         (x86_64-*-*): Ditto.
4612
4613         * Makefile.in (TREE_H): Add options.h.
4614         (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
4615
4616         * doc/extend.texi (option attribute): Document new attribute.
4617         (optimize attribute): Ditto.
4618         (hot attribute): Document hot attribute sets -O3.
4619         (cold attribute): Document cold attribute sets -Os.
4620         (#pragma GCC option): Document new pragma.
4621         (#pragma GCC optimize): Ditto.
4622
4623         * doc/options.texi (TargetSave): Document TargetSave syntax.
4624         (UInteger): Document UInteger must be used for certain flags.
4625         (Save): Document Save option to create target specific options
4626         that can be saved/restored on a function specific context.
4627
4628         * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new macro.
4629         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
4630
4631         * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new hook.
4632         (TARGET_OPTION_SAVE): Ditto.
4633         (TARGET_OPTION_RESTORE): Ditto.
4634         (TARGET_OPTION_PRINT): Ditto.
4635         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
4636         (TARGET_CAN_INLINE_P): Ditto.
4637
4638         * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
4639         -mfpmath=sse,387.
4640         (-mfpmath=both): Ditto.
4641
4642 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
4643             Karthik Kumar  <karthikkumar@gmail.com>
4644
4645         * config/i386/i386.h (TARGET_ABM): Move switch into ix86_isa_flags.
4646         (TARGET_POPCNT): Ditto.
4647         (TARGET_SAHF): Ditto.
4648         (TARGET_AES): Ditto.
4649         (TARGET_PCLMUL): Ditto.
4650         (TARGET_CMPXCHG16B): Ditto.
4651         (TARGET_RECIP): Move switch into target_flags.
4652         (TARGET_FUSED_MADD): Ditto.
4653         (ix86_arch_features): Make an unsigned char type.
4654         (ix86_tune_features): Ditto.
4655         (OVERRIDE_OPTIONS): Add bool argument to override_options call.
4656         (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
4657         (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
4658
4659         * config/i386/i386.opt (arch): New TargetSave field to define
4660         fields that need to be saved for function specific option support.
4661         (tune): Ditto.
4662         (fpmath): Ditto.
4663         (branch_cost): Ditto.
4664         (ix86_isa_flags_explicit): Ditto.
4665         (tune_defaulted): Ditto.
4666         (arch_specified): Ditto.
4667         (-m128-long-double): Add Save flag to save option for target
4668         specific option support.
4669         (-m80387): Ditto.
4670         (-maccumulate-outgoing-args): Ditto.
4671         (-malign-double): Ditto.
4672         (-malign-stringops): Ditto.
4673         (-mfancy-math-387): Ditto.
4674         (-mhard-float): Ditto.
4675         (-mieee-fp): Ditto.
4676         (-minline-all-stringops): Ditto.
4677         (-minline-stringops-dynamically): Ditto.
4678         (-mms-bitfields): Ditto.
4679         (-mno-align-stringops): Ditto.
4680         (-mno-fancy-math-387): Ditto.
4681         (-mno-push-args): Ditto.
4682         (-mno-red-zone): Ditto.
4683         (-mpush-args): Ditto.
4684         (-mred-zone): Ditto.
4685         (-mrtd): Ditto.
4686         (-msseregparm): Ditto.
4687         (-mstack-arg-probe): Ditto.
4688         (-m32): Ditto.
4689         (-m64): Ditto.
4690         (-mmmx): Ditto.
4691         (-m3dnow): Ditto.
4692         (-m3dnowa): Ditto.
4693         (-msse): Ditto.
4694         (-msse2): Ditto.
4695         (-msse3): Ditto.
4696         (-msse4.1): Ditto.
4697         (-msse4.2): Ditto.
4698         (-msse4): Ditto.
4699         (-mno-sse4): Ditto.
4700         (-msse4a): Ditto.
4701         (-msse5): Ditto.
4702         (-mrecip): Move flag into target_flags.
4703         (-mcld): Ditto.
4704         (-mno-fused-madd): Ditto.
4705         (-mfused-madd): Ditto.
4706         (-mabm): Move flag into ix86_isa_flags.
4707         (-mcx16): Ditto.
4708         (-mpopcnt): Ditto.
4709         (-msahf): Ditto.
4710         (-maes): Ditto.
4711         (-mpclmul): Ditto.
4712
4713         * config/i386/i386-c.c: New file for #pragma support.
4714         (ix86_target_macros_internal): New function to #define or #undef
4715         target macros based when the user uses the #pragma GCC option to
4716         change target options.
4717         (ix86_pragma_option_parse): New function to add #pragma GCC option
4718         support.
4719         (ix86_target_macros): Move defining the target macros here from
4720         TARGET_CPU_CPP_BUILTINS in i386.h.
4721         (ix86_register_pragmas): Register the #pragma GCC option hook.  If
4722         defined, initialize any subtarget #pragmas.
4723
4724         * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
4725         REGISTER_TARGET_PRAGMAS.
4726
4727         * config/i386/t-i386: New file for x86 dependencies.
4728         (i386.o): Make dependencies mirror the include files used.
4729         (i386-c.o): New file, add dependencies.
4730
4731         * config/i386/i386-protos.h (override_options): Add bool argument.
4732         (ix86_valid_option_attribute_tree): Add declaration.
4733         (ix86_target_macros): Ditto.
4734         (ix86_register_macros): Ditto.
4735
4736         * config/i386/i386.c (ix86_tune_features): Move initialization of
4737         the target masks to initial_ix86_tune_features to allow functions
4738         to have different target options.  Make type unsigned char,
4739         instead of unsigned int.
4740         (initial_ix86_tune_features): New static vector to hold processor
4741         masks for the tune variables.
4742         (ix86_arch_features): Move initialization of the target masks to
4743         initial_ix86_arch_features to allow functions to have different
4744         target options.  Make type unsigned char, instead of unsigned int.
4745         (initial_ix86_arch_features): New static vector to hold processor
4746         masks for the arch variables.
4747         (enum ix86_function_specific_strings): New enum to describe the
4748         string options used for attribute((option(...))).
4749         (ix86_target_string): New function to return a string that
4750         describes the target options.
4751         (ix86_debug_options): New function to print the current options in
4752         the debugger.
4753         (ix86_function_specific_save): New function hook to save the
4754         function specific global variables in the cl_target_option structure.
4755         (ix86_function_specific_restore): New function hook to restore the
4756         function specific variables from the cl_target_option structure to
4757         the global variables.
4758         (ix86_function_specific_print): New function hook to print the
4759         target specific options in the cl_target_option structure.
4760         (ix86_valid_option_attribute_p): New function hook to validate
4761         attribute((option(...))) arguments.
4762         (ix86_valid_option_attribute_tree): New function that is common
4763         code between attribute((option(...))) and #pragma GCC option
4764         support that parses the options and returns a tree holding the options.
4765         (ix86_valid_option_attribute_inner_p): New helper function for
4766         ix86_valid_option_attribute_tree.
4767         (ix86_can_inline_p): New function hook to decide if one function
4768         can inline another on a target specific basis.
4769         (ix86_set_current_function); New function hook to switch target
4770         options if the user used attribute((option(...))) or #pragma GCC
4771         option.
4772         (ix86_tune_defaulted): Move to static file scope from
4773         override_options.
4774         (ix86_arch_specified): Ditto.
4775         (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
4776         ix86_isa_flags.
4777         (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
4778         (OPTION_MASK_ISA_ABM_SET): Ditto.
4779         (OPTION_MASK_ISA_POPCNT_SET): Ditto.
4780         (OPTION_MASK_ISA_CX16_SET): Ditto.
4781         (OPTION_MASK_ISA_SAHF_SET): Ditto.
4782         (OPTION_MASK_ISA_AES_UNSET): Ditto.
4783         (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
4784         (OPTION_MASK_ISA_ABM_UNSET): Ditto.
4785         (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
4786         (OPTION_MASK_ISA_CX16_UNSET): Ditto.
4787         (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
4788         (struct ptt): Move to static file scope from override_options.
4789         (processor_target_table): Ditto.
4790         (cpu_names): Ditto.
4791         (ix86_handle_option): Add support for options that are now isa options.
4792         (override_options): Add support for declaring functions that
4793         support different target options than were specified on the
4794         command line.  Move struct ptt, processor_target_table, cpu_names,
4795         ix86_tune_defaulted, ix86_arch_specified to static file scope.
4796         Add bool argument.  Fix up error messages so the appropriate error
4797         is given for either command line or attribute.
4798         (ix86_previous_fndecl): New static to remember previous function
4799         declaration to see if we need to change target options.
4800         (ix86_builtins_isa): New array to record the ISA of each builtin
4801         function.
4802         (def_builtin): Always create the builtin function, even if the
4803         current ISA doesn't support it.
4804         (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
4805         tests for those builtins.
4806         (ix86_init_builtins): Remove TARGET_MMX test for calling
4807         ix86_init_mmx_sse_builtins.
4808         (ix86_expand_builtin): If the current ISA doesn't support a given
4809         builtin, signal an error.
4810         (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
4811         (TARGET_SET_CURRENT_FUNCTION): Ditto.
4812         (TARGET_OPTION_SAVE): Ditto.
4813         (TARGET_OPTION_RESTORE): Ditto.
4814         (TARGET_OPTION_PRINT): Ditto.
4815         (TARGET_CAN_INLINE_P): Ditto.
4816
4817 2008-07-22  Rafael Avila de Espindola  <espindola@google.com>
4818
4819         * c-typeck.c (build_external_ref): Don't call assemble_external.
4820         * final.c (output_operand): Call assemble_external.
4821
4822 2008-07-21  DJ Delorie  <dj@redhat.com>
4823
4824         * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
4825         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
4826
4827 2008-07-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4828
4829         * config/spu/spu.md ("div<mode>3"): Convert into expander, move
4830         original insn and splitter contents into ...
4831         ("*div<mode>3_fast"): ... this new pattern.  Enable only if
4832         flag_unsafe_math_optimizations.  Add dummy scratch register.
4833         ("*div<mode>3_adjusted"): New insn and splitter.  Enable only if
4834         !flag_unsafe_math_optimizations.  Returns number with next
4835         highest magnitude if this is still less or equal to the true
4836         quotient in magnitude.
4837
4838 2008-07-21  Rafael Avila de Espindola  <espindola@google.com>
4839
4840         * Makefile.in: Replace toplev.h with TOPLEV_H.
4841         * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
4842         * c-lex.c (fe_file_change): Don't set in_system_header.
4843         * c-parser.c (c_token): Remove in_system_header.
4844         (c_lex_one_token): Don't set in_system_header.
4845         (c_parser_set_source_position_from_token): Don't set in_system_header.
4846         * diagnostic.c (diagnostic_report_diagnostic): Use location from
4847         diagnostic_info.
4848         (warning_at): New.
4849         * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
4850         * flags.h (in_system_header): Remove.
4851         * function.c (saved_in_system_header): Remove.
4852         (push_cfun): Don't set in_system_header.
4853         (pop_cfun): Don't set in_system_header.
4854         (push_struct_function): Don't set in_system_header.
4855         * input.h (expanded_location): Add sysp.
4856         (in_system_header_at): New.
4857         (in_system_header): New.
4858         * toplev.c (in_system_header): Remove.
4859         * toplev.h: Include input.h
4860         (warning_at): New.
4861         * tree-cfg.c (execute_warn_function_return): Call warning_at.
4862         * tree-ssa.c (warn_uninit): Call warning_at.
4863         (warn_uninitialized_var): Update calls to warn_uninit.
4864         (warn_uninitialized_phi): Update calls to warn_uninit.
4865         * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
4866         (expand_location): Initialize xloc.sysp.
4867         * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
4868         (tree_decl_with_vis): Remove in_system_header_flag.
4869
4870 2008-07-21  Andreas Krebbel  <krebbel1@de.ibm.com>
4871
4872         PR target/36822
4873         * recog.c (asm_operand_ok): Change the order of the extra
4874         memory constraint checks.
4875
4876 2008-07-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4877
4878         PR tree-opt/36879
4879         * tree-switch-conversion.c (build_one_array): Call
4880         varpool_mark_needed_node and varpool_finalize_decl
4881         instead of assemble_variable.
4882
4883 2008-07-19  Jan Hubicka  <jh@suse.cz>
4884
4885         * cgraph.c (cgraph_add_new_function): Do early local passes.
4886         * tree-nrv.c (gate_pass_return_slot): New gate.
4887         (pass_nrv): Add the gate.
4888         * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
4889         functions.
4890         (coalesce_ssa_name): Coalesce SSA names.
4891         * tree-ssa-live.c (remove_unused_locals): Be more conservative when
4892         not optimizing so unused user vars remains visible.
4893         * common.opt (flag_tree_ter): Always enable by default.
4894         * tree-ssa-ter.c: Include flags.h
4895         (is_replaceable_p): Check that locations match; when aliasing is missing
4896         be conservative about loads.
4897         * tree-optimize.c (gate_init_datastructures): Remove.
4898         (pass_init_datastructures): New.
4899         * passes.c: Reorder passes so we always go into SSA.
4900
4901 2008-07-19  Jan Hubicka  <jh@suse.cz>
4902
4903         * doc/extend.texi (flatten attribute): Remove note about unit-at-a-time
4904         * doc/invoke.texi (--combine): Likewise.
4905         (-finline-functions-called-once): Update levels when enabled.
4906         (-funit-at-a-time): Document new behaviour.
4907         (-ftoplevel-reorder): Document that it is enabled -O0 and imply
4908         -fno-section-anchors when disabled explicitly.
4909         (inline params): They are not ignored now.
4910         (precompiled headers): Remove unit-at-a-time as being incompatible.
4911         * opts.c (decode_options): Handle unit-at-a-time as alias;
4912         imply -fno-section-anchors when toplevel reorder is disabled
4913         explicitly.
4914         * common.opt (ftoplevel-reorder): Set default value to 2.
4915         (funit-at-a-time): Set default value to 1.
4916         * config/rs6000/rs6000.c (optimization_options): Set section anchors
4917         to 2.
4918
4919 2008-07-19  Jan Hubicka  <jh@suse.cz>
4920
4921         * builtins.c (expand_builtin_int_roundingfn,
4922         expand_builtin_int_roundingfn_2): Do not take subtarget argument;
4923         it is not useful.
4924
4925 2008-07-19  Richard Guenther  <rguenther@suse.de>
4926
4927         PR bootstrap/36864
4928         * tree-ssa-sccvn.h (get_constant_value_id): Declare.
4929         * tree-ssa-sccvn.c (get_constant_value_id): New function.
4930         * tree-ssa-pre.c (get_expr_value_id): For newly created
4931         constant value-ids make sure to add the expression to its
4932         expression-set.
4933
4934 2008-07-19  Jakub Jelinek  <jakub@redhat.com>
4935
4936         PR middle-end/36877
4937         * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
4938         return value of the builtin is ignored.
4939
4940 2008-07-19  Olivier Hainque  <hainque@adacore.com>
4941
4942         * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
4943         bits, a C conformant malloc implementation has to provide.
4944         * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
4945
4946 2008-07-19  Joseph Myers  <joseph@codesourcery.com>
4947
4948         PR target/36780
4949         PR target/36827
4950         * reload.c (find_reloads_subreg_address): Only reload address if
4951         reloaded == 0, not for reloaded != 1.
4952
4953         Revert:
4954         2008-07-16  Joseph Myers  <joseph@codesourcery.com>
4955         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
4956         (m32c_legitimate_address_p): Handle "++rii" addresses created by
4957         m32c_legitimize_reload_address.
4958
4959         2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
4960         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
4961         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
4962
4963 2008-07-19  Olivier Hainque  <hainque@adacore.com>
4964
4965         * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
4966         argument, saying whether nested array are to be collapsed
4967         into a single array type DIE with multiple subscripts.
4968         (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
4969         issues, centralize the nested array types collapsing control and
4970         disable the transformation for Ada.
4971
4972 2008-07-18  Uros Bizjak  <ubizjak@gmail.com>
4973
4974         PR target/36786
4975         * config/i386/i386.md (x86_64_shift_adj_1): Rename from
4976         x86_64_shift_adj.
4977         (x86_64_shift_adj_2): New expander.
4978         (x86_64_shift_adj_3): Ditto.
4979         * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
4980         to split TImode operands.
4981         (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
4982         (ix86_split_lshr): Ditto.
4983
4984 2008-07-18  Kris Van Hees  <kris.van.hees@oracle.com>
4985
4986         * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
4987         and __CHAR32_TYPE__.
4988         * c-typeck.c (digest_init): Support char16_t and char32_t.
4989         (set_nonincremental_init_from_string): Idem.
4990
4991 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
4992
4993         PR middle-end/36859
4994         * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
4995         PREFERRED_STACK_BOUNDARY.
4996         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
4997
4998 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
4999
5000         PR middle-end/36858
5001         * function.c (locate_and_pad_parm): Cap boundary earlier.
5002
5003 2008-07-17  Julian Brown  <julian@codesourcery.com>
5004
5005         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
5006         no-op for targets which don't use DLLs.
5007
5008 2008-07-17  Martin Jambor  <mjambor@suse.cz>
5009
5010         * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
5011         that nodes are relevant by examining the node->analyzed flag.
5012         (ipcp_init_stage): Check which nodes are relevant, assert that the
5013         relevant ones are also required.
5014         (ipcp_propagate_stage): Check on the side arrays are properly
5015         allocated.
5016         (ipcp_print_all_jump_functions): Make sure not to touch any node
5017         that is not analyzed or an edge that does not have a corresponding
5018         entry in the on-the-side vectors.
5019         (ipcp_function_scale_print): Likewise.
5020         (ipcp_update_callgraph): Check that the node is relevant.
5021         (ipcp_insert_stage): Check that the node is relevant.  Check there is
5022         an info for every node and edge.
5023         * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
5024         (ipa_print_all_tree_maps): Likewise and a new variable info.
5025         (ipa_print_all_params_modified): Likewise.
5026         * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
5027
5028 2008-07-17  Roman Zippel <zippel@linux-m68k.org>
5029
5030         PR target/25343
5031         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
5032
5033 2008-07-17  Paolo Bonzini  <bonzini@gnu.org>
5034
5035         PR rtl-optimization/36753
5036         * fwprop.c (use_killed_between): Don't shortcut
5037         single-definition global registers.
5038
5039 2008-07-16  Jan Hubicka  <jh@suse.cz>
5040
5041         * cgraph.h (varpool_empty_needed_queue): Declare.
5042         * cgraphunit.c (output_in_order): Mark all variables as needed;
5043         empty the queue.
5044         * varpool.c (varpool_assemble_node): Update debug queue.
5045         (varpool_assemble_pending_decls): Don't do it here.
5046         (varpool_empty_needed_queue):  New function.
5047
5048 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5049
5050         * recog.c (peephole2_optimize): Fix formatting.
5051
5052 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5053
5054         * c-pch.c (get_ident): Avoid C++ keywords.
5055         * combine-stack-adj.c (single_set_for_csa): Likewise.
5056         * final.c (asm_insn_count, final_scan_insn, alter_subreg,
5057         output_asm_insn): Likewise.
5058         * reload.c (push_secondary_reload, find_reusable_reload,
5059         push_reload, combine_reloads, find_reloads,
5060         debug_reload_to_stream): Likewise.
5061         * reload.h (struct reload): Likewise.
5062         * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
5063         allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
5064         emit_output_reload_insns): Likewise.
5065         * targhooks.c (default_secondary_reload): Likewise.
5066         * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
5067
5068 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5069
5070         * recog.c (validate_change_1, validate_change,
5071         validate_unshare_change, validate_replace_rtx_1, struct
5072         funny_match, constrain_operands, peephole2_optimize): Avoid C++
5073         keywords.
5074         * reload.c (push_secondary_reload, secondary_reload_class,
5075         scratch_reload_class, find_valid_class, find_reusable_reload,
5076         push_reload, find_dummy_reload, find_reloads_address_1,
5077         find_reloads_address_part, find_equiv_reg): Likewise.
5078         * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
5079         choose_reload_regs): Likewise.
5080         * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
5081         Likewise.
5082         * rtlhooks.c (gen_lowpart_if_possible): Likewise.
5083         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
5084         * sched-rgn.c (concat_INSN_LIST): Likewise.
5085         * stor-layout.c (mode_for_size, mode_for_size_tree,
5086         smallest_mode_for_size): Likewise.
5087
5088 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5089
5090         * cfg.c (dump_reg_info): Avoid C++ keywords.
5091         * dwarf2asm.c (dw2_force_const_mem,
5092         dw2_asm_output_encoded_addr_rtx): Likewise.
5093         * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
5094         * expmed.c (expand_shift): Likewise.
5095         * global.c (find_reg): Likewise.
5096         * graph.c (draw_edge): Likewise.
5097         * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
5098         * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
5099         widen_clz, widen_bswap, expand_parity, expand_unop,
5100         emit_cmp_and_jump_insn_1): Likewise.
5101         * postreload.c (reload_cse_simplify_operands): Likewise.
5102         * ra.h (add_neighbor): Likewise.
5103         * reg-stack.c (remove_regno_note, change_stack): Likewise.
5104         * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
5105         record_reg_classes, copy_cost, record_address_regs,
5106         invalid_mode_change_p): Likewise.
5107         * regrename.c (regrename_optimize, scan_rtx_reg,
5108         dump_def_use_chain, find_oldest_value_reg,
5109         replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
5110
5111 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
5112
5113         * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
5114         MASK_POWERPC64 for power4 in previous commit.
5115
5116 2008-07-16  Olivier Hainque  <hainque@adacore.com>
5117
5118         * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
5119         instead of bare conversion to cast const-ness away.
5120
5121 2008-07-16  Anatoly Sokolov  <aesok@post.ru>
5122
5123         * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
5124         XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
5125         * config/xtensa/xtensa.c (xtensa_function_value): New function.
5126         (TARGET_FUNCTION_VALUE): Define.
5127
5128 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
5129
5130         * config/rs6000/rs6000.c (processor_target_table): Add
5131         MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
5132
5133 2008-07-16  Joseph Myers  <joseph@codesourcery.com>
5134
5135         PR target/36827
5136         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
5137         (m32c_legitimate_address_p): Handle "++rii" addresses created by
5138         m32c_legitimize_reload_address.
5139
5140 2007-07-16  Rafael Avila de Espindola  <espindola@google.com>
5141
5142         * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
5143         DECL_IN_SYSTEM_HEADER in sync.
5144
5145 2008-07-15  Daniel Berlin  <dberlin@dberlin.org>
5146
5147         * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
5148         * tree-ssa-pre.c (pre_expr_eq): Ditto
5149         (get_constant_for_value_id): Take a type as an argument.
5150         (fully_constant_expression): Pass in type.
5151         (find_or_generate_expression): Short circuit constant case.
5152         (create_expression_by_pieces): Remove special casing of
5153         pointer_plus.
5154         (do_regular_insertion): Short circuit constant case.
5155         (do_partial_partial_insertion): Ditto.
5156
5157 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5158
5159         PR target/36782
5160         * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
5161
5162 2008-07-15  Bob Wilson  <bob.wilson@acm.org>
5163
5164         * config/xtensa/libgcc-xtensa.ver: New file.
5165         * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
5166
5167 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5168
5169         * df-problems.c (df_set_note): Avoid C++ keywords.
5170         * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
5171         * dse.c (record_store, remove_useless_values): Likewise.
5172         * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
5173         gen_reg_rtx_offset, operand_subword, change_address_1,
5174         change_address, adjust_address_1, offset_address,
5175         widen_memory_access, emit_copy_of_insn_after): Likewise.
5176         * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
5177         * fwprop.c (should_replace_address, propagate_rtx_1,
5178         propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
5179         Likewise.
5180         * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
5181         gcse_emit_move_after, update_ld_motion_stores): Likewise.
5182         * lcm.c (compute_insert_delete, pre_edge_lcm,
5183         compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
5184         * lower-subreg.c (resolve_reg_notes): Likewise.
5185         * mode-switching.c (optimize_mode_switching): Likewise.
5186
5187 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5188
5189         * bt-load.c (add_btr_def, migrate_btr_def,
5190         branch_target_load_optimize): Avoid C++ keywords.
5191         * caller-save.c (insert_restore, insert_save, insert_one_insn):
5192         Likewise.
5193         * combine.c (subst, simplify_set, make_extraction,
5194         make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
5195         * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
5196         fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
5197
5198 2008-07-15  Richard Guenther  <rguenther@suse.de>
5199
5200         PR middle-end/36369
5201         * c-common.c (strict_aliasing_warning): Do not warn for
5202         TYPE_REF_CAN_ALIAS_ALL pointers.
5203         (c_common_get_alias_set): may_alias types are not special.
5204         * tree.c (build_pointer_type_for_mode): Look up the may_alias
5205         attribute and set can_ref_all accordingly.
5206         (build_reference_type_for_mode): Likewise.
5207         * doc/extend.texi (may_alias): Clarify.
5208
5209 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5210
5211         PR target/36780
5212         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
5213         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
5214
5215 2008-07-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5216
5217         PR target/31568
5218         * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
5219         gcc_assert, instead call output_operand_lossage.
5220
5221 2008-07-15  Kai Tietz  <kai.tietz@onevision.com>
5222
5223         * builtins.c (std_canonical_va_list): Treat structure based
5224         va_list types.
5225
5226 2008-07-15  Ben Elliston  <bje@au.ibm.com>
5227
5228         * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
5229
5230 2007-07-14  Rafael Avila de Espindola  <espindola@google.com>
5231
5232         * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
5233         is set.
5234
5235 2008-07-14  Jan Hubicka  <jh@suse.cz>
5236
5237         * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
5238         * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
5239         fix predicates and constraints.
5240         * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
5241         * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
5242
5243 2008-07-14  Doug Kwan  <dougkwan@google.com>
5244
5245         * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
5246         additional option file arm/eabi.opt.
5247         * config/arm/eabi.h (File): New configuration file for EABI targets.
5248         * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
5249         SUBSUBTARGET_EXTRA_SPECS.
5250         (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
5251         * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
5252         from STARTFILE_SPEC so that it can be referenced in an override.
5253         (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
5254         (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
5255         can be referenced in an override.
5256         (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
5257         * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
5258         so that it can be referenced in an override.
5259         (LINK_SPEC): Use BPABI_LINK_SPEC.
5260         * config/arm/eabi.opt (File): New.
5261
5262 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5263
5264         * Makefile.in (TARGET_DEF_H): Add targhooks.h.
5265         (FIXED_VALUE_H): New variable.
5266         (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
5267         input.h, fixed-value.h.
5268         (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
5269         (BASIC_BLOCK_H): Use $(BITMAP_H).
5270         (FUNCTION_H): Add varray.h.
5271         (IPA_REFERENCE_H): Use $(BITMAP_H).
5272         (CGRAPH_H): Add $(BASIC_BLOCK_H).
5273         (DF_H): Use $(BITMAP_H).
5274         (GGC_H): Add statistics.h.
5275         (INSN_ADDR_H): New.
5276         (INSN_ATTR_H): Use it.
5277         (SYSTEM_H): Add safe-ctype.h, filenames.h.
5278         (INPUT_H): New.
5279         (SYMTAB_H): Add $(OBSTACK_H).
5280         (CPP_INTERNAL_H): New.
5281         (TREE_DUMP_H): Add tree-pass.h.
5282         (TREE_FLOW_H): Use $(BITMAP_H)
5283         (PRETTY_PRINT_H): Use $(INPUT_H).
5284         (EBITMAP_H): Rename from typo-ed EBIMAP_H.
5285         (GSTAB_H): New.
5286         (BITMAP_H): New.
5287         (many object files): Fix lots of header dependencies throughout.
5288
5289 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5290
5291         * Makefile.in (write_entries_to_file, write_entries_to_file_split):
5292         New macros.
5293         (s-gtyp-input): Use them to write tmp-gi.list.
5294         (echo_to_gi.list): Remove.
5295
5296 2008-07-14  Richard Guenther  <rguenther@suse.de>
5297
5298         * tree-ssa-sccvn.c (pre_info): Remove.
5299         (switch_to_PRE_table): Likewise.
5300         (free_scc_vn): Do not clear SSA_NAME_VALUE.  Do not free pre_info.
5301         (set_hashtable_value_ids): Do not create value-ids for the
5302         optimistic tables.
5303         (run_scc_vn): Remove double test.  Remove bogus special-case
5304         in value-number printing.
5305         * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
5306         * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
5307         SSA_NAME_VALUE.
5308         * tree-flow-inline.h (get_value_handle): Remove.
5309         * tree-flow.h (get_value_handle): Remove.
5310
5311 2008-07-14  Martin Jambor  <mjambor@suse.cz>
5312
5313         * tree-switch-conversion.c (gen_inbound_check): Make sure the type
5314         in which we generate arithmetics is not a subrange.
5315
5316 2008-07-14  Martin Jambor  <mjambor@suse.cz>
5317
5318         * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
5319
5320 2008-07-14  Richard Guenther  <rguenther@suse.de>
5321
5322         * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
5323
5324 2008-07-14  Andreas Krebbel  <krebbel1@de.ibm.com>
5325
5326         PR target/36745
5327         * config/s390/s390.c: (s390_secondary_reload): Add a secondary
5328         reload for symbol refs moved to r0 with -fPIC.
5329         (legitimize_pic_address): Use the target register as temporary
5330         reg if possible.
5331         (emit_symbolic_move): Adjust comment.
5332         * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
5333         New expanders.
5334
5335 2008-07-14  Ben Elliston  <bje@au.ibm.com>
5336
5337         * c-common.h (C_CPP_HASHNODE): New macro.
5338         * coretypes.h (struct cpp_token): Forward declare.
5339         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
5340         the context-sensitive keyword method.
5341         * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
5342         __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
5343         expand_bool_pixel): New.
5344         (altivec_categorize_keyword): New function.
5345         (init_vector_keywords): New function.
5346         (rs6000_macro_to_expand): Likewise.
5347         (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
5348         compiling an ISO C dialect.
5349
5350 2008-07-13  Daniel Berlin  <dberlin@dberlin.org>
5351
5352         * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
5353         (create_expression_by_pieces): Fix typo.
5354         (do_regular_insertion): Use debug counter here too.
5355
5356 2008-07-14  Hans-Peter Nilsson  <hp@axis.com>
5357
5358         PR target/35492.
5359         * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
5360         CONST_OK_FOR_LETTER_P.  All port-local users changed.
5361         (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
5362         implement Kp matching power-of-two.
5363         (CONSTRAINT_LEN): Define to match.
5364         * config/cris/cris.md: Replace all use of constraint K with Kc.
5365         ("*btst*): Use Kp for operand 0 of last alternative.
5366
5367 2008-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5368
5369         PR testsuite/36440
5370         * tree-call-cdce.c (check_target_format): Accept MIPS single, double
5371         and quad formats.
5372
5373 2008-07-13  Jan Hubicka  <jh@suse.cz>
5374
5375         * tree.c (decl_assembler_name_equal): Expect assembler name of decl
5376         to be mangled too.
5377
5378 2008-07-13  Richard Guenther  <rguenther@suse.de>
5379
5380         PR middle-end/36811
5381         * langhooks.c (lhd_print_error_function): Deal with recursive
5382         BLOCK trees.
5383
5384 2008-07-12  Jan Hubicka  <jh@suse.cz>
5385
5386         * cgraph.c (assembler_name_hash): New static var.
5387         (hash_node_by_assembler_name, eq_assembler_name): New.
5388         (cgraph_node_for_asm): Use hashtable.
5389         (cgraph_remove_node): Maintain hashtable.
5390         (change_decl_assembler_name): Sanity check that names are not changing
5391         after aliasing was processed.
5392         * cgraph.h (varpoon_node): Add next GGC marker.
5393         * tree.c (decl_assembler_name_equal): Constify.
5394         (decl_assembler_name_hash): New.
5395         * tree.h (decl_assembler_name_equal): Constify.
5396         (decl_assembler_name_hash): Update.
5397
5398 2008-07-12  David Daney  <ddaney@avtrex.com>
5399
5400         * config/mips/driver-native.c (host_detect_local_cpu): Handle
5401         sb1 and r5000 cpus.
5402
5403 2008-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
5404
5405         * doc/md.texi: Document the MIPS "v" constraint.
5406         * config/mips/mips.h (reg_class): Revert last change.
5407         (REG_CLASS_NAMES): Likewise.
5408         (REG_CLASS_CONTENTS): Likewise.
5409         * config/mips/mips.c (mips_regno_to_class): Likewise.
5410         * config/mips/constraints.md (v): Likewise, but add documentation.
5411         Add a comment to say that this constraint should not be used in
5412         gcc code.
5413
5414 2008-07-11  DJ Delorie  <dj@redhat.com>
5415
5416         * config/h8300/h8300.md (length): Fix branch offset limit.
5417
5418 2008-07-11  Anatoly Sokolov  <aesok@post.ru>
5419
5420         * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
5421         * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
5422         (avr_hard_regno_scratch_ok): New function.
5423         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
5424         * config/avr/avr.md (all peepholes that request a scratch register):
5425         Remove avr_peep2_scratch_safe use.
5426
5427 2008-07-11  Tom Tromey  <tromey@redhat.com>
5428             Ian Lance Taylor  <iant@google.com>
5429
5430         * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
5431         (struct c_common_resword): Define.
5432         (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
5433         (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
5434         (c_common_reswords, num_c_common_reswords): Declare.
5435         * c-common.c (c_common_reswords): New global const array.
5436         (num_c_common_reswords): New const int.
5437         * c-parser.c (struct resword, reswords): Don't define.
5438         (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
5439         (c_parse_init): Clarify mask code.  Use c_common_reswords rather
5440         than reswords.  If warning about C++ keywords, give them a special
5441         RID code.
5442         (c_lex_one_token): Warn about C++ keywords.  Call
5443         objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
5444         (c_parser_external_declaration): Look for RID_xxx rather than
5445         RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
5446         (c_parser_statement_after_labels): Likewise.
5447         (c_parser_objc_class_instance_variables): Likewise.
5448         (c_parser_objc_class_declaration): Likewise.
5449         (c_parser_objc_try_catch_statement): Likewise.
5450         * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
5451         (declspecs_add_type): Likewise.
5452
5453 2008-07-11  Angelo Graziosi  <angelo.graziosi@alice.it>
5454
5455         * ggc-page.c (alloc_page):
5456         Substituting xmalloc, xcalloc with
5457         XNEWVEC and XCNEWVAR macros which add the
5458         needed casts.
5459
5460 2008-07-11  Richard Guenther  <rguenther@suse.de>
5461
5462         PR tree-optimization/36765
5463         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
5464         aliases from HEAP vars to SMTs.
5465
5466 2008-07-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5467
5468         * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
5469         * configure.ac (loose_warn): Move -Wc++-compat from here...
5470         (strict_warn): ...to here.
5471         * configure: Regenerate.
5472
5473 2008-07-10  Joseph Myers  <joseph@codesourcery.com>
5474
5475         * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
5476         i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
5477         m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
5478         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
5479         excluding more specific h8300-*-* and sh-*-* targets.
5480
5481 2008-07-10  Daniel Berlin  <dberlin@dberlin.org>
5482
5483         * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
5484         (eliminate): Ditto.
5485         (execute_pre): Call loop_optimizer_finalize in early exit.
5486
5487 2008-07-10  Jakub Jelinek  <jakub@redhat.com>
5488
5489         PR middle-end/36790
5490         * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
5491         uids in the bitmap, not just VAR_DECL uids.
5492
5493         PR rtl-optimization/36419
5494         * combine-stack-adj.c (adjust_frame_related_expr): New function.
5495         (combine_stack_adjustments_for_block): Call it if needed.  Delete
5496         correct insn.
5497         * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
5498         DW_CFA_GNU_args_size if CSA pass merged some adjustments into
5499         prologue sp adjustment.
5500
5501 2008-07-10  Peter Maydell  <pmaydell@chiark.greenend.org.uk>
5502
5503         PR other/28322
5504         * opts.c (print_ignored_options): Report postponed diagnostics for
5505         unknown -Wno-* options as warnings, not errors.
5506         (postpone_unknown_option_error): Renamed to...
5507         (postpone_unknown_option_warning): ... this.
5508
5509 2008-07-09  Doug Kwan  <dougkwan@google.com>
5510
5511         Revert:
5512         2008-07-08  Doug Kwan  <dougkwan@google.com>
5513
5514         * config/arm/arm.opt (mandroid): New option.
5515         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
5516         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
5517         (CC1_SPEC): Same.
5518         (CC1PLUS_SPEC): Same.
5519         (LIB_SPEC): Same.
5520         (STARTFILE_SPEC): Same.
5521         (ENDFILE_SPEC): Same.
5522         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
5523         used.
5524
5525 2008-07-09  Richard Sandiford  <rdsandiford@googlemail.com>
5526
5527         PR target/35802
5528         * config/mips/mips.h (reg_class): Remove V1_REG.
5529         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
5530         * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
5531         instead of V1_REGS.
5532         (mips_get_tp): New function.
5533         (mips_legitimize_tls_address): Use it.
5534         * config/mips/constraints.md (v): Delete.
5535         * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
5536         (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
5537         After reload, split into a move and ...
5538         (*tls_get_tp_<mode>_split): ...this new instruction.
5539
5540 2008-07-09  David Daney  <ddaney@avtrex.com>
5541
5542         * config/mips/driver-native.c: Include coretypes.h and tm.h.
5543
5544 2008-07-09  Jakub Jelinek  <jakub@redhat.com>
5545
5546         * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
5547         (push_gimplify_context): Don't allocate temp_htab nor c itself here.
5548         Add c argument.
5549         (pop_gimplify_context): Check c->temp_htab instead of optimize whether
5550         htab_delete should be called.  Don't free c.
5551         (lookup_tmp_var): Create temp_htab lazily.
5552         (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
5553         gimplify_body, force_gimple_operand): Adjust push_gimplify_context
5554         callers.
5555         * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
5556         lower_omp_ordered, lower_omp_critical, lower_omp_for,
5557         create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
5558         * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
5559         * tree-sra.c (generate_element_init): Likewise.
5560         * tree-mudflap.c (execute_mudflap_function_ops,
5561         execute_mudflap_function_decls): Likewise.
5562         * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
5563         * tree-gimple.h (struct gimplify_ctx): New type.
5564         (push_gimplify_context): Adjust prototype.
5565
5566 2008-07-09  Daniel Berlin  <dberlin@dberlin.org>
5567
5568         * tree-ssa-pre.c (phi_translate_1): Update placement of
5569         add_to_value calls.
5570
5571 2008-07-09  Anatoly Sokolov  <aesok@post.ru>
5572
5573         * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
5574         * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
5575         (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
5576         * targhooks.c (default_hard_regno_scratch_ok): New function.
5577         * targhooks.h (default_hard_regno_scratch_ok): Declare function.
5578         * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
5579         * recog.c:  Include "target.h".
5580         (peep2_find_free_register): Add check for global regs. Add target
5581         specific check.
5582         * Makefile.in (recog.o): Depend on target.h.
5583
5584 2008-07-09  Kaz Kojima  <kkojima@gcc.gnu.org>
5585
5586         * config/sh/sh.c (sh_canonical_va_list_type): New.
5587         (TARGET_CANONICAL_VA_LIST_TYPE): Define.
5588
5589 2008-07-09  Raksit Ashok <raksit@google.com>
5590
5591         * doc/invoke.texi (Option Summary): Mention new option
5592         -Wdisallowed-function-list=...
5593         (Warning Options): Document -Wdisallowed-function-list=...
5594         * common.opt (Wdisallowed-function-list=): New flag.
5595         * flags.h (warn_disallowed_functions): External definition of new
5596         boolean warning flag.
5597         (warn_if_disallowed_function_p): Declare new function.
5598         * opts.c (warning_disallowed_functions): New static variable.
5599         (warn_disallowed_functions): New boolean warning flag.
5600         (warn_if_disallowed_function_p): New function.
5601         (add_comma_separated_to_vector): Rename
5602         add_instrument_functions_exclude_list to this.
5603         (common_handle_option): Handle new option. Rename calls to
5604         add_instrument_functions_exclude_list into calls to
5605         add_comma_separated_to_vector.
5606         * c-parser.c (c_parser_postfix_expression_after_primary): New warning
5607         based on flag warn_disallowed_functions.
5608
5609 2008-07-09  Christian Bruel  <christian.bruel@st.com>
5610
5611         * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
5612          instead of get_attr_length.
5613
5614 2008-07-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5615
5616         * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
5617         keywords.
5618         * genemit.c (gen_insn): Likewise.
5619         * gengtype.c (note_def_vec): Likewise.
5620         * gengtype.h (note_def_vec): Likewise.
5621         * genoutput.c (struct data, output_insn_data, process_template,
5622         gen_expand, gen_split, note_constraint): Likewise.
5623         * genrecog.c (new_decision, add_to_sequence, factor_tests,
5624         make_insn_sequence): Likewise.
5625         * gensupport.c (record_insn_name): Likewise.
5626
5627 2008-07-08  Doug Kwan  <dougkwan@google.com>
5628
5629         * config/arm/arm.opt (mandroid): New option.
5630         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
5631         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
5632         (CC1_SPEC): Same.
5633         (CC1PLUS_SPEC): Same.
5634         (LIB_SPEC): Same.
5635         (STARTFILE_SPEC): Same.
5636         (ENDFILE_SPEC): Same.
5637         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
5638         used.
5639
5640 2008-07-08  Raksit Ashok  <raksit@google.com>
5641
5642         * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
5643         (set_storage_via_setmem): Fix expected_align parameter.
5644         * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
5645         missing from the list.
5646         * doc/md.texi (movmem): Explicitly state that expected alignment is
5647         to be expressed in bytes.
5648         (setmem): Explicitly state that expected alignment is to be expressed
5649         in bytes.
5650
5651 2008-07-08  Joseph Myers  <joseph@codesourcery.com>
5652
5653         * reload.c (find_reloads_subreg_address): Do not require validity
5654         of address in original mode before reloading address.
5655
5656 2008-07-07  Tianwei Sheng  <tianweis@google.com>
5657
5658         * df-core.c (df_remove_problem): Adjust the access to avoid out of
5659         bounds array access.
5660
5661 2008-07-08  Jakub Jelinek  <jakub@redhat.com>
5662
5663         * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
5664
5665 2008-07-05  Daniel Berlin  <dberlin@dberlin.org>
5666
5667         Fix PR tree-optimization/23455
5668         Fix PR tree-optimization/35286
5669         Fix PR tree-optimization/35287
5670         * Makefile.in (OBJS-common): Remove tree-vn.o.
5671         (tree-vn.o): Remove.
5672         * dbgcnt.def: Add treepre_insert debug counter.
5673         * gcc/tree-flow.h (add_to_value): Updated for other changes.
5674         (debug_value_expressions): Ditto.
5675         (print_value_expressions): Ditto.
5676         * tree-pretty-print.c (dump_generic_node): Updated for
5677         VALUE_HANDLE removal.
5678         * tree-ssa-dom.c (record_equality): Ditto.
5679         (cprop_operand): Ditto.
5680         (lookup_avail_expr): Ditto.
5681         * tree-ssa-threadedge.c
5682         (record_temporary_equivalences_from_stmts_at_dest): Ditto.
5683         (simplify_control_stmt_condition): Ditto.
5684         * tree.c (tree_code_size): Ditto.
5685         (tree_node_structure): Ditto.
5686         (iterative_hash_expr): Ditto.
5687         * tree.def: Ditto.
5688         * tree.h (VALUE_HANDLE_ID): Ditto.
5689         (VALUE_HANDLE_EXPR_SET): Ditto.
5690         (struct tree_value_handle): Ditto.
5691         (union tree_node): Ditto.
5692         * treestruct.def: Ditto.
5693         * tree-vn.c: Removed.
5694         * tree-ssa-pre.c: Rewritten entirely.
5695         * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
5696         (constant_value_ids): Ditto.
5697         (vn_nary_op_t): Moved to header.
5698         (vn_phi_t): Ditto.
5699         (vn_reference_op_t): Ditto
5700         (vn_reference_t): Ditto.
5701         (next_value_id): New variable.
5702         (VN_INFO): Add an assert.
5703         (vn_constant_eq): New function.
5704         (vn_constant_hash): Ditto.
5705         (get_or_alloc_constant_value_id): Ditto.
5706         (value_id_constant_p): Ditto.
5707         (vn_reference_compute_hash): De-staticify.
5708         (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
5709         Disable some code with a FIXME.  Remove VALUE_HANDLE use.
5710         (valueize_refs): Update opcode if it changes from ssa name to constant.
5711         (vn_reference_lookup_1): Add new argument.
5712         (vn_reference_lookup):  Ditto.
5713         (vn_reference_lookup_pieces): New function.
5714         (vn_reference_insert): Add return type. Modify to deal with value ids.
5715         (vn_reference_insert_pieces):  New function.
5716         (vn_nary_op_compute_hash): De-staticify.
5717         (vn_nary_op_eq): Ditto.
5718         (vn_nary_op_lookup_pieces): New function.
5719         (vn_nary_op_lookup): Add new argument.
5720         (vn_nary_op_insert_pieces): New function.
5721         (vn_nary_op_insert): Add return type. Modify to deal with value ids.
5722         (vn_phi_insert): Ditto.
5723         (visit_unary_op): Update for callee changes.
5724         (visit_binary_op): Ditto.
5725         (visit_reference_op_load): Ditto.
5726         (visit_reference_op_store): Ditto.
5727         (init_scc_vn): Init next_value_id, constant_to_value_id and
5728         constant_value_ids.
5729         (free_scc_vn): Free them.
5730         (set_hashtable_value_ids): New function.
5731         (run_scc_vn): Use it.
5732         (get_max_value_id): New function.
5733         (get_next_value_id): Ditto.
5734         (expressions_equal_p): Moved from tree-vn.c
5735         (sort_vuses): Ditto.
5736         (sort_vuses_heap): Ditto.
5737         * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
5738         above).
5739         * tree.c (iterative_hash_hashval_t): Made non-static
5740         * tree.h (iterative_hash_hashval_t): Declare it.
5741
5742 2008-07-08  Martin Jambor  <mjambor@suse.cz>
5743
5744         * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
5745         instead of ipa_create_node_params.
5746         (ipcp_driver): Allocate infos with ipa_check_create_node_params and
5747         ipa_check_create_edge_args, free them with
5748         free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
5749
5750         * ipa-prop.c: Include flags.h and tree-inline.h.
5751         (ipa_node_params_vector): New variable.
5752         (ipa_edge_args_vector): New variable.
5753         (edge_removal_hook_holder): New variable.
5754         (node_removal_hook_holder): New variable.
5755         (edge_duplication_hook_holder): New variable.
5756         (node_duplication_hook_holder): New variable.
5757         (ipa_detect_param_modifications): Check for presence of modified flags.
5758         (ipa_compute_jump_functions): Check for presence of jump functions.
5759         (ipa_free_edge_args_substructures): New function.
5760         (ipa_create_node_params): Removed.
5761         (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
5762         (ipa_free_node_params_substructures): New function.
5763         (ipa_free_all_node_params): Changed to deallocate the on-the-side
5764         vector.
5765         (ipa_edge_removal_hook): New function.
5766         (ipa_node_removal_hook): New function.
5767         (duplicate_array): New function.
5768         (ipa_edge_duplication_hook): New function.
5769         (ipa_node_duplication_hook): New function.
5770         (ipa_register_cgraph_hooks): New function.
5771         (ipa_unregister_cgraph_hooks): New function.
5772         (free_all_ipa_structures_after_ipa_cp): New function.
5773
5774         * ipa-prop.h: Include vec.h.
5775         (ipa_node_params_t): New typedef with vector types for it.
5776         (ipa_edge_args_t):  New typedef with vector types for it.
5777         (IPA_NODE_REF): Changed to access an on-the-side vector.
5778         (IPA_EDGE_REF): Changed to access an on-the-side vector.
5779         (ipa_check_create_node_params): New function.
5780         (ipa_check_create_edge_args): New function.
5781
5782         * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h.  Converted
5783         all users.
5784
5785 2008-07-07  Tom Tromey  <tromey@redhat.com>
5786
5787         * configure, config.in: Rebuilt.
5788         * configure.ac: Don't check for scandir or alphasort.
5789
5790 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
5791
5792         * config/arm/arm.c (arm_init_neon_builtins): Register built-in
5793         types immediately after creating them.
5794
5795 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
5796
5797         * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
5798
5799 2008-07-07  Fernando Pereira <fernando@cs.ucla.edu>
5800
5801         * tree-ssa-structalias.c (compute_points_to_sets): Add call to
5802         dump_constraint_graph.
5803         (dump_constraint_edge): New function.
5804         (dump_constraint_graph): New function.
5805         (debug_constraint_graph): New function.
5806         (dump_constraint): Removed useless comparison.
5807         * tree-ssa-structalias.h (dump_constraint_edge): Declare.
5808         (dump_constraint_graph): Declare.
5809         (debug_constraint_graph): Declare.
5810         * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
5811
5812 2008-07-07  Kai Tietz  <kai.tietz@onevision.com>
5813
5814         * config/i386/i386.c (is_va_list_char_pointer): New.
5815         (ix86_va_start): Replace compare with ms_va_list_type_node
5816         by is_va_list_char_pointer.
5817         (ix86_gimplify_va_arg): Likewise.
5818
5819 2008-07-07  Martin Jambor  <mjambor@suse.cz>
5820
5821         * cgraph.c (cgraph_edge_max_uid): New variable.
5822         (struct cgraph_edge_hook_list): New type.
5823         (struct cgraph_node_hook_list): New type.
5824         (struct cgraph_2edge_hook_list): New type.
5825         (struct cgraph_2node_hook_list): New type.
5826         (first_cgraph_edge_removal_hook): New variable.
5827         (first_cgraph_node_removal_hook): New variable.
5828         (first_cgraph_edge_duplicated_hook): New variable.
5829         (first_cgraph_node_duplicated_hook): New variable.
5830         (cgraph_add_edge_removal_hook): New function.
5831         (cgraph_remove_edge_removal_hook): New function.
5832         (cgraph_call_edge_removal_hooks):  New function.
5833         (cgraph_add_node_removal_hook):  New function.
5834         (cgraph_remove_node_removal_hook):  New function.
5835         (cgraph_call_node_removal_hooks):  New function.
5836         (cgraph_add_edge_duplication_hook):  New function.
5837         (cgraph_remove_edge_duplication_hook):  New function.
5838         (cgraph_call_edge_duplication_hooks):  New function.
5839         (cgraph_add_node_duplication_hook):  New function.
5840         (cgraph_remove_node_duplication_hook):  New function.
5841         (cgraph_call_node_duplication_hooks):  New function.
5842         (cgraph_create_edge): Assign to edge uid.
5843         (cgraph_remove_edge): Call edge removal hooks.
5844         (cgraph_node_remove_callees): Call edge removal hooks.
5845         (cgraph_node_remove_callers): Call edge removal hooks.
5846         (cgraph_remove_node): Call node removal hooks.
5847         (cgraph_clone_edge): Call edge duplication hooks.
5848         (cgraph_clone_node): Call node duplication hooks.
5849
5850         * cgraph.h (cgraph_edge): New field uid.
5851         (cgraph_edge_hook): New type.
5852         (cgraph_node_hook): New type.
5853         (cgraph_2edge_hook): New type.
5854         (cgraph_2node_hook): New type.
5855
5856 2008-07-07  Andreas Tobler  <a.tobler@schweiz.org>
5857
5858         * config.in: Regenerate.
5859
5860 2008-07-07  Vladimir Prus  <vladimir@codesourcery.com>
5861
5862         * gcc.c (print_sysroot): New.
5863         (option_map, display_help, process_command): Handle the
5864         -print-sysroot option.
5865         (main): Print the sysroot if requested.
5866         * doc/invoke.texi (Debugging Options): Document -print-sysroot.
5867
5868 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5869
5870         PR target/34780
5871         * unwind-pe.h (size_of_encoded_value): add attribute unused.
5872
5873 2008-07-07  Daniel Jacobowitz  <dan@codesourcery.com>
5874
5875         * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
5876         (assign_parm_setup_block_p): Also check mode of entry_parm.
5877
5878 2008-07-07  Richard Guenther  <rguenther@suse.de>
5879
5880         * tree-ssa-structalias.h (set_used_smts): Remove.
5881         * tree-ssa-structalias.c (used_smts): Likewise.
5882         (set_used_smts): Likewise.
5883         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
5884         call to set_used_smts.
5885
5886 2008-07-07  Richard Guenther  <rguenther@suse.de>
5887
5888         * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
5889         (new_var_info): Set it to false.
5890         (solution_set_add): Correctly handle pointers outside a var and
5891         inside a field.
5892         (type_safe): Treat variables with is_full_var properly.
5893         (do_sd_constraint): Likewise.
5894         (do_ds_constraint): Likewise.
5895         (process_constraint): Remove zeroing offset for !use_field_sensitive.
5896         (get_constraint_for_ptr_offset): New function.
5897         (get_constraint_for_component_ref): For addresses at least include
5898         the last field of the variable.  Handle is_full_vars properly.
5899         (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
5900         (handle_ptr_arith): Remove.
5901         (find_func_aliases): Simplify assignment handling.
5902         (create_function_info_for): For parameter and result varinfos set
5903         is_full_var flag.
5904         (create_variable_info_for): Set is_full_var flag whenever we
5905         just created a single varinfo for a decl.
5906         (init_alias_vars): Initialize use_field_sensitive from
5907         max-fields-for-field-sensitive parameter.
5908
5909 2008-07-07  Richard Guenther  <rguenther@suse.de>
5910
5911         PR tree-optimization/36713
5912         * tree-flow-inline.h (is_call_used): New function.
5913         * tree-nrv.c (dest_safe_for_nrv_p): Use it.
5914         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
5915         * tree-outof-ssa.c (create_temp): Set call-used flag if required.
5916
5917 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
5918
5919         * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
5920
5921 2008-07-07  Mark Shinwell  <shinwell@codesourcery.com>
5922
5923         * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
5924
5925 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
5926             Nathan Sidwell  <nathan@codesourcery.com>
5927
5928         * config.gcc (m68k-*-linux*): Add with_arch.  Add sysroot-suffix.h
5929         to tm_file.  Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
5930         tmake_file.
5931         * config/m68k/t-linux: New.
5932         * doc/install.texi: Document m68k-*-linux is now multilibbed by
5933         default.
5934
5935 2008-07-07  Nathan Sidwell  <nathan@codesourcery.com>
5936
5937         * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
5938         * config/m68k/m68k-devices.def: Remove multilibs that only differ
5939         by MAC/EMAC.
5940
5941 2008-07-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5942
5943         * gcc.c (execute): Fix -Wc++-compat warning.
5944
5945 2008-07-06  H.J. Lu  <hongjiu.lu@intel.com>
5946
5947         PR target/36720
5948         * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
5949         constant for little endian.
5950
5951 2008-07-06  Richard Sandiford  <rdsandiford@googlemail.com>
5952
5953         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
5954         mips_base_mips16 instead of TARGET_MIPS16.
5955         (mips_base_mips16): Declare.
5956         * config/mips/mips.c (mips_base_mips16): Make global.
5957         (was_mips16_p): Remove GTY marker.
5958         (was_mips16_pch_p): New variable.
5959         (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
5960         (mips_override_options): Force to non-MIPS16 mode initially.
5961         Do not complain about MIPS16 PIC incompatibilities here.
5962         Only allow -mgpopt if -mexplicit-relocs is in force for
5963         non-MIPS16 code.
5964
5965 2008-07-06  Andreas Tobler  <a.tobler@schweiz.org>
5966
5967         * configure.ac: Check for caddr_t, define to char * if not defined.
5968         * configure: Regenerate.
5969         * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
5970         (mmap_gt_pch_use_address): Likewise.
5971         * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
5972
5973 2008-07-06  Richard Guenther  <rguenther@suse.de>
5974
5975         * tree-ssa-structalias.c (struct variable_info): Remove has_union.
5976         (new_var_info): Deal with it.
5977         (solution_set_add): Likewise.
5978         (bitpos_of_field): Make signed, fix.
5979         (struct fieldoff): Remove type and decl fields.  Make size field
5980         unsigned HOST_WIDE_INT.  Add has_unknown_size and may_have_pointers
5981         flags.
5982         (fieldoff_compare): Deal with it.
5983         (push_fields_onto_fieldstack): Remove has_union argument, glob
5984         adjacent non-pointer fields together.
5985         (create_function_info_for): Do not set has_union.
5986         (create_variable_info_for): Simplify.
5987
5988 2008-07-06  Kai Tietz  <kai.tietz@onevision.com>
5989
5990         * config.gcc (extra_headers): Add cross-stdarg.h for target
5991         x86_64-*-* and i?86-*-*.
5992         * config/i386/cross-stdarg.h: New.
5993         * builtins.c (std_fn_abi_va_list): New.
5994         (std_canonical_va_list_type): New.
5995         (stabilize_va_list): Replace va_list_type_node use by
5996         mtarget.canonical_va_list_type.
5997         (gimplify_va_arg_expr): Likewise.
5998         (expand_builtin_va_copy): Replace va_list_type_node use by
5999         mtarget.fn_abi_va_list.
6000         * tree-sra.c (is_va_list_type): New helper.
6001         (decl_can_be_decomposed_p): Replace
6002         va_list_type_node use by is_va_list_type.
6003         * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
6004         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
6005         * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
6006         * config/i386/i386-protos.h (ix86_get_valist_type): New.
6007         (ix86_enum_va_list): New.
6008         * config/i386/i386.c (sysv_va_list_type_node): New.
6009         (ms_va_list_type_node): New.
6010         (ix86_function_type_abi): Remove sorry.
6011         (ix86_build_builtin_va_list_abi): New.
6012         (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
6013         for 64-bit targets.
6014         (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
6015         (ix86_init_builtins_va_builtins_abi): New.
6016         (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
6017         for 64-bit targets.
6018         (ix86_handle_abi_attribute): New.
6019         (attribute_spec): Add sysv_abi and ms_abi.
6020         (ix86_fn_abi_va_list): New.
6021         (ix86_canonical_va_list_type): New.
6022         (ix86_enum_va_list): New.
6023         (TARGET_FN_ABI_VA_LIST): New.
6024         (TARGET_CANONICAL_VA_LIST_TYPE): New.
6025         * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
6026         * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
6027         (TARGET_CANONICAL_VA_LIST_TYPE): New.
6028         (TARGET_ENUM_VA_LIST): New.
6029         * expr.h (std_fn_abi_va_list): New.
6030         (std_canonical_va_list_type): New.
6031         * target-def.h (TARGET_FN_ABI_VA_LIST): New.
6032         (TARGET_CANONICAL_VA_LIST_TYPE): New.
6033         (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
6034         TARGET_CANONICAL_VA_LIST_TYPE.
6035         * target.h (struct gcc_target): Add fn_abi_va_list hook
6036         and canonical_va_list_type hook.
6037
6038 2008-07-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6039
6040         * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
6041         integral and pointer types.
6042
6043 2008-07-04  Roger Sayle  <roger@eyesopen.com>
6044
6045         * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
6046         the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
6047
6048 2008-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
6049
6050         PR target/36684
6051         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
6052
6053 2008-07-04  Jakub Jelinek  <jakub@redhat.com>
6054
6055         * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
6056         build_gimple_modify_stmt.
6057         (build_arrays, gen_inbound_check): Likewise.  Force RHS to be
6058         gimple operand.  Use fold_build* instead of build*.
6059
6060 2008-07-04  Richard Guenther  <rguenther@suse.de>
6061
6062         * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
6063         (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
6064         properly to compute the reachability set if we do field-sensitive PTA.
6065         * invoke.texi (max-fields-for-field-sensitive): Document default.
6066         * opts.c (decode_options): Set max-fields-for-field-sensitive to
6067         100 for optimize >= 2.
6068
6069 2008-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6070
6071         * ggc-zone.c (lookup_page_table_if_allocated,
6072         set_page_table_entry, zone_find_object_size, alloc_small_page,
6073         alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
6074         new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
6075         -Wc++-compat and/or -Wcast-qual warnings.
6076
6077 2008-07-04  Alan Modra  <amodra@bigpond.net.au>
6078
6079         PR target/36634
6080         * config/rs6000/rs6000.md (call, call_value): Don't arrange for
6081         pic_offset_table_rtx to be marked as used here.
6082         (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
6083         TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
6084         (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
6085         (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
6086         !TARGET_SECURE_PLT.
6087
6088 2008-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6089
6090         * alloc-pool.c (hash_descriptor, eq_descriptor,
6091         alloc_pool_descriptor): Fix -Wc++-compat warnings.
6092         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
6093         Likewise.
6094         * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
6095         loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
6096         final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
6097         * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
6098         Likewise.
6099
6100 2008-07-03  Eric Botcazou  <ebotcazou@adacore.com>
6101
6102         * tree-flow.h (loop_only_exit_p): Declare.
6103         * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
6104         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
6105         the number of iterations if it is constant.  Otherwise, if this is the
6106         only possible exit of the loop, use the conservative estimate on the
6107         number of iterations of the entire loop if available.
6108
6109 2008-07-03  Richard Sandiford  <rdsandiford@googlemail.com>
6110
6111         * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
6112         * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
6113         Add synchronization functions.
6114         * config/sync.c: New file.
6115         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
6116         (LIBGCC_SYNC_CFLAGS): Likewise.
6117
6118 2008-07-03  Uros Bizjak  <ubizjak@gmail.com>
6119
6120         PR target/36710
6121         * config/i386/i386.md (mode): Add TF to "mode" attribute.
6122         (*pushtf_sse): New insn pattern.
6123         (pushtf splitters): New splitters.
6124
6125 2008-07-03  Michael Meissner  <gnu@the-meissners.org>
6126
6127         PR middle-end/35736
6128         * predict.c (build_predict_expr): Use void_type_node for the tree
6129         type, instead of NULL_TREE.
6130
6131 2008-07-03  H.J. Lu  <hongjiu.lu@intel.com>
6132
6133         * config/i386/i386.c (contains_aligned_value_p): Return true
6134         for TCmode.
6135         (ix86_data_alignment): Align TCmode to 128bits.
6136         (ix86_local_alignment): Likewise.
6137
6138 2008-07-03  Andrew Haley  <aph@redhat.com>
6139
6140         PR bootstrap/33304
6141         * vec.h (VEC_TA): New.
6142         (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
6143         DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
6144         * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
6145         (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
6146         (C_COMMON_FIXED_TYPES): Remove first arg.
6147         (C_COMMON_FIXED_MODE_TYPES): Likewise.
6148         * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
6149         MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
6150         not to use empty macro arguments.
6151
6152 2008-07-02  Joseph Myers  <joseph@codesourcery.com>
6153
6154         * config/alpha/vms_tramp.asm, config/arm/crti.asm,
6155         config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
6156         config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
6157         config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
6158         config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
6159         config/i386/sol2-gc1.asm, config/ia64/crti.asm,
6160         config/ia64/crtn.asm, config/m68hc11/larith.asm,
6161         config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
6162         config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
6163         config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
6164         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
6165         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
6166         config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
6167         config/rs6000/e500crtres64gpr.asm,
6168         config/rs6000/e500crtres64gprctr.asm,
6169         config/rs6000/e500crtrest32gpr.asm,
6170         config/rs6000/e500crtrest64gpr.asm,
6171         config/rs6000/e500crtresx32gpr.asm,
6172         config/rs6000/e500crtresx64gpr.asm,
6173         config/rs6000/e500crtsav32gpr.asm,
6174         config/rs6000/e500crtsav64gpr.asm,
6175         config/rs6000/e500crtsav64gprctr.asm,
6176         config/rs6000/e500crtsavg32gpr.asm,
6177         config/rs6000/e500crtsavg64gpr.asm,
6178         config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
6179         config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
6180         config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
6181         config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
6182         config/sparc/sol2-cn.asm: Remove .file directives.
6183
6184 2008-07-02  Richard Sandiford  <rdsandiford@googlemail.com>
6185
6186         * resource.c (mark_referenced_resources): Look inside
6187         UNSPEC_VOLATILEs and ASM_INPUTs.
6188
6189 2008-07-02  Ian Lance Taylor  <iant@google.com>
6190
6191         * rtlanal.c (add_reg_note): New function.
6192         * rtl.h (add_reg_note): Declare.
6193         * auto-inc-dec.c (attempt_change): Use add_reg_note.
6194         * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
6195         * builtins.c (expand_builtin_longjmp): Likewise.
6196         (expand_builtin_nonlocal_goto): Likewise.
6197         * calls.c (emit_call_1, expand_call): Likewise.
6198         * cfgexpand.c (add_reg_br_prob_note): Likewise.
6199         * cfglayout.c (fixup_reorder_chain): Likewise.
6200         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
6201         (commit_one_edge_insertion): Likewise.
6202         * combine.c (move_deaths, distribute_notes): Likewise.
6203         * df-problems.c (df_set_note): Likewise.
6204         * emit-rtl.c (link_cc0_insns, try_split): Likewise.
6205         (set_unique_reg_note): Likewise.
6206         (emit_copy_of_insn_after): Likewise.
6207         * expr.c (expand_expr_real): Likewise.
6208         * gcse.c (add_label_notes): Likewise.
6209         * haifa-sched.c (create_check_block_twin): Likewise.
6210         * jump.c (mark_jump_label_1): Likewise.
6211         * loop-doloop.c (add_test, doloop_modify): Likewise.
6212         * loop-unswitch.c (compare_and_jump_seq): Likewise.
6213         * lower-subreg.c (move_eh_region_note): Likewise.
6214         * optabs.c (emit_libcall_block): Likewise.
6215         * predict.c (predict_insn): Likewise.
6216         (combine_predictions_for_insn): Likewise.
6217         * recog.c (peephole2_optimize): Likewise.
6218         * regmove.c (try_auto_increment): Likewise.
6219         * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
6220         * reload.c (find_reloads): Likewise.
6221         * reload1.c (fixup_eh_region_note): Likewise.
6222         (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
6223         * reorg.c (delete_prior_computation): Likewise.
6224         (delete_computation, dbr_schedule): Likewise.
6225         * config/pa/pa.c (legitimize_pic_address): Likewise.
6226         * config/sh/sh.c (sh_reorg): Likewise.
6227
6228 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
6229
6230         PR target/36669
6231         * config/libgcc-glibc.ver: Add %exclude.
6232         * config/m32r/libgcc-glibc.ver: Likwise.
6233         * config/s390/libgcc-glibc.ver: Likwise.
6234         * config/sh/libgcc-glibc.ver: Likwise.
6235         * config/sparc/libgcc-sparc-glibc.ver: Likwise.
6236
6237         * config/i386/libgcc-glibc.ver: New.
6238
6239         * config/i386/libgcc-x86_64-glibc.ver: Removed.
6240
6241 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
6242
6243         * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
6244         from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
6245         i[34567]86-*-linux*, x86_64-*-linux*.  Add
6246         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
6247         i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
6248         x86_64-*-linux*.  Add i386/t-linux to tmake_file for
6249         i[34567]86-*-linux*, x86_64-*-linux*.
6250
6251         * libgcc-std.ver: Add empty GCC_4.4.0.
6252
6253         * mkmap-symver.awk: Support multiple versions per symbol.
6254
6255         * config/i386/i386.c (ix86_init_builtins): Always define
6256         __builtin_fabsq and __builtin_copysignq with fallbacks.
6257         (ix86_expand_builtin): Emit normal call for __builtin_fabsq
6258         and __builtin_copysignq if SSE2 isn't available.
6259
6260         * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
6261         (LIBGCC2_TF_CEXT): Likwise.
6262         (TF_SIZE): Likwise.
6263
6264         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
6265
6266         * config/i386/sfp-machine.h: Moved to libgcc.
6267
6268         * config/i386/sfp-machine.h: New.
6269         * config/i386/t-linux: Likwise.
6270
6271         * config/i386/t-darwin: Remove softfp_wrap_start and
6272         softfp_wrap_end.
6273         * config/i386/t-darwin64: Likewise.
6274
6275         * config/i386/t-fprules-softfp64: Renamed to ...
6276         * config/i386/t-fprules-softfp: This.
6277
6278         * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
6279         and softfp_wrap_end.
6280
6281 2008-07-02  Jason Merrill  <jason@redhat.com>
6282
6283         * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
6284
6285         * tree.c (ctor_to_list): New fn.
6286         * tree.h: Declare it.
6287         (CONSTRUCTOR_ELT): New macro.
6288         (CONSTRUCTOR_NELTS): New macro.
6289
6290 2008-07-02  Richard Guenther  <rguenther@suse.de>
6291
6292         * tree-ssa-structalias.c (struct variable_info): Reorder
6293         to fill padding on 64bit hosts.  Make collapsed_to an int.
6294         (get_varinfo_fc): Deal with that.
6295         (new_var_info): Likewise.
6296         (collapse_rest_of_var): Likewise.
6297
6298 2008-07-02  Joshua Sumali  <jsumali@redhat.com>
6299
6300         * doc/install.texi (--enable-java-home): Document.
6301         (--enable-aot-compile-rpm): Likewise.
6302         (--with-arch-directory): Likewise.
6303         (--with-os-directory): Likewise.
6304         (--with-origin-name): Likewise.
6305         (--with-arch-suffix): Likewise.
6306         (--with-jvm-root-dir): Likewise.
6307         (--with-jvm-jar-dir): Likewise.
6308         (--with-python-dir): Likewise.
6309
6310 2008-07-02  Richard Guenther  <rguenther@suse.de>
6311
6312         * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
6313         from decls explicitly.  Merge operand checking from tuples.
6314
6315 2008-07-02  Martin Jambor  <mjambor@suse.cz>
6316
6317         * tree-switch-conversion.c: Included timevar.h which I forgot before.
6318
6319 2008-07-02  Martin Jambor  <mjambor@suse.cz>
6320
6321         * tree-switch-conversion.c: Included timevar.h
6322         (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
6323
6324         * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
6325
6326 2008-07-02  Martin Jambor  <mjambor@suse.cz>
6327
6328         * tree-switch-conversion.c: Corrected various comments and
6329         whitespace issues
6330         (build_constructors): Fixed minor formatting mistakes.
6331
6332         * invoke.texi (Optimize Options): Corrected the
6333         switch-conversion-max-branch-ratio parameter.
6334
6335 2008-07-02  Mark Shinwell  <shinwell@codesourcery.com>
6336
6337         * final.c (asm_insn_count): Return zero for an empty asm body.
6338
6339 2008-07-02  Richard Guenther  <rguenther@suse.de>
6340
6341         * bitmap.h (bitmap_set_bit): Return bool.
6342         (bitmap_clear_bit): Likewise.
6343         * bitmap.c (bitmap_set_bit): Return if the bit changed.  Only
6344         write to the bitmap if it would.
6345         (bitmap_clear_bit): Likewise.
6346         * tree-ssa-structalias.c (add_implicit_graph_edge): Use
6347         bitmap_set_bit return value.
6348         (add_pred_graph_edge): Likewise.
6349         (add_graph_edge): Likewise.
6350         (do_sd_constraint): Likewise.
6351         (do_ds_constraint): Likewise.
6352
6353 2008-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6354
6355         * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
6356         Fix -Wc++-compat and/or -Wcast-qual warnings.
6357         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
6358         gen_regparm_prefix): Likewise.
6359         * vmsdbgout.c (write_modbeg, lookup_filename,
6360         vmsdbgout_source_line, vmsdbgout_init): Likewise.
6361
6362 2008-07-02  Danny Smith  <dannysmith@users.sourceforge.net>
6363
6364         * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
6365         defaults.h definition apply.
6366
6367 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
6368
6369         * function.c (assign_parm_remove_parallels): New.
6370         (assign_parm_setup_block_p): Do not return true for non-BLKmode
6371         PARALLELs.
6372         (assign_parm_setup_block): Do not handle them.
6373         (assign_parm_setup_reg, assign_parm_setup_stack): Call
6374         assign_parm_remove_parallels.
6375
6376 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
6377
6378         * c-typeck.c (convert_for_assignment): Use
6379         vector_targets_convertible_p.
6380         * c-common.c (vector_targets_convertible_p): New.
6381         * c-common.h (vector_targets_convertible_p): New prototype.
6382         * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
6383         opaque_p_V2SI_type_node.
6384
6385 2008-07-01  Steve Ellcey  <sje@cup.hp.com>
6386
6387         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
6388         RFmode constants.
6389
6390 2008-07-01  Uros Bizjak  <ubizjak@gmail.com>
6391
6392         * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
6393         TFmode constants via two element DImode vector for hosts with
6394         HOST_BITS_PER_WIDE_INT < 64.
6395         (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
6396         also for HOST_BITS_PER_WIDE_INT < 64.
6397
6398 2008-07-01  Richard Guenther  <rguenther@suse.de>
6399
6400         PR tree-optimization/36666
6401         * tree-ssa-structalias.c (get_constraint_for_1): Declare.
6402         (get_constraint_exp_from_ssa_var): Split into ...
6403         (get_constraint_exp_for_temp): ... this ...
6404         (get_constraint_for_ssa_var): ... and that.
6405         Return constraint expressions for all touched sub-fields
6406         if the results address is not taken.
6407         (process_constraint): Remove assertion that aggregate
6408         assignments do not happen at this place.
6409         (get_constraint_for_component_ref): Add address_p argument.
6410         Return constraint expressions for all touched sub-fields
6411         if the results address is not taken.
6412         (do_deref): Use get_constraint_exp_for_temp.
6413         (get_constraint_for_1): Rename from ...
6414         (get_constraint_for): ... this.  Add the old function as wrapper.
6415         (do_structure_copy): Use get_constraint_for_1.
6416
6417 2008-07-01  Martin Jambor  <mjambor@suse.cz>
6418
6419         * Makefile.in (tree-switch-conversion.o): Add.
6420         (OBJS-common): Add tree-swtch-conversion.o.
6421         * passes.c (init_optimization_passes): Add pass_convert_switch.
6422         * tree-pass.h: (pass_convert_switch): Add.
6423         * tree-switch-conversion.c: New file.
6424         * gcc.dg/tree-ssa/cswtch.c: New testcase.
6425         * common.opt (ftree-cswtch): New option.
6426         * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
6427         * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
6428         * opts.c (decode_options): Set flag_tree_switch_conversion when
6429         optimization level is >= 2.
6430         * doc/invoke.texi (Optimize Options): Added description of
6431         -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
6432
6433 2008-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6434
6435         * config/darwin-driver.c (darwin_default_min_version): Fix
6436         -Wc++-compat warnings.
6437
6438 2008-06-30  Uros Bizjak  <ubizjak@gmail.com>
6439
6440         * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
6441         of operand 0.
6442
6443 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
6444
6445         * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
6446
6447 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
6448
6449         PR rtl-optimization/34744
6450         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
6451         (df_scan_free_internal): Free data structures not
6452         allocated in storage pools.
6453         (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
6454         (df_refs_add_to_chains): Use df_scan_free_ref_vec and
6455         df_scan_free_mws_vec.
6456         * dse.c (dse_step6): Free offset_map_p and offset_map_n
6457         unconditionally.
6458
6459 2008-06-30  H.J. Lu  <hongjiu.lu@intel.com>
6460
6461         * config/i386/i386.c (contains_aligned_value_p): Return true
6462         for __float128.
6463         (ix86_function_arg_boundary): Return its natural boundary
6464         for __float128.
6465         (return_in_memory_32): Don't check TDmode.
6466         (ix86_split_to_parts): Support splitting into 4 parts and
6467         support TFmode for 32bit target.
6468         (ix86_split_long_move): Support splitting into 4 parts.
6469         (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
6470         for SSE2.
6471         (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
6472         (ix86_init_builtins): Here.
6473         (ix86_scalar_mode_supported_p): Always return true for TFmode.
6474         (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
6475         'q' and 'w', respectively.
6476
6477         * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
6478         TARGET_64BIT.
6479         (movtf_internal): Likewise.
6480         (<code>tf2): Likewise.
6481         (*absnegtf2_sse): Likewise.
6482         (copysign<mode>3): Likewise.
6483         (copysign<mode>3_const): Likewise.
6484         (copysign<mode>3_var): Likewise.
6485         (define_split UNSPEC_COPYSIGN): Likewise.
6486         * config/i386/sse.md (*nandtf3): Likewise.
6487         (<code>tf3): Likewise.
6488         (*<code>tf3): Likewise.
6489
6490 2008-06-30  Joey Ye  <joey.ye@intel.com>
6491             H.J. Lu  <hongjiu.lu@intel.com>
6492
6493         * global.c (compute_regsets): Set frame_pointer_needed here.
6494         * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
6495
6496 2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
6497
6498         * doc/install.texi (specific): Expand Windows build notes.
6499
6500 2008-06-30  Ira Rosen  <irar@il.ibm.com>
6501
6502         PR tree-optimization/36648
6503         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
6504         number of prolog iterations by step. Fix the comment.
6505
6506 2008-06-30  Richard Guenther  <rguenther@suse.de>
6507
6508         PR middle-end/36671
6509         * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
6510         handle calls from ECF_MALLOC functions.
6511         (handle_pure_call): ECF_MALLOC functions do not return
6512         call-used memory.
6513         (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
6514
6515 2008-06-29  Andreas Schwab  <schwab@suse.de>
6516
6517         * config/m68k/m68k.c (print_operand): Always print a float
6518         constant in hex.
6519         * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
6520         (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
6521         Remove macros.
6522
6523         * config/rs6000/x-linux64: Remove never used file.
6524
6525 2008-06-29  Richard Guenther  <rguenther@suse.de>
6526
6527         * tree-ssa-structalias.h (compute_points_to_sets): Adjust
6528         prototype.
6529         (struct alias_info): Move ...
6530         * tree-ssa-alias.c: ... here.
6531         (update_alias_info): Declare.
6532         (compute_may_aliases): Call it.
6533         (update_alias_info): New function.
6534         * tree-ssa-structalias.c (update_alias_info): Move ...
6535         * tree-ssa-alias.c (update_alias_info_1): ... here.
6536         * tree-ssa-structalias.c (process_constraint_1): Remove
6537         unused from_call argument.  Rename to ...
6538         (process_constraint): ... this.  Delete old wrapper.
6539         (make_constraint_to): Adjust callers.
6540         (handle_const_call): Likewise.
6541         (handle_pure_call): Likewise.
6542         (init_base_vars): Likewise.
6543         (handle_lhs_call): Likewise.  Remove unnecessary constraint.
6544         (find_func_aliases): We don't need structure copies for
6545         complex types.
6546         (make_constraint_from_anything): Remove.
6547         (create_variable_info_for): For globals make constraints
6548         from escaped, not from anything.
6549         (compute_points_to_sets): Do not call update_alias_info.
6550         (ipa_pta_execute): Use make_constraint_from.
6551
6552 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6553
6554         * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
6555         (bitmap.o-warn, dominance.o-warn): New.
6556         * configure.ac (cxx_compat_warn): Delete.
6557         (loose_warn): Add -Wcast-qual and -Wc++-compat.
6558         * system.h: Remove #pragma diagnostic for -Wcast-qual and
6559         -Wc++-compat.
6560         * configure: Regenerate.
6561
6562         * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
6563         warnings.
6564
6565 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6566
6567         * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
6568         * df-scan.c (df_notes_rescan): Likewise.
6569         * ggc-page.c (set_page_table_entry): Likewise.
6570         * intl.c (gcc_gettext_width): Likewise.
6571         * varasm.c (get_unnamed_section, get_noswitch_section,
6572         get_section): Likewise.
6573
6574 2008-06-28  Andrew Jenner  <andrew@codesourcery.com>
6575
6576         * regrename.c (build_def_use): Don't copy RTX.
6577
6578 2008-06-28  Sandra Loosemore  <sandra@codesourcery.com>
6579
6580         * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
6581         (Type Attributes): Fix nesting of @table and @subsection.  Adjust
6582         punctuation.  Use @ref instead of @xref.
6583         (Function Names): Remove stray @display/@end display.
6584         (C++ Attributes): Use @ref instead of @xref.
6585         (Deprecated Features): Fix punctuation around @xref.
6586         (Backwards Compatibility): Likewise.
6587         * doc/rtl.texi (Incdec): Remove stray @table/@end table.
6588
6589 2008-06-28  Joseph Myers  <joseph@codesourcery.com>
6590
6591         * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
6592         constants for E500 double.
6593
6594 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6595
6596         * doc/rtl.texi (const_vector): Document const_fixed as legitimate
6597         element type of const_vector.
6598
6599 2008-06-28  Uros Bizjak  <ubizjak@gmail.com>
6600
6601         * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
6602         Remove FLAGS_REG clobber from expander pattern.
6603         (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
6604         (anddi3, andsi3, andhi3, andqi3): Ditto.
6605         (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
6606         (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
6607         (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
6608         (ashlsi3, ashlhi3, ashlqi3): Ditto.
6609         (ashrsi3, ashrhi3, ashrqi3): Ditto.
6610         (lshrsi3, lshrhi3, lshrqi3): Ditto.
6611         (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
6612         (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
6613
6614 2008-06-28  Richard Guenther  <rguenther@suse.de>
6615
6616         * tree-ssa-structalias.c (callused_id, var_callused,
6617         callused_tree): Add.
6618         (handle_pure_call): New function.
6619         (find_func_aliases): Call it.
6620         (find_what_p_points_to): Handle the call-used set.
6621         (clobber_what_escaped): Likewise.
6622         (compute_call_used_vars): New function.
6623         (init_base_vars): Init the call-used variable.
6624         (do_sd_constraint): Do not propagate the solution from CALLUSED
6625         but use CALLUSED as a placeholder.
6626         (solve_graph): Likewise.
6627         * tree-flow-inline.h (gimple_call_used_vars): New function.
6628         * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
6629         (compute_call_used_vars): Declare.
6630         * tree-ssa-alias.c (set_initial_properties): Call
6631         compute_call_used_vars.
6632         (reset_alias_info): Clear call-used variables.
6633         (add_call_clobber_ops): Assert we are not called for const/pure
6634         functions.  Remove handling of them.
6635         (add_call_read_ops): Handle pure functions by adding the
6636         call-used set of variables as VUSEs.
6637         * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
6638         (delete_tree_ssa): Free it.
6639         * tree-dfa.c (remove_referenced_var): Clear the var from the
6640         call-used bitmap.
6641
6642 2008-06-28  Kai Tietz  <kai.tietz@onevision.com>
6643
6644         * tree.c (build_varargs_function_type_list): New.
6645         (build_function_type_list_1): New.
6646         (build_function_type_list): Use build_function_type_list_1.
6647         * tree.h (build_varargs_function_type_list): New.
6648
6649 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6650
6651         PR target/34856
6652         * config/spu/spu.c (spu_builtin_splats): Do not generate
6653         invalid CONST_VECTOR expressions.
6654         (spu_expand_vector_init): Likewise.
6655
6656 2008-06-28  Richard Sandiford  <rdsandiford@googlemail.com>
6657
6658         * optabs.c (libfunc_decls): New variable.
6659         (libfunc_decl_hash, libfunc_decl_eq): New functions.
6660         (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
6661         for the same function twice.
6662
6663 2008-06-27  Uros Bizjak  <ubizjak@gmail.com>
6664
6665         * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
6666         ix86_expand_binary_operator directly.
6667         (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
6668         for operand 2.
6669         (*ashrti3_1): Ditto.
6670         (*lshrti3_1): Ditto.
6671         (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
6672         (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
6673         using only one splitter.  Conditionaly execute splitter before or
6674         after peephole2 pass.
6675         (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
6676         (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
6677         Use only one alternative in asm template.
6678         (x86_64_shld): Compress operand 2 constraints. Use only one alternative
6679         in asm template.
6680         (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
6681         "J" operand constraint for operand 2.
6682         (*ashldi3_cconly_rex64): Ditto.
6683         (*ashrdi3_cmp_rex64): Ditto.
6684         (*ashrdi3_cconly_rex64): Ditto.
6685         (*lshrdi3_cmp_rex64): Ditto.
6686         (*lshrdi3_cconly_rex64): Ditto.
6687         * config/i386/predicates.md (const_1_to_63_operand): New predicate.
6688         * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
6689         (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
6690         gen_x86_shrd_1.
6691
6692 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
6693
6694         * gimplify.c (omp_is_private): Don't return true if decl is not
6695         already private on #pragma omp for or #pragma omp parallel for.
6696
6697         PR debug/36617
6698         * tree-cfg.c (struct move_stmt_d): Replace block field with
6699         orig_block and new_block fields.
6700         (move_stmt_r): Only set TREE_BLOCK to p->new_block if
6701         if it used to be NULL, p->orig_block or if p->orig_block is NULL.
6702         (move_block_to_fn): Replace vars_map and new_label_map arguments
6703         with struct move_stmt_d pointer.
6704         (replace_block_vars_by_duplicates): New function.
6705         (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
6706         move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
6707         all subblocks of ORIG_BLOCK to the new function.  Call
6708         replace_block_vars_by_duplicates.
6709         * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
6710         * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
6711         BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
6712         Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
6713         (expand_omp): Temporarily set input_location to the location of
6714         region's controlling stmt.
6715         (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
6716         BIND_EXPR, push ctx->block_vars and gimplification vars into
6717         the BIND_EXPR and its block's BLOCK_VARS instead of directly
6718         into dest function.
6719         (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
6720         there are any BLOCK_VARS.
6721         (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
6722         OMP_PARALLEL or OMP_TASK stmt.
6723         (lower_omp): Save and restore input_location around the lower_omp_1
6724         call.
6725
6726 2008-06-27  Richard Guenther  <rguenther@suse.de>
6727
6728         PR tree-optimization/36400
6729         PR tree-optimization/36373
6730         PR tree-optimization/36344
6731         * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
6732         var_nonlocal, nonlocal_tree, nonlocal_id): New globals
6733         (update_alias_info): Remove call clobbering code.
6734         (make_constraint_to): New helper function.
6735         (make_escape_constraint): Likewise.
6736         (handle_rhs_call): Use it on all pointer containing arguments.
6737         Also mark the static chain escaped.
6738         (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
6739         instead of ANYTHING.
6740         (make_constraint_from): New helper split out from ...
6741         (make_constraint_from_anything): ... here.
6742         (find_func_aliases): Add constraints for escape sites.
6743         (intra_create_variable_infos): Make constraints from NONLOCAL
6744         for parameters.
6745         (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
6746         as ANYTHING.
6747         (clobber_what_p_points_to): Remove.
6748         (clobber_what_escaped): New function.
6749         (init_base_vars): Init NONLOCAL and ESCAPED.
6750         (do_sd_constraint): Do not propagate the solution from ESCAPED
6751         but use ESCAPED as a placeholder.
6752         (solve_graph): Likewise.
6753         * tree-flow.h (clobber_what_p_points_to): Remove.
6754         (clobber_what_escaped): Declare.
6755         * tree-ssa-alias.c (set_initial_properties): Call it.
6756         Remove code clobbering escaped pointers.
6757
6758 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
6759
6760         * function.c (allocate_struct_function): Only allocate a unique
6761         funcdef_no if the decl is nonzero.
6762
6763 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
6764
6765         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
6766         * config/mips/mips.c (mips_split_const_insns): New function.
6767         * config/mips/mips.md (move_type): New attribute.
6768         (mode): Move attribute definition earlier in file.  Add "TI" and "TF".
6769         (dword_mode): New attribute.
6770         (type): Avoid long line.  Map "move_type"s to "type"s,
6771         choosing "multi" for doubleword moves if appropriate.
6772         Swap MTC/MFC comments to match their declaration order.
6773         (extended_mips16): Default to "yes" if "move_type" is "sll0",
6774         "type" is "branch" or "jal" is "direct".
6775         (length): Handle "extended_mips16" first.  Make the default
6776         "0" for "ghost" instructions.  Set the length from "move_type".
6777         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
6778         of "type", with "sll0" for the register alternative.  Remove the
6779         "extended_mips16" attribute.
6780         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
6781         of "type", with "shift_shift" for the register alternative.
6782         Remove the "length" attribute.
6783         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
6784         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
6785         of "type", with "andi" for the register alternative.
6786         (*zero_extendqihi2): Likewise.
6787         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
6788         of "andi" instead of a "type" of "arith".
6789         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
6790         instead of "type".
6791         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
6792         (mov_<store>r, *mov<mode>_ra): Likewise.
6793         (extendsidi2): Use "move_type" instead of "type", with "move"
6794         for the register alternative.
6795         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
6796         of "type", with "signext" for the register alternative.
6797         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
6798         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
6799         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
6800         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
6801         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
6802         (unnamed branch insn): Likewise.
6803         (*movdi_gp32_fp64): Fold into...
6804         (*movdi_32bit): ...here.
6805         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
6806         (*movdf_hardfloat): ...this new pattern.
6807         (*movdf_softfloat): Remove redundant FPR alternatives.
6808         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
6809         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
6810         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
6811         the "move" attribute.
6812         (*movdi_32bit): Use "move_type" instead of "type" and remove the
6813         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
6814         and "store" for COP loads and stores.
6815         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
6816         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
6817         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
6818         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
6819         (*movtf_mips16, *movv2sf): Likewise.
6820         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
6821         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
6822         (mfhc1<mode>): Use "move_type" instead of "move".
6823         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
6824         (loadgp_blockage): Remove the "length" attribute.
6825         (blockage, set_got_version, update_got_version): Likewise.
6826         (call_internal): Remove the "extended_mips16" attribute.
6827         (call_value_internal, call_value_multiple_internal): Likewise.
6828         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
6829         instead of "move".
6830         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
6831         the "length" attribute.
6832
6833 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6834
6835         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
6836         -Wcast-qual warnings.
6837         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
6838         handle_pragma_pop_macro): Likewise.
6839         * collect2.c (resolve_lib_name): Likewise.
6840         * config/arc/arc.c (arc_init): Likewise.
6841         * config/arm/arm.c (neon_builtin_compare,
6842         locate_neon_builtin_icode): Likewise.
6843         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
6844         * config/bfin/bfin.c (bfin_init_machine_status,
6845         bfin_optimize_loop): Likewise.
6846         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
6847         * config/cris/cris.c (cris_init_expanders): Likewise.
6848         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
6849         * config/darwin.c (machopic_indirection_eq,
6850         machopic_indirection_name, machopic_output_indirection): Likewise.
6851         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
6852         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
6853         frv_optimize_membar): Likewise.
6854         * config/i386/cygwin.h (mingw_scan,
6855         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
6856         * config/i386/cygwin1.c (mingw_scan): Likewise.
6857         * config/i386/i386.c (machopic_output_stub): Likewise.
6858         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
6859         i386_pe_unique_section): Likewise.
6860         * config/ia64/ia64.c (ia64_init_machine_status,
6861         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
6862         Likewise.
6863         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
6864         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
6865         * config/m68k/m68k.c (m68k_handle_option,
6866         m68k_sched_md_init_global): Likewise.
6867         * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
6868         mcore_unique_section): Likewise.
6869         * config/mips/mips.c (mips_block_move_straight,
6870         mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
6871         Likewise.
6872         * config/mmix/mmix.c (mmix_init_machine_status,
6873         mmix_encode_section_info): Likewise.
6874         * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
6875         * config/rs6000/rs6000.c (rs6000_init_machine_status,
6876         print_operand_address, output_toc, redefine_groups,
6877         rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
6878         * config/s390/s390.c (s390_init_machine_status): Likewise.
6879         * config/score/score.c (score_block_move_straight,
6880         score_block_move_loop_body): Likewise.
6881         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
6882         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
6883         * emit-rtl.c (find_auto_inc): Likewise.
6884         * gcc.c (translate_options, process_command): Likewise.
6885         * reorg.c (dbr_schedule): Likewise.
6886         * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
6887         * xcoffout.c (xcoffout_declare_function): Likewise.
6888
6889 2008-06-27  Daniel Berlin  <dberlin@dberlin.org>
6890
6891         * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
6892         ipa-pta working again.
6893
6894 2008-06-27  David Edelsohn  <edelsohn@gnu.org>
6895
6896         * config/rs6000/t-aix52: Append large data option to LDFLAGS for
6897         genautomata.
6898
6899 2008-06-27  Edmar Wienskoski  <edmar@freescale.com>
6900
6901         * config.gcc (powerpc*-*-*): Add new core e500mc.
6902         * config/rs6000/e500mc.md: New file.
6903         * config/rs6000/rs6000.c (processor_costs): Add new costs for
6904         e500mc.
6905         (rs6000_override_options): Add e500mc case to
6906         processor_target_table. Altivec and Spe options not allowed
6907         with e500mc. Add isel instruction to e500mc by
6908         default. Initialize rs6000_cost for e500mc.
6909         (rs6000_issue_rate): Set issue rate for e500mc.
6910         * config/rs6000/rs6000.h (processor_type): Add
6911         PROCESSOR_PPCE500MC.
6912         (ASM_CPU_SPEC): Add e500mc.
6913         Set TARGET_ISEL to rs6000_isel.
6914         * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
6915         (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
6916         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
6917         Include e500mc.md.
6918         * doc/invoke.texi: Add e500mc to list of cpus.
6919
6920 2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
6921
6922         PR c/34867
6923         * c-lex.c (lex_charconst): Initialize unsignedp.
6924
6925 2008-06-27  Olivier Hainque  <hainque@adacore.com>
6926
6927         * gimplify.c (gimplify_modify_expr_to_memset): Assert our
6928         documented assumptions.
6929
6930 2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>
6931
6932         * dwarf2out.c: Remove trailing white spaces.  Break long line
6933         in comments.
6934
6935 2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>
6936
6937         * libfuncs.h (LTI_synchronize): New libfunc_index.
6938         (synchronize_libfunc): Declare.
6939         * builtins.c (expand_builtin_synchronize): Consider using
6940         synchronize_libfunc before falling back on an asm blockage.
6941         * config/mips/mips.c: Include libfuncs.h
6942         (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
6943
6944 2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>
6945
6946         * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
6947         parameter.  Copy stack_reg to r11 where appropriate.
6948         (no_global_regs_above): Add gpr parameter.
6949         (rs6000_stack_info): Only add padding for SPE save area if we
6950         are saving SPE GPRs and CR.
6951         (saveres_routine_syms): New variable.
6952         (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
6953         Define.
6954         (rs6000_savres_routine_sym): New function.
6955         (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
6956         split out of...
6957         (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
6958         rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
6959         Tweak FPR out-of-line saving.
6960         (rs6000_make_savres_rtx): New function.
6961         (rs6000_use_multiple_p): New function.
6962         (rs6000_savres_strategy): New function.
6963         (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
6964         out-of-line if appropriate.
6965         * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
6966         if we are optimizing for size.
6967         (GP_SAVE_INLINE): Define.
6968         (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
6969         * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
6970         * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
6971         * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
6972         (*save_fpregs_<mode>): Add use of r11.
6973         (*restore_gpregs_<mode>): New insn.
6974         (*return_and_restore_gpregs_<mode>): New insn.
6975         (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
6976         use r11.
6977         * config/rs6000/spe.md (*save_gpregs_spe): New insn.
6978         (*restore_gpregs_spe): New insn.
6979         (*return_and_restore_gpregs_spe): New insn.
6980         * config/rs6000/predicates.md (save_world_operation): Fix check.
6981
6982 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
6983
6984         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
6985         this point, so assert that.
6986
6987 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
6988
6989         * cfganal.c: Include vec.h and vecprim.h.
6990         (compute_idf): Import from...
6991         * tree-into-ssa (compute_idf): ...here.
6992         * basic-block.h (compute_idf): Export.
6993
6994 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
6995
6996         * c-decl.c (merge_decls): Use !current_function_decl to check for
6997         extern declaration of C99 inline function being at file scope.
6998
6999 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
7000
7001         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
7002
7003 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7004
7005         * alias.c (record_alias_subset, init_alias_analysis): Fix
7006         -Wc++-compat and/or -Wcast-qual warnings.
7007         * attribs.c (lookup_attribute_spec): Likewise.
7008         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
7009         copy_bb, connect_traces,
7010         find_rarely_executed_basic_blocks_and_cr): Likewise.
7011         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
7012         note_btr_set, migrate_btr_defs): Likewise.
7013         * builtins.c (result_vector, expand_builtin_memcpy,
7014         expand_builtin_mempcpy_args, expand_builtin_strncpy,
7015         builtin_memset_read_str, expand_builtin_printf,
7016         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
7017         Likewise.
7018         * caller-save.c (mark_set_regs): Likewise.
7019         * calls.c (expand_call, emit_library_call_value_1): Likewise.
7020         * cgraph.c (cgraph_edge): Likewise.
7021         * combine.c (likely_spilled_retval_1): Likewise.
7022         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
7023         htab_counts_entry_del, get_coverage_counts): Likewise.
7024         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
7025         new_cselib_val): Likewise.
7026         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
7027         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
7028         Likewise.
7029         * df-core.c (df_compact_blocks): Likewise.
7030         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
7031         * df-scan.c (df_grow_reg_info, df_ref_create,
7032         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
7033         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
7034         df_record_entry_block_defs, df_record_exit_block_uses,
7035         df_bb_verify): Likewise.
7036         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
7037         DF_REF_EXTRACT_MODE_CONST): New.
7038         * dominance.c (get_immediate_dominator, get_dominated_by,
7039         nearest_common_dominator, root_of_dom_tree,
7040         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
7041         -Wc++-compat and/or -Wcast-qual warnings.
7042         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
7043         record_store, replace_read, check_mem_read_rtx, scan_insn,
7044         dse_step1, dse_record_singleton_alias_set): Likewise.
7045         * dwarf2asm.c (dw2_force_const_mem): Likewise.
7046
7047 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7048
7049         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
7050         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
7051         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
7052         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
7053         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
7054         add_ranges_num, add_ranges_by_labels, file_info_cmp,
7055         file_name_acquire, output_file_names, add_const_value_attribute,
7056         premark_used_types_helper, file_table_eq, file_table_hash,
7057         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
7058         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
7059         -Wcast-qual warnings.
7060         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
7061         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
7062         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
7063         gen_reg_rtx, start_sequence, init_emit): Likewise.
7064         * et-forest.c (et_new_occ, et_new_tree): Likewise.
7065         * except.c (init_eh_for_function, gen_eh_region,
7066         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
7067         arh_to_landing_pad, arh_to_label, add_action_record,
7068         add_call_site, switch_to_exception_section): Likewise.
7069         * expmed.c (synth_mult): Likewise.
7070         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
7071         store_expr): Likewise.
7072         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
7073         Likewise.
7074         * function.c (assign_stack_temp_for_type,
7075         allocate_struct_function, match_asm_constraints_1): Likewise.
7076         * gcov-io.c (gcov_allocate): Likewise.
7077         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
7078         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
7079         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
7080         record_one_set, insert_expr_in_table, insert_set_in_table,
7081         dump_hash_table, compute_hash_table_work, alloc_hash_table,
7082         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
7083         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
7084         -Wcast-qual warnings.
7085
7086 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7087
7088         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
7089         -Wcast-qual warnings.
7090         * gcc.c (process_command): Likewise.
7091         * genattrtab.c (oballoc): Use XOBNEW.
7092         (oballocvec): Define.
7093         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
7094         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
7095         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
7096         -Wc++-compat and/or -Wcast-qual warnings.
7097         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
7098         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
7099         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
7100         gen_presence_absence_set, gen_automaton, gen_regexp_el,
7101         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
7102         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
7103         add_excls, process_presence_absence_names,
7104         process_presence_absence_patterns, add_presence_absence,
7105         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
7106         get_free_state, add_arc, get_free_automata_list_el,
7107         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
7108         transform_3, cache_presence, create_ainsns, create_automata,
7109         create_state_ainsn_table, dfa_insn_code_enlarge,
7110         output_trans_func, output_min_issue_delay_func,
7111         output_dead_lock_func, output_reset_func,
7112         output_get_cpu_unit_code_func, output_dfa_start_func,
7113         expand_automata): Likewise.
7114         * genextract.c (gen_insn): Likewise.
7115         * gengtype-lex.l: Likewise.
7116         * gengtype.c (read_input_list, adjust_field_type,
7117         process_gc_options): Likewise.
7118         * genoutput.c (note_constraint): Likewise.
7119         * genpreds.c (mangle, add_constraint): Likewise.
7120         * genrecog.c (process_define_predicate, new_decision,
7121         add_to_sequence): Likewise.
7122         * gensupport.c (record_insn_name): Likewise.
7123
7124 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7125
7126         * config/i386/driver-i386.c (detect_caches_amd,
7127         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
7128         and/or -Wcast-qual warnings.
7129         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
7130         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
7131         gt_pch_save): Likewise.
7132         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
7133         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
7134         * global.c (compute_regsets): Likewise.
7135         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
7136         finish_graph_dump_file): Likewise.
7137         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
7138         unlink_bb_notes): Likewise.
7139         * integrate.c (get_hard_reg_initial_val): Likewise.
7140         * ipa-prop.c (ipa_push_func_to_list): Likewise.
7141         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
7142         * local-alloc.c (update_equiv_regs): Likewise.
7143         * loop-invariant.c (check_invariant_table_size,
7144         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
7145         Likewise.
7146         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
7147         altered_reg_used, mark_altered): Likewise.
7148         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
7149         insert_var_expansion_initialization,
7150         combine_var_copies_in_loop_exit, apply_opt_in_copies,
7151         release_var_copies): Likewise.
7152         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
7153         analyze_matrix_decl, add_allocation_site, analyze_transpose,
7154         analyze_accesses_for_phi_node, check_var_notmodified_p,
7155         check_allocation_function, find_sites_in_func,
7156         record_all_accesses_in_func, transform_access_sites,
7157         transform_allocation_sites): Likewise.
7158         * omp-low.c (new_omp_region, create_omp_child_function_name,
7159         check_omp_nesting_restrictions, check_combined_parallel,
7160         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
7161         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
7162         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
7163         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
7164         Likewise.
7165         * opts-common.c (prune_options): Likewise.
7166         * opts.c (add_input_filename, print_filtered_help,
7167         get_option_state): Likewise.
7168         * params.c (add_params): Likewise.
7169         * passes.c (set_pass_for_id, next_pass_1,
7170         do_per_function_toporder, pass_fini_dump_file): Likewise.
7171         * postreload.c (reload_cse_simplify_operands): Likewise.
7172         * predict.c (tree_predicted_by_p, tree_predict_edge,
7173         clear_bb_predictions, combine_predictions_for_bb): Likewise.
7174
7175 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7176
7177         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
7178         warnings.
7179         * recog.c (check_asm_operands, validate_change_1): Likewise.
7180         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
7181         subst_asm_stack_regs): Likewise.
7182         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
7183         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
7184         * regmove.c (reg_is_remote_constant_p): Likewise.
7185         * regrename.c (regrename_optimize, scan_rtx_reg,
7186         kill_clobbered_value, kill_set_value, kill_autoinc_value):
7187         Likewise.
7188         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
7189         regstat_compute_calls_crossed): Likewise.
7190         * reload1.c (init_reload, new_insn_chain,
7191         has_nonexceptional_receiver, reload, copy_reloads,
7192         calculate_needs_all_insns, init_elim_table): Likewise.
7193         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
7194         * rtl.c (shallow_copy_rtx_stat): Likewise.
7195         * rtlanal.c (parms_set): Likewise.
7196         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
7197         sbitmap_resize, sbitmap_vector_alloc): Likewise.
7198         * sched-ebb.c (earliest_block_with_similiar_load,
7199         add_deps_for_risky_insns): Likewise.
7200         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
7201         schedule_region): Likewise.
7202         * see.c (eq_descriptor_pre_extension,
7203         hash_descriptor_pre_extension, hash_del_pre_extension,
7204         eq_descriptor_properties, hash_descriptor_properties,
7205         hash_del_properties, see_seek_pre_extension_expr,
7206         see_initialize_data_structures, see_print_register_properties,
7207         see_print_pre_extension_expr, see_delete_merged_def_extension,
7208         see_delete_unmerged_def_extension, see_emit_use_extension,
7209         see_pre_delete_extension, see_map_extension, see_commit_changes,
7210         see_analyze_merged_def_local_prop,
7211         see_analyze_merged_def_local_prop,
7212         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
7213         see_set_prop_merged_def, see_set_prop_unmerged_def,
7214         see_set_prop_unmerged_use, see_print_one_extension,
7215         see_merge_one_use_extension, see_merge_one_def_extension,
7216         see_store_reference_and_extension, see_update_uses_relevancy,
7217         see_update_defs_relevancy): Likewise.
7218         * statistics.c (hash_statistics_hash, hash_statistics_eq,
7219         hash_statistics_free, curr_statistics_hash): Likewise.
7220         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
7221         expand_asm_operands, expand_return, case_bit_test_cmp,
7222         expand_case): Likewise.
7223         * stor-layout.c (start_record_layout): Likewise.
7224         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
7225         gt_pch_save_stringpool): Likewise.
7226         * tree-data-ref.c (hash_stmt_vertex_info,
7227         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
7228         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
7229
7230 2008-06-25  Uros Bizjak  <ubizjak@gmail.com>
7231
7232         PR target/36627
7233         * config/i386/i386.md : Change constraints of HImode and QImode
7234         immediate operands from "i" to "n".  Change SImode "ni" constraint to
7235         "i" and SImode "rmi" constraint to "g".  Remove all constraints
7236         from const0_operand and const1_operand predicated operands.
7237         (i): Change QImode and HImode attribute from "i" to "n".
7238         (*subqi_2): Change HImode operands to QImode.
7239         (*subqi_3): Ditto.
7240
7241 2008-06-25  Olivier Hainque  <hainque@adacore.com>
7242
7243         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
7244         sed substitutions.
7245
7246 2008-06-25  Richard Guenther  <rguenther@suse.de>
7247
7248         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
7249         not overflow the result type.
7250
7251 2008-06-25  Richard Guenther  <rguenther@suse.de>
7252
7253         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
7254         (vn_lookup): Likewise.
7255
7256 2008-06-25  Richard Guenther  <rguenther@suse.de>
7257
7258         PR tree-optimization/35518
7259         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
7260         * tree-sra.c (instantiate_element): Use fold_build3 to build
7261         BIT_FIELD_REFs.
7262         (try_instantiate_multiple_fields): Likewise.
7263
7264 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7265
7266         * config/rs6000/rs6000.md: Change all string instruction's clobber to
7267         be early clobbers.
7268
7269 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7270
7271         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
7272         use_backchain_to_restore_sp to true
7273         if the offset of the link register save area would go over the 32k - 1
7274         offset limit of the load
7275         instructions.
7276
7277 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
7278
7279         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
7280         anchor for the type-punning blurb.  Cross-reference "Structures
7281         unions enumerations and bit-fields implementation".  Provide a
7282         cast-through-pointer example.  Make final sentence self-contained.
7283         * doc/implement-c.texi (Structures unions enumerations and
7284         bit-fields implementation): Cross-reference the type-punning blurb
7285         in the -fstrict-aliasing documentation.
7286
7287 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7288
7289         PR middle-end/36594
7290         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
7291         the memory instead of the memory itself for the save area.
7292
7293 2008-06-24  Olivier Hainque  <hainque@adacore.com>
7294             Nicolas Roche  <roche@adacore.com>
7295
7296         * gengtype.c (srcdir_len): size_t instead of int.
7297         (get_file_realbasename): New function.  For F a filename, the real
7298         basename of F, with all the path components stripped.
7299         (get_file_srcdir_relative_path): New function.  For F a filename, the
7300         relative path to F from $(srcdir).
7301         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
7302         get_file_realbasename.  Adjust the head comment.
7303         (get_prefix_langdir_index): New function. For F a filename, return the
7304         lang_dir_names[] relative index of the language directory that is
7305         a prefix in F.
7306         (get_file_langdir): For F a filename, return the name of the language
7307         directory where F is located.
7308         (get_file_gtfilename): New function. The gt- output file name for an
7309         input filename F.
7310         (get_output_file_with_visibility): Replace in-line computations with
7311         uses of get_file_gtfilename and get_prefix_langdir_index.
7312         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
7313
7314 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
7315
7316         PR tree-optimization/36504
7317         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
7318         references without base address.
7319
7320 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
7321
7322         PR middle-end/36584
7323         * calls.c (expand_call): Increase alignment for recursive functions.
7324
7325 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
7326
7327         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
7328         (TARGET_FUNCTION_VALUE): New define.
7329         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
7330         * config/avr/avr.h (FUNCTION_VALUE): Remove.
7331
7332 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
7333
7334         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
7335         (fmod<mode>3): Ditto.
7336         (remainderxf3): Ditto.
7337         (remainder<mode>3): Ditto.
7338
7339 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
7340
7341         PR target/36533
7342         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
7343         REG is a hard register.
7344
7345         PR tree-optimization/36508
7346         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
7347         499, don't check it at all in release compilers.
7348
7349 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
7350
7351         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
7352         together with SSE_TARGET_MATH to disable insn pattern.
7353         (*fop_<MODEF:mode>_2_i387): Ditto.
7354         (*fop_<MODEF:mode>_3_i387): Ditto.
7355
7356 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
7357
7358         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
7359
7360 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7361
7362         PR middle-end/34906
7363         * gimplify.c (gimplify_asm_expr): Check the return code of
7364         parse_output_constraint call, set function return and is_inout
7365         value if it failed.
7366
7367 2008-06-22  Ian Lance Taylor  <iant@google.com>
7368
7369         * c-lex.c (narrowest_unsigned_type): Change itk to int.
7370         (narrowest_signed_type): Likewise.
7371         * c-typeck.c (c_common_type): Change local variable mclass to enum
7372         mode_class, twice.
7373         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
7374         tcc_comparison, not the tree code itself.
7375         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
7376         (c_expand_expr): Cast modifier to enum expand_modifier.
7377         * c-common.h (C_RID_CODE): Add casts.
7378         (C_SET_RID_CODE): Define.
7379         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
7380         (c_lex_one_token): Add cast to avoid warning.
7381         (c_parser_objc_type_name): Rename local typename to type_name.
7382         (check_no_duplicate_clause): Change code parameter to enum
7383         omp_clause_code.
7384         (c_parser_omp_var_list_parens): Change kind parameter to enum
7385         omp_clause_code.
7386         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
7387         c_parser_omp_list_var_parens.
7388         (c_parser_omp_threadprivate): Likewise.
7389         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
7390         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
7391         * c-format.c (NO_FMT): Define.
7392         (printf_length_specs): Use NO_FMT.
7393         (asm_fprintf_length_specs): Likewise.
7394         (gcc_diag_length_specs): Likewise.
7395         (scanf_length_specs): Likewise.
7396         (strfmon_length_specs): Likewise.
7397         (gcc_gfc_length_specs): Likewise.
7398         (printf_flag_specs): Change 0 to STD_C89.
7399         (asm_fprintf_flag_specs): Likewise.
7400         (gcc_diag_flag_specs): Likewise.
7401         (gcc_cxxdiag_flag_specs): Likewise.
7402         (scanf_flag_specs): Likewise.
7403         (strftime_flag_specs): Likewise.
7404         (strfmon_flag_specs): Likewise.
7405         (print_char_table): Likewise.
7406         (asm_fprintf_char_table): Likewise.
7407         (gcc_diag_char_table): Likewise.
7408         (gcc_tdiag_char_table): Likewise.
7409         (gcc_cdiag_char_table): Likewise.
7410         (gcc_cxxdiag_char_table): Likewise.
7411         (gcc_gfc_char_table): Likewise.
7412         (scan_char_table): Likewise.
7413         (time_char_table): Likewis.
7414         (monetary_char_table): Likewise.
7415         * c-format.h (BADLEN): Likewise.
7416
7417 2008-06-21  Ian Lance Taylor  <iant@google.com>
7418
7419         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
7420         Define END_OF_BASE_TREE_CODES around inclusion.
7421         * tree.c (tree_code_type): New global array.
7422         (tree_code_length, tree_code_name): Likewise.
7423         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
7424         $(lang_tree_files).
7425         (all-tree.def, s-alltree): New targets.
7426         (gencheck.h, s-gencheck): Remove.
7427         (tree.o): Depend upon all-tree.def.
7428         (build/gencheck.o): Remove gencheck.h dependency.
7429         (mostlyclean): Don't remove gencheck.h.
7430         * c-common.h (enum c_tree_code): Remove.
7431         * c-lang.c (tree_code_type): Remove.
7432         (tree_code_length, tree_code_name): Remove.
7433         * gencheck.c (tree_codes): Include all-tree.def, rather than
7434         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
7435         after it is used.
7436         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
7437         than tree.def.
7438         * cp/cp-tree.h (enum cplus_tree_code): Remove.
7439         (operator_name_info): Size to MAX_TREE_CODES.
7440         (assignment_operator_name_info): Likewise.
7441         * cp/cp-lang.c (tree_code_type): Remove.
7442         (tree_code_length, tree_code_name): Remove.
7443         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
7444         (assignment_operator_name_info): Likewise.
7445         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
7446         MAX_TREE_CODES.
7447         * cp/mangle.c (write_expression): Likewise.
7448         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
7449         * fortran/f95-lang.c (tree_code_type): Remove.
7450         (tree_code_length, tree_code_name): Remove.
7451         * java/java-tree.h (enum java_tree_code): Remove.
7452         * java/lang.c (tree_code_type): Remove.
7453         (tree_code_length, tree_code_name): Remove.
7454         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
7455         * objc/objc-act.h (enum objc_tree_code): Remove.
7456         * objc/objc-lang.c (tree_code_type): Remove.
7457         (tree_code_length, tree_code_name): Remove.
7458         * objcp/objcp-lang.c (tree_code_type): Remove.
7459         (tree_code_length, tree_code_name): Remove.
7460         * ada/ada-tree.h (enum gnat_tree_code): Remove.
7461         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
7462         * ada/misc.c (tree_code_type): Remove.
7463         (tree_code_length, tree_code_name): Remove.
7464
7465 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
7466
7467         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
7468         the grand_bitmap_obstack.
7469
7470 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7471
7472         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
7473         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
7474         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
7475         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
7476         move_stmt_r, new_label_mapper): Likewise.
7477         * tree-complex.c (cvc_lookup): Likewise.
7478         * tree-dfa.c (create_function_ann): Likewise.
7479         * tree-dump.c (dump_register): Likewise.
7480         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
7481         find_phi_replacement_condition): Likewise.
7482         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
7483         tree_function_versioning): Likewise.
7484         * tree-into-ssa.c (cmp_dfsnum): Likewise.
7485         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
7486         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
7487         get_nonlocal_debug_decl, convert_nonlocal_reference,
7488         convert_nonlocal_omp_clauses, get_local_debug_decl,
7489         convert_local_reference, convert_local_omp_clauses,
7490         convert_nl_goto_reference, convert_nl_goto_receiver,
7491         convert_tramp_reference, convert_call_expr): Likewise.
7492         * tree-outof-ssa.c (contains_tree_r): Likewise.
7493         * tree-parloops.c (reduction_phi, initialize_reductions,
7494         eliminate_local_variables_1, add_field_for_reduction,
7495         add_field_for_name, create_phi_for_local_result,
7496         create_call_for_reduction_1, create_loads_for_reductions,
7497         create_stores_for_reduction, create_loads_and_stores_for_name):
7498         Likewise.
7499         * tree-phinodes.c (allocate_phi_node): Likewise.
7500         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
7501         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
7502         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
7503         * tree-ssa-coalesce.c (compare_pairs): Likewise.
7504         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
7505         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
7506         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
7507         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
7508         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
7509         vn_nary_op_insert): Likewise.
7510         * tree-ssa.c (redirect_edge_var_map_add,
7511         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
7512         * tree-vectorizer.c (vectorize_loops): Likewise.
7513         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
7514         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
7515         tree_cons_stat, build1_stat, build_variant_type_copy,
7516         decl_init_priority_lookup, decl_fini_priority_lookup,
7517         decl_priority_info, decl_restrict_base_lookup,
7518         decl_restrict_base_insert, decl_debug_expr_lookup,
7519         decl_debug_expr_insert, decl_value_expr_lookup,
7520         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
7521         type_hash_add, get_file_function_name, tree_check_failed,
7522         tree_not_check_failed, tree_range_check_failed,
7523         omp_clause_range_check_failed, build_omp_clause,
7524         build_vl_exp_stat): Likewise.
7525         * value-prof.c (gimple_histogram_value,
7526         gimple_duplicate_stmt_histograms): Likewise.
7527         * var-tracking.c (attrs_list_insert, attrs_list_copy,
7528         unshare_variable, variable_union_info_cmp_pos, variable_union,
7529         dataflow_set_different_1, dataflow_set_different_2,
7530         vt_find_locations, variable_was_changed, set_variable_part,
7531         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
7532         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
7533         section_entry_hash, object_block_entry_eq,
7534         object_block_entry_hash, create_block_symbol,
7535         initialize_cold_section_name, default_function_rodata_section,
7536         strip_reg_name, set_user_assembler_name, const_desc_eq,
7537         build_constant_desc, output_constant_def, lookup_constant_def,
7538         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
7539         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
7540         default_internal_label): Likewise.
7541         * varray.c (varray_init, varray_grow): Likewise.
7542         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
7543
7544 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
7545
7546         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
7547         operators for "test" insn.  Macroize insn using SWI mode macro.
7548         (*jcc_fused_2): Ditto.
7549         (*jcc_fused_3): Macroize insn using SWI mode macro.
7550         (*jcc_fused_4): Ditto.
7551
7552 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
7553
7554         * tree-ssa-pre.c: Fix typo in comment.
7555         (init_antic, fini_antic): Add explicit funtions for
7556         initializing and deinitializing ANTIC and AVAIL sets.
7557         (create_expression_by_pieces): Fix typo in comment.
7558         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
7559         (execute_pre): Eventually dump details about ANTIC_IN.
7560
7561 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7562
7563         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
7564         * gcc.c (translate_options, init_spec, store_arg, read_specs,
7565         add_to_obstack, file_at_path, find_a_file, execute,
7566         add_preprocessor_option, add_assembler_option, add_linker_option,
7567         process_command, insert_wrapper, do_option_spec, do_self_spec,
7568         spec_path, do_spec_1, is_directory, main, used_arg,
7569         getenv_spec_function): Likewise.
7570         * tlink.c (symbol_hash_lookup, file_hash_lookup,
7571         demangled_hash_lookup, symbol_push, file_push, frob_extension):
7572         Likewise.
7573
7574 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
7575
7576         * doc/rtl.texi: Updated subreg section.
7577
7578 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
7579
7580         PR c++/36523
7581         * cgraphunit.c (cgraph_process_new_functions): Don't clear
7582         node->needed and node->reachable.
7583         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
7584         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
7585         (expand_task_call): Don't call expand_task_copyfn.
7586         (expand_task_copyfn): Renamed to...
7587         (finalize_task_copyfn): ... this.
7588
7589 2008-06-19  Jan Hubicka  <jh@suse.cz>
7590
7591         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
7592         clobbering framepointer.
7593
7594 2008-06-19  Jan Hubicka  <jh@suse.cz>
7595
7596         * tree-optimize.c (execute_early_local_optimizations): Set
7597         cgraph_state only at first invocation.
7598
7599 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7600
7601         * system.h (-Wc++-compat): Activate as a warning, no an error.
7602
7603 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
7604
7605         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
7606         instead of "#" in insn asm template.
7607         (*jcc_fused_2): Ditto.
7608
7609 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
7610
7611         * config/i386/i386.h (ix86_tune_indices)
7612         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
7613         (TARGET_FUSE_CMP_AND_BRANCH): New define.
7614         * config/i386/i386.md (*jcc_fused_1): New insn pattern
7615         (*jcc_fused_2): Ditto.
7616         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
7617         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
7618         (print operand): Handle 'E' and 'e' code.
7619
7620 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
7621
7622         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
7623         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
7624         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
7625
7626 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
7627
7628         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
7629         node->decl.
7630         (cgraph_expand_function): Use local copy of decl.
7631         (cgraph_expand_all_functions): Remove redundant initialization of
7632         order_pos.
7633         (cgraph_optimize): Reword internal_error message.
7634
7635 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
7636
7637         * arm-protos.h (arm_return_in_memory): Remove public
7638         arm_return_in_memory() prototype.
7639         * arm.c (arm_return_in_memory): Add static prototype, add target
7640         hook macro, change definition and comments.
7641         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
7642
7643 2008-06-19  Ben Elliston  <bje@au.ibm.com>
7644
7645         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
7646         real.c: Remove references to IEEE 754R.
7647         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
7648         * doc/libgcc.texi (Decimal float library routines): Likewise.
7649
7650 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7651
7652         * targhooks.h (struct gcc_target): New member unwind_word_mode.
7653         (default_unwind_word_mode): Add prototype.
7654         * targhooks.c (default_unwind_word_mode): New function.
7655         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
7656         instead of word_mode.
7657         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
7658         (TARGET_INITIALIZER): Use it.
7659
7660         * c-common.c (handle_mode_attribute): Support "unwind_word"
7661         mode attribute.
7662         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
7663
7664         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
7665         word_mode to access SjLj_Function_Context member "data".
7666         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
7667         conversion from targetm.eh_return_filter_mode () to
7668         targetm.unwind_word_mode () if they differ.
7669
7670         * builtin-types.def (BT_UNWINDWORD): New primitive type.
7671         (BT_FN_UNWINDWORD_PTR): New function type.
7672         (BT_FN_WORD_PTR): Remove.
7673         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
7674         * except.c (expand_builtin_extend_pointer): Convert pointer to
7675         targetm.unwind_word_mode () instead of word_mode.
7676
7677         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
7678         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
7679         (spu_unwind_word_mode): New function.
7680         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
7681         (TARGET_UNWIND_WORD_MODE): Define.
7682         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
7683
7684 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7685
7686         * config/spu/spu.c (reg_align): Remove.
7687         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
7688         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
7689         (spu_split_store): Likewise.
7690
7691 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
7692
7693         * gcc/tree-vn.c: Fix typo in comment.
7694
7695 2008-06-18  Jan Hubicka  <jh@suse.cz>
7696
7697         * cgraphunit.c (cgraph_optimize): Output debug info when doing
7698         toplevel reorder too.
7699
7700 2008-06-18  Jan Hubicka  <jh@suse.cz>
7701
7702         * c-opts.c (c_common_post_options): PCH is not compatible with
7703         no-unit-at-a-time.
7704         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
7705         -fno-toplevel-reorder by default now.
7706
7707 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7708
7709         PR documentation/30739
7710         * doc/install.texi (Prerequisites): Document dependency on awk.
7711
7712 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
7713             Ian Lance Taylor  <iant@google.com>
7714
7715         PR rtl-optimization/35604
7716         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
7717         only want to change jump destinations, not eventual label comparisons.
7718
7719 2008-06-16  Jan Hubicka  <jh@suse.cz>
7720
7721         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
7722         syntax errors.
7723         (cgraph_analyze_function): Likewise.
7724
7725 2008-06-16  Jan Hubicka  <jh@suse.cz>
7726
7727         * cgraph.h (cgraph_mark_if_needed): New function.
7728         * cgraphunit.c (cgraph_mark_if_needed): New function.
7729         * c-decl.c (duplicate_decl): Use it.
7730
7731 2008-06-16  Jan Hubicka  <jh@suse.cz>
7732
7733         * cgraph.c (cgraph_add_new_function): When in expansion state, do
7734         lowering.
7735
7736 2008-06-16  Jan Hubicka  <jh@suse.cz>
7737
7738         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
7739
7740 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
7741             Kazu Hirata  <kazu@codesourcery.com>
7742             Maxim Kuvyrkov  <maxim@codesourcery.com
7743
7744         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
7745         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
7746         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
7747         EXTRA_SPEC_FUNCTIONS.
7748         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
7749         (DRIVER_SELF_SPECS): Adjust.
7750         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
7751         * config/mips/st.h, config/mips/t-st: New.
7752         * config/mips/driver-native.c, config/mips/x-native: New.
7753         * doc/invoke.texi (MIPS): Document 'native' value for -march and
7754         -mtune options.
7755
7756 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
7757
7758         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
7759         from it.
7760         (ISA_HAS_FP_CONDMOVE): New macro.
7761         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
7762         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
7763         (ISA_HAS_NMADD3_NMSUB3): New macro.
7764         * config/mips/mips.c (mips_rtx_costs): Update.
7765         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
7766         compiling for ST Loongson 2E/2F.
7767         (madd<mode>): Rename to madd4<mode>.  Update.
7768         (madd3<mode>): New pattern.
7769         (msub<mode>): Rename to msub4<mode>.  Update.
7770         (msub3<mode>): New pattern.
7771         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
7772         (nmadd3<mode>): New pattern.
7773         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
7774         (nmadd3<mode>_fastmath): New pattern.
7775         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
7776         (nmsub3<mode>): New pattern.
7777         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
7778         (nmsub3<mode>_fastmath): New pattern.
7779         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
7780
7781 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
7782
7783         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
7784         (DF_REF_INSN_INFO): New.
7785         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
7786         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
7787         with a NULL DF_REF_INSN_INFO.
7788         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
7789         DF_INSN_SET.
7790         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
7791         DF_INSN_INFO_EQ_USES): New.
7792         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
7793         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
7794         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
7795         * df-core.c: Update comment for above changes.
7796         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
7797         DF_INSN_UID_* macros.
7798         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
7799         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
7800         insn rtx.  Update all callers.
7801         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
7802         df_ref_create_structure, df_insn_refs_collect): Likewise.
7803         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
7804         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
7805         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
7806         macros to access the insn refs.
7807         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
7808         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
7809         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
7810         for accessing the refs.
7811         (try_fwprop_subst): Likewise.
7812         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
7813         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
7814         for accessing the refs.
7815         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
7816         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
7817         to look at the insn refs.
7818         (record_uses): Likewise.
7819         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
7820         function anymore.
7821         (mark_artificial_uses): Don't mark_insn for artificial refs.
7822         (mark_reg_rependencies): Likewise.
7823
7824         * doc/rtl.texi: Remove documentation of ADDRESSOF.
7825
7826 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7827
7828         * configure: Regenerate.
7829
7830 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
7831
7832         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
7833         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
7834         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
7835
7836 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
7837
7838         * config/avr/avr.c (avr_mcu_t): Add attiny167.
7839         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
7840         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
7841
7842 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
7843
7844         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
7845         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
7846         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
7847
7848 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
7849
7850         * tree-ssa-sccvn.c: Fix format of comments.
7851
7852 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
7853
7854         * cgraph.c: Remove unneeded forward declarations of eq_node()
7855         and hash_node().
7856
7857 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
7858
7859         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
7860         REG_RETVAL notes.
7861         (see_update_relevancy): Likewise.
7862         * fwprop.c (try_fwprop_subst): Likewise.
7863         * rtlanal.c (noop_move_p): Likewise.
7864         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
7865         notes to non-existing libcall blocks.
7866         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
7867         Remove orig_set.
7868         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
7869         (dead_libcall_p): Remove.
7870         (delete_trivially_dead_insns): Don't use it.
7871         * web.c (union_defs): Remove comment about keeping nops.
7872         * gcse.c (hash_scan_insn): Don't take libcall pointers.
7873         (compute_hash_table_work): Don't track libcall notes.
7874         (do_local_cprop): Don't take libcall pointers.  Don't update
7875         libcall notes.
7876         (adjust_libcall_notes): Deleted.
7877         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
7878         ever have existed in the first place).
7879         (replace_store_insn): Don't try to remove libcall notes.
7880         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
7881         (resolve_reg_notes): Don't call them.
7882         (resolve_simple_move): Likewise.
7883         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
7884         Don't remove REG_RETVAL notes.
7885         * emit-rtl.c (try_split): Don't update libcall notes.
7886         (emit_copy_of_insn_after): Dito.
7887         * cselib.c (cselib_current_insn_in_libcall): Remove.
7888         (cselib_process_insn): Don't set/clear it.
7889         (new_elt_loc_list): Don't record it.
7890         (cselib_init): Don't initialize it.
7891         * cselib.c (struct elt_loc_list): Remove in_libcall field.
7892         * loop-invariant.c (find_invariant_insn): Don't look for libcall
7893         notes.
7894         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
7895         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
7896         (init_deps): Don't initialize it.
7897         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
7898         * combine.c (delete_noop_moves): Don't update libcall notes.
7899         (can_combine_p): Remove now pointless #if 0 block.
7900         (try_combine): Remove another obsolete #if 0 block.
7901         (distribute_notes): Don't distribute libcall notes.
7902         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
7903         * dce.c (libcall_dead_p): Remove.
7904         (delete_unmarked_insns): Don't handle libcall blocks.
7905         (preserve_libcall_for_dce): Remove.
7906         (prescan_insns_for_dce): Don't special-case libcall block insns.
7907         * reload1 (reload): Don't handle libcall notes.
7908         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
7909         documentation.
7910
7911 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
7912
7913         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
7914         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
7915         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
7916
7917 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
7918
7919         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
7920         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
7921         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
7922
7923 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7924
7925         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
7926
7927 2008-06-16  Ira Rosen  <irar@il.ibm.com>
7928
7929         PR tree-optimization/36493
7930         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
7931         the arguments list. Use VECTYPE to create vector pointer.
7932         (vectorizable_store): Fail if accesses through a pointer to vectype
7933         do not alias the original memory reference operands.
7934         Call vect_create_data_ref_ptr without the removed argument.
7935         (vectorizable_load): Likewise.
7936         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
7937         removed argument.
7938
7939 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
7940
7941         PR target/36336
7942         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
7943         reg_equiv_constant.
7944
7945 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
7946
7947         * config/mips/loongson2ef.md: New file.
7948         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
7949         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
7950         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
7951         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
7952         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
7953         and loongson_2f.
7954         (loongson2ef.md): New include.
7955         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
7956         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
7957         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
7958         (loongson_gt_<mode>, loongson_extract_halfword)
7959         (loongson_insert_halfword_0, loongson_insert_halfword_2)
7960         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
7961         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
7962         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
7963         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
7964         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
7965         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
7966         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
7967         (vec_interleave_low<mode>): Define type attribute.
7968         * config/mips/mips.c (mips_ls2): New static variable.
7969         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
7970         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
7971         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
7972         Implement target scheduling hooks.
7973         (mips_multipass_dfa_lookahead): Update to handle tuning for
7974         Loongson 2E/2F.
7975         (mips_sched_init): Initialize data for Loongson scheduling.
7976         (mips_ls2_variable_issue): New static function.
7977         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
7978         Add sanity check.
7979         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
7980         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
7981         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
7982         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
7983         Handle ST Loongson 2E/2F cores.
7984         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
7985
7986 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7987
7988         * omp-low.c (extract_omp_for_data): Fix comment typo.
7989         * c.opt: Fix typo.
7990
7991 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7992
7993         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
7994         FIXME note about gcc/config.guess.
7995         * doc/options.texi (Option file format): Remove non-ASCII bytes.
7996         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
7997         * doc/cppopts.texi: Likewise.
7998         * doc/extend.texi: Likewise.
7999         * doc/gcc.texi: Likewise.
8000         * doc/gccint.texi: Likewise.
8001         * doc/gcov.texi: Likewise.
8002         * doc/gty.texi: Likewise.
8003         * doc/hostconfig.texi: Likewise.
8004         * doc/install.texi: Likewise.
8005         * doc/invoke.texi: Likewise.
8006         * doc/loop.texi: Likewise.
8007         * doc/makefile.texi: Likewise.
8008         * doc/md.texi: Likewise.
8009         * doc/passes.texi: Likewise.
8010         * doc/tm.texi: Likewise.
8011         * doc/tree-ssa.texi: Likewise.
8012         * doc/trouble.texi: Likewise.
8013
8014 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
8015             Nathan Sidwell  <nathan@codesourcery.com>
8016             Maxim Kuvyrkov  <maxim@codesourcery.com>
8017             Richard Sandiford  <rdsandiford@googlemail.com>
8018
8019         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
8020         * config/mips/mips-protos.h (mips_expand_vector_init): New.
8021         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
8022         builtins.
8023         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
8024         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
8025         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
8026         V8QImode cases.
8027         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
8028         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
8029         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
8030         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
8031         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
8032         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
8033         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
8034         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
8035         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
8036         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
8037         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
8038         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
8039         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
8040         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
8041         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
8042         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
8043         (mips_builtins): Add Loongson builtins.
8044         (mips_loongson_2ef_bdesc): New.
8045         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
8046         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
8047         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
8048         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
8049         New.
8050         (mips_expand_vector_init): New.
8051         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
8052         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
8053         if appropriate.
8054         * config/mips/mips.md: Add unspec numbers for Loongson
8055         builtins.  Include loongson.md.
8056         (MOVE64): Include Loongson vector modes.
8057         (SPLITF): Include Loongson vector modes.
8058         (HALFMODE): Handle Loongson vector modes.
8059         * config/mips/loongson.md: New.
8060         * config/mips/loongson.h: New.
8061         * config.gcc: Add loongson.h header for mips*-*-* targets.
8062         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
8063
8064 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
8065
8066         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
8067         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
8068         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
8069         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
8070         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
8071         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
8072         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
8073         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
8074         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
8075         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
8076         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
8077         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
8078         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
8079         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
8080         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
8081         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
8082         Remove use_fixproto=yes.
8083         (ia64*-*-hpux*): Remove comment about using fixproto.
8084         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
8085
8086 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8087
8088         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
8089         library rebuilds.
8090         * configure: Regenerate.
8091
8092 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
8093
8094         PR middle-end/36520
8095         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
8096         before evaluating it.
8097
8098 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
8099
8100         PR c/36507
8101         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
8102         nested inline functions.
8103         (start_decl, start_function): Don't invert DECL_EXTERNAL
8104         for nested inline functions.
8105
8106 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
8107
8108         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
8109         splits that must be made for correctness.
8110
8111 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
8112
8113         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
8114         (AVAIL_NON_MIPS16): Likewise.
8115         (mips_builtin_description): Replace target_flags with a predicate.
8116         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
8117         (dspr2_32): New availability predicates.
8118         (MIPS_BUILTIN): New macro.
8119         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
8120         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
8121         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
8122         Replace the TARGET_FLAGS parameters with AVAIL parameters.
8123         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
8124         (mips_dsp_32only_bdesc): Merge into...
8125         (mips_builtins): ...this new array.
8126         (mips_bdesc_map, mips_bdesc_arrays): Delete.
8127         (mips_init_builtins): Update after above changes.
8128         (mips_expand_builtin_1): Merge into...
8129         (mips_expand_builtin): ...here and update after above changes.
8130
8131 2008-06-12  Paul Brook  <paul@codesourcery.com>
8132
8133         * longlong.h (__arm__): Define count_leading_zeros.
8134         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
8135         (clzsi2, clzdi2): New functions.
8136         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
8137         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
8138         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
8139         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
8140         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
8141         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
8142         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
8143         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
8144         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
8145         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
8146
8147 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
8148
8149         * config/m68k/m68k.c (m68k_tune_flags): New.
8150         (override_options): Compute m68k_tune_flags.
8151         (MULL_COST, MULW_COST): Update for various variants of CFV2.
8152         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
8153
8154 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
8155
8156         PR middle-end/36506
8157         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
8158
8159 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
8160
8161         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
8162         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
8163
8164 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
8165
8166         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
8167         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
8168
8169 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
8170
8171         PR middle-end/36506
8172         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
8173         reductions.
8174
8175 2008-06-12  Richard Guenther  <rguenther@suse.de>
8176
8177         PR tree-optimization/36345
8178         * tree-flow.h (struct ptr_info_def): Align escape_mask,
8179         add memory_tag_needed flag.
8180         (may_alias_p): Declare.
8181         * tree-ssa-alias.c (may_alias_p): Export.
8182         (set_initial_properties): Use memory_tag_needed flag.
8183         (update_reference_counts): Likewise.
8184         (reset_alias_info): Reset memory_tag_needed flag.
8185         (create_name_tags): Check memory_tag_needed flag.
8186         (dump_points_to_info_for): Dump it.
8187         * tree-ssa-structalias.c (struct variable_info): Remove
8188         directly_dereferenced flag.
8189         (new_var_info): Do not initialize it.
8190         (process_constraint_1): Do not set it.
8191         (update_alias_info): Set is_dereferenced flag.
8192         (set_uids_in_ptset): Use may_alias_p.
8193         (set_used_smts): Check memory_tag_needed flag.
8194         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
8195         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
8196         memory_tag_needed flag.
8197         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
8198         from broken design.
8199
8200 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
8201
8202         * config/i386/i386.c (ix86_compute_frame_layout): Disable
8203         red zone for w64 abi.
8204         (ix86_expand_prologue): Likewise.
8205         (ix86_force_to_memory): Likewise.
8206         (ix86_free_from_memory): Likewise.
8207
8208 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
8209
8210         PR target/36425
8211         * config/rs6000/rs6000.c (rs6000_override_options): Set
8212         rs6000_isel conditionally to the absence of comand line override.
8213         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
8214         Remove duplicate rs6000_isel setting.
8215         * config/rs6000/eabispe.h: Ditto.
8216
8217 2008-06-11  Richard Guenther  <rguenther@suse.de>
8218
8219         * alias.c (get_alias_set): Use the element alias-set for arrays.
8220         (record_component_aliases): For arrays and vectors do nothing.
8221         * c-common.c (strict_aliasing_warning): Handle the cases
8222         of alias set zero explicitly.
8223         * Makefile.in (dfp.o-warn): Add -Wno-error.
8224
8225 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
8226
8227         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
8228         tune_32 tune_64.
8229         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
8230         tune_32 tune_64 to supported_defaults.  Allow values not
8231         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
8232         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
8233         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
8234         with_cpu_64 to generic for 64-bit-supporting configurations, not
8235         with_cpu.  Remove FIXMEs.
8236         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
8237         --with-arch-64, --with-tune-32, --with-tune-64): Document.
8238         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
8239         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
8240         arch_32 and arch_64.
8241
8242 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
8243             Olivier Hainque  <hainque@adacore.com>
8244
8245         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
8246         Use DECL_SIZE_UNIT to retrieve the size of the field.
8247
8248 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
8249
8250         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
8251         with function calls after declarations.  Lay out
8252         neon_float_type_node before further use.
8253
8254 2008-06-11  Richard Guenther  <rguenther@suse.de>
8255
8256         * tree-flow.h (may_point_to_global_var): Declare.
8257         * tree-ssa-alias.c (may_point_to_global_var): New function.
8258         * tree-ssa-sink.c (is_hidden_global_store): Use it.
8259
8260 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
8261
8262         * configure.ac: Teach that fido supports .debug_line.
8263         * configure: Regenerate.
8264
8265 2008-06-10  Tom Tromey  <tromey@redhat.com>
8266
8267         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
8268         debug hook.
8269
8270 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
8271
8272         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
8273         (encode_decimal64, decode_decimal64, encode_decimal128,
8274         decode_decimal128): Reverse order of 32-bit parts of value if host
8275         and target endianness differ.
8276
8277 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
8278
8279         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
8280         Avoid division by 0.
8281         (tree_mod_pow2_value_transform): Likewise.
8282         (tree_ic_transform): Likewise.
8283         (tree_stringops_transform): Likewise.
8284         (tree_mod_subtract_transform): Likewise.
8285         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
8286         (copy_edges_for_bb): Likewise.
8287         (initialize_cfun): Likewise.
8288
8289 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
8290
8291         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
8292         nonmemory_operand. Add "N" operand constraint.
8293         (*btsi): Ditto.
8294         (*jcc_btdi_mask_rex64): New instruction and split pattern.
8295         (*jcc_btsi_mask): Ditto.
8296         (*jcc_btsi_mask_1): Ditto.
8297
8298 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
8299
8300         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
8301         TYPE_CANONICAL for copied element type.
8302
8303 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
8304
8305         PR target/36473
8306         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
8307         Add m_CORE2 and m_GENERIC.
8308         * config/i386/predicates.md (bt_comparison_operator): New predicate.
8309         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
8310         (*btsi): Ditto.
8311         (*jcc_btdi_rex64): New instruction and split pattern.
8312         (*jcc_btsi): Ditto.
8313         (*jcc_btsi_1): Ditto.
8314         (*btsq): Fix Intel asm dialect operand order.
8315         (*btrq): Ditto.
8316         (*btcq): Ditto.
8317
8318 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
8319
8320         PR middle-end/36447
8321         * simplify-rtx.c (simplify_subreg): Add check for shift count
8322         greater than size.
8323
8324 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
8325
8326         * doc/md.texi: Synchronize with later constraints.md change.
8327         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
8328         with a C implementation.
8329         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
8330         MFLO handling.
8331         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
8332         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
8333         when moving to and from MD_REGNUM.
8334         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
8335         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
8336         Handle byte and halfword moves.
8337         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
8338         separately.
8339         * config/mips/constraints.md (h): Turn into NO_REGS.
8340         (l, x): Update documentation.
8341         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
8342         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
8343         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
8344         (HILO): New mode iterator.
8345         (MOVE128): Add TI.
8346         (any_div): New code iterator.
8347         (u): Extend code attribute to div and udiv.
8348         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
8349         d_operand in the splitters.  Remove redundant CONST_INT checks.
8350         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
8351         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
8352         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
8353         accordingly, using normal moves instead of unspecs to move LO into
8354         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
8355         (<u>mulsidi3): Handle expansion in C code.
8356         (<u>mulsidi3_32bit_internal): Rename to...
8357         (<u>mulsidi3_32bit): ...this.
8358         (<u>mulsidi3_32bit_r4000): Fix insn separator.
8359         (*<u>mulsidi3_64bit): Rename to...
8360         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
8361         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
8362         to set LO and HI to the multiplication result.  Use a normal move
8363         for MFLO and an unspec for MFHI.
8364         (*<u>mulsidi3_64bit_parts): Replace with...
8365         (<u>mulsidi3_64bit_hilo): ...this new instruction.
8366         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
8367         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
8368         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
8369         instead of HI.  Split the instruction into a separate multiplication
8370         and MFHI if !TARGET_FIX_R4000.
8371         (<su>muldi3_highpart): Likewise.
8372         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
8373         and the "=h" clobber.
8374         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
8375         (<u>mulditi3): New expander.
8376         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
8377         (madsi): Remove "=h" clobber.
8378         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
8379         Force the modulus result to be a GPR and split the instruction into
8380         a division followed by an MFHI after reload.
8381         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
8382         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
8383         the MIPS16 HIGH define_split.
8384         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
8385         of acc<->gpr moves to "multi".
8386         (*movdi_64bit): Replace the single "x" alternative with
8387         alternatives for moving into and out of "a".
8388         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
8389         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
8390         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
8391         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
8392         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
8393         (movti): New expander.
8394         (*movti, *movti_mips16): New insns.
8395         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
8396         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
8397         (mthi<GPR:mode>_<HILO:mode>): Likewise.
8398         * config/mips/predicates.md (fpr_operand): Delete.
8399         (d_operand): New predicate.
8400
8401 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
8402
8403         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
8404         failure on some Bourne shells.
8405         (x86_64-*-*): Ditto.
8406
8407 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
8408
8409         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
8410
8411 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
8412
8413         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
8414         (sparc-sun-solaris2*): Likewise.
8415
8416 2008-06-09  Arnaud Charlet  <charlet@adacore.com
8417
8418         * doc/install.texi: Update requirements to build the Ada compiler.
8419
8420 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
8421
8422         * df-scan.c (struct df_scan_problem_data): Remove the
8423         mw_link_pool alloc pool.
8424         (df_scan_free_internal): Don't free it.
8425         (df_scan_alloc): Don't allocate it.
8426         * df.h (struct df_link): Update comment.
8427
8428 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
8429
8430         * except.h: Correct checks for when SJLJ exceptions must be used.
8431
8432 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8433
8434         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
8435         default.
8436
8437 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
8438
8439         PR tree-optimization/36218
8440         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
8441         configure for the build system.
8442         (BUILD_LDFLAGS): Define.
8443         * configure: Regenerate.
8444         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
8445
8446 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
8447
8448         PR target/36424
8449         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
8450         * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
8451         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
8452
8453 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
8454
8455         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
8456
8457 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
8458
8459         * config.gcc (Obsolete configurations): Remove list of
8460         configurations.
8461         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
8462         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
8463         targets matched by those patterns.
8464         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
8465         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
8466         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
8467         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
8468         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
8469         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
8470         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
8471         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
8472         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
8473         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
8474         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
8475         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
8476         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
8477         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
8478         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
8479         Make code for Solaris 7 and greater unconditional for Solaris.
8480         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
8481         Remove --with-* handling.
8482         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
8483         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
8484         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
8485         LINK_OS_WINDISS_SPEC): Remove.
8486         * config/rs6000/sysv4.opt (mwindiss): Remove.
8487         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
8488         * configure: Regenerate.
8489         * doc/cpp.texi: Don't mention BeOS.
8490         * doc/extend.texi (interrupt): Don't mention MS1.
8491         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
8492         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
8493         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
8494         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
8495         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
8496         Remove.
8497         * doc/invoke.texi (MT Options): Remove.
8498         (-mwindiss): Remove.
8499         (CRIS Options): Remove cris-axis-aout references.
8500         (HPPA Options): Don't mention hppa1.1-*-pro.
8501         * doc/md.texi: (MorphoTech family): Remove.
8502         * libgcc2.c: Don't handle UWIN.
8503         * config/alpha/t-unicosmk: Remove.
8504         * config/alpha/unicosmk.h: Remove.
8505         * config/arm/kaos-arm.h: Remove.
8506         * config/arm/kaos-strongarm.h: Remove.
8507         * config/arm/strongarm-coff.h: Remove.
8508         * config/arm/strongarm-elf.h: Remove.
8509         * config/arm/strongarm-pe.h: Remove.
8510         * config/arm/t-strongarm-pe: Remove.
8511         * config/arm/t-xscale-coff: Remove.
8512         * config/arm/t-xscale-elf: Remove.
8513         * config/arm/xscale-coff.h: Remove.
8514         * config/arm/xscale-elf.h: Remove.
8515         * config/chorus.h: Remove.
8516         * config/cris/aout.h: Remove.
8517         * config/cris/aout.opt: Remove.
8518         * config/cris/t-aout: Remove.
8519         * config/i386/beos-elf.h: Remove.
8520         * config/i386/kaos-i386.h: Remove.
8521         * config/i386/ptx4-i.h: Remove.
8522         * config/i386/sco5.h: Remove.
8523         * config/i386/sco5.opt: Remove.
8524         * config/i386/sysv4-cpp.h: Remove.
8525         * config/i386/sysv5.h: Remove.
8526         * config/i386/t-beos: Remove.
8527         * config/i386/t-sco5: Remove.
8528         * config/i386/t-uwin: Remove.
8529         * config/i386/uwin.asm: Remove.
8530         * config/i386/uwin.h: Remove.
8531         * config/kaos.h: Remove.
8532         * config/mips/windiss.h: Remove.
8533         * config/mt: Remove directory.
8534         * config/pa/pa-osf.h: Remove.
8535         * config/pa/pa-pro-end.h: Remove.
8536         * config/pa/t-pro: Remove.
8537         * config/ptx4.h: Remove.
8538         * config/rs6000/beos.h: Remove.
8539         * config/rs6000/kaos-ppc.h: Remove.
8540         * config/rs6000/t-beos: Remove.
8541         * config/rs6000/windiss.h: Remove.
8542         * config/sh/kaos-sh.h: Remove.
8543         * config/sol2-6.h: Remove.
8544         * config/sparc/sol26-sld.h: Remove.
8545         * config/sparc/sysv4-only.h: Remove.
8546         * config/vax/bsd.h: Remove.
8547         * config/vax/t-memfuncs: Remove.
8548         * config/vax/ultrix.h: Remove.
8549         * config/vax/vaxv.h: Remove.
8550         * config/windiss.h: Remove.
8551
8552 2008-06-06  Uros Bizjak <ubizjak@gmail.com>
8553
8554         PR rtl-optimization/36438
8555         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
8556         for vector shifts with constant scalar shift operands.
8557
8558 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
8559
8560         * doc/invoke.texi: Document -march=xlr.
8561         * config/mips/xlr.md: New file.
8562         * config/mips/mips.md: Include it.
8563         (cpu): Add "xlr".
8564         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
8565         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
8566         (mips_rtx_cost_data): Likewise.
8567
8568 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
8569
8570         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
8571         PRE_INC and PRE_DEC cases.
8572
8573 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
8574
8575         PR rtl-optimization/36419
8576         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
8577         the emitting jump insn.
8578
8579         PR target/36362
8580         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
8581         is not bool, boolify the whole *expr_p and convert to the desired type.
8582
8583 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
8584
8585         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
8586         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
8587         Add omp_private_outer_ref hook, add another argument to
8588         omp_clause_default_ctor hook.
8589         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
8590         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
8591         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
8592         hook_tree_tree_tree_tree_null.
8593         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
8594         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
8595         * hooks.c (hook_tree_tree_tree_tree_null): New function.
8596         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
8597         * tree.def (OMP_TASK): New tree code.
8598         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
8599         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
8600         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
8601         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
8602         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
8603         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
8604         OMP_CLAUSE_COLLAPSE_EXPR): Define.
8605         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
8606         (OMP_DIRECTIVE_P): Add OMP_TASK.
8607         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
8608         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
8609         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
8610         and OMP_CLAUSE_UNTIED entries.
8611         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
8612         num_ops to 2.
8613         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
8614         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
8615         * tree-pretty-print.c (dump_omp_clause): Handle
8616         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
8617         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
8618         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
8619         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
8620         warning about unsigned iterators.  Change decl/init/cond/incr
8621         arguments to TREE_VECs, check arguments for all collapsed loops.
8622         (c_finish_omp_taskwait): New function.
8623         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
8624         ws_clauses.
8625         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
8626         default_function_array_conversion on init.  Add par_clauses argument.
8627         If decl is present in parallel's lastprivate clause, change it to
8628         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
8629         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
8630         collapse count in clauses.
8631         (c_parser_omp_for, c_parser_omp_parallel): Adjust
8632         c_parser_omp_for_loop callers.
8633         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
8634         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
8635         (c_parser_omp_clause_name): Handle collapse and untied clauses.
8636         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
8637         functions.
8638         (c_parser_omp_clause_schedule): Handle schedule(auto).
8639         Include correct location in the error message.
8640         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
8641         and PRAGMA_OMP_CLAUSE_UNTIED.
8642         (OMP_TASK_CLAUSE_MASK): Define.
8643         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
8644         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
8645         * tree-nested.c (convert_nonlocal_omp_clauses,
8646         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
8647         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
8648         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
8649         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
8650         OMP_CLAUSE_DECL.
8651         (conver_nonlocal_reference, convert_local_reference,
8652         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
8653         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
8654         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
8655         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
8656         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
8657         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
8658         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
8659         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
8660         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
8661         OMP_CLAUSE_UNTIED.
8662         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
8663         * c-common.h (c_finish_omp_taskwait): New prototype.
8664         * gimple-low.c (lower_stmt): Handle OMP_TASK.
8665         * tree-parloops.c (create_parallel_loop): Create 1 entry
8666         vectors for OMP_FOR_{INIT,COND,INCR}.
8667         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
8668         (make_edges): Handle OMP_TASK.
8669         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
8670         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
8671         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
8672         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
8673         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
8674         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
8675         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
8676         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
8677         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
8678         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
8679         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
8680         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
8681         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
8682         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
8683         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
8684         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
8685         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
8686         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
8687         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
8688         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
8689         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
8690         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
8691         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
8692         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
8693         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
8694         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
8695         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
8696         original iterator is present in lastprivate clause or if
8697         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
8698         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
8699         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
8700         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
8701         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
8702         if it is set, lookup var in outer contexts too.  Handle
8703         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
8704         to be implicitly determined firstprivate for task regions.
8705         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
8706         if it is set, lookup var in outer contexts too.  Set
8707         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
8708         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
8709         OMP_CLAUSE_UNTIED.  Take region_type as last argument
8710         instead of in_parallel and in_combined_parallel.
8711         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
8712         Adjust callers.
8713         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
8714         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
8715         (new_omp_context): Set default_kind to
8716         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
8717         (omp_region_type): New enum.
8718         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
8719         fields, add region_type.
8720         (new_omp_context): Take region_type as argument instead of is_parallel
8721         and is_combined_parallel.
8722         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
8723         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
8724         ctx->is_combined_parallel checks.
8725         (gimplify_omp_task): New function.
8726         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
8727         OMP_CLAUSE_UNTIED.
8728         * omp-low.c (extract_omp_for_data): Use schedule(static)
8729         for schedule(auto).  Handle pointer and unsigned iterators.
8730         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
8731         Add loops argument.  Extract data for collapsed OMP_FOR loops.
8732         (expand_parallel_call): Assert sched_kind isn't auto,
8733         map runtime schedule to index 3.
8734         (struct omp_for_data_loop): New type.
8735         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
8736         Add loop, loops, collapse and iter_type fields.
8737         (workshare_safe_to_combine_p): Disallow combined for if
8738         iter_type is unsigned long long.  Don't combine collapse > 1 loops
8739         unless all bounds and steps are constant.  Adjust extract_omp_for_data
8740         caller.
8741         (expand_omp_for_generic): Handle pointer, unsigned and long long
8742         iterators.  Handle collapsed OMP_FOR loops.  Adjust
8743         for struct omp_for_data changes.  If libgomp function doesn't return
8744         boolean_type_node, add comparison of the return value with 0.
8745         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
8746         pointer, unsigned and long long iterators.  Adjust for struct
8747         omp_for_data changes.
8748         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
8749         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
8750         unsigned long long.  Allocate loops array, pass it to
8751         extract_omp_for_data.  For collapse > 1 loops use always
8752         expand_omp_for_generic.
8753         (omp_context): Add sfield_map and srecord_type fields.
8754         (is_task_ctx, lookup_sfield): New functions.
8755         (use_pointer_for_field): Use is_task_ctx helper.  Change first
8756         argument's type from const_tree to tree.  Clarify comment.
8757         In OMP_TASK disallow copy-in/out sharing.
8758         (build_sender_ref): Call lookup_sfield instead of lookup_field.
8759         (install_var_field): Add mask argument.  Populate both record_type
8760         and srecord_type if needed.
8761         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
8762         in srecord_type.
8763         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
8764         and DECL_FIELD_OFFSET.
8765         (scan_sharing_clauses): Adjust install_var_field callers.  For
8766         firstprivate clauses on explicit tasks allocate the var by value in
8767         record_type unconditionally, rather than by reference.
8768         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
8769         Use is_taskreg_ctx instead of is_parallel_ctx.
8770         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
8771         (create_omp_child_function_name): Add task_copy argument, use
8772         *_omp_cpyfn* names if it is true.
8773         (create_omp_child_function): Add task_copy argument, if true create
8774         *_omp_cpyfn* helper function.
8775         (scan_omp_parallel): Adjust create_omp_child_function callers.
8776         Rename parallel_nesting_level to taskreg_nesting_level.
8777         (scan_omp_task): New function.
8778         (lower_rec_input_clauses): Don't run constructors for firstprivate
8779         explicit task vars which are initialized by *_omp_cpyfn*.
8780         Pass outer var ref to omp_clause_default_ctor hook if
8781         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
8782         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
8783         OMP_CLAUSE_REDUCTION_INIT.
8784         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
8785         avoid duplicate setting of fields.  Handle
8786         OMP_CLAUSE_PRIVATE_OUTER_REF.
8787         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
8788         copy-out if TREE_READONLY, only copy-in.
8789         (expand_task_copyfn): New function.
8790         (expand_task_call): New function.
8791         (struct omp_taskcopy_context): New type.
8792         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
8793         New functions.
8794         (lower_omp_parallel): Rename to...
8795         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
8796         Call create_task_copyfn if srecord_type is needed.  Adjust
8797         sender_decl type.
8798         (task_shared_vars): New variable.
8799         (check_omp_nesting_restrictions): Warn if work-sharing,
8800         barrier, master or ordered region is closely nested inside OMP_TASK.
8801         Add warnings for barrier if closely nested inside of work-sharing,
8802         ordered, or master region.
8803         (scan_omp_1): Call check_omp_nesting_restrictions even for
8804         GOMP_barrier calls.  Rename parallel_nesting_level to
8805         taskreg_nesting_level.  Handle OMP_TASK.
8806         (lower_lastprivate_clauses): Even if some lastprivate is found on a
8807         work-sharing construct, continue looking for them on parent parallel
8808         construct.
8809         (lower_omp_for_lastprivate): Add lastprivate clauses
8810         to the beginning of dlist rather than end.  Adjust for struct
8811         omp_for_data changes.
8812         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
8813         not after it.  Handle collapsed OMP_FOR loops, adjust for
8814         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
8815         (get_ws_args_for): Adjust extract_omp_for_data caller.
8816         (scan_omp_for): Handle collapsed OMP_FOR
8817         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
8818         (lower_omp_single_simple): If libgomp function doesn't return
8819         boolean_type_node, add comparison of the return value with 0.
8820         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
8821         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
8822         (parallel_nesting_level): Rename to...
8823         (taskreg_nesting_level): ... this.
8824         (is_taskreg_ctx): New function.
8825         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
8826         of is_parallel_ctx.
8827         (execute_lower_omp): Rename parallel_nesting_level to
8828         taskreg_nesting_level.
8829         (expand_omp_parallel): Rename to...
8830         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
8831         Call omp_task_call for OMP_TASK regions.
8832         (expand_omp): Adjust caller, handle OMP_TASK.
8833         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
8834
8835         * bitmap.c (bitmap_default_obstack_depth): New variable.
8836         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
8837         if argument is NULL and bitmap_default_obstack is already initialized.
8838         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
8839         at the end.
8840         * matrix-reorg.c (matrix_reorg): Likewise.
8841
8842 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
8843
8844         * config/i386/i386.md (*indirect_jump): Macroize using P
8845         mode iterator.  Remove !TARGET_64BIT from insn constraints.
8846         (*tablejump_1): Ditto.
8847         (*indirect_jump_rex64): Remove insn pattern.
8848         (*tablejump_1_rex64): Ditto.
8849         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
8850         and eh_return_si insn patterns.
8851
8852 2008-06-06  Richard Guenther  <rguenther@suse.de>
8853
8854         * tree-ssa-structalias.c (merge_smts_into): Remove.
8855         (find_what_p_points_to): Do not bother to compute the
8856         points-to set for pt_anything pointers.
8857         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
8858         for pt_anything pointers is ok.
8859
8860 2008-06-06  Jan Hubicka  <jh@suse.cz>
8861
8862         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
8863
8864 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8865
8866         * cgraph.c: Fix typos in comments.
8867         (cgraph_availability_names): Fix string typo.
8868         * fold-const.c: Fix typos in comments.
8869         (fold_binary): Fix typo in warning.
8870         * genautomata.c: Fix typos in comments.
8871         (check_presence_pattern_sets): Fix typo in local variable.
8872         (output_description): Fix typo in output.
8873         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
8874         * hwint.h: Likewise.
8875         * matrix-reorg.c (check_allocation_function): Likewise.
8876         * omega.c (smooth_weird_equations): Likewise.
8877         * auto-inc-dec.c: Fix typos in comments.
8878         * bb-reorder.c: Likewise.
8879         * builtins.c: Likewise.
8880         * c-common.c: Likewise.
8881         * c-cppbuiltin.c: Likewise.
8882         * c-parser.c: Likewise.
8883         * c-pretty-print.c: Likewise.
8884         * cfgcleanup.c: Likewise.
8885         * cfgexpand.c: Likewise.
8886         * cfghooks.c: Likewise.
8887         * cfglayout.c: Likewise.
8888         * cfgloopmanip.c: Likewise.
8889         * cgraphunit.c: Likewise.
8890         * coverage.c: Likewise.
8891         * dbxout.c: Likewise.
8892         * df-byte-scan.c: Likewise.
8893         * df-core.c: Likewise.
8894         * df-problems.c: Likewise.
8895         * df-scan.c: Likewise.
8896         * dfp.c: Likewise.
8897         * dominance.c: Likewise.
8898         * domwalk.c: Likewise.
8899         * dse.c: Likewise.
8900         * dwarf2out.c: Likewise.
8901         * emit-rtl.c: Likewise.
8902         * et-forest.c: Likewise.
8903         * function.c: Likewise.
8904         * function.h: Likewise.
8905         * gcc.c: Likewise.
8906         * gcov-io.c: Likewise.
8907         * gcov.c: Likewise.
8908         * gcse.c: Likewise.
8909         * genattrtab.c: Likewise.
8910         * ggc-page.c: Likewise.
8911         * gimplify.c: Likewise.
8912         * gthr-lynx.h: Likewise.
8913         * haifa-sched.c: Likewise.
8914         * ipa-cp.c: Likewise.
8915         * ipa-inline.c: Likewise.
8916         * ipa-prop.h: Likewise.
8917         * ipa-pure-const.c: Likewise.
8918         * ipa-struct-reorg.c: Likewise.
8919         * ipa-struct-reorg.h: Likewise.
8920         * ipa-type-escape.c: Likewise.
8921         * ipa.c: Likewise.
8922         * loop-doloop.c: Likewise.
8923         * mips-tfile.c: Likewise.
8924         * mkmap-flat.awk: Likewise.
8925         * mkmap-symver.awk: Likewise.
8926         * modulo-sched.c: Likewise.
8927         * omp-low.c: Likewise.
8928         * optabs.c: Likewise.
8929         * optabs.h: Likewise.
8930         * opts.c: Likewise.
8931         * passes.c: Likewise.
8932         * postreload-gcse.c: Likewise.
8933         * postreload.c: Likewise.
8934         * predict.c: Likewise.
8935         * pretty-print.h: Likewise.
8936         * profile.c: Likewise.
8937         * protoize.c: Likewise.
8938         * ra-conflict.c: Likewise.
8939         * real.c: Likewise.
8940         * recog.c: Likewise.
8941         * regclass.c: Likewise.
8942         * regs.h: Likewise.
8943         * reload.c: Likewise.
8944         * rtl-error.c: Likewise.
8945         * rtlanal.c: Likewise.
8946         * scan.h: Likewise.
8947         * sched-rgn.c: Likewise.
8948         * see.c: Likewise.
8949         * stmt.c: Likewise.
8950         * target.h: Likewise.
8951         * tree-dfa.c: Likewise.
8952         * tree-eh.c: Likewise.
8953         * tree-flow-inline.h: Likewise.
8954         * tree-inline.c: Likewise.
8955         * tree-into-ssa.c: Likewise.
8956         * tree-loop-distribution.c: Likewise.
8957         * tree-nested.c: Likewise.
8958         * tree-parloops.c: Likewise.
8959         * tree-pass.h: Likewise.
8960         * tree-pretty-print.c: Likewise.
8961         * tree-profile.c: Likewise.
8962         * tree-scalar-evolution.c: Likewise.
8963         * tree-sra.c: Likewise.
8964         * tree-ssa-alias-warnings.c: Likewise.
8965         * tree-ssa-ccp.c: Likewise.
8966         * tree-ssa-coalesce.c: Likewise.
8967         * tree-ssa-dom.c: Likewise.
8968         * tree-ssa-dse.c: Likewise.
8969         * tree-ssa-forwprop.c: Likewise.
8970         * tree-ssa-live.c: Likewise.
8971         * tree-ssa-live.h: Likewise.
8972         * tree-ssa-loop-im.c: Likewise.
8973         * tree-ssa-loop-ivopts.c: Likewise.
8974         * tree-ssa-loop-niter.c: Likewise.
8975         * tree-ssa-loop-prefetch.c: Likewise.
8976         * tree-ssa-phiopt.c: Likewise.
8977         * tree-ssa-phiprop.c: Likewise.
8978         * tree-ssa-sccvn.c: Likewise.
8979         * tree-ssa-ter.c: Likewise.
8980         * tree-ssa-threadupdate.c: Likewise.
8981         * tree-ssa.c: Likewise.
8982         * tree-vect-analyze.c: Likewise.
8983         * tree-vect-transform.c: Likewise.
8984         * tree-vectorizer.c: Likewise.
8985         * tree-vn.c: Likewise.
8986         * tree-vrp.c: Likewise.
8987         * tree.c: Likewise.
8988         * tree.def: Likewise.
8989         * tree.h: Likewise.
8990         * unwind-dw2-fde.c: Likewise.
8991         * unwind.inc: Likewise.
8992         * value-prof.c: Likewise.
8993         * vmsdbgout.c: Likewise.
8994
8995 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
8996
8997         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
8998         always place FP constants in the TOC for TARGET_POWERPC64.
8999         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
9000
9001 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
9002
9003         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
9004         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
9005         enable for TARGET_E500_DOUBLE.
9006         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
9007         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
9008         floating-point modes like integer modes for E500 double.
9009         (rs6000_legitimate_offset_address_p): Likewise.
9010         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
9011         addressing for DDmode for E500 double.
9012         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
9013         modes as using 64-bits of registers for E500 double.
9014         (spe_build_register_parallel): Do not handle DDmode or TDmode.
9015         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
9016         specially for E500 double.
9017         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
9018         TDmode for E500 double.
9019         (rs6000_gimplify_va_arg): Only handle SDmode in registers
9020         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
9021         (rs6000_split_multireg_move): Do not handle TDmode specially for
9022         E500 double.
9023         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
9024         using 64-bit registers for E500 double.
9025         (emit_frame_save): Do not handle DDmode specially for E500 double.
9026         (gen_frame_mem_offset): Likewise.
9027         (rs6000_function_value): Do not call spe_build_register_parallel
9028         for DDmode or TDmode.
9029         (rs6000_libcall_value): Likewise.
9030         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
9031         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
9032         for E500 double.
9033
9034 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
9035
9036         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
9037         in comments.
9038
9039 2008-06-04  Junjie Gu <jgu@tensilica.com>
9040
9041         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
9042         comparison for frame pointers.
9043
9044 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
9045
9046         PR target/27386
9047         * config/avr/avr.h (PUSH_ROUNDING): Remove.
9048
9049 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
9050
9051         PR target/30243
9052         * builtins.c (expand_builtin_signbit): Don't take lowpart when
9053         register is already smaller or equal to required mode.
9054
9055 2008-06-04  Xinliang David Li  <davidxl@google.com>
9056
9057         * tree-call-cdce.c: New file.
9058         (cond_dead_built_in_calls): New static variable.
9059         (input_domain): New struct.
9060         (check_pow): New function.
9061         (check_builtin_call): Ditto.
9062         (check_target_format): Ditto.
9063         (is_call_dce_candidate): Ditto.
9064         (gen_one_condition): Ditto.
9065         (gen_conditions_for_domain): Ditto.
9066         (get_domain): Ditto.
9067         (gen_conditions_for_pow_cst_base): Ditto.
9068         (gen_conditions_for_pow_int_base): Ditto.
9069         (gen_conditions_for_pow): Ditto.
9070         (get_no_error_domain): Ditto.
9071         (gen_shrink_wrap_conditions): Ditto.
9072         (shrink_wrap_one_built_in_call): Ditto.
9073         (shink_wrap_conditional_dead_built_in_calls): Ditto.
9074         (tree_call_cdce): Ditto.
9075         (gate_call_cdce): Ditto.
9076         (pass_call_cdce): New gimple pass.
9077         * passes.c: (init_optimization_passes): New pass.
9078         * tree-pass.h: New pass declaration.
9079         * opts.c (decode_options): New flag setting.
9080         * common.opt: Add -ftree-builtin-call-dce flag.
9081         * Makefile.in: Add new source file.
9082         * tempvar.def: New tv_id.
9083         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
9084
9085 2008-06-04  Richard Guenther  <rguenther@suse.de>
9086
9087         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
9088         (is_call_clobbered): Always check var_ann->call_clobbered.
9089         (mark_call_clobbered): Always set var_ann->call_clobbered.
9090         (clear_call_clobbered): Always clear var_ann->call_clobbered.
9091         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
9092         (reset_alias_info): Clear call clobbering info on MTAGs and
9093         globals as well.
9094         (set_pt_anything): Set pt_global_mem.
9095         (create_tag_raw): Adjust comment.
9096         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
9097
9098 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
9099             Maxim Kuvyrkov  <maxim@codesourcery.com>
9100
9101         * config/m68k/m68k.opt (mxgot): New option.
9102         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
9103         (m68k_output_addr_const_extra): New.
9104         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
9105         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
9106         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
9107         * doc/invoke.texi (M680x0 Options): Document -mxgot.
9108
9109 2008-06-04  Richard Guenther  <rguenther@suse.de>
9110
9111         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
9112         negative or non-representable offsets.
9113
9114 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
9115
9116         * config/i386/i386.c (ix86_gen_leave): New.
9117         (ix86_gen_pop1): Likewise.
9118         (ix86_gen_add3): Likewise.
9119         (ix86_gen_sub3): Likewise.
9120         (ix86_gen_sub3_carry): Likewise.
9121         (ix86_gen_one_cmpl2): Likewise.
9122         (ix86_gen_monitor): Likewise.
9123         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
9124         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
9125         ix86_gen_one_cmpl2 and ix86_gen_monitor.
9126         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
9127         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
9128         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
9129         (ix86_expand_epilogue): Updated.
9130         (print_operand): Handle integer register operand for 'z'.
9131         (ix86_expand_strlensi_unroll_1): Likewise.
9132         (ix86_expand_strlen): Likewise.
9133         (ix86_expand_builtin): Likewise.
9134         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
9135         mov{q}/mov{l} and add{q}/add{l}.
9136
9137 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
9138
9139         * config/i386/i386.md (P): New mode iterator.
9140         (SFmode push_operand splitter): Macroize DImode and SImode pushes
9141         using P mode iterator.
9142         (DFmode push_operand splitter): Ditto.
9143         (XFmode push_operand splitter): Ditto.
9144         (DFmode float_extend SFmode push_operand splitter): Ditto.
9145         (XFmode float_extend SFmode push_operand splitter): Do not generate
9146         SImode pushes for 64bit target.  Macroize Dimode and SImode
9147         pushes using P mode iterator.
9148         (XFmode float_extend DFmode push_operand splitter): Ditto.
9149
9150 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
9151
9152         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
9153         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
9154         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
9155         return type to int.
9156         (ix86_call_abi_override): Remove check for call_used_regs.
9157
9158 2008-06-03  Richard Guenther  <rguenther@suse.de>
9159
9160         * tree-ssa-structalias.c (find_func_aliases): Add constraints
9161         for the lhs of calls if the return type contains pointers.
9162
9163 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
9164
9165         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
9166         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
9167         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
9168         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
9169         of cfun and DEFAULT_ABI to deceide abi mode.
9170         (DEFAULT_ABI): New.
9171         (REG_PARM_STACK_SPACE): Removed.
9172         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
9173         (STACK_BOUNDARY): Use default target to deceide stack boundary.
9174         * config/i386/i386-protos.h (ix86_cfun_abi): New.
9175         (ix86_function_abi): Likewise.
9176         (ix86_function_type_abi): Likewise.
9177         (ix86_call_abi_override): Likewise.
9178         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
9179         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
9180         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
9181         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
9182         specific defines.
9183         (X86_64_REGPARM_MAX): New.
9184         (X86_64_SSE_REGPARM_MAX): New.
9185         (X64_REGPARM_MAX): New.
9186         (X64_SSE_REGPARM_MAX): New.
9187         (X86_32_REGPARM_MAX): New.
9188         (X86_32_SSE_REGPARM_MAX): New.
9189         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
9190         (ix86_function_regparm): Handle user calling abi.
9191         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
9192         by DEFAULT_ABI versus SYSV_ABI check.
9193         (ix86_reg_parm_stack_space): New.
9194         (ix86_function_type_abi): New.
9195         (ix86_call_abi_override): New.
9196         (ix86_function_abi): New.
9197         (ix86_cfun_abi): New.
9198         (init_cumulative_args): Call abi specific initialization.
9199         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
9200         (function_arg_64): Extend SSE_REGPARM_MAX check.
9201         (function_arg (): Remove TARGET_64BIT_MS_ABI.
9202         (ix86_pass_by_reference): Likewise.
9203         (ix86_function_value_regno_p): Likewise.
9204         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
9205         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
9206         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
9207         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
9208         (setup_incoming_varargs_64): Adjust regparm for call abi.
9209         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
9210         (ix86_va_start): Likewise.
9211         (ix86_gimplify_va_arg): Likewise.
9212         (ix86_expand_prologue): Likewise.
9213         (output_pic_addr_const): Likewise.
9214         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
9215         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
9216         (x86_output_mi_thunk): Likewise.
9217         (x86_function_profiler): Likewise.
9218         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
9219         (SYSV_ABI, MS_ABI): New constants.
9220         (DEFAULT_ABI): New.
9221         (init_regs): Add prototype of function in regclass.c file.
9222         (OVERRIDE_ABI_FORMAT): New.
9223         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
9224         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
9225         (OUTGOING_REG_PARM_STACK_SPACE): New.
9226         (ix86_reg_parm_stack_space): New prototype.
9227         (CUMULATIVE_ARGS): Add call_abi member.
9228         (machine_function): Add call_abi member.
9229         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
9230         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
9231
9232 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com>
9233
9234         PR target/34879
9235         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
9236         (avr_builtin_setjmp_frame_value): New function.
9237         * config/avr/avr.md (nonlocal_goto_receiver): Define.
9238         (nonlocal_goto): Define.
9239
9240 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
9241
9242         * config/mips/mips.c (mips_emit_loadgp): Return early if
9243         there is nothing do to, otherwise emit a blockage if
9244         !TARGET_EXPLICIT_RELOCS || crtl->profile.
9245         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
9246
9247 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9248
9249         * configure.ac: Drop unneeded backslash ending up in config.in.
9250         * acinclude.m4: Likewise.
9251         * config.in: Regenerate.
9252
9253 2008-05-26  Jan Hubicka  <jh@suse.cz>
9254
9255         * predict.c (maybe_hot_frequency_p): Break out of...
9256         (maybe_hot_bb_p): ... here.
9257         (maybe_hot_edge_p): New.
9258         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
9259         * basic-block.h (maybe_hot_edge_p): Declare.
9260
9261 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
9262
9263         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
9264         (*cmpfp_<mode>_cc): Ditto.
9265         (*fp_jcc_8<mode>_387): Ditto.
9266         (*fop_<MODEF:mode>_2_i387): Ditto.
9267         (*fop_<MODEF:mode>_3_i387): Ditto.
9268         (*fop_xf_2_i387): Ditto.
9269         (*fop_xf_3_i387): Ditto.
9270
9271 2008-06-02  Tomas Bily  <tbily@suse.cz>
9272
9273         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
9274
9275 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
9276
9277         * config/mips/mips.c (mips_valid_offset_p): New function.
9278         (mips_valid_lo_sum_p): Likewise.
9279         (mips_classify_address): Use them.
9280         (mips_force_address): New function.
9281         (mips_legitimize_address): Use it.
9282         * config/mips/mips.md (MOVE128): New mode iterator.
9283         (movtf): Require TARGET_64BIT.  Remove empty strings.
9284         (*movtf_internal): Rename to...
9285         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
9286         of "R" and use {,fp}{load,store} attributes instead of "multi".
9287         Use a separate define_split.
9288         (*movtf_mips16): New pattern.
9289
9290 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
9291
9292         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
9293         * config/mips/mips.c (mips_expand_before_return): New function.
9294         (mips_expand_epilogue): Call it.
9295         * config/mips/mips.md (return): Turn into a define_expand.
9296         (*return): New insn.
9297
9298 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
9299
9300         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
9301         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
9302         functions.  Do not emit uses and clobbers of CONCATs; individually
9303         use and clobber their operands.
9304         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
9305         gen_clobber, emit_use and gen_use.
9306         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
9307         (expand_builtin_return): Likewise.
9308         * cfgbuild.c (count_basic_blocks): Likewise.
9309         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
9310         * explow.c (emit_stack_restore): Likewise.
9311         * expmed.c (extract_bit_field_1): Likewise.
9312         * expr.c (convert_move, emit_move_complex_parts): Likewise.
9313         (emit_move_multi_word, store_constructor): Likewise.
9314         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
9315         (thread_prologue_and_epilogue_insns): Likewise.
9316         * lower-subreg.c (resolve_simple_move): Likewise.
9317         * optabs.c (widen_operand, expand_binop): Likewise.
9318         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
9319         * reload.c (find_reloads): Likewise.
9320         * reload1.c (eliminate_regs_in_insn): Likewise.
9321         * stmt.c (expand_nl_goto_receiver): Likewise.
9322         * config/alpha/alpha.md (builtin_longjmp): Likewise.
9323         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
9324         * config/arm/arm.c (arm_load_pic_register): Likewise.
9325         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
9326         * config/arm/arm.md (untyped_return): Likewise.
9327         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
9328         * config/avr/avr.c (expand_prologue): Likewise.
9329         * config/bfin/bfin.c (do_unlink): Likewise.
9330         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
9331         * config/cris/cris.c (cris_expand_prologue): Likewise.
9332         * config/darwin.c (machopic_indirect_data_reference): Likewise.
9333         (machopic_legitimize_pic_address): Likewise.
9334         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
9335         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
9336         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
9337         (ix86_expand_convert_uns_didf_sse): Likewise.
9338         (ix86_expand_vector_init_general): Likewise.
9339         * config/ia64/ia64.md (eh_epilogue): Likewise.
9340         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
9341         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
9342         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
9343         (config/iq2000/iq2000.c): Likewise.
9344         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
9345         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
9346         (builtin_longjmp): Likewise.
9347         * config/mn10300/mn10300.md (call, call_value): Likewise.
9348         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
9349         * config/pdp11/pdp11.md (abshi2): Likewise.
9350         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
9351         * config/s390/s390.c (s390_emit_prologue): Likewise.
9352         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
9353         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
9354         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
9355         * config/sh/sh.c (prepare_move_operands): Likewise.
9356         (output_stack_adjust, sh_expand_epilogue): Likewise.
9357         (sh_set_return_address, sh_expand_t_scc): Likewise.
9358         * config/sparc/sparc.c (load_pic_register): Likewise.
9359         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
9360         * config/spu/spu.c (spu_expand_epilogue): Likewise.
9361         * config/v850/v850.c (expand_epilogue): Likewise.
9362
9363 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
9364
9365         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
9366         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
9367         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
9368         * config/avr/avr.c (expand_prologue, expand_epilogue): Use
9369         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
9370         stack pointer register.
9371         (output_movhi): Remove code for interrupt specific writing to the
9372         stack pointer register.
9373
9374 2008-05-31  Richard Guenther  <rguenther@suse.de>
9375
9376         PR tree-optimization/34244
9377         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
9378         (tree_expr_nonzero_warnv_p): Likewise.
9379         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
9380         ssa_name_nonnegative_p.
9381         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
9382         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
9383         not tree_expr_nonzero_warnv_p.
9384
9385         PR tree-optimization/36262
9386         Revert
9387         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
9388
9389         PR tree-optimization/34244
9390         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
9391         (record_numbers_of_iterations): New function.
9392         (execute_vrp): Cache the numbers of iterations of loops.
9393         * tree-scalar-evolution.c (scev_reset_except_niters):
9394         New function.
9395         (scev_reset): Use scev_reset_except_niters.
9396         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
9397
9398 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
9399
9400         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
9401         __WORKAROUND_RETS when appropriate.
9402
9403 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
9404
9405         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
9406         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
9407         mode iterator.
9408         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
9409         *fop_df_comm_sse insn patterns using MODEF mode iterator.
9410         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
9411         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
9412         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
9413         *fop_df_1_mixed insn patterns using MODEF mode iterator.
9414         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
9415         *fop_df_1_sse insn patterns using MODEF mode iterator.
9416         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
9417         *fop_df_1_i387 insn patterns using MODEF mode iterator.
9418         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
9419         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
9420         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
9421         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
9422         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
9423         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
9424         (*fop_xf_4_i387): Use <MODE> for mode attribute.
9425         (*fop_xf_5_i387): Ditto.
9426         (*fop_xf_6_i387): Ditto.
9427
9428 2008-05-30  Richard Guenther  <rguenther@suse.de>
9429
9430         * builtins.c (build_string_literal): Avoid generating
9431         a non-gimple_val result.
9432
9433 2008-05-30  DJ Delorie  <dj@redhat.com>
9434
9435         * exec-tool.in: Use an environment variable (private) instead of a
9436         file (shared) as a semaphore, so as to not break parallel builds.
9437
9438 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
9439
9440         * optabs.c (maybe_encapsulate_block): Remove.
9441         (emit_libcall_block): Adjust accordingly.
9442         * optabs.h (maybe_encapsulate_block): Remove prototype.
9443
9444         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
9445         Don't use maybe_encapsulate_block.
9446
9447 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
9448
9449         * config/rs6000/rs6000.c (rs6000_legitimize_address,
9450         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
9451         rtx is a SYMBOL_REF before calling get_pool_constant.
9452
9453 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
9454
9455         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
9456
9457 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
9458
9459         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
9460         rather than OS names to choose INO_T_EQ definition.
9461         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
9462         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
9463
9464 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
9465
9466         PR target/36348
9467         * config/darwin-f.c: New.
9468         * config/t-darwin: Added rule to build darwin-f.o.
9469         * config.gcc: Defined new variable, fortran_target_objs.
9470         (*-*-darwin*): Set fortran_target_objs.
9471         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
9472         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
9473         * configure: Regenerated.
9474
9475 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
9476
9477         PR target/35771
9478         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
9479         canonical type if needed.
9480
9481 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
9482
9483         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
9484
9485 2008-05-29  Richard Guenther  <rguenther@suse.de>
9486
9487         PR tree-optimization/36343
9488         PR tree-optimization/36346
9489         PR tree-optimization/36347
9490         * tree-flow.h (clobber_what_p_points_to): Declare.
9491         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
9492         pointed-to variable is dereferenced is irrelevant to whether
9493         the pointer can access the pointed-to variable.
9494         (clobber_what_p_points_to): New function.
9495         * tree-ssa-alias.c (set_initial_properties): Use it.
9496         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
9497         call clobber check for NMTs.
9498
9499 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
9500
9501         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
9502         for printing gcov_type.
9503
9504 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
9505
9506         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
9507         and the eh region information.
9508         * value-prof.c (gimple_move_stmt_histograms): New function.
9509         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
9510
9511 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
9512
9513         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
9514
9515 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
9516
9517         * value-prof.c (tree_ic_transform): Print counts.
9518         * tree-profile.c (tree_gen_ic_func_profiler):
9519         Clear __gcov_indreict_call_callee variable to avoid misattribution
9520         of the profile.
9521
9522 2008-05-28  Rafael Espindola  <espindola@google.com>
9523
9524         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
9525         invalid sharing.
9526
9527 2008-05-28  Richard Guenther  <rguenther@suse.de>
9528
9529         PR tree-optimization/36339
9530         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
9531         and clobbering code out of the loop.
9532
9533 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
9534
9535         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
9536         letters defined.
9537
9538         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
9539         s390_contiguous_bitmask_p, s390_symref_operand_p,
9540         s390_check_symref_alignment, s390_reload_larl_operand,
9541         s390_reload_symref_address): New functions.
9542         (s390_branch_condition_mnemonic): Support compare and branch
9543         instructions.
9544         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
9545         and 'W' constraints.
9546         (s390_secondary_reload): Add secondary reloads for unaligned
9547         symbol refs or symbol refs to floating point or QI/TI mode
9548         integer values.
9549         (legitimate_address_p): Accept symbol references as addresses.
9550         (s390_expand_insv): Use rotate and insert selected bits
9551         instruction for insv when building for z10.
9552         (print_operand_address): Handle symbol ref addresses.
9553         (print_operand): Output modifier 'c' added for signed byte values.
9554         (s390_encode_section_info): Mark symbol refs with
9555         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
9556
9557         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
9558         (length attribute): RRF, RRR have 4 byte length.
9559         (FPALL, INTALL): New mode iterators added.
9560         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
9561         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
9562         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
9563         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
9564         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
9565         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
9566         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
9567         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
9568         instructions.
9569         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
9570         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
9571         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
9572         reload<INTALL:mode><P:mode>_toreg_z10,
9573         reload<FPALL:mode><P:mode>_tomem_z10,
9574         reload<FPALL:mode><P:mode>_toreg_z10,
9575         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
9576         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
9577         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
9578         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
9579         definition.
9580         (movmem, clrmem, cmpmem): New splitters added.
9581
9582         * config/s390/predicates.md (larl_operand): Use
9583         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
9584         SYMBOL_REF_ALIGN1_P.
9585         (s390_signed_integer_comparison,
9586         s390_unsigned_integer_comparison): New predicates.
9587
9588         * config/s390/s390-protos.h (s390_check_symref_alignment,
9589         s390_contiguous_bitmask_p, s390_reload_larl_operand,
9590         s390_reload_symref_address,
9591         s390_compare_and_branch_condition_mask): Prototypes added.
9592
9593         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
9594         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
9595         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
9596
9597 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
9598
9599         * config/s390/s390.c (z10_cost): New cost function for z10.
9600         (s390_handle_arch_option, override_options): Support -march=z10 switch.
9601         (s390_issue_rate): Adjust issue rate for z10.
9602         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
9603         (processor_flags): Add PF_Z10.
9604         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
9605         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
9606         * gcc/config.gcc: Add z10.
9607
9608 2008-05-28  Richard Guenther  <rguenther@suse.de>
9609
9610         PR tree-optimization/36291
9611         * tree-flow. h (struct gimple_df): Remove var_anns member.
9612         * tree-flow-inline.h (gimple_var_anns): Remove.
9613         (var_ann): Simplify.
9614         * tree-dfa.c (create_var_ann): Simplify.
9615         (remove_referenced_var): Clear alias info from var_anns of globals.
9616         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
9617         (delete_tree_ssa): Clear alias info from var_anns of globals.
9618         Do not free var_anns.
9619         (var_ann_eq): Remove.
9620         (var_ann_hash): Likewise.
9621
9622 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
9623
9624         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
9625         and loongson2f entries.
9626         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
9627         * config/mips/mips.h (processor_type): Add Loongson-2E
9628         and Loongson-2F entries.
9629         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
9630         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
9631         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
9632         * doc/invoke.texi (MIPS Options): Document loongson2e
9633         and loongson2f processor names.
9634
9635 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
9636
9637         PR target/35767
9638         PR target/35771
9639         * config/i386/i386.c (ix86_function_arg_boundary): Use
9640         alignment of canonical type.
9641         (ix86_expand_vector_move): Check unaligned memory access for
9642         all SSE modes.
9643
9644 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
9645
9646         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
9647         Moved to the front of file.
9648
9649 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
9650             H.J. Lu  <hongjiu.lu@intel.com>
9651
9652         * dwarf2out.c (current_fde): New.
9653         (add_cfi): Use it.
9654         (lookup_cfa:): Likewise.
9655         (dwarf2out_end_epilogue): Likewise.
9656         (dwarf2out_note_section_used): Likewise.
9657
9658 2008-05-27  Michael Matz  <matz@suse.de>
9659
9660         PR c++/27975
9661         * c.opt (Wenum-compare): New warning option.
9662         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
9663
9664 2008-05-27  Michael Matz  <matz@suse.de>
9665
9666         PR middle-end/36326
9667         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
9668         non-BLKmode types.
9669         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
9670         into memory as tail calls.
9671
9672 2008-05-27  Richard Guenther  <rguenther@suse.de>
9673
9674         PR tree-optimization/36339
9675         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
9676         pointers cause all addressable variables to be call clobbered.
9677
9678 2008-05-27  Richard Guenther  <rguenther@suse.de>
9679
9680         PR tree-optimization/36245
9681         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
9682
9683 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
9684
9685         * config/s390/s390.md: Replace all occurences of the 'm'
9686         constraint with 'RT'.
9687
9688 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
9689
9690         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
9691         definitions added.
9692         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
9693         "*movdi_64".
9694         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
9695         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
9696         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
9697
9698 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
9699
9700         * reload.c: (find_reloads): Skip alternatives according to the
9701         "enabled" attribute. Constify the constraint variable.
9702         * recog.c (get_attr_enabled): Add default implementation.
9703         (extract_insn): Set the alternative_enabled_p array
9704         in the recog_data struct.
9705         (preprocess_constraints, constrain_operands): Skip
9706         alternatives according to the "enabled" attribute
9707         * recog.h (struct recog_data): New field alternative_enabled_p.
9708         (skip_alternative): New inline function.
9709         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
9710         (record_reg_classes): Skip alternative according to the
9711         "enabled" attribute.
9712
9713         * doc/md.texi: Add documention for the "enabled" attribute.
9714
9715 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
9716
9717         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
9718         * postreload.c (reload_cse_simplify_operands): Replace 'm'
9719         constraint with TARGET_MEM_CONSTRAINT.
9720         * recog.c (asm_operand_ok, preprocess_constraints,
9721         constrain_operands): Likewise.
9722         * regclass.c (record_reg_classes): Likewise.
9723         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
9724         * reload1.c (maybe_fix_stack_asms): Likewise.
9725         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
9726         * recog.h: Adjust comment.
9727         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
9728         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
9729         * doc/md.texi: Add a note to description of 'm' constraint.
9730         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
9731
9732 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
9733
9734         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
9735         that the bitfield is of integral type before testing its precision.
9736
9737 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
9738             Sa Liu  <saliu@de.ibm.com>
9739
9740         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
9741         __modti3, __udivti3, __umodti3 and __udivmodti4.
9742         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
9743         that implement TImode mul and div functions.
9744         * config/spu/multi3.c: New. Implement __multi3.
9745         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
9746         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
9747         functions on SPU.
9748
9749 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
9750
9751         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
9752         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
9753         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
9754         tls_sysv_suffix): New mode and mode attribute iterators.
9755         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
9756         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
9757         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
9758         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
9759         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
9760         iterators.
9761
9762 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
9763
9764         PR tree-optimization/36329
9765         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
9766         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
9767         * cgraphbuild.c (initialize_inline_failed): Use the latter
9768         macro in lieu of the former.
9769         * ipa-inline.c (cgraph_mark_inline): Likewise.
9770         (cgraph_decide_inlining_of_small_function): Likewise.
9771         (cgraph_decide_inlining): Likewise.
9772         (cgraph_decide_inlining_incrementally): Likewise.
9773
9774 2008-05-26  Tristan Gingold  <gingold@adacore.com>
9775             Anatoly Sokolov  <aesok@post.ru>
9776
9777         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
9778         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
9779         * config/avr/avr.c (expand_prologue): Tune "call_prologue"
9780         optimization for 'avr6' architecture.
9781
9782 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
9783
9784         PR target/34932
9785         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
9786
9787 2008-05-26  Richard Guenther  <rguenther@suse.de>
9788
9789         * tree-ssa-sccvn.c (expr_has_constants): Declare.
9790         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
9791
9792 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
9793
9794         PR middle-end/36253
9795         * caller-save.c (insert_restore): Verify alignment of spill space.
9796         (insert_save): Likewise.
9797         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
9798         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
9799         (STACK_SLOT_ALIGNMENT): Likewise.
9800         * function.c (LOCAL_ALIGNMENT): Removed.
9801         (get_stack_local_alignment): New.
9802         (assign_stack_local): Use it.  Set alignment on stack slot.
9803         (assign_stack_temp_for_type): Use get_stack_local_alignment.
9804         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
9805         (STACK_SLOT_ALIGNMENT): New.
9806         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
9807         stack slot in XFmode.
9808
9809         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
9810
9811 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
9812
9813         PR/36321
9814         * config/i386/i386.md (allocate_stack_worker_64): Make sure
9815         argument operand in rax isn't removed.
9816
9817 2008-05-26  Richard Guenther  <rguenther@suse.de>
9818
9819         PR middle-end/36300
9820         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
9821         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
9822
9823 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
9824
9825         PR bootstrap/36331
9826         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
9827
9828 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
9829
9830         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
9831         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
9832
9833 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
9834
9835         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
9836         build a trampoline if we don't want one.
9837         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
9838         return zero for nested functions if we don't want a trampoline.
9839
9840 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
9841
9842         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
9843
9844 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
9845
9846         PR fortran/18428
9847         * c.opt: Removed undocumented option '-lang-fortran'.
9848         * c-common.h: Removed global variable 'lang_fortran'.
9849         * c-opts.c (c_common_handle_option): Removed code to handle
9850         option '-lang-fortran'. Updated includes.
9851         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
9852         definition of '__GFORTRAN__'.
9853         (define__GNUC__): Reimplemented to use BASEVER and
9854         cpp_define_formatted.
9855         (builtin_define_with_value_n): Removed.
9856         * c-incpath.h: Renamed to ...
9857         * incpath.h: ... this.
9858         * c-incpath.c: Renamed to ...
9859         * incpath.c: ... this. Updated includes.
9860         * fix-header.c: Updated includes.
9861         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
9862         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
9863         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
9864
9865 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
9866
9867         * tree.h: Update the table of flags used on tree nodes.
9868         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
9869         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
9870         (FORCED_LABEL): Add access check.
9871         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
9872         (ASM_INPUT_P): Likewise.
9873         (ASM_VOLATILE_P): Likewise.
9874         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
9875         (OMP_SECTION_LAST): Access private_flag directly.
9876         (OMP_RETURN_NOWAIT): Likewise.
9877         (OMP_PARALLEL_COMBINED): Likewise.
9878         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
9879         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
9880         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
9881         deprecated_flag directly.
9882
9883 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
9884
9885         * final.c (frame_pointer_needed): Removed.
9886         * flags.h (frame_pointer_needed): Likewise.
9887
9888         * function.h (rtl_data): Add frame_pointer_needed.
9889         (frame_pointer_needed): New.
9890
9891 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
9892
9893         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
9894
9895 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
9896
9897         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
9898         SRC is a REG.
9899
9900 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
9901
9902         * c-common.c (strip_array_types): Move function to..
9903         * tree.c: ..here.
9904         (get_inner_array_type): Delete.
9905         * c-common.h (strip_array_types): Move declaration to..
9906         * tree.h: ..here.
9907         (get_inner_array_type): Delete.
9908         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
9909         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
9910         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
9911         * config/pa/pa.c (emit_move_sequence): Likewise.
9912
9913 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
9914
9915         * config/i386/i386.md (*sse_prologue_save_insn): Set length
9916         attribute to 34.
9917
9918 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
9919
9920         * function.c: Include target hook for nonlocal_goto frame value.
9921
9922 2008-05-24  Richard Guenther  <rguenther@suse.de>
9923
9924         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
9925         variable can be only accessed through a pointer or a union.
9926
9927 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9928
9929         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
9930         * doc/extend.texi: Likewise.
9931
9932 2008-05-23  DJ Delorie  <dj@redhat.com>
9933
9934         * config/m32c/jump.md (untyped_call): Add.
9935
9936         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
9937         for A24 to PSImode.
9938         (m32c_address_cost): Detail costs for indirect offsets.
9939
9940 2008-05-23  Rafael Espindola  <espindola@google.com>
9941
9942         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
9943         if a node is a SUBREG.
9944         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
9945         is a SUBREG.
9946
9947 2008-05-23  Paul Brook  <paul@codesourcery.com>
9948             Carlos O'Donell  <carlos@codesourcery.com>
9949
9950         * doc/extend.texi: Clarify use of __attribute__((naked)).
9951         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
9952         * target.h (gcc_target): Add allocate_stack_slots_for_args.
9953         * function.c (use_register_for_decl): Use
9954         targetm.calls.allocate_stack_slots_for_args.
9955         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
9956         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
9957         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
9958
9959 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
9960
9961         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
9962
9963 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
9964
9965         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
9966         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
9967         is only rounded once.
9968
9969 2008-05-23  Richard Guenther  <rguenther@suse.de>
9970
9971         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
9972
9973 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
9974             Jakub Jelinek  <jakub@redhat.com>
9975
9976         PR target/36079
9977         * configure.ac: Handle --enable-cld.
9978         * configure: Regenerated.
9979         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
9980         * config/i386/i386.h (struct machine_function): Add needs_cld field.
9981         (ix86_current_function_needs_cld): New define.
9982         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
9983         (cld): New isns pattern.
9984         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
9985         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
9986         * config/i386/i386.opt (mcld): New option.
9987         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
9988         TARGET_CLD and ix86_current_function_needs_cld.
9989         (override_options): Use -mcld by default for 32-bit code if
9990         USE_IX86_CLD.
9991
9992         * doc/install.texi (Options specification): Document --enable-cld.
9993         * doc/invoke.texi (Machine Dependent Options)
9994         [i386 and x86-64 Options]: Add -mcld option.
9995         (Intel 386 and AMD x86-64 Options): Document -mcld option.
9996
9997 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
9998         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
9999         (return_in_memory_64): Likewise.
10000         (return_in_memory_ms_64): Likewise.
10001
10002 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10003
10004         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
10005         * builtins.c (fold_builtin_fpclassify): New.
10006         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
10007         * builtins.def (BUILT_IN_FPCLASSIFY): New.
10008         * c-common.c (handle_type_generic_attribute): Adjust to accept
10009         fixed arguments before an elipsis.
10010         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
10011         * doc/extend.texi: Document __builtin_fpclassify.
10012
10013 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
10014
10015         * omp-low.c (gate_expand_omp_ssa): Remove.
10016         (pass_expand_omp_ssa): Remove.
10017         (gate_expand_omp): Do not check for flag_openmp_ssa.
10018         * common.opt (-fopenmp-ssa): Remove.
10019         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
10020
10021 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
10022
10023         * config/sh/sh.opt (mfixed-range): New option.
10024         * config/sh/sh-protos.h (sh_fix_range): Declare.
10025         * config/sh/sh.c (sh_fix_range): New function.
10026         * config/sh/sh.h (sh_fixed_range_str): Declare.
10027         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
10028         is not empty.
10029         * doc/invoke.texi (SH Options): Document -mfixed-range.
10030
10031 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
10032
10033         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
10034         it before the redeclaration.
10035
10036 2008-05-22  Anatoly Sokolov <aesok@post.ru>
10037
10038         * config/avr/avr.c (get_sequence_length): Add new function.
10039         (expand_prologue, expand_epilogue): Remove duplicate code.
10040
10041 2008-05-22  Rafael Espindola  <espindola@google.com>
10042
10043         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
10044         sharing.
10045
10046 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
10047
10048         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
10049         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
10050
10051         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
10052         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
10053         (vect_update_misalignment_for_peel): Likewise.
10054         (vector_alignment_reachable_p): Likewise.
10055         * tree-vect-transform.c (vectorizable_load): Likewise.
10056         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
10057         (get_vectype_for_scalar_type): Pass mode of scalar_type
10058         to UNITS_PER_SIMD_WORD.
10059
10060         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
10061         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
10062         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
10063         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
10064         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
10065
10066 2008-05-22  Ira Rosen  <irar@il.ibm.com>
10067
10068         PR tree-optimization/36293
10069         * tree-vect-transform.c (vect_transform_strided_load): Don't check
10070         if the first load must be skipped because of a gap.
10071
10072 2008-05-22  Richard Guenther  <rguenther@suse.de>
10073
10074         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
10075         more cases of offset disambiguation that is possible if
10076         strict-aliasing rules apply.
10077         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
10078         for basic offset and type-based disambiguation.
10079
10080 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
10081
10082         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
10083         ix86_expand_vector_set on V16QImode for SSE4.1.
10084
10085 2008-05-21  Tom Tromey  <tromey@redhat.com>
10086
10087         * c.opt (Wimport): Mark as undocumented.
10088         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
10089         -Wno-import.
10090         (Warning Options): Likewise.
10091         * doc/cppopts.texi: Don't mention -Wimport.
10092
10093 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
10094
10095         PR tree-optimization/36287
10096         PR tree-optimization/36286
10097         * lambda-code.c (build_access_matrix): Do not use the loop->num
10098         for computing the number of induction variables: use the loop depth
10099         instead.
10100
10101 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
10102
10103         PR/36280
10104         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
10105         option -f(no-)leading-underscore.
10106
10107 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
10108
10109         * config/i386/i386.c (ix86_expand_vector_init_general): Use
10110         GET_MODE_NUNITS (mode).
10111
10112 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
10113
10114         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
10115         (-mmulhw): Add 464 to description.
10116         (-mdlmzb): Likewise.
10117         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
10118         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
10119         464fp entries.
10120         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
10121         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
10122         * config/rs6000/rs6000.md: Update comments for 464.
10123
10124 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
10125
10126         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
10127
10128 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
10129
10130         * config/i386/sse.md (vec_extractv4sf): Removed.
10131         (vec_extractv2df): Likewise.
10132         (vec_extractv2di): Likewise.
10133         (vec_extractv4si): Likewise.
10134         (vec_extractv8hi): Likewise.
10135         (vec_extractv16qi): Likewise.
10136         (vec_extract<mode>): New.
10137
10138 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
10139
10140         * config/i386/sse.md (vec_setv4sf): Removed.
10141         (vec_setv2df): Likewise.
10142         (vec_setv2di): Likewise.
10143         (vec_setv4si): Likewise.
10144         (vec_setv8hi): Likewise.
10145         (vec_setv16qi): Likewise.
10146         (vec_set<mode>): New.
10147
10148 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
10149
10150         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
10151         goto for vec_concat and vec_interleave.
10152
10153 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
10154
10155         * config/i386/sse.md (vec_initv4sf): Removed.
10156         (vec_initv2df): Likewise.
10157         (vec_initv2di): Likewise.
10158         (vec_initv4si): Likewise.
10159         (vec_initv8hi): Likewise.
10160         (vec_initv16qi): Likewise.
10161         (vec_init<mode>): New.
10162
10163 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
10164
10165         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
10166
10167 2008-05-21  Tom Tromey  <tromey@redhat.com>
10168
10169         * ggc-zone.c (lookup_page_table_if_allocated): New function.
10170         (zone_find_object_offset): Likewise.
10171         (gt_ggc_m_S): Likewise.
10172         (highest_bit): Likewise.
10173         * ggc-page.c (gt_ggc_m_S): New function.
10174         * stringpool.c (string_stack): Remove.
10175         (init_stringpool): Update.
10176         (ggc_alloc_string): Use ggc_alloc.
10177         (maybe_delete_ident): New function.
10178         (ggc_purge_stringpool): Likewise.
10179         (gt_ggc_m_S): Remove.
10180         * ggc-common.c (ggc_protect_identifiers): New global.
10181         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
10182         ggc_protect_identifiers.
10183         * ggc.h (ggc_protect_identifiers): Declare.
10184         (gt_ggc_m_S): Update.
10185         (ggc_purge_stringpool): Declare.
10186         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
10187         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
10188         special case.
10189         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
10190
10191 2008-05-21  David S. Miller  <davem@davemloft.net>
10192
10193         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
10194         tmake_file.
10195
10196 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
10197
10198         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
10199         once finished.
10200
10201 2008-05-20  David Daney  <ddaney@avtrex.com>
10202
10203         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
10204         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
10205         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
10206         UNSPEC_UPDATE_GOT_VERSION): Renumber.
10207         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
10208         (atomic_hiqi_op): New define_code_iterator.
10209         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
10210         mips_expand_compare_and_swap_12.
10211         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
10212         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
10213         (sync_<optab><mode>, sync_old_<optab><mode>,
10214         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
10215         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
10216         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
10217         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
10218         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
10219         (test_and_set_12): New insn.
10220         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
10221         sync_new_<optab><mode>, sync_old_nand<mode>,
10222         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
10223         clobber to operand 0 for SI and DI mode insns.
10224         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
10225         mips_gen_fn_4): New typedefs.
10226         (mips_gen_fn_ptrs): Define new union type.
10227         (mips_expand_compare_and_swap_12): Remove declaration.
10228         (mips_expand_atomic_qihi): Declare function.
10229         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
10230         (mips_expand_atomic_qihi): ... this.  Use new generator function
10231         parameter.
10232         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
10233         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
10234         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
10235         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
10236         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
10237         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
10238         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
10239         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
10240         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
10241         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
10242         New macros.
10243
10244 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
10245
10246         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
10247         the missing break.
10248
10249 2008-05-20  Anatoly Sokolov <aesok@post.ru>
10250
10251         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
10252         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
10253         (avr_attribute_table): Add 'OS_main' function attribute.
10254         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
10255         functions with 'OS_main' attribute.
10256
10257 2008-05-20  Richard Guenther  <rguenther@suse.de>
10258
10259         PR tree-optimization/35204
10260         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
10261         helper, split out from ...
10262         (DFS): ... here.  Make the DFS walk non-recursive.
10263
10264 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
10265             Jan Sjodin  <jan.sjodin@amd.com>
10266
10267         PR tree-optimization/36181
10268         * tree-parloops.c (loop_has_vector_phi_nodes): New.
10269         (parallelize_loops): Don't parallelize when the loop has vector
10270         phi nodes.
10271
10272 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
10273             Sebastian Pop  <sebastian.pop@amd.com>
10274
10275         * tree-loop-linear.c (gather_interchange_stats): Look in the access
10276         matrix, and never look at the tree representation of the memory
10277         accesses.
10278         (linear_transform_loops): Computes parameters and access matrices.
10279         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
10280         when fails.
10281         (access_matrix_get_index_for_parameter): New.
10282         * tree-data-ref.h (struct access_matrix): New.
10283         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
10284         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
10285         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
10286         am_vector_index_for_loop): New.
10287         (struct data_reference): Add field access_matrix.
10288         (DR_ACCESS_MATRIX): New.
10289         (compute_data_dependences_for_loop): Update declaration.
10290         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
10291         * lambda.h (lambda_vector_vec_p): Declared.
10292         * lambda-code.c: Depend on pointer-set.h.
10293         (lambda_collect_parameters_from_af, lambda_collect_parameters,
10294         av_for_af_base, av_for_af, build_access_matrix,
10295         lambda_compute_access_matrices): New.
10296         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
10297
10298 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
10299
10300         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
10301         $SOURCEDIR/include.
10302
10303 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
10304             Sebastian Pop  <sebastian.pop@amd.com>
10305
10306         PR tree-optimization/36206
10307         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
10308         FOLD_CONVERSIONS.
10309         (instantiate_scev_1): Rename flags to fold_conversions.
10310         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
10311         outeside instantiation_loop.
10312         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
10313         (evolution_function_is_affine_or_constant_p): Removed.
10314         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
10315         instantiate_scev.
10316         (analyze_siv_subscript): Pass in the loop nest number.
10317         Call evolution_function_is_affine_in_loop instead of
10318         evolution_function_is_affine_p.
10319         (analyze_overlapping_iterations): Pass in the loop nest number.
10320
10321 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
10322             Sebastian Pop  <sebastian.pop@amd.com>
10323
10324         PR tree-optimization/36206
10325         * tree-chrec.h (chrec_fold_op): New.
10326         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
10327         and other trees.
10328
10329 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
10330
10331         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
10332         (DIRS_EQ): New.
10333         (remove_duplicates): Do not set inode on non-inode systems.
10334         Use DIRS_EQ.
10335
10336 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
10337
10338         * config.gcc (tm_file): Update comments about relative pathnames.
10339
10340 2008-05-20  Richard Guenther  <rguenther@suse.de>
10341
10342         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
10343         * tree-ssa-sccvn.c (process_scc): Likewise.
10344         * tree-ssa-sink.c (execute_sink_code): Likewise.
10345         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
10346         * tree-vrp.c (process_assert_insertions): Likewise.
10347         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
10348         (perform_tree_ssa_dce): Likewise.
10349         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
10350         (dump_dominator_optimization_stats): Likewise.
10351         * tree-vectorizer.c (vectorize_loops): Likewise.
10352
10353 2008-05-20  Richard Guenther  <rguenther@suse.de>
10354
10355         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
10356
10357 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
10358
10359         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
10360         (ix86_i386elf_return_in_memory): Likewise.
10361         (ix86_i386interix_return_in_memory): Likewise.
10362         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
10363         (SUBTARGET_RETURN_IN_MEMORY): New.
10364         * config/i386/i386elf.h: Likewise.
10365         * config/i386/ptx4-i.h: Likewise.
10366         * config/i386/sol2-10.h: Likewise.
10367         * config/i386/sysv4.h: Likewise.
10368         * config/i386/vx-common.h: Likewise.
10369         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
10370         * config/i386/i386.c (ix86_return_in_memory): Made static and
10371         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
10372         (ix86_i386elf_return_in_memory): Removed.
10373         (ix86_i386interix_return_in_memory): Removed.
10374         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
10375         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
10376
10377 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
10378
10379         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
10380
10381 2008-05-19  Xinliang David Li  <davidxl@google.com>
10382
10383         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
10384         * opts.c: Ditto.
10385         * common.opt: Ditto.
10386         * doc/invoke.texi: Ditto.
10387
10388 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
10389
10390         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
10391         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
10392
10393 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
10394
10395         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
10396         sizes of operand array from 8/4 to 4/2.
10397         (ix86_expand_vector_init_general): Change size of operand array
10398         from 32 to 16.  Remove op0, op1 and half_mode.
10399
10400 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
10401
10402         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
10403         (ix86_expand_vector_init_interleave): Likewise.
10404         (ix86_expand_vector_init_general): Use them.  Assert
10405         word_mode == SImode when n_words == 4.
10406
10407 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
10408
10409         * config/i386/i386.c (ix86_secondary_reload): New static function.
10410         (TARGET_SECONDARY_RELOAD): New define.
10411         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
10412         * config/i386/i386.md (reload_outqi): Remove.
10413
10414 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10415
10416         PR middle-end/35509
10417         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
10418         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
10419         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
10420         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
10421         (fold_builtin_1): Likewise.
10422         * builtins.def (BUILT_IN_ISINF_SIGN): New.
10423         c-common.c (check_builtin_function_arguments): Handle
10424         BUILT_IN_ISINF_SIGN.
10425         * doc/extend.texi: Document __builtin_isinf_sign.
10426         * fold-const.c (operand_equal_p): Handle COND_EXPR.
10427
10428 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
10429
10430         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
10431         EH cleanup at the end of the pass, search for those that have been
10432         turned into forwarder blocks and do the cleanup on their successor.
10433
10434 2008-05-18  Richard Guenther  <rguenther@suse.de>
10435
10436         * tree-cfg.c (verify_gimple_expr): Allow conversions from
10437         pointers to sizetype and vice versa.
10438
10439 2008-05-18 Xinliang David Li   <davidxl@google.com>
10440
10441         * gcc/tree-ssa-dce.c: Coding style fix.
10442         (check_pow): Documentation comment.
10443         (check_log): Documenation comment. Coding style fix.
10444         (is_unnecessary_except_errno_call): Ditto.
10445         (gen_conditions_for_pow): Ditto.
10446         (gen_conditions_for_log): Ditto.
10447         (gen_shrink_wrap_conditions): Ditto.
10448         (shrink_wrap_one_built_in_calls): Ditto.
10449         * gcc/doc/invoke.texi: Better documentation string.
10450         * ChangeLog: Fix wrong change log entries from
10451         May 17 checkin on function call DCE.
10452
10453 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
10454
10455         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
10456
10457 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
10458
10459         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
10460         * df-problems.c (simulation routines): Fixed block comment to
10461         properly say how to add forwards scanning functions.
10462
10463 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
10464
10465         * tree-inline.c (setup_one_parameter): Remove dead code.
10466
10467 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
10468
10469         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
10470         a BIT_AND_EXPR only for an INTEGER_TYPE.
10471
10472 2008-05-17 Xinliang David Li   <davidxl@google.com>
10473
10474         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
10475         (check_pow, check_log, is_unnecessary_except_errno_call): New
10476         functions to check for eliminating math functions that are pure
10477         except for setting errno.
10478         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
10479         general condition expressions for shrink-wrapping pow/log calls.
10480         (gen_shrink_wrap_conditions): Ditto.
10481         (shrink_wrap_one_built_in_call): Ditto.
10482         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
10483         (mark_operand_necessary): If debugging, output if OP is necessary.
10484         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
10485         unnecessary.
10486         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
10487         opt level >= 2.
10488         * gcc/common.opt: New user flag -ftree-builtin-dce.
10489         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
10490
10491 2008-05-16  David S. Miller  <davem@davemloft.net>
10492
10493         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
10494         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
10495
10496 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
10497
10498         PR target/36246
10499         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
10500
10501 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
10502
10503         * ifcvt.c (dead_or_predicable): Rename
10504         df_simulate_one_insn_backwards to df_simulate_one_insn.
10505         * recog.c (peephole2_optimize): Ditto.
10506         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
10507         Ditto.
10508         * df.h: Rename df_simulate_one_insn_backwards to
10509         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
10510         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
10511         scanning of defs and uses.
10512         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
10513         (df_simulate_one_insn_forwards): Removed.
10514
10515 2008-05-16  Doug Kwan  <dougkwan@google.com>
10516
10517         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
10518         QNaN & SNaN.
10519         (real_from_string): Handle NaNs and Inf as approriate.
10520
10521 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
10522
10523         * doc/gty.texi (Source Files Containing Type Information): Note
10524         that headers should appear first in the gtfiles list.
10525
10526 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
10527
10528         * tree.def (COND_EXEC): Properly documented this code.
10529
10530 2008-05-16  Diego Novillo  <dnovillo@google.com>
10531
10532         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
10533         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
10534         the new field.
10535
10536 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
10537
10538         * tree-ssa-dse (max_stmt_uid): Removed.
10539         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
10540         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
10541         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
10542         * function.h (cfun.last_stmt_uid): New field.
10543         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
10544         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
10545         New functions.
10546         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
10547         (create_stmt_ann): Initialize the ann->uid field.
10548         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
10549         with new calls.
10550         * tree-flow.h (renumber_gimple_stmt_uids): New function.
10551
10552 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
10553
10554         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
10555         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
10556         (init_empty_tree_cfg): Call it.
10557
10558 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
10559
10560         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
10561         Update all users.
10562
10563 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
10564
10565         * doc/invoke.text (-fdump-tree-*-verbose): New option.
10566         * tree-dump.c (dump_options): New verbose option.
10567         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
10568         Add verbose dump.
10569         * tree-pass.h (TDF_VERBOSE): New dump flag.
10570         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
10571         (tree-flow.h): Added include.
10572         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
10573
10574 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
10575
10576         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
10577
10578         From Jie Zhang  <jie.zhang@analog.com>
10579         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
10580         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
10581         mcpu=bf561-none and mcpu=bf561-0.2.
10582         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
10583         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
10584         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
10585         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
10586         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
10587         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
10588         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
10589         option.
10590         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
10591         (cputype_selected): Remove.
10592         (bfin_handle_option): Don't use cputype_selected.
10593         (override_options): When no mcpu option, enable all workarounds.
10594         Don't use bfin_workarounds.
10595         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
10596         processor type.
10597         (DEFAULT_CPU_TYPE): Don't define.
10598
10599 2008-05-16  Richard Guenther  <rguenther@suse.de>
10600
10601         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
10602         on deletion of the last stmt.
10603
10604 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
10605
10606         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
10607         V8HImode for SSE2 and V16QImode for SSE4.1.
10608
10609 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
10610
10611         * cgraph.h (compute_inline_parameters): Made public.
10612         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
10613         variable_generate_summary, function_write_summary,
10614         variable_write_summary, variable_read_summary.  Added generate_summary,
10615         write_summary, read_summary.
10616         * cgraphunit.c (cgraph_process_new_functions): Changed call from
10617         pass_ipa_inline.function_generate_summary, to
10618         compute_inline_parameters.
10619         * ipa-inline.c (compute_inline_parameters): Made public and added
10620         node parameter.
10621         (compute_inline_parameters_for_current): New function.
10622         (pass_inline_param): Now calls compute_inline_parameters_for_current.
10623         (inline_generate_summary): Removed parameter and made to loop over
10624         all cgraph nodes.
10625         (pass_ipa_inline): Updated for new IPA_PASS structure.
10626         * passes.c (execute_ipa_summary_passes): Now is called once per
10627         pass rather than once per node*pass.
10628
10629 2008-05-15  Anatoly Sokolov <aesok@post.ru>
10630
10631         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
10632         avr_have_mul_p, avr_asm_only_p): Remove variables.
10633         (avr_override_options): Remove initialization of removed variables.
10634         (avr_file_start):  Convert removed variables to fields of
10635         'struct base_arch_s *avr_current_arch'.
10636         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
10637         (AVR_HAVE_MUL): (Ditto.).
10638         (AVR_HAVE_MOVW): (Ditto.).
10639         (AVR_HAVE_LPMX): (Ditto.).
10640         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
10641         avr_asm_only_p): Remove declaration.
10642
10643 2008-05-15  Diego Novillo  <dnovillo@google.com>
10644
10645         * config/arm/arm.c (arm_return_in_memory): Fix return type.
10646         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
10647
10648 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
10649
10650         PR middle-end/36194
10651         * combine.c (check_conversion): Rename back to check_promoted_subreg.
10652         Don't call record_truncated_value from here.
10653         (record_truncated_value): Turn it into a for_each_rtx callback.
10654         (record_truncated_values): New function.
10655         (combine_instructions): Call note_uses with record_truncated_values.
10656         Change name of check_conversion to check_promoted_subreg.
10657
10658 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
10659
10660         * doc/sourcebuild.texi: Document support for torture tests.
10661
10662 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
10663
10664         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
10665         to alternative 4 of operand 2.
10666
10667 2008-05-15  Richard Guenther  <rguenther@suse.de>
10668
10669         * tree-pass.h (current_pass): Declare.
10670         (get_pass_for_id): Likewise.
10671         * passes.c (passes_by_id, passes_by_id_size): New globals.
10672         (set_pass_for_id): New function.
10673         (get_pass_for_id): Likewise.
10674         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
10675         (execute_function_todo): Flush per function statistics.
10676         * toplev.c (compile_file): Init statistics.
10677         (general_init): Do early statistics initialization.
10678         (finalize): Finish statistics.
10679         * statistics.h (statistics_early_init): Declare.
10680         (statistics_init): Likewise.
10681         (statistics_fini): Likewise.
10682         (statistics_fini_pass): Likewise.
10683         (statistics_counter_event): Likewise.
10684         (statistics_histogram_event): Likewise.
10685         * statistics.c: New file.
10686         * Makefile.in (OBJS-common): Add statistics.o.
10687         (statistics.o): Add dependencies.
10688         * doc/invoke.texi (-fdump-statistics): Document.
10689
10690         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
10691         (insert): Likewise.
10692         (execute_pre): Use statistics_counter_event.
10693         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
10694         (substitute_and_fold): Increment it.  Use statistics_counter_event.
10695
10696 2008-05-15  Diego Novillo  <dnovillo@google.com>
10697
10698         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
10699
10700         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
10701         * tree-ssa-alias.c (new_type_alias): Remove references to
10702         sub-variables from comment.
10703         * tree-ssa-operands.c (swap_tree_operands): Likewise.
10704
10705 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
10706
10707         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
10708         attribute to 1 only for insertps alternative.
10709
10710 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
10711
10712         * config/bfin/bfin.md (loadbytes): New pattern.
10713         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
10714         (bfin_init_builtins): Initialize it.
10715         (bdesc_1arg): Add it.
10716
10717 2008-05-15  Sa Liu  <saliu@de.ibm.com>
10718
10719         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
10720         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
10721         * testsuite/lib/target-supports.exp: Add
10722         check_effective_target_fortran_integer_16.
10723
10724 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
10725
10726         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
10727         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
10728         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
10729         (TARGET_RETURN_IN_MEMORY): Define.
10730
10731 2008-05-15  Richard Guenther  <rguenther@suse.de>
10732
10733         PR middle-end/36244
10734         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
10735         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
10736         represent unmodifiable vars.
10737
10738 2008-05-15  Richard Guenther  <rguenther@suse.de>
10739
10740         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
10741         INDIRECT_REF and TARGET_MEM_REF.
10742         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
10743         TARGET_MEM_REF.
10744
10745 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
10746             H.J. Lu  <hongjiu.lu@intel.com>
10747
10748         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
10749         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
10750         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
10751         insn alternatives.  Add missing alternatives.
10752         (*vec_concatv2di_rex64_sse4_1): Likewise.
10753         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
10754         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
10755         Require TARGET_SSE.
10756
10757 2008-05-15  Richard Guenther  <rguenther@suse.de>
10758
10759         PR tree-optimization/36009
10760         PR tree-optimization/36204
10761         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
10762         (determine_invariantness_stmt): Record the loop a store is
10763         always executed in.
10764         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
10765         dependency.
10766
10767 2008-05-15  Richard Guenther  <rguenther@suse.de>
10768
10769         PR tree-optimization/34330
10770         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
10771         through the pointer will alias the SMT.
10772
10773 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
10774
10775         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
10776
10777 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
10778
10779         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
10780
10781 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
10782             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
10783
10784         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
10785         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
10786         (vashl_optab): New optab for vector/vector shifts.
10787         (vashr_optab): Ditto.
10788         (vlshr_optab): Ditto.
10789         (vrotl_optab): Ditto.
10790         (vrotr_optab): Ditto.
10791         (optab_subtype): New enum for optab_for_tree_code call.
10792         (optab_for_tree_code): Add enum optab_subtype argument.
10793
10794         * optabs.c (optab_for_tree_code): Take an additional argument to
10795         distinguish between a vector shift by a scalar and vector shift by
10796         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
10797         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
10798         vector shift by a vector.
10799         (expand_widen_pattern_expr): Pass additional argument to
10800         optab_for_tree_code.
10801
10802         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
10803         vrotl_optab, vrotr_optab.
10804
10805         * expr.c (expand_expr_real_1): Update calls to
10806         optab_for_tree_code to distinguish between vector shifted by a
10807         scalar and vector shifted by a vector.
10808         * tree-vectorizer.c (supportable_widening_operation): Ditto.
10809         (supportable_narrowing_operation): Ditto.
10810         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
10811         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
10812         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
10813         (vect_create_epilog_for_reduction): Ditto.
10814         (vectorizable_reduction): Ditto.
10815         (vectorizable_operation): Ditto.
10816         (vect_strided_store_supported): Ditto.
10817         (vect_strided_load_supported): Ditto.
10818         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
10819         * expmed.c (expand_shift): Ditto.
10820
10821         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
10822         scalar type.
10823         (ashr@var{m}3): Ditto.
10824         (vashl@var{m}3): Document new vector/vector shift standard name.
10825         (vashr@var{m}3): Ditto.
10826         (vlshr@var{m}3): Ditto.
10827         (vrotl@var{m}3): Ditto.
10828         (vrotr@var{m}3): Ditto.
10829
10830         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
10831         (PPERM_INVERT): Ditto.
10832         (PPERM_REVERSE): Ditto.
10833         (PPERM_REV_INV): Ditto.
10834         (PPERM_ZERO): Ditto.
10835         (PPERM_ONES): Ditto.
10836         (PPERM_SIGN): Ditto.
10837         (PPERM_INV_SIGN): Ditto.
10838         (PPERM_SRC1): Ditto.
10839         (PPERM_SRC2): Ditto.
10840
10841         * config/i386/sse.md (mulv2di3): Add SSE5 support.
10842         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
10843         allows a memory operand to be the value being added, and split it
10844         to improve vectorization.
10845         (sse5_pmacsdqh_mem): Ditto.
10846         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
10847         (sse5_mulv2div2di3_high): Ditto.
10848         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
10849         (vec_pack_trunc_v4si): Ditto.
10850         (vec_pack_trunc_v2di): Ditto.
10851         (sse5_pcmov_<mode>): Remove code that tried to use use
10852         andps/andnps instead of pcmov.
10853         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
10854         pmacsdqh instructions.
10855         (vec_widen_smult_lo_v4si): Ditto.
10856
10857         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
10858         (PPERM_INVERT): Ditto.
10859         (PPERM_REVERSE): Ditto.
10860         (PPERM_REV_INV): Ditto.
10861         (PPERM_ZERO): Ditto.
10862         (PPERM_ONES): Ditto.
10863         (PPERM_SIGN): Ditto.
10864         (PPERM_INV_SIGN): Ditto.
10865         (PPERM_SRC1): Ditto.
10866         (PPERM_SRC2): Ditto.
10867         (ix86_expand_sse_movcc): Move the SSE5 test after the if
10868         true/false tests.
10869         (ix86_expand_int_vcond): If SSE5 generate all possible integer
10870         comparisons.
10871         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
10872         says ignore whether the last reference is a memory operand.
10873
10874 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
10875             Paolo Bonzini <bonzini at gnu dot org>
10876
10877         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
10878         shift patterns.
10879
10880         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
10881         (vlshr<mode>3): Rename from vlshr<mode>3.
10882         (vashr<mode>3): Rename from vashr<mode>3.
10883         (mulv4sf3): Change the names of vector shift patterns.
10884         (mulv4si3): Ditto.
10885         (negv4sf2): Ditt.
10886
10887         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
10888         shift insns.
10889
10890         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
10891         (SI_SHLHI): Ditto.
10892         (SI_SHL): Ditto.
10893         (SI_SHLI): Ditto.
10894         (SI_ROTH): Ditto.
10895         (SI_ROTHI): Ditto.
10896         (SI_ROT): Ditto.
10897         (SI_ROTI): Ditto.
10898         (SPU_RL_0): Ditto.
10899         (SPU_RL_1): Ditto.
10900         (SPU_RL_2): Ditto.
10901         (SPU_RL_3): Ditto.
10902         (SPU_RL_4): Ditto.
10903         (SPU_RL_5): Ditto.
10904         (SPU_RL_6): Ditto.
10905         (SPU_RL_7): Ditto.
10906         (SPU_SL_0): Ditto.
10907         (SPU_SL_1): Ditto.
10908         (SPU_SL_2): Ditto.
10909         (SPU_SL_3): Ditto.
10910         (SPU_SL_4): Ditto.
10911         (SPU_SL_5): Ditto.
10912         (SPU_SL_6): Ditto.
10913         (SPU_SL_7): Ditto.
10914
10915         * config/spu/spu.md (v): New iterator macro to add v for vector types.
10916         (floatunssidf2_internal): Change vector/vector shift names.
10917         (floatunsdidf2_internal): Ditto.
10918         (mulv8hi3): Ditto.
10919         (ashrdi3): Ditto.
10920         (ashrti3): Ditto.
10921         (cgt_df): Ditto.
10922         (cgt_v2df): Ditto.
10923         (dftsv): Ditto.
10924         (vashl<mode>3): Rename from ashl<mode>3.
10925         (vashr<mode>3): Rename from ashr<mode>3.
10926         (vlshr<mode>3): Rename from lshr<mode>3.
10927         (vrotl<mode>3): Rename from rotl<mode>3.
10928
10929 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
10930
10931         PR target/36224
10932         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
10933         multiply gives the wrong value when doing widening multiplies.
10934         (vec_widen_smult_lo_v4si): Ditto.
10935
10936 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
10937
10938         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
10939         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
10940         emit_library_call_value.
10941         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
10942         * tree.h (ECF_LIBCALL_BLOCK): Removed.
10943         * calls.c (initialize_argument_information, precompute_arguments,
10944         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
10945         (precompute_arguments): Removed flags parameter.
10946         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
10947
10948 2008-05-14  Richard Guenther  <rguenther@suse.de>
10949
10950         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
10951         Make sure to register the store if the use is a PHI_NODE.
10952
10953 2008-05-14  Olivier Hainque  <hainque@adacore.com>
10954
10955         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
10956         memory if the component is to be referenced in BLKmode according
10957         to get_inner_reference.
10958
10959 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
10960
10961         * calls.c (emit_library_call_value_1): Restore code clearing
10962         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
10963
10964 2008-05-14  Olivier Hainque  <hainque@adacore.com>
10965             Nicolas Roche  <roche@adacore.com>
10966
10967         * configure.ac: Add support for a "gcc_subdir" variable in
10968         config-lang.in, to denote a subdirectory where the language/GCC
10969         integration files are to be found.
10970         * configure: Regenerate.
10971
10972 2008-05-14  Ira Rosen  <irar@il.ibm.com>
10973
10974         PR tree-optimization/36098
10975         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
10976         value for the first load in the group in case of a gap.
10977         (vect_build_slp_tree): Check that there are no gaps in loads.
10978
10979 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
10980
10981         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
10982         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
10983         expand_copysign_bit, ): Change call to emit_no_conflict_block to
10984         emit_insn and remove unneeded code to construct extra args.
10985         (emit_no_conflict_block): Removed.
10986         * optabls.h: (emit_no_conflict_block): Removed.
10987         * cse.c (cse_extended_basic_block): Remove search for
10988         REG_NO_CONFLICT note.
10989         * global.c: Removed incorrect comment added in revision 117.
10990         * expr.c (convert_move): Change call to emit_no_conflict_block to
10991         emit_insn.
10992         * recog.c: Change comments so that they do not mention
10993         REG_NO_CONFLICT.
10994         * local_alloc.c (combine_regs): Removed last parameter.
10995         (no_conflict_p): Removed.
10996         (block_alloc): Removed note, no_conflict_combined_regno and set
10997         local vars. Removed all code to process REG_NO_CONFLICT blocks.
10998         (combine_regs): Removed already_dead and code to look for
10999         REG_NO_CONFLICT notes.
11000         * lower_subreg (remove_retval_note): Removed code to look for
11001         REG_NO_CONFLICT block.
11002         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
11003         (resolve_clobber): Remove code to process libcalls that have
11004         REG_NO_CONFLICT notes.
11005         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
11006         case.
11007         * combine.c (can_combine_p, distribute_notes):  Removed
11008         REG_NO_CONFLICT case.
11009         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
11010         to emit_insns.
11011         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
11012         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
11013         Ditto.
11014         * reg-notes.def (NO_CONFLICT): Removed.
11015
11016 2008-05-14  David S. Miller  <davem@davemloft.net>
11017
11018         * config/sparc/sparc.c (sparc_profile_hook): If
11019         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
11020         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
11021         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
11022
11023 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
11024
11025         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
11026
11027 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
11028
11029         PR target/36222
11030         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
11031         and op1 expansion before vector concat to have less live pseudos.
11032
11033 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
11034
11035         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
11036         ix86_expand_vector_set if supported.
11037
11038 2008-05-13  Diego Novillo  <dnovillo@google.com>
11039             Kenneth Zadeck  <zadeck@naturalbridge.com>
11040
11041         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
11042
11043         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
11044         phinodes_print_statistics, init_ssanames, fini_ssanames,
11045         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
11046         release_ssa_name, release_defs, replace_ssa_name_symbol,
11047         ssanames_print_statistics): Move ...
11048         * tree-flow.h: ... here.
11049         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
11050         Use FN instead of cfun.
11051         (make_ssa_name_fn): Rename from make_ssa_name.
11052         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
11053         * tree-flow-inline.h (make_ssa_name): Move from
11054         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
11055         * omp-low.c (expand_omp_parallel):
11056         * tree-flow-inline.h (redirect_edge_var_map_result):
11057         * tree-ssa.c (init_tree_ssa): Add argument FN.
11058         Use it instead of cfun.  Update all users.
11059
11060 2008-05-13  Tom Tromey  <tromey@redhat.com>
11061
11062         PR preprocessor/22168:
11063         * doc/cpp.texi (Top): Update menu.
11064         (Alternatives to Wrapper #ifndef): New node.
11065         (Other Directives): Document deprecation.
11066         (Obsolete Features): Remove menu.
11067         (Assertions): Merge node into Obsolete Features.
11068         (Obsolete once-only headers): Move earlier; rename to Alternatives
11069         to Wrapper #ifndef.
11070         * doc/cppopts.texi: Update.
11071         * c.opt (Wdeprecated): Enable for C and ObjC.
11072         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
11073         (C++ Dialect Options): Move -Wno-deprecated from here to...
11074         (Warning Options): ... here.
11075
11076 2008-05-13  Richard Guenther  <rguenther@suse.de>
11077
11078         PR middle-end/36227
11079         * fold-const.c (fold_sign_changed_comparison): Do not allow
11080         changes in pointer-ness.
11081
11082 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
11083
11084         PR target/24713
11085         * config/sh/sh.c (sh_expand_prologue): Don't clear
11086         RTX_FRAME_RELATED_P for push insns.
11087
11088 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
11089
11090         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
11091
11092 2008-05-12  Anatoly Sokolov <aesok@post.ru>
11093
11094         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
11095         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
11096         Use 'machine->is_leaf' instead of 'leaf_func_p'.
11097
11098 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
11099
11100         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
11101         (*vec_concatv4sf_sse): This.
11102         (*sse2_concatv2si): Renamed to ...
11103         (*vec_concatv2si_sse2): This.
11104         (*sse1_concatv2si): Renamed to ...
11105         (*vec_concatv2si_sse): This.
11106         (*vec_concatv2di_rex): Renamed to ...
11107         (*vec_concatv2di_rex64): This.
11108         (*vec_concatv2si_sse4_1): New.
11109         (*vec_concatv2di_rex64_sse4_1): Likewise.
11110
11111 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
11112
11113         PR rtl-optimization/36111
11114         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
11115         that was created for swappable operands.
11116
11117 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
11118
11119         PR ada/36001
11120         * Makefile.in: Substitute GNATMAKE and GNATBIND.
11121         * configure.ac: Add call to ACX_PROG_GNAT.
11122
11123 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
11124
11125         * optc-gen.awk: Fix comment typo.
11126
11127 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
11128
11129         * pretty-print.c (pp_integer_with_precision): Use
11130         HOST_LONG_LONG_FORMAT.
11131
11132 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
11133
11134         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
11135
11136 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
11137
11138         * config/i386/i386.c (bdesc_ptest): Removed.
11139         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
11140         (bdesc_args): Add __builtin_ia32_ptestz128,
11141         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
11142         (ix86_init_mmx_sse_builtins): Updated.
11143         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
11144         (ix86_expand_builtin): Updated.
11145
11146 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
11147
11148         * tree-cfg.c (valid_fixed_convert_types_p): New function.
11149         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
11150
11151 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
11152
11153         * value-prof.c (interesting_stringop_to_profile): Do not
11154         return early for BUILT_IN_MEMPCPY.
11155
11156 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
11157
11158         * calls.c (expand_call): Don't use callgraph to increase
11159         preferred_stack_boundary.
11160
11161         * cgraph.h (cgraph_rtl_info): Use unsigned on
11162         preferred_incoming_stack_boundary.
11163
11164         * final.c (rest_of_clean_state): Use unsigned on
11165         preferred_stack_boundary.
11166
11167 2008-05-09  Tom Tromey  <tromey@redhat.com>
11168
11169         PR preprocessor/22231:
11170         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
11171         proceeding.
11172
11173 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
11174
11175         PR tree-optimization/36129
11176         * tree-ssa-ccp.c: Include value-prof.h.
11177         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
11178         built-in function was folded to a constant.
11179         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
11180
11181 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
11182             Sebastian Pop  <sebastian.pop@amd.com>
11183
11184         * tree-scalar-evolution.c: Document instantiate_scev.
11185         (instantiate_parameters_1): Renamed instantiate_scev_1.
11186         Don't use the same loop for instantiation_loop and evolution_loop.
11187         (instantiate_scev): New.
11188         (instantiate_parameters): Moved...
11189         (resolve_mixers): Update call to instantiate_scev_1 to pass the
11190         same loop twice.  Maintains the semantics for this function.
11191         * tree-scalar-evolution.h (instantiate_scev): Declare.
11192         (instantiate_parameters): ...here.  Now static inline.
11193         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
11194         instead of resolve_mixers.
11195
11196 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
11197
11198         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
11199
11200 2008-05-09  Tomas Bily  <tbily@suse.cz>
11201
11202         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
11203         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
11204         * tree-ssa-structalias.c (get_constraint_for): Likewise.
11205         * c-common.c (c_common_truthvalue_conversion): Likewise.
11206         * tree-object-size.c (compute_object_offset): Likewise.
11207         * tree-inline.c (estimate_num_insns_1): Likewise.
11208         * varasm.c (const_hash_1, compare_constant, copy_constant)
11209         (compute_reloc_for_constant, output_addressed_constants)
11210         (initializer_constant_valid_p): Likewise.
11211         * c-omp.c (check_omp_for_incr_expr): Likewise.
11212         * gimplify.c (gimplify_expr): Likewise.
11213         * c-typeck.c (c_finish_return): Likewise.
11214         * tree-vectorizer.c (supportable_widening_operation)
11215         (supportable_narrowing_operation): Likewise.
11216         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
11217         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
11218         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
11219         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
11220         (descr_info_loc): Likewise.
11221         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
11222         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
11223         (fold_unary): Likewise.
11224         * builtins.c (get_pointer_alignment): Likewise.
11225         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
11226         (instantiate_parameters_1): Likewise.
11227         * tree.c (expr_align, stabilize_reference): Likewise.
11228         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
11229         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
11230         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
11231         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
11232         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
11233         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
11234         Likewise.
11235         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
11236         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
11237         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
11238         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
11239         (forward_propagate_comparison)
11240         (tree_ssa_forward_propagate_single_use_vars): Likewise.
11241         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
11242         * emit-rtl.c (component_ref_for_mem_expr)
11243         (set_mem_attributes_minus_bitpos): Likewise.
11244         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
11245         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
11246         Likewise.
11247         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
11248         (build_function_call, pointer_diff, build_compound_expr)
11249         (c_finish_return): Likewise.
11250         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
11251         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
11252         Likewise.
11253         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
11254         * expr.c (is_aligning_offset): Likewise.
11255         * tree-ssa-alias.c (is_escape_site): Likewise.
11256         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
11257         (check_all_va_list_escapes): Likewise.
11258         * tree-ssa-loop-ivopts.c (determine_base_object)
11259         (determine_common_wider_type): Likewise.
11260         * dojump.c (do_jump): Likewise.
11261         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
11262         * tree-gimple.c (is_gimple_cast): Likewise.
11263         * fold-const.c (decode_field_reference, )
11264         (fold_sign_changed_comparison, fold_unary, fold_comparison)
11265         (fold_binary): Likewise.
11266         * tree-ssa-alias-warnings.c (find_alias_site_helper)
11267         (already_warned_in_frontend_p): Likewise.
11268         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
11269         * tree.c (really_constant_p, get_unwidened): Likewise.
11270         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
11271         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
11272         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
11273         Likewise.
11274         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
11275         CONVERT_EXPR_P.
11276         (CONVERT_EXPR_P): Define.
11277         (CASE_CONVERT): Define.
11278
11279 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
11280
11281         PR middle-end/36117
11282         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
11283         (delete_unmarked_insns): When deleting a call, call
11284         delete_unreachable_blocks.
11285         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
11286         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
11287
11288 2008-05-08  Richard Guenther  <rguenther@suse.de>
11289
11290         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
11291         (-ftree-salias): Likewise.
11292         (salias-max-implicit-fields): Remove param documentation.
11293         (salias-max-array-elements): Likewise.
11294         * tree-pass.h (pass_create_structure_vars): Remove.
11295         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
11296         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
11297         * tree-ssa-alias.c (create_structure_vars): Remove.
11298         (gate_structure_vars): Likewise.
11299         (pass_create_structure_vars): Likewise.
11300         (gate_build_alias): Likewise.
11301         (pass_build_alias): Adjust to run always and dump the function.
11302         * common.opt (ftree-salias): Hide.
11303         * passes.c (init_optimization_passes): Remove
11304         pass_create_structure_vars, adjust comment.
11305         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
11306         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
11307         * opts.c (decode_options): Do not set flag_tree_salias.
11308         (common_handle_option): Add OPT_ftree_salias to the backward
11309         compatibility section.
11310
11311 2008-05-08  Richard Guenther  <rguenther@suse.de>
11312
11313         * tree-flow-inline.h (var_can_have_subvars): Move ...
11314         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
11315         * tree-flow.h (var_can_have_subvars): Remove.
11316         (push_fields_onto_fieldstack): Remove.
11317         (sort_fieldstack): Likewise.
11318         (struct fieldoff): Move ...
11319         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
11320         alias_set and base_for_components fields.
11321         (sort_fieldstack): Make static.
11322         (push_fields_onto_fieldstack): Likewise.  Remove code that
11323         handles anything but RECORD_TYPEs.  Remove alias_set and
11324         base_for_components handling.
11325         (create_variable_info_for): Adjust.
11326
11327 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
11328
11329         * common.opt (Wframe-larger-than=): Shorten the help message
11330         to one line.
11331         * doc/invoke.texi (Wframe-larger-than=): Add more description.
11332
11333 2008-05-08  Rafael Espindola  <espindola@google.com>
11334
11335         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
11336         trap.
11337         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
11338         trap and that both operands are gimple values.
11339         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
11340         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
11341         is a fp operation.
11342
11343 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
11344
11345         * read-rtl.c (join_c_conditions): Return the first string if the
11346         two strings are equal.
11347
11348 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
11349
11350         * gensupport.h (pred_data): Add a "num_codes" field.
11351         (add_predicate_code): Declare.
11352         * gensupport.c (add_predicate_code): New function.
11353         (std_pred_table): Add an "allows_const_p" field.
11354         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
11355         Remove the (incomplete) list of such codes from the codes field.
11356         (init_predicate_table): Use add_predicate_code.  Add all
11357         RTX_CONST_OBJs if allows_const_p is true.
11358         * genrecog.c (process_define_predicate): Use add_predicate_code.
11359
11360 2008-05-08  David Daney  <ddaney@avtrex.com>
11361             Richard Sandiford  <rsandifo@nildram.co.uk>
11362
11363         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
11364         special case of constant zero operands.
11365         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
11366         old and new values.  Special case constant zero values.
11367         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
11368         fails.
11369         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
11370         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
11371
11372 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
11373
11374         PR target/36090
11375         * simplify-rtx.c (simplify_plus_minus): Create CONST of
11376         similar RTX_CONST_OBJ before CONST_INT.
11377
11378 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
11379
11380         * stmt.c (expand_stack_restore): Change sa mode if needed.
11381
11382 2008-05-08  Richard Guenther  <rguenther@suse.de>
11383
11384         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
11385         return type to bool.
11386         (ix86_sol10_return_in_memory): Likewise.
11387         (ix86_i386elf_return_in_memory): Likewise.
11388         (ix86_i386interix_return_in_memory): Likewise.
11389         * config/i386/i386.c (ix86_return_in_memory): Likewise.
11390         (ix86_sol10_return_in_memory): Likewise.
11391         (ix86_i386elf_return_in_memory): Likewise.
11392         (ix86_i386interix_return_in_memory): Likewise.
11393
11394 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
11395
11396         PR bootstrap/36180
11397         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
11398         fndecl argument.
11399         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
11400         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
11401         declared in front.
11402
11403 2008-05-08  Richard Guenther  <rguenther@suse.de>
11404
11405         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
11406         * tree-data-ref.h (struct dr_alias): Remove subvars field.
11407         (DR_SUBVARS): Remove.
11408         * tree-dfa.c (dump_subvars_for): Remove.
11409         (debug_subvars_for): Likewise.
11410         (dump_variable): Do not dump subvars.
11411         (remove_referenced_var): Do not remove subvars.
11412         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
11413         (lookup_subvars_for_var): Remove.
11414         (get_subvars_for_var): Likewise.
11415         (get_subvars_at): Likewise.
11416         (get_first_overlapping_subvar): Likewise.
11417         (overlap_subvar): Likewise.
11418         * tree-flow.h (subvar_t): Remove.
11419         (struct var_ann_d): Remove subvars field.
11420         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
11421         argument.  Remove special handling of SFTs.
11422         (compute_tag_properties): Likewise.
11423         (set_initial_properties): Likewise.
11424         (compute_call_clobbered): Likewise.
11425         (count_mem_refs): Likewise.
11426         (compute_memory_partitions): Likewise.
11427         (compute_flow_insensitive_aliasing): Likewise.
11428         (setup_pointers_and_addressables): Likewise.
11429         (new_type_alias): Likewise.
11430         (struct used_part): Remove.
11431         (used_portions): Likewise.
11432         (struct used_part_map): Likewise.
11433         (used_part_map_eq): Likewise.
11434         (used_part_map_hash): Likewise.
11435         (free_used_part_map): Likewise.
11436         (up_lookup): Likewise.
11437         (up_insert): Likewise.
11438         (get_or_create_used_part_for): Likewise.
11439         (create_sft): Likewise.
11440         (create_overlap_variables_for): Likewise.
11441         (find_used_portions): Likewise.
11442         (create_structure_vars): Likewise.
11443         * tree.def (STRUCT_FIELD_TAG): Remove.
11444         * tree.h (MTAG_P): Adjust.
11445         (struct tree_memory_tag): Remove base_for_components and
11446         unpartitionable flags.
11447         (struct tree_struct_field_tag): Remove.
11448         (SFT_PARENT_VAR): Likewise.
11449         (SFT_OFFSET): Likewise.
11450         (SFT_SIZE): Likewise.
11451         (SFT_NONADDRESSABLE_P): Likewise.
11452         (SFT_ALIAS_SET): Likewise.
11453         (SFT_UNPARTITIONABLE_P): Likewise.
11454         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
11455         (union tree_node): Remove sft field.
11456         * alias.c (get_alias_set): Remove special handling of SFTs.
11457         * print-tree.c (print_node): Remove handling of SFTs.
11458         * tree-dump.c (dequeue_and_dump): Likewise.
11459         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
11460         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
11461         * tree-predcom.c (set_alias_info): Do not set subvars.
11462         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
11463         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
11464         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
11465         (add_vars_for_offset): Remove.
11466         (add_virtual_operand): Remove special handling of SFTs.
11467         (add_call_clobber_ops): Likewise.
11468         (add_call_read_ops): Likewise.
11469         (get_asm_expr_operands): Likewise.
11470         (get_modify_stmt_operands): Likewise.
11471         (get_expr_operands): Likewise.
11472         (add_to_addressable_set): Likewise.
11473         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
11474         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
11475         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
11476         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
11477         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
11478         (tree_node_structure): Likewise.
11479         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
11480         handling of SFTs.
11481         (find_what_p_points_to): Likewise.
11482
11483 2008-05-08  Sa Liu  <saliu@de.ibm.com>
11484
11485         * config/spu/spu.md: Fixed subti3 pattern.
11486
11487 2008-05-08  Richard Guenther  <rguenther@suse.de>
11488
11489         PR middle-end/36154
11490         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
11491         sure to create a representative for trailing arrays for PTA.
11492
11493 2008-05-08  Richard Guenther  <rguenther@suse.de>
11494
11495         PR middle-end/36172
11496         * fold-const.c (operand_equal_p): Two objects which types
11497         differ in pointerness are not equal.
11498
11499 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
11500
11501         * calls.c (compute_argument_block_size): Add argument tree fndecl.
11502         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
11503         (emit_library_call_value_1): Add new variable fndecl initialized by
11504         NULL_TREE. It should be the decl type of orgfun, but this information
11505         seems not to be available here, so it uses the default calling abi.
11506         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
11507         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
11508         by TARGET_RETURN_IN_MEMORY.
11509         * config/i386/i386-interix.h: Likewise.
11510         * config/i386/i386.h: Likewise.
11511         * config/i386/i386elf.h: Likewise.
11512         * config/i386/ptx4-i.h: Likewise.
11513         * config/i386/sol2-10.h: Likewise.
11514         * config/i386/sysv4.h: Likewise.
11515         * config/i386/vx-common.h: Likewise.
11516         * config/cris/cris.h: Removed #if 0 clause.
11517         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
11518         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
11519         argument.
11520         (ix86_sol10_return_in_memory): Likewise.
11521         (ix86_i386elf_return_in_memory): New.
11522         (ix86_i386interix_return_in_memory): New.
11523         * config/mt/mt-protos.h (mt_return_in_memory): New.
11524         * config/mt/mt.c: Likewise.
11525         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
11526         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
11527         * config/bfin/bfin.h: Likewise.
11528         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
11529         argument.
11530         * config/bfin/bfin.c: Likewise.
11531         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
11532         * config/alpha/unicosmk.h: Likewise.
11533         * config/i386/cygming.h: Likewise.
11534         * config/iq2000/iq2000.h: Likewise.
11535         * config/mips/mips.h: Likewise.
11536         * config/mn10300/mn10300.h: Likewise.
11537         * config/rs6000/rs6000.h: Likewise.
11538         * config/score/score.h: Likewise.
11539         * config/spu/spu.h: Likewise.
11540         * config/v850/v850.h: Likewise.
11541         * defaults.h: Likewise.
11542         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
11543         * expr.c (emit_block_move): Adjust use of
11544         OUTGOING_REG_PARM_STACK_SPACE.
11545         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
11546         OUTGOING_REG_PARM_STACK_SPACE.
11547         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
11548
11549 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
11550
11551         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
11552         on OMP_RETURN for OMP_FOR.
11553
11554         PR debug/35896
11555         * dwarf2out.c (dw_expand_expr, common_check): Removed.
11556         (fortran_common): New function.
11557         (gen_variable_die): Call fortran_common instead of common_check,
11558         adjust for it returning tree instead of rtx.  Formatting.
11559
11560 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
11561
11562         PR rtl/7335
11563         PR rtl/33826
11564         * see.c (see_copy_insn): Copy new pure const attributes for new call.
11565         * c-decl.c (merge_decls): Ditto.
11566         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
11567         to RTL_CONST_OR_PURE_CALL_P.
11568         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
11569         Initialized DECL_LOOPING_CONST_PURE.
11570         (process_call_operands): Set tree_side_effects properly.
11571         * tree.h (TREE_READONLY_DECL_P): Removed.
11572         (DECL_IS_PURE): Renamed to DECL_PURE_P.
11573         (DECL_LOOPING_OR_CONST_P): New macro.
11574         (struct tree_function_decl): Added looping_const_or_pure_p.
11575         (ECF_*) Renumbered.
11576         (ECF_LOOPING_OR_CONST_P): New macro.
11577         * rtlanal.c (pure_const_p): Removed.
11578         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
11579         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
11580         to RTL_CONST_CALL_P.
11581         * ipa-pure-const.c (pure_const_state_e): Added looping field.
11582         (check_decl, check_tree, check_call, scan_function): Initialize
11583         looping.
11584         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
11585         (static_execute): Set looping true for recursive functions.
11586         Undo setting state to IPA_NEITHER for recursive functions.
11587         * cse.c (cse_insn):
11588         * ifcvt.c (noce_can_store_speculate_p): Changed
11589         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
11590         RTL_CONST_OR_PURE_CALL_P.
11591         * dse.c (scan_insn): Ditto.
11592         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
11593         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
11594         RTL_CONST_OR_PURE_CALL_P.
11595         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
11596         pure_call_p to RTL_CONST_CALL_P.
11597         * gimplify.c (gimplify_call_expr): Clear side effects for
11598         non-looping pure and constant calls.
11599         * calls.c (emit_call_1): Set rtl flags from ecf flags.
11600         (flags_from_decl_or_type): Set ecf flags from decl flags.
11601         (initialize_argument_information): Turn off
11602         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
11603         Change const to pure if callee_copies is true rather than just
11604         turning off const.
11605         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
11606         way of marking pure calls.
11607         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
11608         Remove hack that was supposed to fix pr7335 and remove old
11609         way of marking pure calls.
11610         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
11611         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
11612         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
11613         RTL_CONST_OR_PURE_CALL_P.
11614         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
11615         * loop-invariant.c (find_exits, find_invariant_bb): Changed
11616         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
11617         * sched-deps.c (schedule_analyze): Ditto.
11618         * rtl.h (struct rtx_def): Use call field, unchanging field, and
11619         return_val field of calls to represent pure and const function info.
11620         (CONST_OR_PURE_CALL_P): Deleted macro.
11621         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
11622         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
11623         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
11624         TREE_READONLY.
11625         * tree-optimize.c (execute_fixup_cfg): Added test for
11626         ECF_LOOPING_CONST_OR_PURE.
11627         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
11628         DECL_PURE_P.
11629         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
11630         effects for looping pure or const calls.
11631         (verify_gimple_expr): Added verification code.
11632         * config/alpha/alpha.c (alpha_legitimize_address,
11633         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
11634         RTL_CONST_CALL_P.
11635         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
11636         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
11637         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
11638         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
11639         RTL_CONST_OR_PURE_CALL_P.
11640         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
11641         and const calls to be deleted.
11642
11643 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
11644
11645         PR target/35714
11646         * config/i386/mmx.md (mmx_subv2sf3): New expander.
11647         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
11648         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
11649         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
11650         to handle nonimmediate operands.
11651         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
11652         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
11653         to handle nonimmediate operands.
11654         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
11655         (mmx_pmulhrwv4hi3): New expander.  Use
11656         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11657         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
11658         (sse2_umulv1siv1di3): New expander.  Use
11659         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11660         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
11661         (mmx_eq<mode>3): New expander.  Use
11662         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11663         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
11664         (mmx_uavgv8qi3): New expander.  Use
11665         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11666         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
11667         (mmx_uavgv4hi3): New expander.  Use
11668         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11669
11670         * config/i386/sse.md
11671         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
11672         to handle nonimmediate operands.
11673         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
11674         to handle nonimmediate operands.
11675         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
11676         to handle nonimmediate operands.
11677         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
11678         to handle nonimmediate operands.
11679         (sse2_unpckhpd_exp): New expander.  Use
11680         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11681         (sse2_unpcklpd_exp): New expander.  Use
11682         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11683         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
11684         to handle nonimmediate operands.
11685         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
11686         to handle nonimmediate operands.
11687         (*sse2_<plusminus_insn><mode>3): Rename from
11688         sse2_<plusminus_insn><mode>3 insn pattern.
11689         (sse2_<plusminus_insn><mode>3): New expander.  Use
11690         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11691         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
11692         (sse2_umulv2siv2di3): New expander.  Use
11693         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11694         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
11695         (sse4_1_mulv2siv2di3): New expander.  Use
11696         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11697         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
11698         (sse2_pmaddwd): New expander.  Use
11699         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11700         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
11701         (sse2_eq<mode>3): New expander.  Use
11702         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11703         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
11704         (sse4_1_eqv2di3): New expander.  Use
11705         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11706         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
11707         (sse2_uavgv16qi3): New expander.  Use
11708         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11709         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
11710         (sse2_uavgv16qi3): New expander.  Use
11711         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11712         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
11713         (sse2_uavgv8hi3): New expander.  Use
11714         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11715         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
11716         (ssse3_pmulhrswv8hi3): New expander.  Use
11717         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11718         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
11719         (ssse3_pmulhrswv4hi3): New expander.  Use
11720         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11721
11722         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
11723         (<sse>_vmmul<mode>3): Ditto.
11724         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
11725         (divv2df3): Ditto.
11726         (ssse3_pmaddubsw128): Use register_operand for operand 1.
11727         (ssse3_pmaddubsw): Ditto.
11728
11729         * config/i386/i386.c (struct_builtin_description)
11730         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
11731         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
11732         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
11733         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
11734         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
11735         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
11736         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
11737         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
11738         (ix86_fixup_binary_operands): Assert that src1
11739         and src2 must have the same mode when swapped.
11740         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
11741         and ix86_binary_operator_ok.  Do not force operands in registers
11742         when optimizing.
11743
11744 2008-05-07  Jan Hubicka  <jh@suse.cz>
11745
11746         * cgraph.c (dump_cgraph_node): Update.
11747         * cgraph.h (cgraph_local_info): Break out inline summary.
11748         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
11749         hook.
11750         * ipa-inline (inline_summary): New accestor function.
11751         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
11752         cgraph_decide_inlining, compute_inline_parameters): Update.
11753         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
11754
11755 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
11756
11757         Cleanup ColdFire scheduling support and add V4 pipeline model.
11758
11759         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
11760         (define_attr cpu): Add cfv4 value.
11761         (define_attr type, define_attr type1): Merge into a single 'type'
11762         attribute.  Update all uses.
11763         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
11764         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
11765         Update all uses.
11766         (define_attr opx_mem, define_attr opy_mem): Remove.
11767         (define_attr op_mem): Clean up, update comment.
11768         (define_attr size): Use specific values instead of general int.
11769         (define_attr guess, define_attr split): Remove.  Update all uses.
11770         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
11771         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
11772         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
11773         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
11774         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
11775         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
11776         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
11777         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
11778         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
11779         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
11780         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
11781         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
11782         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
11783         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
11784         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
11785         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
11786         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
11787         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
11788         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
11789         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
11790         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
11791         Update or set attributes.
11792         (stack_tie): New fake instruction.
11793
11794         * config/m68k/m68k.h (TUNE_CFV4): New macro.
11795         (m68k_sched_attr_size): Update declaration.
11796         (m68k_sched_attr_type2): Remove.
11797         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
11798         Declare new bypass predicates.
11799
11800         * config/m68k/m68k.c (m68k_sched_issue_rate,
11801         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
11802         implementations.
11803         (TARGET_SCHED_ISSUE_RATE,
11804         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
11805         (override_options): Handle scheduling for ColdFire V4 core.
11806         (m68k_expand_prologue): Emit stack_tie.
11807         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
11808         'OP_TYPE_FPN'.  Update all uses.
11809         (sched_guess_p): Remove.
11810         (sched_address_type): Handle symbolic addresses.
11811         (sched_get_operand): New static function.
11812         (sched_operand_type): Merge into sched_attr_op_type.
11813         (sched_attr_op_type): Handle FP registers, handle quick constants,
11814         update.
11815         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
11816         (m68k_sched_attr_size): Update.  Move logic to ...
11817         (sched_get_attr_size_int): New static function.
11818         (sched_get_opxy_mem_type): New static function.
11819         (m68k_sched_attr_op_mem): Update.
11820         (m68k_sched_attr_type2): Remove.
11821         (sched_cfv4_bypass_data): New static variable.
11822         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
11823         (m68k_sched_issue_rate): Implement scheduler hook.
11824         (struct _sched_ib: enabled_p): New field.
11825         (m68k_sched_variable_issue): Update.  Handle V4.
11826         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
11827         sched_dump_class_func_t, sched_dump_split_class,
11828         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
11829         sched_dump_dfa_class, m68k_sched_dump): Remove.
11830         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
11831         hook.
11832         (m68k_sched_init_global): Remove statisctics dumping, introduce
11833         sanity check that all instructions have pipeline reservations.  Handle
11834         ColdFire V4 core.
11835         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
11836         Handle ColdFire V4 core.
11837         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
11838         New static functions.
11839         (m68k_sched_address_bypass_p): New bypass predicate.
11840         (sched_get_indexed_address_scale): New static function.
11841         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
11842
11843         * cf.md: Update comments.
11844         (define_attr type2): Remove.  Use 'type' attribute instead.
11845         Update all uses.
11846         (cf_ib): Rename to cfv123_ib.  Update all uses.
11847         (cf_oep): Rename to cfv123_oep.  Update all uses.
11848         (cf_chr): Rename to cfv123_chr.  Update all uses.
11849         (cf_mem): Rename to cfv123_mem.  Update all uses.
11850         (cf_mac): Move to more appropriate place.
11851         (cfv123_guess): New automaton and cpu_unit.
11852         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
11853         Update uses of 'size' attribute.  Handle before reload scheduling.
11854         (cfv123_guess): New dummy reservation for unhandled instructions.
11855         (cfv4_*): Pipeline description of ColdFire V4 core.
11856         (ignore): New reservation to handle 'ignore' type.
11857
11858 2008-05-07  Ian Lance Taylor  <iant@google.com>
11859
11860         PR middle-end/36013
11861         * gimplify.c (find_single_pointer_decl_1): Don't look through
11862         indirections.
11863         (find_single_pointer_decl): Adjust comments.
11864
11865 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
11866
11867         PR middle-end/36137
11868         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
11869         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
11870
11871         PR middle-end/36106
11872         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
11873         integral type rather than floating point, then VIEW_CONVERT_EXPR
11874         to the floating point type.
11875
11876 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
11877
11878         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
11879         TFmode op0 to register.
11880
11881 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
11882
11883         * c-decl.c (grokdeclarator): Comment typo.
11884
11885 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
11886
11887         * tree-flow.h: Remove prototype for computed_goto_p.
11888         * tree-cfg.c (computed_goto_p): Make static.
11889
11890 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
11891
11892         PR target/35657
11893         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
11894         (contains_aligned_value_p): This.  Handle _Decimal128.
11895         (ix86_function_arg_boundary): Only align _Decimal128 to its
11896         natural boundary and handle it properly.
11897
11898 2008-05-06  Martin Jambor  <mjambor@suse.cz>
11899
11900         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
11901         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
11902         (ipcp_method_set_orig_node): Removed.
11903         (ipcp_cval_get_cvalue_type): Removed.
11904         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
11905         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
11906         (ipcp_cval_set_cvalue_type): Removed.
11907         (ipcp_cval_get_cvalue): Removed.
11908         (ipcp_cval_set_cvalue): Removed.
11909         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
11910         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
11911         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
11912         (ipcp_cval_meet): Renamed to ipa_lattice_meet
11913         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
11914         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
11915         (ipcp_get_ith_lattice): Changed parameters.
11916         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
11917         (ipcp_lattice_from_jfunc): Changed parameters.
11918         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
11919         (ipcp_method_cval_print): Added temporary variable info.
11920         (ipcp_redirect): Removed already unused local variable caller.
11921         (ipcp_redirect): New temporary variable orig_callee_info
11922         (ipcp_redirect): Removed newly unused local variable callee.
11923         (ipcp_redirect): Removed (a bit confusing) local variable type.
11924         (ipcp_insert_stage): Added local variable info.
11925         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
11926         renamed too
11927         (ipcp_formal_create): Removed.
11928         (ipcp_method_cval_set): Removed.
11929         (ipcp_propagate_stage): Renamed lattice variables.
11930         (ipcp_method_cval_set_cvalue_type): Removed.
11931         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
11932         (ipcp_print_all_lattices): Changed printed strings to refer to
11933         lattices rather than cvals.
11934         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
11935         (ipcp_propagate_const): Changed formal parameters.
11936         (build_const_val): Changed formal parameters.
11937         (ipcp_insert_stage): Removed useless variable cvalue
11938         (build_const_val): Changed formal parameters.
11939         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
11940         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
11941         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
11942         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
11943         (ipcp_print_func_profile_counts): Changed string from "method" to
11944         "function"
11945         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
11946         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
11947         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
11948         (ipcp_structures_print): Renamed to ipcp_print_all_structures
11949         (ipcp_profile_print): Renamed to ipcp_print_profile_data
11950         (ipcp_lat_is_const): Changed parameters and made inline.
11951         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
11952         (ipcp_redirect): Renamed to ipcp_need_redirect_p
11953         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
11954         the predicate condition directly
11955         (ipcp_propagate_stage): Added local variable args. Removed local
11956         variable callee.  (Both are mere code simplifications.)
11957         (ipcp_method_dont_insert_const): Renamed to
11958         ipcp_node_not_modifiable_p.
11959         (ipcp_node_not_modifiable_p): Made inline.
11960         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
11961         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
11962         (ipcp_print_all_lattices): Removed variable cvalue
11963         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
11964         Updated comments.
11965
11966 2008-05-06  Olivier Hainque  <hainque@adacore.com>
11967
11968         * tree-sra.c (try_instantiate_multiple_fields): Early return
11969         if field has POINTER_TYPE.
11970
11971 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
11972
11973         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
11974         by using 'q' specifier for instruction.
11975         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
11976
11977 2008-05-06  Anatoly Sokolov <aesok@post.ru>
11978
11979         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
11980         Change mode of zero_extract from QImode to HImode.
11981         (sign bit tests peepholes): (Ditto.).
11982
11983 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
11984
11985         * config/i386/mmx.md: Remove double backslashes from asm templates.
11986         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
11987         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
11988         to handle nonimmediate operands.
11989         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
11990         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
11991         to handle nonimmediate operands.
11992         (*mmx_<code>v2sf3_finite): New insn pattern.
11993         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
11994         (mmx_<code>v2sf3): New expander.  Use
11995         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11996         (mmx_<plusminus_insn><mode>3): New expander.  Use
11997         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
11998         (*mmx_<plusminus_insn><mode>3): New insn pattern.
11999         (mmx_add<mode>3): Removed.
12000         (mmx_ssadd<mode>3): Ditto.
12001         (mmx_usadd<mode>3): Ditto.
12002         (mmx_sub<mode>3): Ditto.
12003         (mmx_sssub<mode>3): Ditto.
12004         (mmx_ussub<mode>3): Ditto.
12005         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
12006         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
12007         to handle nonimmediate operands.
12008         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
12009         insn pattern.
12010         (mmx_smulv4hi3_highpart): New expander.  Use
12011         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12012         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
12013         insn pattern.
12014         (mmx_umulv4hi3_highpart): New expander.  Use
12015         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12016         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
12017         (mmx_<code>v4hi3): New expander.  Use
12018         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12019         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
12020         (mmx_<code>v8qi3): New expander.  Use
12021         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12022         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
12023         (mmx_<code><mode>3): New expander.  Use
12024         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12025
12026 2008-05-05  Jan Hubicka  <jh@suse.cz>
12027
12028         PR tree-optimization/36118
12029         * passes.c (pass_init_dump_file): Fix dump header.
12030
12031 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12032
12033         PR middle-end/36141
12034         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
12035         VCE for function decls.
12036
12037 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
12038
12039         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
12040
12041 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
12042
12043         * config/i386/i386.md (sat_plusminus): New.
12044         (plusminus_insn): Likewise.
12045         (plusminus_mnemonic): Likewise.
12046         (addsub): Removed.
12047         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
12048         (*<addsub><mode>3_cc_overflow): Renamed to ...
12049         (*<plusminus_insn><mode>3_cc_overflow): This.
12050         (*<addsub>si3_zext_cc_overflow): Renamed to ...
12051         (*<plusminus_insn>si3_zext_cc_overflow): This.
12052
12053         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
12054         (<plusminus_insn><mode>3): This.
12055         (*<addsub><mode>3): Renamed to ...
12056         (*<plusminus_insn><mode>3): This.
12057         (<sse>_vm<addsub><mode>3): Renamed to ...
12058         (<sse>_vm<plusminus_insn><mode>3): This.
12059         (sse3_h<addsub>v4sf3): Renamed to ...
12060         (sse3_h<plusminus_insn>v4sf3): This.
12061         (sse3_h<addsub>v2df3): Renamed to ...
12062         (sse3_h<plusminus_insn>v2df3): This.
12063         (<plusminus_insn><mode>3): New.
12064         (*<plusminus_insn><mode>3): Likewise.
12065         (sse2_<plusminus_insn><mode>3): Likewise.
12066         (add<mode>): Removed.
12067         (*add<mode>3): Likewise.
12068         (sse2_ssadd<mode>3): Likewise.
12069         (sse2_usadd<mode>3): Likewise.
12070         (sub<mode>3): Likewise.
12071         (*sub<mode>3): Likewise.
12072         (sse2_sssub<mode>3): Likewise.
12073         (sse2_ussub<mode>3): Likewise.
12074
12075 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
12076
12077         * gthr-single.h: Add in required interface elements as per gthr.h.
12078         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
12079         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
12080         Generalize UNUSED macro.
12081         (__gthread_once): Add.
12082         (__gthread_key_create): Add.
12083         (__gthread_key_delete): Add.
12084         (__gthread_getspecific): Add.
12085         (__gthread_setspecific): Add.
12086
12087 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
12088
12089         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
12090         the same size types for the indirect reference on the rhs, then
12091         create a VCE.
12092
12093 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
12094
12095         * config/i386/i386.md
12096         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
12097         one insn template instead of template series.
12098         (*xordi_1_rex64): Ditto.
12099         (*xordi_2_rex64): Ditto.
12100
12101 2008-05-05  Ira Rosen  <irar@il.ibm.com>
12102
12103         PR tree-optimization/36119
12104         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
12105         in case of SLP.
12106
12107 2008-06-04  Jan Hubicka  <jh@suse.cz>
12108
12109         tree-optimization/36100
12110         * tree-pass.h (pass_O0_always_inline): Declare.
12111         * ipa-inline.c (inline_transform): Remove dead code.
12112         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
12113         pass_O0_always_inline): New.
12114         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
12115
12116 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
12117
12118         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
12119         mnemonic in this_param move for TARGET_64BIT.
12120
12121 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
12122
12123         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
12124         (*strmovsi_rex_1): Ditto.
12125         (*strsetsi_1): Ditto.
12126         (*strsetsi_rex_1): Ditto.
12127
12128         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
12129         adddicc expanders using SWI mode iterator.
12130
12131 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
12132
12133         PR target/36121
12134         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
12135         argument handling.
12136
12137 2008-05-04  David S. Miller  <davem@davemloft.net>
12138
12139         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
12140         (sparc*-*-linux*): Use linux.h in tm_file.
12141         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
12142         compiler defaulting to 32-bit.
12143         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
12144         no longer needed.
12145         * config/sparc/linux.h: Remove definitions now obtained
12146         properly from linux.h
12147         * config/sparc/linux64.h: Likewise.
12148         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
12149         don't want this setting for 32-bit builds in a biarch compiler.
12150         * doc/install.texi: Add sparc-linux to list of targets
12151         supporting --enable-targets=all.
12152
12153 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
12154
12155         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
12156
12157 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
12158
12159         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
12160         after V4SI_FTYPE_V8HI.
12161         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
12162         case V4SI_FTYPE_V2DF.
12163
12164 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
12165
12166         * doc/invoke.texi (max-flow-memory-locations): Removed.
12167         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
12168
12169 2008-05-03  Richard Guenther  <rguenther@suse.de>
12170
12171         PR middle-end/34973
12172         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
12173
12174 2008-05-02  David S. Miller  <davem@davemloft.net>
12175
12176         * config.gcc (need_64bit_hwint): Document libcpp dependency.
12177
12178 2008-05-02  Simon Baldwin <simonb@google.com>
12179
12180         PR bootstrap/36108
12181         * c-common.h (warn_array_subscript_range): Removed.
12182         * c-common.c (warn_array_subscript_range): Ditto.
12183         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
12184         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
12185
12186 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
12187
12188         * config/i386/i386.c (ix86_special_builtin_type): New.
12189         (bdesc_special_args): Likewise.
12190         (ix86_expand_special_args_builtin): Likewise.
12191         (ix86_init_mmx_sse_builtins): Updated.
12192         (ix86_expand_builtin): Updated.
12193         (ix86_expand_store_builtin): Removed.
12194         (ix86_expand_unop_builtin): Likewise.
12195
12196         * config/i386/mm3dnow.h (__v2sf): Moved to ...
12197         * config/i386/mmintrin.h (__v2sf): Here.
12198
12199         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
12200         const __v2sf.
12201         (_mm_loadl_pi): Likewise.
12202         (_mm_storeh_pi): Replace __v2si with __v2sf.
12203         (_mm_storel_pi): Likewise.
12204
12205         * doc/extend.texi: Correct __builtin_ia32_loadhps,
12206         __builtin_ia32_loadlps, __builtin_ia32_storehps,
12207         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
12208         __builtin_ia32_loadlpd.
12209
12210 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
12211
12212         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
12213         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
12214         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
12215         (ix86_init_mmx_sse_builtins): Updated.
12216         (ix86_expand_args_builtin): Likewise.
12217         (ix86_expand_builtin): Likewise.
12218         (ix86_expand_unop1_builtin): Renamed to ...
12219         (ix86_expand_unop_vec_merge_builtin): This.
12220
12221 2008-05-01  Jan Hubicka  <jh@suse.cz>
12222
12223         PR bootstrap/36100
12224         * ipa-inline.c (inline_generate_summary): Make static.
12225         (inline_transform): Do not call inlining at -O0; make static.
12226         * passes.c (execute_todo): Add sanity check.
12227         (execute_one_ipa_transform_pass): Execute proper flags.
12228
12229 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
12230
12231         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
12232         (DECL_NONADDRESSABLE_P): Likewise.
12233         * alias.c (record_component_aliases): Fix comment.
12234
12235 2008-05-01  Simon Baldwin <simonb@google.com>
12236
12237         * c-common.h (warn_array_subscript_range): New function.
12238         * c-common.c (warn_array_subscript_range): Ditto.
12239         * tree-vrp.c (check_array_ref): Corrected code to agree with
12240         comment, ignoring only arrays of size 0 or size 1.
12241         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
12242
12243 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
12244
12245         * config/i386/i386.c (ix86_builtin_type): Replace
12246         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
12247         (bdesc_args): Updated.
12248         (ix86_init_mmx_sse_builtins): Likewise.
12249         (ix86_expand_args_builtin): Likewise.
12250
12251         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
12252         with __v1di.
12253
12254         * doc/extend.texi: Correct __builtin_ia32_palignr.
12255
12256 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
12257
12258         PR target/36095
12259         * config/i386/i386.c (bdesc_crc32): Removed.
12260         (ix86_expand_crc32): Likewise.
12261         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
12262         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
12263         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
12264         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
12265         UINT_FTYPE_UINT_UCHAR.
12266         (bdesc_args): Updated. Add crc32 builtins.
12267         (ix86_init_mmx_sse_builtins): Updated.
12268         (ix86_expand_args_builtin): Updated to support subreg.
12269
12270         * doc/extend.texi: Correct __builtin_ia32_crc32di.
12271
12272 2008-05-01  Jan Hubicka  <jh@suse.cz>
12273
12274         * tree-pass.h (opt_pass): Add IPA_PASS.
12275         (varpool_node, cgraph_node): Forward declare.
12276         (ipa_opt_pass): Define.
12277         (pass_ipa_inline): Turn into ipa_opt_pass.
12278         (pass_apply_inline): Remove.
12279         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
12280         (apply_inline): Turn into ....
12281         (inline_transform): ... this one.
12282         (inline_generate_summary): New function.
12283         (pass_apply_inline): Remove.
12284         * function.h (ipa_opt_pass): Forward declare structure; typedef;
12285         vector.
12286         (struct function): Add ipa_transforms_to_apply.
12287         * passes.c (register_one_dump_file): Work on IPA_PASS.
12288         (init_optimization_passes): Remove pass_inline_parameters and
12289         pass_apply_inline.
12290         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
12291         (execute_one_pass) ... here; apply transforms when possible.
12292         (add_ipa_transform_pass, execute_ipa_summary_asses,
12293         execute_one_ipa_transform_pass): New.
12294         (execute_ipa_pass_list): Update for IPA_PASS type.
12295
12296 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
12297
12298         * config/i386/i386.c (ix86_builtin_type): Add
12299         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
12300         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
12301         (bdesc_args): Add SSE4a builtins.
12302         (ix86_init_mmx_sse_builtins): Updated.
12303         (ix86_expand_args_builtin): Likewise.
12304         (ix86_expand_builtin): Likewise.
12305
12306 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
12307
12308         * config/i386/i386.c (ix86_builtin_type): Add
12309         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
12310         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
12311         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
12312         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
12313         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
12314         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
12315         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
12316         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
12317         and DI_FTYPE_DI_DI_INT.
12318         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
12319         (ix86_init_mmx_sse_builtins): Updated.
12320         (ix86_expand_args_builtin): Likewise.
12321         (ix86_expand_builtin): Likewise.
12322         (ix86_expand_binop_imm_builtin): Removed.
12323
12324         * doc/extend.texi: Correct __builtin_ia32_palignr128.
12325
12326 2008-04-30  Richard Guenther  <rguenther@suse.de>
12327
12328         PR tree-optimization/32921
12329         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
12330
12331 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
12332
12333         * config/arm/arm.c (arm_unwind_emit): Use
12334         crtl->all_throwers_are_sibcalls instead of
12335         cfun->all_throwers_are_sibcalls.
12336         (arm_output_fn_unwind): Likewise.
12337         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
12338         instead of cfun->uses_pic_offset_table.
12339         (frv_expand_prologue): Likewise.
12340         (frv_frame_pointer_required): Likewise.
12341         (frv_expand_fdpic_call): Likewise.
12342         (frv_emit_movsi): Likewise.
12343         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
12344         cfun->returns_pcc_struct instead of
12345         current_function_returns_pcc_struct.
12346         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
12347         instead of cfun->calls_eh_return.
12348         (m32c_pushm_popm): Likewise.
12349         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
12350         "extern" declaration.
12351
12352 2008-04-30  Richard Guenther  <rguenther@suse.de>
12353
12354         PR tree-optimization/21636
12355         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
12356         constant address.
12357         (evaluate_stmt): Print the likely value.
12358         (ccp_visit_stmt): Avoid excessive vertical spacing.
12359
12360 2008-04-30  Rafael Espindola  <espindola@google.com>
12361
12362         * builtins.c (fold_call_expr): Return realret.
12363         * tree-ssa-threadedge.c
12364         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
12365         __builtin_object_size.
12366
12367 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
12368
12369         * gcc.c (wrapper_string): New variable.
12370         (insert_wrapper): New function.
12371         (execute): New option -wrapper.
12372         * doc/invoke.texi (Overall Options): New driver option -wrapper.
12373
12374 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
12375
12376         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
12377         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
12378         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
12379         from...
12380         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
12381         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
12382         config/rs6000/e500crtres64gprctr.asm,
12383         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
12384         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
12385         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
12386         config/rs6000/e500crtsav64gprctr.asm,
12387         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
12388         config/rs6000/e500crtsavg64gprctr.asm: New files.
12389         * config/rs6000/t-ppccomm: Add build rules for new files.
12390         (LIB2FUNCS_STATIC_EXTRA): Add new files.
12391         * config/rs6000/t-netbsd: Add build rules for new files.
12392         (LIB2FUNCS_STATIC_EXTRA): New variable.
12393         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
12394         (CRTSAVRES_DEFAULT_SPEC): Likewise.
12395         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
12396
12397 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
12398
12399         * config/i386/i386.c (ix86_builtin_type): Add
12400         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
12401         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
12402         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
12403         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
12404         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
12405         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
12406         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
12407         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
12408         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
12409         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
12410         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
12411         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
12412         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
12413         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
12414         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
12415         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
12416         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
12417         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
12418         V1DI_FTYPE_V2SI_V2SI.
12419         (bdesc_2arg): Moved to ...
12420         (bdesc_args): Here.
12421         (ix86_init_mmx_sse_builtins): Updated.
12422         (ix86_expand_args_builtin): Updated.  Take a pointer
12423         to const struct builtin_description.  Handle comparison
12424         builtin functions.
12425         (ix86_expand_sse_compare): Take a new argument for swapping operands.
12426         (ix86_expand_builtin): Updated.
12427
12428         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
12429         (ssse3_pmaddubsw128): This.
12430         (ssse3_pmaddubswv4hi3): Renamed to ...
12431         (ssse3_pmaddubsw): This.
12432
12433         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
12434         (__builtin_ia32_packssdw128): Likewise.
12435         (__builtin_ia32_packuswb128): Likewise.
12436         (__builtin_ia32_pmaddubsw): Likewise.
12437         (__builtin_ia32_pmaddubsw128): Likewise.
12438
12439 2008-04-30  Richard Guenther  <rguenther@suse.de>
12440
12441         PR tree-optimization/14847
12442         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
12443         (recognize_bits_test): Use it.
12444         (recognize_single_bit_test): Likewise.
12445
12446 2008-04-30  Martin Jambor  <mjambor@suse.cz>
12447
12448         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
12449         instead of setting number of formal parameters to zero.
12450         (ipcp_init_stage): Do not set the number of actual parameters to zero
12451         either.
12452         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
12453         which are called with variable number of arguments.
12454         (ipcp_insert_stage): Explicitely skipping all nodes which are
12455         called with variable number of arguments.
12456         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
12457         number of parameters.
12458
12459         * ipa-prop.h (struct ipa_node_params): Added flag
12460         called_with_var_arguments
12461         (ipa_set_param_count): Added.  Changed sole setter to use it.
12462         (ipa_get_param_count): Added.  All readers of param_count
12463         converted to use it instead.
12464         (ipa_set_called_with_variable_arg): Added.
12465         (ipa_is_called_with_var_arguments): Added.
12466         (ipa_get_ith_param): Added.  All readers of param_decls converted
12467         to use it instead.
12468         (ipa_set_cs_argument_count): Added, sole writer to argument_count
12469         changed to use it.
12470         (ipa_get_cs_argument_count): Added, all readers of argument_count
12471         changed to cal it.
12472         (ipa_get_ith_jump_func): Added. Accessors of jump values changed
12473         to use it.
12474
12475         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
12476         (struct ipcp_lattice): Renamed cval_type to type
12477         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
12478
12479         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
12480         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
12481         (ipcp_insert_stage): Changed the type of variable cvalue to tree
12482         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
12483         (build_const_val): Changed the type of parameter cvalue to tree
12484         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
12485         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
12486
12487         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
12488         constant
12489
12490         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
12491         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
12492         (ipa_add_method): Renamed to ipa_push_func_to_list
12493         (ipa_remove_method): Renamed to ipa_pop_func_from_list
12494         (ipa_callsite_param_count): Removed.
12495         (ipa_callsite_param_count_set): Removed.
12496         (ipa_callsite_param): Removed.
12497         (ipa_callsite_callee): Removed.
12498         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
12499         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
12500         (ipa_method_formal_count): Removed.
12501         (ipa_method_formal_count_set): Removed.
12502         (ipa_method_get_tree): Removed.
12503         (ipa_method_tree_map_create): Removed.
12504         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
12505         (ipa_create_param_decls_array): Creates the array itself
12506         (ipa_create_param_decls_array): Temporary variable info instead of
12507         a few dereferences.
12508         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
12509         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
12510         (get_type): Removed.
12511         (ipa_jf_get_info_type): Removed.
12512         (ipa_node_create): Renamed to ipa_create_node_params
12513         (ipa_free): Renamed to ipa_free_all_node_params
12514         (ipa_nodes_create): Renamed to ipa_create_all_node_params
12515         (ipa_edges_create): Renamed to ipa_create_all_edge_args
12516         (ipa_edges_free): Renamed to ipa_free_all_edge_args
12517         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
12518         (ipa_free_all_node_params): Deallocation to jump_functions moved to
12519         ipa_free_all_edge_args
12520         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
12521         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
12522         (ipa_create_methodlist_node): Removed.
12523         (ipa_methodlist_method): Removed.
12524         (ipa_methodlist_method_set): Removed.
12525         (ipa_methodlist_next_method): Removed.
12526         (ipa_methodlist_next_method_set): Removed.
12527         (ipa_method_is_modified): Removed.
12528         (ipa_method_modify_create): Removed.
12529         (ipa_method_modify_init): Temporary variable info instead of a few
12530         dereferences.
12531         (ipa_detect_param_modifications): Temporary variable info instead of
12532         a few dereferences.
12533         (ipa_compute_jump_functions): Temporary variable info instead of
12534         a few dereferences.
12535         (ipa_method_modify_set): Removed.
12536         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
12537         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
12538         than craph_node as the first parameter.
12539         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
12540         (ipa_method_modify_init): Removed.
12541         (ipa_compute_jump_functions): Added a temp variable instead of
12542         repeatadly dereferencing the cgraph_edge.aux pointer
12543         (ipa_callsite_param_set_type): Removed.
12544         (ipa_compute_jump_functions): i renamed to index and moved to
12545         an inner block
12546         (ipa_callsite_param_set_info_type_formal): Removed.
12547         (ipa_callsite_param_set_info_type): Removed.
12548         (ipa_callsite_param_map_create): Removed.
12549         (ipa_callsite_tree): Removed.
12550         (ipa_callsite_caller): Removed.
12551         (ipa_pop_func_from_list): return_method removed to return_func
12552
12553         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
12554         prefixed all values with IPA_. Changed all users.
12555         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
12556         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
12557         and FORMAL_IPATYPE IPA_PASS_THROUGH.
12558         (union parameter_info): Renamed to jump_func_value.
12559         (union jump_func_value): Renamed value to constant
12560         (struct ipa_jump_func): Renamed info_type to value
12561         (struct ipa_node): Renamed to ipa_node_params
12562         (struct ipa_node_params): Renamed ipa_arg_num to param_count
12563         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
12564         (struct ipa_node_params): Renamed ipa_mod to modified_flags
12565         (struct ipa_edge): Renamed to ipa_edge_args
12566         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
12567         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
12568         (struct ipa_methodlist): Renamed to ipa_func_list
12569         (struct ipa_func_list): method_p renamed to node, next_method
12570         renamed to next
12571         (ipa_methodlist_p): Removed, switched all users to struct pointer
12572         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
12573
12574 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
12575
12576         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
12577         (rs6000_emit_epilogue): Use backchain to restore only when we
12578         have a large frame.  Make use of frame pointer to restore if we
12579         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
12580
12581 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
12582
12583         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
12584         Add mode to zero_extract.
12585         (sign bit tests peepholes): (Ditto.).
12586
12587 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
12588
12589         * config/i386/i386.c (ix86_builtins): Replace Prescott New
12590         Instructions in comments with SSE3.
12591         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
12592         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
12593         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
12594         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
12595         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
12596         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
12597         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
12598         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
12599         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
12600         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
12601         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
12602         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
12603         (bdesc_sse_args): Renamed to ...
12604         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
12605         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
12606         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
12607         IX86_BUILTIN_FABSQ.
12608         (bdesc_1arg): Moved to ...
12609         (bdesc_args): Here.
12610         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
12611         Instructions in comments with SSE3.
12612         (ix86_expand_sse_operands_builtin): Renamed to ...
12613         (ix86_expand_args_builtin): This.  Updated.
12614         (ix86_expand_unop1_builtin): Update comments.
12615         (ix86_expand_builtin): Updated.
12616
12617 2008-04-29  Richard Guenther  <rguenther@suse.de>
12618
12619         PR tree-optimization/36078
12620         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
12621         Update virtual SSA form after cleaning up the CFG.
12622
12623 2008-04-29  Richard Guenther  <rguenther@suse.de>
12624
12625         PR middle-end/15255
12626         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
12627
12628 2008-04-29  Richard Guenther  <rguenther@suse.de>
12629
12630         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
12631         (compute_may_aliases): Do not call finalize_ref_all_pointers.
12632         (compute_flow_insensitive_aliasing): Do not treat
12633         PTR_IS_REF_ALL pointers special.
12634         (get_smt_for): Likewise.
12635         (may_alias_p): Re-structure.
12636         (is_escape_site): A ref-all pointer conversion is not an escape site.
12637         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
12638         PTR_IS_REF_ALL pointers special.
12639         * tree-ssa-structalias.h (struct alias_info): Remove
12640         ref_all_symbol_mem_tag field.
12641         (PTR_IS_REF_ALL): Remove.
12642
12643 2008-04-29  Richard Guenther  <rguenther@suse.de>
12644
12645         PR middle-end/36077
12646         * fold-const.c (extract_muldiv_1): In combining division constants
12647         make sure to never overflow.
12648
12649 2008-04-29  Nick Clifton  <nickc@redhat.com>
12650
12651         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
12652
12653 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12654
12655         PR bootstrap/35169
12656         * optc-gen.awk: Work around HP-UX/IA awk bug.
12657
12658 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
12659
12660         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
12661         2008-04-25 commit.
12662
12663 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
12664
12665         PR target/36073
12666         * config/i386/i386.md
12667         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
12668         Change operand 1 predicate to nonimmediate_operand.
12669
12670 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
12671
12672         PR debug/36060
12673         * dwarf2out.c (struct die_struct): Mark as chain_circular through
12674         die_sub field.
12675         * gengtype.c (walk_type, write_func_for_structure): Handle
12676         chain_circular.
12677         * doc/gty.texi: Document chain_circular.
12678
12679 2008-04-28  Richard Guenther  <rguenther@suse.de>
12680
12681         PR tree-optimization/36066
12682         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
12683         SCEV and loop.
12684
12685 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
12686
12687         PR target/36064
12688         * config/i386/i386.md
12689         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
12690         Use match_scratch instead of match_operand for operands 3 and 4.
12691
12692 2008-04-27  Richard Guenther  <rguenther@suse.de>
12693
12694         PR tree-optimization/18754
12695         PR tree-optimization/34223
12696         * tree-pass.h (pass_complete_unrolli): Declare.
12697         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
12698         loop size before and after unconditionally of UL_NO_GROWTH in effect.
12699         Rewrite loop into loop closed SSA form if it is not already.
12700         (tree_unroll_loops_completely): Re-structure to iterate over
12701         innermost loops with intermediate CFG cleanups.
12702         Unroll outermost loops only if requested or the code does not grow
12703         doing so.
12704         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
12705         loops are available.
12706         (tree_vectorize): Instead do so here.
12707         (tree_complete_unroll): Also unroll outermost loops.
12708         (tree_complete_unroll_inner): New function.
12709         (gate_tree_complete_unroll_inner): Likewise.
12710         (pass_complete_unrolli): New pass.
12711         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
12712         uses outside of the loop.
12713         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
12714         form if it is available.
12715         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
12716         * passes.c (init_optimization_passes): Schedule complete inner
12717         loop unrolling pass before the first CCP pass after final inlining.
12718
12719 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
12720
12721         * targhooks.h (default_emutls_var_fields,
12722         default_emutls_var_init): Declare.
12723         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
12724         * target.h (struct gcc_target): Add struct emutls member.
12725         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
12726         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
12727         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
12728         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
12729         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
12730         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
12731         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
12732         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
12733         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
12734         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
12735         emit debug information.
12736         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
12737         * varasm.c: Include targhooks.h.
12738         (emutls_object_section, emutls_tmpl_section): New.
12739         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
12740         (EMUTLS_SEPARATOR): New.
12741         (prefix_name): New.
12742         (get_emutls_object_name): New.
12743         (default_emutls_var_fields): New, broken out of ...
12744         (get_emutls_object_type): ... here.  Adjust to use target hooks.
12745         (get_emutls_init_templ_addr): Adjust to use target hooks.
12746         (emutls_decl): Adjust to use target hooks.
12747         (emutls_finish): Likewise.
12748         (default_emutls_var_init): New, broken out of ...
12749         (assemble_variable): ... here.  Adjust to use target hooks.
12750         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
12751         SECCAT_EMUTLS_TMPL.
12752         * c-common.c (handle_section_attribute): Prevent overriding
12753         sections for emulated tls with special sections.
12754         * config/i386/i386.c (x86_64_elf_select_section): Add
12755         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
12756         (x86_64_elf_unique_section): Likewise.
12757         * config/vxworks.c: Include tree.h.
12758         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
12759         (vxworks_override_options): Set TLS scheme.
12760         * doc/tm.texi (Emulated TLS): New node.
12761
12762 2008-04-26  Simon Baldwin <simonb@google.com>
12763
12764         PR c/35652
12765         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
12766         with propagated string constants.
12767
12768 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
12769
12770         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
12771         constraint for operand 2 when operand 0 is memory operand.
12772         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
12773         operand 0 is memory operand.
12774         (fix_trunc<mode>_i387_with_temp): Ditto.
12775         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
12776         operand 2 when operand 1 is memory operand.
12777         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
12778         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
12779         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
12780         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
12781         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
12782         operands 2,3 and 4 when operand 1 is memory operand.
12783         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
12784         is memory operand.
12785         (fistdi2_floor_with_temp): Ditto.
12786         (fist<mode>2_floor_with_temp): Ditto.
12787         (fistdi2_ceil_with_temp): Ditto.
12788         (fist<mode>2_ceil_with_temp): Ditto.
12789         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
12790
12791 2008-04-26  David Daney  <ddaney@avtrex.com>
12792
12793         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
12794         unspec_volitile.
12795         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
12796         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
12797         UNSPEC_UPDATE_GOT_VERSION): Renumber.
12798         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
12799         (compare_and_swap_12): New insn.
12800         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
12801         * config/mips/mips.c (mips_force_binary): New function.
12802         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
12803         (mips_expand_compare_and_swap_12): New function.
12804         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
12805
12806 2008-04-25  Jan Hubicka  <jh@suse.cz>
12807
12808         PR testsuite/35843
12809         * cfgexpand.c (pass_expand): Turn into RTL pass.
12810         * passes.c (execute_one_pass): Do pass typechecking after execution.
12811         * tree-pass.h (pass_expand): Turn into RTL pass.
12812
12813         * function.h (struct rtl_data): Move here fields
12814         accesses_prior_frames, calls_eh_return, saves_all_registers,
12815         has_nonlocal_goto, has_asm_statement, is_thunk,
12816         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
12817         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
12818         arg_pointer_save_area_init from struct function; turn into bool.
12819         (struct function): Move
12820         calls_eh_return, saves_all_registers, has_nonlocal_goto,
12821         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
12822         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
12823         tail_call_emit, arg_pointer_save_area_init
12824         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
12825         (current_function_returns_struct, current_function_returns_pcc_struct,
12826         current_function_calls_setjmp, current_function_calls_alloca,
12827         current_function_accesses_prior_frames,
12828         current_function_calls_eh_return, current_function_is_thunk,
12829         current_function_stdarg, current_function_profile,
12830         current_function_limit_stack, current_function_uses_pic_offset_table,
12831         current_function_uses_const_pool, current_function_has_nonlocal_label,
12832         current_function_saves_all_registers,
12833         current_function_has_nonlocal_goto,
12834         current_function_has_asm_statement): Remove accesor macros.
12835         * ra-conflict.c (global_conflicts): Update.
12836         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
12837         (suitable_for_tail_call_opt_p): Update.
12838         * builtins.c (expand_builtin_return_addr): Update.
12839         (expand_builtin_setjmp_setup): Update.
12840         (expand_builtin_nonlocal_goto): Update.
12841         * final.c (final_start_function): Update.
12842         (profile_function): Update.
12843         (leaf_function_p): Update.
12844         (only_leaf_regs_used): Update.
12845         * df-scan.c (df_get_exit_block_use_set): Update.
12846         * dojump.c (clear_pending_stack_adjust): Update.
12847         * tree-stdarg.c (gate_optimize_stdarg): Update.
12848         * gimple-low.c (lower_function_body): Update.
12849         * global.c (compute_regsets): Update.
12850         (global_alloc): Update.
12851         * dwarf2out.c (dwarf2out_begin_prologue): Update.
12852         * expr.c (expand_assignment): Update.
12853         * dse.c (dse_step0): Update.
12854         (dse_step1): Update.
12855         * c-decl.c (store_parm_decls): Update.
12856         * local-alloc.c (combine_regs): Update.
12857         (find_free_reg): Update.
12858         * function.c (assign_parms_augmented_arg_list): Update.
12859         (assign_parm_find_data_types): Update.
12860         (assign_parms): Update.
12861         (allocate_struct_function): Update.
12862         (expand_function_start): Update.
12863         (expand_function_end): Update.
12864         (get_arg_pointer_save_area): Update.
12865         (thread_prologue_and_epilogue_insns): Update.
12866         (rest_of_match_asm_constraints): Update.
12867         * stor-layout.c (variable_size): Update.
12868         * gcse.c (gcse_main): Update.
12869         (bypass_jumps): Update.
12870         * gimplify.c (gimplify_function_tree): Update.
12871         * calls.c (emit_call_1): Update.
12872         (expand_call): Update.
12873         * bt-load.c (compute_defs_uses_and_gen): Update.
12874         * except.c (sjlj_assign_call_site_values): Update.
12875         (sjlj_emit_function_enter): Update.
12876         (can_throw_external): Update.
12877         (set_nothrow_function_flags): Update.
12878         (expand_builtin_unwind_init): Update.
12879         (expand_eh_return): Update.
12880         (convert_to_eh_region_ranges): Update.
12881         (output_function_exception_table): Update.
12882         * emit-rtl.c (gen_tmp_stack_mem): Update.
12883         * cfgexpand.c (expand_used_vars): Update.
12884         (tree_expand_cfg): Update.
12885         * cfgcleanup.c (rest_of_handle_jump): Update.
12886         * explow.c (allocate_dynamic_stack_space): Update.
12887         * varasm.c (assemble_start_function): Update.
12888         (force_const_mem): Update.
12889         (mark_constant_pool): Update.
12890         * tree-optimize.c (tree_rest_of_compilation): Update.
12891         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
12892         * tree-cfg.c (notice_special_calls): Update.
12893         (is_ctrl_altering_stmt): Update.
12894         (tree_can_make_abnormal_goto): Update.
12895         (tree_purge_dead_abnormal_call_edges): Update.
12896         * config/alpha/predicates.md: Update.
12897         * config/alpha/alpha.c (alpha_sa_mask): Update.
12898         (alpha_sa_size): Update.
12899         (alpha_does_function_need_gp): Update.
12900         (alpha_expand_prologue): Update.
12901         (alpha_start_function): Update.
12902         (alpha_output_function_end_prologue): Update.
12903         (alpha_expand_epilogue): Update.
12904         * config/frv/frv.c (frv_stack_info): Update.
12905         (frv_expand_epilogue): Update.
12906         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
12907         (s390_register_info): Update.
12908         (s390_frame_info): Update.
12909         (s390_init_frame_layout): Update.
12910         (s390_can_eliminate): Update.
12911         (save_gprs): Update.
12912         * config/spu/spu.c (spu_split_immediate): Update.
12913         (need_to_save_reg): Update.
12914         (spu_expand_prologue): Update.
12915         (spu_expand_epilogue): Update.
12916         * config/sparc/sparc.md: Update.
12917         * config/sparc/sparc.c (eligible_for_return_delay): Update.
12918         (sparc_tls_got): Update.
12919         (legitimize_pic_address): Update.
12920         (sparc_emit_call_insn): Update.
12921         (sparc_expand_prologue): Update.
12922         (output_return): Update.
12923         (print_operand): Update.
12924         (sparc_function_ok_for_sibcall): Update.
12925         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
12926         * config/m32r/m32r.md: Update.
12927         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
12928         (m32r_compute_frame_size): Update.
12929         (m32r_expand_prologue): Update.
12930         (m32r_expand_epilogue): Update.
12931         (m32r_legitimize_pic_address): Update.
12932         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
12933         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
12934         * config/i386/i386.c (ix86_frame_pointer_required): Update.
12935         (gen_push): Update.
12936         (ix86_save_reg): Update.
12937         (ix86_compute_frame_layout): Update.
12938         (ix86_expand_prologue): Update.
12939         (ix86_expand_epilogue): Update.
12940         * config/sh/sh.c (output_stack_adjust): Update.
12941         (calc_live_regs): Update.
12942         (sh5_schedule_saves): Update.
12943         (sh_expand_prologue): Update.
12944         (sh_expand_epilogue): Update.
12945         (sh_setup_incoming_varargs): Update.
12946         (sh_allocate_initial_value): Update.
12947         (sh_get_pr_initial_val): Update.
12948         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
12949         * config/sh/sh.md (label:): Update.
12950         * config/avr/avr.c (out_movhi_mr_r): Update.
12951         * config/crx/crx.h (enum): Update.
12952         * config/xtensa/xtensa.h (along): Update.
12953         * config/stormy16/stormy16.c Update.
12954         (xstormy16_compute_stack_layout): Update.
12955         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
12956         (fr30_expand_prologue): Update.
12957         * config/cris/cris.c (cris_conditional_register_usage): Update.
12958         (cris_reg_saved_in_regsave_area): Update.
12959         (cris_initial_frame_pointer_offset): Update.
12960         (cris_simple_epilogue): Update.
12961         (cris_expand_prologue): Update.
12962         (cris_expand_epilogue): Update.
12963         (cris_expand_pic_call_address): Update.
12964         (cris_asm_output_symbol_ref): Update.
12965         (cris_asm_output_label_ref): Update.
12966         * config/cris/cris.md Update.
12967         * config/iq2000/iq2000.c (compute_frame_size): Update.
12968         (iq2000_expand_epilogue): Update.
12969         * config/mt/mt.h (save_direction): Update.
12970         * config/mn10300/mn10300.c (mn10300_function_value): Update.
12971         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
12972         (ia64_secondary_reload_class): Update.
12973         * config/m68k/m68k.c (m68k_save_reg): Update.
12974         (m68k_expand_prologue): Update.
12975         (m68k_expand_epilogue): Update.
12976         (legitimize_pic_address): Update.
12977         * config/rs6000/rs6000.c (rs6000_got_register): Update.
12978         (first_reg_to_save): Update.
12979         (first_altivec_reg_to_save): Update.
12980         (compute_vrsave_mask): Update.
12981         (compute_save_world_info): Update.
12982         (rs6000_stack_info): Update.
12983         (spe_func_has_64bit_regs_p): Update.
12984         (rs6000_ra_ever_killed): Update.
12985         (rs6000_emit_eh_reg_restore): Update.
12986         (rs6000_emit_allocate_stack): Update.
12987         (rs6000_emit_prologue): Update.
12988         (rs6000_emit_epilogue): Update.
12989         (rs6000_output_function_epilogue): Update.
12990         (output_profile_hook): Update.
12991         (rs6000_elf_declare_function_name): Update.
12992         * config/rs6000/rs6000.h (rs6000_args): Update.
12993         * config/rs6000/rs6000.md: Update.
12994         * config/mcore/mcore.c (mcore_expand_prolog): Update.
12995         * config/arc/arc.c (arc_output_function_epilogue): Update.
12996         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
12997         * config/darwin.c (machopic_function_base_name): Update.
12998         * config/score/score3.c (score3_compute_frame_size): Update.
12999         (rpush): Update.
13000         (rpop): Update.
13001         (score3_epilogue): Update.
13002         * config/score/score7.c (score7_compute_frame_size): Update.
13003         (score7_prologue): Update.
13004         (score7_epilogue): Update.
13005         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
13006         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
13007         * config/arm/arm.c (use_return_insn): Update.
13008         (require_pic_register): Update.
13009         (arm_load_pic_register): Update.
13010         (arm_compute_save_reg0_reg12_mask): Update.
13011         (arm_compute_save_reg_mask): Update.
13012         (thumb1_compute_save_reg_mask): Update.
13013         (output_return_instruction): Update.
13014         (arm_output_function_prologue): Update.
13015         (arm_output_epilogue): Update.
13016         (arm_get_frame_offsets): Update.
13017         (arm_expand_prologue): Update.
13018         (thumb_pushpop): Update.
13019         (thumb_exit): Update.
13020         (thumb1_expand_prologue): Update.
13021         (thumb1_expand_epilogue): Update.
13022         (arm_unwind_emit): Update.
13023         (arm_output_fn_unwind): Update.
13024         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
13025         * config/arm/arm.md: Update.
13026         * config/pa/pa.md: Update.
13027         * config/pa/pa.c (legitimize_pic_address): Update.
13028         (compute_frame_size): Update.
13029         (hppa_expand_prologue): Update.
13030         (hppa_expand_epilogue): Update.
13031         (borx_reg_operand): Update.
13032         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
13033         (HARD_REGNO_RENAME_OK): Update.
13034         * config/mips/mips.c (mips_global_pointer): Update.
13035         (mips_save_reg_p): Update.
13036         (mips_compute_frame_info): Update.
13037         (mips_frame_pointer_required): Update.
13038         (mips_expand_prologue): Update.
13039         (mips_expand_epilogue): Update.
13040         (mips_can_use_return_insn): Update.
13041         (mips_reorg_process_insns): Update.
13042         * config/v850/v850.c (compute_register_save_size): Update.
13043         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
13044         * config/mmix/mmix.c (along): Update.
13045         (mmix_expand_epilogue): Update.
13046         * config/bfin/bfin.c (legitimize_pic_address): Update.
13047         (must_save_p): Update.
13048         (stack_frame_needed_p): Update.
13049         (add_to_reg): Update.
13050         (bfin_expand_prologue): Update.
13051         * stmt.c (expand_asm_operands): Update.
13052         * reload1.c (reload): Update.
13053         (init_elim_table): Update.
13054
13055 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
13056
13057         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
13058
13059 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
13060
13061         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
13062         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
13063         (mov<mode>): Removed.
13064         (*movv4sf_internal): Likewise.
13065         (*movv2df_internal): Likewise.
13066
13067 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
13068
13069         * config.gcc (crx-*-elf): Remove deprecation.
13070
13071 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
13072
13073         * config/i386/cygming-crtend.c (register_frame_ctor): Register
13074         __gcc_deregister_frame with atexit.
13075         (deregister_frame_dtor): Remove.
13076
13077 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
13078             Nathan Sidwell  <nathan@codesourcery.com>
13079
13080         * config/rs6000/rs6000.opt (mspe): Remove Var property.
13081         (misel): Likewise.
13082         * config/rs6000/rs6000.h (rs6000_spe): Declare.
13083         (rs6000_isel): Likewise.
13084         * config/rs6000/rs6000.c (rs6000_spe): New variable.
13085         (rs6000_isel): New variable.
13086         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
13087
13088 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
13089
13090         PR c++/35758
13091         * c-common.c (handle_vector_size_attribute): Call
13092         lang_hooks.types.reconstruct_complex_type instead of
13093         reconstruct_complex_type.
13094         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
13095         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
13096         * langhooks.h (struct lang_hooks_for_types): Add
13097         reconstruct_complex_type hook.
13098         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
13099         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
13100
13101 2008-04-24  Richard Guenther  <rguenther@suse.de>
13102
13103         * c-common.h (check_builtin_function_arguments): Declare.
13104         * c-common.c (validate_nargs): New function.
13105         (check_builtin_function_arguments): Likewise.
13106         * c-typeck.c (build_function_call): Call
13107         check_builtin_function_arguments.
13108         * builtins.c (fold_builtin_classify): Remove error reporting code.
13109         (fold_builtin_unordered_cmp): Likewise.
13110         (fold_builtin_1): Likewise.
13111         (fold_builtin_n): Likewise.
13112
13113 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
13114
13115         PR tree-optimization/36008
13116         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
13117         the original op1, rather than delta by step.
13118
13119 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
13120             Sebastian Pop  <sebastian.pop@amd.com>
13121
13122         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
13123         eliminate_local_variables_stmt, eliminate_local_variables,
13124         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
13125         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
13126         of code delimited by two edges in the CFG.
13127         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
13128         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
13129         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate
13130         the case of parallelisation of reductions.
13131         (expr_invariant_in_region_p): New.
13132
13133         * tree-flow.h (gather_blocks_in_sese_region): Declared.
13134         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
13135
13136 2008-04-24  Ira Rosen  <irar@il.ibm.com>
13137             Richard Guenther  <rguenther@suse.de>
13138
13139         PR tree-optimization/36034
13140         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
13141         incapable of dealing with loads with gaps.
13142
13143 2008-04-24  Rafael Espindola  <espindola@google.com>
13144
13145         * tree-flow.h (vrp_evaluate_conditional): Change signature.
13146         * tree-ssa-propagate.c (fold_predicate_in): Update call to
13147         vrp_evaluate_conditional.
13148         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
13149         (vrp_evaluate_conditional): Split the cond argument.
13150         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
13151         (simplify_stmt_for_jump_threading): Update call to
13152         vrp_evaluate_conditional.
13153
13154 2008-04-24  Ira Rosen  <irar@il.ibm.com>
13155
13156         PR tree-optimization/35982
13157         * tree-vect-analyze.c (vect_check_interleaving): Check that the
13158         interleaved data-refs are of the same type.
13159
13160 2008-04-24  Danny Smith  <dannysmith@users.net>
13161
13162         * c-format.c (check_format_info_main): Use strncmp rather than a
13163         magic prefix to handle multichar length specs.
13164         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
13165         Don't prefix "I64" and "I32" with '\0'.
13166
13167 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
13168
13169         PR target/36015
13170         * config/i386/i386.c (init_cumulative_args): Don't pass anything
13171         in registers for -m32 only if stdarg_p (fntype).
13172
13173 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
13174
13175         PR rtl-optimization/36006
13176         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
13177         temp to op0 in order to avoid invalid rtx sharing.
13178
13179 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
13180
13181         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
13182         check TREE_INVARIANT.
13183         * tree-gimple.c (is_gimple_address): New.
13184         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
13185         * tree-gimple.h (is_gimple_address): New.
13186         * tree.h (decl_address_invariant_p): New.
13187         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
13188         (build_string): Likewise.
13189         (decl_address_invariant_p): New, from is_gimple_invariant_address.
13190         (tree_invariant_p_1): Likewise.
13191         (save_expr): Use it.
13192         (tree_invariant_p): New.
13193         (skip_simple_arithmetic): Use it.
13194         (stabilize_reference_1): Use it.
13195         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
13196         simplify.
13197         (build1_stat): Drop code to compute TREE_INVARIANT.
13198         (build2_stat): Drop code to compute TREE_INVARIANT.
13199         (build3_stat): Drop code to compute TREE_INVARIANT.
13200         (build4_stat): Drop code to compute TREE_INVARIANT.
13201         (build5_stat): Drop code to compute TREE_INVARIANT.
13202         (build7_stat): Drop code to compute TREE_INVARIANT.
13203         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
13204         * tree.h (struct tree_base): Remove invariant_flag.
13205         (TREE_INVARIANT): Remove.
13206         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
13207         (fold_builtin_expect): Check TREE_CONSTANT.
13208         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
13209         * c-tree.h (c_expr_to_decl): Drop third parameter.
13210         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
13211         (build_c_cast): Don't set TREE_INVARIANT.
13212         (pop_init_level): Don't set TREE_INVARIANT.
13213         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
13214         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
13215         TREE_CONSTANT.
13216         (gimplify_init_constructor): Don't set TREE_INVARIANT.
13217         (gimplify_addr_expr): Adjust comment.
13218         * tree-mudflap.c (mf_build_string):
13219         * print-tree.c (print_node): Don't print TREE_INVARIANT.
13220         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
13221         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
13222         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
13223         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
13224         * langhooks.h (struct lang_hooks): Drop third parameter from
13225         expr_to_decl.
13226
13227 2008-04-23  Richard Guenther  <rguenther@suse.de>
13228
13229         PR tree-optimization/27799
13230         PR tree-optimization/32921
13231         PR tree-optimization/32624
13232         * tree-ssa-structalias.c (merge_smts_into): Only merge the
13233         SMTs aliases and the tag itself into the solution.
13234         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
13235         merge the points-to solution back into the SMT aliases.
13236         (may_alias_p): Use alias_set_subset_of instead of
13237         aliases_conflict_p.  A pointer which points to
13238         memory with alias set zero may access any variable.
13239
13240 2008-04-23  Richard Guenther  <rguenther@suse.de>
13241
13242         * alias.c (alias_set_subset_of): Correctly handle asking
13243         if zero is a subset of an alias set with zero child.
13244         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
13245         (compute_flow_insensitive_aliasing): Correctly walk all
13246         pointers.  Do not unnecessarily union sets.
13247
13248 2008-04-23  Richard Guenther  <rguenther@suse.de>
13249
13250         PR middle-end/36021
13251         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
13252
13253 2008-04-22  Tomas Bily  <tbily@suse.cz>
13254
13255         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
13256         unreachable case.
13257         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
13258         NON_LVALUE_EXPR.
13259         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
13260         * tree-ssa-structalias.c (get_constraint_for): Likewise.
13261         * tree-inline.c (estimate_num_insns_1): Likewise.
13262         * varasm.c (const_hash_1, compare_constant, copy_constant)
13263         (compute_reloc_for_constant, output_addressed_constants): Likewise.
13264         * emit-rtl.c (component_ref_for_mem_expr)
13265         (set_mem_attributes_minus_bitpos): Likewise.
13266         * expr.c (highest_pow2_factor, expand_expr_real_1, )
13267         (is_aligning_offset): Likewise.
13268         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
13269         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
13270         * dojump.c (do_jump): Likewise.
13271         * builtins.c (get_pointer_alignment, get_memory_rtx)
13272         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
13273         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
13274
13275 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
13276
13277         PR rtl-optimization/36017
13278         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
13279         expanding the library call.
13280
13281 2008-04-22  Ian Lance Taylor  <iant@google.com>
13282
13283         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
13284         than size_in_bytes.
13285
13286 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
13287
13288         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
13289         of LR/CTR moves for Power6.
13290
13291 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
13292
13293         PR middle-end/36003
13294         * passes.c (init_optimization_passes): Remove
13295         pass_fast_rtl_byte_dce.
13296
13297 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
13298
13299         PR target/29096
13300         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
13301         builtin functions to generate faster code.
13302         (_mm_cvtpu16_ps): Ditto.
13303         (_mm_cvtpi32x2_ps): Ditto.
13304
13305 2008-04-22  Nick Clifton  <nickc@redhat.com>
13306
13307         * common.opt (ftree-loop-distribution): Add Optimization
13308         attribute.
13309
13310         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
13311         (frv_expand_builtin_va_start): Likewise.
13312
13313         * config/arm/arm.c (thumb_find_work_register): Fix location of
13314         argument register count.
13315
13316 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
13317
13318         Support scheduling for ColdFire V1 and V3 microarchitecture.
13319         Improve scheduling of multiplication instructions.
13320
13321         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
13322         (mac): New instruction attribute.
13323         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
13324         (m68k_sched_mac): New variable.
13325         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
13326         Handle cfv1 and cfv3.
13327         (max_insn_size): New static variable.
13328         (struct _sched_ib): New type.
13329         (sched_ib): New static variable.
13330         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
13331         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
13332         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
13333         Update.
13334         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
13335         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
13336         new variables.  Update.
13337         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
13338         Add modeling of cfv3 instruction buffer.  Update.
13339         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
13340         * config/m68k/m68k.h (TUNE_CFV3): New macro.
13341         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
13342         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
13343         a particular reservation applies to.
13344         (type2): Reorganize attribute values.  Rename alu to alu_reg,
13345         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
13346         to mul_l and mul_w.
13347         (cf_ib_*): Simplify description of instruction buffer.
13348         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
13349         (cf_mem): Split into cf_mem1 and cf_mem2.
13350         (cf_v2_move_??): Rename to cfv12_alu_??.
13351         (cf_v2_move_l_??): Rename to cfv12_omove_??.
13352         (cf_v2_mul_??): Remove reservations.
13353         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
13354         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
13355         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
13356         appropriate place.
13357         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
13358         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
13359         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
13360         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
13361         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
13362         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
13363         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
13364         expansions of the above reservations for instructions of sizes
13365         1, 2 and 3 words.
13366
13367 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
13368
13369         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
13370
13371 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
13372
13373         * coverage.c: Include tree-pass.h.
13374         (coverage_counter_alloc): Print da_file_name to the dump file.
13375
13376 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
13377
13378         * sbitmap.c (sbitmap_range_empty_p): New function.
13379         * sbitmap.h (sbitmap_range_empty_p): New function.
13380         * bitmap.h: Now includes obstack.h.
13381
13382 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
13383             Kenneth Zadeck  <zadeck@naturalbridge.com>
13384
13385         * dbgcnt.def (ra_byte_scan): Added.
13386         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
13387         when the last hit happens for a counter.
13388         * timevar.def (TV_DF_BYTE_LR): New variable.
13389         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
13390         * passes.c (pass_fast_rtl_byte_dce): New pass.
13391         * fwprop.c (update_df): Added mode to call df_ref_create.
13392         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
13393         DF_REF_EXTRACT_OFFSET.
13394         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
13395         DF_BYTE_LR_OUT, df_byte_lr): New macro.
13396         (df_mm): New enum.
13397         (df_ref_extract): Added mode field.
13398         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
13399         DF_REF_EXTRACT_OFFSET.
13400         (DF_REF_EXTRACT_MODE): New macro.
13401         (df_byte_lr_bb_info): New structure.
13402         (df_print_byte_regset, df_compute_accessed_bytes,
13403         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
13404         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
13405         df_byte_lr_simulate_uses,
13406         df_byte_lr_simulate_artificial_refs_at_top,
13407         df_byte_lr_simulate_artificial_refs_at_end,
13408         df_compute_accessed_bytes): New function.
13409         (df_ref_create): Add parameter.
13410         (df_byte_lr_get_bb_info): New inline function.
13411         * df-scan.c (df_ref_record, df_uses_record,
13412         df_ref_create_structure): Added mode parameter.
13413         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
13414         df_defs_record, df_uses_record, df_get_conditional_uses,
13415         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
13416         df_entry_block_defs_collect, df_exit_block_uses_collect):
13417         Added mode parameter to calls to df_ref_record, df_uses_record,
13418         df_ref_create_structure.
13419         (df_ref_equal_p, df_ref_compare): Added test for modes.
13420         (df_ref_create_structure): Added code to set mode.  Renamed
13421         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
13422         DF_REF_EXTRACT_OFFSET.
13423         * df-core.c (df_print_byte_regset): New function.
13424         * df-byte-scan.c: New file.
13425         * df-problems.c (df_rd_transfer_function): Removed unnecessary
13426         calls to BITMAP_FREE.
13427         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
13428         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
13429         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
13430         df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
13431         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
13432         df_byte_lr_local_compute, df_byte_lr_init,
13433         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
13434         df_byte_lr_transfer_function, df_byte_lr_free,
13435         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
13436         df_byte_lr_add_problem, df_byte_lr_simulate_defs,
13437         df_byte_lr_simulate_uses,
13438         df_byte_lr_simulate_artificial_refs_at_top,
13439         df_byte_lr_simulate_artificial_refs_at_end): New function.
13440         * dce.c (byte_dce_process_block): New function.
13441         (dce_process_block): au is now passed in rather than computed
13442         locally.  Changed loops that look at artificial defs to not look
13443         for conditional or partial ones, because there never are any.
13444         (fast_dce): Now is able to drive byte_dce_process_block or
13445         dce_process_block depending on the kind of dce being done.
13446         (rest_of_handle_fast_dce): Add parameter to fast_dce.
13447         (rest_of_handle_fast_byte_dce): New function.
13448         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
13449         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
13450
13451 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
13452
13453         PR fortran/35019
13454         * gcc.h: Added fortran options that take arguments to
13455         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
13456         macros.
13457
13458 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
13459
13460         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
13461         scalarization if on the LHS and not a full access.
13462
13463 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13464
13465         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
13466
13467 2008-04-18  Rafael Espindola  <espindola@google.com>
13468
13469         * tree-vrp.c (find_case_label_index): Fix the binary search.
13470         (find_case_label_range): New.
13471         (vrp_visit_switch_stmt): Use find_case_label_range.
13472         (simplify_switch_using_ranges): Use find_case_label_range.
13473
13474 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
13475
13476         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
13477         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
13478
13479 2008-04-18  Tom Tromey  <tromey@redhat.com>
13480
13481         PR libcpp/15500:
13482         * doc/cpp.texi (Implementation-defined behavior): Mention
13483         -finput-charset.
13484
13485 2008-04-18  Ian Lance Taylor  <iant@google.com>
13486
13487         * fold-const.c (pointer_may_wrap_p): New static function.
13488         (fold_comparison): Add another test for pointer overflow.  Use
13489         pointer_may_wrap_p to disable some false positives.
13490
13491 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
13492
13493         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
13494         (fname_as_string): Match updated cpp_interpret_string prototype.
13495         (fix_string_type): Support char16_t* and char32_t*.
13496         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
13497         derivative) nodes.  Register as builtin if C++0x.
13498         (c_parse_error): Support CPP_CHAR{16,32}.
13499         * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
13500         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
13501         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
13502         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
13503         CTI_CHAR32_ARRAY_TYPE>: New elements.
13504         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
13505         char32_type_node, signed_char32_type_node, char16_array_type_node,
13506         char32_array_type_node): New defines.
13507         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
13508         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
13509         (lex_string): Support CPP_STRING{16,32}, match updated
13510         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
13511         (lex_charconst): Support CPP_CHAR{16,32}.
13512         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
13513         and CPP_STRING{16,32}.
13514
13515 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
13516
13517         PR bootstrap/35457
13518         * aclocal.m4: Regenerate.
13519         * configure: Regenerate.
13520
13521 2008-04-18  Jan Hubicka  <jh@suse.cz>
13522
13523         * except.c (dw2_size_of_call_site_table,
13524         sjlj_size_of_call_site_table): Use vector API for call_site_record.
13525
13526         * cgraphbuild.c (build_cgraph_edges): Update.
13527         * tree-pass.h: Update comment.
13528         * final.c (leaf_function_p): Update.
13529         (leaf_renumber_regs): Update.
13530         (rest_of_clean_state): Update.
13531         * omp-low.c (expand_omp_parallel): Update.
13532         * ipa-reference.c (analyze_function): Update.
13533         * reorg.c (find_end_label): Update.
13534         (optimize_skip): Update.
13535         (fill_simple_delay_slots): Update.
13536         (fill_simple_delay_slots): Update.
13537         (make_return_insns): Update.
13538         (dbr_schedule): Update.
13539         * gimple-low.c (record_vars_into): Update.
13540         * cfgbuild.c (make_edges): Update.
13541         * function.c (assign_stack_local): Update.
13542         (assign_parm_adjust_stack_rtl): Update.
13543         (locate_and_pad_parm): Update.
13544         (allocate_struct_function): Do not initialize stack_alignment_needed
13545         and preferred_stack_boundary here.
13546         (stack_protect_prologue): Update.
13547         (stack_protect_epilogue): Update.
13548         (expand_function_start): Initialize stack_alignment_needed,
13549         preferred_stack_boundary and max_jumptable_ents.
13550         (expand_function_end): Update.
13551         (free_after_compilation): Do not NULLify epilogue_delay_list.
13552         * function.h (struct rtl_data): Add stack_protect_guard,
13553         stack_alignment_needed,
13554         preferred_stack_boundary, epilogue_delay_list.
13555         (struct function): Remove value_histograms, stack_alignment_needed,
13556         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
13557         last_label_uid,
13558         unexpanded_var_list, stack_protect_guard.
13559         (current_function_epilogue_delay_list): Remove.
13560         * ipa-type-escape.c (analyze_function): Update.
13561         * gimplify.c (pop_gimplify_context): Update comment.
13562         * calls.c (expand_call): Update.
13563         (emit_library_call_value_1): Update.
13564         * except.c (set_nothrow_function_flags): Update.
13565         * cfgexpand.c (get_decl_align_unit): Update.
13566         (create_stack_guard): Update.
13567         (estimated_stack_frame_size): Update.
13568         (expand_used_vars): Update.
13569         (tree_expand_cfg): Free histogram earliers, init expansion variables.
13570         * explow.c (allocate_dynamic_stack_space): Update.
13571         * tree-ssa-live.c (remove_unused_locals): Update.
13572         * varasm.c (mark_constant_pool): Update.
13573         * tree-inline.c (remap_decls): Update.
13574         (initialize_cfun): Update.
13575         (declare_return_variable): Update.
13576         (inline_forbidden_p): Update.
13577         (expand_call_inline): Update.
13578         (declare_inline_vars): Update.
13579         (tree_function_versioning): Update.
13580         * tree-flow.h (value_histograms): New.
13581         (VALUE_HISTOGRAMS): New macro.
13582         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
13583         last_label_uid.
13584         * tree-cfg.c (set_bb_for_stmt): Update.
13585         (replace_by_duplicate_decl): Update.
13586         (move_block_to_fn): Update.
13587         (new_label_mapper): Update.
13588         (dump_function_to_file): Update.
13589         * ipa-struct-reorg.c (build_data_structure): Update.
13590         * cfgrtl.c (print_rtl_with_bb): Update.
13591         * reload1.c (reload): Update.
13592         (reload): Update.
13593         * config/i386/i386.c (setup_incoming_varargs_64,
13594         ix86_compute_frame_layout): Update.
13595         * config/arc/arc.c (arc_output_function_epilogue): Update.
13596
13597 2008-04-18  Marius Strobl <marius@FreeBSD.org>
13598
13599         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
13600         for FreeBSD as well.
13601         * gthr-posix95.h: Likewise.
13602
13603 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
13604
13605         PR rtl-optimization/35838
13606         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
13607         out the byte offset of the first subreg.
13608
13609 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
13610
13611         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
13612         to split_ti instead of three separate calls with single member arrays.
13613         (subti3 splitter): Ditto.
13614         (adddi3 splitter): Ditto with split_di.
13615         (subdi3 splitter): Ditto.
13616         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
13617         two separate calls with single member arrays.  Swap match_dup
13618         operands 1 and 2 to better fit into the array.
13619         (negdi2 splitter): Ditto with split_di.
13620         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
13621         two separate calls with single member arrays.  Swap match_dup operands
13622         6 and 7 to better fit into the array.
13623
13624 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
13625
13626         * config/i386/i386.c (sse_builtin_type): New.
13627         (bdesc_sse_args): Likewise.
13628         (bdesc_sse_3arg): Removed.
13629         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
13630         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
13631         IX86_BUILTIN_ROUNDPS.
13632         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
13633         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
13634         IX86_BUILTIN_ROUNDPS.
13635         (ix86_expand_sse_4_operands_builtin): Removed.
13636         (ix86_expand_sse_operands_builtin): New.
13637         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
13638         and CODE_FOR_sse4_1_roundps.
13639         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
13640         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
13641
13642 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
13643
13644         PR target/35907
13645         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
13646         regs before frame pop when needed.  If use_backchain_to_restore_sp
13647         then load backchain into a temp reg to restore vr and vrsave.  Add
13648         code to restore vr after frame pop if possible.
13649
13650 2008-04-17  Richard Guenther  <rguenther@suse.de>
13651
13652         * tree-vn.c (expressions_equal_p): Do not check type
13653         equality or compatibility before calling operand_equal_p.
13654         * fold-const.c (operand_equal_p): Check equivalence of
13655         integer constants before bailing out due to signedness or
13656         precision differences.
13657         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
13658         spurious differences in type qualification.  Ignore types
13659         for COMPONENT_REFs at all.
13660
13661 2008-04-17  Christian Bruel  <christian.bruel@st.com>
13662
13663         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
13664         msw_skip comparison.
13665
13666 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
13667
13668         PR c/35739
13669         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
13670         reg type.
13671
13672         PR tree-optimization/35899
13673         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
13674         rather than TREE_OPERAND.
13675
13676 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
13677
13678         PR target/35944
13679         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
13680         temporary registers.  Change operand predicate to general_operand.
13681         (remainderxf3): Ditto.
13682
13683 2008-04-16  Richard Guenther  <rguenther@suse.de>
13684
13685         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
13686         * tree-affine.c (aff_combination_expand): Look through some
13687         conversions.
13688
13689 2008-04-15  Doug Kwan  <dougkwan@google.com>
13690
13691         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
13692         for hex printing.
13693         * tree-pretty-print.c (dump_generic_node): Ditto.
13694         * final.c (output_addr_const): Ditto.
13695         * dwarf2out.c (output_cfi): Ditto.
13696         * c-pretty-print.c (pp_c_integer_constant): Ditto.
13697         * print-rtl.c (print_rtx): Ditto.
13698         * print-tree.c (print_node_brief, print_node): Ditto.
13699         * c-common.c (match_case_to_enum_1): Ditto.
13700         * sched-vis.c (print_value): Ditto.
13701         * config/i386/i386.c (print_operand): Cast to long unsigned int
13702         for hex printing.
13703
13704 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
13705         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
13706         MS Windows VirtualProtect function.
13707
13708 2008-04-15  Jan Hubicka  <jh@suse.cz>
13709
13710         * gengtype.c (write_root): Param_is argument is OK.
13711         * expr.c (expand_expr_real_1): Update call of get_exception_*.
13712         * function.h: Include varray.h
13713         (rtl_eh): New stucture based on except.c one.
13714         (call_site_record): New forward declaration and vector type.
13715         * calls.c (emit_call_1): Do not call
13716         note_current_region_may_contain_throw.
13717         * except.c (eh_status): Remove cur_region, try_region since they are
13718         unused.
13719         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
13720         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
13721         sjlj_fc, sjlj_exit_after to rth_eh in function.h.
13722         Remove call_site_data_used, call_site_data_size.
13723         Turn call_site_record into vector in function.h.
13724         (note_current_region_may_contain_throw): Remove.
13725         (get_exception_pointer, get_exception_filter): Do not take struct
13726         function argument; update.
13727         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
13728         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
13729         build_post_landing_pads, dw2_build_landing_pads,
13730         sjlj_assign_call_site_values, sjlj_mark_call_sites,
13731         sjlj_emit_function_enter, sjlj_emit_function_enter,
13732         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
13733         sjlj_build_landing_pads, finish_eh_generation,
13734         remove_exception_handler_label, remove_eh_handler,
13735         maybe_remove_eh_handler, add_reachable_handler,
13736         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
13737         add_action_record, collect_one_action_chain, add_call_site,
13738         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
13739         sjlj_output_call_site_table, output_function_exception_table,
13740         * except.h (note_current_region_may_contain_throw): Remove
13741         (get_exception_pointer, get_exception_filter): Do not take struct
13742         function argument.
13743         * Makefile.in (GTFILES): Put varargs before struct function.
13744
13745 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
13746
13747         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
13748         punt for STRING_CST.
13749         (get_constraint_for): Deal with STRING_CST here instead.
13750
13751 2008-04-15  Richard Guenther  <rguenther@suse.de>
13752
13753         * tree-ssa-propagate.c (substitute_and_fold): Substitute
13754         statements in a basic-block with a backward walk.  Do not
13755         substitute into dead statements but instead remove those.
13756
13757 2008-04-15  Richard Guenther  <rguenther@suse.de>
13758
13759         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
13760         to zero, thus disable creation of SFTs.
13761
13762 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
13763
13764         * tree-predcom.c (suitable_reference_p): Return false if the
13765         reference can throw.
13766
13767 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
13768
13769         PR c/35751
13770         * c-decl.c (finish_decl): If extern or static var has variable
13771         size, set TREE_TYPE (decl) to error_mark_node.
13772
13773 2008-04-15  Rafael Espindola  <espindola@google.com>
13774
13775         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
13776         variable arg1.
13777
13778 2008-04-15  Richard Guenther  <rguenther@suse.de>
13779
13780         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
13781         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
13782         (visit_reference_op_load): Do walk vuse-vdef chains on
13783         vn_reference_lookup.
13784         (visit_reference_op_store): But do not here.
13785         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
13786         vn_reference_lookup.
13787         (vn_lookup_with_vuses): But do so here.
13788
13789 2008-04-14  Ian Lance Taylor  <iant@google.com>
13790
13791         * fold-const.c (fold_overflow_warning): Remove assertion.
13792
13793 2008-04-15  Ben Elliston  <bje@au.ibm.com>
13794
13795         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
13796         temp1 local variables.
13797
13798 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
13799
13800         PR target/35661
13801         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
13802         ".text.unlikely" section as executable.
13803
13804 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
13805
13806         * config/ia64/ia64.c (rtx_needs_barrier): Handle
13807         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
13808         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
13809         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
13810         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
13811         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
13812         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
13813
13814 2008-04-14  Ian Lance Taylor  <iant@google.com>
13815
13816         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
13817         * fold-const.c (fold_comparison): If appropriate, test
13818         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
13819         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
13820         reassociating a pointer type.
13821         * doc/invoke.texi (Optimize Options): Document that
13822         -fstrict-overflow applies to pointer wraparound.
13823
13824 2008-04-13  Jan Hubicka  <jh@suse.cz>
13825
13826         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
13827
13828 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
13829
13830         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
13831         we are going to "save the world".
13832
13833 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
13834
13835         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
13836         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
13837         operand 0 constraint, not "=".
13838
13839 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
13840
13841         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
13842
13843 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
13844
13845         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
13846         of size of positions_needed * CHAR_BIT.
13847
13848 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
13849
13850         PR middle-end/35897
13851         * dse.c (store_info): Change positions_needed to unsigned
13852         HOST_WIDE_INT.
13853         (lowpart_bitmask): New.
13854         (record_store): Cast to unsigned HOST_WIDE_INT for
13855         positions_needed.  Assert width <= size of positions_needed *
13856         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
13857         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
13858         lowpart_bitmask to set mask.
13859
13860 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
13861
13862         * config/bfin/constraints.md: New file.
13863         * config/bfin/bfin.md: Include it.
13864         (adddi3): Use satisfies_constraint functions instead of the old macros.
13865         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
13866         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
13867         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
13868         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
13869         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
13870         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
13871         EXTRA_CONSTRAINT): Delete.
13872         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
13873         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
13874         of the old macros.
13875         * config/bfin/bfin.c: Include "tm-constrs.h".
13876         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
13877         Use satisfies_constraint functions instead of the old macros.
13878         * doc/md.texi (Blackfin Constraints): Update file name reference.
13879
13880 2008-04-11  Richard Guenther  <rguenther@suse.de>
13881
13882         PR tree-optimization/35869
13883         * tree-vrp.c (execute_vrp): Move switch statement update after
13884         jump threading.  Schedule another cfg cleanup run.
13885
13886 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
13887
13888         PR c/35744
13889         * attribs.c (decl_attributes): Return early on errorneous node.
13890
13891 2008-04-10  Oleg Ryjkov  <olegr@google.com>
13892
13893         * tree.h (struct tree_base): Added a new flag default_def_flag.
13894         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
13895
13896 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
13897
13898         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
13899
13900 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13901
13902         PR target/35768
13903         * pa.md: Define mode iterator P.  Define mode attribute dwc.
13904         (dcacheflush): Update pattern to use iterator P and attribute dwc.
13905         (icacheflush): Likewise.
13906         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
13907         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
13908
13909 2008-04-11  Ben Elliston  <bje@au.ibm.com>
13910
13911         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
13912
13913 2008-04-10  Rafael Espindola  <espindola@google.com>
13914
13915         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
13916         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
13917         (extract_range_from_expr): The same.
13918
13919 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
13920
13921         * config/mips/mips.md (GPR2): New mode iterator.
13922         (seq): Add comment.
13923         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
13924         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
13925         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
13926         Rewrite these to take two modes, the mode of comparison and the
13927         mode of the destination.
13928         * config/mips/mips.c (mips_expand_scc): Instead of having
13929         paradoxical subreg as destination, expand "narrowing" scc if mode
13930         of comparison is SI and target is requested in DI mode.
13931         (mips_emit_int_order_test): Update comment.  Make mode of
13932         comparison match CMP0 rather than TARGET.  When creating inverse
13933         target use mode of TARGET.
13934
13935 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
13936
13937         * gcov-dump.c (tag_summary): Only print summaries for the first
13938         GCOV_COUNTERS_SUMMABLE counters.
13939
13940 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
13941
13942         * config/i386/i386.md (absneg): New code iterator.
13943         (absnegprefix): New code attribute.
13944         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
13945         patterns using absneg code iterator.
13946         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
13947         using absneg code iterator.
13948         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
13949         *neg<mode>2 patterns using absneg code iterator.
13950         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
13951         *negextendsfdf2 patterns using absneg code iterator.
13952         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
13953         *negextendsfxf2 patterns using absneg code iterator.
13954         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
13955         *negextendsfdf2 patterns using absneg code iterator.
13956         * config/i386/sse.md (<code><mode>2): Macroize expander from
13957         abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
13958
13959 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
13960
13961         * config/s390/s390.h: Remove the remains of the recent search
13962         & replace action of current_function_outgoing_args_size.
13963
13964 2008-04-10  Ira Rosen  <irar@il.ibm.com>
13965
13966         PR tree-optimization/35821
13967         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
13968         NEW_STMT_LIST is not NULL.
13969
13970 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
13971
13972         PR libstdc++/35597
13973         * toplev.c (process_options): Remove -ffunction-sections debugging
13974         warning.
13975
13976 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
13977
13978         PR middle-end/PR28690
13979         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
13980         than gen_rtx_fmt_ee to perform more canonicalizations.
13981
13982 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13983
13984         PR driver/35665
13985         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
13986
13987 2008-04-09  Richard Guenther  <rguenther@suse.de>
13988
13989         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
13990         (dump_function_to_file): Dump function arguments with types.
13991
13992 2008-04-08  Richard Guenther  <rguenther@suse.de>
13993
13994         * fold-const.c (fold_widened_comparison): Do not allow
13995         sign-changes that change the result.
13996
13997 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
13998
13999         PR target/35839
14000         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
14001         kinds of indirect references.
14002
14003 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
14004
14005         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
14006         GNU Fortran language string.
14007
14008 2008-04-08  Rafael Espindola  <espindola@google.com>
14009
14010         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
14011         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
14012         * tree.h (tree_call_nonnegative_warnv_p): New.
14013
14014 2008-04-08  Jan Hubicka  <jh@suse.cz>
14015
14016         * function.c (free_after_compilation): Clear out regno_reg_rtx
14017         pointer.
14018
14019 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
14020
14021         Revert
14022         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
14023
14024         PR middle-end/PR28690
14025         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
14026         same precedence as REG_POINTER and MEM_POINTER operands.
14027
14028 2008-04-08  Richard Guenther  <rguenther@suse.de>
14029
14030         PR middle-end/35834
14031         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
14032         for adding index to base.
14033
14034 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
14035
14036         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
14037         (MINGW_ENABLE_EXECUTE_STACK): New.
14038         (IN_LIBGCC2): For libgcc include windows.h file for
14039         function declarations.
14040
14041 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
14042
14043         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
14044         and tem2 if tem1 is not a REG or MULT.
14045
14046 2008-04-08  Jan Hubicka  <jh@suse.cz>
14047
14048         * function.h (incomming_args): Break out of struct function.
14049         (function_subsections): Break out of struct function.
14050         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
14051         return_rtx and hard_reg_initial_vals from struct function.
14052         Kill inl_max_label_num.
14053         (current_function_pops_args, current_function_args_info,
14054         current_function_args_size, current_function_args_size,
14055         current_function_pretend_args_size,
14056         current_function_outgoing_args_size,
14057         current_function_internal_arg_pointer, current_function_return_rtx):
14058         Kill compatibility accestor macros.
14059         * builtins.c (expand_builtin_apply_args_1): Update.
14060         (expand_builtin_next_arg): Update.
14061         * df-scan.c (df_get_call_refs): Update.
14062         * dbxout.c (dbxout_function_end): Update.
14063         * dwarf2out.c (dwarf2out_switch_text_section): Update.
14064         (output_line_info): Update.
14065         (secname_for_decl): Update.
14066         (dwarf2out_var_location): Update.
14067         * function.c (free_after_compilation): Update.
14068         (assign_parm_find_stack_rtl): Update.
14069         (assign_parms): Update.
14070         (expand_dummy_function_end): Update.
14071         (expand_function_end): Update.
14072         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
14073         (expand_call): Update.
14074         (emit_library_call_value_1): Update.
14075         (store_one_arg): Update.
14076         * varasm.c (initialize_cold_section_name): Update.
14077         (unlikely_text_section): Update.
14078         (unlikely_text_section_p): Update.
14079         (assemble_start_function): Update.
14080         (assemble_end_function): Update.
14081         (default_section_type_flags): Update.
14082         (switch_to_section): Update.
14083         * integrate.c (set_decl_abstract_flags): Update.
14084         (get_hard_reg_initial_val): Update.
14085         (has_hard_reg_initial_val): Update.
14086         (allocate_initial_values): Update.
14087         * resource.c (init_resource_info): Update.
14088         * config/alpha/alpha.c (NUM_ARGS): Update.
14089         (direct_return): Update.
14090         (alpha_va_start): Update.
14091         (alpha_sa_size): Update.
14092         (alpha_initial_elimination_offset): Update.
14093         (alpha_expand_prologue): Update.
14094         (alpha_start_function): Update.
14095         (alpha_expand_epilogue): Update.
14096         (unicosmk_initial_elimination_offset):
14097         * config/alpha/alpha.md (call expander): Update.
14098         * config/s390/s390.c (s390_register_info): Update.
14099         (s390_register_info): Update.
14100         (s390_frame_info): Update.
14101         (s390_initial_elimination_offset): Update.
14102         (s390_build_builtin_va_list): Update.
14103         (s390_va_start): Update.
14104         * config/spu/spu.c (direct_return): Update.
14105         (spu_expand_prologue): Update.
14106         (spu_initial_elimination_offset): Update.
14107         (spu_build_builtin_va_list): Update.
14108         (spu_va_start): Update.
14109         * config/sparc/sparc.c (sparc_init_modes): Update.
14110         (sparc_compute_frame_size): Update.
14111         (function_value): Update.
14112         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
14113         * config/i386/i386.md (return expander): Update.
14114         * config/i386/i386.c (ix86_va_start): Update.
14115         (ix86_can_use_return_insn_p): Update.
14116         (ix86_compute_frame_layout): Update.
14117         (ix86_expand_epilogue): Update.
14118         * config/sh/sh.c (output_stack_adjust): Update.
14119         (calc_live_regs): Update.
14120         (sh_expand_prologue): Update.
14121         (sh_builtin_saveregs): Update.
14122         (sh_va_start): Update.
14123         (initial_elimination_offset): Update.
14124         (sh_allocate_initial_value): Update.
14125         (sh_function_ok_for_sibcall): Update.
14126         (sh_get_pr_initial_val): Update.
14127         * config/sh/sh.md (return expander): Update.
14128         * config/avr/avr.c (frame_pointer_required_p): UPdate.
14129         * config/crx/crx.c (crx_compute_frame): UPdate.
14130         (crx_initial_elimination_offset): UPdate.
14131         * config/xtensa/xtensa.c (compute_frame_size): Update
14132         (xtensa_builtin_saveregs): Update.
14133         (xtensa_va_start): Update.
14134         (order_regs_for_local_alloc): Update.
14135         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
14136         (xstormy16_expand_builtin_va_start): Update.
14137         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
14138         * config/m68hc11/m68hc11.md (return expanders): Update.
14139         * config/m68hc11/m68hc11.c (expand_prologue): Update.
14140         (expand_epilogue): Update.
14141         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
14142         (cris_simple_epilogue): Update.
14143         (cris_expand_prologue): Update.
14144         (cris_expand_epilogue): Update.
14145         * config/iq2000/iq2000.c (iq2000_va_start): Update.
14146         (compute_frame_size): Update.
14147         * config/mt/mt.c (mt_compute_frame_size): Update.
14148         * config/mn10300/mn10300.c (expand_prologue): Update.
14149         (expand_epilogue): Update.
14150         (initial_offset): Update.
14151         (mn10300_builtin_saveregs):
14152         * config/mn10300/mn10300.md (return expander): Update.
14153         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
14154         (ia64_initial_elimination_offset): Update.
14155         (ia64_initial_elimination_offset): Update.
14156         (ia64_expand_prologue): Update.
14157         * config/m68k/m68k.md (return expander): Update.
14158         * config/rs6000/rs6000.c (rs6000_va_start): Update.
14159         (rs6000_stack_info): Update.
14160         * config/mcore/mcore.c (layout_mcore_frame): Update.
14161         (mcore_expand_prolog): Update.
14162         * config/arc/arc.c (arc_compute_frame_size): Update.
14163         * config/score/score3.c (score3_compute_frame_size): Update.
14164         * config/score/score7.c (score7_compute_frame_size): Update.
14165         * config/arm/arm.c (use_return_insn): Update.
14166         (thumb_find_work_register): Update.
14167         (arm_compute_save_reg_mask): Update.
14168         (arm_output_function_prologue): Update.
14169         (arm_output_epilogue): Update.
14170         (arm_size_return_regs): Update.
14171         (arm_get_frame_offsets): Update.
14172         (arm_expand_prologue): Update.
14173         (thumb_exit): Update.
14174         (thumb_unexpanded_epilogue): Update.
14175         (thumb1_output_function_prologue): Update.
14176         * config/pa/pa.md (return expander): Update.
14177         * config/pa/pa.c (compute_frame_size): Update.
14178         (hppa_builtin_saveregs): Update.
14179         * config/mips/mips.c (mips_va_start): Update.
14180         (mips16_build_function_stub): Update.
14181         (mips_compute_frame_info): Update.
14182         (mips_restore_gp): Update.
14183         (mips_output_function_prologue): Update.
14184         (mips_expand_prologue): Update.
14185         * config/v850/v850.c (compute_frame_size): Update.
14186         (expand_prologue): * config/mmix/mmix.c (along): update.
14187         (mmix_initial_elimination_offset): update.
14188         (mmix_reorg): update.
14189         (mmix_use_simple_return): update.
14190         (mmix_expand_prologue): update.
14191         (mmix_expand_epilogue): Update.
14192         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
14193         (emit_link_insn): Update.
14194
14195 2008-04-08  Anatoly Sokolov <aesok@post.ru>
14196
14197         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
14198         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
14199         instructions.
14200         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
14201         atmega103 device.
14202
14203 2008-04-07  Jan Hubicka  <jh@suse.cz>
14204
14205         * function.h (rtl): Rename to x_rtl.
14206         (crtl): New define.
14207         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
14208         frame_offset, stack_check_probe_note, arg_pointer_save_area,
14209         used_temp_slots avail_temp_slots, temp_slot_level,
14210         nonlocal_goto_handler_labels): Update accesstors.
14211         (rtl): New global variable.
14212         (struct function): Move some fileds to rtl_data.
14213         (get_arg_pointer_save_area): Update prototype.
14214         * builtins.c (expand_builtin_setjmp_receiver): Update call of
14215         get_arg_pointer_save_area.
14216         * expr.c (init_expr): Update
14217         * function.c (get_frame_size): Update
14218         (assign_stack_local): Update
14219         (expand_function_end): Update.
14220         (get_art_pointer_save_area): Update
14221         * function.h
14222         * emit-rtl.c (rtl): Declare.
14223         (regno_reg_rtx): Declare.
14224         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
14225         Update.
14226         (gen_reg_rtx): Update.
14227         * varasm.c (n_deferred_constatns): Update accestor.
14228         (init_varasm_status): Do not allocate varasm_status.
14229         (force_const_mem, get_pool_size, output_constant_pool): Update.
14230         * stmt.c (force_label_rtx): Do not use x_ prefixes.
14231         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
14232         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
14233         * sparc/sparc.h (INIT_EXPANDERS): Update.
14234         * ia64/ia64.h (INIT_EXPANDERS): Update.
14235
14236 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
14237
14238         * reload.c (push_secondary_reload): Add missing break to for loop.
14239
14240 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
14241
14242         PR middle-end/PR28690
14243         * rtlanal.c: Update copyright years.
14244         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
14245         as REG_POINTER and MEM_POINTER operands.
14246         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
14247         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
14248         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
14249         * gcse.c: Update copyright years.
14250         (pre_delete): Call gen_reg_rtx_and_attrs.
14251         (hoist_code): Likewise.
14252         (build_store_vectors): Likewise.
14253         (delete_store): Likewise.
14254         * loop-invariant.c (move_invariant_reg): Likewise.
14255         Update copyright years.
14256
14257 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
14258
14259         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
14260         control string instead of quoted.
14261
14262 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
14263
14264         * doc/rtl.texi: Rewrite of subreg section.
14265
14266 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
14267
14268         PR/35842
14269         * config/i386/i386.c (legitimize_pic_address): Add treating
14270         of dllimport SYM_REF's.
14271         (legitimize_dllimport_symbol): Add prototype.
14272
14273 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
14274
14275         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
14276         reference in constructor with non self-referential type.
14277
14278 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
14279
14280         Removal of Return with Depressed Stack Pointer support
14281         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
14282         (ECF_SP_DEPRESSED): Likewise.
14283         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
14284         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
14285         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
14286         (expand_call): Do not test ECF_SP_DEPRESSED.
14287         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
14288         * function.c (keep_stack_depressed): Delete.
14289         (handle_epilogue_set): Likewise.
14290         (update_epilogue_consts): Likewise.
14291         (emit_equiv_load): Likewise.
14292         (thread_prologue_and_epilogue_insns): Remove support for Return with
14293         Depressed Stack Pointer.
14294         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
14295
14296 2008-04-06  Richard Guenther  <rguenther@suse.de>
14297
14298         PR tree-optimization/35400
14299         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
14300         information from SSA_NAMEs.
14301
14302 2008-04-06  Anatoly Sokolov <aesok@post.ru>
14303
14304         * config/avr/avr.h (avr_mega_p): Remove declaration.
14305         (AVR_MEGA): Remove macro.
14306         * config/avr/avr.c (avr_mega_p): Remove variable.
14307         (avr_override_options): Remove inicializion of avr_mega_p.
14308         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
14309         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
14310         (avr_jump_mode): (Ditto.).
14311         (avr_output_progmem_section_asm_op): (Ditto.).
14312         (avr_asm_init_sections): (Ditto.).
14313         (avr_asm_init_sections): (Ditto.).
14314         (avr_rtx_costs): (Ditto.).
14315         * config/avr/avr.md: (Ditto.).
14316         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
14317         '__AVR_MEGA__'.
14318
14319 2008-04-06  Richard Guenther  <rguenther@suse.de>
14320
14321         PR tree-optimization/35842
14322         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
14323         is_gimple_invariant_address.
14324
14325 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
14326
14327         * gcc.c (default_compilers): Sync Fortran extensions list with
14328         that in fortran/lang-specs.h.
14329         * doc/invoke.texi: Likewise.
14330         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
14331         * dwarf2out.c (gen_compile_unit_die): Likewise.
14332
14333 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
14334
14335         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
14336
14337 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
14338
14339         PR target/12329
14340         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
14341         attribute is used for nested functions.
14342
14343 2008-04-05  Jan Hubicka  <jh@suse.cz>
14344
14345         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
14346
14347         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
14348         letter argument.
14349         (dump_files): Update.
14350         (enable_rtl_dump_file): Do not accept letter argument.
14351         * tree-pass.h (dump_file_info): Remove letter argument.
14352         * toplev.c (decode_d_option): Update -da handling.
14353         * toplev.h (enable_rtl_dump_file): Update prototype.
14354         * passes.c (register_one_dump_file): Do not accept IPA argument; work
14355         it out based on pass type.
14356         (register_dump_files_1): Likewise.
14357         (init_optimization_passes): Update register_one_dump_file calls.
14358         (execute_one_pass): Sanity check that IPA passes are called at IPA
14359         level and RTL passes at RTL level.
14360         (execute_pass_list): IPA pass can not be after or subpass of
14361         GIMPLE/RTL pass.
14362         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
14363         disallov RTL subpasses of IPA subpasses.
14364
14365 2008-04-05  Ben Elliston  <bje@au.ibm.com>
14366
14367         * tree-cfg.c (need_fake_edge_p): Return false for calls to
14368         builtins that return exactly once and do not throw. Cache call to
14369         call_expr_flags.
14370
14371 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
14372
14373         PR rtl-optimization/34916
14374         PR middle-end/35519
14375         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
14376         between instruction pairs.
14377
14378 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
14379
14380         * doc/invoke.texi: Document -mbitops for SH.
14381         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
14382         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
14383         * config/sh/sh.c (print_operand): Add %t operand code.
14384         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
14385         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
14386         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
14387         (extendqihi2): Likewise.
14388         (movqi_i): Likewise.
14389         (insv): Use bset, bclr and bst instructions for SH2A if possible.
14390         (extv): Use bld instruction for SH2A if possible.
14391         (extzv): Likewise.
14392         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
14393         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
14394         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
14395         (bset.b, bclr.b): Define peepholes.
14396         * config/sh/sh.opt (mbitops): New option.
14397
14398 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
14399
14400         PR target/35620
14401         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
14402         and view convert expression.
14403
14404 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
14405
14406         PR target/35364
14407         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
14408
14409 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
14410
14411         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
14412
14413         * config/i386/cpuid.h (bit_AES): New.
14414         (bit_PCLMUL): Likewise.
14415
14416         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
14417         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
14418         SSE2 if AES or PCLMUL is enabled.
14419         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
14420         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
14421         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
14422         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
14423         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
14424         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
14425         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
14426         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
14427         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
14428         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
14429         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
14430         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
14431         __builtin_ia32_aeskeygenassist128 and
14432         __builtin_ia32_pclmulqdq128.
14433         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
14434         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
14435         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
14436
14437         * config/i386/i386.h (TARGET_AES): New.
14438         (TARGET_PCLMUL): Likewise.
14439         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
14440
14441         * config/i386/i386.md (UNSPEC_AESENC): New.
14442         (UNSPEC_AESENCLAST): Likewise.
14443         (UNSPEC_AESDEC): Likewise.
14444         (UNSPEC_AESDECLAST): Likewise.
14445         (UNSPEC_AESIMC): Likewise.
14446         (UNSPEC_AESKEYGENASSIST): Likewise.
14447         (UNSPEC_PCLMUL): Likewise.
14448
14449         * config/i386/i386.opt (maes): New.
14450         (mpclmul): Likewise.
14451
14452         * config/i386/sse.md (aesenc): New pattern.
14453         (aesenclast): Likewise.
14454         (aesdec): Likewise.
14455         (aesdeclast): Likewise.
14456         (aesimc): Likewise.
14457         (aeskeygenassist): Likewise.
14458         (pclmulqdq): Likewise.
14459
14460         * config/i386/wmmintrin.h: New.
14461
14462         * doc/extend.texi: Document AES and PCLMUL built-in function.
14463
14464         * doc/invoke.texi: Document -maes and -mpclmul.
14465
14466 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
14467
14468         * function.c (free_after_parsing): Replace with
14469         cxx_push_function_context from C++ front-end.
14470         (allocate_struct_function): Don't call langhook.
14471         * langhooks.h (struct lang_hooks_for_functions): Delete.
14472         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
14473         member "function".
14474         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
14475         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
14476         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
14477         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
14478         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
14479         remove LANG_HOOKS_FUNCTION_INITIALIZER.
14480         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
14481
14482         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
14483         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
14484
14485 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
14486
14487         PR c/35440
14488         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
14489         for all types.
14490
14491 2008-04-04  Richard Guenther  <rguenther@suse.de>
14492
14493         PR middle-end/35823
14494         * fold-const.c (optimize_minmax_comparison): Use the correct
14495         type for the constant in the simplified comparison.
14496
14497 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
14498
14499         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
14500         Pass L2 size as "--param l2-cache-size" to the compiler.
14501         (decode_l2_cache): New function to decode L2 cache parameters using
14502         0x8000006 extended cpuid function.
14503         (detect_caches_amd): Determine parameters of L2 cache using
14504         decode_l2_caches function.
14505         (decode_caches_intel): Decode L2 cache parameters.
14506         (detect_caches_intel): Determine L2 cache parameters using
14507         decode_caches_intel and decode_l2_caches functions.
14508
14509 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
14510
14511         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
14512         secondary input reload for subword loads from the constant pool.
14513
14514 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
14515
14516         PR target/35713
14517         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
14518           constants of the appropriate size for runtime calculations.
14519
14520         PR c/35712
14521         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
14522           decimal-float literal constant zero.
14523
14524 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
14525
14526         PR c/35738
14527         * c-parser.c (c_parser_omp_atomic): Call
14528         default_function_array_conversion on the RHS.
14529
14530         PR middle-end/35818
14531         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
14532         call is_variable_sized if decl has incomplete type.
14533
14534 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
14535
14536         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
14537
14538 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
14539
14540         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
14541         iterators.
14542         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
14543         (sgt<u>): Merge sgt and sgtu into new expander.
14544         (sgt, sgtu): Remove expanders.
14545         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
14546         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
14547         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
14548         *sgtu_<mode>_mips16 into new pattern.
14549         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
14550         (sge<u>): Merge sge and sgeu into new expander.
14551         (sge, sgeu): Remove expanders.
14552         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
14553         new pattern.
14554         (*sge_<mode>, second *sge_<mode>): Remove patterns.
14555         (slt<u>): Merge slt and sltu into new expander.
14556         (slt, sltu): Remove expanders.
14557         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
14558         (*slt_<mode>, *sltu_<mode>): Remove patterns.
14559         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
14560         *sltu_<mode>_mips16 into new pattern.
14561         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
14562         (sle<u>): Merge sle and sleu into new expander.
14563         (sle, sleu): Remove expanders.
14564         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
14565         (*sle_<mode>, *sleu_<mode>): Remove patterns.
14566         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
14567         *sleu_<mode>_mips16 into new pattern.
14568         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
14569
14570 2008-04-03  Jan Hubicka  <jh@suse.cz>
14571
14572         PR tree-optimization/35795
14573         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
14574         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
14575         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
14576         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
14577         * score/score3.c (score3_output_mi_thunk): Likewise.
14578         * score/score7.c (score7_output_mi_thunk): Likewise.
14579         * mips/mips.c (mips_output_mi_thunk): Likewise.
14580
14581 2008-04-03  Richard Guenther  <rguenther@suse.de>
14582
14583         * tree-vrp.c (extract_range_from_unary_expr): Handle all
14584         conversions.  Simplify code.
14585
14586 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
14587
14588         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
14589
14590 2008-04-03  Tom Tromey  <tromey@redhat.com>
14591             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14592
14593         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
14594         * config/bfin/t-bfin-linux (generated_files): Add
14595         linux-sysroot-suffix.h.
14596         * doc/install.texi (Prerequisites): Require make 3.80.
14597         * doc/sourcebuild.texi (Front End Directory): Document new
14598         variable.
14599         * Makefile.in (generated_files): New variable.
14600         (ALL_HOST_OBJS): New variable.
14601         ($(ALL_HOST_OBJS)): New target.
14602
14603 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
14604
14605         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
14606         (remap_block): Call id->transform_lang_insert_block instead
14607         of langhook.
14608         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
14609         Set id.transform_lang_insert_block to NULL.
14610         (clone_body): Move to cp/optimize.c
14611         * tree-inline.h (struct copy_body_data): Change
14612         transform_lang_insert_block to function pointer.
14613         (copy_generic_body, copy_decl_no_change): Export.
14614         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
14615         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
14616         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
14617
14618         * c-tree.h (insert_block): Kill.
14619         * c-decl.c (insert_block): Kill.
14620
14621 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
14622
14623         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
14624         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
14625         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
14626         argument.
14627         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
14628         argument, call {push,pop}_function_context from here.
14629         * c-parser.c: Use c_{push,pop}_function_context.
14630
14631         * function.c (push_function_context_to): Move meat ...
14632         (push_function_context): ... here.  Simplify.
14633         * function.c (pop_function_context_from): Move meat ...
14634         (pop_function_context): ... here.  Simplify.
14635         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
14636         leave_nested).
14637         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
14638         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
14639         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
14640         * tree.h (push_function_context_to, pop_function_context_from): Remove.
14641
14642 2008-04-03  Ben Elliston  <bje@au.ibm.com>
14643
14644         * expmed.c (extract_force_align_mem_bit_field): Remove.
14645
14646 2008-04-03  Richard Guenther  <rguenther@suse.de>
14647
14648         PR middle-end/35800
14649         * expr.h (try_casesi): Adjust prototype.
14650         * expr.c (try_casesi): Take fallback label as extra parameter.
14651         Use that for gen_casesi if default_label is NULL.
14652         * stmt.c (expand_case): Pass fallback label to try_casesi,
14653         make sure to fill gaps with a fallback label if default_label
14654         is not present.
14655
14656 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
14657
14658         PR target/35801
14659         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
14660
14661 2008-04-03  Ben Elliston  <bje@au.ibm.com>
14662
14663         * expmed.c (extract_split_bit_field): Remove if (0) code.
14664         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
14665         (do_ds_constraint): Likewise.
14666
14667 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
14668
14669         * doc/cppopts.texi (-dU): Document.
14670         * c-common.h (flag_dump_macros): Update comment.
14671         * c-opts.c (handle_OPT_d): Handle -dU.
14672         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
14673         dump_queued_macros, cb_used_define, cb_used_undef): New.
14674         (init_pp_output): Handle -dU.
14675         (cb_line_change): Call dump_queued_macros.
14676         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
14677
14678 2008-04-02  Anatoly Sokolov <aesok@post.ru>
14679
14680         * config/avr/predicates.md (io_address_operand): New predicate.
14681         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
14682         * config/avr/avr.c (avr_io_address_p): Remove function.
14683         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
14684         'avr_io_address_p' function.
14685         (out_movhi_r_mr): (Ditto.).
14686         (out_movqi_mr_r): (Ditto.).
14687         (out_movhi_mr_r): (Ditto.).
14688         (avr_address_cost): (Ditto.).
14689
14690 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
14691
14692         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
14693         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
14694         in 32bit mode when XMM registers are available to avoid store
14695         forwarding stalls.
14696         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
14697         corresponding post-reload splitters.
14698
14699 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
14700
14701         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
14702         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
14703         __builtin_ia32_roundss.
14704         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
14705         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
14706         __builtin_ia32_roundss.
14707         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
14708         IX86_BUILTIN_SHUFPD here.
14709
14710 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
14711
14712         * config/i386/i386.md (plogic): New.
14713         (plogicprefix): Likewise.
14714
14715         * config/i386/mmx.md (mmx_<code><mode>3): New.
14716         (mmx_and<mode>3): Removed.
14717         (mmx_ior<mode>3): Likewise.
14718         (mmx_xor<mode>3): Likewise.
14719
14720         * config/i386/sse.md (<code><mode>3): New.
14721         (*<code><mode>3): Likewise.
14722         (*<code><mode>3): Likewise.
14723         (<code><mode>3): Likewise.
14724         (*sse_<code><mode>3): Likewise.
14725         (*sse2_<code><mode>3): Likewise.
14726         (<code>tf3): Likewise.
14727         (*<code>tf3): Likewise.
14728         (and<mode>3): Likewise.
14729         (*and<mode>3): Likewise.
14730         (ior<mode>3): Removed.
14731         (*ior<mode>3): Likewise.
14732         (xor<mode>3): Likewise.
14733         (*xor<mode>3): Likewise.
14734         (*and<mode>3): Likewise.
14735         (*ior<mode>3): Likewise.
14736         (*xor<mode>3): Likewise.
14737         (and<mode>3): Likewise.
14738         (*sse_and<mode>3): Likewise.
14739         (*sse2_and<mode>3): Likewise.
14740         (andtf3): Likewise.
14741         (*andtf3): Likewise.
14742         (ior<mode>3): Likewise.
14743         (*sse_ior<mode>3): Likewise.
14744         (*sse2_ior<mode>3): Likewise.
14745         (iortf3): Likewise.
14746         (*iortf3): Likewise.
14747         (xor<mode>3): Likewise.
14748         (*sse_xor<mode>3): Likewise.
14749         (*sse2_xor<mode>3): Likewise.
14750         (xortf3): Likewise.
14751         (*xortf3): Likewise.
14752
14753 2008-04-02  Richard Guenther  <rguenther@suse.de>
14754
14755         PR tree-optimization/14495
14756         PR tree-optimization/34793
14757         * tree-vrp.c (struct switch_update): New structure.
14758         (to_remove_edges, to_update_switch_stmts): New VECs.
14759         (simplify_switch_using_ranges): New function.  Remove not taken
14760         case labels and edges.
14761         (simplify_stmt_using_ranges): Call it.
14762         (identify_jump_threads): Mark edges we have queued for removal
14763         so we don't thread them.
14764         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
14765         case label vector.
14766         * tree-cfg.c (group_case_labels): Deal with missing default label.
14767         (tree_verify_flow_info): Allow missing default label.
14768         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
14769         (emit_case_nodes): Likewise.
14770         (expand_case): Do not rely on the default label to be present.
14771         * expr.c (try_casesi): Deal with NULL default_label.
14772         (do_tablejump): Likewise.
14773
14774 2008-04-02  Richard Guenther  <rguenther@suse.de>
14775
14776         PR tree-optimization/14495
14777         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
14778         SWITCH_EXPR here ...
14779         (vrp_visit_switch_stmt): ... but here (new function).
14780         (find_case_label_index): New helper function.
14781         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
14782
14783 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
14784
14785         * fwprop.c: Fix ISO-C99ism.
14786
14787 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
14788
14789         PR bootstrap/35752
14790         * Makefile.in (objdir): Set it here.
14791         * configure.ac: Not here.  Find dynamic linker characteristics.
14792         * exec-tool.in: Use them.
14793         * aclocal.m4: Regenerate.
14794         * configure: Regenerate.
14795
14796 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
14797
14798         * expr.c (expand_var): Delete it.
14799         * expr.h (expand_var): Delete prototype.
14800         * function.c (expand_function_start): Use expand_decl instead.
14801         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
14802         langhook.
14803
14804 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
14805
14806         PR rtl-optimization/35542
14807         * fwprop.c (forward_propagate_and_simplify): Replace
14808         loc_reg_mentioned_in_p with reg_mentioned_p.
14809
14810 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
14811
14812         PR rtl-optimization/35281
14813         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
14814         (propagate_rtx_1): Handle PR_HANDLE_MEM.
14815         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
14816         (varying_mem_p): Move above propagate_rtx.
14817         (all_uses_available_at): Do not check MEMs.
14818
14819 2008-04-02  Rafael Espindola  <espindola@google.com>
14820
14821         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
14822         (register_edge_assert_for_2): Split the cond argument.
14823         (register_edge_assert_for_1): Adjust for the change in
14824         register_edge_assert_for_2.
14825         (register_edge_assert_for): Split the cond argument.
14826         (find_switch_asserts): Adjust for the change in
14827         register_edge_assert_for.
14828
14829 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
14830
14831         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
14832         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
14833         offsets for 64-bit mingw.
14834         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
14835         abi for x86_64-pc-mingw.
14836
14837 2008-04-02  Richard Guenther  <rguenther@suse.de>
14838
14839         * tree-vrp.c (extract_range_from_assert): Make sure to not
14840         produce range min/max with TREE_OVERFOW set.
14841         If merging a anti-range and a range keep the anti-range if
14842         the range covers all values of the type.
14843         (register_edge_assert_for_2): Only allow sign-changing
14844         conversions in detecting canonical range checks.  Also
14845         register an assert for the unsigned name if useful.
14846
14847         PR tree-optimization/35787
14848         * tree-vrp.c (vrp_val_max): New function.
14849         (vrp_val_min): Likewise.
14850         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
14851         (vrp_val_is_min): Likewise.
14852         (supports_overflow_infinity): Use vrp_val_{min,max}.
14853         (negative_overflow_infinity): Likewise.
14854         (positive_overflow_infinity): Likewise.
14855         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
14856         (is_positive_overflow_infinity): Likewise.
14857         (is_overflow_infinity): Likewise.
14858         (avoid_overflow_infinity): Use vrp_val_{min,max} and
14859         vrp_val_is_{min,max}.
14860         (set_and_canonicalize_value_range): Canonicalize anti-ranges
14861         to ranges if possible.  Avoid empty ranges.
14862
14863 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14864
14865         PR middle-end/35705
14866         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
14867         the expression is a function address.
14868
14869 2008-04-01  George Helffrich  <george@gcc.gnu.org>
14870
14871         PR fortran/35154, fortran/23057
14872         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
14873         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
14874         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
14875         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
14876         in common.
14877         (dbxout_syms): Check for COMMON-based symbol and wrap in
14878         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
14879         in bracket for efficiency.
14880
14881         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
14882         using DW_TAG_common_block + member offset.
14883         (add_pubname_string): New function.
14884         (dw_expand_expr): New function to find block name and offset for
14885         COMMON var.
14886         (common_check): New function to check whether symbol in Fortran COMMON.
14887         (gen_variable_die): If COMMON, use DW_TAG_common_block.
14888
14889 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
14890
14891         PR c/35436
14892         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
14893
14894 2008-04-02  Ben Elliston  <bje@au.ibm.com>
14895
14896         * config/v850/v850.md (casesi): Remove if (0) code.
14897         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
14898         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
14899
14900 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
14901
14902         * config/i386/i386.md (rex64suffix): New mode attribute.
14903         (floathi<mode>2): Disable expander for SSE math.
14904         (*floathi<mode>2_1): New insn insn_and_split pattern.
14905         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
14906         corresponding post-reload splitters.
14907         (*floathi<mode>2_i387): New macroized insn pattern.
14908         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
14909         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
14910         insn_and_split pattern.
14911         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
14912         New macroized instruction patterns and corresponding post-reload
14913         splitters.
14914         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
14915         and corresponding post-reload splitters.
14916         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
14917         New macroized instruction patterns.
14918         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
14919         macroized instruction patterns and corresponding post-reload splitters.
14920         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
14921         corresponding post-reload splitters.
14922         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
14923         New macroized instruction patterns.
14924         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
14925         corresponding post-reload splitters.
14926         (*floatsi<mode>2_i387): New macroized instruction patterns.
14927
14928 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
14929
14930         * config/i386/i386.md (smaxmin): New.
14931         (umaxmin): Likewise.
14932         (maxminiprefix): Likewise.
14933         (maxminfprefix): Likewise.
14934         (<code><mode>3): Likewise.
14935         (smin<mode>3): Removed.
14936         (smax<mode>3): Likewise.
14937
14938         * config/i386/mmx.md (mmx_<code>v2sf3): New.
14939         (mmx_<code>v4hi3): Likewise.
14940         (mmx_<code>v8qi3): Likewise.
14941         (mmx_smaxv2sf3): Removed.
14942         (mmx_sminv2sf3): Likewise.
14943         (mmx_umaxv8qi3): Likewise.
14944         (mmx_smaxv4hi3): Likewise.
14945         (mmx_uminv8qi3): Likewise.
14946         (mmx_sminv4hi3): Likewise.
14947
14948         * config/i386/sse.md (<addsub><mode>3): New.
14949         (*<addsub><mode>3): Likewise.
14950         (<sse>_vm<addsub><mode>3): Likewise.
14951         (<maxmin><mode>3): Likewise.
14952         (*<maxmin><mode>3_finite): Likewise.
14953         (*<maxmin><mode>3): Likewise.
14954         (<sse>_vm<maxmin><mode>3): Likewise.
14955         (sse3_h<addsub>v4sf3): Likewise.
14956         (sse3_h<addsub>v2df3): Likewise.
14957         (<maxmin>v16qi3): Likewise.
14958         (*<maxmin>v16qi3): Likewise.
14959         (<maxmin>v8hi3): Likewise.
14960         (*<maxmin>v8hi3): Likewise.
14961         (*sse4_1_<maxmin><mode>3): Likewise.
14962         (*sse4_1_<maxmin><mode>3): Likewise.
14963         (add<mode>3): Removed.
14964         (*add<mode>3): Likewise.
14965         (<sse>_vmadd<mode>3): Likewise.
14966         (sub<mode>3): Likewise.
14967         (*sub<mode>3): Likewise.
14968         (<sse>_vmsub<mode>3): Likewise.
14969         (smin<mode>3): Likewise.
14970         (*smin<mode>3_finite): Likewise.
14971         (*smin<mode>3): Likewise.
14972         (<sse>_vmsmin<mode>3): Likewise.
14973         (smax<mode>3): Likewise.
14974         (*smax<mode>3_finite): Likewise.
14975         (*smax<mode>3): Likewise.
14976         (<sse>_vmsmax<mode>3): Likewise.
14977         (sse3_haddv4sf3): Likewise.
14978         (sse3_haddv2df3): Likewise.
14979         (sse3_hsubv4sf3): Likewise.
14980         (sse3_hsubv2df3): Likewise.
14981         (umaxv16qi3): Likewise.
14982         (*umaxv16qi3): Likewise.
14983         (smaxv8hi3): Likewise.
14984         (*smaxv8hi3): Likewise.
14985         (*sse4_1_smax<mode>3): Likewise.
14986         (*sse4_1_umax<mode>3): Likewise.
14987         (uminv16qi3): Likewise.
14988         (*uminv16qi3): Likewise.
14989         (sminv8hi3): Likewise.
14990         (*sminv8hi3): Likewise.
14991         (*sse4_1_smin<mode>3): Likewise.
14992         (*sse4_1_umin<mode>3): Likewise.
14993
14994 2008-04-01  Rafael Espindola  <espindola@google.com>
14995
14996         * tree-cfg.c (verify_expr): remove in_phi.
14997         (verify_stmt): Don't call walk_tree with verify_expr. Use
14998         is_gimple_min_invariant instead of is_gimple_val.
14999
15000 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
15001
15002         * doc/include/gpl_v3.texi: Update for manpage generation.
15003         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
15004         gpl.texi.
15005         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
15006         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
15007         gpl_v3.texi instead of gpl.texi.
15008         (gpl.pod): New.
15009
15010 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
15011
15012         PR pch/13675
15013         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
15014
15015 2008-04-01  Rafael Espindola  <espindola@google.com>
15016
15017         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
15018         (extract_code_and_val_from_cond): Use
15019         extract_code_and_val_from_cond_with_ops.
15020
15021 2008-04-01  Jan Hubicka  <jh@suse.cz>
15022
15023         * function.c (free_after_compilation): Free epilogue_delay_list.
15024         (prepare_function_start): Assert that previous compilation was freed.
15025
15026 2008-04-01  Jan Hubicka  <jh@suse.cz>
15027             Jim Wilson  <wilson@tuliptree.org>
15028             Andreas Tobler <andreast@gcc.gnu.org>
15029
15030         PR middle-end/35781
15031         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
15032         rtl.emit instead cfun->emit.
15033         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
15034         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
15035
15036 2008-04-01  Ben Elliston  <bje@au.ibm.com>
15037
15038         * doc/c-tree.texi (Function Basics): Fix grammatical error.
15039
15040 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
15041
15042         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
15043         New options
15044         (fprofile-use): Add var flag_profile_use
15045         * coverage.c (coverage_begin_output): Do not open a gcno file for
15046         output only if -ftest-coverage is set.
15047         Do not add getpwd() to gcda file path.
15048         (build_gcov_info): Check the new flag
15049         flag_profile_datafile_relative_path.
15050         (coverage_init): Use profile_data_prefix.
15051         Read profile counter only if flag_profile_use is set.
15052         * opts.c (common_handle_option): New option fprofile-use=,
15053         fprofile-dir=, fprofile-generate=.
15054         * toplev.c (profile_data_prefix): New variable definition.
15055         * toplev.h (profile_data_prefix): New declaration.
15056         * doc/invoke.tex (Option Summary, Optimization Options):
15057         Add new options.
15058
15059 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
15060
15061         * varasm.c (output_constant_pool_1): In LABEL_REF check,
15062         use tmp consistently.
15063
15064         PR target/35695
15065         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
15066         * config/ia64/ia64.c (rtx_needs_barrier): Handle
15067         UNSPEC_FR_RECIP_APPROX_RES.
15068         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
15069
15070 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
15071
15072         PR c/35750
15073         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
15074
15075 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15076
15077         PR middle-end/30186
15078         * fold-const.c (fold_indirect_ref_1): Support accessing non first
15079         element of the vector via a pointer.
15080
15081 2008-03-31  Ian Lance Taylor  <iant@google.com>
15082
15083         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
15084
15085 2008-03-31  Jan Hubicka  <jh@suse.cz>
15086
15087         * builtins.c (expand_builtin_setjmp_receiver): Update call of
15088         get_arg_pointer_save_area.
15089         * expr.c (init_expr): Just clear out rtl.expr.
15090         * function.c (free_after_compilation): Clear out whole RTL structure.
15091         (get_func_frame_size): Merge into ...
15092         (get_frame_size): ... this one.
15093         (assign_stack_local_1): Merge into ...
15094         (assign_stack_local): ... this one.
15095         (expand_function_end): Update call of get_arg_pointer_save_area.
15096         (get_art_pointer_save_area): Remove cfun argument.
15097         * function.h (emit_status): regno_pointer_align does not need length
15098         attribute. Move x_regno_reg_rtx to ...
15099         (regno_reg_rtx): ... new global array.
15100         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
15101         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
15102         apply_args_value, forced_labels, stack_pointer_delta):
15103         Update accestors.
15104         (struct varasm_status): Move here from varasm.c
15105         (struct rtl_data): New. Move here some fields from struct function.
15106         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
15107         frame_offset, stack_check_probe_note, arg_pointer_save_area,
15108         used_temp_slots avail_temp_slots, temp_slot_level,
15109         nonlocal_goto_handler_labels): Update accesstors.
15110         (rtl): New global variable.
15111         (struct function): Move some fileds to rtl_data.
15112         (get_arg_pointer_save_area): Update prototype.
15113         * emit-rtl.c (rtl): Declare.
15114         (regno_reg_rtx): Declare.
15115         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
15116         Update.
15117         (gen_reg_rtx): Update.
15118         (init_virtual_regs): Do not tate emit_status argument.
15119         (init_emit): Do not allocate emit.
15120         * varasm.c (varasm_statuc): Move to function.h.
15121         (n_deferred_constatns): Update accestor.
15122         (init_varasm_status): Do not allocate varasm_status.
15123         (force_const_mem, get_pool_size, output_constant_pool): Update.
15124         * stmt.c (force_label_rtx): Do not use x_ prefixes.
15125         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
15126
15127 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
15128
15129         PR rtl-optimization/35729
15130         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
15131         references.
15132
15133 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
15134
15135         PR target/32000
15136         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
15137         load/store if memory is unaligned.
15138         (*movti_rex64): Likewise.
15139
15140         * config/i386/predicates.md (misaligned_operand): New.
15141
15142 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
15143
15144         PR tree-opt/35431
15145         * tree-ssa-phiopt.c (conditional_replacement): Return early for
15146         complex types.
15147
15148 2008-03-31  Jan Beulich  <jbeulich@novell.com>
15149
15150         * config/ia64/constraints.md: Add 'j' constraint.
15151         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
15152         (movdi_internal): Likewise.
15153
15154 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
15155
15156         PR c/35748
15157         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
15158
15159 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
15160
15161         PR target/35757
15162         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
15163         proper error message for the third argument on blendpd and
15164         blendps.
15165
15166         * config/i386/sse.md (blendbits): New.
15167         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
15168
15169 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
15170
15171         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
15172
15173 2008-03-30  Richard Guenther  <rguenther@suse.de>
15174
15175         PR middle-end/31023
15176         * fold-const.c (fold_sign_changed_comparison): Do leave
15177         conversions to base-types alone.
15178
15179 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15180
15181         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
15182         the link register if one altivec register is be saved.
15183
15184 2008-03-30  Ben Elliston  <bje@au.ibm.com>
15185
15186         * final.c (final_scan_insn): Remove if (0) code.
15187
15188 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
15189
15190         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
15191
15192 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
15193
15194         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
15195         of V4SFmode to ix86_binary_operator_ok.
15196
15197 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
15198
15199         * config/i386/i386.c (override_options): Initialize
15200         ix86_veclib_handler to ix86_veclibabi_svml when
15201         -mveclibabi=svml is used.
15202         (ix86_veclibabi_svml): New function for SVML ABI style
15203         vectorization support.
15204         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
15205
15206 2008-03-28  Rafael Espindola  <espindola@google.com>
15207
15208         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
15209         (tree_binary_nonnegative_warnv_p): Make it public.
15210         (tree_single_nonnegative_warnv_p): Make it public.
15211         (tree_invalid_nonnegative_warnv_p): Make it public.
15212         (tree_unary_nonzero_warnv_p): Make it public.
15213         (tree_binary_nonzero_warnv_p): Make it public
15214         (tree_single_nonzero_warnv_p): Make it public.
15215         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
15216         (extract_range_from_binary_expr): Split the expr argument.
15217         (extract_range_from_unary_expr): Split the expr argument.
15218         (extract_range_from_comparison): Split the expr argument.
15219         (extract_range_from_expr): Use the new aux functions.
15220         (vrp_evaluate_conditional_warnv): Use
15221         vrp_evaluate_conditional_warnv_with_ops.
15222         * tree.h (tree_unary_nonzero_warnv_p): Declare.
15223         (tree_binary_nonzero_warnv_p): Declare.
15224         (tree_single_nonzero_warnv_p): Declare.
15225         (tree_expr_nonzero_warnv_p): Declare.
15226         (tree_unary_nonnegative_warnv_p): Declare.
15227         (tree_binary_nonnegative_warnv_p): Declare.
15228         (tree_single_nonnegative_warnv_p): Declare.
15229         (tree_invalid_nonnegative_warnv_p): Declare.
15230
15231 2008-03-28  Richard Guenther  <rguenther@suse.de>
15232
15233         PR tree-optimization/30317
15234         PR tree-optimization/30911
15235         PR tree-optimization/34793
15236         * tree-vrp.c (set_and_canonicalize_value_range): New function.
15237         (struct assert_locus_d): New member EXPR.
15238         (register_new_assert_for): Add EXPR parameter to support
15239         ASSERT_EXPR <name, expr OP limit>.
15240         (register_edge_assert_for_1): Adjust callers.
15241         (find_assert_locations): Likewise.
15242         (process_assert_insertions_for): Build condition from expression.
15243         (extract_range_from_assert): Handle ASSERT_EXPRs
15244         of the form ASSERT_EXPR <name, expr OP limit>.
15245         (register_edge_assert_for_2): New helper registering
15246         asserts for comparisons.  Recognize range tests of the form
15247         (unsigned)i - CST1 OP CST2.
15248         (register_edge_assert_for_1): Use it.
15249         (register_edge_assert_for): Likewise.
15250         (needs_overflow_infinity): Integer sub-types
15251         do not need overflow infinities.
15252         (vrp_val_is_max): The extreme values of integer sub-types
15253         are those of the base type.
15254         (vrp_val_is_min): Likewise.
15255         * tree.def (ASSERT_EXPR): Document extra allowed conditional
15256         expressions.
15257
15258 2008-03-28  Nick Clifton  <nickc@redhat.com>
15259
15260         PR target/31110
15261         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
15262         Return GENERAL_REGS for stack adjustment reloads.
15263
15264 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15265
15266         PR target/31334
15267         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
15268         const_vector when all the vectors are constant.
15269
15270 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
15271
15272         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
15273         comparisons.
15274         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
15275         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
15276         (scc_sf): New.
15277         (s<code>_sf): Use new scc_sf attribute for opcode names.
15278
15279 2008-03-27  Tom Tromey  <tromey@redhat.com>
15280
15281         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
15282         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
15283         config/spu/t-spu-elf, config/i386/t-interix,
15284         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
15285         config/i386/x-darwin, config/i386/x-mingw32,
15286         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
15287         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
15288         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
15289         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
15290         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
15291         config/rs6000/x-darwin, config/rs6000/t-rs6000,
15292         config/score/t-score-elf, config/arm/t-strongarm-pe,
15293         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
15294         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
15295         Revert automatic dependency patch.
15296
15297 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
15298
15299         PR target/35657
15300         * config/i386/i386.c (ix86_function_arg_boundary): Align
15301         decimal floating point to its natural boundary.
15302
15303 2008-03-27  Richard Guenther  <rguenther@suse.de>
15304
15305         PR middle-end/35716
15306         * fold-const.c (fold_comparison): Restrict distinct decl
15307         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
15308         solely rely on operand_equal_p.
15309
15310 2008-03-27  Richard Guenther  <rguenther@suse.de>
15311
15312         PR c/32511
15313         * c-common.c (handle_weak_attribute): Reject combination of
15314         weak and inline.
15315
15316 2008-03-27  Richard Guenther  <rguenther@suse.de>
15317
15318         PR tree-optimization/32810
15319         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
15320         conversions from DECL_INITIAL.
15321         (fold_const_aggregate_ref): Likewise from constructor elements.
15322
15323 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
15324
15325         * tree-affine.h (aff_combination_expand): Declare.
15326         (get_inner_reference_aff): Likewise.
15327         * tree-affine.c (aff_combination_expand): Split out from
15328         tree_to_aff_combination_expand.
15329         (get_inner_reference_aff): New function.
15330         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
15331         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
15332         (struct lim_aux_data): sm_done field removed.
15333         (mem_ref_loc_p, mem_ref_locs_p): New types.
15334         (struct mem_ref): Added id, stored, accesses_in_loop,
15335         indep_loop, dep_loop, indep_ref, dep_ref fields.
15336         Removed is_stored, locs and next fields.
15337         (memory_accesses): New variable.
15338         (movement_possibility): Do not allow moving statements
15339         that store to memory.
15340         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
15341         New functions.
15342         (determine_max_movement): For statements with memory references,
15343         find the outermost loop in that the reference is independent.
15344         (move_computations_stmt): Mark the virtual operands for renaming.
15345         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
15346         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
15347         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
15348         add_vop_ref_mapping, create_vop_ref_mapping_loop,
15349         create_vop_ref_mapping, analyze_memory_references,
15350         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
15351         get_all_locs_in_loop, ref_always_accessed_p,
15352         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
15353         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
15354         store_motion_loop, store_motion): New functions.
15355         (struct vop_to_refs_elt): New type.
15356         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
15357         memref_hash, memref_eq, hoist_memory_references): Rewritten.
15358         (schedule_sm): Replaced by...
15359         (execute_sm): ... this.
15360         (determine_lsm_ref, hoist_memory_references,
15361         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
15362         find_more_ref_vops, free_mem_ref, free_mem_refs,
15363         determine_lsm_loop, determine_lsm): Removed.
15364         (tree_ssa_lim_finalize): Free data structures used by store motion.
15365         (tree_ssa_lim): Call analyze_memory_references.  Use
15366         store_motion instead of determine_lsm.
15367
15368 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
15369
15370         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
15371         rename tmake_file to m68hc11/t-m68hc11.
15372         (mcore): Set inhibit_libc to true.
15373         * config.host (alpha*-dec-*vms*): Set extra_programs.
15374         (interix3*): Don't use host_xmake_file.
15375         * configure.ac: Let config.gcc override inhibit_libc.
15376         * configure: Regenerate.
15377
15378         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
15379         * config/t-openbsd-thread: Remove commented out lines.
15380
15381         * config/x-interix: Remove.
15382
15383         * config/m68hc11/t-m68hc11-gas: Rename to...
15384         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
15385
15386         * config/mcore/t-mcore: Remove T_CFLAGS.
15387         * config/mcore/t-mcore-pe: Likewise.
15388
15389 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
15390
15391         * configure.ac: Replace custom __GNU_SOURCE test with
15392         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
15393         * aclocal.m4: Regenerate.
15394         * configure: Regenerate.
15395         * config.in: Regenerate.
15396
15397 2008-03-27  Richard Guenther  <rguenther@suse.de>
15398
15399         * fold-const.c (target.h): Include.
15400         (fold_comparison): Fold comparison of addresses of decls
15401         that bind locally or of constants.  Consolidate address folding code.
15402         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
15403         results from fold_binary_to_constant.
15404         (compare_values_warnv): Likewise.
15405
15406 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
15407
15408         PR middle-end/35429
15409         * fold-const.c (fold_truthop): Check for integeral types when folding
15410         a == 0 && b == 0 and a != 0 || b != 0 .
15411
15412 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
15413
15414         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
15415
15416 2008-03-26  Andreas Schwab  <schwab@suse.de>
15417
15418         * doc/invoke.texi: Fix use of @item vs. @itemx.
15419
15420 2008-03-26  Tom Tromey  <tromey@redhat.com>
15421
15422         * Makefile.in (build/gensupport.o, build/print-rtl.o,
15423         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
15424         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
15425         build/gencodes.o, build/genconditions.o, build/genconfig.o,
15426         build/genconstants.o, build/genemit.o, build/genextract.o,
15427         build/genflags.o, build/genmddeps.o, build/genopinit.o,
15428         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
15429         options.h.
15430
15431 2008-03-26  Richard Guenther  <rguenther@suse.de>
15432
15433         Revert
15434         2008-03-26  Richard Guenther  <rguenther@suse.de>
15435
15436         * fold-const.c (target.h): Include.
15437         (fold_comparison): Fold comparison of addresses of two decls
15438         that bind locally.  Consolidate address folding code.
15439
15440 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15441
15442         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
15443         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
15444         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
15445         dconstsqrt2, dconstthird, dconste and/or dconst10.
15446         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
15447         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
15448         dconstsqrt2, dconste): Delete.
15449         (init_emit_once): Likewise.  Simplify initializing dconstm1.
15450         Constify variable.
15451         * real.c (get_real_const): New.
15452         * real.h (dconst3, dconst10, dconstm2, dconstthird,
15453         dconstsqrt2, dconste): Delete.
15454         (real_value_const, get_real_const): New.
15455
15456 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
15457
15458         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
15459
15460         * config/i386/i386.c (ix86_function_arg_boundary): Check
15461         BIGGEST_ALIGNMENT instead of 128.
15462         (setup_incoming_varargs_64): Likewise.
15463
15464 2008-03-26  Tom Tromey  <tromey@redhat.com>
15465
15466         * Makefile.in (DEPFILES): Add missing '/'.
15467
15468 2008-03-26  Richard Guenther  <rguenther@suse.de>
15469
15470         * fold-const.c (target.h): Include.
15471         (fold_comparison): Fold comparison of addresses of two decls
15472         that bind locally.  Consolidate address folding code.
15473
15474 2008-03-26  Nick Clifton  <nickc@redhat.com>
15475
15476         PR target/31232
15477         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
15478         not allow INT+INT as a legitimate addressing mode.
15479
15480 2008-03-26  Richard Guenther  <rguenther@suse.de>
15481
15482         * tree-flow.h (widen_bitfield): Remove declaration.
15483         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
15484         (widen_bitfield): Remove function.
15485         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
15486         code.
15487
15488 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15489
15490         PR target/31558
15491         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
15492         error_mark_node's.
15493
15494 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
15495
15496         PR rtl-optimization/35232
15497         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
15498         (forget_old_reloads_1, forget_marked_reloads): Don't clear
15499         reg_reloaded_call_part_clobbered here.
15500         (reload_regs_reach_end_p): New function.
15501         (reload_reg_rtx_for_input): New variable.
15502         (reload_reg_rtx_for_output): Likewise.
15503         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
15504         when reassigning a pseudo register.  Load reloadreg from
15505         reload_reg_rtx_for_input, moving the mode and register
15506         calculation to...
15507         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
15508         instead of the original when deciding whether an input reload
15509         would be a no-op or whether an output reload can be deleted.
15510         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
15511         when setting up new_spill_reg_store.  Load it from
15512         reload_reg_rtx_for_output, moving the mode and register
15513         calculation to...
15514         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
15515         instead of the original when deciding whether an output reload
15516         would be a no-op.  Do the same when modifying insn notes.
15517         Use rtx_equal_p instead of == to compare the registers.
15518         (inherit_piecemeal_p): Take a mode and two register numbers
15519         as argument.
15520         (emit_reload_insns): Clear new_spill_reg_store for every hard
15521         register in the reload register.  Remove spill registers
15522         from reg_reloaded_valid before considering whether to record
15523         inheritance information for them.  Use reload_reg_rtx_for_output
15524         instead of reg_rtx when recording output reloads.  Use
15525         reload_reg_rtx_for_input instead of reg_rtx when recording
15526         input reloads.  Set or clear reg_reloaded_call_part_clobbered
15527         at the same time as setting reg_reloaded_valid.
15528         (delete_output_reload): Add a new_reload_reg parameter and use it
15529         instead of rld[j].reg_rtx.
15530         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
15531         calls accordingly.
15532
15533 2008-03-25  Tom Tromey  <tromey@redhat.com>
15534
15535         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
15536         (build/genattr.o): Likewise.
15537         (build/genattrtab.o): Likewise.
15538         (build/gencodes.o): Likewise.
15539         (build/genconfig.o): Likewise.
15540         (build/genconstants.o): Likewise.
15541         (build/genemit.o): Likewise.
15542         (build/genextract.o): Likewise.
15543         (build/genflags.o): Likewise.
15544
15545 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
15546
15547         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
15548         instead of size_int for integer types.
15549         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
15550         to match type of MINUS_EXPR.
15551
15552 2008-03-25  Tom Tromey  <tromey@redhat.com>
15553
15554         * configure: Rebuilt.
15555         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
15556         Makefile.
15557
15558 2008-03-25  Tom Tromey  <tromey@redhat.com>
15559
15560         * config/x-solaris (host-solaris.o): Update.
15561         * config/x-linux (host-linux.o): Update.
15562         * config/x-hpux (host-hpux.o): Update.
15563         * config/x-darwin (host-darwin.o): Update.
15564         * config/v850/t-v850e (v850-c.o): Update.
15565         * config/v850/t-v850 (v850-c.o): Update.
15566         * config/t-vxworks (vxworks.o): Update.
15567         * config/t-sol2 (sol2-c.o, sol2.o): Update.
15568         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
15569         * config/spu/t-spu-elf (spu-c.o): Update.
15570         (spu.o): Remove.
15571         * config/sh/t-symbian (sh-c.o): Update.
15572         (symbian.o): Update.
15573         * config/sh/t-sh (sh-c.o): Update.
15574         * config/score/t-score-elf (score7.o, score3.o): Update.
15575         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
15576         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
15577         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
15578         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
15579         (rs6000.o): Remove.
15580         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
15581         * config/m32c/t-m32c (m32c-pragma.o): Update.
15582         * config/ia64/t-ia64 (ia64-c.o): Update.
15583         * config/i386/x-mingw32 (host-mingw32.o): Update.
15584         * config/i386/x-i386 (driver-i386.o): Update.
15585         * config/i386/x-darwin (host-i386-darwin.o): Update.
15586         * config/i386/x-cygwin (host-cygwin.o): Update.
15587         * config/i386/t-nwld (nwld.o): Update.
15588         * config/i386/t-netware (netware.o): Update.
15589         * config/i386/t-interix (winnt.o): Update.
15590         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
15591         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
15592         msformat-c.o): Update.
15593         * config/bfin/t-bfin-linux (generated_files): Add
15594         linux-sysroot-suffix.h.
15595         * config/arm/t-wince-pe (pe.o): Update.
15596         * config/arm/t-strongarm-pe (pe.o): Update.
15597         * config/arm/t-pe (pe.o): Update.
15598         * config/arm/t-arm (arm-c.o): Update.
15599         * doc/install.texi (Prerequisites): Require make 3.80.
15600         * Makefile.in: Remove .o targets.
15601         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
15602         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
15603         (simple_generated_h, simple_generated_c): Move earlier.
15604         (generated_files): New variable.
15605         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
15606         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
15607         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
15608         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
15609         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
15610         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
15611         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
15612         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
15613         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
15614         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
15615         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
15616         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
15617         (.c.o): Remove.
15618         (COMPILE.base, COMPILE): New variables.
15619         (%.o): New pattern rule.
15620         (ALL_HOST_OBJS): New variable.
15621         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
15622         (dummy-checksum.o, cc1-checksum.o): Remove.
15623         (DRIVER_SHLIB): New variable.
15624         (DRIVER_DEFINES): Use it.
15625         (gencondmd.c): Move out of build/.
15626         (s-conditions): Update.
15627         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
15628         (ALL_BUILD_OBJS): Likewise.
15629         (build/%.o): Use BUILDCOMPILE.
15630         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
15631         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
15632         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
15633         build/gencheck.o, build/gencodes.o, build/genconditions.o,
15634         build/genconfig.o, build/genconstants.o, build/genemit.o,
15635         build/genextract.o, build/genflags.o, build/genmddeps.o,
15636         build/genopinit.o, build/genoutput.o, build/genpeep.o,
15637         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
15638         build/gen-protos.o, build/scan.o, build/fix-header.o,
15639         build/scan-decls.o): Simplify.
15640         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
15641         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
15642         prefix.o, toplev.o): Reduce to variable setting.
15643         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
15644         ($(out_object_file), gcc-options.o): New targets.
15645         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
15646         * configure: Rebuilt.
15647         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
15648         * doc/sourcebuild.texi (Front End Directory): Document new variable.
15649
15650 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
15651
15652         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
15653         complain when we hit an error, return ERROR_MARK_NODE.
15654
15655 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
15656
15657         * config/sh/constraints.md (Pso, Psz): New constraints.
15658         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
15659         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
15660
15661 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
15662
15663         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
15664         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
15665
15666 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
15667
15668         * config/sh/sh.md (prefetch): Add condition for SH2A target.
15669         (prefetch_sh2a): New.
15670
15671 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
15672             Naveen.H.S  <naveen.hs@kpitcummins.com>
15673
15674         * config/sh/constraints.md (I28): New constraint.
15675         * config/sh/sh.c (broken_move): Add support for movi20s.
15676         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
15677
15678 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
15679             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
15680             Naveen.H.S  <naveen.hs@kpitcummins.com>
15681
15682         * config/sh/sh.c (SH_ATTRIBUTES): Define.
15683         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
15684         (print_operand): Handle resbank in %@ operand code.
15685         (sh_encode_section_info): New.
15686         (push_regs): Add conditions for resbank.
15687         (sh_expand_epilogue): Likewise.
15688         (sh_insert_attributes): Likewise.
15689         (sh_attribute_table): Likewise.
15690         (sh_handle_resbank_handler_attribute): New.
15691         (sh2a_handle_function_vector_handler_attribute): New.
15692         (sh2a_is_function_vector_call): New.
15693         (sh2a_get_function_vector_number): New.
15694         (sh2a_function_vector_p): New.
15695         (sh_cfun_resbank_handler_p): New.
15696         * config/sh/sh.md (calli): Emit jsr/n if possible.
15697         (calli_tbr_rel): New.
15698         (calli_pcrel): Emit jsr/n if possible.
15699         (return_i): Emit rts/n if possible.
15700         (call_valuei_tbr_rel): New.
15701         (call_valuei_pcrel): Add condition for SH2A target.
15702         (call_value): Likewise.
15703         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
15704         (sh2a_get_function_vector_number): Likewise.
15705         (sh2a_is_function_vector_call): Likewise.
15706         * doc/extend.texi: Document TBR relative addressing of SH2A.
15707         (resbank): Add description for SH2A.
15708
15709 2008-03-24  Richard Guenther  <rguenther@suse.de>
15710
15711         PR c/22371
15712         * gimplify.c (gimplify_modify_expr): For frontend type-correct
15713         pointer assignments change conversions according to middle-end rules.
15714         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
15715         * configure.ac: Include type checking in yes.
15716         * configure: Regenerate.
15717
15718 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15719
15720         * diagnostic.c (diagnostic_count_diagnostic): Delete.
15721         (diagnostic_report_diagnostic): Update. Handle ICEs here.
15722
15723 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
15724
15725         * gthr-vxworks.h (UNUSED): Define.
15726
15727 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
15728
15729         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
15730
15731 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
15732
15733         * doc/extend.texi (Function Attributes): Add missing comma in the
15734         example of the "alloc_size" attribute.
15735
15736 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
15737
15738         Revert:
15739         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
15740
15741         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
15742         32bit host.
15743
15744         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
15745
15746         PR target/35496
15747         * stor-layout.c (update_alignment_for_field): Set minimum alignment
15748         of the underlying type of a MS bitfield layout to the natural
15749         alignment of the type.
15750
15751         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
15752
15753         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
15754         to their natural alignment to avoid store forwarding stalls.
15755
15756 2008-03-22  Richard Guenther  <rguenther@suse.de>
15757
15758         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
15759         For PHI nodes verify the address is invariant.
15760         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
15761         (get_symbol_constant_value): Use is_gimple_min_invariant.
15762         (maybe_fold_stmt_indirect): Likewise.
15763
15764 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
15765
15766         PR rtl-optimization/33927
15767         * Makefile.in (dse.o): Depend on $(TM_P_H).
15768         * expr.h (extract_low_bits): Declare.
15769         * expmed.c (extract_low_bits): New function.
15770         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
15771         * dse.c: Include tm_p.h.
15772         (find_shift_sequence): Remove the read_reg argument and return the
15773         read value.  Emit the instructions instead of returning them.
15774         Iterate on new_mode rather than calculating it each time.
15775         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
15776         source to NEW_MODE and extract_low_bits to convert the shifted
15777         value to READ_MODE.
15778         (replace_read): Allow the load and store to have different mode
15779         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
15780         or extraction instructions before trying the replacement.  Update
15781         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
15782
15783 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
15784
15785         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
15786         to their natural alignment to avoid store forwarding stalls.
15787
15788 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15789
15790         PR target/27946
15791         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
15792         encouraging but not allowing gprs for input;
15793         change the input constraint to !f#r.
15794         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
15795         gprs for output;
15796         change the output constraint to !f#r.
15797
15798 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
15799
15800         PR target/13958
15801         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
15802         corresponding post-reload splitters.
15803         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
15804         when x87 FP math is selected.
15805         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
15806         New function prototype.
15807         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
15808         unreachable function to ease macroization of insn patterns.
15809
15810 2008-03-21  Martin Jambor  <mjambor@suse.cz>
15811
15812         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
15813         reference dumps if ddr is NULL or dependence is unknown.
15814
15815 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
15816
15817         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
15818         unsigned extension into account.
15819         (ATOMIC_COMPARE_AND_SWAP): Likewise.
15820         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
15821         Do computations on a scratch register.
15822
15823 2008-03-21  Richard Guenther  <rguenther@suse.de>
15824
15825         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
15826         Use is_gimple_min_invariant instead of TREE_INVARIANT.
15827         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
15828         * tree-ssa-dom.c (record_equality): Likewise.
15829         * tree-inline.c (copy_body_r): Likewise.
15830         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
15831         TREE_INVARIANT.
15832
15833 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
15834
15835         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
15836         as 'delete_unused' argument.
15837
15838 2008-03-20  Richard Guenther  <rguenther@suse.de>
15839
15840         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
15841         special casing of constant qualifiers.
15842         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
15843         care about them in general.
15844         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
15845         regardless of their type.
15846         (fold_stmt_r): Forcefully fold *& if we end up with that.
15847
15848 2008-03-20  Paul Brook  <paul@codesourcery.com>
15849
15850         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
15851         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
15852         linker flags.
15853         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
15854         definition.
15855         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
15856         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
15857
15858 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
15859
15860         * common.opt (Wmudflap): New option.
15861         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
15862         (mx_register_decls): Likewise.
15863         (mudflap_finish_file): Likewise.
15864         * doc/invoke.texi: Document -Wno-mudflap.
15865
15866 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
15867
15868         * c-format.c (replace_format_name_to_system_name): New.
15869         (cmp_attribs): New.
15870         (convert_format_name_to_system_name): New.
15871         (decode_format_attr): Add use of convert_format_name_to_system_name.
15872         (format_types_orig): Add gnu_ prefix to names.
15873         (check_format_info_main): Special treating of \0 escaped names for
15874         supporting multi-character format specifiers as I32, I64.
15875         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
15876         (gnu_target_overrides_format_attributes): New.
15877         * c-format.h: Add structure target_ovr_attr to hold
15878         system specific formatter names.
15879         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
15880         msformat-c.o file to c_target_objs and cxx_target_objs.
15881         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
15882         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
15883         (TARGET_N_FORMAT_TYPES): New.
15884         * config/i386/msformat-c.c: New.
15885         * config/i386/t-cygming: Add build rule for msformat-c.o.
15886         * doc/extend.texi: Add new format names gnu_* and ms_* and
15887         further details.
15888         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
15889
15890 2008-03-20  Ira Rosen  <irar@il.ibm.com>
15891
15892         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
15893         optimizations turned on under -O3.
15894         (ftree-vectorize): Add that the flag is turned on with -O3.
15895
15896 2008-03-20  Ben Elliston  <bje@au.ibm.com>
15897
15898         * regmove.c (try_auto_increment): Fix spelling error in comment.
15899         * final.c (final_scan_insn): Likewise.
15900
15901 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
15902
15903         PR target/14552
15904         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
15905         allocator preferences for "y" and "r" class registers.
15906         ("*mov<mode>_internal"): Ditto.
15907         ("*movv2sf_internal_rex64"): Ditto.
15908         ("*movv2sf_internal"): Ditto.
15909
15910 2008-03-19  Michael Matz  <matz@suse.de>
15911
15912         PR middle-end/35616
15913         * calls.c (expand_call): Check overlap of arguments with call
15914         address for sibcalls.
15915
15916 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
15917
15918         PR target/35496
15919         * stor-layout.c (update_alignment_for_field): Set minimum alignment
15920         of the underlying type of a MS bitfield layout to the natural
15921         alignment of the type.
15922
15923 2008-03-19  Jan Hubicka  <jh@suse.cz>
15924
15925         PR other/35094
15926         * toplev.c (decode_d_option): Handle all CPP flags.
15927         * tree-vrp.c: Update tree_pass descriptors.
15928         * regrename.c: Update tree_pass descriptors.
15929         * fwprop.c: Update tree_pass descriptors.
15930         * doc/invoke.texi: Remove documentation of dropped -d? flags.
15931         * tree-into-ssa.c: Update tree_pass descriptors.
15932         * tree-dump.c: Update tree_pass descriptors.
15933         * tree-complex.c: Update tree_pass descriptors.
15934         * tree-dump.h: Update tree_pass descriptors.
15935         * see.c: Update tree_pass descriptors.
15936         * cgraphbuild.c: Update tree_pass descriptors.
15937         * tracer.c: Update tree_pass descriptors.
15938         * tree-loop-distribution.c: Update tree_pass descriptors.
15939         * cgraph.c: Update tree_pass descriptors.
15940         * postreload-gcse.c: Update tree_pass descriptors.
15941         * postreload.c: Update tree_pass descriptors.
15942         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
15943         * tree-tailcall.c: Update tree_pass descriptors.
15944         * tree-pass.h (tree_opt_pass): Rename to ...
15945         (opt_pass) ... this one; add "type" field and remove letter field.
15946         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
15947         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
15948         all_lowering_passes): Update declaration.
15949         * ipa-cp.c: Update tree_pass descriptors.
15950         * final.c: Update tree_pass descriptors.
15951         * omp-low.c: Update tree_pass descriptors.
15952         * tree-ssa-dse.c: Update tree_pass descriptors.
15953         * ipa-reference.c: Update tree_pass descriptors.
15954         * tree-ssa-uncprop.c: Update tree_pass descriptors.
15955         * auto-inc-dec.c: Update tree_pass descriptors.
15956         * reorg.c: Update tree_pass descriptors.
15957         * cgraphunit.c: Update tree_pass descriptors.
15958         * tree-ssa-copyrename.c: Update tree_pass descriptors.
15959         * tree-ssa-ccp.c: Update tree_pass descriptors.
15960         * df-core.c: Update tree_pass descriptors.
15961         * mode-switching.c: Update tree_pass descriptors.
15962         * tree-nomudflap.c: Update tree_pass descriptors.
15963         * modulo-sched.c: Update tree_pass descriptors.
15964         * ipa-pure-const.c: Update tree_pass descriptors.
15965         * cse.c: Update tree_pass descriptors.
15966         * web.c: Update tree_pass descriptors.
15967         * tree-stdarg.c: Update tree_pass descriptors.
15968         * tree-ssa-math-opts.c: Update tree_pass descriptors.
15969         * tree-ssa-dom.c: Update tree_pass descriptors.
15970         * tree-nrv.c: Update tree_pass descriptors.
15971         * tree-ssa-alias.c: Update tree_pass descriptors.
15972         * loop-init.c: Update tree_pass descriptors.
15973         * gimple-low.c: Update tree_pass descriptors.
15974         * ipa-inline.c: Update tree_pass descriptors.
15975         * tree-ssa-sink.c: Update tree_pass descriptors.
15976         * global.c: Update tree_pass descriptors.
15977         * ifcvt.c: Update tree_pass descriptors.
15978         * jump.c: Update tree_pass descriptors.
15979         * predict.c: Update tree_pass descriptors.
15980         * tree-ssa-loop.c: Update tree_pass descriptors.
15981         * recog.c: Update tree_pass descriptors.
15982         * dse.c: Update tree_pass descriptors.
15983         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
15984         * tree-eh.c: Update tree_pass descriptors.
15985         * regmove.c: Update tree_pass descriptors.
15986         * local-alloc.c
15987         * function.c: Update tree_pass descriptors.
15988         * tree-vectorizer.c: Update tree_pass descriptors.
15989         * gcse.c: Update tree_pass descriptors.
15990         * ipa-type-escape.c: Update tree_pass descriptors.
15991         * tree-if-conv.c: Update tree_pass descriptors.
15992         * init-regs.c: Update tree_pass descriptors.
15993         * ipa.c: Update tree_pass descriptors.
15994         * tree-ssa-phiopt.c: Update tree_pass descriptors.
15995         * rtl-factoring.c: Update tree_pass descriptors.
15996         * lower-subreg.c: Update tree_pass descriptors.
15997         * bt-load.c: Update tree_pass descriptors.
15998         * tree-dfa.c: Update tree_pass descriptors.
15999         * except.c: Update tree_pass descriptors.
16000         * emit-rtl.c: Update tree_pass descriptors.
16001         * cfgexpand.c: Update tree_pass descriptors.
16002         * tree-cfgcleanup.c: Update tree_pass descriptors.
16003         * cfgcleanup.c: Update tree_pass descriptors.
16004         * tree-ssa-pre.c: Update tree_pass descriptors.
16005         * tree-sra.c: Update tree_pass descriptors.
16006         * tree-mudflap.c: Update tree_pass descriptors.
16007         * tree-ssa-copy.c: Update tree_pass descriptors.
16008         * cfglayout.c: Update tree_pass descriptors.
16009         * tree-ssa-forwprop.c: Update tree_pass descriptors.
16010         * tree-ssa-dce.c: Update tree_pass descriptors.
16011         * tree-ssa.c: Update tree_pass descriptors.
16012         * regclass.c: Update tree_pass descriptors.
16013         * integrate.c: Update tree_pass descriptors.
16014         * tree-optimize.c: Update tree_pass descriptors.
16015         * tree-ssa-phiprop.c: Update tree_pass descriptors.
16016         * tree-object-size.c: Update tree_pass descriptors.
16017         * combine.c: Update tree_pass descriptors.
16018         * tree-outof-ssa.c: Update tree_pass descriptors.
16019         * bb-reorder.c: Update tree_pass descriptors.
16020         * stack-ptr-mod.c: Update tree_pass descriptors.
16021         * var-tracking.c: Update tree_pass descriptors.
16022         * tree-profile.c: Update tree_pass descriptors.
16023         * tree-vect-generic.c: Update tree_pass descriptors.
16024         * reg-stack.c: Update tree_pass descriptors.
16025         * sched-rgn.c: Update tree_pass descriptors.
16026         * tree-ssa-structalias.c: Update tree_pass descriptors.
16027         * tree-cfg.c: Update tree_pass descriptors.
16028         * passes.c (current_pass): Update declaration.
16029         (finish_optimization_passes): Update.
16030         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
16031         (register_one_dump_file, register_dump_files_1, next_pass_1):
16032         Update arguments.
16033         (init_optimization_passes): Update handling of new types.
16034         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
16035         * ipa-struct-reorg.c: Update tree_pass descriptors.
16036         * tree-ssa-reassoc.c: Update tree_pass descriptors.
16037         * combine-stack-adj.c: Update tree_pass descriptors.
16038         * cfgrtl.c: Update tree_pass descriptors.
16039         * dce.c: Update tree_pass descriptors.
16040         * tree-ssanames.c: Update tree_pass descriptors.
16041
16042 2008-03-19  Richard Guenther  <rguenther@suse.de>
16043
16044         PR middle-end/35609
16045         * tree-ssa.c (walk_data): New structure.
16046         (warn_uninitialized_var): If not always_executed warn with "maybe"
16047         instead of "is".
16048         (execute_early_warn_uninitialized): Compute post-dominators.
16049         Initialize always_executed before processing each basic block.
16050
16051 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
16052
16053         PR target/35504
16054         * config/i386/i386.c (x86_this_parameter): Calculate correct location
16055         of "this" pointer when "regparm = N" or "fastcall" is in effect.
16056
16057 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16058
16059         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
16060
16061 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
16062
16063         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
16064         is true.
16065         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
16066         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
16067         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
16068         target after ignore has been set, and move there also the commputation
16069         of subtarget and original_target.
16070         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
16071         (LANG_HOOKS_INITIALIZER): Remove it.
16072         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
16073
16074 2008-03-18  Richard Guenther  <rguenther@suse.de>
16075
16076         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
16077         found an expression with constants, note that in the VN for the lhs.
16078         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
16079         fold them to constants if possible.  Run cleanup_cfg if done so.
16080         (execute_pre): Return todo.
16081         (do_pre): Likewise.
16082         (execute_fre): Likewise.
16083         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
16084         of constants.
16085         (get_prop_source_stmt): Look through pointer conversions.
16086
16087 2008-03-18  Jan Hubicka  <jh@suse.cz>
16088
16089         * tree-pretty-print.c: Include predict.h.
16090         (dump_generic_node): Dump predictor.
16091         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
16092         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
16093         * gimple-low.c (lower_stmt): Likewise.
16094         * expr.c (expand_expr_real): Likewise.
16095         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
16096         them.
16097         (build_predict_expr, build_predict_expr): New.
16098         * predict.h (predictor_name, build_predict_expr): Update.
16099         * c-typeck.c (c_finish_bc_stmt): Add prediction.
16100         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
16101         * predict.def (PRED_CONTINUE): Update hitrate.
16102         * tree.def (PREDICT_EXPR): Define.
16103         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
16104         do not handle BIND_EXPR.
16105         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
16106         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
16107         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
16108         operands.
16109
16110 2008-03-18  Michael Matz  <matz@suse.de>
16111
16112         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
16113
16114 2008-03-18  Richard Guenther  <rguenther@suse.de>
16115
16116         * tree-gimple.h (is_gimple_invariant_address): Declare.
16117         (is_gimple_constant): Likewise.
16118         * tree-gimple.c (is_gimple_constant): New function.
16119         (is_gimple_invariant_address): Likewise.
16120         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
16121         and is_gimple_invariant_address.
16122         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
16123         previous change.
16124         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
16125         an addressable base.
16126
16127 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
16128
16129         PR middle-end/35611
16130         * gimplify.c (gimplify_expr): Gimplify second operand of
16131         OMP_ATOMIC_LOAD.
16132
16133 2008-03-17  Richard Guenther  <rguenther@suse.de>
16134
16135         PR tree-optimization/19637
16136         * fold-const.c (fold_unary): Remove restrictions of removing
16137         intermediate pointer-conversions (P2)(P1)P0.
16138         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
16139         conversion to void pointer.
16140         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
16141
16142 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
16143
16144         PR debug/31510
16145         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
16146         emulated thread local variables.
16147
16148 2008-03-16  Richard Guenther  <rguenther@suse.de>
16149
16150         PR middle-end/35607
16151         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
16152         expand TREE_INVARIANT operations that are not gimple invariant.
16153
16154 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
16155
16156         * doc/extend.texi (Alignment): Say that the ABI controls
16157         the __alignof__ for non-strict-alignment targets rather
16158         than being a recommendation.
16159
16160 2008-03-15  Paul Brook  <paul@codesourcery.com>
16161
16162         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
16163         annotations.
16164         (arm_output_fn_unwind): Mark functions that can not be unwound.
16165
16166 2008-03-15  Paul Brook  <paul@codesourcery.com>
16167
16168         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
16169         extension instructions.
16170
16171 2008-03-15  Richard Guenther  <rguenther@suse.de>
16172
16173         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
16174         and fold constant aggregate refs.
16175         (fold_const_aggregate_ref): Handle string constants
16176         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
16177         (evaluate_stmt): Simplify now that ccp_fold folds constant
16178         aggregate refs.
16179
16180 2008-03-15  Paul Brook  <paul@codesourcery.com>
16181
16182         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
16183         (extzv): Use gen_extzv_t2.
16184         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
16185
16186 2008-03-15  Richard Guenther  <rguenther@suse.de>
16187
16188         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
16189         (fold_const_aggregate_ref): Likewise.
16190         (get_value): Return NULL if we don't have any values.
16191         (ccp_finalize): Set const_val to NULL after freeing it.
16192         * tree-flow.h (get_symbol_constant_value): Declare.
16193         (fold_const_aggregate_ref): Likewise.
16194         * tree-ssa-sccvn.c (try_to_simplify): Use them.
16195
16196 2008-03-15  Richard Guenther  <rguenther@suse.de>
16197
16198         PR middle-end/35593
16199         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
16200         to not produce negative array indices if not allowed.  Add
16201         parameter to indicate that.
16202         (maybe_fold_offset_to_component_ref): Allow negative array
16203         indices only for the first member of a structure.
16204         (maybe_fold_offset_to_reference): Allow negative array indices.
16205         (maybe_fold_stmt_addition): Likewise.
16206
16207 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
16208             Anatoly Sokolov <aesok@post.ru>
16209
16210         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
16211         (avr_arch): Add ARCH_AVR6.
16212         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
16213         (initial_elimination_offset): Initialize and use 'avr_pc_size'
16214         instead of fixed value 2.
16215         (print_operand_address): Use gs() asm specifier instead of pm().
16216         (avr_assemble_integer): (Ditto.).
16217         (avr_output_addr_vec_elt): (Ditto.).
16218         (print_operand): Handle "!" code.
16219         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
16220         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
16221         (AVR_HAVE_EIJMP_EICALL): Define.
16222         (AVR_3_BYTE_PC): Redefine.
16223         (AVR_2_BYTE_PC): (Ditto.).
16224         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
16225         (LINK_SPEC): Add atmega2560 and atmega2561.
16226         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
16227         (crtm2561.o).
16228         * config/avr/avr.md (call_insn): Use eicall instead of icall
16229         for 3 byte PC devices.
16230         (call_value_insn): (Ditto.).
16231         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
16232         (indirect_jump): Use only for for 2 byte PC devices.
16233         (*tablejump): (Ditto.).
16234         (*indirect_jump_avr6): Add insn.
16235         (*tablejump_rjmp): Don't use for 3 byte PC devices.
16236         * config/avr/libgcc.S (__prologue_saves__): Use eijmp
16237         instead of ijmp for 3 byte PC devices.
16238         (__tablejump2__): (Ditto.).
16239         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
16240         (MULITLIB_DIRNAMES): (Ditto.).
16241         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
16242
16243 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
16244
16245         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
16246         "sse2_umulsidi3".  Use V1DI mode for operand 0.
16247         ("mmx_psadbw"): Use V1DI mode for operand 0.
16248         * config/i386/i386-modes.def (V1SI): New vector mode.
16249         * config/i386/i386.c (struct builtin_description)
16250         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
16251         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
16252         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
16253         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
16254         v1di_ftype_v8qi_v8qi type.
16255         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
16256
16257         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
16258         __builtin_ia32_pmuludq]: Fix the mode of return value.
16259
16260 2008-03-15  Richard Guenther  <rguenther@suse.de>
16261
16262         PR middle-end/35595
16263         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
16264         being a PHI_NODE.
16265
16266 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
16267
16268         * doc/invoke.texi (Option Summary, Xtensa Options): Document
16269         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
16270         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
16271         unless TARGET_SERIALIZE_VOLATILE is enabled.
16272         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
16273         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
16274         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
16275
16276 2008-03-14  Richard Guenther  <rguenther@suse.de>
16277
16278         PR tree-optimization/34172
16279         * tree-flow.h (refs_may_alias_p): Declare.
16280         (get_single_def_stmt): Likewise.
16281         (get_single_def_stmt_from_phi): Likewise.
16282         (get_single_def_stmt_with_phi): Likewise.
16283         * tree-dfa.c (refs_may_alias_p): New function.
16284         (get_single_def_stmt): Likewise.
16285         (get_single_def_stmt_from_phi): Likewise.
16286         (get_single_def_stmt_with_phi): Likewise.
16287         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
16288         (vn_reference_lookup_1): New helper function.
16289         (vn_reference_lookup): Walk the virtual use-def chain to
16290         continue searching for a match if the def does not alias the
16291         reference we are looking for.
16292
16293 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
16294
16295         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
16296         archive and Perzl.  Update The Written Word listing.
16297
16298 2008-03-14  Richard Guenther  <rguenther@suse.de>
16299
16300         PR tree-optimization/34043
16301         PR tree-optimization/33989
16302         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
16303         when doing FRE.
16304         (bitmap_find_leader): Use extra argument to verify dominance
16305         relationship inside a basic-block.
16306         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
16307         (find_leader_in_sets): Adjust.
16308         (create_component_ref_by_pieces): Take extra argument for
16309         dominance check, handle lookup failures.
16310         (find_or_generate_expression): Likewise.
16311         (create_expression_by_pieces): Likewise.
16312         (insert_into_preds_of_block): Adjust.
16313         (create_value_expr_from): If asked for, verify all operands
16314         are in the blocks AVAIL_OUT set.
16315         (make_values_for_stmt): Check for SSA_NAMEs that are life
16316         over an abnormal edge.
16317         (compute_avail): Remove such check.
16318         (do_SCCVN_insertion): New function.
16319         (eliminate): If we do not find a leader suitable for replacement
16320         insert a replacement expression from SCCVN if available.
16321         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
16322         (struct vn_ssa_aux): Add needs_insertion flag.
16323         * tree-ssa-sccvn.c (may_insert): New global flag.
16324         (copy_reference_ops_from_ref): Value-number union member access
16325         based on its size, not type and member if insertion is allowed.
16326         (visit_reference_op_load): For a weak match from union type
16327         punning lookup a view-converted value and insert a SSA_NAME
16328         for that value if that is not found.
16329         (visit_use): Make dumps shorter.  Do not disallow value numbering
16330         SSA_NAMEs that are life over an abnormal edge to constants.
16331         (free_scc_vn): Release inserted SSA_NAMEs.
16332         (run_scc_vn): New flag to specify whether insertion is allowed.
16333         Process SSA_NAMEs in forward order.
16334         * tree-ssa-loop-im.c (for_each_index): Handle invariant
16335         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
16336         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
16337         pointer type to/from integral types that do not change the
16338         precision to regular conversions.
16339
16340 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
16341
16342         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
16343         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
16344         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
16345         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
16346         input arguments and the mode of return value.  Built-in functions
16347         that operate on whole 64-bit MMX register now use V1DI mode.
16348
16349 2008-03-13  Alon Dayan  <alond@il.ibm.com>
16350             Olga Golovanevsky  <olga@il.ibm.com>
16351
16352         PR tree-optimization/35041
16353         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
16354         to locate the right position in a statement.
16355
16356 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
16357
16358         PR target/34000
16359         PR target/35553
16360         * config/i386/xmmintrin.h:  Change all static inline functions to
16361         extern inline and add __gnu_inline__ attribute.
16362         * config/i386/bmintrin.h: Ditto.
16363         * config/i386/smmintrin.h: Ditto.
16364         * config/i386/tmmintrin.h: Ditto.
16365         * config/i386/mmintrin-common.h: Ditto.
16366         * config/i386/ammintrin.h: Ditto.
16367         * config/i386/emmintrin.h: Ditto.
16368         * config/i386/pmmintrin.h: Ditto.
16369         * config/i386/mmintrin.h: Ditto.
16370         * config/i386/mm3dnow.h: Ditto.
16371
16372 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
16373
16374         PR middle-end/35185
16375         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
16376         (lower_omp_2): New function.
16377         (lower_omp_1, lower_omp): Rewritten.
16378
16379 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
16380
16381         PR 35054
16382         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
16383         with the phrase "Microsoft Windows compilers".
16384         (Push/Pop Macro Pragmas): New subsection. Document
16385         #pragma push_macro and pragma pop_macro.
16386
16387 2008-03-12  Paul Brook  <paul@codesourcery.com>
16388
16389         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
16390
16391 2008-03-12  Paul Brook  <paul@codesourcery.com>
16392
16393         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
16394         (thumb2_alusi3_short): Exclude PLUS and MINUS.
16395         (thumb2_addsi_shortim): Rename ...
16396         (thumb2_addsi_short): ... to this.  Allow register operands.
16397         (thumb2_subsi_short): New pattern.
16398         (thumb2_one_cmplsi2_short,
16399         thumb2_negsi2_short): New patterns and peepholes.
16400
16401 2008-03-12  Paul Brook  <paul@codesourcery.com>
16402
16403         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
16404
16405 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
16406
16407         * config/i386/i386.md (int_cond): New code iterator.
16408         (fp_cond): Ditto.
16409         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
16410         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
16411         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
16412         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
16413         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
16414         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
16415         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
16416         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
16417
16418 2008-03-12  Paul Brook  <paul@codesourcery.com>
16419
16420         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
16421         instead of {arm,thumb}_compute_save_reg_mask.
16422         (output_return_instruction): Ditto.
16423         (thumb_unexpanded_epilogue): Ditto.
16424         (thumb1_expand_prologue): Ditto.
16425         (thumb1_output_function_prologue): Ditto.
16426         (arm_set_return_address): Ditto.
16427         (thumb_set_return_address): Ditto.
16428         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
16429         regs to achieve stack alignment.
16430         (thumb1_compute_save_reg_mask): Fix compiler warning.
16431         (arm_output_epilogue): Use offsets->saved_regs_mask.
16432         Adjust stack pointer by poping call clobered registers.
16433         (arm_expand_prologue): Use offsets->saved_regs_mask.
16434         Adjust stack pointer by pushing extra registers.
16435         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
16436
16437 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
16438
16439         PR tree-opt/35422
16440         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
16441         conversion to the operands of a multiplication.
16442
16443 2008-03-12  Richard Guenther  <rguenther@suse.de>
16444
16445         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
16446         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
16447         * timevar.def (TV_TREE_PHIPROP): Add.
16448         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
16449         pass description.  Use TV_TREE_PHIPROP.
16450         * tree-ssa-forwprop.c: Remove phiprop code.
16451
16452 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
16453
16454         PR middle-end/35549
16455         * omp-low.c (maybe_lookup_decl): Constify first argument.
16456         (use_pointer_for_field): Change last argument from bool to
16457         omp_context *.  Disallow shared copy-in/out in nested
16458         parallel if decl is shared in outer parallel too.
16459         (build_outer_var_ref, scan_sharing_clauses,
16460         lower_rec_input_clauses, lower_copyprivate_clauses,
16461         lower_send_clauses, lower_send_shared_vars): Adjust callers.
16462
16463 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
16464             Ira Rosen  <irar@il.ibm.com>
16465
16466         * tree-vectorizer.c (free_stmt_vec_info): New function.
16467         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
16468         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
16469         * tree-vectorizer.h (free_stmt_vec_info): Declare.
16470         * tree-vect-transform.c (vectorizable_conversion): Free
16471         vec_oprnds0 if it was allocated.
16472         (vect_permute_store_chain): Remove unused VECs.
16473         (vectorizable_store): Free VECs that are allocated in the..
16474         function.
16475         (vect_transform_strided_load, vectorizable_load): Likewise.
16476         (vect_remove_stores): Simplify the code.
16477         (vect_transform_loop): Move code to vect_remove_stores().
16478         Call vect_remove_stores() and free_stmt_vec_info().
16479
16480 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16481
16482         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
16483         TARGET_HPUX.  Revise comment.
16484         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
16485         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
16486         Use sr4 variant of `be' instruction when not generating PIC code.
16487         (attr_length_call): Adjust for above change.
16488
16489 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16490
16491         * ipa-reference.c (static_execute): Remove module_statics_const and
16492         associated setting code.
16493
16494 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
16495
16496         PR target/35540
16497         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
16498         predicate for operand 1.
16499         (paritysi2_cmp): Use register_operand predicate for operand 2.
16500         Use earlyclobber modifier for operand 1.  Remove support for
16501         memory operands.
16502         (paritydi2_cmp): Use register_operand predicate for operand 3.
16503         Use earlyclobber modifier for operand 1.  Remove support for
16504         memory operands.
16505
16506 2008-03-11  Paul Brook  <paul@codesourcery.com>
16507             Vladimir Prus  <vladimir@codesourcery.com>
16508
16509         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
16510         (arm_compute_save_reg0_reg12_mask): Always
16511         check if register 11 must be saved.  Always safe hard frame pointer
16512         when frame_pointer_needeed.
16513         (arm_compute_save_reg_mask): Save IP and PC
16514         only with apcs frames.
16515         (arm_output_epilogue): Adjust Thumb2 codepath to
16516         be also invoked and work for ARM non-apcs frames.
16517         (arm_expand_prologue): Don't bother saving IP
16518         for non-apcs frame, since it's not clobbered by
16519         prologue code.  Implement non-apcs frame
16520         layout.
16521
16522 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
16523
16524         PR rtl-optimization/35281
16525         * expr.c (convert_move): Use a new pseudo for the intermediate
16526         from_mode->word_mode result.
16527
16528 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
16529
16530         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
16531         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
16532         * toplev.c (compile_file): Don't call it.
16533
16534 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
16535
16536         PR middle-end/35526
16537         * expr.c (store_expr): Call emit_block_move if the mode
16538         of "temp" RTX is BLKmode.
16539
16540 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16541             Richard Guenther  <rguenther@suse.de>
16542
16543         PR tree-optimization/31358
16544         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
16545         the step with a NULL_TREE.
16546         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
16547         to sizetype if type is a pointer type.
16548         (add_candidate_1): Don't convert the base and step to
16549         the generic type if the orginal type is a pointer type.
16550         (add_iv_value_candidates): Use sizetype for the step
16551         if type is a pointer type.
16552         (cand_value_at): Likewise.
16553         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
16554         for pointer types.
16555         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
16556         Don't convert the tem affine to the type.
16557         (add_elt_to_tree): Use sizetype for the step if a pointer.
16558         Use POINTER_PLUS_EXPR for pointers.
16559         (aff_combination_to_tree): Use sizetype for the step if a
16560         pointer.
16561
16562 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
16563
16564         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
16565         Remove commutativity hint.
16566
16567 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
16568
16569         PR c/35438
16570         PR c/35439
16571         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
16572         errorneous type.  Check that v is a VAR_DECL.
16573
16574         PR middle-end/35099
16575         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
16576
16577 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
16578
16579         PR tree-optimization/35494
16580         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
16581         may be overriden at link and run time.
16582
16583 2008-03-10  Richard Guenther  <rguenther@suse.de>
16584
16585         PR tree-optimization/34677
16586         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
16587         (poolify_tree): Likewise.
16588         (modify_expr_template): Likewise.
16589         (poolify_modify_stmt): Likewise.
16590         (insert_fake_stores): Handle all component-ref style stores
16591         in addition to INDIRECT_REF.  Also handle complex types.
16592         Do not poolify the inserted load.
16593         (realify_fake_stores): Do not rebuild the tree but only
16594         make it a SSA_NAME copy.
16595         (init_pre): Remove initialzation of modify_expr_template.
16596         Do not allocate modify_expr_node_pool.
16597         (fini_pre): Do not free modify_expr_node_pool.
16598
16599 2008-03-10  Paul Brook  <paul@codesourcery.com>
16600
16601         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
16602         to avoid conflicts.
16603
16604 2008-03-10  Paul Brook  <paul@codesourcery.com>
16605             Mark Shinwell  <shinwell@codesourcery.com>
16606
16607         * config/arm/cortex-r4.md: New.
16608         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
16609         insn attributes.
16610         * config/arm/arm.md: Include cortex-r4.md.
16611         (insn): Add smmls, sdiv and udiv values.
16612         (generic_sched): Don't use generic scheduling for Cortex-R4.
16613         (arm_issue_rate): New function.
16614         (TARGET_SCHED_ISSUE_RATE): Define.
16615
16616 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
16617
16618         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
16619
16620 2008-03-10  Richard Guenther  <rguenther@suse.de>
16621
16622         * tree-ssa-pre.c (get_sccvn_value): Simplify.
16623         (compute_avail): Do not add stmt uses to AVAIL_OUT.
16624
16625 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
16626
16627         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
16628         Set default to true.
16629
16630 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16631
16632         * c.opt (Wsynth): Deprecate.
16633         * doc/invoke.texi (Option Summary, Warning Options): Document
16634         -Wno-format-contains-nul.
16635
16636 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
16637
16638         PR target/35496
16639         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
16640         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
16641
16642 2008-03-09  Ira Rosen  <irar@il.ibm.com>
16643
16644         * config/rs6000/rs6000.c (builtin_description): Rename vector
16645         left shift operations.
16646         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
16647         (altivec_vsl<VI_char>): Rename to ...
16648         (ashl<mode>3): ... new name.
16649         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
16650         gen_ashlv4si3.
16651         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
16652
16653 2008-03-08  Richard Guenther  <rguenther@suse.de>
16654
16655         * coverage.h (tree_coverage_counter_addr): Declare.
16656         * coverage.c (tree_coverage_counter_addr): New function.
16657         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
16658         before using again.
16659         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
16660         (tree_gen_one_value_profiler): Likewise.
16661         (tree_gen_ic_profiler): Likewise.
16662         (tree_gen_average_profiler): Likewise.
16663         (tree_gen_ior_profiler): Likewise.
16664
16665 2008-03-08  Richard Guenther  <rguenther@suse.de>
16666
16667         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
16668         (vn_binary_op_insert): Likewise.
16669         (vn_unary_op_lookup): Likewise.
16670         (vn_unary_op_insert): Likewise.
16671         (vn_nary_op_lookup): Declare.
16672         (vn_nary_op_insert): Likewise.
16673         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
16674         and binary hashes, use a single obstack for unary_op_pool
16675         and binary_op_pool.
16676         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
16677         a single struct vn_nary_op_s.  Store tree code length and
16678         a variable number of operands.
16679         (struct vn_reference_op_struct): Remove unused op2.
16680         (vn_reference_op_eq): Do not compare op2.
16681         (vn_reference_op_compute_hash): Do not compute hash of op2.
16682         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
16683         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
16684         with vn_nary_op_compute_hash.
16685         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
16686         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
16687         vn_nary_op_lookup.
16688         (vn_unary_op_insert, vn_binary_op_insert): Replace with
16689         vn_nary_op_insert.
16690         (visit_unary_op): Call nary functions.
16691         (visit_binary_op): Likewise.
16692         (process_scc): Adjust for struct vn_tables_s changes.
16693         (allocate_vn_table): Likewise.
16694         (free_vn_table): Likewise.
16695         * tree-vn.c (vn_add): Call nary functions.
16696         (vn_lookup): Likewise.
16697
16698 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
16699
16700         PR target/35498
16701         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
16702         wdst back after sync_compare_and_swapqhi_internal.
16703
16704 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
16705
16706         PR target/22152
16707         * config/i386/i386-modes.def (V1DI): New vector mode.
16708         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
16709         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
16710         (MMXMODE248): Ditto.
16711         (MMXMODE): Add V1DI mode.
16712         (mmxvecsize): Change DI mode to V1DI mode.
16713         ("mov<mode>): Use MMXMODEI8 mode iterator.
16714         ("*mov<mode>_internal_rex64"): Ditto.
16715         ("*mov<mode>_internal"): Ditto.
16716         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
16717         ("mmx_sub<mode>3"): Ditto.
16718         ("mmx_adddi3"): Remove insn pattern.
16719         ("mmx_subdi3"): Ditto.
16720         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
16721         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
16722         ("mmx_ashl<mode>3"): Ditto.
16723         ("mmx_lshrdi3"): Remove insn pattern.
16724         ("mmx_ashldi3"): Ditto.
16725         * config/i386/i386.c (classify_argument): Handle V1DImode.
16726         (function_arg_advance_32): Ditto.
16727         (function_arg_32): Ditto.
16728         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
16729         mmx_addv1di3 insn pattern.
16730         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
16731         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
16732         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
16733         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
16734         Remove definitions of built-in functions.
16735         (V1DI_type_node): New node.
16736         (v1di_ftype_v1di_int): Ditto.
16737         (v1di_ftype_v1di_v1di): Ditto.
16738         (v2si_ftype_v2si_si): Ditto.
16739         (v4hi_ftype_v4hi_di): Remove node.
16740         (v2si_ftype_v2si_di): Ditto.
16741         (ix86_init_mmx_sse_builtins): Handle V1DImode.
16742         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
16743         Redefine builtins using def_builtin_const with *_ftype_*_int node.
16744         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
16745         Add new builtins using def_builtin_const.
16746         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
16747         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
16748         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
16749         * config/i386/mmintrin.h (__v1di): New typedef.
16750         (_mm_add_si64): Cast arguments to __v1di type.
16751         (_mm_sub_si64): Ditto.
16752         (_mm_sll_pi16): Cast __count to __v4hi type.
16753         (_mm_sll_pi32): Cast __count to __v2si type.
16754         (_mm_sll_si64): Cast arguments to __v1di type.
16755         (_mm_srl_pi16): Cast __count to __v4hi type.
16756         (_mm_srl_pi32): Cast __count to __v2si type.
16757         (_mm_srl_si64): Cast arguments to __v1di type.
16758         (_mm_sra_pi16): Cast __count to __v4hi type.
16759         (_mm_sra_pi32): Cast __count to __v2si type.
16760         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
16761         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
16762         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
16763         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
16764         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
16765         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
16766         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
16767         (_mm_srai_pi32): Use __builtin_ia32_psradi.
16768         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
16769         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
16770         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
16771         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
16772
16773 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
16774
16775         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
16776
16777 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
16778
16779         PR target/35373
16780         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
16781         reg+const addressing for Altivec modes.  Don't generate reg+reg
16782         addressing for TFmode or TDmode quantities.
16783
16784 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
16785
16786         * c-common.c (vector_types_convertible_p): Call langhook
16787         instead of comptypes.
16788
16789 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16790
16791         PR tree-opt/35402
16792         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
16793         integral and scalar float variables which have a
16794         NULL DECL_INITIAL.
16795
16796 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
16797
16798         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
16799         dwarf_register_span hook when emitting unwind information for
16800         register-to-memory saves.
16801         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
16802         (rs6000_frame_related): Remove call to spe_synthesize_frame.
16803
16804 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
16805
16806         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
16807         for the same VAR_DECL.
16808
16809 2008-03-06  Tom Tromey  <tromey@redhat.com>
16810
16811         * treelang: Delete.
16812         * doc/standards.texi (Standards): Don't mention treelang.
16813         * doc/invoke.texi (Overall Options): Don't mention treelang.
16814         * doc/install.texi (Prerequisites): Don't mention bison or
16815         treelang.
16816         (Configuration): Don't mention treelang.
16817         (Building): Likewise.
16818         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
16819
16820 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
16821
16822         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
16823         word-extractions out of a multi-word object.
16824
16825 2008-03-06  Richard Guenther  <rguenther@suse.de>
16826
16827         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
16828         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
16829         result type and precision.
16830         * expr.c (get_inner_reference): Set unsignedp based on the result
16831         type of BIT_FIELD_REF.
16832         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
16833         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
16834         (try_instantiate_multiple_fields): Likewise.  Use the correct type
16835         for BIT_FIELD_REF.
16836         (sra_build_assignment): Likewise.
16837         (sra_build_elt_assignment): Likewise.
16838         (sra_explode_bitfield_assignment): Likewise.
16839         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
16840         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
16841         set BIT_FIELD_REF_UNSIGNED.
16842         (vectorizable_load): Likewise.
16843
16844 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
16845
16846         * cse.c (cse_extended_basic_block): Invalidate artificial defs
16847         at bb start.
16848
16849 2008-03-06  Richard Guenther  <rguenther@suse.de>
16850
16851         * alias.c (struct alias_set_entry): Move has_zero_child field
16852         to pack with alias_set.
16853
16854 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
16855
16856         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
16857         32bit host.
16858
16859 2008-03-05  Ian Lance Taylor  <iant@google.com>
16860
16861         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
16862
16863 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
16864
16865         * fwprop.c (update_df): Support width and offset parameters of
16866         df_ref_create.
16867         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
16868         global_conflicts): Change DF_REF_EXTRACT to either
16869         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
16870         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
16871         * df-scan.c (df_ref_record, df_defs_record,
16872         df_ref_create_structure, df_def_record_1, df_uses_record,
16873         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
16874         df_bb_refs_collect, df_entry_block_defs_collect,
16875         df_exit_block_uses_collect): Support new width and offset fields.
16876         (ref_extract_pool): New storage pool.
16877         (df_free_ref): New function.
16878         (df_reg_chain_unlink, df_free_collection_rec,
16879         df_sort_and_compress_refs): Call df_free_ref.
16880         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
16881         of df_ref_extract.
16882         (df_ref_create_structure): Allocate df_ref_extract if offset and
16883         width fields are used.
16884         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
16885         (df_uses_record): Get offset and width from ZERO_EXTRACT
16886         and SIGN_EXTRACT.
16887         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
16888         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
16889         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
16890         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
16891         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
16892         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
16893         (df_ref_extract): New structure.
16894         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
16895         (df_ref_create): Add width and offset parameters.
16896
16897 2008-03-05  Richard Guenther  <rguenther@suse.de>
16898
16899         * tree-ssa-structalias.c (get_constraint_for_component_ref):
16900         Use ranges_overlap_p.
16901         (offset_overlaps_with_access): Rename
16902         to ranges_overlap_p and move ...
16903         * tree-flow-inline.h (ranges_overlap_p): ... here.
16904
16905         * tree.h (get_inner_reference, handled_component_p): Update
16906         comments.
16907
16908         * tree.h (record_component_aliases, get_alias_set,
16909         alias_sets_conflict_p, alias_sets_must_conflict_p,
16910         objects_must_conflict_p): Move declarations ...
16911         * alias.h (record_component_aliases, get_alias_set,
16912         alias_sets_conflict_p, alias_sets_must_conflict_p,
16913         objects_must_conflict_p): ... here.
16914         Include coretypes.h.
16915         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
16916
16917 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
16918
16919         * cfg.c: Include tree-flow.h.
16920         (remove_edge_raw): Call redirect_edge_var_map_clear.
16921         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
16922         * tree-flow-inline.h (redirect_edge_var_map_def): New.
16923         (redirect_edge_var_map_result): New.
16924         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
16925         PENDING_STMT use with redirect_edge_var_map_*.
16926         * tree-ssa.c (edge_var_maps): New definition.
16927         (redirect_edge_var_map_add): New.
16928         (redirect_edge_var_map_clear): New.
16929         (redirect_edge_var_map_dup): New.
16930         (redirect_edge_var_map_vector): New.
16931         (redirect_edge_var_map_destroy): New.
16932         (ssa_redirect_edge): Replace PENDING_STMT use with
16933         redirect_edge_var_map_*.
16934         (flush_pending_stmts): Same.
16935         (delete_tree_ssa): Destroy edge var map.
16936         * tree-flow.h (struct _edge_var_map): New.
16937         Define edge_var_map vector type.
16938         Declare redirect_edge_var_map_* prototypes.
16939         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
16940         * tree-cfg.c (reinstall_phi_args): Replace
16941         PENDING_STMT use with redirect_edge_var_map_*.
16942
16943 2008-03-05  Richard Guenther  <rguenther@suse.de>
16944
16945         PR tree-optimization/35472
16946         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
16947         whose single use_stmt has a overlapping set of loaded and
16948         stored symbols as that use_stmt might be a noop assignment then.
16949
16950 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
16951
16952         * gthr-rtems.h: Implement __gthread_mutex_destroy.
16953
16954 2008-03-05  Richard Guenther  <rguenther@suse.de>
16955
16956         PR c++/35336
16957         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
16958         should be constants.
16959         * tree-cfg.c (verify_expr): Verify it.
16960         * fold-const.c (fold_truthop): Remove code generating
16961         BIT_FIELD_REFs of structure bases.
16962         (fold_binary): Likewise.
16963         (fold_ternary): Position and size of BIT_FIELD_REFs are
16964         always host integers.
16965         (make_bit_field_ref): Remove.
16966         (optimize_bit_field_compare): Remove.
16967         (all_ones_mask_p): Remove.
16968
16969 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
16970
16971         PR gcc/33009
16972         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
16973         (split_block_and_df_analyze): New. Split basic block and rebuild
16974         dataflow.
16975         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
16976         SPLIT_BLOCK.
16977         (split_pattern_seq): Likewise.
16978         (erase_matching_seqs): Likewise.
16979         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
16980
16981 2008-03-04  Geoff Keating  <geoffk@apple.com>
16982
16983         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
16984         declaration and code.
16985         (tree_invalid_nonnegative_warnv_p): Likewise.
16986
16987 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
16988
16989         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
16990         examples.  Truncate option-names then causing overfull hbox.
16991
16992 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16993
16994         PR target/35222
16995         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
16996         on hpux10.
16997         * configure: Rebuilt.
16998
16999 2008-03-04  Rafael Espindola  <espindola@google.com>
17000
17001         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
17002         (tree_unary_nonnegative_warnv_p): New.
17003         (tree_binary_nonnegative_warnv_p): New.
17004         (tree_single_nonnegative_warnv_p): New.
17005         (tree_invalid_nonnegative_warnv_p): New.
17006         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
17007
17008 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17009
17010         PR 28322
17011         * opts.c (handle_option): Postpone 'unknown option' errors only for
17012         warning options.
17013
17014 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
17015
17016         PR target/35453
17017         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
17018         (_SIDD_XXX): This.
17019
17020 2008-03-04  Rafael Espindola  <espindola@google.com>
17021
17022         * fold-const.c (tree_unary_nonzero_warnv_p): New.
17023         (tree_binary_nonzero_warnv_p): New.
17024         (tree_single_nonzero_warnv_p): New.
17025         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
17026
17027 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
17028
17029         PR middle-end/35456
17030         * fold-const.c (fold_cond_expr_with_comparison): Prevent
17031         transformations for modes that have signed zeros.
17032         * ifcvt.c (noce_try_abs): Ditto.
17033
17034 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
17035
17036         * config/i386/i386.c (override_options): Force
17037         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
17038
17039 2008-03-04  Jan Hubicka  <jh@suse.cz>
17040
17041         PR c++/35262
17042         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
17043         in last commit.
17044
17045 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
17046
17047         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
17048         label to probe the stack.
17049
17050 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
17051
17052         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
17053         (__gthr_win32_mutex_destroy): Declare.
17054         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
17055         __gthr_win32_mutex_destroy.
17056         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
17057
17058 2008-03-03  Jan Hubicka  <jh@suse.cz>
17059
17060         PR c++/35262
17061         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
17062         aggressive on inlining cold calls.
17063
17064 2008-03-03  Richard Guenther  <rguenther@suse.de>
17065
17066         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
17067         struct copies into the expression table.
17068         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
17069         (try_to_simplify): Likewise.
17070         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
17071         integral and pointer arguments which do not change the
17072         precision to NOP_EXPRs.
17073         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
17074         VIEW_CONVERT_EXPR case.
17075
17076 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
17077
17078         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
17079         defined in a loop at depth 0 is invariant.
17080         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
17081         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
17082         be called at loop depth 0.
17083
17084 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
17085
17086         PR driver/35420
17087         * gcc.c (process_command): Update copyright notice dates.
17088         * gcov.c (print_version): Likewise.
17089         * gcov-dump.c (print_version): Likewise.
17090         * mips-tfile.c (main): Likewise.
17091         * mips-tdump.c (main): Likewise.
17092
17093 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17094
17095         PR 24924
17096         * c-common.c (flag_permissive): Delete.
17097         (constant_expression_warnings): Check flags first.
17098         (constant_expression_error): New.
17099         * c-common.h (flag_permissive): Delete.
17100         (constant_expression_error): Declare.
17101         * flags.h (flag_permissive): Declare. Update description.
17102         * diagnostic.c (pedwarn): Update.
17103         (permerror): New.
17104         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
17105         (permissive_error_kind): New.
17106         * toplev.c (flag_permissive): Define. Update description.
17107         * toplev.h (permissive_error_kind): Declare.
17108         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
17109         (pedwarn_c90): Use pedantic_warning_kind.
17110         * c-opts.c (c_common_post_options): flag_permissive does not affect
17111         flag_pedantic_errors.
17112
17113 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
17114
17115         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
17116         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
17117         __absvsi2, __absvDI2): Use unsigned arithmetic.
17118
17119 2008-03-02  Andi Kleen  <ak@suse.de>
17120             Richard Guenther  <rguenther@suse.de>
17121
17122         * struct-equiv.c: Remove file.
17123         * cfg_cleanup.c (condjump_equiv_p): Remove.
17124         * Makefile.in (OBJS-common): Remove struct-equiv.o.
17125         (struct-equiv.o): Remove rule.
17126         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
17127         insns_match_p, struct_equiv_block_eq, struct_equiv_init,
17128         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
17129
17130 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
17131
17132         * ifcvt.c (noce_process_if_block): Try to handle only the then
17133         block if the else block exists but isn't suitable.
17134
17135 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
17136
17137         PR gcc/35063
17138         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
17139         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
17140         regression from previous patch.
17141
17142 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
17143
17144         PR gcc/35063
17145         * gthr.h: Add __gthread_mutex_destroy as a function that must be
17146         implemented.
17147         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
17148         * gthr-single.h (__gthread_mutex_destroy): Likewise.
17149         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
17150         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
17151         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
17152         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
17153         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
17154         (__gthread_mutex_destroy_function): Rename to
17155         __gthread_mutex_destroy.
17156         * gthr-dce.h (__gthread_mutex_destroy): Call
17157         pthread_mutex_destroy.
17158         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
17159         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
17160         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
17161
17162 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
17163
17164         * df-scan.c (df_ref_chain_change_bb): Simplify.
17165         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
17166         set_block_for_insn if there's any change.
17167         * df.h ((df_insn_change_bb): Fix prototype.
17168         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
17169         df_insn_change_bb, don't call set_block_for_insn.
17170         * emit-rtl.c (reorder_insns): Likewise.
17171         * haifa-sched.c (move_insn): Likewise.
17172
17173 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
17174
17175         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
17176
17177 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
17178
17179         * tree-flow-inline.h (next_readonly_imm_use): Return
17180         NULL_USE_OPERAND_P after the end.
17181
17182 2008-03-01  Richard Guenther  <rguenther@suse.de>
17183
17184         PR tree-optimization/35411
17185         * tree-sra.c (sra_build_assignment): Split conversion to
17186         final type to a separate statement if we are not assigning
17187         to a register.
17188
17189 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
17190
17191         * fold-const.c (fold_convertible_p): Correct the logic to follow
17192         that in fold_convert().
17193
17194 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
17195
17196         PR c++/35315
17197         * tree-inline.c (build_duplicate_type): When we make a
17198         duplicate type, make it unique in the canonical types system.
17199
17200 2008-02-29  Tom Tromey  <tromey@redhat.com>
17201
17202         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
17203         input_file_stack_history, input_file_stack_restored): Remove.
17204         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
17205         * input.h (struct file_stack): Remove.
17206         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
17207         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
17208         Likewise.
17209         * diagnostic.h (struct diagnostic_context) <last_module>: Change
17210         type.
17211         (diagnostic_last_module_changed): Add 'map' argument.
17212         (diagnostic_set_last_function): Likewise.
17213         * diagnostic.c (undiagnostic_report_current_module): Iterate using
17214         line map, not input_file_stack.
17215         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
17216
17217 2008-02-29  Paul Brook  <paul@codesourcery.com>
17218
17219         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
17220
17221 2008-02-29  Paul Brook  <paul@codesourcery.com>
17222
17223         * config/arm/ieee754-df.S (muldf3): Use RET macros.
17224
17225 2008-02-29  Richard Guenther  <rguenther@suse.de>
17226
17227         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
17228         vn_lookup_or_add.
17229         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
17230         value for comparing for a store match.
17231         (simplify_unary_expression): Do nothing for SSA_NAMEs.
17232         (try_to_simplify): Do not do a full-blown reference lookup.
17233
17234 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
17235
17236         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
17237         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
17238
17239         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
17240
17241 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
17242
17243         * tree-loop-linear.c (try_interchange_loops): Compare memory access
17244         strides against cache sizes.
17245
17246 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
17247
17248         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
17249         constant to fpul.
17250
17251 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
17252
17253         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
17254         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
17255         is smaller than the original promoted value.
17256         (simplify_subreg): If OP is a SUBREG, try to preserve its
17257         SUBREG_PROMOTED_VAR_P information.
17258
17259 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
17260
17261         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
17262         (VN_INFO_GET): Allocate new objects on the obstack.
17263         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
17264         for rpo_numbers_temp, for consistency.
17265         (free_scc_vn): Free the obstack.
17266
17267 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
17268
17269         * doc/invoke.texi: Document -ftree-loop-distribution.
17270         * tree-loop-distribution.c: New.
17271         * tree-pass.h (pass_loop_distribution): New.
17272         * graphds.h (struct graph): Add htab_t indices.
17273         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
17274         * tree-vectorizer.c (rename_variables_in_loop): Extern.
17275         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
17276         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
17277         * tree-data-ref.c (debug_data_dependence_relations): New.
17278         (dump_data_dependence_relation): Also print data references.
17279         (free_data_ref): Extern.
17280         (same_access_functions): Moved...
17281         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
17282         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
17283         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
17284         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
17285         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
17286         (stmts_from_loop): Skip LABEL_EXPR.
17287         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
17288         New.
17289         (build_rdg): Initialize rdg->indices htab.
17290         (free_rdg, stores_from_loop, ref_base_address,
17291         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
17292         have_similar_memory_accesses_1, ref_base_address_1,
17293         remove_similar_memory_refs): New.
17294         * tree-data-ref.h: Depend on tree-chrec.h.
17295         (debug_data_dependence_relations, free_data_ref): Declared.
17296         (same_access_functions): ... here.
17297         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
17298         New.
17299         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
17300         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
17301         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
17302         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
17303         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
17304         rdg_vertex_for_stmt): Declared.
17305         (struct rdg_edge): Add level.
17306         (RDGE_LEVEL): New.
17307         (free_rdg, stores_from_loop, remove_similar_memory_refs,
17308         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
17309         Declared.
17310         (rdg_has_similar_memory_accesses): New.
17311         * tree-vect-analyze.c: Remove unused static decls.
17312         * lambda.h (dependence_level): New.
17313         * common.opt (ftree-loop-distribution): New.
17314         * tree-flow.h (mark_virtual_ops_in_bb,
17315         slpeel_tree_duplicate_loop_to_edge_cfg,
17316         rename_variables_in_loop): Declared.
17317         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
17318         (OBJS-common): Add tree-loop-distribution.o.
17319         (tree-loop-distribution.o): New rule.
17320         * tree-cfg.c (mark_virtual_ops_in_bb): New.
17321         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
17322         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
17323
17324 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
17325
17326         PR target/33963
17327         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
17328         other than structures and unions.
17329
17330 2008-02-28  Richard Guenther  <rguenther@suse.de>
17331
17332         Revert:
17333         2008-02-26  Richard Guenther  <rguenther@suse.de>
17334
17335         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
17336         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
17337         (lookup_decl_from_uid): Declare.
17338         (remove_decl_from_map): Likewise.
17339         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
17340         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
17341         (decl_for_uid_map): New global hashtable mapping DECL_UID
17342         to the decl tree.
17343         (init_ttree): Allocate it.
17344         (insert_decl_to_uid_decl_map): New helper function.
17345         (make_node_stat): Insert new decls into the map.
17346         (copy_node_stat): Likewise.
17347         (lookup_decl_from_uid): New function.
17348         (remove_decl_from_map): Likewise.
17349         (print_decl_for_uid_map_statistics): New helper.
17350         (dump_tree_statistics): Call it.
17351
17352         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
17353         (referenced_var_iterator): Adjust.
17354         (FOR_EACH_REFERENCED_VAR): Adjust.
17355         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
17356         (num_referenced_vars): Adjust.
17357         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
17358         (first_referenced_var): Remove.
17359         (end_referenced_vars_p): Likewise.
17360         (next_referenced_var): Likewise.
17361         (referenced_var_iterator_set): New helper function.
17362         * tree-dfa.c (referenced_var_lookup): Adjust.
17363         (referenced_var_check_and_insert): Likewise.
17364         (remove_referenced_var): Likewise.
17365         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
17366         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17367         (verify_call_clobbering): Likewise.
17368         (verify_memory_partitions): Likewise.
17369         (init_tree_ssa): Allocate bitmap instead of hashtable for
17370         referenced_vars.
17371         (delete_tree_ssa): Adjust.
17372         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
17373         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17374         (compute_tag_properties): Likewise.
17375         (set_initial_properties): Likewise.
17376         (find_partition_for): Likewise.
17377         (update_reference_counts): Likewise.
17378         (dump_may_aliases_for): Likewise.
17379         * tree-ssa-operands.c (add_virtual_operand): Likewise.
17380         (add_call_clobber_ops): Likewise.
17381         (add_call_read_ops): Likewise.
17382         (get_asm_expr_operands): Likewise.
17383         * tree-into-ssa.c (dump_decl_set): Likewise.
17384         (update_ssa): Likewise.
17385         * tree-sra.c (scan_function): Likewise.
17386         (decide_instantiations): Likewise.
17387         (scalarize_parms): Likewise.
17388         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
17389         (dsa_named_for): Likewise.
17390         * tree-ssa-structalias.c (update_alias_info): Likewise.
17391         (merge_smts_into): Likewise.
17392
17393 2008-02-27  David Daney  <ddaney@avtrex.com>
17394
17395         PR target/34409
17396         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
17397         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
17398         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
17399         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
17400         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
17401
17402 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
17403
17404         PR target/25477
17405         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
17406         (BUILT_IN_NEXTTOWARD): Remove.
17407         (BUILT_IN_NEXTTOWARDF): Ditto.
17408         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
17409         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
17410
17411 2008-02-27  Tom Tromey  <tromey@redhat.com>
17412
17413         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
17414         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
17415
17416 2008-02-27  Jan Beulich  <jbeulich@novell.com>
17417
17418         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
17419         update the respective field on newdecl.
17420
17421 2008-02-27  Revital Eres  <eres@il.ibm.com>
17422
17423         PR rtl-optimization/34999
17424         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
17425         crossing edges that ends with a call insn.
17426         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
17427         call insn and clear the EDGE_CROSSING flag of the crossing edge
17428         when fixing fallthru edges.
17429
17430 2008-02-27  Richard Guenther  <rguenther@suse.de>
17431
17432         PR middle-end/35390
17433         * fold-const.c (fold_unary): Return the correct argument,
17434         converted to the result type.
17435
17436 2008-02-27  Richard Guenther  <rguenther@suse.de>
17437
17438         PR middle-end/34971
17439         * expr.c (expand_expr_real_1): Assert on rotates that operate
17440         on partial modes.
17441         * fold-const.c (fold_binary): Use the types precision, not the
17442         bitsize of the mode if folding rotate expressions.  Build rotates
17443         only for full modes.
17444
17445 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
17446
17447         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
17448         and CPP_PRAGMA_EOL.
17449         * c-pragma.c (pragma_ns_name): New typedef.
17450         (registered_pp_pragmas): New variable.
17451         (c_pp_lookup_pragma): New function.
17452         (c_register_pragma_1): If flag_preprocess_only, do nothing
17453         for non-expanded pragmas, for expanded ones push pragma's
17454         namespace and name into registered_pp_pragmas vector.
17455         (c_invoke_pragma_handler): Register OpenMP pragmas even when
17456         flag_preprocess_only, don't register GCC pch_preprocess
17457         pragma if flag_preprocess_only.
17458         * c-opts.c (c_common_init): Call init_pragma even if
17459         flag_preprocess_only.
17460         * c-pragma.c (c_pp_lookup_pragma): New prototype.
17461         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
17462         cpp_register_pragma if flag_preprocess_only.
17463
17464 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17465
17466         PR c/28800
17467         * c-parser.c (c_parser_translation_unit): Warn for empty
17468         translation unit, not empty source file.
17469
17470 2008-02-26  Paul Brook  <paul@codesourcery.com>
17471
17472         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
17473         operand for Thumb-2.
17474         * config/arm/arm.h (reg_class): Add CORE_REGS.
17475         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
17476         (BASE_REG_CLASS): Use CORE_REGS.
17477         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
17478         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
17479         (REGNO_OK_FOR_INDEX_P): Exclude SP.
17480         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
17481         ARM_REGNO_OK_FOR_INDEX_P.
17482         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
17483         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
17484         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
17485         (ldm/stm peepholes): Ditto.
17486         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
17487         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
17488         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
17489         * config/arm/constraints.md: Enable "k" constraint on ARM.
17490
17491 2008-02-27  Ben Elliston  <bje@au.ibm.com>
17492
17493         * config/rs6000/rs6000.c: Annotate cache line size field in all
17494         instances of struct processor_costs.
17495
17496 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
17497
17498         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
17499         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
17500         jump_bypass): New counters.
17501         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
17502         * dce.c (gate_ud_dce): Same.
17503         (gate_fast_dce): Same.
17504         * dse.c (gate_dse1): New function.
17505         (gate_dse2): New function.
17506         (gate_dse): Merge results of new gate functions.
17507         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
17508         (gate_handle_jump_bypass): Add dbg_cnt.
17509         (gate_handle_gcse): Add dbg_cnt.
17510         * ifcvt.c (gate_handle_if_conversion): Same.
17511         (gate_handle_if_after_combine): Same.
17512         (gate_handle_if_after_reload): Same.
17513         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
17514
17515 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
17516
17517         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
17518         line sizes.
17519         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
17520
17521 2008-02-26  Jason Merrill  <jason@redhat.com>
17522
17523         PR c++/35315
17524         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
17525         alone if it's the naming decl for the type's main variant.
17526
17527 2008-02-26  Tom Tromey  <tromey@redhat.com>
17528
17529         * system.h (USE_MAPPED_LOCATION): Poison.
17530         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
17531         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
17532         (make_goto_expr_edges): Likewise.
17533         (remove_bb): Likewise.
17534         (execute_warn_function_return): Likewise.
17535         * basic-block.h (struct edge_def) <goto_locus>: Change type to
17536         location_t.
17537         * c-common.c (fname_decl): Remove old location code.
17538         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
17539         location code.
17540         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
17541         variant.
17542         (ASM_INPUT_SOURCE_LOCATION): Likewise.
17543         (gen_rtx_ASM_INPUT): Likewise.
17544         (gen_rtx_ASM_INPUT_loc): Likewise.
17545         (get_rtx_asm_OPERANDS): Remove.
17546         * cfglayout.c (insn_locators_alloc): Remove old location code.
17547         (set_curr_insn_source_location): Likewise.
17548         (curr_insn_locator): Likewise.
17549         * print-tree.c (print_node): Remove old location code.
17550         * tree-mudflap.c (mf_varname_tree): Remove old location code.
17551         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
17552         * cfgexpand.c (expand_gimple_cond_expr): Don't use
17553         location_from_locus.
17554         (construct_exit_block): Remove old location code.
17555         * emit-rtl.c (force_next_line_note): Remove old location code.
17556         * profile.c (branch_prob): Remove old location code.
17557         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
17558         LOC_LINE): Remove old-location variants.
17559         * langhooks.c (lhd_print_error_function): Remove old location
17560         code.
17561         * configure, config.in: Rebuilt.
17562         * configure.ac (--enable-mapped-location): Remove.
17563         * c-decl.c (c_init_decl_processing): Remove old location code.
17564         (finish_function): Likewise.
17565         * recog.c (decode_asm_operands): Remove old location code.
17566         * c-pch.c (c_common_read_pch): Remove old location code.
17567         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
17568         variants.
17569         * gimple-low.c (lower_function_body): Remove old location code.
17570         * toplev.c (unknown_location): Remove.
17571         (push_srcloc): Remove old-location variant.
17572         (process_options): Remove old location code.
17573         (lang_dependent_init): Likewise.
17574         * input.h (UNKNOWN_LOCATION): Move definition.
17575         (location_t): Undeprecate.
17576         (source_locus): Remove.
17577         (location_from_locus): Remove.
17578         (struct location_s): Remove.
17579         Remove all old-location code.
17580         (input_line, input_filename): Remove.
17581         * final.c (final_scan_insn): Remove old location code.
17582         * diagnostic.c (diagnostic_build_prefix): Remove
17583         USE_MAPPED_LOCATION test.
17584         * tree.h (gimple_stmt) <locus>: Now a location_t.
17585         (tree_exp) <locus>: Likewise.
17586         (DECL_IS_BUILTIN): Remove old-location variant.
17587         (annotate_with_file_line, annotate_with_locus): Likewise.
17588         (expr_locus, set_expr_locus): Update.
17589         * tree.c (build1_stat): Remove old location code.
17590         (last_annotated_node): Remove.
17591         (annotate_with_file_line): Remove old-location variant.
17592         (annotate_with_locus): Likewise.
17593         (expr_location): Remove old location code.
17594         (set_expr_location): Likewise.
17595         (expr_has_location): Likewise.
17596         (expr_locus): Likewise.
17597         (set_expr_locus): Likewise.
17598         (expr_filename): Don't use location_from_locus.
17599         (expr_lineno): Likewise.
17600         * rtl-error.c (location_for_asm): Remove old location code.
17601         * c-lex.c (cb_line_change): Remove old location code.
17602         (fe_file_change): Likewise.
17603         (cb_def_pragma): Likewise.
17604         (c_lex_with_flags): Likewise.
17605         * gengtype.c (do_typedef): Don't special-case location types.
17606         (define_location_structures): Remove.
17607         (main): Don't call define_location_structures.
17608         * tree-pretty-print.c (dump_implicit_edges): Remove old location
17609         code.
17610
17611 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17612
17613         PR 26264
17614         * builtins.def (BUILT_IN_STDARG_START): Remove.
17615         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
17616         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
17617         * tree-inline.c (inline_forbidden_p_1): Likewise.
17618
17619 2008-02-26  Richard Guenther  <rguenther@suse.de>
17620
17621         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
17622         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
17623         (lookup_decl_from_uid): Declare.
17624         (remove_decl_from_map): Likewise.
17625         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
17626         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
17627         (decl_for_uid_map): New global hashtable mapping DECL_UID
17628         to the decl tree.
17629         (init_ttree): Allocate it.
17630         (insert_decl_to_uid_decl_map): New helper function.
17631         (make_node_stat): Insert new decls into the map.
17632         (copy_node_stat): Likewise.
17633         (lookup_decl_from_uid): New function.
17634         (remove_decl_from_map): Likewise.
17635         (print_decl_for_uid_map_statistics): New helper.
17636         (dump_tree_statistics): Call it.
17637
17638         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
17639         (referenced_var_iterator): Adjust.
17640         (FOR_EACH_REFERENCED_VAR): Adjust.
17641         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
17642         (num_referenced_vars): Adjust.
17643         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
17644         (first_referenced_var): Remove.
17645         (end_referenced_vars_p): Likewise.
17646         (next_referenced_var): Likewise.
17647         (referenced_var_iterator_set): New helper function.
17648         * tree-dfa.c (referenced_var_lookup): Adjust.
17649         (referenced_var_check_and_insert): Likewise.
17650         (remove_referenced_var): Likewise.
17651         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
17652         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17653         (verify_call_clobbering): Likewise.
17654         (verify_memory_partitions): Likewise.
17655         (init_tree_ssa): Allocate bitmap instead of hashtable for
17656         referenced_vars.
17657         (delete_tree_ssa): Adjust.
17658         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
17659         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17660         (compute_tag_properties): Likewise.
17661         (set_initial_properties): Likewise.
17662         (find_partition_for): Likewise.
17663         (update_reference_counts): Likewise.
17664         (dump_may_aliases_for): Likewise.
17665         * tree-ssa-operands.c (add_virtual_operand): Likewise.
17666         (add_call_clobber_ops): Likewise.
17667         (add_call_read_ops): Likewise.
17668         (get_asm_expr_operands): Likewise.
17669         * tree-into-ssa.c (dump_decl_set): Likewise.
17670         (update_ssa): Likewise.
17671         * tree-sra.c (scan_function): Likewise.
17672         (decide_instantiations): Likewise.
17673         (scalarize_parms): Likewise.
17674         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
17675         (dsa_named_for): Likewise.
17676         * tree-ssa-structalias.c (update_alias_info): Likewise.
17677         (merge_smts_into): Likewise.
17678
17679 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17680
17681         PR 34351
17682         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
17683         * c-opts.c (c_common_handle_option): Wall enables
17684         Wvolatile-register-var.
17685         * common.opt: Move Wvolatile-register-var to...
17686         * c.opt: ...here.
17687
17688 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17689
17690         * common.opt (Wlarger-than=): New.
17691         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
17692         -Wlarger-than=.
17693         * opts.c (common_handle_option): Handle -Wlarger-than=.
17694         * optc-gen.awk: Likewise.
17695         * opth-gen.awk: Likewise.
17696         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
17697         * tree-optimize.c (tree_rest_of_compilation): Likewise.
17698
17699 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
17700
17701         * c-common.c (match_case_to_enum_1): Add appropriate
17702         OPT_W* parameter to warning.
17703         (c_do_switch_warnings): Likewise.
17704         * c-typeck.c (warning_init): Add one more parameter following
17705         'warning' function.
17706         (push_init_level): Update call to warning_init.
17707         (pop_init_level): Likewise.
17708         (add_pending_init): Likewise.
17709         (output_init_element: Likewise.
17710
17711 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17712
17713         PR 28322
17714         * toplev.c (toplev_main): If there are warnings or error, print
17715         errors for ignored options.
17716         * opts.c (ignored_options): New static variable.
17717         (postpone_unknown_option_error): New.
17718         (print_ignored_options): New.
17719         (handle_option): Postpone errors for unknown -Wno-* options.
17720         * opts.h (print_ignored_options): Declare.
17721
17722 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
17723
17724         * config/mips/mips.md (loadgp_blockage, blockage): Change type
17725         to "ghost".
17726
17727 2008-02-25  Richard Guenther  <rguenther@suse.de>
17728
17729         Revert:
17730         2008-02-25  Richard Guenther  <rguenther@suse.de>
17731
17732         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
17733         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
17734         (lookup_decl_from_uid): Declare.
17735         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
17736         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
17737         (decl_for_uid_map): New global hashtable mapping DECL_UID
17738         to the decl tree.
17739         (init_ttree): Allocate it.
17740         (insert_decl_to_uid_decl_map): New helper function.
17741         (make_node_stat): Insert new decls into the map.
17742         (copy_node_stat): Likewise.
17743         (lookup_decl_from_uid): New function.
17744         (print_decl_for_uid_map_statistics): New helper.
17745         (dump_tree_statistics): Call it.
17746
17747         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
17748         (referenced_var_iterator): Adjust.
17749         (FOR_EACH_REFERENCED_VAR): Adjust.
17750         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
17751         (num_referenced_vars): Adjust.
17752         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
17753         (first_referenced_var): Remove.
17754         (end_referenced_vars_p): Likewise.
17755         (next_referenced_var): Likewise.
17756         (referenced_var_iterator_set): New helper function.
17757         * tree-dfa.c (referenced_var_lookup): Adjust.
17758         (referenced_var_check_and_insert): Likewise.
17759         (remove_referenced_var): Likewise.
17760         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
17761         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17762         (verify_call_clobbering): Likewise.
17763         (verify_memory_partitions): Likewise.
17764         (init_tree_ssa): Allocate bitmap instead of hashtable for
17765         referenced_vars.
17766         (delete_tree_ssa): Adjust.
17767         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
17768         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17769         (compute_tag_properties): Likewise.
17770         (set_initial_properties): Likewise.
17771         (find_partition_for): Likewise.
17772         (update_reference_counts): Likewise.
17773         (dump_may_aliases_for): Likewise.
17774         * tree-ssa-operands.c (add_virtual_operand): Likewise.
17775         (add_call_clobber_ops): Likewise.
17776         (add_call_read_ops): Likewise.
17777         (get_asm_expr_operands): Likewise.
17778         * tree-into-ssa.c (dump_decl_set): Likewise.
17779         (update_ssa): Likewise.
17780         * tree-sra.c (scan_function): Likewise.
17781         (decide_instantiations): Likewise.
17782         (scalarize_parms): Likewise.
17783         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
17784         (dsa_named_for): Likewise.
17785         * tree-ssa-structalias.c (update_alias_info): Likewise.
17786         (merge_smts_into): Likewise.
17787
17788 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
17789
17790         PR fortran/29549
17791         * doc/invoke.texi (-fcx-limited-range): Document new option.
17792         * toplev.c (process_options): Handle -fcx-fortran-rules.
17793         * common.opt: Add documentation for -fcx-fortran-rules.
17794
17795 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
17796
17797         PR c/35162
17798         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
17799         actual behaviour and C99.
17800
17801 2008-02-26  Ben Elliston  <bje@au.ibm.com>
17802
17803         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
17804         (ASM_CPU_POWER6_SPEC): Likewise.
17805         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
17806         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
17807         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
17808
17809 2008-02-25  Richard Guenther  <rguenther@suse.de>
17810
17811         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
17812         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
17813         (lookup_decl_from_uid): Declare.
17814         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
17815         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
17816         (decl_for_uid_map): New global hashtable mapping DECL_UID
17817         to the decl tree.
17818         (init_ttree): Allocate it.
17819         (insert_decl_to_uid_decl_map): New helper function.
17820         (make_node_stat): Insert new decls into the map.
17821         (copy_node_stat): Likewise.
17822         (lookup_decl_from_uid): New function.
17823         (print_decl_for_uid_map_statistics): New helper.
17824         (dump_tree_statistics): Call it.
17825
17826         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
17827         (referenced_var_iterator): Adjust.
17828         (FOR_EACH_REFERENCED_VAR): Adjust.
17829         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
17830         (num_referenced_vars): Adjust.
17831         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
17832         (first_referenced_var): Remove.
17833         (end_referenced_vars_p): Likewise.
17834         (next_referenced_var): Likewise.
17835         (referenced_var_iterator_set): New helper function.
17836         * tree-dfa.c (referenced_var_lookup): Adjust.
17837         (referenced_var_check_and_insert): Likewise.
17838         (remove_referenced_var): Likewise.
17839         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
17840         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17841         (verify_call_clobbering): Likewise.
17842         (verify_memory_partitions): Likewise.
17843         (init_tree_ssa): Allocate bitmap instead of hashtable for
17844         referenced_vars.
17845         (delete_tree_ssa): Adjust.
17846         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
17847         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
17848         (compute_tag_properties): Likewise.
17849         (set_initial_properties): Likewise.
17850         (find_partition_for): Likewise.
17851         (update_reference_counts): Likewise.
17852         (dump_may_aliases_for): Likewise.
17853         * tree-ssa-operands.c (add_virtual_operand): Likewise.
17854         (add_call_clobber_ops): Likewise.
17855         (add_call_read_ops): Likewise.
17856         (get_asm_expr_operands): Likewise.
17857         * tree-into-ssa.c (dump_decl_set): Likewise.
17858         (update_ssa): Likewise.
17859         * tree-sra.c (scan_function): Likewise.
17860         (decide_instantiations): Likewise.
17861         (scalarize_parms): Likewise.
17862         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
17863         (dsa_named_for): Likewise.
17864         * tree-ssa-structalias.c (update_alias_info): Likewise.
17865         (merge_smts_into): Likewise.
17866
17867 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
17868
17869         PR target/35258
17870         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
17871         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
17872         * alias.h (nonoverlapping_memrefs_p): Likewise.
17873
17874 2008-02-25  Jan Beulich  <jbeulich@novell.com>
17875
17876         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
17877         * config/i386/netware-libgcc.exp: Add __bswap?i2,
17878         __emultls_get_address, __emultls_register_common,
17879         __floatundi?f, and _Unwind_GetIPInfo.
17880         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
17881         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
17882         (gen_regparm_prefix): Likewise.
17883         (i386_nlm_encode_section_info): Sync with
17884         config/i386/winnt.c:i386_pe_encode_section_info().
17885         (i386_nlm_maybe_mangle_decl_assembler_name): New.
17886         i386_nlm_mangle_decl_assembler_name): New.
17887         (netware_override_options): New.
17888         * config/i386/netware.h (netware_override_options): Declare.
17889         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
17890         (i386_nlm_mangle_decl_assembler_name): Declare.
17891         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
17892
17893 2008-02-25  Ben Elliston  <bje@au.ibm.com>
17894
17895         PR other/32948
17896         * c-decl.c (grokdeclarator): Remove unused local variables
17897         `typedef_type' and `type_as_written'.
17898         * bb-reorder.c
17899         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
17900         unused local variable `has_hot_blocks'.
17901         (fix_crossing_conditional_branches): Remove unused local variable
17902         `prev_bb'.
17903
17904 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
17905
17906         PR middle-end/19984
17907         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
17908         using DEF_C99_BUILTIN.
17909         (BUILT_IN_NANF): Ditto.
17910         (BUILT_IN_NANL): Ditto.
17911
17912 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
17913             Revital Eres  <eres@il.ibm.com>
17914
17915         * modulo-sched.c (calculate_must_precede_follow): Address TODO
17916         regarding the order of two dependent insns in the same row.
17917
17918 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
17919
17920         * stor-layout.c (layout_decl): Do not bump the alignment of a
17921         bit-field to more than byte alignment if it is packed.
17922
17923 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
17924
17925         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
17926         e300c2 and e300c3.
17927
17928 2008-02-24  Diego Novillo  <dnovillo@google.com>
17929
17930         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
17931
17932         PR 33738
17933         * tree-vrp.c (vrp_evaluate_conditional): With
17934         -Wtype-limits, emit a warning when comparing against a
17935         constant outside the natural range of OP0's type.
17936         * c.opt (Wtype-limits): Move ...
17937         * common.opt (Wtype-limits): ... here.
17938
17939 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
17940
17941         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
17942         * config/rs6000/e300c2c3.md: New file.
17943         * config/rs6000/rs6000.c (processor_costs): Add new costs for
17944         e300c2 and e300c3.
17945         (rs6000_override_options): Add e300c2 and e300c3 cases to
17946         processor_target_table. Do not allow usage of Altivec or Spe
17947         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
17948         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
17949         * config/rs6000/rs6000.h (processor_type): Add
17950         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
17951         (ASM_CPU_SPEC): Add e300c2 and e300c3.
17952         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
17953         and ppce300c3. Include e300c2c3.md.
17954
17955 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
17956
17957         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
17958         instead of TARGET_STRICT_ALIGN.
17959
17960 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
17961
17962         * explow.c (memory_address): Assert that the generated address is
17963         valid.
17964
17965 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
17966
17967         PR target/25477
17968         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
17969         * config/darwin-ppc-ldouble-patch.def: New file.
17970         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
17971         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
17972         SUBTARGET_INIT_BUILTINS if defined.
17973         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
17974         New functions.
17975
17976 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
17977
17978         PR rtl-opt/33512
17979         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
17980         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
17981
17982 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
17983
17984         PR pch/35027
17985         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
17986         file" warning condtional on -Winvalid-PCH.
17987
17988 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
17989
17990         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
17991
17992 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
17993
17994         PR target/22076
17995         PR target/34256
17996         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
17997         prevent reload from using MMX registers.
17998         (*mov<mode>_internal): Ditto.
17999         (*movv2sf_internal_rex64): Ditto.
18000         (*movv2sf_internal): Ditto.
18001
18002 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18003
18004         PR documentation/31569
18005         * doc/install.texi2html: Use makeinfo --no-number-sections.
18006
18007 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
18008
18009         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
18010         ensure that we can address an entire entity > 8 bytes.  Don't
18011         generate reg+reg addressing for such data.
18012
18013 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
18014
18015         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
18016         strings when optimizing for size, unless the target cares about
18017         alignment.
18018
18019 2008-02-22  Tom Tromey  <tromey@redhat.com>
18020
18021         * regclass.c (current_pass): Remove declaration.
18022
18023 2008-02-22  Anatoly Sokolov <aesok@post.ru>
18024
18025         * config/avr/libgcc.S (__RAMPZ__): Define.
18026         (__do_copy_data): Add for devices with 128KB code memory.
18027
18028 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
18029
18030         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
18031         Use spe_abi.
18032         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
18033
18034 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
18035
18036         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
18037         GENNONACR_REGS.
18038
18039 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18040
18041         PR c/19999
18042         * c-typeck.c (build_binary_op): Warn about floating point
18043         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
18044
18045 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
18046
18047         PR target/34526
18048         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
18049         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
18050         add vrsave.
18051         (rs6000_override_options): Set altivec_abi as default, not override,
18052         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
18053         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
18054         is used; use new member spe_abi.
18055         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
18056         spe_abi and altivec_abi.
18057
18058 2008-02-22  Tomas Bily  <tbily@suse.cz>
18059
18060         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
18061
18062 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18063
18064         PR bootstrap/35273
18065         * config.build (build_file_translate): Set to `CMD //c' only if
18066         it works.
18067         * Makefile.in (build_file_translate): Improve comment.
18068
18069 2008-02-21  Jan Hubicka  <jh@suse.cz>
18070
18071         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
18072         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
18073         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
18074
18075 2008-02-21  Michael Matz  <matz@suse.de>
18076
18077         PR target/35264
18078         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
18079
18080 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
18081
18082         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
18083         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
18084         as insn constraint.
18085         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
18086         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
18087         SSE_VEC_FLOAT_MODE_P as insn constraint.
18088         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
18089         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
18090         sse4a_movntdf using MODEF mode iterator.
18091         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
18092         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
18093         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
18094         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
18095         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
18096         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
18097         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
18098
18099 2008-02-21  Richard Guenther  <rguenther@suse.de>
18100
18101         * tree.def (PAREN_EXPR): New tree code.
18102         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
18103         and PAREN_EXPR.
18104         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
18105         * expr.c (expand_expr_real_1): Likewise.
18106         * tree-inline.c (estimate_num_insns_1): Likewise.
18107         * tree-complex.c (expand_complex_move): Likewise.
18108         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
18109         as plain x.
18110
18111 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
18112
18113         PR target/35225
18114         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
18115
18116 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
18117
18118         PR target/35190
18119         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
18120
18121         * config/sh/sh.c (find_barrier): Don't go past
18122         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
18123
18124 2008-02-20  DJ Delorie  <dj@redhat.com>
18125
18126         * config/h8300/h8300.md (insv): Force source operand to be a register.
18127
18128         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
18129         as a jump, not as a plain insn.
18130
18131 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
18132
18133         * doc/invoke.texi (Warning Options): Add new option
18134         -Wframe-larger-than=.
18135         (-Wframe-larger-than): Document.
18136
18137         * flags.h (warn_frame_larger_than, frame_larger_than_size):
18138         Add declarations for new option variables.
18139
18140         * final.c (final_start_function): Check the frame size
18141         before emission and issue a Wframe-larger-than warning.
18142
18143         * opts.c (warn_frame_larger_than, frame_larger_than_size):
18144         Add definitions for new option variables.
18145         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
18146
18147         * common.opt (Wframe-larger-than=): New option.
18148
18149 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
18150
18151         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
18152         (<sse>_div<mode>3): Ditto.
18153         (<sse>_vmdiv<mode>3): Ditto.
18154         (<sse>_vmsqrt<mode>2): Ditto.
18155         (*smax<mode>3): Ditto.
18156         (sse5_frcz<mode>2): Ditto.
18157         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
18158         as insn constraint.
18159
18160 2008-02-20  Richard Guenther  <rguenther@suse.de>
18161
18162         PR middle-end/35265
18163         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
18164         be happy with INTEGRAL_TYPE_P.
18165
18166 2008-02-20  Richard Guenther  <rguenther@suse.de>
18167
18168         * fold-const.c (split_tree): Associate floatig-point expressions
18169         if flag_associative_math is set.
18170
18171 2008-02-20  Richard Guenther  <rguenther@suse.de>
18172
18173         * tree.h (fold_real_zero_addition_p): Declare.
18174         * fold-const.c (fold_real_zero_addition_p): Export.
18175         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
18176         floating-point operations with zero and one.
18177
18178 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
18179
18180         * doc/install.texi: Correct references to CFLAGS, replacing them
18181         with BOOT_CFLAGS.  Document flags used during bootstrap for
18182         target libraries.
18183
18184 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
18185
18186         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
18187         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
18188         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
18189         insn constraint.
18190         (smin<mode>3): Ditto from similar patterns.
18191         (smax<mode>3): Ditto.
18192         (*ieee_smin<mode>3): Ditto.
18193         (*ieee_smax<mode>3): Ditto.
18194         * config/i386/sse.md (sse): New mode attribute.
18195         (mov<mode>): Macroize expander from movv4sf and movv2df using
18196         SSEMODEF2P mode iterator.
18197         (<sse>_movnt<mode>): Ditto from similar patterns. Use
18198         SSE_VEC_FLOAT_MODE_P as insn constraint.
18199         (storent<mode>): Ditto.
18200         (storent<mode>): Macroize expander from storentsf and storentdf using
18201         MODEF mode iterator.
18202         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
18203         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
18204         (abs<mode>2): Ditto from similar patterns.
18205         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
18206         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
18207         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
18208         (<sse>_vmsqrt<mode>2): Ditto.
18209         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
18210         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
18211         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
18212         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
18213         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
18214         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
18215         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
18216         insn constraint.
18217         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
18218         iterator and SSE_FLOAT_MODE_P as insn constraint.
18219         (<sse>_ucomi): Ditto from similar patterns.
18220         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
18221         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
18222         SSE_VEC_FLOAT_MODE_P as insn constraint.
18223         (vcond<mode>): Ditto from similar patterns.
18224         (and<mode>3, *and<mode>3): Ditto.
18225         (<sse>_nand<mode>3): Ditto.
18226         (ior<mode>3, *ior<mode>3): Ditto.
18227         (xor<mode>3, *xor<mode>3): Ditto.
18228         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
18229         iterator and SSE_FLOAT_MODE_P as insn constraint.
18230         (*nand<mode>3): Ditto from similar patterns.
18231         (*ior<mode>3): Ditto.
18232         (*xor<mode>3): Ditto.
18233
18234 2008-02-20  Ira Rosen  <irar@il.ibm.com>
18235
18236         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
18237         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
18238         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
18239
18240 2008-02-19  Jan Hubicka  <jh@suse.cz>
18241
18242         * predict.c (tree_bb_level_predictions): Remove variable next
18243         mistakely introduced by previous commit.
18244
18245 2008-02-19  Jan Hubicka  <jh@suse.cz>
18246
18247         * predict.c (predict_paths_leading_to): Rewrite.
18248         (predict_paths_for_bb): New.
18249         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
18250
18251 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18252
18253         PR bootstrap/35218
18254         * Makefile.in (build_file_translate): New.
18255         (gcc-vers.texi): Use it for translating $(abs_srcdir).
18256         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
18257         * configure.ac (build_file_translate): Substitute it.
18258         * configure: Regenerate.
18259
18260 2008-02-19  Jan Hubicka  <jh@suse.cz>
18261
18262         PR rtl-optimization/34408
18263         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
18264         invalid sharing.
18265
18266 2008-02-19  Jan Hubicka  <jh@suse.cz>
18267
18268         PR middle-end/28779
18269         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
18270         call_expr.
18271
18272 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
18273
18274         PR Ada/35186
18275         * config/i386/i386-modes.def: Revert the last DI alignment
18276         change until Ada people can look into it.
18277
18278 2008-02-19  Nick Clifton  <nickc@redhat.com>
18279
18280         * opts.c (print_specific_help): Fix typo in --help text.
18281
18282 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
18283
18284         PR target/35239
18285         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
18286         32-bit inline asm without asm alternatives for host GCC < 3.0.
18287
18288 2008-02-19  Richard Guenther  <rguenther@suse.de>
18289
18290         PR tree-optimization/34989
18291         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
18292         Allow propagation to INDIRECT_REF if we can simplify only.
18293
18294 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18295
18296         * c-common.c (warn_for_collisions_1): Use appropriate option when
18297         warning.
18298
18299 2008-02-19  Nick Clifton  <nickc@redhat.com>
18300
18301         PR other/31349
18302         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
18303         (handle_options): Fix indentation.
18304         (print_filtered_help): If no language-specific options were
18305         displayed tell the user how to list all the options supported by
18306         the language's front-end.
18307         (print_specific_help): Fix indentation and remove duplicate line.
18308         (common_handle_option): Handle the -v option.
18309         For --help enable the display of undocumented options if the -v
18310         switch has been included on the command line.
18311         For --help= check for overlaps in the arguments between the option
18312         classes and the language names and issue a warning when they
18313         cannot be disambiguated.
18314         * c.opt (v): Pass on to the common option handler.
18315
18316 2008-02-19  Revital Eres  <eres@il.ibm.com>
18317
18318         * modulo-sched.c (sms_schedule): Change dump message when
18319         create_ddg function fails.
18320         (try_scheduling_node_in_cycle): Rename row to cycle.
18321         (print_partial_schedule): Rename CYCLE to ROW.
18322
18323 2008-02-19  Christian Bruel  <christian.bruel@st.com>
18324             Zdenek Dvorak  <ook@ucw.cz>
18325
18326         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
18327
18328 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
18329
18330         PR target/33555
18331         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
18332         (*x86_movdicc_0_m1_se): Ditto.
18333
18334 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
18335
18336         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
18337         (CMPtype): Define as __gcc_CMPtype.
18338         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
18339         (CMPtype): Define as __gcc_CMPtype.
18340
18341 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
18342
18343         Support valgrind 3.3 for --enable-checking=valgrind.
18344         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
18345         here.
18346         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
18347         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
18348         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
18349         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
18350         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
18351         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
18352         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
18353         respectively.
18354         * ggc-zone.c: Similar.
18355         * ggc-page.c: Similar.
18356
18357 2008-02-19  Paul Brook  <paul@codesourcery.com>
18358
18359         PR target/35071
18360         * config/arm/ieee754-df.S: Fix do_it typo.
18361         * config/arm/ieee754-sf.S: Fix do_it typo.
18362
18363 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
18364
18365         PR target/35189
18366         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
18367         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
18368         (OPTION_MASK_ISA_SSE_SET): Likewise.
18369         (OPTION_MASK_ISA_SSE2_SET): Likewise.
18370         (OPTION_MASK_ISA_SSE3_SET): Likewise.
18371         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
18372         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
18373         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
18374         (OPTION_MASK_ISA_SSE4_SET): Likewise.
18375         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
18376         (OPTION_MASK_ISA_SSE5_SET): Likewise.
18377         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
18378         (OPTION_MASK_ISA_MMX_UNSET): Updated.
18379         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
18380         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
18381         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
18382         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
18383         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
18384         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
18385         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
18386         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
18387         (OPTION_MASK_ISA_SSE4): Removed.
18388         (ix86_handle_option): Turn on bits in ix86_isa_flags and
18389         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
18390         (override_options): Don't turn on implied SSE/MMX bits in
18391         ix86_isa_flags.
18392
18393 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
18394
18395         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
18396         32bit host.
18397
18398 2008-02-18  Joey Ye  <joey.ye@intel.com>
18399
18400         PR middle-end/34921
18401         * tree-nested.c (insert_field_into_struct): Set type alignment
18402         to field alignment if the former is less than the latter.
18403
18404 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
18405
18406         * BASE-VER: Set to 4.4.0.
18407
18408 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18409
18410         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
18411         * doc/cfg.texi: Likewise.
18412         * doc/extend.texi: Likewise.
18413         * doc/gty.texi: Likewise.
18414         * doc/invoke.texi: Likewise.
18415         * doc/loop.texi: Likewise.
18416         * doc/md.texi: Likewise.
18417         * doc/passes.texi: Likewise.
18418         * doc/rtl.texi: Likewise.
18419         * doc/sourcebuild.texi: Likewise.
18420         * doc/tm.texi: Likewise.
18421         * doc/tree-ssa.texi: Likewise.
18422
18423 2008-02-17  Richard Guenther  <rguenther@suse.de>
18424
18425         PR middle-end/35227
18426         * tree-complex.c (init_parameter_lattice_values): Handle parameters
18427         without default definition.
18428
18429 2008-02-17  Richard Guenther  <rguenther@suse.de>
18430
18431         PR tree-optimization/35231
18432         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
18433         if A | B != 1.
18434
18435 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
18436
18437         Revert:
18438         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
18439         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
18440         libgcc_cmp_return mode.
18441
18442 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18443
18444         PR c/28368
18445         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
18446
18447 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
18448
18449         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
18450         multilibs.
18451
18452 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18453
18454         * doc/c-tree.texi: Use `@.' where appropriate.
18455         * doc/extend.texi: Likewise.
18456         * doc/install.texi: Likewise.
18457         * doc/invoke.texi: Likewise.
18458         * doc/loop.texi: Likewise.
18459         * doc/makefile.texi: Likewise.
18460         * doc/md.texi: Likewise.
18461         * doc/passes.texi: Likewise.
18462         * doc/standards.texi: Likewise.
18463         * doc/tm.texi: Likewise.
18464
18465 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
18466
18467         PR middle-end/35196
18468         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
18469         in entry_bb.
18470         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
18471         rather than in entry_bb.
18472
18473 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
18474
18475         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
18476         libgcc_cmp_return mode.
18477
18478 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
18479
18480         PR middle-end/35130
18481         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
18482         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
18483
18484 2008-02-15  Richard Guenther  <rguenther@suse.de>
18485             Zdenek Dvorak  <ook@ucw.cz>
18486
18487         PR tree-optimization/35164
18488         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
18489         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
18490         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
18491         Only propagate addresses which do not have abnormal SSA_NAMEs
18492         in their operands.
18493
18494 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
18495
18496         PR target/35088
18497         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
18498
18499 2008-02-15  Jan Hubicka  <jh@suse.cz>
18500
18501         PR middle-end/35149
18502         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
18503
18504 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
18505
18506         PR middle-end/34621
18507         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
18508         when calculating alignment_pad.
18509
18510 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
18511
18512         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
18513         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
18514         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
18515         and STACK_BOUNDARY define.
18516
18517 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
18518
18519         PR preprocessor/35061
18520         * c-pragma.c (handle_pragma_pop_macro): Check that
18521         pushed_macro_table has been allocated.
18522
18523 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
18524
18525         PR middle-end/35136
18526         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
18527         (force_gimple_operand): Likewise.
18528         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
18529         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
18530         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
18531         (find_interesting_uses_address): Check addressability and alignment
18532         of the base expression only after substituting bases of IVs into it.
18533
18534 2008-02-14  Michael Matz  <matz@suse.de>
18535
18536         PR target/34930
18537         * function.c (instantiate_virtual_regs_in_insn): Reload address
18538         before falling back to reloading the whole operand.
18539
18540 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
18541
18542         * config/s390/s390.c (s390_mainpool_start): Emit the pool
18543         before the first section switch note.
18544
18545 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18546
18547         * doc/bugreport.texi: Update copyright years.
18548         * doc/c-tree.texi: Likewise.
18549         * doc/cfg.texi: Likewise.
18550         * doc/cpp.texi: Likewise.
18551         * doc/cppinternals.texi: Likewise.
18552         * doc/fragments.texi: Likewise.
18553         * doc/frontends.texi: Likewise.
18554         * doc/gcc.texi: Likewise.
18555         * doc/gty.texi: Likewise.
18556         * doc/hostconfig.texi: Likewise.
18557         * doc/implement-c.texi: Likewise.
18558         * doc/libgcc.texi: Likewise.
18559         * doc/loop.texi: Likewise.
18560         * doc/makefile.texi: Likewise.
18561         * doc/options.texi: Likewise.
18562         * doc/passes.texi: Likewise.
18563         * doc/rtl.texi: Likewise.
18564         * doc/sourcebuild.texi: Likewise.
18565         * doc/standards.texi: Likewise.
18566         * doc/tree-ssa.texi: Likewise.
18567         * doc/trouble.texi: Likewise.
18568
18569         * doc/extend.texi: Use @: or add comma where appropriate.
18570         * doc/invoke.texi: Likewise.
18571         * doc/tm.texi: Likewise.
18572
18573 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
18574
18575         PR target/34393
18576         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
18577         to a reg.
18578
18579 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
18580
18581         * doc/md.texi (clz, ctz): Add reference.
18582         * doc/rtl.texi (clz, ctz): Likewise.
18583
18584 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18585
18586         PR other/35148
18587         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
18588         srcdir.
18589
18590 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
18591
18592         * config/s390/s390.c (struct constant_pool): New field
18593         emit_pool_after added.
18594         (s390_mainpool_start): Set the emit_pool_after flag according
18595         to the section switch notes.
18596         (s390_mainpool_finish): Consider emit_pool_after when emitting
18597         the literal pool at the end of the function.
18598         (s390_chunkify_start): Force literal pool splits at section
18599         switch notes.
18600
18601 2008-02-13  Michael Matz  <matz@suse.de>
18602
18603         PR debug/35065
18604         * var-tracking.c (clobber_variable_part): Correctly traverse the
18605         list.
18606
18607 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18608
18609         PR 29673
18610         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
18611         Add -fdump-ipa-inline.
18612         * tree-dump.c (dump_files): Remove tree-inlined dump.
18613         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
18614
18615 2008-02-12  Richard Guenther  <rguenther@suse.de>
18616
18617         PR tree-optimization/35171
18618         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
18619         default defs.
18620
18621 2008-02-12  Richard Guenther  <rguenther@suse.de>
18622
18623         PR middle-end/35163
18624         * fold-const.c (fold_widened_comparison): Use get_unwidened in
18625         value-preserving mode.  Disallow final truncation.
18626
18627 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
18628
18629         PR middle-end/35136
18630         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
18631         code from here to...
18632         (force_gimple_operand): ...here.
18633
18634 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
18635
18636         PR c++/35144
18637         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
18638         non-compatible pointers.
18639         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
18640         different FIELD_DECLs, try harder by comparing field offsets, sizes
18641         and types.
18642
18643         PR inline-asm/35160
18644         * function.c (match_asm_constraints_1): Don't replace the same input
18645         multiple times.
18646
18647 2008-02-12  Anatoly Sokolov <aesok@post.ru>
18648
18649         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
18650         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
18651         (expand_epilogue): Restore RAMPZ register.
18652         * config/avr/avr.md (RAMPZ_ADDR): New constant.
18653
18654 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
18655
18656         * config/i386/cygwin.asm: (__alloca): Correct calling
18657         convention and alignment.
18658         (__chkstk): Force 8 byte stack alignment.
18659
18660 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
18661             Richard Guenther  <rguenther@suse.de>
18662
18663         PR tree-optimization/33992
18664         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
18665         the zero we compare against.
18666
18667 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
18668
18669         PR libfortran/35063
18670         * gthr-win32.h (__gthread_mutex_destroy_function): New function
18671         to CloseHandle after unlocking to prevent accumulation of handle
18672         count.
18673
18674 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18675
18676         PR middle_end/34150
18677         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
18678         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
18679         and update LABEL_NUSES during and after reload.
18680
18681 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
18682
18683         PR middle-end/34627
18684         * combine.c (simplify_if_then_else): Make sure the comparison is
18685         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
18686
18687 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
18688
18689         PR bootstrap/35051
18690         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
18691         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
18692         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
18693         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
18694         * tree.h (get_type_static_bounds): Likewise.
18695
18696 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18697
18698         * doc/invoke.texi (Option Summary, C++ Dialect Options)
18699         (Objective-C and Objective-C++ Dialect Options, Warning Options):
18700         Make -Wfoo language annotations match what the compiler outputs.
18701
18702 2008-02-08  Sa Liu  <saliu@de.ibm.com>
18703
18704         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
18705         intrinsics spu_convts, spu_convtu, spu_convtf.
18706
18707 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
18708
18709         * doc/extend.texi (Function Attributes) <noinline>: Mention
18710         asm ("") as method to keep calls.
18711
18712 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18713
18714         PR other/32754
18715         * doc/options.texi (Options): Replace references to opts.sh with
18716         optc-gen.awk.
18717         * opts-common.c: Likewise.
18718         * optc-gen.awk: Likewise.
18719
18720 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
18721
18722         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
18723
18724 2008-02-07  Richard Henderson  <rth@redhat.com>
18725
18726         PR rtl-opt/33410
18727         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
18728         EXPR_LIST for the REG_EQUAL instead of a comparison with a
18729         funny mode.
18730
18731 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
18732
18733         PR tree-optimization/35085
18734         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
18735         for operand entry oe2 in addition to operand entry oe3 in order to
18736         expose more opportunities for vectorizer sum reduction.
18737
18738 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18739
18740         PR other/35107
18741         * Makefile.in (LIBS): Remove $(GMPLIBS).
18742         (cc1-dummy, cc1): Add $(GMPLIBS).
18743
18744 2008-02-06  Jan Hubicka  <jh@suse.cz>
18745
18746         PR target/23322
18747         * i386.md (moddf_integer): Do not produce partial memory stalls for
18748         targets where it hurts.
18749
18750 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
18751
18752         PR target/35083
18753         * optabs.c (expand_float): Do not check for decimal modes when
18754         expanding unsigned integer through signed conversion.
18755
18756 2008-02-06  Nick Clifton  <nickc@redhat.com>
18757
18758         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
18759         inside the clobber with a match_operand and duplicated operand
18760         number in the constraint.
18761         (ineqbranchsi): Delete redundant comment.
18762
18763 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
18764
18765         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
18766         builtin_define ("__USE_INIT_FINI__").
18767         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
18768         -msx multilibs.
18769         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
18770
18771 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18772
18773         PR documentation/30330
18774         * doc/invoke.texi (C++ Dialect Options)
18775         (Objective-C and Objective-C++ Dialect Options, Warning Options):
18776         For each warning option -Wfoo that allows -Wno-foo, ensure both
18777         -Wfoo and -Wno-foo are listed in the option index.  Fix index
18778         entry of -Wswitch-default, index -Wnormalized= including the
18779         `=', and -Wlarger-than-@var{len} including @var{len}.
18780
18781 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
18782
18783         * config/i386/i386.md (floatunssisf2): Use
18784         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
18785         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
18786         Macroize expander using MODEF mode iterator.
18787
18788 2008-02-05  Diego Novillo  <dnovillo@google.com>
18789
18790         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
18791
18792         PR 33738
18793         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
18794
18795 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18796
18797         PR other/35070
18798         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
18799
18800 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
18801
18802         PR target/35084
18803         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
18804         to indicate if a message should be generated.
18805         (init_cumulative_args): Updated.
18806         (function_value_32): Likewise.
18807
18808 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
18809
18810         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
18811
18812 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
18813
18814         PR target/35083
18815         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
18816         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
18817
18818 2008-02-04  Diego Novillo  <dnovillo@google.com>
18819
18820         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
18821
18822         PR 33738
18823         * tree-vrp.c (vrp_evaluate_conditional): With
18824         -Wtype-limits, emit a warning when comparing against a
18825         constant outside the natural range of OP0's type.
18826
18827 2008-02-04  Richard Guenther  <rguenther@suse.de>
18828
18829         PR middle-end/33631
18830         * expr.c (count_type_elements): Give for unions instead of
18831         guessing.
18832
18833 2008-02-04  Richard Guenther  <rguenther@suse.de>
18834
18835         PR middle-end/35043
18836         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
18837         to TYPE_DOMAINs base type instead of using bitsizetype here.
18838
18839 2008-02-03  Jason Merrill  <jason@redhat.com>
18840
18841         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
18842
18843 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18844
18845         PR other/29972
18846         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
18847         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
18848         (RS/6000 and PowerPC Options): Fix typos and markup.
18849         * doc/passes.texi (Tree-SSA passes): Likewise.
18850
18851 2008-02-02  Michael Matz  <matz@suse.de>
18852
18853         PR target/35045
18854         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
18855         from record_last_reg_set_info.
18856         (record_last_reg_set_info): Take an RTX argument, iterate over all
18857         constituent hardregs.
18858         (record_last_set_info, record_opr_changes): Change calls to
18859         new signature or to record_last_reg_set_info_regno.
18860
18861 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
18862
18863         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
18864
18865 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
18866
18867         PR rtl-optimization/34773
18868         * reg-notes.def (EQUAL): Mention significance of combination of
18869         REG_EQUAL and REG_RETVAL.
18870         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
18871         insn that has a REG_RETVAL.
18872
18873 2008-02-01  Roger Sayle  <roger@eyesopen.com>
18874
18875         PR bootstrap/33781
18876         * configure.ac (--enable-fixed-point): Disable unless explicitly
18877         requested on IRIX.
18878         * configure: Regenerate.
18879
18880 2008-02-01  Richard Guenther  <rguenther@suse.de>
18881
18882         PR other/35042
18883         * invoke.texi (-finline-limit): Remove no longer true parts
18884         of the documentation.  Note that there is no default value.
18885
18886 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
18887             Mark Mitchell  <mark@codesourcery.com>
18888             Ben Elliston  <bje@au.ibm.com>
18889
18890         PR c/29326
18891         * doc/extend.texi (Other Builtins): Document.
18892
18893 2008-01-31  Tom Browder <tom.browder@gmail.com>
18894
18895         * doc/c-tree.texi (Types): Fix grammar.
18896         (Expression trees): Ditto.
18897         * doc/passes.texi (Tree-SSA passes): Ditto.
18898
18899         * doc/configterms.texi (Configure Terms): Fix typo.
18900         * doc/cpp.texi (Common Predefined Macros): Ditto.
18901         * doc/md.texi (Machine Constraints): Ditto.
18902
18903         * doc/makefile.texi (Makefile): Add comma.
18904
18905 2008-01-31  Tom Browder  <tom.browder@gmail.com>
18906             Gerald Pfeifer  <gerald@pfeifer.com>
18907
18908         * doc/sourcebuild.texi (Front End): Remove references to CVS
18909         and CVSROOT/modules.
18910         (Texinfo Manuals): Replace reference to CVS by one to SVN.
18911         (Back End): Remove reference to CVS.
18912
18913 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
18914
18915         PR target/34900
18916         * config/mips/mips.c (gen_load_const_gp): New function, taking a
18917         comment from...
18918         (mips16_gp_pseudo_reg): ...here.
18919         * config/mips/mips.md (load_const_gp): Replace with...
18920         (load_const_gp_<mode>): ...this :P-based insn.
18921
18922 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18923
18924         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
18925         options. Minor fixes.
18926         (-std): Move reference to standards closer to where language
18927         standards are first mentioned.
18928
18929 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
18930
18931         PR rtl-optimization/34995
18932         * reload.c (alternative_allows_const_pool_ref): Take an rtx
18933         parameter and return a bool.  If the rtx parameter is nonnull,
18934         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
18935         (find_reloads): Update call accordingly.  Pass the new operand
18936         if it needed no address reloads, otherwise pass null.
18937
18938 2008-01-30  Richard Henderson  <rth@redhat.com>
18939
18940         PR c/34993
18941         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
18942         for unbounded arrays.
18943
18944 2008-01-30  Silvius Rus  <rus@google.com>
18945
18946         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
18947
18948 2008-01-30  Jan Hubicka  <jh@suse.cz>
18949
18950         PR target/34982
18951         * i386.c (init_cumulative_args): Use real function declaration when
18952         calling locally.
18953
18954 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
18955
18956         PR rtl-optimization/34998
18957         * global.c (build_insn_chain): Treat non-subreg_lowpart
18958         SUBREGs of pseudos as clobbering all the words covered by the
18959         SUBREG, not just all the bytes.
18960         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
18961         original df_ref rather than an extract parameter.
18962         (global_conflicts): Update call accordingly.
18963
18964 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
18965
18966         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
18967         the overflow check to make it easier to read.
18968         (__fixtfdi): Change the type of the ll member in union
18969         long_double to UDItype_x.
18970
18971 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
18972
18973         PR middle-end/34969
18974         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
18975         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
18976         * tree-inline.c (fold_marked_statements): Call
18977         cgraph_update_edges_for_call_stmt if folding a call statement.
18978         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
18979         debug_generic_stmt calls, reset it back afterwards.
18980
18981         PR c/35017
18982         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
18983         static decls.
18984         * c-typeck.c (build_external_ref): Don't pedwarn about
18985         static vars in current function's scope.
18986
18987 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
18988
18989         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
18990
18991 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
18992
18993         PR c/35002
18994         * ipa-struct-reorg.c: Fix spelling.
18995         * params.def: Ditto.
18996
18997 2008-01-29  Richard Guenther  <rguenther@suse.de>
18998
18999         PR middle-end/35006
19000         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
19001         field.
19002         * tree-inline.c (remap_type): Increment remapping_type_depth
19003         around remapping types.
19004         (copy_body_r): Only add referenced variables if they are referenced
19005         from code, not types.
19006
19007 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
19008
19009         PR c++/34055
19010         PR c++/34103
19011         PR c++/34219
19012         PR c++/34606
19013         PR c++/34753
19014         PR c++/34754
19015         PR c++/34755
19016         PR c++/34919
19017         PR c++/34961
19018         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
19019         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
19020
19021 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
19022
19023         PR target/34412
19024         * config/avr/avr.c (expand_prologue): Use correct QI mode frame
19025         pointer for tiny stack.
19026
19027 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
19028
19029         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
19030
19031 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
19032
19033         * config/vx-common.h: Fix typo in comment.
19034
19035 2008-01-28  Ian Lance Taylor  <iant@google.com>
19036
19037         PR c++/34862
19038         PR c++/33407
19039         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
19040         coalesce pointers if they have different DECL_NO_TBAA_P values.
19041         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
19042         between variables with different DECL_NO_TBAA_P values.
19043
19044 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
19045
19046         PR 31535
19047         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
19048         are not legitimate small data references on SPE targets.
19049
19050 2008-01-28  David Daney  <ddaney@avtrex.com>
19051
19052         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
19053
19054 2008-01-28  David Daney  <ddaney@avtrex.com>
19055
19056         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
19057
19058 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
19059
19060         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
19061         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
19062         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
19063         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
19064         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
19065         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
19066         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
19067         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
19068
19069 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
19070
19071         * basic-block.h (condjump_equiv_p): Fix comment.
19072
19073 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
19074
19075         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
19076         print_generic_stmt_indented): Fix comment.
19077
19078 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
19079
19080         * configure.ac (__stack_chk_fail): Add detecion for availability
19081         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
19082         * configure: Regenerate.
19083
19084 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
19085
19086         PR middle-end/34688
19087         * final.c (output_addr_const): Handle TRUNCATE.
19088
19089 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
19090
19091         PR target/34711
19092         * tree-ssa-loop-ivopts.c (comp_cost): New type.
19093         (zero_cost, infinite_cost): New constants.
19094         (struct cost_pair): Change type of cost to comp_cost.
19095         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
19096         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
19097         New functions.
19098         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
19099         split_address_cost, ptr_difference_cost, difference_cost,
19100         get_computation_cost_at, get_computation_cost,
19101         determine_use_iv_cost_generic, determine_use_iv_cost_address,
19102         determine_use_iv_cost_condition, determine_use_iv_costs,
19103         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
19104         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
19105         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
19106         Change type of cost to comp_cost.
19107         (determine_iv_cost): Increase cost of non-original ivs, instead
19108         of decreasing the cost of original ones.
19109         (get_address_cost): Indicate the complexity of the addressing mode
19110         in comp_cost.
19111         (try_add_cand_for): Prefer using ivs not specific to some object.
19112         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
19113
19114 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
19115             Janis Johnson  <janis187@us.ibm.com>
19116
19117         PR target/34814
19118         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
19119         (TARGET_INSTANTIATE_DECLS): Likewise.
19120         * target.h (expand_to_rtl_hook): New target hook.
19121         (instantiate_decls): Likewise.
19122         * function.c (instantiate_decl): Make non-static.  Rename to...
19123         (instantiate_decl_rtl): ... this.
19124         (instantiate_expr): Use instantiate_decl_rtl.
19125         (instantiate_decls_1): Likewise.
19126         (instantiate_decls): Likewise.
19127         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
19128         * function.h (instantiate_decl_rtl): Add prototype.
19129         * cfgexpand.c (target.h): New include.
19130         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
19131         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
19132         (TARGET_INSTANTIATE_DECLS): Likewise.
19133         (TARGET_INITIALIZER): New target hooks added.
19134         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
19135         New prototype.
19136         * config/rs6000/rs6000.c (tree-flow.h): New include.
19137         (machine_function): Add sdmode_stack_slot field.
19138         (rs6000_alloc_sdmode_stack_slot): New function.
19139         (rs6000_instantiate_decls): Likewise.
19140         (rs6000_secondary_memory_needed_rtx): Likewise.
19141         (rs6000_check_sdmode): Likewise.
19142         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
19143         (TARGET_INSTANTIATE_DECLS): Likewise.
19144         (rs6000_hard_regno_mode_ok): Allow SDmode.
19145         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
19146         (rs6000_emit_move): Handle SDmode.
19147         (function_arg_advance): Likewise.
19148         (function_arg): Likewise.
19149         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
19150         SDmode var args for 32-bit compiles.
19151         (rs6000_secondary_reload_class): Handle SDmode.
19152         (rs6000_output_function_epilogue): Likewise.
19153         (rs6000_function_value): Simplify if statement.
19154         (rs6000_libcall_value): Likewise.
19155         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
19156         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
19157         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
19158         (movsd_hardfloat): New define_insn.
19159         (movsd_softfloat): Likewise.
19160         (movsd_store): Likewise.
19161         (movsd_load): Likewise.
19162         (extendsddd2): Likewise.
19163         (extendsdtd2): Likewise.
19164         (truncddsd2): Likewise.
19165         (movdd_hardfloat64): Fixup comment.
19166         (UNSPEC_MOVSD_LOAD): New constant.
19167         (UNSPEC_MOVSD_STORE): Likewise.
19168
19169 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
19170
19171         PR c++/34965
19172         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
19173         TRUTH_XOR_EXPR.
19174         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
19175         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
19176         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
19177         and TRUTH_XOR_EXPR.
19178
19179 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
19180
19181         PR target/34794
19182         * config.gcc: Separate AIX 5.3 from AIX 6.1.
19183         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
19184         __LONGDOUBLE128 too.
19185         * config/rs6000/aix61.h: New file.
19186
19187 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
19188
19189         PR rtl-optimization/34959
19190         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
19191         popcount and parity rtxes the same mode as their operand.
19192         Truncate or extend the result to the return value's mode
19193         if necessary.
19194
19195 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
19196
19197         PR target/34981
19198         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
19199         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
19200         to GOT_VERSION_REGNUM.
19201         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
19202         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
19203         * config/mips/mips.c (mips_emit_call_insn): New function.
19204         (mips_call_tls_get_addr): Call mips_expand_call directly.
19205         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
19206         emit_call_insn.
19207         (mips16_build_call_stub): Likewise.  Return the call insn or null.
19208         (mips_expand_call): Update the call to mips16_build_call_stub
19209         accordingly and a remove redundant condition.  Assert that MIPS16
19210         stubs do not use lazy binding.  Use mips_emit_call_insn and return
19211         the call insn.
19212         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
19213         TARGET_USE_GOT.
19214         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
19215         (mips_avoid_hazard): Remove hazard_set handling.
19216         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
19217         (UNSPEC_RESTORE_GP): ...this.
19218         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
19219         (FAKE_CALL_REGNO): Rename to...
19220         (GOT_VERSION_REGNUM): ...this.
19221         (type): Add "ghost" value.  Add an associated insn reservation.
19222         (hazard_set): Remove.
19223         (exception_receiver): Rename to...
19224         (restore_gp): ...this and update the unspec identifier accordingly.
19225         (exception_receiver, nonlocal_got_receiver): New expanders.
19226         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
19227         FAKE_CALL_REGNO.  Remove hazard_set attribute.
19228         (set_got_version, update_got_version): New patterns.
19229
19230 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
19231
19232         PR target/34970
19233         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
19234
19235 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
19236
19237         PR other/31955
19238         * doc/install.texi2html: Generate gcc-vers.texi.
19239
19240 2008-01-25  DJ Delorie  <dj@redhat.com>
19241
19242         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
19243
19244 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
19245
19246         * config/c4x: Remove directory.
19247         * config.gcc (crx-*, mt-*): Mark obsolete.
19248         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
19249         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
19250         sh-*-rtemscoff*): Remove cases.
19251         * defaults.h (C4X_FLOAT_FORMAT): Remove.
19252         * real.c (encode_c4x_single, decode_c4x_single,
19253         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
19254         c4x_extended_format): Remove.
19255         * real.h (c4x_single_format, c4x_extended_format): Remove.
19256         * doc/extend.texi (interrupt, naked): Remove mention of attributes
19257         on C4x.
19258         (Pragmas): Remove comment about c4x pragmas.
19259         * doc/install.texi (c4x): Remove target-specific instructions.
19260         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
19261         * doc/md.texi (Machine Constraints): Remove C4x documentation.
19262         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
19263         refer to C4x source files as examples.
19264         (C4X_FLOAT_FORMAT): Remove documentation.
19265
19266 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
19267
19268         * config/bfin/bfin.c (override_options): Reorder tests so that
19269         flag_pic gets enabled for -msep-data.
19270
19271 2008-01-25  Richard Guenther  <rguenther@suse.de>
19272
19273         PR middle-end/32244
19274         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
19275         to its bitfield precision if required.
19276
19277 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
19278
19279         PR middle-end/33880
19280         * tree-nested.c (walk_omp_for): New function.
19281         (convert_nonlocal_reference, convert_local_reference): Call
19282         walk_omp_for on OMP_FOR.
19283         (convert_call_expr): Call walk_body on OMP_FOR's
19284         OMP_FOR_PRE_INIT_BODY.
19285
19286 2008-01-25  Richard Guenther  <rguenther@suse.de>
19287
19288         PR tree-optimization/34966
19289         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
19290         default defs and PHI_NODEs we have to insert after the
19291         defining statement.
19292
19293 2008-01-24  Nick Clifton  <nickc@redhat.com>
19294
19295         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
19296         Provide a default definition.
19297         (LIBGCC2_UNITS_PER_WORD): Likewise.
19298
19299         * config/stormy16/stormy16.c: Include df.h for the prototype
19300         for df_regs_ever_live_p.
19301         (xstormy16_expand_builtin_va_start): Convert the stack offset
19302         into a component_ref and then use POINTER_PLUS_EXPR to add it
19303         to the incoming_virtual_args_rtx.
19304         (xstormy16_gimplify_va_arg_expr): Rename to
19305         xstormy16_gimplify_va_arg_expr.
19306         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
19307         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
19308         xstormy16_gimplify_va_arg_expr.
19309         Fix up some formatting issues.
19310
19311         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
19312         Move to predicates.md.
19313         (xs_hi_general_operand): Likewise.
19314         (xs_hi_nonmemory_operand): Likewise.
19315         * config/stormy16/predicates.md:
19316         (xstormy16_carry_plus_operand): New predicate.
19317         (xs_hi_general_operand): New predicate.
19318         (xs_hi_nonmemory_operand): New predicate.
19319         * config/stormy16/stormy16-protos.h:
19320         (xstormy16_carry_plus_operand): Delete prototype.
19321         (xs_hi_general_operand): Likewise.
19322         (xs_hi_nonmemory_operand): Likewise.
19323
19324         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
19325         modifiers as they are no longer needed and they can trigger
19326         reload spill failures.
19327
19328         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
19329         with a match_operand in order to help reload.
19330
19331         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
19332         constraint with 'e' for the 8th alternative as this version of
19333         the mov.w instruction only accepts the lower 8 registers.
19334
19335 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
19336
19337         PR target/34856
19338         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
19339         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
19340         vector elements.
19341
19342 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
19343
19344         PR middle-end/33333
19345         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
19346
19347 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
19348
19349         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
19350         New functions.
19351         (remove_structure): Update allocations list before removing structure.
19352
19353 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
19354
19355         * ipa-struct-reorg.c (is_safe_cond_expr,
19356         create_new_stmts_for_cond_expr): Use integer_zerop function,
19357         that recognize not only zero-pointer, but zero-integer too.
19358
19359 2008-01-25  Ben Elliston  <bje@au.ibm.com>
19360
19361         PR other/22232
19362         * fixproto: Escape "." in sed expression that strips leading "./".
19363
19364 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
19365
19366         PR driver/34904
19367         * gcc.c (SWITCH_OK): Removed.
19368         (SWITCH_LIVE): Changed to bit.
19369         (SWITCH_FALSE): Likewise.
19370         (SWITCH_IGNORE): Likewise.
19371         (switchstr): Change live_cond to unsigned int.
19372         (process_command): Replace SWITCH_OK with 0.
19373         (do_self_spec): Likewise.
19374         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
19375         (give_switch): Likewise.
19376         (used_arg): Likewise.
19377         (do_spec_1): Set the SWITCH_IGNORE bit.
19378         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
19379         bits.  Set the SWITCH_LIVE bit.
19380
19381 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
19382
19383         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
19384
19385 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
19386
19387         PR tree-optimization/34472
19388         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
19389         parameter to a "bool *" and set *DATA to false if there is
19390         an unsafe access.  Do not delete the structure here.
19391         (check_cond_exprs): Delete it here instead.
19392         (check_cond_exprs, exclude_cold_structs): Do not increase
19393         I when removing a structure.
19394
19395 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
19396
19397         PR target/34856
19398         * config/i386/i386.c (ix86_expand_vector_init): Consider only
19399         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
19400
19401 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
19402
19403         PR middle-end/34934
19404         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
19405         a fixed vector for stack.
19406
19407 2008-01-24  Ben Elliston  <bje@au.ibm.com>
19408
19409         PR c++/25701
19410         * doc/gcc.texi (Software development): Add a direntry for g++.
19411
19412 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
19413
19414         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
19415         stale and straggling -fforce-addr comments above.
19416
19417         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
19418         define.
19419         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
19420         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
19421
19422 2008-01-23  Michael Matz  <matz@suse.de>
19423
19424         PR debug/34895
19425         * dwarf2out.c (force_type_die): Use modified_type_die instead of
19426         gen_type_die.
19427
19428 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
19429
19430         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
19431         malloc result type.
19432
19433 2008-01-23 Anatoly Sokolov <aesok@post.ru>
19434
19435         * config/avr/avr.c (avr_current_arch): New variable.
19436         (avr_arch_types): Add 'avr31' and 'avr51' entries.
19437         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
19438         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
19439         (avr_override_options): Init 'avr_current_arch'.
19440         (base_arch_s): Move from here...
19441         * config/avr/avr.h (base_arch_s): ... here. Add new members
19442         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
19443         'mega' to 'have_jmp_call'.
19444         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
19445         "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
19446         macros.
19447         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
19448         architectures.
19449         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
19450         MULTILIB_MATCHES): Ditto.
19451
19452 2008-01-23  Richard Guenther  <rguenther@suse.de>
19453
19454         PR middle-end/31529
19455         * cgraphunit.c (cgraph_reset_node): Always mark the node
19456         not reachable if it is not queued already.
19457
19458 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
19459
19460         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
19461         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
19462         (cputype_selected): New static variable.
19463         (bfin_handle_option): Set it if -mcpu is used.
19464         (override_option): Select default set of workarounds if no cpu type
19465         selected on the command line.
19466         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
19467
19468         From  Michael Frysinger  <michael.frysinger@analog.com>
19469         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
19470         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
19471
19472         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
19473         for bf547, bf523, bf524, and bf526.
19474         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
19475         bf526.
19476         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
19477         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
19478         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
19479         __ADSPBF547__ and __ADSPBF54x__ for bf547.
19480         * doc/invoke.texi (Blackfin Options): Document that
19481         -mcpu now accept bf547, bf523, bf524, and bf526.
19482
19483 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
19484
19485         PR rtl-optimization/34628
19486         * combine.c (try_combine): Stop and undo after the first combination
19487         if an autoincrement side-effect on the first insn has effectively
19488         been lost.
19489
19490 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
19491
19492         PR target/34529
19493         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
19494         Offset addresses are not valid for Altivec or paired float modes.
19495
19496 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
19497
19498         PR c++/34607
19499         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
19500         if DECL_INITIAL (decl) is error_mark_node.
19501
19502         PR c++/34914
19503         * c-common.c (handle_vector_size_attribute): Only allow
19504         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
19505         the same way as pointer, array etc. types.
19506         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
19507
19508         PR c++/34917
19509         * tree.c (build_type_attribute_qual_variant): Call
19510         build_qualified_type if attributes are equal, but quals are not.
19511
19512 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
19513
19514         PR 32102
19515         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
19516         * flags.h (warn_strict_aliasing): Remove.
19517         (warn_strict_overflow): Remove.
19518         * opts.c (warn_strict_aliasing): Remove.
19519         (warn_strict_overflow): Remove.
19520         * c-opts.c (c_common_handle_option): -Wall only sets
19521         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
19522         (c_common_post_options): Give default values to -Wstrict-aliasing
19523         and -Wstrict-overflow if they are uninitialized.
19524         * common.opt (Wstrict-aliasing): Specify Var and Init.
19525         (Wstrict-overflow): Likewise.
19526
19527 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
19528
19529         PR rtl-optimization/26854
19530         PR rtl-optimization/34400
19531         PR rtl-optimization/34884
19532         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
19533         DF_RD->gen.
19534         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
19535         (df_rd_bb_info.expanded_lr_out): Deleted
19536         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
19537         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
19538         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
19539         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
19540         Removed code to allocate, initialize or free expanded_lr_out.
19541         (df_rd_bb_local_compute_process_def): Restructured to make more
19542         understandable.
19543         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
19544         sets if the sets are being trimmed.
19545
19546 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
19547
19548         PR bootstrap/32287
19549         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
19550         (as_vers): Likewise.
19551         * configure: Regenerated.
19552
19553 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
19554
19555         PR middle-end/33092
19556         * tree-pass.h (pass_build_alias): New pass.
19557         * tree-ssa-alias.c (gate_build_alias): New.
19558         (pass_build_alias): New.
19559         * passes.c (init_optimization_passes): Add pass_build_alias after
19560         pass_create_structure_vars.
19561
19562 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
19563
19564         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
19565         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
19566         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
19567         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
19568         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
19569         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
19570         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
19571         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
19572         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
19573         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
19574         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
19575         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
19576         * config/s390/s390.md (FP_ALL): New mode iterator.
19577         (_d): New mode attribute.
19578         ("*signbit<mode>2>"): Changed mode of first operand.
19579         ("isinf<mode>2"): Changed mode of first operand.
19580         ("*TDC_insn"): Adaptation for DFP modes.
19581
19582 2008-01-22  Ben Elliston  <bje@au.ibm.com>
19583
19584         * tree.c (check_qualified_type): Improve function description.
19585
19586 2008-01-21  Jason Merrill  <jason@redhat.com>
19587
19588         PR c++/34196
19589         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
19590         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
19591         if it is set.
19592
19593 2008-01-21  DJ Delorie  <dj@redhat.com>
19594
19595         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
19596         return zero.
19597
19598 2008-01-21  Richard Guenther  <rguenther@suse.de>
19599
19600         PR middle-end/34856
19601         * tree-cfg.c (verify_expr): Allow all invariant expressions
19602         instead of just constant class ones as reference argument.
19603         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
19604         like any other constant.
19605         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
19606
19607 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
19608
19609         * regmove.c (fixup_match_1): Update call crossed frequencies.
19610
19611 2008-01-21  Richard Guenther  <rguenther@suse.de>
19612
19613         PR c/34885
19614         * tree-inline.c (setup_one_parameter): Deal with mismatched
19615         types using a VIEW_CONVERT_EXPR.
19616
19617 2008-01-21  Alon Dayan  <alond@il.ibm.com>
19618             Olga Golovanevsky  <olga@il.ibm.com>
19619
19620         PR tree-optimization/34701
19621         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
19622         when the structure size is not a power of 2.
19623
19624 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
19625
19626         * doc/install.texi: Add doc for --enable-checking=df.
19627
19628 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
19629
19630         PR rtl-optimization/34808
19631         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
19632
19633 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
19634
19635         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
19636         input.
19637
19638 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
19639
19640         PR rtl-optimization/26854
19641         PR rtl-optimization/34400
19642         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
19643         DF_RD->gen.
19644         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
19645         (df_rd_bb_info.expanded_lr_out): New.
19646         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
19647         * loop_iv.c (iv_analysis_loop_init): Ditto.
19648         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
19649         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
19650         Added code to allocate, initialize or free expanded_lr_out.
19651         (df_rd_bb_local_compute_process_def): Restructured to make
19652         more understandable.
19653         (df_rd_confluence_n): Add code to do nothing with fake edges and
19654         code to no apply invalidate_by_call sets if the sets are being trimmed.
19655         (df_lr_local_finalize): Renamed to df_lr_finalize.
19656         (df_live_local_finalize): Renamed to df_live_finalize.
19657
19658 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
19659
19660         PR target/34831
19661         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
19662         deciding whether to use reciprocal instructions.
19663
19664 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
19665
19666         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
19667         dwarf2out_note_section_used if cold_text_section is NULL.
19668
19669 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
19670
19671         PR gcov-profile/34610
19672         * tree-cfg.c (make_edges): Mark both outgoing edges from
19673         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
19674         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
19675         from OMP_FOR and OMP_CONTINUE outgoing edges.
19676
19677         * tree-profile.c (tree_profiling): Return early if
19678         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
19679         at the end.
19680         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
19681         from cfun to child_cfun.
19682         * function.h (struct function): Add after_tree_profile bit.
19683
19684 2008-01-19 Anatoly Sokolov <aesok@post.ru>
19685
19686         * config/avr/avr.S (_exit): Disable interrupt.
19687
19688 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
19689             Steven Bosscher  <stevenb.gcc@gmail.com>
19690
19691         PR rtl-optimization/26854
19692         PR rtl-optimization/34400
19693         * df-problems.c (df_live_scratch): New scratch bitmap.
19694         (df_live_alloc): Allocate df_live_scratch when doing df_live.
19695         (df_live_reset): Clear the proper bitmaps.
19696         (df_live_bb_local_compute): Only process the artificial defs once
19697         since the order is not important.
19698         (df_live_init): Init the df_live sets only with the variables
19699         found live by df_lr.
19700         (df_live_transfer_function): Use the df_lr sets to prune the
19701         df_live sets as they are being computed.
19702         (df_live_free): Free df_live_scratch.
19703
19704 2008-01-18  Ian Lance Taylor  <iant@google.com>
19705
19706         * common.opt: Add fmerge-debug-strings.
19707         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
19708         flag_merge_debug_strings rather than flag_merge_constants.
19709         * doc/invoke.texi (Option Summary): Mention
19710         -fmerge-debug-strings.
19711         (Debugging Options): Document -fmerge-debug-strings.
19712
19713 2008-01-18  Ian Lance Taylor  <iant@google.com>
19714
19715         PR c++/33407
19716         * tree.h (DECL_IS_OPERATOR_NEW): Define.
19717         (struct tree_function_decl): Add new field operator_new_flag.
19718         * tree-inline.c (expand_call_inline): When inlining a call to
19719         operator new, force the return value to go into a variable, and
19720         set DECL_NO_TBAA_P on that variable.
19721         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
19722
19723 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
19724
19725         PR debug/34484
19726         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
19727         DWARF2_DEBUGGING_INFO.
19728         (dwarf2out_note_section_used): Ditto.  Add prototype.
19729         (have_multiple_function_sections, text_section_used,
19730         cold_text_section_used, *cold_text_sections): Move declarations
19731         before their uses.
19732
19733 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
19734
19735         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
19736         field and add signal_ra.
19737         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
19738         assignments to frame state pc.  Move end of stack check after
19739         MD_FALLBACK_FRAME_STATE_FOR.
19740         (uw_update_context_1): Use frame state signal_regs if set, instead
19741         of checking signal_frame flag.
19742         (uw_update_context): Use frame state signal_ra if set.
19743         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
19744         * config/xtensa/linux-unwind.h: New file.
19745
19746 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
19747
19748         * modulo-sched.c (get_sched_window): Fix comment typo.
19749
19750 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
19751
19752         PR tree-optimization/34648
19753         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
19754
19755 2008-01-17  Anatoly Sokolov <aesok@post.ru>
19756
19757         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
19758         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
19759
19760 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
19761
19762         PR rtl-optimization/34400
19763         * df-core.c (df_worklist_dataflow_overeager,
19764         df_worklist_dataflow_doublequeue): New functions.
19765         (df_worklist_dataflow): Two different worklist solvers.
19766         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
19767         New param.
19768
19769 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
19770
19771         PR testsuite/34821
19772         * doc/invoke.texi: Document the dependence on pthread for fopenmp
19773         and ftree-parallelize-loops.
19774
19775 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
19776
19777         PR rtl-optimization/34826
19778         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
19779
19780 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
19781
19782         * global.c (find_reg): Mark the eh regs as used if necessary.
19783         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
19784         * ra.h (struct allocno): no_eh_reg field added.  Changed
19785         no_stack_reg type to bitfield.
19786
19787 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
19788
19789         * tree.c (substitute_in_expr): Add missing 'break'.
19790
19791 2008-01-17  Richard Guenther  <rguenther@suse.de>
19792
19793         PR tree-optimization/34825
19794         * tree-ssa-math-opts.c (is_division_by): Do not recognize
19795         x / x as division to handle.
19796
19797 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19798
19799         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
19800         "-pthread" is specified.
19801         * pa-hpux11.h (LIB_SPEC): Likewise.
19802
19803 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
19804             Peter Bergner  <bergner@vnet.ibm.com>
19805
19806         PR rtl-optimization/33796
19807         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
19808
19809 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19810
19811         PR libgfortran/34699
19812         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
19813         static links.
19814         * pa-hpux10.h (LINK_SPEC): Likewise.
19815         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
19816
19817 2008-01-16  Richard Guenther  <rguenther@suse.de>
19818
19819         PR middle-end/32628
19820         * fold-const.c (fold_convert_const_int_from_int): Do not
19821         set overflow if that occured only because of a sign extension
19822         change when converting from/to a sizetype with the same
19823         precision and signedness.
19824
19825 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
19826
19827         PR debug/34249
19828         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
19829         location address to the correct place.  Update copyright year.
19830
19831 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
19832
19833         * lambda-code.c (lambda_transform_legal_p): Handle the case of
19834         no dependences in the dependence_relations vector.
19835
19836 2008-01-16  Jan Hubicka  <jh@suse.cz>
19837
19838         PR rtl-optimization/31396
19839         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
19840         * cfg.c (dump_reg_info): Print it.
19841         * regs.h (struct reg_info_t): add freq_calls_crossed.
19842         (REG_FREQ_CALLS_CROSSED): New macro.
19843         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
19844         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
19845         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
19846         regmove_optimize): Update call crossed frequencies.
19847         * local-alloc.c (struct qty): Add freq_calls_crossed.
19848         (alloc_qty): Copute freq_calls_crossed.
19849         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
19850         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
19851         * ra.h (struct allocno): Add freq_calls_crossed.
19852
19853 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
19854
19855         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
19856         libgomp when compiling with ftree-parallelize-loops.
19857         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
19858
19859 2008-01-16  Richard Guenther  <rguenther@suse.de>
19860
19861         PR tree-optimization/34769
19862         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
19863         * tree.c (int_cst_value): Instead make this function more
19864         permissive in what it accepts as valid input.  Document this
19865         function always sign-extends the value.
19866
19867 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
19868             Richard Guenther  <rguenther@suse.de>
19869
19870         PR c/34668
19871         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
19872         (gimple_fold_indirect_ref_rhs): ... this.
19873         (gimple_fold_indirect_ref): New function with foldings
19874         that preserve lvalueness.
19875         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
19876         * tree-flow.h (gimple_fold_indirect_ref): Declare.
19877         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
19878         to fold an INDIRECT_REF, fall back to the old use of
19879         fold_indirect_ref_1.
19880
19881 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
19882
19883         * tree-data-ref.c (subscript_dependence_tester_1): Call
19884         free_conflict_function.
19885         (compute_self_dependence): Same.
19886
19887 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
19888
19889         PR debug/34249
19890         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
19891         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
19892         function global.
19893         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
19894         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
19895         for DWARF2_UNWIND_INFO targets.
19896
19897 2008-01-16  Richard Guenther  <rguenther@suse.de>
19898
19899         PR c/34768
19900         * c-typeck.c (common_pointer_type): Do not merge inconsistent
19901         type qualifiers for function types.
19902
19903 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
19904
19905         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
19906         loop_iterator li from previous commit.
19907
19908 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
19909
19910         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
19911
19912 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
19913
19914         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
19915         (parallelize_loops): Don't parallelize irreducible components.
19916
19917 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
19918
19919         PR c++/24924
19920         * c-opts (c_common_post_options): Do not enable CPP
19921         flag_pedantic_errors by default.
19922
19923 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
19924
19925         PR rtl-optimization/31944
19926         * cse.c (remove_pseudo_from_table): New function.
19927         (merge_equiv_classes): Use above function to remove pseudo-registers.
19928         (invalidate): Likewise.
19929
19930 2008-01-13  Richard Guenther  <rguenther@suse.de>
19931
19932         PR middle-end/34601
19933         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
19934         instead of TYPE_MODE to deal with calls from expand_one_error_var.
19935
19936 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
19937
19938         * gcse.c (cprop_jump): Call validate_unshare_change instead of
19939         validate_change to unshare the source of the PC set.
19940
19941 2008-01-12  Jan Hubicka  <jh@suse.cz>
19942
19943         PR middle-end/32135
19944         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
19945         references above array bounds.  This might trigger bounds checks for
19946         pointers to arrays.
19947
19948 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
19949
19950         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
19951         new_replaceable_dependencies.
19952
19953 2008-01-12  Doug Kwan  <dougkwan@google.com>
19954
19955         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
19956         instead of OPT_Wreturn_type in warning due to ignored return type
19957         qualifiers.
19958         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
19959         options included in -Wextra.
19960         * c.opt: New option -Wignored_qualifiers.
19961         * doc/invoke.texi (Warning Options, -Wextra): Add new option
19962         -Wignore_qualifiers.
19963         (-Wignored-qualifiers): Document.
19964         (-Wreturn-type): Remove description of functionality now handled
19965         by -Wignored-qualifiers.
19966
19967 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
19968
19969         PR ada/33788
19970         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
19971         NOP_EXPR if it is between integral types with the same precision.
19972
19973 2008-01-12  Jan Hubicka  <jh@suse.cz>
19974
19975         PR other/28023
19976         * invoke.texi (max-inline-recursive-depth): Fix default value.
19977
19978 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
19979
19980         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
19981         correct type.
19982
19983 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
19984
19985         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
19986
19987 2008-01-11  James E. Wilson  <wilson@specifix.com>
19988
19989         PR target/26015
19990         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
19991
19992 2008-01-11  Anatoly Sokolov <aesok@post.ru>
19993
19994         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
19995         save/restore frame pointer register and don't use 'call-prologues'
19996         optimization in function with "OS_task" attribute.
19997
19998 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
19999
20000         PR middle-end/31309
20001         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
20002         when copying to memory.
20003
20004 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
20005
20006         PR rtl-optimization/30905
20007         * cfgcleanup.c: Include dce.h
20008         (crossjumps_occured): New global variable.
20009         (try_crossjump_bb): Exit loop after finding a fallthru edge.
20010         If something changed, set crossjumps_occured to true.
20011         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
20012         Don't add/remove fake edges to exit here...
20013         (cleanup_cfg): ...but do it here, when crossjumping.
20014         Run a fast DCE when successful crossjumps occured in the latest
20015         iteration of try_optimize_cfg.
20016
20017 2008-01-11  Richard Guenther  <rguenther@suse.de>
20018
20019         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
20020         (struct vn_unary_op_s): Likewise.
20021         (vn_reference_insert): Free old reference on hash collision.
20022
20023 2008-01-10  Raksit Ashok  <raksit@google.com>
20024
20025         PR rtl-optimization/27971
20026         * combine.c (find_split_point): Split PLUS expressions which are
20027         inside a MEM rtx, and whose first operand is complex.
20028
20029 2008-01-10  DJ Delorie  <dj@redhat.com>
20030
20031         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
20032         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
20033         (m32c_hard_regno_ok): Call the underlying function.
20034
20035 2008-01-10  Richard Guenther  <rguenther@suse.de>
20036
20037         PR middle-end/34683
20038         * tree-cfg.c (tree_merge_blocks): Do not go through the
20039         full-blown folding and stmt updating path if we just deal
20040         with virtual operands.
20041         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
20042         test for abnormal SSA_NAMEs.
20043
20044 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
20045
20046         PR middle-end/34641
20047         * reload.c (push_reload): Add assertions.  All constants from
20048         reg_equiv_constant should have been used for replacing the respective
20049         pseudo earlier.
20050         (find_reloads_address): Invoke find_reloads_address_part for
20051         constant taken from the reg_equiv_constant array.
20052
20053 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
20054
20055         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
20056         field (valnum) the first in the struct.  Replace bools with
20057         unit bit fields.
20058
20059 2008-01-10  Richard Guenther  <rguenther@suse.de>
20060
20061         PR tree-optimization/34651
20062         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
20063         types and ordering for masking and converting.
20064
20065 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
20066
20067         PR tree-optimization/34017
20068         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
20069         also for PHI_NODE expressions.
20070
20071 2008-01-09  Jan Hubicka  <jh@suse.cz>
20072
20073         PR tree-optimization/34708
20074         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
20075         based on number of case labels.
20076         (init_inline_once): Remove switch_cost.
20077         * tree-inline.h (eni_weights_d): Remove switch_cost.
20078
20079 2008-01-09  Richard Guenther  <rguenther@suse.de>
20080         Andrew Pinski  <andrew_pinski@playstation.sony.com>
20081
20082         PR middle-end/30132
20083         * gimplify.c (gimplify_cond_expr): Do not create an addressable
20084         temporary if an rvalue is ok or an lvalue is not required.
20085
20086 2008-01-09  Richard Guenther  <rguenther@suse.de>
20087
20088         PR middle-end/34458
20089         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
20090         adjust return type.
20091
20092 2008-01-09  Richard Guenther  <rguenther@suse.de>
20093
20094         PR middle-end/34679
20095         * tree.c (host_integerp): Check for sizetype only if the
20096         type is an integer type.
20097
20098 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
20099
20100         PR debug/26364
20101         * opts.c (decode_options): Disable inlining of functions called
20102         once if not in unit-at-a-time mode.
20103
20104 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
20105
20106         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
20107
20108 2008-01-08  Richard Guenther  <rguenther@suse.de>
20109
20110         PR middle-end/31863
20111         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
20112         out early if the result will be unused.
20113
20114 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
20115
20116         PR target/34709
20117         Revert:
20118
20119         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
20120         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
20121         for TARGET_RECIP.
20122
20123 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
20124
20125         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
20126         for vectorization tuned.
20127
20128 2008-01-08  Richard Guenther  <rguenther@suse.de>
20129
20130         PR tree-optimization/34683
20131         * tree-ssa-operands.c (operand_build_cmp): Export.
20132         * tree-ssa-operands.h (operand_build_cmp): Declare.
20133         * tree-vn.c (vuses_compare): Remove.
20134         (sort_vuses): Use operand_build_cmp.
20135         (sort_vuses_heap): Likewise.
20136         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
20137         to re-use old VEC if available.  Do not sort already sorted VUSEs.
20138         (vdefs_to_vec): Do not sort already sorted VDEFs.
20139
20140 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
20141
20142         PR middle-end/34694
20143         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
20144
20145 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
20146
20147         PR target/34702
20148         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
20149         limitations of reciprocal sequences on x86 targets.
20150
20151 2008-01-08  Richard Guenther  <rguenther@suse.de>
20152
20153         PR tree-optimization/34683
20154         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
20155
20156 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
20157
20158         PR target/34622
20159         * config/darwin.c (darwin_mergeable_string_section): Don't use
20160         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
20161
20162 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
20163
20164         PR target/34682
20165         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
20166         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
20167         predicates of op0 and op1 to register_operand.
20168         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
20169         expander using X87MODEF mode iterator.  Change predicates of
20170         op0 and op1 to register_operand.
20171         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
20172         corresponding patterns and macroize using MODEF macro.  Change
20173         predicates of op0 and op1 to register_operand and remove
20174         "m" constraint. Disparage "r" alternative with "!".
20175         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
20176         macroize using X87MODEF macro.  Change predicates of op0 and op1
20177         to register_operand and remove "m" constraint.  Disparage "r"
20178         alternative with "!".
20179         (absneg splitter with memory operands): Remove.
20180         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
20181         patterns and macroize using X87MODEF mode iterator.
20182         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
20183         Change predicate of op1 to register_operand.
20184         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
20185         for memory operands.
20186
20187 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
20188
20189         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
20190
20191 2008-01-07  Richard Guenther  <rguenther@suse.de>
20192
20193         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
20194         fields.
20195
20196 2008-01-07  Richard Guenther  <rguenther@suse.de>
20197
20198         PR tree-optimization/34683
20199         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
20200         VOPs of the needed size to save memory.  Use VEC_quick_push
20201         to save compile-time.
20202         (vdefs_to_vec): Likewise.
20203
20204 2008-01-07  Sa Liu  <saliu@de.ibm.com>
20205
20206         * config/spu/spu.md (divdf3): Genetate inline code for double
20207         division.  The implementation doesn't handle INF or NAN, therefore it
20208         only applies when -ffinite-math-only is given.
20209
20210 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
20211
20212         PR libstdc++/34680
20213         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
20214         * doc/cpp.texi ([Common Predefined Macros]): Document.
20215
20216 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
20217
20218         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
20219         order to use commutative addition instead of subtraction.
20220
20221 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
20222             Mircea Namolaru  <namolaru@il.ibm.com>
20223             Vladimir Yanovsky  <yanov@il.ibm.com>
20224             Revital Eres  <eres@il.ibm.com>
20225
20226         PR tree-optimization/34263
20227         * tree-outof-ssa.c (process_single_block_loop_latch,
20228         contains_tree_r): New functions.
20229         (analyze_edges_for_bb): Call process_single_block_loop_latch
20230         function to empty single-basic-block latch block if possible.
20231
20232 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
20233
20234         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
20235         for TARGET_RECIP.
20236         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
20237
20238 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
20239
20240         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
20241
20242 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
20243
20244         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
20245
20246 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
20247
20248         PR tree-optimization/34618
20249         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
20250         flag from T.
20251
20252 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
20253
20254         PR target/34673
20255         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
20256         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
20257         Update copyright year.
20258
20259         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
20260         Update copyright year.
20261         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
20262         using NR fixup.
20263
20264 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
20265
20266         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
20267         edge does not point to current bb before changing need_assert.
20268
20269 2008-01-04  Richard Guenther  <rguenther@suse.de>
20270
20271         PR middle-end/34029
20272         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
20273         for verifying purposes if they are is_gimple_min_invariant.
20274
20275 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
20276
20277         PR tree-optimization/34448
20278         PR tree-optimization/34465
20279         * gimplify.c (gimplify_init_constructor): Add new parameter
20280         notify_temp_creation.  Use it.
20281         (gimplify_modify_expr_rhs): Take volatiles into account when
20282         optimizing constructors.
20283         Do not optimize constructors if gimplify_init_constructor will dump to
20284         memory.
20285         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
20286         * gcc.c-torture/compile/pr34448.c: New.
20287
20288 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
20289
20290         PR gcov-profile/34609
20291         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
20292         return_slot if result is TREE_ADDRESSABLE.
20293
20294 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
20295
20296         * config/mips/mips.md (sqrt_condition): Tweak comment.
20297         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
20298
20299 2008-01-03  Tom Tromey  <tromey@redhat.com>
20300
20301         PR c/34457
20302         * c-common.c (c_type_hash): Handle VLAs.
20303
20304 2008-01-03  Jan Hubicka  <jh@suse.cz>
20305
20306         PR tree-optimization/31081
20307         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
20308         0 when inlining and not inlining to first basic block.
20309         (remap_decl): When var is initialized to 0, don't set default_def.
20310         (expand_call_inline): Set entry_bb.
20311         * tree-inline.h (copy_body_data): Add entry_bb.
20312
20313 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
20314
20315         PR c++/34619
20316         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
20317         before returning.
20318
20319         PR tree-optimization/29484
20320         * tree-inline.c (inline_forbidden_p_2): New function.
20321         (inline_forbidden_p): Disallow inlining if some static var
20322         has an address of a local LABEL_DECL in its initializer.
20323         * doc/extend.texi (Labels as Values): Document &&foo behaviour
20324         vs. inlining.
20325
20326 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
20327
20328         PR tree-optimization/34635
20329         * tree-data-ref.c (add_other_self_distances): Make sure that the
20330         evolution step is constant.
20331
20332 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
20333
20334         PR middle-end/34608
20335         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
20336
20337 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
20338
20339         * tree-sra.c (scalarize_init): Insert the generate_element_init
20340         statements after the generate_element_zero statements.
20341
20342 2008-01-02  Richard Guenther  <rguenther@suse.de>
20343
20344         PR middle-end/34093
20345         PR middle-end/31976
20346         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
20347         for very large number of operands instead of ICEing.
20348
20349 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
20350
20351         PR target/34013
20352         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
20353         while stack probing.
20354
20355 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
20356
20357         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
20358         in C++0x mode.
20359
20360 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
20361
20362         PR libmudflap/26442
20363         * tree-mudflap.c (mx_register_decls): Guard warning by
20364         !DECL_ARTIFICIAL check.
20365
20366 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
20367
20368         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
20369         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
20370         sse5_perm<mode>): Fix constraints.