OSDN Git Service

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