OSDN Git Service

* config/i386/sse.md (xop_pmacsww, xop_pmacssww, xop_pmacsdd,
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-11-07  Uros Bizjak  <ubizjak@gmail.com>
2
3         * config/i386/sse.md (xop_pmacsww, xop_pmacssww, xop_pmacsdd,
4         xop_pmacssdd, xop_pmacssdql, xop_pmacssdqh, xop_pmacsdql,
5         *xop_pmacsdql_mem, xop_pmacsdqh, *xop_pmacsdqh_mem, xop_pmacsswd,
6         xop_pmacswd, xop_pmadcsswd, xop_pmadcswd, xop_pcmov_<mode>,
7         xop_pcmov_<mode>256, xop_pperm, xop_pperm_pack_v2di_v4si,
8         xop_pperm_pack_v4si_v8hi, xop_pperm_pack_v8hi_v16qi): Compress
9         operand alternatives.
10
11 2009-11-06  Michael Matz  <matz@suse.de>
12
13         PR middle-end/41963
14         * tree-ssa-math-opts.c (execute_cse_reciprocals): Check all uses
15         of a potential reciprocal to really be reciprocals.
16
17 2009-11-06  Jakub Jelinek  <jakub@redhat.com>
18
19         * config/i386/x86intrin.h: Include fma4intrin.h, xopintrin.h and
20         lwpintrin.h after immintrin.h.
21         * config/i386/fma4intrin.h (__v8sf, __v4df, __m256, __m256d): Remove
22         typedefs.
23
24         PR middle-end/41935
25         * c-common.c (fold_offsetof_1) <case ARRAY_REF>: Don't crash for VLAs
26         or non-constant index, allow index one past the last element and
27         allow exceeding array bound in arrays that might be used as flexible
28         array members.
29
30 2009-11-05  Richard Henderson  <rth@redhat.com>
31
32         * config/i386/ia32intrin.h: Protect CRC32 builtins with __SSE4_2__.
33
34 2009-11-05  Paul Brook  <paul@codesourcery.com>
35
36         * config/arm/arm.c (arm_fp_model, arm_fpu_arch, arm_fpu_tune): Remove.
37         (arm_fpu_desc): New.
38         (all_fpus): Add FPU details.
39         (fp_model_for_fpu): Remove.
40         (arm_override_options): Set and use arm_fpu_desc and arm_fpu_attr.
41         (arm_output_epilogue, arm_save_coproc_regs): Use TARGET_FPA_EMU2.
42         (arm_file_start): Use arm_fpu_desc.
43         * config/arm/arm.h (TARGET_FPA, TARGET_MAVERICK, TARGET_VFP,
44         TARGET_VFPD32, TARGET_VFP3, TARGET_NEON_FP16, TARGET_NEON): Use
45         arm_fpu_desc.
46         (TARGET_FPA_EMU2): Define.
47         (arm_fp_model, fputype, arm_fpu_tune): Remove.
48         (vfp_reg_type, arm_fpu_desc): New.
49         * config/arm/arm.md (attr fpu): Simplify.
50         * config/arm/fpa.md (movxf_fpa): Use TARGET_FPA_EMU2.
51         * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Use string value.
52         * config/arm/bpabi.h (FPUTYPE_DEFAULT): Use string value.
53         * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Use string value.
54         * config/arm/vxworks.h (FPUTYPE_DEFAULT): Use string value.
55
56 2009-11-05  Michael Matz  <matz@suse.de>
57
58         * config/i386/i386.c (ix86_builtin_reciprocal): Remove dependency
59         on TARGET_RECIP.
60         * doc/invoke.texi (-mrecip): Clarify that we don't need -mrecip
61         for 1/sqrtf.
62
63 2009-11-04  Jason Merrill  <jason@redhat.com>
64
65         PR c++/36912
66         * varasm.c (initializer_constant_valid_p): A PLUS_EXPR
67         or MINUS_EXPR of REAL_TYPE is not a valid constant initializer.
68         (output_constant): Avoid crash after error.
69
70 2009-11-05  Martin Jambor  <mjambor@suse.cz>
71
72         * tree-sra.c (struct access): Changed comment of next_sibling field.
73         (analyze_modified_params): Loop over accesses of a group rather than
74         over all with the ame base, pass a common bitmap to
75         walk_aliased_vdefs.
76         (unmodified_by_ref_scalar_representative): Build link lists of
77         accesses of a group.
78         (splice_param_accesses): Likewise.
79
80 2009-11-04  Kenneth Zadeck  <zadeck@naturalbridge.com>
81
82         * df-scan.c (df-uses-record): Add case zero_extract of mem.
83         
84 2009-11-04  Eric Botcazou  <ebotcazou@adacore.com>
85
86         PR target/10127
87         PR ada/20548
88         * config/i386/i386.md (probe_stack): New expander.
89         (logical operation peepholes): Do not split stack checking probes.
90
91 2009-11-04  Harsha Jagasia  <harsha.jagasia@amd.com>
92             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
93
94         * doc/invoke.texi (-mlwp): Add documentation.
95         * doc/extend.texi (x86 intrinsics): Add LWP intrinsics.
96         * config.gcc (i[34567]86-*-*): Include lwpintrin.h.
97         (x86_64-*-*): Ditto.
98         * config/i386/lwpintrin.h: New file, provide x86 compiler
99         intrinisics for LWP.
100         * config/i386/cpuid.h (bit_LWP): Define LWP bit.
101         * config/i386/x86intrin.h: Add LWP check and lwpintrin.h.
102         * config/i386/i386-c.c (ix86_target_macros_internal): Check
103         ISA_FLAG for LWP. 
104         * config/i386/i386.h (TARGET_LWP): New macro for LWP.
105         * config/i386/i386.opt (-mlwp): New switch for LWP support.
106         * config/i386/i386.c (OPTION_MASK_ISA_LWP_SET): New.
107         (OPTION_MASK_ISA_LWP_UNSET): New.       
108         (ix86_handle_option): Handle -mlwp.
109         (isa_opts): Handle -mlwp.
110         (enum pta_flags): Add PTA_LWP.
111         (override_options): Add LWP support.
112         (IX86_BUILTIN_LLWPCB16): New for LWP intrinsic.
113         (IX86_BUILTIN_LLWPCB32): Ditto.
114         (IX86_BUILTIN_LLWPCB64): Ditto.
115         (IX86_BUILTIN_SLWPCB16): Ditto.
116         (IX86_BUILTIN_SLWPCB32): Ditto.
117         (IX86_BUILTIN_SLWPCB64): Ditto.
118         (IX86_BUILTIN_LWPVAL16): Ditto.
119         (IX86_BUILTIN_LWPVAL32): Ditto.
120         (IX86_BUILTIN_LWPVAL64): Ditto.
121         (IX86_BUILTIN_LWPINS16): Ditto.
122         (IX86_BUILTIN_LWPINS32): Ditto.
123         (IX86_BUILTIN_LWPINS64): Ditto.
124         (enum  ix86_special_builtin_type): Add LWP intrinsic support.
125         (builtin_description): Ditto.
126         (ix86_init_mmx_sse_builtins): Ditto.
127         (ix86_expand_special_args_builtin): Ditto.
128         * config/i386/i386.md (UNSPEC_LLWP_INTRINSIC): Add new UNSPEC for 
129         LWP support.
130         (UNSPEC_SLWP_INTRINSIC): Ditto.
131         (UNSPECV_LWPVAL_INTRINSIC): Ditto.
132         (UNSPECV_LWPINS_INTRINSIC): Ditto.
133         (lwp_llwpcbhi1): New lwp pattern.
134         (lwp_llwpcbsi1): Ditto.
135         (lwp_llwpcbdi1): Ditto.
136         (lwp_slwpcbhi1): Ditto.
137         (lwp_slwpcbsi1): Ditto.
138         (lwp_slwpcbdi1): Ditto.
139         (lwp_lwpvalhi3): Ditto.
140         (lwp_lwpvalsi3): Ditto.
141         (lwp_lwpvaldi3): Ditto.
142         (lwp_lwpinshi3): Ditto.
143         (lwp_lwpinssi3): Ditto.
144         (lwp_lwpinsdi3): Ditto.
145         
146 2009-11-04  Andrew Pinski  <andrew_pinski@playstation.sony.com>
147             Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
148
149         PR rtl-opt/41833
150         * simplify-rtx.c (simplify_binary_operation_1): Simplify vec_select of
151         a vec_duplicate.
152
153 2009-11-04  Richard Guenther  <rguenther@suse.de>
154             Rafael Avila de Espindola  <espindola@google.com>
155  
156         * gcc.c (process_command): Handle arguments name@offset.
157
158 2009-11-04  Harsha Jagasia  <harsha.jagasia@amd.com>
159             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
160         
161         * config.gcc (i[34567]86-*-*): Include xopintrin.h.
162         (x86_64-*-*): Ditto.
163         * config/i386/xopintrin.h: New file, provide common x86 compiler
164         intrinisics for XOP.
165         * config/i386/cpuid.h (bit_XOP): Define XOP bit.
166         * config/i386/x86intrin.h: Add XOP check and xopintrin.h.
167         * config/i386/i386-c.c(ix86_target_macros_internal): Check
168         ISA_FLAG for XOP. 
169         * config/i386/i386.h(TARGET_XOP): New macro for XOP.
170         * config/i386/i386.opt (-mxop): New switch for XOP support.
171         * config/i386/i386.md (UNSPEC_XOP_UNSIGNED_CMP)
172         (UNSPEC_XOP_TRUEFALSE)
173         (UNSPEC_XOP_PERMUTE)
174         (UNSPEC_FRCZ): Add new UNSPEC for XOP support.
175         (PPERM_*): New constants for vpperm instruction.
176         (xop_pcmov_<mode>): Add XOP conditional mov instructions.
177         * config/i386/i386.c (OPTION_MASK_ISA_XOP_SET): New.
178         (OPTION_MASK_ISA_XOP_UNSET): New.       
179         (OPTION_MASK_ISA_XOP_UNSET): Change definition to depend on XOP.
180         (ix86_handle_option): Handle -mxop.
181         (isa_opts): Handle -mxop.
182         (enum pta_flags): Add PTA_XOP.
183         (override_options): Add XOP support.
184         (print_operand): Add code for XOP compare instructions.
185         (ix86_expand_sse_movcc): Extend for XOP conditional move instruction.
186         (ix86_expand_int_vcond): Extend for XOP compare instruction.
187
188         (IX86_BUILTIN_VPCMOV): New for XOP intrinsic.
189         (IX86_BUILTIN_VPCMOV_V2DI): Ditto.
190         (IX86_BUILTIN_VPCMOV_V4SI): Ditto.
191         (IX86_BUILTIN_VPCMOV_V8HI): Ditto.
192         (IX86_BUILTIN_VPCMOV_V16QI): Ditto.
193         (IX86_BUILTIN_VPCMOV_V4SF): Ditto.
194         (IX86_BUILTIN_VPCMOV_V2DF): Ditto.
195
196         (IX86_BUILTIN_VPCMOV256): Ditto.
197         (IX86_BUILTIN_VPCMOV_V4DI256): Ditto.
198         (IX86_BUILTIN_VPCMOV_V8SI256): Ditto.
199         (IX86_BUILTIN_VPCMOV_V16HI256): Ditto.
200         (IX86_BUILTIN_VPCMOV_V32QI256): Ditto.
201         (IX86_BUILTIN_VPCMOV_V8SF256): Ditto.
202         (IX86_BUILTIN_VPCMOV_V4DF256): Ditto.
203
204         (IX86_BUILTIN_VPPERM): Ditto.
205
206         (IX86_BUILTIN_VPMACSSWW): Ditto.
207         (IX86_BUILTIN_VPMACSWW): Ditto.
208         (IX86_BUILTIN_VPMACSSWD): Ditto.
209         (IX86_BUILTIN_VPMACSWD): Ditto.
210         (IX86_BUILTIN_VPMACSSDD): Ditto.
211         (IX86_BUILTIN_VPMACSDD): Ditto.
212         (IX86_BUILTIN_VPMACSSDQL): Ditto.
213         (IX86_BUILTIN_VPMACSSDQH): Ditto.
214         (IX86_BUILTIN_VPMACSDQL): Ditto.
215         (IX86_BUILTIN_VPMACSDQH): Ditto.
216         (IX86_BUILTIN_VPMADCSSWD): Ditto.
217         (IX86_BUILTIN_VPMADCSWD): Ditto.
218
219         (IX86_BUILTIN_VPHADDBW): Ditto.
220         (IX86_BUILTIN_VPHADDBD): Ditto.
221         (IX86_BUILTIN_VPHADDBQ): Ditto.
222         (IX86_BUILTIN_VPHADDWD): Ditto.
223         (IX86_BUILTIN_VPHADDWQ): Ditto.
224         (IX86_BUILTIN_VPHADDDQ): Ditto.
225         (IX86_BUILTIN_VPHADDUBW): Ditto.
226         (IX86_BUILTIN_VPHADDUBD): Ditto.
227         (IX86_BUILTIN_VPHADDUBQ): Ditto.
228         (IX86_BUILTIN_VPHADDUWD): Ditto.
229         (IX86_BUILTIN_VPHADDUWQ): Ditto.
230         (IX86_BUILTIN_VPHADDUDQ): Ditto.
231         (IX86_BUILTIN_VPHSUBBW): Ditto.
232         (IX86_BUILTIN_VPHSUBWD): Ditto.
233         (IX86_BUILTIN_VPHSUBDQ): Ditto.
234
235         (IX86_BUILTIN_VPROTB): Ditto.
236         (IX86_BUILTIN_VPROTW): Ditto.
237         (IX86_BUILTIN_VPROTD): Ditto.
238         (IX86_BUILTIN_VPROTQ): Ditto.
239         (IX86_BUILTIN_VPROTB_IMM): Ditto.
240         (IX86_BUILTIN_VPROTW_IMM): Ditto.
241         (IX86_BUILTIN_VPROTD_IMM): Ditto.
242         (IX86_BUILTIN_VPROTQ_IMM): Ditto.
243
244         (IX86_BUILTIN_VPSHLB): Ditto.
245         (IX86_BUILTIN_VPSHLW): Ditto.
246         (IX86_BUILTIN_VPSHLD): Ditto.
247         (IX86_BUILTIN_VPSHLQ): Ditto.
248         (IX86_BUILTIN_VPSHAB): Ditto.
249         (IX86_BUILTIN_VPSHAW): Ditto.
250         (IX86_BUILTIN_VPSHAD): Ditto.
251         (IX86_BUILTIN_VPSHAQ): Ditto.
252
253         (IX86_BUILTIN_VFRCZSS): Ditto.
254         (IX86_BUILTIN_VFRCZSD): Ditto.
255         (IX86_BUILTIN_VFRCZPS): Ditto.
256         (IX86_BUILTIN_VFRCZPD): Ditto.
257         (IX86_BUILTIN_VFRCZPS256): Ditto.
258         (IX86_BUILTIN_VFRCZPD256): Ditto.
259
260         (IX86_BUILTIN_VPCOMEQUB): Ditto.
261         (IX86_BUILTIN_VPCOMNEUB): Ditto.
262         (IX86_BUILTIN_VPCOMLTUB): Ditto.
263         (IX86_BUILTIN_VPCOMLEUB): Ditto.
264         (IX86_BUILTIN_VPCOMGTUB): Ditto.
265         (IX86_BUILTIN_VPCOMGEUB): Ditto.
266         (IX86_BUILTIN_VPCOMFALSEUB): Ditto.
267         (IX86_BUILTIN_VPCOMTRUEUB): Ditto.
268
269         (IX86_BUILTIN_VPCOMEQUW): Ditto.
270         (IX86_BUILTIN_VPCOMNEUW): Ditto.
271         (IX86_BUILTIN_VPCOMLTUW): Ditto.
272         (IX86_BUILTIN_VPCOMLEUW): Ditto.
273         (IX86_BUILTIN_VPCOMGTUW): Ditto.
274         (IX86_BUILTIN_VPCOMGEUW): Ditto.
275         (IX86_BUILTIN_VPCOMFALSEUW): Ditto.
276         (IX86_BUILTIN_VPCOMTRUEUW): Ditto.
277
278         (IX86_BUILTIN_VPCOMEQUD): Ditto.
279         (IX86_BUILTIN_VPCOMNEUD): Ditto.
280         (IX86_BUILTIN_VPCOMLTUD): Ditto.
281         (IX86_BUILTIN_VPCOMLEUD): Ditto.
282         (IX86_BUILTIN_VPCOMGTUD): Ditto.
283         (IX86_BUILTIN_VPCOMGEUD): Ditto.
284         (IX86_BUILTIN_VPCOMFALSEUD): Ditto.
285         (IX86_BUILTIN_VPCOMTRUEUD): Ditto.
286
287         (IX86_BUILTIN_VPCOMEQUQ): Ditto.
288         (IX86_BUILTIN_VPCOMNEUQ): Ditto.
289         (IX86_BUILTIN_VPCOMLTUQ): Ditto.
290         (IX86_BUILTIN_VPCOMLEUQ): Ditto.
291         (IX86_BUILTIN_VPCOMGTUQ): Ditto.
292         (IX86_BUILTIN_VPCOMGEUQ): Ditto.
293         (IX86_BUILTIN_VPCOMFALSEUQ): Ditto.
294         (IX86_BUILTIN_VPCOMTRUEUQ): Ditto.
295
296         (IX86_BUILTIN_VPCOMEQB): Ditto.
297         (IX86_BUILTIN_VPCOMNEB): Ditto.
298         (IX86_BUILTIN_VPCOMLTB): Ditto.
299         (IX86_BUILTIN_VPCOMLEB): Ditto.
300         (IX86_BUILTIN_VPCOMGTB): Ditto.
301         (IX86_BUILTIN_VPCOMGEB): Ditto.
302         (IX86_BUILTIN_VPCOMFALSEB): Ditto.
303         (IX86_BUILTIN_VPCOMTRUEB): Ditto.
304
305         (IX86_BUILTIN_VPCOMEQW): Ditto.
306         (IX86_BUILTIN_VPCOMNEW): Ditto.
307         (IX86_BUILTIN_VPCOMLTW): Ditto.
308         (IX86_BUILTIN_VPCOMLEW): Ditto.
309         (IX86_BUILTIN_VPCOMGTW): Ditto.
310         (IX86_BUILTIN_VPCOMGEW): Ditto.
311         (IX86_BUILTIN_VPCOMFALSEW): Ditto.
312         (IX86_BUILTIN_VPCOMTRUEW): Ditto.
313
314         (IX86_BUILTIN_VPCOMEQD): Ditto.
315         (IX86_BUILTIN_VPCOMNED): Ditto.
316         (IX86_BUILTIN_VPCOMLTD): Ditto.
317         (IX86_BUILTIN_VPCOMLED): Ditto.
318         (IX86_BUILTIN_VPCOMGTD): Ditto.
319         (IX86_BUILTIN_VPCOMGED): Ditto.
320         (IX86_BUILTIN_VPCOMFALSED): Ditto.
321         (IX86_BUILTIN_VPCOMTRUED): Ditto.
322
323         (IX86_BUILTIN_VPCOMEQQ): Ditto.
324         (IX86_BUILTIN_VPCOMNEQ): Ditto.
325         (IX86_BUILTIN_VPCOMLTQ): Ditto.
326         (IX86_BUILTIN_VPCOMLEQ): Ditto.
327         (IX86_BUILTIN_VPCOMGTQ): Ditto.
328         (IX86_BUILTIN_VPCOMGEQ): Ditto.
329         (IX86_BUILTIN_VPCOMFALSEQ): Ditto.
330         (IX86_BUILTIN_VPCOMTRUEQ): Ditto.
331
332         (enum multi_arg_type): New enum for describing the various XOP
333         intrinsic argument types.
334         (bdesc_multi_arg): New table for XOP intrinsics.
335         (ix86_init_mmx_sse_builtins): Add XOP intrinsic support.
336         (ix86_expand_multi_arg_builtin): New function for creating XOP
337         intrinsics.
338
339         * config/i386/sse.md (sserotatemax): New mode attribute for XOP.
340         (xop_pmacsww): Ditto.
341         (xop_pmacssww): Ditto.
342         (xop_pmacsdd): Ditto.
343         (xop_pmacssdd): Ditto.
344         (xop_pmacssdql): Ditto.
345         (xop_pmacssdqh): Ditto.
346         (xop_pmacsdql): Ditto.
347         (xop_pmacsdql_mem): Ditto.
348         (xop_mulv2div2di3_low): Ditto.
349         (xop_pmacsdqh): Ditto.
350         (xop_pmacsdqh_mem): Ditto.
351         (xop_mulv2div2di3_high): Ditto.
352         (xop_pmacsswd): Ditto.
353         (xop_pmacswd): Ditto.
354         (xop_pmadcsswd): Ditto.
355         (xop_pmadcswd): Ditto.
356         (xop_pcmov_<mode>): Ditto.
357         (xop_pcmov_<mode>)256: Ditto.
358         (xop_phaddbw): Ditto.
359         (xop_phaddbd): Ditto.
360         (xop_phaddbq): Ditto.
361         (xop_phaddwd): Ditto.
362         (xop_phaddwq): Ditto.
363         (xop_phadddq): Ditto.
364         (xop_phaddubw): Ditto.
365         (xop_phaddubd): Ditto.
366         (xop_phaddubq): Ditto.
367         (xop_phadduwd): Ditto.
368         (xop_phadduwq): Ditto.
369         (xop_phaddudq): Ditto.
370         (xop_phsubbw): Ditto.
371         (xop_phsubwd): Ditto.
372         (xop_phsubdq): Ditto.
373         (xop_pperm): Ditto.
374         (rotl<mode>3): Ditto.
375         (rotr<mode>3): Ditto.
376         (xop_rotl<mode>3): Ditto.
377         (xop_rotr<mode>3): Ditto.
378         (vrotr<mode>3): Ditto.
379         (vrotl<mode>3): Ditto.
380         (xop_vrotl<mode>3): Ditto.
381         (vlshr<mode>3): Ditto.
382         (vashr<mode>3): Ditto.
383         (vashl<mode>3
384         (xop_ashl<mode>3): Ditto.
385         (xop_lshl<mode>3): Ditto.
386         (ashlv16qi3): Ditto.
387         (lshlv16qi3): Ditto.
388         (ashrv16qi3): Ditto.
389         (ashrv2di3): Ditto.
390         (xop_frcz<mode>2): Ditto.
391         (xop_vmfrcz<mode>2): Ditto.
392         (xop_frcz<mode>2256): Ditto.    
393         (xop_maskcmp<mode>3): Ditto.
394         (xop_maskcmp_uns<mode>3): Ditto.
395         (xop_maskcmp_uns2<mode>3): Ditto.
396         (xop_pcom_tf<mode>3): Ditto.
397
398         * doc/invoke.texi (-mxop): Add documentation.
399         * doc/extend.texi (x86 intrinsics): Add XOP intrinsics.
400         
401 2009-11-03  Mark Mitchell  <mark@codesourcery.com>
402
403         PR driver/11810
404         * gcc.c (SWITCHES_NEED_SPACES): Define to "o".
405         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Remove here.
406         * config/mips/iris.h (SWITCHES_NEED_SPACES): Remove here.
407
408 2009-11-04  Richard Earnshaw  <rearnsha@arm.com>
409
410         PR target/40835
411         * arm.md (peephole2 patterns for move and compare): New.
412
413 2009-11-04  Nick Clifton  <nickc@redhat.com>
414
415         * defaults.h (CONSTANT_ADDRESS_P): Provide a default definition.
416         Make sure that it does not allow CONST_DOUBLEs.
417         * doc/tm.texi (CONSTANT_ADDRESS_P): Update description.
418         * config/avr/avr.h (CONSTANT_ADDRESS_P): Delete.
419         * config/bfin/bfin.h (CONSTANT_ADDRESS_P): Delete.
420         * config/cris/cris.h (CONSTANT_ADDRESS_P): Delete.
421         * config/fr30/fr30.h (CONSTANT_ADDRESS_P): Delete.
422         * config/frv/frv.h (CONSTANT_ADDRESS_P): Delete.
423         * config/m32c/m32c.h (CONSTANT_ADDRESS_P): Delete.
424         * config/m68hc11/m68hc11.h (CONSTANT_ADDRESS_P): Delete.
425         * config/mep/mep.h (CONSTANT_ADDRESS_P): Delete.
426         * config/mn10300/mn10300.h (CONSTANT_ADDRESS_P): Delete.
427         * config/moxie/moxie.h (CONSTANT_ADDRESS_P): Delete.
428         * config/pdp11/pdp11.h (CONSTANT_ADDRESS_P): Delete.
429         * config/picochip/picochip.h (CONSTANT_ADDRESS_P): Delete.
430         * config/score/score.h (CONSTANT_ADDRESS_P): Delete.
431         * config/stormy16/stormy16.h (CONSTANT_ADDRESS_P): Delete.
432
433 2009-11-04  Richard Guenther  <rguenther@suse.de>
434
435         PR tree-optimization/41919
436         * tree-vrp.c (test_for_singularity): Properly compare values.
437
438 2009-11-04  Revital Eres  <eres@il.ibm.com>
439
440         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
441         Consider peeling for alignment only for stores and remove
442         redundant assignment.
443
444 2009-11-04  Maxim Kuvyrkov  <maxim@codesourcery.com>
445
446         PR target/41302
447         * config/m68k/m68k.c (m68k_reg_present_p): New static function.
448         (m68k_ok_for_sibcall_p): Handle different result return locations.
449
450 2009-11-04  Richard Guenther  <rguenther@suse.de>
451
452         * c-opts.c (c_common_post_options): Move LTO option processing
453         code ...
454         * opts.c (decode_options): ... here.
455
456 2009-11-04  Jakub Jelinek  <jakub@redhat.com>
457
458         * c-common.c (fold_offsetof_1): Use %wd instead of
459         HOST_WIDE_INT_PRINT_DEC.
460
461 2009-11-04  Maciej W. Rozycki  <macro@linux-mips.org>
462
463         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Don't define
464         __pic__ or __PIC__.
465
466 2009-11-04  Maciej W. Rozycki  <macro@linux-mips.org>
467
468         * config.gcc (vax-*-linux*): Keep the original contents of
469         tmake_file while adding vax/t-linux.
470
471 2009-11-03  Eric Botcazou  <ebotcazou@adacore.com>
472
473         PR target/10127
474         PR ada/20548
475         * expr.h (STACK_CHECK_PROBE_INTERVAL): Delete.
476         (STACK_CHECK_PROBE_INTERVAL_EXP): New macro.
477         (STACK_CHECK_MOVING_SP): Likewise.
478         * system.h (STACK_CHECK_PROBE_INTERVAL): Poison it.
479         * doc/tm.texi (Stack Checking): Delete STACK_CHECK_PROBE_INTERVAL.
480         Document STACK_CHECK_PROBE_INTERVAL_EXP and STACK_CHECK_MOVING_SP.
481         * doc/md.texi (Standard Pattern Names): Tweak entry of CHECK_STACK.
482         Document PROBE_STACK.
483         * explow.c (anti_adjust_stack_and_probe): New function.
484         (allocate_dynamic_stack_space): Do not directly allocate space if
485         STACK_CHECK_MOVING_SP, instead invoke above function.
486         (emit_stack_probe): Handle probe_stack insn.
487         (PROBE_INTERVAL): New macro.
488         (STACK_GROW_OPTAB): Likewise.
489         (STACK_GROW_OFF): Likewise.
490         (probe_stack_range): Use Pmode and memory_address consistently.  Fix
491         loop condition in the small constant case.  Rewrite in the general
492         case to be immune to wraparounds.  Make sure the address of probes
493         is valid.  Try to use [base + disp] addressing mode if possible.
494         * ira.c (setup_eliminable_regset): Set frame_pointer_needed if stack
495         checking is enabled and STACK_CHECK_MOVING_SP.
496         * rtlanal.c (may_trap_p_1) <MEM>: If stack checking is enabled,
497         return 1 for volatile references to the stack pointer.
498         * tree.c (build_common_builtin_nodes): Do not set ECF_NOTHROW on
499         __builtin_alloca if stack checking is enabled.
500         * unwind-dw2.c (uw_identify_context): Take into account whether the
501         context is that of a signal frame or not.
502         * config/i386/linux.h (STACK_CHECK_MOVING_SP): Define to 1.
503         * config/i386/linux64.h (STACK_CHECK_MOVING_SP): Likewise.
504
505 2009-11-03  Jakub Jelinek  <jakub@redhat.com>
506
507         PR rtl-optimization/41917
508         * rtlanal.c (num_sign_bit_copies1) <case UMOD>: If sign bit of second
509         operand isn't known to be 0, return 1.
510
511 2009-11-03  Richard Sandiford  <rdsandiford@googlemail.com>
512
513         * config/mips/mips.md: Fix typos.
514
515 2009-11-03  Richard Sandiford  <rdsandiford@googlemail.com>
516
517         * doc/invoke.texi: Fix typo.
518
519 2009-11-03  Paul Brook  <paul@codesourcery.com>
520
521         * config/arm/neon.ml (vectype): Add T_floatSF.
522         (string_of_vectype): Ditto.
523         * config/arm/neon-gen.ml (signed_ctype): Add T_floatSF.
524         (deftypes): Use float for float32_t.
525         * config/arm/arm_neon.h: Regenerate.
526
527 2009-11-03  Nick Clifton  <nickc@redhat.com>
528             Kevin Buettner  <kevinb@redhat.com>
529
530         * config/rx/predicates.md (rx_store_multiple_vector): Reverse
531         order of expected registers.
532         (rx_load_multiple_vector): Likewise.
533         (rx_rtsd_vector): Likewise.
534         * config/rx/rx.c (rx_cpu_type): New variable.
535         (rx_print_operand): Fix bug printing 64-bit constant values.
536         (rx_emit_stack_pushm): Reverse order of pushed registers.
537         (gen_rx_store_vector): Likewise.
538         (is_fast_interrupt_func): Only accept "fast_interrupt" as the
539         attribute name.
540         (is_exception_func): Rename to is_interrupt_func and only accept
541         "interrupt" as the attribute name.
542         (rx_get_stack_layout): Use new function name.
543         (rx_func_attr_inlinable): Likewise.
544         (rx_attribute_table): Remove "exception".
545         (rx_expand_prologue): If necessary push the accumulator register
546         in the prologue of interrupt functions.
547         (rx_expand_epilogue): If necessary pop the accumulator.
548         (rx_builtins): Add RX_BUILTIN_MVTIPL.
549         (rx_expand_builtin_stz): Remove.
550         (rx_expand_builtin_mvtipl): New function.
551         (rx_init_builtins): Handle RX_BUILTIN_MVTIPL.
552         (rx_expand_builtin): Likewise.
553         (rx_enable_fpu): New variable.
554         (rx_handle_option): Handle -fpu, -nofpu, -mcpu and -patch.
555         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Assert machine based
556         on rx_cpu_type.  Define __RX_FPU_INSNS__ if FPU insns are allowed.
557         (enum rx_cpu_types): Define.
558         (ASM_SPEC): Pass -m32bit-doubles on to assembler.
559         (INCOMING_FRAME_SP_OFFSET): Define.
560         (ARG_POINTER_CFA_OFFSET): Define.
561         (FRAME_POINTER_CFA_OFFSET): Define.
562         (OVERRIDE_OPTIONS): Enable fast math if RX FPU insns are enabled.
563         (ALLOW_RX_FPU_INSNS): Define.
564         * config/rx/rx.md: Test ALLOW_RX_FPU_INSNS instead of
565         fast_math_flags_set_p.
566         (UNSPEC_BUILTIN_MVTIPL): Define.
567         (revl): Rename to bswapsi2.
568         (bswaphi2): New pattern.
569         (mvtachi): Mark as volatile because it uses a register unknown to GCC.
570         (mvtaclo): Likewise.
571         (racw): Likewise.
572         (mvtc): Remove clobber of cc0.
573         (mvtcp): Delete.
574         (opecp): Delete.
575         * config/rx/rx.opt (mieee): Remove.
576         (fpu): Add.
577         (nofpu): Add.
578         (mcpu=): Add.
579         (patch=): Add.
580         (msave-acc-in-interrupts): Add.
581         * config/rx/t-rx (MULTILIB_OPTIONS): Change default to 64bit doubles.
582         (MULTILIB_DIRS): Likewise.
583         (MULTILIB_MATCHES): Treat -fpu as an alias for -m32bit-doubles.
584         * doc/extend.texi: Remove description of "exception" function
585         attribute.
586         * doc/invoke.texi: Document -fpu, -nofpu, -mcpu=, -patch= and
587         -msave-acc-in-interrupts options.
588
589 2009-11-03  Richard Guenther  <rguenther@suse.de>
590
591         * c-common.c (fold_offsetof_1): Use HOST_WIDE_INT_PRINT_DEC.
592
593 2009-11-03  Dodji Seketeli  <dodji@redhat.com>
594
595         PR c++/38699
596         * c-common.c (fold_offsetof_1): Issue errors when the member
597         designator of the offsetof expression is not legitimate.
598
599 2009-11-03  Uros Bizjak  <ubizjak@gmail.com>
600
601         * config/i386/i386.md (*call_value_1_rex64_ms_sysv): Use register
602         names instead of numerical constants.
603         (sse_prologue_save): Ditto.
604         (*sse_prologue_save_insn): Ditto.
605
606 2009-11-03  Uros Bizjak  <ubizjak@gmail.com>
607
608         PR target/41900
609         * config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New.
610         (TARGET_CALL_ESP): New define.
611         * config/i386/i386.c (initial_ix86_tune_features): Initialize
612         X86_ARCH_CALL_ESP.
613         * config/i386/i386.md (*call_pop_1_esp, *call_1_esp,
614         *call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1,
615         *call_1, *call_value_pop_1 and *call_value_1.  Depend on
616         TARGET_CALL_ESP.
617         (*call_pop_1, *call_1, *call_value_pop_1, *call_value_1):
618         New patterns, use "lsm" as operand 1 constraint.
619         * config/i386/predicates.md (call_insn_operand): Depend on
620         index_register_operand for !TARGET_CALL_ESP to avoid %esp register.
621
622 2009-11-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
623
624         PR tree-optimization/41857
625         * tree-flow.h (rewrite_use_address): Add BASE_HINT argument.
626         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass base hint
627         to create_mem_ref.
628         * tree-ssa-address.c (move_hint_to_base): New function.
629         (most_expensive_mult_to_index): Add TYPE argument.  Use mode and
630         address space associated with TYPE.
631         (addr_to_parts): Add TYPE and BASE_HINT arguments.  Pass TYPE to
632         most_expensive_mult_to_index.  Call move_hint_to_base.
633         (create_mem_ref): Add BASE_HINT argument.  Pass BASE_HINT and
634         TYPE to addr_to_parts.
635
636 2009-11-02  Martin Jambor  <mjambor@suse.cz>
637
638         PR tree-optimization/41750
639         * tree-sra.c (analyze_modified_params): Loop over all
640         representatives of components of a parameter.
641
642 2009-11-02  Jakub Jelinek  <jakub@redhat.com>
643
644         PR tree-optimization/41841
645         * ipa-struct-reorg.c (build_data_structure): Don't attempt to look at
646         local variables of not yet materialized clones.
647
648         PR debug/41893
649         * cfgexpand.c (expand_debug_expr): Don't attempt to create DECL_RTL
650         for a VOIDmode variable.
651
652         PR c++/41774
653         * c-pragma.c (visstack): Change into vector of ints rather than
654         enum symbol_visibility.
655         (push_visibility): Add kind argument, push default_visibility together
656         with kind.
657         (pop_visibility): Add kind argument, return true if successful, fail
658         if visibility stack is empty or if stack top is of different kind.
659         (handle_pragma_visibility): Don't check length of visstack, instead
660         call pop_visibility and issue diagnostics if it failed.  Pass 0
661         as last argument to push_visibility and pop_visibility.
662         * c-pragma.h (push_visibility): Add kind argument.
663         (pop_visibility): Likewise.  Return bool instead of void.
664
665 2009-11-01  Eric Botcazou  <ebotcazou@adacore.com>
666
667         * tree.def (TARGET_MEM_REF): Update comment.
668         * alias.c (get_alias_set): Retrieve the original memory reference for
669         a TARGET_MEM_REF before proceeding.
670
671 2009-10-31  Anatoly Sokolov  <aesok@post.ru>
672
673         * config/frv/frv.c (frv_function_value, frv_libcall_value,
674         frv_function_value_regno_p): New functions.
675         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
676         * config/frv/frv.h: (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
677         (FUNCTION_VALUE_REGNO_P): Redefine, use frv_function_value_regno_p.
678         * config/frv/frv-protos.h (frv_function_value_regno_p): Declare.
679
680 2009-10-31  Anatoly Sokolov  <aesok@post.ru>
681
682         * config/mn10300/mn10300.c (mn10300_function_value): Make static, add
683         new 'outgoing' argument.
684         (mn10300_libcall_value, mn10300_function_value_regno_p): New functions.
685         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
686         * config/mn10300/mn10300.h: (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
687         LIBCALL_VALUE): Remove.
688         (FUNCTION_VALUE_REGNO_P): Redefine, use mn10300_function_value_regno_p.
689         * config/mn10300/mn10300-protos.h (mn10300_function_value): Remove.
690         (mh10300_function_value_regno_p): Declare.
691
692 2009-10-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
693
694         * config/arm/cortex-a9.md: New - integer pipeline description.
695
696 2009-10-31  Eric Botcazou  <ebotcazou@adacore.com>
697
698         * tree-ssa-sccvn.c (vn_reference_lookup_3): Bail out instead of
699         aborting if the sizes of the two references don't match.
700
701 2009-10-31  Toon Moene  <toon@moene.org>
702
703         * ipa-inline.c (cgraph_decide_inlining):
704         Include reason for not inlining called-once functions in dump file.
705
706 2009-10-30  Daniel Gutson  <dgutson@codesourcery.com>
707
708         * config/arm/linux-eabi.h (LINK_SPEC): BE8_LINK_SPEC added.
709         * config/arm/bpapi.h (BE8_LINK_SPEC): New define.
710         (LINK_SPEC): BE_LINK_SPEC added.
711
712 2009-10-30  Richard Guenther  <rguenther@suse.de>
713
714         PR lto/41858
715         * lto-streamer.h (struct lto_file_decl_data): Remove fd member.
716
717 2009-10-30  Nathan Sidwell  <nathan@codesourcery.com>
718
719         * target-def.h (TARGET_ASM_TTYPE): Correct typo of TARGET_ARM_TTYPE.
720         * config/arm/unwind-arm.c (__gnu_Unwind_Backtrace): Remove unused
721         label.
722
723 2009-10-30  Martin Jambor  <mjambor@suse.cz>
724
725         * tree-sra.c (build_ref_for_offset_1): Remove a comment.
726
727 2009-10-30  H.J. Lu  <hongjiu.lu@intel.com>
728
729         PR target/40838
730         * cfgexpand.c (expand_stack_alignment): Call update_stack_boundary
731         first.  Move assert on stack_alignment_estimated just before
732         setting stack_realign_needed.
733         (gimple_expand_cfg): Initialize stack_alignment_estimated to 0.
734         Don't call update_stack_boundary.
735
736         * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): New.
737         (verride_options): Don't check ix86_force_align_arg_pointer here.
738         (ix86_function_ok_for_sibcall): Use it.
739         (ix86_update_stack_boundary): Likewise.
740
741         * config/i386/i386.h (STACK_REALIGN_DEFAULT): Update comments.
742
743 2009-10-30  Richard Earnshaw  <rearnsha@arm.com>
744
745         * arm.md (QHSI): New mode iterator.
746         (movqi): If generating for thumb, then truncate any immediate to
747         8 bits.
748         * thumb2.md (thumb2_movsi_shortim and peephole2 generator): Replace
749         with...
750         (thumb2_mov<mode>_shortim and peephole2 generator): ... iterator based
751         version.
752
753 2009-10-29  Cary Coutant  <ccoutant@google.com>
754
755         PR debug/41700
756         * dwarf2out.c (dwarf2_debug_hooks): Add entries for new hook (two
757         locations in the source).
758         (store_vcall_insn): New function.
759         (lookup_vcall_insn): New function.
760         (dwarf2out_virtual_call_token): Use store_vcall_insn.
761         (dwarf2out_copy_call_info): New function.
762         (dwarf2out_virtual_call): Use lookup_vcall_insn.
763         * emit-rtl.c (try_split): Call copy_call_info debug hook.
764         * debug.h (struct gcc_debug_hooks): Add copy_call_info hook.
765         * debug.c (do_nothing_debug_hooks): Add dummy entry for new hook.
766         (debug_nothing_rtx_rtx): New dummy hook.
767         * dbxout.c (dbx_debug_hooks): Add dummy entry for new hook.
768         (xcoff_debug_hooks): Likewise.
769         * sdbout.c (sdb_debug_hooks): Likewise.
770         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
771
772 2009-10-29  David Daney  <ddaney@caviumnetworks.com>
773
774         * doc/invoke.texi (mmcount-ra-address): Document new command line
775         option.
776         * config/mips/mips.opt (mmcount-ra-address): New option.
777         * config/mips/mips-protos.h (mips_function_profiler): Declare new
778         function.
779         * config/mips/mips.c (struct mips_frame_info): Add ra_fp_offset
780         member.
781         (mips_for_each_saved_gpr_and_fpr): Set ra_fp_offset.
782         (mips_function_profiler): Moved from FUNCTION_PROFILER, and
783         rewritten.
784         * config/mips/mips.h (FUNCTION_PROFILER): Body of macro moved to
785         mips_function_profiler.
786
787 2009-10-29  Steve Ellcey  <sje@cup.hp.com>
788
789         PR middle-end/37565
790         PR target/38018
791         * doc/tm.texi (OVERRIDE_OPTIONS): Update.
792         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
793         * optc-gen.awk (cl_target_option_restore): Include call to
794         targetm.override_options_after_change.
795         * target-def.h (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
796         * target.h (override_options_after_change): New.
797         * c-common.c (parse_optimize_options): Call
798         targetm.override_options_after_change.
799         * config/ia64/ia64.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
800         (ia64_override_options_after_change): New.
801         (ia64_override_options) Add call to above.
802
803 2009-10-29  Michael Matz  <matz@suse.de>
804
805         * tree-ssa-math-opts.c (execute_convert_to_rsqrt): Remove.
806         (gate_convert_to_rsqrt): Ditto.
807         (pass_convert_to_rsqrt): Ditto.
808         * tree-pass.h (pass_convert_to_rsqrt): Don't declare.
809         * passes.c (init_optimization_passes): Don't add pass_convert_to_rsqrt
810         to pass list.
811
812         * config/i386/i386.c (ix86_emit_swdivsf): Change evaluation order.
813
814 2009-10-29  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
815
816         * config/arm/arm.c (find_best_start): Fix type of remainder to be
817         unsigned.
818
819 2009-10-29  Martin Jambor  <mjambor@suse.cz>
820
821         PR tree-optimization/41775
822         * tree-sra.c (build_ref_for_offset): Unshare *expr if not NULL.
823         (generate_subtree_copies): Do not unshare agg.
824         (load_assign_lhs_subreplacements): Do not unshare rhs.
825         (sra_modify_assign): Do not unshare exprs.
826         (propagate_subacesses_accross_link): Renamed to
827         propagate_subaccesses_across_link.
828
829 2009-10-29  Richard Earnshaw  <rearnsha@arm.com>
830
831         * arm.c (count_insns_for_constant): Rework to support counting for
832         thumb2 immediates as well.
833         (find_best_start): Split out from arm_gen_constant.
834         (arm_gen_constant): Rework to support XOR with immediate.
835
836 2009-10-29  Chao-ying Fu  <fu@mips.com>
837
838         * config/mips/mips.c (mips_emit_unary, mips_force_unary): New
839         functions.
840         (mips_expand_synci_loop):  Use the length rtx to control the
841         synci loop from the begin rtx that points to the first byte of
842         the cache line.
843
844 2009-10-28  Rafael Avila de Espindola  <espindola@google.com>
845
846         * doc/invoke.texi: Rename -use-linker-plugin -fuse-linker-plugin.
847
848 2009-10-28  Rafael Avila de Espindola  <espindola@google.com>
849
850         * dbxout.c (dbxout_common_check): Accept non public trees.
851         * dwarf2out.c (fortran_common): Accept non public trees.
852
853 2009-10-28  Rafael Avila de Espindola  <espindola@google.com>
854
855         * common.opt (fuse-linker-plugin): New option.
856         * gcc.c (LINK_COMMAND_SPEC, main): Rename use-linker-plugin to
857         fuse-linker-plugin.
858         * opts.c (common_handle_option): Ignore OPT_fuse_linker_plugin.
859
860 2009-10-28  Paolo Bonzini  <bonzini@gnu.org>
861
862         PR rtl-optimization/39715
863         * config/arm/arm.md (cstoresi4): Use gen_cstoresi_ltu_thumb1.
864         (gen_cstoresi_ltu_thumb1): New splitter.
865
866 2009-10-28  Richard Guenther  <rguenther@suse.de>
867
868         PR lto/41808
869         PR lto/41839
870         * tree-ssa.c (useless_type_conversion_p): Do not treat
871         conversions to pointers to incomplete types as useless.
872         * gimple.c (gimple_types_compatible_p): Compare struct tags,
873         not typedef names.
874
875 2009-10-28  Jakub Jelinek  <jakub@redhat.com>
876
877         * var-tracking.c (emit_note_insn_var_location): Don't call the second
878         vt_expand_loc unnecessarily when location is not a register nor
879         memory.
880
881         PR middle-end/41837
882         * ipa-struct-reorg.c (find_field_in_struct_1): Return NULL if
883         fields don't have DECL_NAME.
884
885         PR debug/41801
886         * builtins.c (get_builtin_sync_mem): Expand loc in ptr_mode,
887         call convert_memory_address on addr.
888
889         PR target/41762
890         * config/i386/i386.c (ix86_pic_register_p): Don't call
891         rtx_equal_for_cselib_p for VALUEs discarded as useless.
892
893 2009-10-28  Richard Sandiford  <rdsandiford@googlemail.com>
894
895         * var-tracking.c (emit_note_insn_var_location): Get the mode of
896         a variable part from its REG, MEM or VALUE.
897
898 2009-10-28  Richard Guenther  <rguenther@suse.de>
899
900         * gimple.c (gimple_get_alias_set): Fix comment typo.
901
902 2009-10-28  Richard Guenther  <rguenther@suse.de>
903
904         * tree.c (free_lang_data_in_type): Do not call get_alias_set.
905         (free_lang_data): Unconditionally compute alias sets for all
906         standard integer types.  Bail out if gate bailed out previously.
907         Do not reset the types_compatible_p langhook.
908         (gate_free_lang_data): Remove.
909         (struct pass_ipa_free_lang_data): Enable unconditionally.
910         * gimple.c (gimple_get_alias_set): Use the same alias-set for
911         all pointer types.
912
913 2009-10-28  Richard Guenther  <rguenther@suse.de>
914
915         PR middle-end/41855
916         * tree-ssa-alias.c (refs_may_alias_p_1): Deal with CONST_DECLs
917         (ref_maybe_used_by_call_p_1): Fix bcopy handling.
918         (call_may_clobber_ref_p_1): Likewise.
919         * tree-ssa-structalias.c (find_func_aliases): Likewise.
920         * alias.c (nonoverlapping_memrefs_p): Deal with CONST_DECLs.
921
922 2009-10-28  Paolo Bonzini  <bonzini@gnu.org>
923
924         PR rtl-optimization/41812
925
926         Revert:
927         2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
928
929         * df-problems.c (df_md_scratch): New.
930         (df_md_alloc, df_md_free): Allocate/free it.
931         (df_md_local_compute): Only include live registers in init.
932         (df_md_transfer_function): Prune the in-set computed by
933         the confluence function, and the gen-set too.
934
935 2009-10-28  Paolo Bonzini  <bonzini@gnu.org>
936
937         PR rtl-optimization/39715
938         * combine.c (simplify_comparison): Use extensions to
939         widen comparisons.  Try an ANDing first.
940
941 2009-10-28  Paolo Bonzini  <bonzini@gnu.org>
942
943         PR rtl-optimization/40741
944         * config/arm/arm.c (thumb1_rtx_costs): IOR or XOR with
945         a small constant is cheap.
946         * config/arm/arm.md (andsi3, iorsi3): Try to place the result of
947         force_reg on the LHS.
948         (xorsi3): Likewise, and split the XOR if the constant is complex
949         and not in Thumb mode.
950
951 2009-10-28  Paolo Bonzini  <bonzini@gnu.org>
952
953         * expmed.c (emit_store_flag): Check costs before
954         transforming to the opposite representation.
955
956 2009-10-28  Paolo Bonzini  <bonzini@gnu.org>
957
958         * config/sh/sh.md (cbranchfp4_media): Remove hack extending
959         cstore result to DImode.
960
961 2009-10-28  Kaz Kojima  <kkojima@gcc.gnu.org>
962
963         * config/sh/sh.md (stuff_delay_slot): Move const_int pattern
964         inside the unspec vector.
965
966 2009-10-27  Richard Henderson  <rth@redhat.com>
967
968         * cgraphunit.c (cgraph_optimize): Maintain timevar stack properly.
969
970 2009-10-27  Richard Henderson  <rth@redhat.com>
971
972         PR c++/41819
973         * tree-eh.c (eh_region_may_contain_throw_map): Rename from
974         eh_region_may_contain_throw; update users.
975         (eh_region_may_contain_throw): New function.
976         (lower_catch): Check flag_exceptions before creating exception region.
977         (lower_eh_filter, lower_eh_must_not_throw): Likewise.
978         (lower_cleanup): Tidy existing flag_exceptions check to match.
979
980 2009-10-27  Kai Tietz <kai.tietz@onevision.com>
981
982         PR/41799
983         * config/i386/mingw32.h (CHECK_EXECUTE_STACK_ENABLED): New macro.
984         * config/i386/mingw.opt: Add fset-stack-executable.
985         * config/i386/i386.c (ix86_trampoline_init): Make call to
986         emit_library_call conditional, if CHECK_EXECUTE_STACK_ENABLED is
987         defined and its value is not zero.
988         * doc/invoke.texi
989
990 2009-10-27  Richard Guenther  <rguenther@suse.de>
991
992         * tree-ssa-structalias.c (find_func_aliases): In IPA mode
993         handle calls to externally visible functions like in regular mode.
994         (create_variable_info_for): Do not create function infos here.
995         (have_alias_info): Remove write-only variable.
996         (solve_constraints): New function split out from common code
997         in compute_points_to_sets and ipa_pta_execute.
998         (compute_points_to_sets): Adjust.
999         (ipa_pta_execute): Likewise.  Handle clones and externally visible
1000         functions like in non-IPA mode.
1001
1002 2009-10-27  Jakub Jelinek  <jakub@redhat.com>
1003
1004         PR c/41842
1005         * c-typeck.c (convert_arguments): Return -1 if any of the arguments is
1006         error_mark_node.
1007
1008 2009-10-27  Richard Guenther  <rguenther@suse.de>
1009
1010         * tree-complex.c (expand_complex_div_wide): Check for
1011         INTEGER_CST, not TREE_CONSTANT on comparison folding result.
1012
1013 2009-10-27  Revital Eres  <eres@il.ibm.com>
1014
1015         PR tree-optimization/40648
1016         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
1017         Change decision of when to peel for alignment.
1018
1019 2009-10-27  Richard Guenther  <rguenther@suse.de>
1020
1021         PR lto/41821
1022         * gimple.c (gimple_types_compatible_p): Handle OFFSET_TYPE.
1023
1024 2009-10-27  Aldy Hernandez  <aldyh@redhat.com>
1025
1026         PR bootstrap/41451
1027         * fold-const.c (fold_binary_loc): Do not call
1028         protected_set_expr_location.
1029
1030 2009-10-27  Wei Guozhi  <carrot@google.com>
1031
1032         PR target/41705
1033         * target.h (have_conditional_execution): Add a new target hook
1034         function.
1035         * target-def.h (TARGET_HAVE_CONDITIONAL_EXECUTION): Likewise.
1036         * targhooks.h (default_have_conditional_execution): Likewise.
1037         * targhooks.c (default_have_conditional_execution): Likewise.
1038         * doc/tm.texi (TARGET_HAVE_CONDITIONAL_EXECUTION): Document it.
1039         * config/arm/arm.c (TARGET_HAVE_CONDITIONAL_EXECUTION): Define it.
1040         (arm_have_conditional_execution): New function.
1041         * ifcvt.c (noce_process_if_block, find_if_header,
1042         cond_exec_find_if_block, dead_or_predicable): Change the usage of
1043         macro HAVE_conditional_execution to a target hook call.
1044         * recog.c (peephole2_optimize): Likewise.
1045         * sched-rgn.c (add_branch_dependences): Likewise.
1046         * final.c (asm_insn_count, final_scan_insn): Likewise.
1047         * bb-reorder.c (HAVE_conditional_execution): Remove it.
1048
1049 2009-10-26  Ben Elliston  <bje@au.ibm.com>
1050             Michael Meissner  <meissner@linux.vnet.ibm.com>
1051             Ulrich Weigand  <uweigand@de.ibm.com>
1052
1053         * config.gcc (spu-*-elf*): Add spu_cache.h to extra_headers.
1054         * config/spu/spu_cache.h: New file.
1055
1056         * config/spu/cachemgr.c: New file.
1057         * config/spu/cache.S: New file.
1058
1059         * config/spu/spu.h (ASM_OUTPUT_SYMBOL_REF): Define.
1060         (ADDR_SPACE_EA): Define.
1061         (TARGET_ADDR_SPACE_KEYWORDS): Define.
1062         * config/spu/spu.c (EAmode): New macro.
1063         (TARGET_ADDR_SPACE_POINTER_MODE): Define.
1064         (TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise.
1065         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Likewise.
1066         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Likewise.
1067         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
1068         (TARGET_ADDR_SPACE_CONVERT): Likewise.
1069         (TARGET_ASM_SELECT_SECTION): Likewise.
1070         (TARGET_ASM_UNIQUE_SECTION): Likewise.
1071         (TARGET_ASM_UNALIGNED_SI_OP): Likewise.
1072         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
1073         (ea_symbol_ref): New function.
1074         (spu_legitimate_constant_p): Handle __ea qualified addresses.
1075         (spu_addr_space_legitimate_address_p): New function.
1076         (spu_addr_space_legitimize_address): Likewise.
1077         (cache_fetch): New global.
1078         (cache_fetch_dirty): Likewise.
1079         (ea_alias_set): Likewise.
1080         (ea_load_store): New function.
1081         (ea_load_store_inline): Likewise.
1082         (expand_ea_mem): Likewise.
1083         (spu_expand_mov): Handle __ea qualified memory references.
1084         (spu_addr_space_pointer_mode): New function.
1085         (spu_addr_space_address_mode): Likewise.
1086         (spu_addr_space_subset_p): Likewise.
1087         (spu_addr_space_convert): Likewise.
1088         (spu_section_type_flags): Handle "._ea" section.
1089         (spu_select_section): New function.
1090         (spu_unique_section): Likewise.
1091         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Support __EA32__
1092         and __EA64__ predefined macros.
1093         * config/spu/spu-elf.h (LIB_SPEC): Handle -mcache-size= and
1094         -matomic-updates switches.
1095
1096         * config/spu/t-spu-elf (MULTILIB_OPTIONS): Define.
1097         (EXTRA_MULTILIB_PARTS): Add libgcc_cachemgr.a,
1098         libgcc_cachemgr_nonatomic.a, libgcc_cache8k.a, libgcc_cache16k.a,
1099         libgcc_cache32k.a, libgcc_cache64k.a, libgcc_cache128k.a.
1100         ($(T)cachemgr.o, $(T)cachemgr_nonatomic.o): New target.
1101         ($(T)cache8k.o, $(T)cache16k.o, $(T)cache32k.o, $(T)cache64k.o,
1102         $(T)cache128k.o): Likewise.
1103         ($(T)libgcc_%.a): Likewise.
1104
1105         * config/spu/spu.h (TARGET_DEFAULT): Add MASK_ADDRESS_SPACE_CONVERSION.
1106         * config/spu/spu.opt (-mea32/-mea64): Add switches.
1107         (-maddress-space-conversion): Likewise.
1108         (-mcache-size=): Likewise.
1109         (-matomic-updates): Likewise.
1110         * doc/invoke.texi (-mea32/-mea64): Document.
1111         (-maddress-space-conversion): Likewise.
1112         (-mcache-size=): Likewise.
1113         (-matomic-updates): Likewise.
1114
1115 2009-10-26  Ben Elliston  <bje@au.ibm.com>
1116             Michael Meissner  <meissner@linux.vnet.ibm.com>
1117             Ulrich Weigand  <uweigand@de.ibm.com>
1118
1119         * doc/tm.texi (TARGET_ADDR_SPACE_KEYWORDS): Document.
1120
1121         * c-common.c (c_common_reswords): If TARGET_ADDR_SPACE_KEYWORDS is
1122         defined, add the named address space keywords.
1123         (c_addr_space_name): New function.
1124         (complete_array_type): Preserve named address space.
1125         (handle_mode_attribute): Use targetm.addr_space.valid_pointer_mode
1126         instead of targetm.valid_pointer_mode.
1127
1128         * c-common.h (enum rid): Add RID_ADDR_SPACE_0 .. RID_ADDR_SPACE_15,
1129         RID_FIRST_ADDR_SPACE and RID_LAST_ADDR_SPACE.
1130         (ADDR_SPACE_KEYWORD): New macro.
1131         (c_addr_space_name): Add prototype.
1132
1133         * c-tree.h (struct c_declspecs): Add address_space member.
1134         (declspecs_add_addrspace): Add prototype.
1135
1136         * c-pretty-print.c (pp_c_type_qualifier_list): Handle address spaces.
1137
1138         * c-parser.c (c_parse_init): Add assertion.
1139         (typedef enum c_id_kind): Add C_ID_ADDRSPACE.
1140         (c_lex_one_token): Handle address space keywords.
1141         (c_token_starts_typename): Likewise.
1142         (c_token_starts_declspecs): Likewise.
1143         (c_parser_declspecs): Likewise.
1144         (c_parser_postfix_expression_after_paren_type): Diagnose compound
1145         literal within function qualified with named address space.
1146
1147         * c-decl.c (diagnose_mismatched_decls): Diagnose conflicting named
1148         address space qualifiers.
1149         (shadow_tag_warned): Warn about useless address space qualifiers.
1150         (quals_from_declspecs): Handle address space qualifiers.
1151         (grokdeclarator): Likewise.
1152         (build_null_declspecs): Likewise.
1153         (declspecs_add_addrspace): New function.
1154
1155         * c-typeck.c (addr_space_superset): New function.
1156         (qualify_type): Handle named address spaces.
1157         (composite_type): Likewise.
1158         (common_pointer_type): Likewise.
1159         (comp_target_types): Likewise.
1160         (build_conditional_expr): Likewise.
1161         (handle_warn_cast_qual): Likewise.
1162         (build_c_cast): Likewise.
1163         (convert_for_assignment): Likewise.
1164         (build_binary_op): Likewise.
1165         (pointer_diff): Handle named address spaces.  Use intermediate
1166         integer type of sufficient size if required.
1167
1168 2009-10-26  Ben Elliston  <bje@au.ibm.com>
1169             Michael Meissner  <meissner@linux.vnet.ibm.com>
1170             Ulrich Weigand  <uweigand@de.ibm.com>
1171
1172         * doc/tm.texi (TARGET_ADDR_SPACE_POINTER_MODE): Document.
1173         (TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise.
1174         (TARGET_ADDR_SPACE_VALID_POINTER_MODE): Likewise.
1175
1176         * target.h (struct target_def): Add pointer_mode, address_mode,
1177         and valid_pointer_mode to addr_space substructure.
1178         * target-def.h (TARGET_ADDR_SPACE_POINTER_MODE): Define.
1179         (TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise.
1180         (TARGET_ADDR_SPACE_VALID_POINTER_MODE): Likewise.
1181         (TARGET_ADDR_SPACE_HOOKS): Add them.
1182         * targhooks.c (target_default_pointer_address_modes_p): New function.
1183         * target.h (target_default_pointer_address_modes_p): Add prototype.
1184         * targhooks.c (default_addr_space_pointer_mode): New function.
1185         (default_addr_space_address_mode): Likewise.
1186         (default_addr_space_valid_pointer_mode): Likewise.
1187         * targhooks.h (default_addr_space_pointer_mode): Add prototype.
1188         (default_addr_space_address_mode): Likewise.
1189         (default_addr_space_valid_pointer_mode): Likewise.
1190         * output.h (default_valid_pointer_mode): Move to ...
1191         * targhooks.h (default_valid_pointer_mode): ... here.
1192         * varasm.c (default_valid_pointer_mode): Move to ...
1193         * targhooks.c (default_valid_pointer_mode): ... here.
1194
1195         * varasm.c (output_constant): Use targetm.addr_space.valid_pointer_mode
1196         instead of targetm.valid_pointer_mode.
1197
1198         * fold-const.c (fit_double_type): Use int_or_pointer_precision.
1199         * tree.c (integer_pow2p): Likewise.
1200         (tree_log2): Likewise.
1201         (tree_floor_log2): Likewise.
1202         (signed_or_unsigned_type_for): Support pointer type of different size.
1203         (int_or_pointer_precision): New function.
1204         * tree.h (int_or_pointer_precision): Add prototype.
1205         * stor-layout.c (layout_type): Set TYPE_PRECISION for offset types.
1206         * varasm.c (initializer_constant_valid_p): Use TYPE_PRECISION of
1207         incoming pointer type instead of POINTER_SIZE.
1208
1209         * tree.c (build_pointer_type): Use appropriate pointer mode
1210         instead of ptr_mode.
1211         (build_reference_type): Likewise.
1212         * expr.c (store_expr): Likewise.
1213         (expand_expr_addr_expr): Likewise.
1214         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise.
1215         * cfgexpand.c (expand_debug_expr): Likewise.
1216
1217         * auto-inc-dec.c: Include "target.h".
1218         (try_merge): Use appropriate address mode instead of Pmode.
1219         (find_inc): Likewise.
1220         * combine.c (find_split_point): Likewise.
1221         * cselib.c (cselib_record_sets): Likewise.
1222         * dse.c (replace_inc_dec): Likewise.
1223         (canon_address): Likewise.
1224         * var-tracking.c (replace_expr_with_values): Likewise.
1225         (count_uses): Likewise.
1226         (add_uses): Likewise.
1227         (add_stores): Likewise.
1228         * emit-rtl.c: Include "target.h".
1229         (adjust_address_1): Use appropriate address mode instead of Pmode.
1230         (offset_address): Likewise.
1231         * explow.c (break_out_memory_refs): Likewise.
1232         (memory_address_addr_space): Likewise.
1233         (promote_mode): Likewise.
1234         * expr.c (move_by_pieces): Likewise.
1235         (emit_block_move_via_loop): Likewise.
1236         (store_by_pieces): Likewise.
1237         (store_by_pieces_1): Likewise.
1238         (expand_assignment): Likewise.
1239         (store_constructor): Likewise.
1240         (expand_expr_addr_expr): Likewise.
1241         (expand_expr_real_1): Likewise.
1242         * cfgexpand.c (expand_debug_expr): Likewise.
1243         * ifcvt.c (noce_try_cmove_arith): Likewise.
1244         * regcprop.c (kill_autoinc_value): Likewise.
1245         * regmove.c (try_auto_increment): Likewise.
1246         * reload.c (find_reloads): Likewise.
1247         (find_reloads_address): Likewise.
1248         (find_reloads_address_1): Likewise.
1249         * sched-deps.c: Include "target.h".
1250         (sched_analyze_1): Use appropriate address mode instead of Pmode.
1251         (sched_analyze_2): Likewise.
1252         * sel-sched-dump.c: Include "target.h".
1253         (debug_mem_addr_value): Use appropriate address mode instead of Pmode.
1254         * stor-layout.c (layout_type): Likewise.
1255         * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
1256         (multiplier_allowed_in_address_p): Likewise.
1257         (get_address_cost): Likewise.
1258         * varasm.c (make_decl_rtl): Likewise.
1259
1260         * expr.c (expand_assignment): Always convert offsets to appropriate
1261         address mode.
1262         (store_expr): Likewise.
1263         (store_constructor): Likewise.
1264         (expand_expr_real_1): Likewise.
1265
1266         * reload.h (form_sum): Add MODE argument.
1267         * reload.c (form_sum): Add MODE argument, use it instead of Pmode.
1268         Update recursive calls.
1269         (subst_indexed_address): Update calls to form_sum.
1270
1271         * tree-flow.h (addr_for_mem_ref): Add ADDRSPACE argument.
1272         * tree-ssa-address.c: Include "target.h".
1273         (templates): Replace by ...
1274         (mem_addr_template_list): ... this new vector.
1275         (TEMPL_IDX): Handle address space numbers.
1276         (gen_addr_rtx): Add address mode argument, use it instead of Pmode.
1277         (addr_for_mem_ref): Add ADDRSPACE argument.  Use per-address-space
1278         instead of global cache.  Update call to gen_addr_rtx.
1279         (valid_mem_ref_p): Update call to addr_for_mem_ref.
1280         * expr.c (expand_expr_real_1): Update call to addr_for_mem_ref.
1281
1282         * rtl.h (convert_memory_address_addr_space): Add prototype.
1283         (convert_memory_address): Define as macro.
1284         * explow.c (convert_memory_address): Rename to ...
1285         (convert_memory_address_addr_space): ... this.  Add ADDRSPACE argument.
1286         Use appropriate pointer and address modes instead of ptr_mode / Pmode.
1287         Update recursive calls.
1288         (memory_address_addr_space): Call convert_memory_address_addr_space.
1289         * expmed.c (make_tree): Likewise.
1290         * expr.c (expand_assignment): Likewise.
1291         (expand_expr_addr_expr_1): Likewise.  Also, add ADDRSPACE argument.
1292         (expand_expr_addr_expr): Likewise.  Also, update call.
1293
1294         * alias.c (find_base_value): Guard pointer size optimizations.
1295         (find_base_term): Likewise.
1296         * rtlanal.c (nonzero_bits1): Likewise.
1297         (num_sign_bit_copies1): Likewise.
1298         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
1299
1300         * Makefile.in (tree-ssa-address.o): Add $(TARGET_H) dependency.
1301         (emit-rtl.o): Likewise.
1302         (auto-inc-dec.o): Likewise.
1303         (sched-deps.o): Likewise.
1304
1305 2009-10-26  Ben Elliston  <bje@au.ibm.com>
1306             Michael Meissner  <meissner@linux.vnet.ibm.com>
1307             Ulrich Weigand  <uweigand@de.ibm.com>
1308
1309         * doc/extend.texi (Named Address Spaces): New section.
1310         * coretypes.h (addr_space_t): New type.
1311         (ADDR_SPACE_GENERIC): New define.
1312         (ADDR_SPACE_GENERIC_P): New macro.
1313
1314         * doc/tm.texi (Named Address Spaces): New section.
1315         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Document.
1316         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Document.
1317         (TARGET_ADDR_SPACE_SUBSET_P): Document.
1318         (TARGET_ADDR_SPACE_CONVERT): Document.
1319         * target.h (struct gcc_target): Add addr_space substructure.
1320         * target-def.h (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
1321         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Likewise.
1322         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
1323         (TARGET_ADDR_SPACE_CONVERT): Likewise.
1324         (TARGET_ADDR_SPACE_HOOKS): Likewise.
1325         (TARGET_INITIALIZER): Initialize addr_space hooks.
1326         * targhooks.c (default_addr_space_legitimate_address_p): New function.
1327         (default_addr_space_legitimize_address): Likewise.
1328         (default_addr_space_subset_p): Likewise.
1329         (default_addr_space_convert): Likewise.
1330         * targhooks.h (default_addr_space_legitimate_address_p): Add prototype.
1331         (default_addr_space_legitimize_address): Likewise.
1332         (default_addr_space_subset_p): Likewise.
1333         (default_addr_space_convert): Likewise.
1334
1335         * doc/rtl.texi (MEM_ADDR_SPACE): Document.
1336         * rtl.h (mem_attrs): Add ADDRSPACE memory attribute.
1337         (MEM_ADDR_SPACE): New macro.
1338         * emit-rtl.c (get_mem_attrs): Add ADDRSPACE argument and set
1339         address space memory attribute.
1340         (mem_attrs_htab_hash): Handle address space memory attribute.
1341         (mem_attrs_htab_eq): Likewise.
1342         (set_mem_attributes_minus_bitpos): Likewise.
1343         (set_mem_alias_set): Likewise.
1344         (set_mem_align): Likewise.
1345         (set_mem_expr): Likewise.
1346         (set_mem_offset): Likewise.
1347         (set_mem_size): Likewise.
1348         (adjust_address_1): Likewise.
1349         (offset_address): Likewise.
1350         (widen_memoy_address): Likewise.
1351         (get_spill_slot_decl): Likewise.
1352         (set_mem_attrs_for_spill): Likewise.
1353         (set_mem_addr_space): New function.
1354         * emit-rtl.h (set_mem_addr_space): Add prototype.
1355         * print-rtl.c (print_rtx): Print address space memory attribute.
1356         * expr.c (expand_assignment): Set address space memory attribute
1357         of generated MEM RTXes as appropriate.
1358         (expand_expr_real_1): Likewise.
1359         * cfgexpand.c (expand_debug_expr): Likewise.
1360         * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
1361
1362         * tree.h (struct tree_base): Add address_space bitfield.  Reduce
1363         size of "spare" bitfield.
1364         (TYPE_ADDR_SPACE): New macro.
1365         (ENCODE_QUAL_ADDR_SPACE): Likewise.
1366         (DECODE_QUAL_ADDR_SPACE): Likewise.
1367         (CLEAR_QUAL_ADDR_SPACE): Likewise.
1368         (KEEP_QUAL_ADDR_SPACE): Likewise.
1369         (TYPE_QUALS): Encode type address space.
1370         (TYPE_QUALS_NO_ADDR_SPACE): New macro.
1371         * tree.c (set_type_quals): Set type address space.
1372         (build_array_type): Inherit array address space from element type.
1373         * print-tree.c (print_node_brief): Print type address space.
1374         (print_node): Likewise.
1375         * tree-pretty-print.c (dump_generic_node): Likewise.
1376
1377         * explow.c (memory_address): Rename to ...
1378         (memory_address_addr_space): ... this.  Add ADDRSPACE argument.
1379         Use address-space aware variants of memory address routines.
1380         * recog.c (memory_address_p): Rename to ...
1381         (memory_address_addr_space_p): ... this.  Add ADDSPACE argument.
1382         Use address-space aware variants of memory address routines.
1383         (offsettable_address_p): Rename to ...
1384         (offsettable_address_addr_space_p): ... this.  Add ADDRSPACE argument.
1385         Use address-space aware variants of memory address routines.
1386         * reload.c (strict_memory_address_p): Rename to ...
1387         (strict_memory_address_addr_space_p): ... this.  Add ADDSPACE argument.
1388         Use address-space aware variants of memory address routines.
1389         (maybe_memory_address_p): Rename to ...
1390         (maybe_memory_address_addr_space_p): ... this.  Add ADDSPACE argument.
1391         Use address-space aware variants of memory address routines.
1392         * expr.h (memory_address_addr_space): Add prototype.
1393         (memory_address): Define as macro.
1394         * recog.h (memory_address_addr_space_p): Add prototype.
1395         (memory_address_p): Define as macro.
1396         (offsettable_address_addr_space_p): Add prototype.
1397         (offsettable_address_p): Define as macro.
1398         (strict_memory_address_addr_space_p): Add prototype.
1399         (strict_memory_address_p): Define as macro.
1400
1401         * combine.c (find_split_point): Use address-space aware variants
1402         of memory address routines.
1403         * emit-rtl.c (operand_subword): Likewise.
1404         (change_address_1): Likewise.
1405         (adjust_address_1): Likewise.
1406         (offset_address): Likewise.
1407         * expr.c (emit_move_insn): Likewise.
1408         (expand_assignment): Likewise.
1409         (expand_expr_real_1): Likewise.
1410         * recog.c (verify_changes): Likewise.
1411         (general_operand): Likewise.
1412         (offsettable_memref_p): Likewise.
1413         (offsettable_nonstrict_memref_p): Likewise.
1414         (constrain_operands): Likewise.
1415         * reload.c (get_secondary_mem): Likewise.
1416         (find_reloads_toplev): Likewise.
1417         (find_reloads_address): Likewise.
1418         (find_reloads_subreg_address): Likewise.
1419         * reload1.c (reload): Likewise.
1420         * rtlhooks.c (gen_lowpart_if_possible): Likewise.
1421         * rtl.h (address_cost): Add ADDRSPACE argument.
1422         * rtlanal.c (address_cost): Add ADDRSPACE argument.  Use address-space
1423         aware variant of memory address routines.
1424         * loop-invariant.c (create_new_invariant): Update address_cost call.
1425         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
1426         * fwprop.c (should_replace_address): Add ADDRSPACE argument.
1427         Use address-space aware variant of memory address routines.
1428         (propagate_rtx_1): Update call to should_replace_address.
1429         * tree-flow.h (multiplier_allowed_in_address_p): Add ADDRSPACE
1430         argument.
1431         * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Add
1432         ADDRSPACE argument.  Use per-address-space instead of global cache.
1433         Use address-space aware variant of memory address routines.
1434         (get_address_cost): Likewise.
1435         (get_computation_cost_at): Update calls.
1436         * tree-ssa-address.c (valid_mem_ref_p): Add ADDRSPACE argument.
1437         Use address-space aware variant of memory address routines.
1438         (create_mem_ref_raw): Update call to valid_mem_ref_p.
1439         (most_expensive_mult_to_index): Update call to
1440         multiplier_allowed_in_address_p.
1441
1442         * dwarf2out.c (modified_type_die): Output DW_AT_address_class
1443         attribute to indicate named address spaces.
1444
1445         * varasm.c (get_variable_section): DECLs in named address spaces
1446         cannot be "common".
1447
1448         * reload.c (find_reloads_address): Do not use LEGITIMIZE_RELOAD_ADDRESS
1449         for addresses in a non-generic address space.
1450
1451         * expr.c (emit_block_move_hints): Do not use libcalls for
1452         memory in non-generic address spaces.
1453         (clear_storage_hints): Likewise.
1454         (expand_assignment): Likewise.
1455
1456         * fold-const.c (operand_equal_p): Expressions refering to different
1457         address spaces are not equivalent.
1458
1459         * rtl.c (rtx_equal_p_cb): MEMs refering to different address
1460         spaces are not equivalent.
1461         (rtx_equal_p): Likewise.
1462         * cse.c (exp_equiv_p): Likewise.
1463         * jump.c (rtx_renumbered_equal_p): Likewise.
1464         * reload.c (operands_match_p): Likewise.
1465
1466         * alias.c (nonoverlapping_memrefs_p): MEMs refering to different
1467         address spaces may alias.
1468         (true_dependence): Likewise.
1469         (canon_true_dependence): Likewise.
1470         (write_dependence_p): Likewise.
1471
1472         * dse.c (canon_address): Handle named address spaces.
1473         * ifcvt.c (noce_try_cmove_arith): Likewise.
1474
1475         * tree.def (ADDR_SPACE_CONVERT_EXPR): New tree code.
1476         * expr.c (expand_expr_real_2): Expand ADDR_SPACE_CONVERT_EXPR.
1477         * convert.c (convert_to_pointer): Generate ADDR_SPACE_CONVERT_EXPR
1478         to handle conversions between different address spaces.
1479         * fold-const.c (fold_convert_loc): Likewise.
1480         (fold_unary_loc): Handle ADDR_SPACE_CONVERT_EXPR.
1481         * tree-pretty-print.c (dump_generic_node): Likewise.
1482         * gimple-pretty-print.c (dump_unary_rhs): Likewise.
1483         * tree-cfg.c (verify_gimple_assign_unary): Likewise.
1484         * tree-inline.c (estimate_operator_cost): Likewise.
1485         * tree-ssa.c (useless_type_conversion_p): Conversions between pointers
1486         to different address spaces are not useless.
1487
1488 2009-10-26  Jakub Jelinek  <jakub@redhat.com>
1489
1490         PR bootstrap/41345
1491         * cfgcleanup.c (trivially_empty_bb_p): New function.
1492         (try_optimize_bb): Use it instead of checking BB_HEAD == BB_END.
1493
1494         PR debug/41828
1495         * dwarf2out.c (add_pubname, add_pubtype, generic_parameter_die,
1496         add_name_and_src_coords_attributes, gen_namespace_die,
1497         dwarf2out_set_name): Handle dwarf2_name returning NULL.
1498
1499 2009-10-26  Nick Clifton  <nickc@redhat.com>
1500
1501         * config.gcc: Add support for RX target.
1502         * config/rx: New directory.
1503         * config/rx/constraints.md: New file.
1504         * config/rx/predicates.md: New file.
1505         * config/rx/rx.c: New file.
1506         * config/rx/rx.h: New file.
1507         * config/rx/rx.md: New file.
1508         * config/rx/rx.opt: New file.
1509         * config/rx/rx-protos.h: New file.
1510         * config/rx/t-rx: New file.
1511         * doc/extend.texi: Document RX function attributes.
1512         * doc/invoke.texi: Document RX specific command line options.
1513         * doc/contrib.texi: Document RX contribution.
1514         * doc/md.texi: Document RX constraints.
1515         * doc/install.texi: Document RX support.
1516
1517 2009-10-26  Michael Matz  <matz@suse.de>
1518
1519         PR tree-optimization/41783
1520         * tree-ssa-alias.c (get_continuation_for_phi): Export, add a special
1521         case for simple diamonds.
1522         * tree-ssa-alias.h (get_continuation_for_phi): Declare.
1523         * tree-ssa-pre.c (translate_vuse_through_block): Add same_valid
1524         argument, use alias oracle to skip some vdefs.
1525         (phi_translate_1): Change call to above, don't allocate new
1526         value ids if they can stay the same.
1527         (compute_avail): Allow vuse walking when looking up references.
1528
1529 2009-10-26  Richard Guenther  <rguenther@suse.de>
1530
1531         PR tree-optimization/41826
1532         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Avoid
1533         access to re-allocated vector fields.
1534
1535 2009-10-26  Richard Guenther  <rguenther@suse.de>
1536
1537         * graphite-sese-to-poly.c (check_poly_representation): Fix
1538         compile without checking.
1539
1540 2009-10-26  Janus Weil  <janus@gcc.gnu.org>
1541
1542         PR fortran/41714
1543         * gimple.h (tree_annotate_all_with_location): Remove prototype.
1544         * gimplify.c (tree_should_carry_location_p,
1545         tree_annotate_one_with_location,tree_annotate_all_with_location):
1546         Remove obsolete functions.
1547
1548 2009-10-25  Kaz Kojima  <kkojima@gcc.gnu.org>
1549
1550         PR target/41813
1551         * config/sh/sh.md (stuff_delay_slot): Don't set T_REG in pattern.
1552
1553 2009-10-25  Richard Guenther  <rguenther@suse.de>
1554
1555         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
1556         Stream DECL_RESTRICTED_P.
1557         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
1558
1559 2009-10-25  Richard Sandiford  <rdsandiford@googlemail.com>
1560
1561         * config/mips/mips.c (mips_restore_gp_from_cprestore_slot): Emit
1562         a note when expanding to nothing.
1563
1564 2009-10-25  Richard Guenther  <rguenther@suse.de>
1565
1566         PR middle-end/41814
1567         * tree.c (find_decls_types_r): Deal with Java overloading
1568         BINFO_VIRTUALS for its own purpose.
1569
1570 2009-10-24  Adam Nemet  <anemet@caviumnetworks.com>
1571
1572         * config/mips/predicates.md (hilo_operand): New predicate.
1573         * config/mips/mips.md (<u>mulsidi3_64bit): Change it to a
1574         define_insn.  Correct !ISA_HAS_EXT_INS length from 24 to 28.  Move
1575         splitter part from here ...:
1576         (<u>mulsidi3_64bit splitter for !ISA_HAS_EXT_INS): ... to here.  Swap
1577         op0 and op4 to match the DINS case.
1578         (<u>mulsidi3_64bit splitter for ISA_HAS_EXT_INS): New splitter.
1579
1580 2009-10-24  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
1581
1582         PR middle-end/19154
1583         * avr.md (QIDI): Add new mode iterator.
1584         (sbrx_branch<mode>): Create new zero extract bit, test and jump
1585         patterns for all QI thru DI modes combinations.
1586         (sbrx_and_branch<mode>): Create new and based bit test and jump
1587         patterns for QI thru SI modes.
1588         avr.c (avr_out_sbxx_branch): Use only bit number.
1589
1590 2009-10-24  Jan Hubicka  <jh@suse.cz>
1591
1592         * ipa-reference.c (check_call): Noreturn notrhow calls do not write
1593         to memory.
1594         (analyze_function): When analyzing noreturn nothrow call, do not
1595         compute written stats; free bitmaps of vars early if possible.
1596         (generate_summary): Only update bitmaps if computed.
1597         (propagate): Only dump bitmaps if computed.
1598         (ipa_reference_read_summary): Fix pasto.
1599
1600 2009-10-24  Eric Botcazou  <ebotcazou@adacore.com>
1601
1602         * tree-ssa-alias.c (nonaliasing_component_refs_p): Rename into...
1603         (aliasing_component_refs_p): ...this.  Return true if there is no
1604         common base and the base access types have the same alias set.
1605         (indirect_ref_may_alias_decl_p): Adjust for above renaming.
1606         (indirect_refs_may_alias_p): Likewise.
1607
1608 2009-10-23  Joseph Myers  <joseph@codesourcery.com>
1609
1610         PR c/40033
1611         * c-typeck.c (c_finish_stmt_expr): Do not wrap error_mark_node in
1612         a C_MAYBE_CONST_EXPR.
1613
1614 2009-10-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
1615
1616         PR target/41787
1617         * config/rs6000/rs6000.c (struct machine_function): Add
1618         vsx_or_altivec_used_p to record if vector types are used.
1619         (rs6000_expand_to_rtl_hook): Rename from
1620         rs6000_alloc_sdmode_stack_slot.  If VSX, check to see if there are
1621         any vector operations, so if there are, we can set VRSAVE to
1622         non-zero when only floating point vector registers are used.
1623         (TARGET_EXPAND_TO_RTL_HOOK): Use rs6000_expand_to_rtl_hook.
1624         (rs6000_check_vector_mode): Inner function to check if vector
1625         types are used in the code.
1626         (compute_vrsave_mask): If VSX, make sure VRSAVE is non-zero if
1627         vector instructions are used.
1628
1629         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED):
1630         Indicate that VSX registers which overlap floating point
1631         registers, can't be used across a call, since the ABI only states
1632         the scalar part of the register will be saved and restored.
1633
1634 2009-10-23  Joseph Myers  <joseph@codesourcery.com>
1635
1636         PR c/41673
1637         * alias.c (get_alias_set): Call langhook before returning 0 for
1638         types with structural equality.
1639         * c-common.c (c_common_get_alias_set): Use alias set of element
1640         type for arrays with structural comparison.
1641
1642 2009-10-23  Richard Guenther  <rguenther@suse.de>
1643
1644         PR middle-end/41805
1645         * cfgexpand.c (expand_call_stmt): Use gimple_has_side_effects and
1646         gimple_call_nothrow_p.
1647
1648 2009-10-23  Richard Guenther  <rguenther@suse.de>
1649
1650         PR tree-optimization/41778
1651         * tree-ssa-pre.c (do_regular_insertion): Only insert if a
1652         redundancy along a path in the CFG we want to optimize for speed
1653         is going to be removed.
1654         (execute_pre): Do partial-PRE only if the function is to be
1655         optimized for speed.
1656         (gate_pre): Do not turn off all of PRE when not optimizing a
1657         function for speed.
1658
1659 2009-10-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1660
1661         * builtins.c (fold_builtin_cabs): Use validate_arg().
1662         (fold_builtin_cexp): Fix if-logic.
1663         (fold_builtin_1): Check subtype for BUILT_IN_CIMAG.
1664
1665 2009-10-22  Jeff Law  <law@redhat.com>
1666
1667         * ira-lives.c (process_single_reg_class_operands): Update the
1668         hard reg costs for all the hard registers desired by the
1669         single reg class operand.
1670
1671 2009-10-22  Richard Sandiford  <rdsandiford@googlemail.com>
1672
1673         * simplify-rtx.c (simplify_replace_fn_rtx): Add a fallback case
1674         for rtxes that aren't handled specially.
1675
1676 2009-10-22  Richard Sandiford  <rdsandiford@googlemail.com>
1677
1678         * rtl.h (shallow_copy_rtvec): Declare.
1679         * rtl.c (shallow_copy_rtvec): New function.
1680         * cselib.c (cselib_subst_to_values): Use it.  Only modify an
1681         rtx field if the subrtx has changed.
1682
1683 2009-10-22  Anatoly Sokolov  <aesok@post.ru>
1684
1685         * config/m32c/m32c.c (m32c_function_value_regno_p): New function.
1686         (m32c_function_value): Make static, add new 'outgoing' argument.
1687         (m32c_libcall_value): Make static, add new 'fun' argument.
1688         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
1689         * config/m32c/m32c.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
1690         (FUNCTION_VALUE_REGNO_P): Redefine, use m32c_function_value_regno_p.
1691         * config/m32c/m32c-protos.h (m32c_function_value_regno_p): Declare.
1692         (m32c_function_value, m32c_libcall_value): Delete declaration.
1693
1694 2009-10-22  Diego Novillo  <dnovillo@google.com>
1695
1696         * Makefile.in (PLUGIN_HEADERS): Add output.h and IPA_UTILS_H.
1697
1698 2009-10-22  Razya Ladelsky  <razya@il.ibm.com>
1699
1700         * tree-cfg.c (gimple_duplicate_sese_tail): Fix typos/indentation/white
1701         space.
1702
1703 2009-10-22  Richard Guenther  <rguenther@suse.de>
1704
1705         * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Declare.
1706         * lto-symtab.c (struct lto_symtab_entry_def): Add node member.
1707         (lto_symtab_merge): Do not merge cgraph nodes here.
1708         (lto_symtab_resolve_can_prevail_p): Simplify.
1709         (lto_symtab_resolve_symbols): Store cgraph node.
1710         (lto_symtab_merge_decls_1): Simplify.  Do not drop non-prevailing
1711         functions from the symtab.
1712         (lto_symtab_merge_cgraph_nodes_1): New function.
1713         (lto_symtab_merge_cgraph_nodes): Likewise.
1714
1715 2009-10-22  Richard Guenther  <rguenther@suse.de>
1716
1717         PR lto/41791
1718         * lto-streamer-out.c (lto_output_location): Stream the
1719         system header flag.
1720         * lto-streamer-in.c (lto_input_location): Likewise.
1721
1722 2009-10-22  Razya Ladelsky  <razya@il.ibm.com>
1723
1724         * cfgloopmanip.c (duplicate_subloops): Export.
1725         * tree-parloops.c (loop_parallel_p): Dump if loop is innermost.
1726         (transform_to_exit_first_loop): Duplicate bbs starting from
1727         header up to loop->latch instead of exit->src.
1728         Initialize control variable to the correct number of iterations.
1729         (gather_scalar_reductions): Do not register double reductions.
1730         (parallelize_loops): Dump which loop is tested.
1731         Indicate whether the parallelized loop is inner or not.
1732         Remove the innermost-loop requirement.
1733         * cfgloop.h (duplicate_subloops): Export.
1734         * tree-cfg.c (add_phi_args_after_redirect): New function.
1735         (gimple_duplicate_sese_tail): Remove the no-subloops constraint.
1736         Call duplicate_subloops.
1737         Update number of iterations at the exit condition.
1738         Don't redirect nexits always to the loop exit.
1739         Redirect copied edges from latch to the loop exit.
1740
1741 2009-10-22  Jan Hubicka  <jh@suse.cz>
1742
1743         * ipa-cp.c (ipcp_read_summary): Remove now invalid FIXME and
1744         flag_ltrans check.
1745         * ipa-inline.c (cgraph_mark_inline_edge,
1746         cgraph_decide_inlining_of_small_function,
1747         cgraph_decide_inlining, inline_read_summary): Disable indirect
1748         inlining for WPA for time being.
1749
1750         PR tree-optimize/40556
1751         * ipa-inline.c (cgraph_early_inlining): Fix iterations condition.
1752
1753 2009-10-22  Richard Guenther  <rguenther@suse.de>
1754
1755         * lto-streamer.h (lto_symtab_clear_resolution): Remove.
1756         * lto-symtab.c (lto_symtab_clear_resolution): Likewise.
1757
1758 2009-10-22  Jan Hubicka  <jh@suse.cz>
1759
1760         PR lto/41730
1761         * ipa-reference.c (has_proper_scope_for_analysis): Add fixme about
1762         global vars.
1763         (check_call): Handle only indirect calls.
1764         (propagate_bits): Update comment.
1765         (write_node_summary_p): Turn bogus check to assert.
1766         (ipa_reference_write_summary): Stream calls_read_all properly.
1767         (ipa_reference_read_summary): Stream in calls_read_all properly.
1768         (read_write_all_from_decl): New function.
1769         (propagate): Handle OVERWRITABLE nodes and external calls here.
1770         * ipa-pre-const.c (check_call): In IPA mode handle indirect
1771         calls only.
1772         (analyze_function): Do not check visibility here.
1773         (add_new_function): We summary OVERWRITABLE too.
1774         (generate_summary): Stream OVERWRITABLE nodes too.
1775         (propagate): Handle external calls and OVERWRITABLE nodes here.
1776         (local_pure_const): Check visibility here.
1777
1778 2009-10-22  Jan Hubicka  <jh@suse.cz>
1779
1780         * ipa-cp.c (ipcp_write_summary, ipcp_read_summary): New functions.
1781         (pass_ipa_cp): Register them.
1782         (ipcp_init_stage): Analyze all functions for whopr/lto.
1783         (ipcp_propagate_stage): Skip external calls.
1784         (ipcp_iterate_stage): Call ipa_update_after_lto_read if needed.
1785         * ipa-reference.c (write_node_summary_p): Fix thinko about
1786         availability.
1787         * cgraphunit.c (ipa_passes): When in lto, ne er produce new summaries;
1788         when in ltrans, skip executing of ipa passes since everything
1789         should've been done.
1790         * ipa-inline.c (cgraph_decide_inlining): Remove FIXMEs.
1791         (inline_generate_summary): Likewise.
1792         (inline_read_summary): New function.
1793         (inline_write_summary): New function.
1794         (pass_ipa_inline): Register new hooks.
1795         * ipa-prop.c: Inlcude lto-streamer.h
1796         (ipa_edge_args_vector): Update declaration.
1797         (ipa_count_arguments, ipa_compute_jump_functions,
1798         ipa_free_edge_args_substructures): Move ipa_edge_args_vector into ggc.
1799         (ipa_write_jump_function, ipa_read_jump_function, ipa_write_node_info,
1800         ipa_read_node_info): New static functions.
1801         (ipa_prop_write_jump_functions, ipa_prop_read_jump_functions): Update.
1802         (duplicate_array): Use xmalloc.
1803         (duplicate_ggc_array): New.
1804         (ipa_edge_duplication_hook): Use it.
1805         (ipa_update_after_lto_read): New function.
1806         * ipa-prop.h (ipa_prop_write_jump_functions,
1807         ipa_prop_read_jump_functions): Declare.
1808         (ipa_pass_through_data, ipa_ancestor_jf_data, ipa_member_ptr_cst,
1809         jump_func_value, ipa_member_ptr_cst, ipa_edge_args): Add GTY markers.
1810         (ipa_edge_args_vector): Move into GGC.
1811         (ipa_check_create_edge_args): Update.
1812         (ipa_update_after_lto_read): New.
1813         * passes.c (ipa_write_summaries_1): When in wpa, do not write
1814         summaries.
1815         (ipa_read_summaries): When in ltrans, so not read summaries.
1816         * lto-streamer.c (lto_get_section_name): Add
1817         LTO_section_jump_functions.
1818         * lto-streamer.h (LTO_section_jump_functions): New section.
1819         (produce_asm): Declare.
1820         * lto-cgraph.c (output_cgraph): Output edges in reverse order.
1821         * lto-streamer-out.c (produce_asm): Export.
1822         * lto-streamer-in.c: Include tree-pass.h
1823         (input_function): Free dominance info when done.
1824         (lto_read_body): Push ipa_inline in ltrans stage.
1825         * gengtype.c (open_base_files): Add ipa-prop.h into includes.
1826         * Makefile.in (GTFILES): Add ipa-prop.h
1827
1828 2009-10-22  Matthias Klose  <doko@ubuntu.com>
1829
1830         * doc/install.texi: Document --enable-browser-plugin.
1831
1832 2009-10-21  Vladimir Makarov  <vmakarov@redhat.com>
1833
1834         * doc/invoke.texi (fira-loop-pressure): Update default value.
1835         * opts.c (decode_options): Remove default value setting for
1836         flag_ira_loop_pressure.
1837         * config/ia64/ia64.c (ia64_override_options): Set
1838         flag_ira_loop_pressure up for -O3.
1839         * config/rs6000/rs6000.c (rs6000_override_options): Ditto.
1840
1841 2009-10-21  Sebastian Pop  <sebastian.pop@amd.com>
1842
1843         PR tree-optimization/41497
1844         * tree-scalar-evolution.c (analyze_evolution_in_loop): Return
1845         chrec_dont_know if the evolution function returned by follow_ssa_edge
1846         is constant in the analyzed loop and is not compatible with the
1847         initial value before the loop.
1848         * tree-chrec.h (no_evolution_in_loop_p): Call STRIP_NOPS.
1849
1850 2009-10-21  Joseph Myers  <joseph@codesourcery.com>
1851
1852         * config/sh/sh.c (nonpic_symbol_mentioned_p): Allow UNSPEC_TPOFF.
1853
1854 2009-10-21  Jakub Jelinek  <jakub@redhat.com>
1855
1856         PR other/25507
1857         * doc/invoke.texi: Document -print-multi-os-directory.
1858
1859 2009-10-21  Jack Howarth  <howarth@bromo.med.uc.edu>
1860
1861         PR c++/41313
1862         * gcc/config/darwin10.h: Use default_emit_unwind_label.
1863         * gcc/config/darwin.c: Disable -freorder-blocks-and-partition
1864         when darwin_emit_unwind_label is used.
1865
1866 2009-10-21  Eric Botcazou  <ebotcazou@adacore.com>
1867
1868         * tree-vect-stmts.c (exist_non_indexing_operands_for_use_p): Tweak
1869         order of checks.
1870
1871 2009-10-20  Richard Henderson  <rth@redhat.com>
1872
1873         * tree-eh.c (lower_try_finally_copy): Do lower_eh_constructs_1
1874         before emit_post_landing_pad.
1875
1876 2009-10-20  Adam Nemet  <anemet@caviumnetworks.com>
1877
1878         * config/mips/mips.c (mips_binary_cost): Add new argument speed.
1879         Use when calling rtx_costs.
1880         (mips_rtx_costs): Fix formatting.  Use argument speed rather than the
1881         global optimize_size.  Pass speed to mips_binary_cost.
1882
1883 2009-10-20  Jakub Jelinek  <jakub@redhat.com>
1884
1885         * config/rs6000/rs6000.c (def_builtin): Set TREE_READONLY instead
1886         of TREE_CONSTANT.
1887
1888 2009-10-20  Richard Sandiford  <rdsandiford@googlemail.com>
1889
1890         * rtl.h (simplify_replace_fn_rtx): Declare.
1891         (wrap_constant, unwrap_constant): Delete.
1892         * cfgexpand.c (unwrap_constant, wrap_constant): Delete.
1893         (expand_debug_expr): Don't call wrap_constant.
1894         * combine.c (rtx_subst_pair): Only define for AUTO_INC_DEC.
1895         (auto_adjust_pair): Fold into...
1896         (propagate_for_debug_subst): ...here.  Only define for AUTO_INC_DEC.
1897         Just return a new value.
1898         (propagate_for_debug): Use simplify_replace_fn_rtx for AUTO_INC_DEC,
1899         otherwise use simplify_replace_rtx.
1900         * cselib.c (wrap_constant): Reinstate old definition.
1901         (cselib_expand_value_rtx_1): Don't wrap constants.
1902         * gcse.c (try_replace_reg): Don't use copy_rtx in the call to
1903         simplify_replace_rtx.
1904         (bypass_block): Fix formatting in calls to simplify_replace_rtx.
1905         * reload1.c (reload): Skip all uses for an insn before adjusting it.
1906         Use simplify_replace_rtx.
1907         * simplify-rtx.c (simplify_replace_fn_rtx): New function,
1908         adapted from...
1909         (simplify_replace_rtx): ...here.  Turn into a wrapper for
1910         simplify_replace_fn_rtx.
1911         (simplify_unary_operation): Don't unwrap CONSTs.
1912         * var-tracking.c (check_wrap_constant): Delete.
1913         (vt_expand_loc_callback): Don't call it.
1914         (vt_expand_loc): Likewise.
1915
1916 2009-10-20  Pascal Obry  <obry@adacore.com>
1917             Eric Botcazou  <ebotcazou@adacore.com>
1918
1919         * config/i386/cygming.h (DWARF_FRAME_REGNUM): Add enclosing parens.
1920
1921 2009-10-20  Michael Matz  <matz@suse.de>
1922
1923         * loop-invariant.c (create_new_invariant): Use different magic number.
1924
1925 2009-10-20  Richard Earnshaw  <rearnsha@arm.com>
1926
1927         PR target/39247
1928         * arm.c (arm_override_options): Forcibly disable hot/cold block
1929         partitioning.
1930
1931 2009-10-20  Alexandre Oliva  <aoliva@redhat.com>
1932
1933         PR debug/41739
1934         * haifa-sched.c (try_ready): Skip debug deps updating speculation
1935         status.
1936
1937 2009-10-20  Richard Guenther  <rguenther@suse.de>
1938
1939         * ggc-page.c: Include cfgloop.h.
1940         (struct max_alignment): Drop long double, add void *.
1941         (extra_order_size_table): Add low non-power-of-two multiples
1942         of MAX_ALIGNMENT.  Drop small type-based entries, add
1943         tree_type, cgraph_node and loop.
1944         * alloc-pool.c (struct allocation_object_def): Drop long double
1945         aligning element.
1946
1947 2009-10-20  Jakub Jelinek  <jakub@redhat.com>
1948
1949         PR debug/41340
1950         * loop-invariant.c (calculate_loop_reg_pressure): Don't count regs
1951         referenced just in DEBUG_INSNs.
1952
1953 2009-10-20  Richard Guenther  <rguenther@suse.de>
1954
1955         PR lto/41761
1956         * gimple.c (gimple_register_type): Make sure we register
1957         the types main variant first.
1958
1959 2009-10-20  Richard Guenther  <rguenther@suse.de>
1960
1961         * gimple.c (gimple_types_compatible_p): Simplify.  Move
1962         cheap checks before hashtable queries.  Add checks for
1963         TYPE_NONALIASED_COMPONENT and DECL_NONADDRESSABLE_P.
1964
1965 2009-10-20  Eric Botcazou  <ebotcazou@adacore.com>
1966
1967         * tree-sra.c (build_ref_for_offset_1) <RECORD_TYPE>: Skip fields
1968         without size or with size that can't be represented as a host integer.
1969
1970 2009-10-20  Alexandre Oliva  <aoliva@redhat.com>
1971
1972         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't regard
1973         the removal of a debug stmt as a significant change.
1974
1975 2009-10-20  Wolfgang Gellerich  <gellerich@de.ibm.com>
1976
1977         * config/s390/s390.md: Added agen condition to operand
1978         forwarding bypasses.  Added bypass for early address generation
1979         use of int results.  Updated comments.
1980
1981 2009-10-20  Stefan Dösinger  <stefan@codeweavers.com>
1982
1983         * config/i386/i386.c: Remove signal.h #include.
1984
1985 2009-10-20  Jie Zhang  <jie.zhang@analog.com>
1986
1987         * simplify-rtx.c (simplify_const_unary_operation): Handle SS_ABS.
1988         * doc/rtl.texi: Document ss_abs.
1989
1990 2009-10-19  Jakub Jelinek  <jakub@redhat.com>
1991
1992         * c-common.c (c_parse_error): Handle CPP_UTF8STRING.
1993         * c-lex.c (c_lex_with_flags): Likewise.  Test C_LEX_STRING_NO_JOIN
1994         instead of C_LEX_RAW_STRINGS.
1995         (lex_string): Handle CPP_UTF8STRING.
1996         * c-parser.c (c_parser_postfix_expression): Likewise.
1997         * c-pragma.h (C_LEX_RAW_STRINGS): Rename to ...
1998         (C_LEX_STRING_NO_JOIN): ... this.
1999
2000 2009-10-19  Anatoly Sokolov  <aesok@post.ru>
2001
2002         * config/cris/cris.c (cris_function_value, cris_libcall_value,
2003         cris_function_value_regno_p): New functions.
2004         (cris_promote_function_mode): Update comment.
2005         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
2006         * config/cris/cris.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
2007         (FUNCTION_VALUE_REGNO_P): Redefine, use cris_function_value_regno_p.
2008         * config/cris/cris-protos.h (cris_function_value_regno_p): Declare.
2009
2010 2009-10-19  Jakub Jelinek  <jakub@redhat.com>
2011
2012         * unwind-dw2.c (execute_stack_op): Fix operand order for
2013         DW_OP_le, DW_OP_ge, DW_OP_lt and DW_OP_gt.
2014
2015 2009-10-19  Eric Botcazou  <ebotcazou@adacore.com>
2016
2017         * gimple-low.c (struct lower_data): Add cannot_fallthru field.
2018         (lower_stmt) <GIMPLE_BIND>: Add comment.
2019         <GIMPLE_COND, GIMPLE_GOTO, GIMPLE_SWITCH>: Set cannot_fallthru to true
2020         and return.
2021         <GIMPLE_RETURN>: Remove the statement if cannot_fallthru is set.
2022         Otherwise lower it and set cannot_fallthru to true.
2023         <GIMPLE_TRY>: Update cannot_fallthru for GIMPLE_TRY_FINALLY and return.
2024         <GIMPLE_CATCH, GIMPLE_EH_FILTER>: Set cannot_fallthru to false.
2025         <GIMPLE_CALL>: Set cannot_fallthru to false for BUILT_IN_SETJMP and
2026         to true for a noreturn call.  Do not remove statements.
2027         <GIMPLE_OMP_PARALLEL, GIMPLE_OMP_TASK>: Set cannot_fallthru to false.
2028         Set cannot_fallthru to false on function exit.
2029         (gimple_stmt_may_fallthru) <GIMPLE_SWITCH>: Really return false.
2030         <GIMPLE_ASSIGN>: Remove.
2031
2032 2009-10-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2033
2034         * config/s390/s390.c (s390_z10_optimize_cmp): Don't touch FP compares.
2035
2036 2009-10-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2037
2038         * config/s390/s390.c (s390_z10_optimize_cmp): Use
2039         next/prev_active_insn to skip DEBUG_INSNs as well.
2040
2041 2009-10-19  Joseph Myers  <joseph@codesourcery.com>
2042
2043         * config/arm/arm.c (output_move_neon): Use DImode in call to
2044         adjust_address.
2045
2046 2009-10-19  Matthias Klose  <doko@ubuntu.com>
2047
2048         PR target/40134
2049         * config.gcc (arm*-*-linux-*eabi): Use config/t-slibgcc-libgcc.
2050
2051 2009-10-19  Jakub Jelinek  <jakub@redhat.com>
2052
2053         * cfgexpand.c (expand_debug_expr): Fail if bitpos < 0 for non-MEM op0.
2054
2055 2009-10-17  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
2056
2057         PR middle-end/41738
2058         * optabs.c (expand_binop): Make mode of shift count expression mode
2059         of shift count not target.
2060         Remove indent nit.
2061
2062 2009-10-17  Eric Botcazou  <ebotcazou@adacore.com>
2063
2064         * tree-nested.c (convert_nonlocal_reference_stmt) <GIMPLE_COND>: New
2065         case.  Force using values to replace references within the statement.
2066         (convert_local_reference_stmt): Likewise.
2067
2068 2009-10-17  Eric Botcazou  <ebotcazou@adacore.com>
2069
2070         * gimple-low.c (lower_stmt) <GIMPLE_CALL>: If the call is noreturn,
2071         remove a subsequent GOTO or RETURN statement.
2072
2073 2009-10-17  Andy Hutchinson  <hutchinsonandy@aim.com>
2074
2075         * config/avr.md (*movqi): Add zero as equally preferable constraint
2076         as general register.
2077         (*movhi): Ditto.
2078
2079 2009-10-17  Eric Botcazou  <ebotcazou@adacore.com>
2080
2081         * print-tree.c (print_node): Fix string for DECL_STRUCT_FUNCTION.
2082
2083 2009-10-17  Richard Guenther  <rguenther@suse.de>
2084
2085         * lto-streamer-in.c (lto_input_location): Try to reuse previous maps.
2086
2087 2009-10-17  Richard Guenther  <rguenther@suse.de>
2088
2089         * lto-streamer-in.c (input_gimple_stmt): Fixup FIELD_DECL
2090         operands in COMPONENT_REFs.
2091
2092 2009-10-17  Anatoly Sokolov  <aesok@post.ru>
2093
2094         * targhooks.c (default_libcall_value): Don't use LIBCALL_VALUE macro
2095         if not defined. Change type of second argument to const_rtx.
2096         (default_function_value): Call gcc_unreachable if FUNCTION_VALUE
2097         macro not defined.
2098         * targhooks.h (default_libcall_value): Update prototype.
2099         * target.h (struct gcc_target): Change type of second argument of
2100         libcall_value to const_rtx.
2101         * config/arm/arm.c (arm_libcall_value): Change type of second argument
2102         to const_rtx.
2103         (arm_libcall_uses_aapcs_base): Change type of argument to const_rtx.
2104         * doc/tm.texi (TARGET_LIBCALL_VALUE):  Revise documentation.
2105
2106 2009-10-17  Jakub Jelinek  <jakub@redhat.com>
2107
2108         PR debug/40521
2109         * debug.h (struct gcc_debug_hooks): Add assembly_start hook.
2110         * cgraphunit.c (cgraph_optimize): Call it.
2111         * dwarf2out.c (dwarf2out_init): Move .cfi_sections printing into...
2112         (dwarf2out_assembly_start): ... here.  New hook.
2113         (dwarf2out_debug_hooks): Add dwarf2out_assembly_start.
2114         * debug.c (do_nothing_debug_hooks): Do nothing for assembly_start
2115         hook.
2116         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
2117         * sdbout.c (sdb_debug_hooks): Likewise.
2118         * vmsdbgout.c (vmsdbg_debug_hooks): Add vmsdbgout_assembly_start.
2119         (vmsdbgout_assembly_start): New hook.
2120
2121 2009-10-17  Alexandre Oliva  <aoliva@redhat.com>
2122
2123         * rtl.h (RTL_LOCATION): Fix typo.
2124
2125 2009-10-17  Alexandre Oliva  <aoliva@redhat.com>
2126
2127         * print-rtl.c (print_rtx): Print locators in asm_operands
2128         and asm_input.
2129
2130 2009-10-17  Alexandre Oliva  <aoliva@redhat.com>
2131
2132         PR debug/41535
2133         * sched-deps.c (depl_on_debug_p): New.
2134         (attach_dep_link): Reject debug deps before nondebug deps.
2135         (add_to_deps_list): Insert debug deps after nondebug deps.
2136         (sd_lists_empty_p): Stop at first nonempty list.  Disregard debug
2137         deps.
2138         (sd_add_dep): Do not reject debug deps.
2139         (add_insn_mem_dependence): Don't count debug deps.
2140         (remove_from_deps): Likewise.
2141         (sched_analyze_2): Set up mem deps on debug insns.
2142         (sched_analyze_insn): Record reg uses for deps on debug insns.
2143         * haifa-sched.c (schedule_insn): Reset deferred debug insn.  Don't
2144         try_ready nondebug insn after debug insn.
2145         * ddg.c (create_ddg_dep_from_intra_loop_link,
2146         create_ddg_dep_no_link): Don't reject debug deps.
2147
2148 2009-10-16  Richard Guenther  <rguenther@suse.de>
2149
2150         * lto-symtab.c (merge_incomplete_and_complete_type): Remove.
2151         (maybe_merge_incomplete_and_complete_type): Likewise.
2152         (lto_symtab_merge): Do not call them.  Do not warn for
2153         complete vs. incomplete compatible types.
2154         (lto_symtab_merge_decls_2): Simplify.
2155         * gimple.c (gimple_force_type_merge): Remove.
2156         (gimple_types_compatible_p): Make it static.
2157         * gimple.h (gimple_force_type_merge): Remove.
2158         (gimple_types_compatible_p): Likewise.
2159
2160 2009-10-16  Jakub Jelinek  <jakub@redhat.com>
2161
2162         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Cast
2163         DWARF2_ADDR_SIZE to int to avoid signed vs. unsigned warnings.
2164
2165 2009-10-16  Richard Guenther  <rguenther@suse.de>
2166
2167         PR tree-optimization/41728
2168         * tree-ssa-dom.c (optimize_stmt): Mark the stmt modified
2169         if fold_stmt did anything.
2170
2171 2009-10-16  Richard Guenther  <rguenther@suse.de>
2172
2173         PR lto/41715
2174         * lto-streamer-in.c (lto_input_tree_ref): Revert last change.
2175         (maybe_fixup_handled_component): New function.
2176         (input_gimple_stmt): Fixup mismatched decl replacements.
2177
2178 2009-10-16  Richard Guenther  <rguenther@suse.de>
2179
2180         PR lto/41713
2181         * lto-streamer-out.c (lto_output_tree_ref): Handle DEBUG_EXPR_DECL
2182         the same as VAR_DECL.
2183
2184 2009-10-16  Richard Guenther  <rguenther@suse.de>
2185
2186         * gimple.c (iterative_hash_gimple_type): For integer types
2187         also hash their minimum and maximum values and the string flag.
2188         For array types hash their domain and the string flag.
2189
2190 2009-10-16  Richard Guenther  <rguenther@suse.de>
2191
2192         * gimple.c (gimple_types_compatible_p): Restrict completing
2193         types to record or unions.  Simplify completion.
2194         Do not merge records or unions with different
2195         TYPE_STRUCTURAL_EQUALITY_P tag.
2196         (iterative_hash_gimple_type): Restrict non-recursing into
2197         pointer targets for records and unions.
2198
2199 2009-10-15  Jakub Jelinek  <jakub@redhat.com>
2200
2201         PR debug/41717
2202         * cfgexpand.c (expand_debug_expr): Handle CONJ_EXPR.
2203         * dwarf2out.c (mem_loc_descriptor): Don't handle
2204         POST_INT/POST_DEC/POST_MODIFY like SUBREG.  For SUBREG
2205         punt if it is not lowpart subreg or if inner mode isn't
2206         MODE_INT.
2207
2208 2009-10-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2209
2210         * config/s390/s390.c (s390_z10_optimize_cmp): Skip notes when
2211         investigating previous or next insns.
2212
2213 2009-10-16  Eric Botcazou  <ebotcazou@adacore.com>
2214
2215         * tree-sra.c (build_ref_for_offset_1): Update comment.
2216
2217 2009-10-16  Wolfgang Gellerich  <gellerich@de.ibm.com>
2218
2219         * config/s390/s390.md (atype): Added missing values.
2220
2221 2009-10-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2222
2223         PR target/41702
2224         * pa.md (casesi): Use sign extended index in call to gen_casesi64p.
2225         (casesi64p): Update pattern to reflect above.
2226
2227 2009-10-15  Steve Ellcey  <sje@cup.hp.com>
2228
2229         PR rtl-optimization/41697
2230         * sel-sched-ir.h (_eligible_successor_edge_p): Check successor count.
2231
2232 2009-10-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
2233
2234         PR target/23983
2235         * config/rs6000/predicates.md: Update copyright year.
2236         * config/rs6000/altivec.md: Ditto.
2237
2238         * config/rs6000/t-rs6000 (TM_H): Add rs6000-builtin.def.
2239         (MD_INCLUDES): Add a2.md.
2240
2241         * config/rs6000/rs6000.c (rs6000_builtin_decls): Change
2242         RS6000_BUILTIN_COUNT to MAX_RS6000_BUILTINS.
2243         (builtin_classify): New static vector to classify various builtins
2244         to get the tree attributes correct.
2245         (def_builtin): Set the attributes of builtins based on what the
2246         builtin does (i.e. memory operation, floating point, saturation
2247         need special attributes, others are pure functions).
2248
2249         * config/rs6000/rs6000.h (enum rs6000_btc): New enum to classify
2250         the builtins.
2251         (enum rs6000_builtins): Include rs6000-builtin.def to define the
2252         builtins.  Change the end marker to MAX_RS6000_BUILTINS from
2253         RS6000_BUILTIN_COUNT.
2254         (rs6000_builtin_decls): Change RS6000_BUILTIN_COUNT to
2255         MAX_RS6000_BUILTINS.
2256
2257         * config/rs6000/rs6000-builtin.def: New file that combines the
2258         builtin enumeration name and attributes.
2259
2260 2009-10-15  H.J. Lu  <hongjiu.lu@intel.com>
2261
2262         * config/i386/linux.h (ASM_SPEC): Add --32.
2263
2264 2009-10-15  Jakub Jelinek  <jakub@redhat.com>
2265
2266         * dwarf2out.c (dwarf_tag_name): Handle DW_TAG_rvalue_reference_type
2267         and DW_TAG_template_alias.
2268         (dwarf_attr_name): Handle DW_AT_main_subprogram,
2269         DW_AT_data_bit_offset, DW_AT_const_expr, DW_AT_enum_class,
2270         DW_AT_linkage_name, DW_AT_GNU_guarded_by, DW_AT_GNU_pt_guarded_by,
2271         DW_AT_GNU_guarded, DW_AT_GNU_pt_guarded, DW_AT_GNU_locks_excluded,
2272         DW_AT_GNU_exclusive_locks_required, DW_AT_GNU_shared_locks_required
2273         and DW_AT_GNU_odr_signature.
2274         (dwarf_form_name): Handle DW_FORM_sec_offset, DW_FORM_exprloc,
2275         DW_FORM_flag_present and DW_FORM_ref_sig8.
2276         (output_signature): Only print name on the first byte.
2277         (output_die): Likewise for dw_val_class_data8.
2278
2279 2009-10-15  Alexander Monakov  <amonakov@ispras.ru>
2280
2281         * doc/invoke.texi: Clarify that most optimizations are not enabled
2282         without -O.
2283
2284 2009-10-15  Richard Guenther  <rguenther@suse.de>
2285
2286         PR lto/41668
2287         * gimple.c (compare_type_names_p): Handle anonymous names
2288         differently based on new mode argument.
2289         (gimple_types_compatible_p): For structs also compare the tags.
2290         (iterative_hash_type_name): Rename to ...
2291         (iterative_hash_name): ... this.  Hash all names.
2292         (iterative_hash_gimple_type): Fix hashing the struct tag of
2293         pointer targets.  Hash field decl names.
2294
2295 2009-10-15  Richard Guenther  <rguenther@suse.de>
2296
2297         PR lto/41669
2298         * gimple.c (gimple_get_alias_set): Avoid recursing on
2299         invalid type topology.
2300
2301 2009-10-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2302
2303         * config/spu/spu.c (get_branch_target): Use extract_asm_operands.
2304
2305 2009-10-15  Richard Guenther  <rguenther@suse.de>
2306
2307         * tree.c (free_lang_data_in_decl): Free DECL_FCONTEXT.
2308
2309 2009-10-15  Jakub Jelinek  <jakub@redhat.com>
2310
2311         * config/rs6000/option-defaults.h (OPTION_DEFAULT_SPECS): Don't
2312         add --with-tune{,-32,-64} configured default for -mtune if explicit
2313         -mcpu is used.
2314
2315 2009-10-14  Daniel Gutson  <dgutson@codesourcery.com>
2316
2317         * config/arm/neon.md (neon_vshll_n<mode>): Checking Bounds fixed.
2318
2319 2009-10-14  DJ Delorie  <dj@redhat.com>
2320
2321         * config/h8300/h8300.c (F): New.
2322         (Fpa): New.
2323         (h8300_emit_stack_adjustment): Call them.
2324         (push): Likewise.
2325         (h8300_push_pop): Likewise.
2326         (h8300_expand_prologue): Likewise.
2327         * config/h8300/h8300.h (DWARF2_DEBUGGING_INFO): Define.
2328         (MUST_USE_SJLJ_EXCEPTIONS): Define.
2329         (INCOMING_RETURN_ADDR_RTX): Define.
2330         (INCOMING_FRAME_SP_OFFSET): Define.
2331         (DWARF_CIE_DATA_ALIGNMENT): Define.
2332
2333 2009-10-14  Jakub Jelinek  <jakub@redhat.com>
2334
2335         * stor-layout.c (place_field): Don't emit -Wpadded warnings for
2336         fields in builtin structs.
2337         (finalize_record_size): Likewise.
2338
2339 2009-10-14  Richard Guenther  <rguenther@suse.de>
2340
2341         * gimple.c (gtc_ob): New global.
2342         (struct type_pair_d): Replace pointers with type UIDs.
2343         (type_pair_hash): Adjust.
2344         (type_pair_eq): Likewise.
2345         (lookup_type_pair): Likewise.  Allocate from an obstack.
2346         (gimple_force_type_merge): Adjust.
2347         (gimple_types_compatible_p): Likewise.
2348         (free_gimple_type_tables): Free the obstack.
2349
2350 2009-10-14  Jakub Jelinek  <jakub@redhat.com>
2351
2352         * tree-parloops.c (separate_decls_in_region_debug_bind): Drop debug
2353         stmts setting DEBUG_EXPR_DECLs.
2354
2355         * cfgexpand.c (expand_debug_expr): Ignore zero-length bitfields.
2356         Don't crash if mode1 is VOIDmode.
2357
2358 2009-09-26  Vladimir Makarov  <vmakarov@redhat.com>
2359
2360         * params.def (PARAM_IRA_LOOP_RESERVED_REGS): New.
2361         * params.h (IRA_LOOP_RESERVED_REGS): New.
2362         * tree-pass.h (pass_subregs_of_mode_init,
2363         pass_subregs_of_mode_finish): Remove.
2364         * passes.c (pass_subregs_of_mode_init,
2365         pass_subregs_of_mode_finish): Remove.
2366         (pass_reginfo_init): Move before loop optimizations.
2367         * config/i386/i386.h (STACK_REG_COVER_CLASS): Define.
2368         * common.opt (fira-loop-pressure): New.
2369         * toplev.h (flag_ira_loop_pressure): New.
2370         * rtl.h (init_subregs_of_mode, finish_subregs_of_mode): New externals.
2371         * reginfo.c (init_subregs_of_mode, finish_subregs_of_mode):
2372         Make external and void type functions.
2373         (gate_subregs_of_mode_init, pass_subregs_of_mode_init,
2374         pass_subregs_of_mode_finish): Remove.
2375         * ira-costs.c (init_costs): Call init_subregs_of_mode.
2376         * regmove.c: Include ira.h.
2377         (regmove_optimize): Call ira_set_pseudo_classes after IRA based
2378         register pressure calculation in loops.
2379         * loop-invariant.c: Include REGS_H and ira.h.
2380         (struct loop_data): New members max_reg_pressure, regs_ref, and
2381         regs_live.
2382         (struct invariant): New member orig_regno.
2383         (curr_loop): New variable.
2384         (find_exits): Initialize regs_ref and regs_live.
2385         (create_new_invariant): Initialize orig_regno.
2386         (get_cover_class_and_nregs): New.
2387         (get_inv_cost): Make aregs_needed an array.  Use regs_needed as an
2388         array.  Add code for flag_ira_loop_pressure.
2389         (gain_for_invariant): Make new_regs an array.  Add code for
2390         flag_ira_loop_pressure.
2391         (best_gain_for_invariant): Ditto.
2392         (set_move_mark): New parameter gain.  Use it for debugging output.
2393         (find_invariants_to_move): Make regs_needed and new_regs an array.
2394         Add code for flag_ira_loop_pressure.
2395         (move_invariant_reg): Set up orig_regno.
2396         (move_invariants): Set up reg classes for pseudos for
2397         flag_ira_loop_pressure.
2398         (free_loop_data): Clear regs_ref and regs_live.
2399         (curr_regs_live, curr_reg_pressure, regs_set, n_regs_set,
2400         get_regno_cover_class, change_pressure, mark_regno_live,
2401         mark_regno_death, mark_reg_store, mark_reg_clobber,
2402         mark_reg_death, mark_ref_regs, calculate_loop_reg_pressure): New.
2403         (move_loop_invariants): Calculate pressure.  Initialize curr_loop.
2404         * ira.c (ira): Call ira_set_pseudo_classes after IRA based
2405         register pressure calculation in loops if new regs were added.
2406         Call finish_subregs_of_mode.
2407         * opts.c (decode_options): Set up flag_ira_loop_pressure.
2408         * Makefile.in (loop-invariant.o): Add ira.h.
2409         (regmove.o): Ditto.
2410         * doc/invoke.texi (-fira-loop-pressure, ira-loop-reserved-regs):
2411         Describe.
2412         * doc/tm.texi (STACK_REG_COVER_CLASS): Describe.
2413
2414 2009-10-14  Richard Guenther  <rguenther@suse.de>
2415
2416         * lto-symtab.c (lto_symtab_compatible): Fold in ...
2417         (lto_symtab_merge): ... here.  Rewrite both to take the
2418         prevailing and a to-be-merged entry and to queue diagnostics properly.
2419         (lto_symtab_resolve_replaceable_p): New predicate for
2420         symbol resolution.
2421         (lto_symtab_resolve_can_prevail_p): Likewise.
2422         (lto_symtab_resolve_symbols): Rewrite.  Fold in code that
2423         handles merging commons by choosing the largest decl.  Fold
2424         in code that gives ODR errors.
2425         (lto_symtab_merge_decls_2): Simplify a lot.  Emit queued
2426         diagnostics here.
2427         (lto_symtab_merge_decls_1): Re-structure.  Deal with the
2428         case of no prevailing decl here.  Diagnose mismatches
2429         in object types here.  Drop all but the prevailing decls.
2430         (lto_symtab_prevailing_decl): Return the single prevailing decl.
2431         * lto-streamer-in.c (lto_input_tree_ref): Deal with
2432         VIEW_CONVERT_EXPRs in decl slots.  Unshare the tree in this case.
2433
2434 2009-10-14  Richard Guenther  <rguenther@suse.de>
2435
2436         PR lto/41521
2437         * lto-streamer-in.c (input_bb): Replace debug stmts with
2438         nops instead of dropping them.
2439
2440 2009-10-14  Nick Clifton  <nickc@redhat.com>
2441
2442         * gcc/doc/extended.texi: Replace the dash character with @minus{}
2443         in situations where it is being used as a minus symbol.
2444         * gcc/doc/tm.texi: Likewise.
2445         * gcc/doc/md.texi: Likewise.
2446
2447 2009-10-14  Jakub Jelinek  <jakub@redhat.com>
2448
2449         PR preprocessor/41543
2450         * input.h (BUILTINS_LOCATION): Change to 1 from 2.
2451         Assert BUILTINS_LOCATION < RESERVED_LOCATION_COUNT.
2452         * tree.c: Include intl.h.
2453         (expand_location): Handle BUILTINS_LOCATION.
2454         * Makefile.in (tree.o): Depend on intl.h.
2455
2456         PR debug/41695
2457         * dwarf2out.c (dwarf2out_var_location): Always clear
2458         last_postcall_label when changing last_label.
2459
2460 2009-10-14  Pascal Obry  <obry@adacore.com>
2461
2462         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION): Add -E.
2463         (process_command): Handle -E as done with -c and -S.  Do not add
2464         the target executable suffix to the output file when -E is used.
2465         (main): Adjust error message accordingly.
2466
2467 2009-10-14  Alexandre Oliva  <aoliva@redhat.com>
2468
2469         PR debug/41343
2470         PR debug/41447
2471         PR debug/41264
2472         PR debug/41338
2473         * tree.c (tree_node_structure_for_code): DEBUG_EXPR_DECL uses
2474         decl with rtl.
2475         (tree_code_size): Likewise.
2476
2477 2009-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2478
2479         * builtins.c (fold_builtin_1): Support complex "arc" functions.
2480         * real.h (HAVE_mpc_arc): Define.
2481
2482 2009-10-14  Kaz Kojima  <kkojima@gcc.gnu.org>
2483
2484         * config/sh/sh.c (TARGET_BUILTIN_DECL): Define.
2485         (struct builtin_description): Add fndecl field.
2486         (bdesc): Remove const qualifier.  Update initializer.
2487         (sh_media_init_builtins): Remove const qualifier for d.  Record
2488         the result of add_builtin_function to the fndecl field.
2489         (sh_builtin_decl): New.
2490         (sh_media_builtin_decl): New.
2491
2492 2009-10-14  Hans-Peter Nilsson  <hp@axis.com>
2493
2494         PR target/38948
2495         * config/cris/cris.h (SECONDARY_RELOAD_CLASS): Handle reload
2496         requests between special registers.
2497
2498 2009-10-13  Eric Botcazou  <ebotcazou@adacore.com>
2499
2500         * dwarf2out.c (mem_loc_descriptor): Accept UNGT as well.
2501
2502 2009-10-13  Richard Henderson  <rth@redhat.com>
2503
2504         PR tree-optimization/41377
2505         * tree-eh.c (unsplit_eh): Propagate degenerate PHIs.
2506         (cleanup_empty_eh_merge_phis): New change_region parameter;
2507         pass it on to redirect_eh_edge_1.  Update callers.
2508         (cleanup_empty_eh_unsplit): Don't require an existing EH label
2509         at the destination block.
2510
2511 2009-10-13  Basile Starynkevitch  <basile@starynkevitch.net>
2512
2513         * passes.c (register_pass): Replaced gcc_unreachable by
2514         fatal_error on failure. Mentions plugins in comments & messages.
2515
2516 2009-10-13  Jakub Jelinek  <jakub@redhat.com>
2517
2518         PR target/41693
2519         * rtl.h (DEBUG_EXPR_TREE_DECL): Define.
2520         * sched-vis.c (print_value): Use it.
2521         * cselib.c (cselib_hash_rtx): Likewise.
2522         * print-rtl.c (print_rtx): Likewise.
2523         * cfgexpand.c (expand_debug_rtx): Likewise.
2524         * var-tracking.c (vt_expand_loc_callback): Likewise.
2525
2526 2009-10-13  Richard Guenther  <rguenther@suse.de>
2527
2528         PR lto/41565
2529         * opts.c (handle_option): Split out code to handle setting
2530         the options flag var ...
2531         (set_option): ... here.
2532         * opts.h (set_option): Declare.
2533         * lto-opts.c (register_user_option_p): Include -fexceptions
2534         and all position independent code variants.
2535         (handle_common_option): Remove.
2536         (lto_reissue_options): Use set_option.
2537
2538 2009-10-13  Martin Jambor  <mjambor@suse.cz>
2539
2540         PR tree-optimization/41661
2541         * ipa-prop.c (compute_complex_pass_through): Allow only operations
2542         that are tcc_comparisons or do not change the type in any
2543         un-usleless way.
2544         * ipa-cp.c (ipcp_lattice_from_jfunc): Request boolean type when
2545         folding tcc_comparison operations.
2546
2547 2009-10-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2548
2549         * config/s390/s390.c (s390_encode_section_info): Handle BLKmode
2550         properly.
2551
2552 2009-10-12  Alexandre Oliva  <aoliva@redhat.com>
2553
2554         PR debug/41343
2555         PR debug/41447
2556         PR debug/41264
2557         PR debug/41338
2558         * tree.def (DEBUG_EXPR_DECL): New.
2559         * rtl.def (DEBUG_EXPR): New.
2560         * gengtype.c (adjust_field_rtx_def): Handle it.
2561         * tree-ssa.c (propagate_var_def_into_debug_stmts): Rename to...
2562         (insert_debug_temp_for_var_def): ... this.  Drop support for
2563         moving.  Take iterator for def stmt; insert debug stmt before it.
2564         Scan early for use count and kind in debug stmts.
2565         (propagate_defs_into_debug_stmts): Rename to...
2566         (insert_debug_temps_for_defs): ... this.  Likewise.
2567         * tree.h (DEBUG_TEMP_UID): New.
2568         * tree.c (next_debug_decl_uid): New.
2569         (make_node_stat): Count debug decls separately.
2570         (copy_node_stat): Likewise.
2571         * cfgexpand.c (expand_debug_expr): Handle DEBUG_EXPR_DECL.
2572         * var-tracking.c (dv_is_decl_p): Recognize it.
2573         (VALUE_RECURSED_INTO): Apply to DEBUG_EXPRs too.
2574         (track_expr_p): Track expanded DEBUG_EXPR_DECLs.
2575         (vt_expand_loc_callback): Expand DEBUG_EXPRs.
2576         (emit_note_insn_var_location): Don't emit notes for DEBUG_EXPR_DECLs.
2577         * cselib.c (rtx_equal_for_cselib_p): Handle DEBUG_EXPR.
2578         (cselib_hash_rtx): Likewise.
2579         (cselib_expand_value_rtx_1): Use callback for DEBUG_EXPR.
2580         * tree-ssa-operands.c (get_expr_operands): Skip DEBUG_EXPR_DECLs in
2581         debug bind stmts.
2582         * emit-rtl.c (verify_rtx_sharing): Handle DEBUG_EXPR and VALUE.
2583         (copy_rtx_if_shared_1, reset_used_flags, set_used_flags): Likewise.
2584         * rtl.c (copy_rtx): Likewise.
2585         (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_EXPR.
2586         * print-rtl.c (print_rtx): Likewise.
2587         * sched-vis.c (print_value): Likewise.
2588         (print_insn): Handle DEBUG_EXPR_DECL.
2589         * tree-dump.c (dequeue_and_dump): Likewise.
2590         * tree-pretty-print.c (dump_decl_name, dump_generic_node): Likewise.
2591         * gimple-iterator (gsi_replace): Check for same lhs.
2592         (gsi_remove): Insert debug temps.
2593         * tree-ssa-loop-im.c (rewrite_reciprocal): Replace with same lhs.
2594         (move_computations_stmt): Drop explicit propagation into debug stmts.
2595         (rewrite_bittest): Likewise.  Use gsi_remove for propagation.
2596         * tree-ssa-reassoc.c (rewrite_expr_tree, linearize_expr): Likewise.
2597         * tree-ssa-sink.c (statement_sink_location): Likewise.
2598         * tree-ssa-forwprop (forward_propagate_addr_expr): Likewise.
2599         * tree-ssanames.c (release_ssa_name): Adjust for rename.
2600         * tree-flow.h: Likewise.
2601         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Don't mark
2602         debug temps without values.
2603         (eliminate_unnecessary_stmts): Don't discard just-inserted
2604         debug stmts.
2605
2606 2009-10-12  Hans-Peter Nilsson  <hp@axis.com>
2607
2608         PR target/26515
2609         * config/cris/cris.md (andu): Check that operand 1 is one of the
2610         general registers.  Fix typo in head comment.
2611
2612 2009-10-12  Stefan Dösinger  <stefan@codeweavers.com>
2613
2614         * config/i386/i386.md (vswapmov): New.
2615         * config/i386/i386.c (ix86_handle_fndecl_attribute): New.
2616         (ix86_function_ms_hook_prologue): New.
2617         (ix86_expand_prologue): Handle ms_hook_prologue attribute.
2618         * configure.ac: Test for swap suffix support in as.
2619         * configure: Rebuild.
2620
2621 2009-10-12  Jakub Jelinek  <jakub@redhat.com>
2622
2623         PR target/41680
2624         * config/i386/i386.md (split after *testqi_ext_3_rex64): Only narrow
2625         paradoxical subregs to prevent partial register stalls if the inner
2626         mode is integer mode.
2627
2628 2009-10-12  Uros Bizjak  <ubizjak@gmail.com>
2629
2630         * config/i386/i386.md (*setcc_<mode>_2): Remove insn pattern.
2631
2632 2009-10-12  Dodji Seketeli  <dodji@redhat.com>
2633
2634         PR c++/41570
2635         * gcc/dwarf2out.c (template_parameter_pack_die,
2636         gen_formal_parameter_pack_die): Use add_name_and_src_coords_attributes.
2637
2638 2009-10-12  Alexandre Oliva  <aoliva@redhat.com>
2639
2640         PR debug/41616
2641         * tree-into-ssa.c (insert_phi_nodes_for): Build debug bind stmts
2642         on updates too.
2643         (maybe_register_def): Likewise.  Take stmt iterator.
2644         (rewrite_update_stmt): Take stmt iterator and pass it on.
2645         (rewrite_update_enter_block): Pass stmt iterator.
2646
2647 2009-10-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2648
2649         * config/spu/spu.c (TARGET_BUILTIN_DECL): Define.
2650         (spu_builtin_decl): New function.
2651
2652 2009-10-12  Uros Bizjak  <ubizjak@gmail.com>
2653
2654         * config/i386/i386.md (SWIM): New mode iterator.
2655         (mov<mode>cc): Macroize expander from mov{qi,hi,si,di}cc patterns
2656         using SWIM mode iterator.
2657         (x86_mov<mode>cc_0_m1): Macroize insn from x86_mov{si,di}cc_0_m1
2658         patterns using SWI48 mode iterator.
2659         (*x86_mov<mode>cc_0_m1_se):  Macroize insn from
2660         *x86_mov{si,di}cc_0_m1_se patterns using SWI48 mode iterator.
2661         (*x86_mov<mode>cc_0_m1_neg): New insn pattern.
2662         (*mov<mode>cc_noc): Macroize insn from *mov{hi,si,di}cc_noc
2663         patterns using SWI248 mode iterator.
2664         * config/i386/i386.c (ix86_expand_int_movcc): Update the call to
2665         gen_x86_movdicc_0_m1_rex64 for renamed function
2666
2667 2009-10-11  Jose Ruiz  <ruiz@adacore.com>
2668             Eric Botcazou  <ebotcazou@adacore.com>
2669
2670         PR target/33743
2671         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Define.
2672         * config/sparc/sol2-unwind.h: New file.
2673
2674 2009-10-11  Olivier Hainque  <hainque@adacore.com>
2675             Eric Botcazou  <ebotcazou@adacore.com>
2676
2677         PR target/33743
2678         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Define.
2679         * config/i386/sol2-unwind.h: New file.
2680
2681 2009-10-11  H.J. Lu  <hongjiu.lu@intel.com>
2682
2683         PR target/41665
2684         * config/i386/i386.md (addsi_1_zext): Get the proper second
2685         operand for lea.
2686
2687 2009-10-11  Richard Sandiford  <rdsandiford@googlemail.com>
2688
2689         * simplify-rtx.c (simplify_replace_rtx): Use rtx_equal_p for
2690         all OLD_RTXes, not just REGs.  Use copy_rtx to create the
2691         replacement value.
2692
2693 2009-10-11  Richard Guenther  <rguenther@suse.de>
2694
2695         * gimple.c (iterative_hash_type_name): Do not handle special
2696         anonymous names.
2697
2698 2009-10-11  Uros Bizjak  <ubizjak@gmail.com>
2699
2700         * config/i386/i386.md (*setcc_di_1): New insn_and_split pattern.
2701         (*setcc_si_1_and): Ditto.
2702         (*setcc_si_1_movzbl): Ditto.
2703         (*setcc_<mode>_2): Ditto.
2704         (*setcc_qi): Rename from *setcc_1.
2705         (*setcc_qi_slp): Rename from *setcc_2.
2706
2707         (*zero_extendqihi2_movzbw_and splitter): Use ix86_expand_clear.
2708         (*zero_extendqisi2_movzbw_and splitter): Ditto.
2709
2710         * config/i386/i386.c (ix86_expand_clear): Remove reload_completed from
2711         "if" condition, there is already assert with reload_completed present.
2712
2713 2009-10-11  Gerald Pfeifer  <gerald@pfeifer.com>
2714
2715         * plugin.c (try_init_one_plugin): Improve constness of variable err.
2716
2717 2009-10-10  Gerald Pfeifer  <gerald@pfeifer.com>
2718
2719         * doc/install.texi (Final install): Refer to
2720         http://gcc.gnu.org/bugs/ for bug reporting.
2721
2722 2009-10-10  Peter Bergner  <bergner@vnet.ibm.com>
2723
2724         * configure.ac: Add test for dci instruction.
2725         * configure: Regenerate.
2726         * config.in: Likewise.
2727         * config.gcc: Handle --with-cpu=476 and --with-cpu=476fp.
2728         * doc/invoke.texi: Add cpu_type 476 and 476fp.
2729         (-mmulhw): Add 476 to description.
2730         (-mdlmzb): Likewise.
2731         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=476.
2732         * config/rs6000/rs6000.c (processor_costs): Add ppc476_cost.
2733         (processor_target_table): Add 476 and 476fp entries.
2734         (rs6000_override_options): Use ppc476_cost for PROCESSOR_PPC476.
2735         (rs6000_issue_rate): Add CPU_PPC476.
2736         * config/rs6000/rs6000.h (ASM_CPU_476_SPEC): Define.
2737         (ASM_CPU_SPEC): Pass %(asm_cpu_476) for -mcpu=476 and -mcpu=476fp.
2738         (processor_type): Add PROCESSOR_PPC476.
2739         (EXTRA_SPECS): Add asm_cpu_476 string.
2740         * config/rs6000/rs6000.md (define_attr "type"): Add isel attribute.
2741         (define_attr "cpu"): Add ppc476.
2742         Include 476.md.
2743         Update comments for 476.
2744         (isel_signed, isel_unsigned): Change to use "isel" type attribute.
2745         * config/rs6000/vxworks.h (CPP_SPEC): Handle 464 and 476.
2746         Update copyright year.
2747         * config/rs6000/476.md: New file.
2748         * config/rs6000/40x.md: Add description for "isel" attribute.
2749         Update copyright year.
2750         * config/rs6000/440.md: Likewise.
2751         * config/rs6000/603.md: Likewise.
2752         * config/rs6000/6xx.md: Likewise.
2753         * config/rs6000/7450.md: Likewise.
2754         * config/rs6000/7xx.md: Likewise.
2755         * config/rs6000/8540.md: Likewise.
2756         * config/rs6000/cell.md: Likewise.
2757         * config/rs6000/e300c2c3.md: Likewise.
2758         * config/rs6000/e500mc.md: Likewise.
2759         * config/rs6000/mpc.md: Likewise.
2760         * config/rs6000/power4.md: Likewise.
2761         * config/rs6000/power5.md: Likewise.
2762         * config/rs6000/power6.md: Likewise.
2763         * config/rs6000/power7.md: Likewise.
2764         * config/rs6000/rios1.md: Likewise.
2765         * config/rs6000/rios2.md: Likewise.
2766         * config/rs6000/rs64.md: Likewise.
2767
2768 2009-10-10  Richard Guenther  <rguenther@suse.de>
2769
2770         PR tree-optimization/41654
2771         * tree-ssa-ifcombine.c (ifcombine_ifandif): Properly canonicalize
2772         a cond expr before calling gimple_cond_set_condition_from_tree.
2773         (ifcombine_iforif): Likewise.
2774
2775 2009-10-09  Ian Lance Taylor  <iant@google.com>
2776
2777         * configure.ac: Use AC_SEARCH_LIBS to find dlopen.
2778         * configure: Rebuild.
2779
2780 2009-10-09  Neil Vachharajani <nvachhar@google.com>
2781
2782         * doc/cpp.texi (Other Directives): Do not list #ident and #sccs as
2783         deprecated.
2784
2785 2009-10-09  Richard Guenther  <rguenther@suse.de>
2786
2787         PR lto/41638
2788         * target-def.h (TARGET_BUILTIN_DECL): Define.
2789         (TARGET_INITIALIZER): Add TARGET_BUILTIN_DECL.
2790         * target.h (struct gcc_target): Add builtin_decl target hook.
2791         * doc/tm.texi (TARGET_BUILTIN_DECL): Document.
2792         * lto-streamer-in.c (lto_get_builtin_tree): Fix handling of
2793         target builtins.
2794         * lto-streamer-out.c (lto_output_tree_pointers): Use sorry,
2795         not gcc_unreachable.
2796         (lto_output_builtin_tree): Sorry if the target does not support
2797         streaming target builtins.
2798         * config/rs6000/rs6000.c (TARGET_BUILTIN_DECL): Define.
2799         (rs6000_builtin_decl): New function.
2800         * config/i386/i386.c (TARGET_BUILTIN_DECL): Define.
2801         (ix86_builtin_decl): New function.
2802
2803 2009-10-09  Jakub Jelinek  <jakub@redhat.com>
2804
2805         PR preprocessor/41445
2806         * c-ppoutput.c (do_line_change): New function.
2807         (cb_line_change): Use it.
2808         (scan_translation_unit): Call do_line_change if
2809         avoid_paste or PREV_WHITE and token location is on a different line
2810         than print.src_line.
2811
2812         PR debug/40521
2813         * dwarf2out.c (dwarf2out_init): Test whether
2814         HAVE_GAS_CFI_SECTIONS_DIRECTIVE is non-zero instead of checking
2815         it is defined.
2816
2817         PR rtl-optimization/41646
2818         * calls.c (expand_call): For BLKmode types returned in registers
2819         avoid likely spilled hard regs in copy_blkmode_from_reg generated
2820         insns.
2821
2822 2009-10-09  Richard Guenther  <rguenther@suse.de>
2823
2824         PR tree-optimization/41634
2825         * tree-ssa-dom.c (remove_local_expressions_from_table): Assert
2826         we remove the correct elements.
2827         (optimize_stmt): Make sure to update stmt operands before
2828         optimizing redundancies.
2829
2830 2009-10-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2831
2832         * config/s390/s390.md ("prefetch"): Remove stcmh for prefetching.
2833
2834 2009-10-09  Richard Guenther  <rguenther@suse.de>
2835
2836         PR driver/41637
2837         * lto-wrapper.c (ltrans_output_file, flto_out, args_name): New
2838         globals.
2839         (lto_wrapper_exit): New function.
2840         (fatal): Use it.
2841         (fatal_perror): Likewise.
2842         (fork_execute): Use global args_name, do not free it.
2843         (run_gcc): Use global ltrans_output_file, flto_out, do not free them.
2844         * lto-streamer.h: Remove duplicate prototypes.
2845
2846 2009-10-09  Richard Guenther  <rguenther@suse.de>
2847
2848         * cgraph.c (cgraph_create_edge): Check for NULL call_stmt
2849         before calling stmt_can_throw_external.
2850
2851 2009-10-09  Eric Botcazou  <ebotcazou@adacore.com>
2852
2853         PR tree-optimization/40071
2854         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Build a ref-all
2855         pointer if the original data reference doesn't conflict with the
2856         created vector data reference.  Fix long line.
2857
2858 2009-10-09  Uros Bizjak  <ubizjak@gmail.com>
2859
2860         * config/i386/i386.md (any_div): New code iterator.
2861         (u): Handle div and udiv.
2862         (sgnprefix): Ditto.
2863         (<u>divqi3): Macroize insn from {,u}divqi3  using any_div
2864         code iterator.
2865         (lfloor<MODEF:mode><SWI48:mode>2): Macroize insn from
2866         lfloor<mode>{si,di}2 patterns using SWI48 mode iterator.
2867         (lceil<MODEF:mode><SWI48:mode>2): Macroize insn from
2868         lceil<mode>{si,di}2 patterns using SWI48 mode iterator.
2869
2870 2009-10-08  Joseph Myers  <joseph@codesourcery.com>
2871
2872         * gcc.c (main): Remove trailing "." from diagnostics.
2873
2874 2009-10-08  Cary Coutant  <ccoutant@google.com>
2875
2876         Add support for debugging with ICF (Identical Code Folding).
2877         * calls.c (debug.h): New #include.
2878         (emit_call_1): Call virtual_call_token debug hook.
2879         * common.opt (-fenable-icf-debug): New option.
2880         * dwarf2out.c (dwarf2_debug_hooks): Add entries for new hooks (two
2881         locations in the source).
2882         (poc_label_num): New variable.
2883         (dcall_entry, vcall_entry): New typedefs.
2884         (dcall_table, vcall_table): New variables.
2885         (struct vcall_insn): New type.
2886         (vcall_insn_table): New variable.
2887         (DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION): New macros.
2888         (size_of_dcall_table): New function.
2889         (output_dcall_table): New function.
2890         (size_of_vcall_table): New function.
2891         (output_vcall_table): New function.
2892         (dwarf2out_direct_call): New function.
2893         (vcall_insn_table_hash): New function.
2894         (vcall_insn_table_eq): New function.
2895         (dwarf2out_virtual_call_token): New function.
2896         (dwarf2out_virtual_call): New function.
2897         (dwarf2out_init): Allocate new tables and sections.
2898         (prune_unused_types): Mark DIEs referenced from direct call table.
2899         (dwarf2out_finish): Output direct and virtual call tables.
2900         * final.c (final_scan_insn): Call direct_call and virtual_call
2901         debug hooks.
2902         * debug.h (struct gcc_debug_hooks): Add direct_call,
2903         virtual_call_token, virtual_call hooks.
2904         (debug_nothing_uid): New function.
2905         * debug.c (do_nothing_debug_hooks): Add dummy entries for new hooks.
2906         (debug_nothing_uid): New function.
2907         * dbxout.c (dbx_debug_hooks): Add dummy entries for new hooks.
2908         (xcoff_debug_hooks): Likewise.
2909         * sdbout.c (sdb_debug_hooks): Likewise.
2910         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
2911         * doc/invoke.texi (-fenable-icf-debug): New option.
2912
2913 2009-10-08  Alexandre Oliva  <aoliva@redhat.com>
2914
2915         PR debug/41353
2916         * regmove.c (regmove_backward_pass): Replace src with dst in the
2917         debug insn, and check for dst before rather than after.
2918
2919 2009-10-08  Janis Johnson <janis187@us.ibm.com>
2920
2921         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove.
2922         (TARGET_DELEGITIMIZE_ADDRESS): Likewise.
2923
2924 2009-10-08  Jan Hubicka  <jh@suse.cz>
2925
2926         PR middle-end/41626
2927         * cgraphbuild.c (record_reference): When parameter DATA is NULL,
2928         do not mark cgraph nodes as needed.
2929         (record_references_in_initializer): Add new only_vars parameter.
2930         * cgraph.h (record_references_in_initializer): New parameter.
2931         * varasm.c (assemble_variable): Update call.
2932         * varpool.c (varpool_analyze_pending_decls): Always look for
2933         referenced vars.
2934
2935 2009-10-08  Anatoly Sokolov  <aesok@post.ru>
2936
2937         * config/avr/avr.c (last_insn_address) Remove variable.
2938         (expand_prologue): Don't initialise last_insn_address variable.
2939         (final_prescan_insn): Don't output insn size.
2940         * config/avr/avr.opt (msize): Remove switch.
2941         * doc/invoke.texi (AVR Options): Remove documentation of -msize
2942         switch.
2943
2944 2009-10-08  Adam Nemet  <anemet@caviumnetworks.com>
2945
2946         * combine.c (label_tick_ebb_start): Fix comment.
2947         (combine_instructions): Set label_tick and label_tick_ebb_start before
2948         calling setup_incoming_promotions.  Start them from 1.  Increment
2949         label_tick instead of deriving it from the BB index.  Rather than
2950         comparing ticks use the block from the previous iteration to decide
2951         whether to start a new EBB.  Remove empty lines before function.
2952
2953 2009-10-08  Michael Matz  <matz@suse.de>
2954
2955         PR middle-end/41573
2956         * builtins.c (fold_builtin_isascii): Use fold_build2.
2957         (fold_builtin_isdigit): Ditto.
2958         * except.c (duplicate_eh_regions_1): Tolerate NULL labels.
2959         * tree-cfg.c (struct rus_data, remove_useless_stmts_warn_notreached,
2960         remove_useless_stmts_cond, remove_useless_stmts_tf,
2961         remove_useless_stmts_tc, remove_useless_stmts_bind,
2962         remove_useless_stmts_goto, remove_useless_stmts_label,
2963         remove_useless_stmts_1, remove_useless_stmts,
2964         pass_remove_useless_stmts): Remove.
2965         * tree-pass.h (pass_remove_useless_stmts): Don't declare.
2966         * passes.c (init_optimization_passes): Don't add
2967         pass_remove_useless_stmts.
2968         * tree-eh.c (lower_eh_constructs_2): Handle empty cleanups.
2969         * tree.c (free_lang_data_in_decl): Don't clear DECL_INITIAL of
2970         static constants.
2971         * lto-symtab.c (lto_symtab_register_decl): Accepts DECL_INITIAL
2972         for static constants.
2973         * lto-streamer-out.c (output_gimple_stmt): Handle GIMPLE_NOP.
2974         * lto-streamer-in.c (input_gimple_stmt): Handle GIMPLE_NOP.
2975
2976 2009-10-08  Richard Guenther  <rguenther@suse.de>
2977
2978         * gimple.c (free_gimple_type_tables): New function.
2979         * gimple.h (free_gimple_type_tables): Declare.
2980
2981 2009-10-07  Mark Heffernan  <meheff@google.com>
2982
2983         * ipa-prop.c (ipa_print_node_params) Only print
2984         names of named arguments.
2985
2986 2009-10-08  Rafael Avila de Espindola  <espindola@google.com>
2987
2988         * gcc.c (LINK_COMMAND_SPEC): Pass libc with -pass-through if it is
2989         being statically linked.
2990
2991 2009-10-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2992
2993         * collect2.c (add_lto_object): Only define if OBJECT_FORMAT_NONE.
2994
2995 2009-10-08  Jan Hubicka  <jh@suse.cz>
2996
2997         PR bootstrap/41620
2998         * ipa.c (cgraph_externally_visible_p,
2999         function_and_variable_visibility,
3000         whole_program_function_and_variable_visibility): Skip non-finalized
3001         nodes.
3002
3003 2009-10-08  Nick Clifton  <nickc@redhat.com>
3004
3005         * config/mn10300/mn10300.h (CONSTANT_ADDRESS_P): Do not allow
3006         CONST_DOUBLEs.
3007
3008 2009-10-08  Andreas Tobler  <a.tobler@schweiz.org>
3009
3010         PR bootstrap/37739
3011         * config.host: Use config/x-cflags-O1 for powerpc FreeBSD.
3012
3013 2009-10-07  Joseph Myers  <joseph@codesourcery.com>
3014
3015         PR c/41182
3016         * c-common.c (c_fully_fold_internal): Strip nops from the result
3017         of recursive calls to c_fully_fold_internal.
3018         (c_wrap_maybe_const): New.
3019         (c_save_expr): Use c_wrap_maybe_const.
3020         * c-common.h (c_wrap_maybe_const): Declare.
3021         * c-typeck.c (build_conditional_expr, c_finish_stmt_expr,
3022         build_binary_op): Use c_wrap_maybe_const.
3023
3024 2009-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3025
3026         * real.c: Fix comment to reflect actual exponent size.
3027
3028 2009-10-08  Ben Elliston  <bje@au.ibm.com>
3029
3030         * config/rs6000/a2.md: Add FSF comment header.
3031
3032 2009-10-07  Uros Bizjak  <ubizjak@gmail.com>
3033
3034         * config/i386/i386.md (any_extend): New code iterator.
3035         (u, s): New code attributes.
3036         (sgnprefix): Ditto.
3037         (DWIH): Rewrite as code iterator for SI and DI modes.
3038         (DWI): Rewrite as mode attribute.
3039         (dwi): New mode attribute.
3040         (di): Depend on SI mode and DI mode.
3041         (doubleint_general_operand): Remove mode attribute.
3042
3043         (*lea_1): Macroize insn from *lea_1_rex64 and *lea_1 patterns using
3044         DWIH mode iterator.
3045
3046         (*add<mode>3_doubleword): Use DWIH as the base mode iterator.
3047         (*sub<mode>3_doubleword): Ditto.
3048
3049         (mul<mode>3): Macroize expander from mul{hi,si,di}3 patterns
3050         using SWIM248 mode iterator.
3051         (*mul<mode>3_1): Macroize insn from mul{si,di}3_1 patterns
3052         using SWI48 mode iterator.
3053         (<u>mul<mode><dwi>3): Macroize expander from {,u}mul{sidi,diti}3
3054         patterns using DWIH mode iterator and any_extend code iterator.
3055         (<u>mulqihi3): Macroize expander from {,u}mulqihi3 patterns
3056         using any_extend code iterator.
3057         (*<u>mul<mode><dwi>3_1): Macroize insn from {,u}mul{sidi,diti}3_1
3058         patterns using DWIH mode iterator and any_extend code iterator.
3059         (*<u>mulqihi3_1): Macroize insn from {,u}mulqihi3_1 patterns
3060         using any_extend code iterator.
3061         (<s>mul<mode>3_highpart): Macroize expander from
3062         {s,u}mul{si,di}3_highpart patterns using DWIH mode iterator
3063         and any_extend code iterator.
3064         (*<s>muldi3_highpart_1): Macroize insn from
3065         *{s,u}muldi3_highpart_rex64 patterns using any_extend code iterator.
3066         (*<s>mulsi3_highpart_1): Macroize insn from *{s,u}mulsi3_highpart_1
3067         patterns using any_extend code iterator.
3068         (*<s>mulsi3_highpart_zext): Macroize insn from
3069         *{s,u}mulsi3_highpart_zext patterns using any_extend code iterator.
3070
3071 2009-10-07  Jakub Jelinek  <jakub@redhat.com>
3072
3073         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Don't add
3074         DW_AT_const_value if VAR_DIE already has DW_AT_abstract_origin
3075         refering to a DIE with DW_AT_const_value.
3076
3077 2009-10-07  Vladimir Makarov  <vmakarov@redhat.com>
3078
3079         PR middle-end/22072
3080         * ira-lives.c (check_and_make_def_conflict): Process all operands.
3081
3082 2009-10-06  Jan Hubicka  <jh@suse.cz>
3083
3084         * cgraph.c (cgraph_node_can_be_local): Handle externally visible nodes
3085         correctly.
3086
3087 2009-10-06  Uros Bizjak  <ubizjak@gmail.com>
3088
3089         * config/i386/i386.md (*lea_1_rex64, *lea_1, *lea_1_zext,
3090         *lea_2_rex64): Move before *add<mode>_1 pattern.
3091
3092 2009-10-07  Jan Hubicka  <jh@suse.cz>
3093
3094         * collect2.c (main): Add -fno-whole-program.
3095         * gcc.c (set_collect_gcc_options): Do not remove whole program here.
3096
3097 2009-10-07  Jan Hubicka  <jh@suse.cz>
3098
3099         * lto-symtab.c (lto_cgraph_replace_node): Assert that inline clones
3100         has no address taken.
3101         * cgraph.c (cgraph_mark_needed_node): Assert that inline clones are
3102         never needed.
3103         (cgraph_clone_node): Clear externally_visible flag for clones.
3104         * cgraph.h (cgraph_only_called_directly_p,
3105         cgraph_can_remove_if_no_direct_calls_p): New predicates.
3106         * tree-pass.h (pass_ipa_whole_program_visibility): Declare.
3107         * ipa-cp.c (ipcp_cloning_candidate_p): Use new predicate.
3108         (ipcp_initialize_node_lattices, ipcp_estimate_growth,
3109         ipcp_insert_stage): Likwise.
3110         * cgraphunit.c (cgraph_decide_is_function_needed): Do not compute
3111         externally_visible flag.
3112         (verify_cgraph_node): Verify that inline clones look right.
3113         (process_function_and_variable_attributes): Do not set
3114         externally_visible flags.
3115         (ipa_passes): Avoid executing small_ipa_passes at LTO stage; they've
3116         been already run.
3117         * lto-cgraph.c (lto_output_node): Assert that inline clones are not
3118         boundaries.
3119         * ipa-inline.c (cgraph_clone_inlined_nodes): Use new predicates;
3120         clear externally_visible when turning into inline clones
3121         (cgraph_mark_inline_edge): Use new predicates.
3122         (cgraph_estimate_growth): Likewise.
3123         (cgraph_decide_inlining): Likewise.
3124         * ipa.c (cgraph_postorder): Likewise.
3125         (cgraph_remove_unreachable_nodes): Likewise; sanity check
3126         that inline clones are not needed.
3127         (cgraph_externally_visible_p): New predicate.
3128         (function_and_variable_visibility): Add whole_program parameter;
3129         always set externally_visible flag; handle COMDAT function
3130         privatization.
3131         (local_function_and_variable_visibility): New function.
3132         (gate_whole_program_function_and_variable_visibility): New function.
3133         (whole_program_function_and_variable_visibility): New function.
3134         (pass_ipa_whole_program_visibility): New function.
3135         * passes.c  (init_optimization_passes): Add whole program visibility
3136         pass.
3137         (do_per_function_toporder, function_called_by_processed_nodes_p): Do
3138         not care about needed/reachable flags.
3139         * varpool.c: Include flags.h
3140         (decide_is_variable_needed): When doing LTO assume whole-program mode.
3141         (varpool_finalize_decl): When we are in LTO read-back, all variables
3142         are analyzed.
3143         (varpool_analyze_pending_decls): Skip analyzis of analyzed vars.
3144
3145 2009-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3146
3147         * config/s390/tpf.h (TARGET_DEFAULT): Remove MASK_HARD_FLOAT and
3148         add MASK_HARD_DFP.
3149
3150 2009-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3151
3152         * config.gcc: Don't include the makefile fragments intended for
3153         libgcc.
3154         * config/s390/fixdfdi.h: File removed.
3155         * config/s390/libgcc-glibc.ver: File removed.
3156         * config/s390/s390.h: Remove the fixdfdi.h hack.
3157         * config/s390/t-crtstuff: File moved to libgcc dir.
3158         * config/s390/t-linux: Likewise.
3159         * config/s390/t-tpf: libgcc specific parts removed.
3160         * config/s390/t-linux64: Likewise.
3161
3162 2009-10-06  Jerry Quinn  <jlquinn@optonline.net>
3163
3164         * Makefile.in (lto-wrapper): Use COMPILER and ALL_COMPILERFLAGS.
3165         (lto-compress.o): Likewise.
3166
3167 2009-10-07  Danny Smith  <dannysmith@users.sourceforge.net>
3168
3169         PR target/41512
3170         * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't propagate
3171         dllexport to class members here.
3172         (i386_pe_determine_dllimport_p): Only check static class data for
3173         definition.
3174         (i386_pe_encode_section_info): Don't recheck DECL_DLLIMPORT_P.
3175         * config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Only check
3176         functions for vague linkage.
3177         (i386_pe_type_dllexport_p): Fix formatting.
3178         (maybe_add_dllexport) New function.
3179         (i386_pe_adjust_class_at_definition): Use it to propagate dllexport
3180         to class members.
3181
3182 2009-10-07  Ben Elliston  <bje@au.ibm.com>
3183
3184         * config/rs6000/a2.md: Remove duplicated lines.
3185
3186 2009-10-07  Ben Elliston  <bje@au.ibm.com>
3187
3188         * config.gcc (powerpc*-*-*): Handle a2.
3189         * config/rs6000/rs6000.md (cpu): Add ppca2.  Include "a2.md".
3190         * config/rs6000/a2.md: New file.
3191         * config/rs6000/rs6000.opt (mno-update): New.
3192         (mupdate): Return to using a mask, not a var.
3193         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for a2.
3194         (enum processor_type): Add PROCESSOR_PPCA2.
3195         * config/rs6000/rs6000.c (ppca2_cost): New costs.
3196         (rs6000_override_options): Add "a2" to processor_target_table.
3197         Update rs6000_always_hint logic.  Correctly set rs6000_cost for a2.
3198         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=a2.
3199
3200 2009-10-06  Uros Bizjak  <ubizjak@gmail.com>
3201
3202         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
3203         Use explicit gen_truncxfsf2 and gen_truncxfdf2 references to avoid
3204         reference to nonexistent gen_truncxfxf2 function.
3205
3206 2009-10-06  Uros Bizjak  <ubizjak@gmail.com>
3207
3208         * config/i386/i386.md (SWI48, SDWIM, DWI): New mode iterators.
3209         (DWIH, g, di, doubleint_general_operand): New mode attributes.
3210         (general_operand): Handle TI mode.
3211         (add<mode>3): Macroize expander from add{qi,hi,si,di,ti}3 patterns
3212         using SDWIM mode iterator.
3213         (*add<mode>3_doubleword): New insn_and_split pattern.  Macroize
3214         pattern from *add{di,ti}3_1 patterns and corresponding splitters
3215         using DWI mode iterator.
3216         (add<mode>3_carry): Macroize insn from add{qi,hi,si,di}3_carry
3217         patterns using SWI mode iterator.
3218         (*add<mode>3_cc): Macroize insn from add{si,di}3_cc patterns
3219         using SWI48 mode iterator.
3220         (*add<mode>_1): Ditto from add{si,di}_1 patterns.
3221         (*add<mode>_2): Ditto from add{si,di}_2 patterns.
3222         (*add<mode>_3): Ditto from add{si,di}_3 patterns.
3223         (*add<mode>_5): Ditto from add{si,di}_5 patterns.
3224         (sub<mode>3): Macroize expander from sub{qi,hi,si,di,ti}3 patterns
3225         using SDWIM mode iterator.
3226         (*sub<mode>3_doubleword): New insn_and_split pattern.  Macroize
3227         pattern from *sub{di,ti}3_1 patterns and corresponding splitters
3228         using DWI mode iterator.
3229         (sub<mode>3_carry): Macroize insn from sub{qi,hi,si,di}3_carry
3230         patterns using SWI mode iterator.
3231         (*sub<mode>_1): Ditto from from sub{qi,hi,si,di}_1 patterns.
3232         (*sub<mode>_2): Ditto from sub{qi,hi,si,di}_2 patterns.
3233         (*sub<mode>_3): Ditto from sub{qi,hi,si,di}_3 patterns.
3234         (<plusminus_insn>xf3): Macroize expander from addxf3 and subxf3
3235         patterns using plusminus code iterator.
3236         (<plusminus_insn><mode>3): Macroize expander from add<mode>3 and
3237         sub<mode>3 patterns using plusminus code iterator.
3238         * config/i386/i386.c (override_options): Update the call to
3239         gen_subdi_carry_rex64 for renamed function.
3240         (ix86_expand_int_addcc): Update calls to gen_subdi3_carry_rex64
3241         and gen_adddi3_carry_rex64 for renamed functions.  Use indirect
3242         calls to instruction expanders.
3243
3244 2009-10-06  Martin Jambor  <mjambor@suse.cz>
3245
3246         PR bootstrap/41395
3247         * opts.c (decode_options): Run IPA-SRA at -O2.
3248
3249 2009-10-06  Richard Guenther  <rguenther@suse.de>
3250
3251         * lto-symtab.c (lto_symtab_entry_hash): Hash strings, not pointers.
3252
3253 2009-10-06  Tobias Burnus  <burnus@net-b.de>
3254
3255         PR lto/41591
3256         * doc/invoke.texi (-flto,-fwhole-program): Make clear that the
3257         -flto and -fwhole-program flags can be combined.
3258
3259 2009-10-06  Ryan Mansfield  <rmansfield@qnx.com>
3260
3261         PR driver/41217
3262         * gcc.c (process_command): Check that -o argument was specified.
3263
3264 2009-10-06  Jerry Quinn  <jlquinn@optonline.net>
3265
3266         * gimple.c (gimple_type_hash): Use CONST_CAST_TREE to fix compilation.
3267
3268 2009-10-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3269
3270         * c.opt (Wjump-misses-init): Fix typo to enable for ObjC.
3271         * doc/invoke.texi (Warning Options): Annotate allowed languages
3272         for -Wunsuffixed-float-constants.
3273
3274 2009-10-05  Jakub Jelinek  <jakub@redhat.com>
3275
3276         * dwarf2out.c (modified_type_die): Don't add DW_AT_name to
3277         DW_TAG_{const,volatile}_type if its DW_AT_type already has the
3278         same name and isn't the main variant.
3279
3280         PR debug/41558
3281         * dwarf2out.c (loc_by_reference): Removed.
3282         (dw_loc_list_1): New function.
3283         (dw_loc_list): Remove toplev argument, add want_address argument.
3284         Don't look at decl_by_reference_p at all.  Use dw_loc_list_1.
3285         (loc_list_from_tree) <case VAR_DECL>: Pass want_address rather than
3286         want_address == 2 to dw_loc_list.  For successful dw_loc_list
3287         set have_address to 1 only if want_address is not 0.
3288
3289 2009-10-05  Richard Sandiford  <rdsandiford@googlemail.com>
3290
3291         * config/mips/mips-protos.h (mips_trampoline_code_size): Declare.
3292         * config/mips/mips.h (TRAMPOLINE_SIZE): Redefine as the size of
3293         a code block followed by two pointers.
3294         (TRAMPOLINE_ALIGNMENT): Define to 64 for 32-bit targets too.
3295         * config/mips/mips.c (MIPS_LOAD_PTR): New macro.
3296         (MIPS_MOVE): Likewise.
3297         (MIPS_LUI): Likewise.
3298         (MIPS_JR): Likewise.
3299         (MIPS_BAL): Likewise.
3300         (MIPS_NOP): Likewise.
3301         (mips_asm_trampoline_template): Delete.
3302         (mips_trampoline_code_size): New function.
3303         (mips_trampoline_init): Add shorter sequences for all cases
3304         except Pmode == DImoe && !TARGET_USE_PIC_FN_ADDR_REG.
3305         Calculate the opcodes directly, rather than copying from a template.
3306         Only flush the code part of the trampoline.
3307         (TARGET_ASM_TRAMPOLINE_TEMPLATE): Delete.
3308
3309 2009-10-05  Richard Sandiford  <rdsandiford@googlemail.com>
3310
3311         * config/mips/mips.h (DWARF_FRAME_RETURN_COLUMN): Replace
3312         GP_REG_FIRST + 31 with RETURN_ADDR_REGNUM.
3313         (INCOMING_RETURN_ADDR_RTX): Likewise.
3314         (FUNCTION_PROFILER): Likewise.  Replace GP_REG_FIRST + 1
3315         with AT_REGNUM.
3316         * config/mips/sdemtk.h (FUNCTION_PROFILER): Replace GP_REG_FIRST + 31
3317         with RETURN_ADDR_REGNUM.
3318         (MIPS_SAVE_REG_FOR_PROFILING_P): Likewise.
3319         * config/mips/mips.c (mips16_build_call_stub): Replace
3320         GP_REG_FIRST + 31 with RETURN_ADDR_REGNUM, GP_REG_FIRST + 1
3321         with AT_REGNUM and 31 with RETURN_ADDR_REGNUM.
3322         (mips_print_operand_punctuation): Likewise.
3323         (mips_frame_set): Likewise.
3324         (mips16e_output_save_restore): Likewise.
3325         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
3326         (mips_save_reg_p): Likewise.
3327         (mips_return_addr): Likewise.
3328         (mips_set_return_address): Likewise.
3329         (mips_direct_save_slot_move_p): Likewise.
3330         (mips_output_function_prologue): Likewise.
3331         (mips_restore_reg): Likewise.
3332         (mips_expand_epilogue): Likewise.
3333         (mips_epilogue_uses): Likewise.
3334         * config/mips/mips.md (RETURN_ADD_REGNUM): Define.
3335         (*mov<mode>_ra): Use it instead of a hard-coded 31.
3336         (clear_hazard_<mode>): Likewise.
3337         (call_internal): Likewise.
3338         (call_internal_direct): Likewise.
3339         (call_direct_split): Likewise.
3340         (call_value_internal): Likewise.
3341         (call_value_split): Likewise.
3342         (call_value_internal_direct): Likewise.
3343         (call_value_direct_split): Likewise.
3344         (call_value_multiple_internal): Likewise.
3345         (call_value_multiple_split): Likewise.
3346
3347 2009-10-05  Eric Botcazou  <ebotcazou@adacore.com>
3348             Jakub Jelinek  <jakub@redhat.com>
3349
3350         PR rtl-optimization/41511
3351         * combine.c (record_value_for_reg): Pass explicit values as argument
3352         to get_last_value_validate.
3353         (get_last_value_validate): Document INSN parameter.
3354         For non-readonly MEMs, assume they might have been modified if INSN
3355         was in another basic block.
3356         (get_last_value): Minor reformatting.
3357
3358 2009-10-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3359
3360         PR tree-opt/40992
3361         * final.c (asm_str_count): Split out from asm_insn_count.
3362         * rtl.h (asm_str_count): New prototype.
3363         * tree-inline (estimate_num_insns) <case GIMPLE_ASM>: Call
3364         asm_str_count.
3365
3366 2009-10-05  Sriraman Tallam  <tmsriram@google.com>
3367
3368         * doc/plugins.texi: Change plugin_pass to register_pass_info.
3369
3370 2009-10-05  Basile Starynkevitch  <basile@starynkevitch.net>
3371             Rafael Espindola  <espindola@google.com>
3372
3373         * gengtype.c (write_types): Moved call to write_func_for_structure
3374         into seperate loops.
3375
3376 2009-10-05  Richard Guenther  <rguenther@suse.de>
3377
3378         PR lto/41281
3379         * lto-cgraph.c (output_cgraph): Output toplevel asms.
3380         (input_cgraph_1): Input toplevel asms.
3381
3382 2009-10-05  Richard Guenther  <rguenther@suse.de>
3383
3384         PR lto/40902
3385         * lto-symtab.c (lto_compatible_attributes_p): Remove.
3386         (external_aggregate_decl_p): Likewise.
3387         (lto_symtab_compatible): Re-structure.  Remove dead code.
3388         For variables ignore toplevel qualifiers when comparing types.
3389         Issue warnings, not errors for mismatched user-alignment.
3390
3391 2009-10-05  Richard Guenther  <rguenther@suse.de>
3392
3393         PR lto/41552
3394         PR lto/41487
3395         * lto-symtab.c (struct lto_symtab_base_def): Remove.
3396         (struct lto_symtab_identifier_def): Likewise.
3397         (struct lto_symtab_decl_def): Likewise.
3398         (struct lto_symtab_entry_def): New.
3399         (lto_symtab_identifier_t): Rename to ...
3400         (lto_symtab_entry_t): ... this.
3401         (lto_symtab_decls): Remove.
3402         (lto_symtab_base_hash): Rename to ...
3403         (lto_symtab_entry_hash): ... this.
3404         (lto_symtab_base_eq): Rename to ...
3405         (lto_symtab_entry_eq): ... this.
3406         (lto_symtab_base_marked_p): Rename to ...
3407         (lto_symtab_entry_marked_p): ... this.
3408         (lto_symtab_identifier_marked_p): Remove.
3409         (lto_symtab_decl_marked_p): Likewise.
3410         (lto_symtab_maybe_init_hash_tables): Rename to ...
3411         (lto_symtab_maybe_init_hash_table): ... this.
3412         (lto_symtab_set_resolution_and_file_data): Remove.
3413         (lto_symtab_register_decl): New function.
3414         (lto_symtab_get_identifier): Remove.
3415         (lto_symtab_get): New function.
3416         (lto_symtab_get_resolution): Adjust.
3417         (lto_symtab_get_identifier_decl): Remove.
3418         (lto_symtab_set_identifier_decl): Likewise.
3419         (lto_symtab_merge_decl): Rename to ...
3420         (lto_symtab_merge): ... this.  Rewrite.
3421         (lto_symtab_merge_var): Remove.
3422         (lto_symtab_merge_fn): Likewise.
3423         (lto_symtab_prevailing_decl): Adjust.
3424         (lto_cgraph_replace_node): New function.
3425         (lto_symtab_merge_decls_2): Likewise.
3426         (lto_symtab_merge_decls_1): Likewise.
3427         (lto_symtab_fixup_var_decls): Likewise.
3428         (lto_symtab_resolve_symbols): Likewise.
3429         (lto_symtab_merge_decls): Likewise.
3430         (lto_symtab_pr