OSDN Git Service

2007-09-14 Jan Hubicka <jh@suse.cz>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-09-14  Jan Hubicka  <jh@suse.cz>
2
3         * config/i386/i386.md (*floatdi<mode>2_i387): Guard against
4         TARGET_64BIT.
5
6 2007-09-14  Uros Bizjak  <ubizjak@gmail.com>
7
8         PR target/33438
9         * config/i386/i386.md (fmodxf3): Copy operands[2] to temporary register
10         when operands[2] equals operands[1].
11         (remainderxf3): Ditto.
12
13 2007-09-14  Sandra Loosemore  <sandra@codesourcery.com>
14             Nigel Stephens  <nigel@mips.com>
15
16         * doc/tm.texi (LIBGCC2_UNWIND_ATTRIBUTE): Document.
17         * unwind-generic.h (LIBGCC2_UNWIND_ATTRIBUTE): Define.
18         (_Unwind_RaiseException): Add LIBGCC2_UNWIND_ATTRIBUTE to
19         declaration.
20         (_Unwind_ForcedUnwind): Likewise.
21         (_Unwind_Resume): Likewise.
22         (_Unwind_Resume_or_Rethrow): Likewise.
23         (_Unwind_Backtrace): Likewise.
24         (_Unwind_SjLj_RaiseException): Likewise.
25         (_Unwind_SjLj_ForcedUnwind): Likewise.
26         (_Unwind_SjLj_Resume): Likewise.
27         (_Unwind_SjLj_Resume_or_Rethrow): Likewise.
28         * unwind.inc (_Unwind_RaiseException): Add LIBGCC2_UNWIND_ATTRIBUTE
29         to definition.
30         (_Unwind_ForcedUnwind): Likewise.
31         (_Unwind_Resume): Likewise.
32         (_Unwind_Resume_or_Rethrow): Likewise.
33         (_Unwind_Backtrace): Likewise.
34         * unwind-compat.c (_Unwind_Backtrace): Likewise.
35         (_Unwind_ForcedUnwind): Likewise.
36         (_Unwind_RaiseException): Likewise.
37         (_Unwind_Resume): Likewise.
38         (_Unwind_Resume_or_Rethrow): Likewise.
39
40         * config/mips/mips.h (LIBGCC2_UNWIND_ATTRIBUTE): Define to force
41         nomips16 mode when IN_LIBGCC2 with hard float.
42
43 2007-09-14  Richard Sandiford  <rsandifo@nildram.co.uk>
44
45         * config/mips/sdemtk.opt: Update to GPLv3.
46         * config/mips/sdemtk.h: Likewise.
47
48 2007-09-14  Nigel Stephens  <nigel@mips.com>
49
50         * config.gcc (mips*-*-linux*): Recognise mipsisa32r2 and set
51         MIPS_ISA_DEFAULT appropriately.  Don't make soft-float the default
52         for mipsisa32-*-linux*.
53
54 2007-09-14  Nigel Stephens  <nigel@mips.com>
55             David Ung  <davidu@mips.com>
56             Thiemo Seufer  <ths@mips.com>
57             Richard Sandiford  <richard@codesourcery.com>
58
59         * config.gcc (mips*-sde-elf*): Add support for the SDE C libraries.
60         * configure.ac: Add a mipssde threading type.
61         * configure: Regenerate.
62         * config/mips/sdemtk.h: New file.
63         * config/mips/t-sdemtk: Likewise.
64         * config/mips/sdemtk.opt: Likewise.
65         * gthr-mipssde.h: Likewise.
66         * config/mips/sde.h (FUNCTION_PROFILER): Move to config/mips/sdemtk.h.
67         * config/mips/mips.h (MIPS_SAVE_REG_FOR_PROFILING_P): New macro.
68         (MIPS_ICACHE_SYNC): New macro, split from ...
69         * config/mips/mips.md (clear_cache): ...here.
70         * config/mips/mips.c (mips_save_reg_p): Check
71         MIPS_SAVE_REG_FOR_PROFILING_P on profiled functions.
72         (build_mips16_function_stub): Use targetm.strip_name_encoding.
73         (build_mips16_call_stub): Likewise.
74
75 2007-09-14  Richard Sandiford  <richard@codesourcery.com>
76
77         * Makefile.in (stmp-int-hdrs): Depend on fixinc_list.
78
79 2007-09-14  Jakub Jelinek  <jakub@redhat.com>
80
81         PR target/32337
82         * config/ia64/ia64.c (find_gr_spill): Don't decrement
83         current_frame_info.n_local_regs.  Don't return emitted local
84         regs.
85         (ia64_compute_frame_size): Improve unwind hack to put
86         RP, PFS, FP in that order by allowing some of the registers
87         been already emitted, as long as they are emitted to the
88         desired register.
89
90 2007-09-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
91
92         * config/spu/vmx2spu.h (vec_extract, vec_insert, vec_lvlx,
93         vec_lvlxl, vec_lvrx, vec_lvrxl, vec_promote, vec_splats,
94         vec_stvlx, vec_stvlxl, vec_stvrx, vec_stvrxl): New intrinsics.
95
96 2007-09-13  Eric Christopher  <echristo@apple.com>
97             Kenneth Zadeck <zadeck@naturalbridge.com>
98
99         * dse.c (find_shift_sequence): New function.
100         (replace_read): Add case to remove read if it requires shift.
101         * config/i386/i386.c (ix86_expand_prologue): Fixed typo in comment.
102         
103 2007-09-13  Tom Tromey  <tromey@redhat.com>
104
105         * c-common.c (fname_as_string): Update.
106         * c-parser.c (c_parser) <lex_untranslated_string>: New field.
107         (c_lex_one_token): Update.  Add 'parser' argument.
108         (c_parser_simple_asm_expr): Update.
109         (c_parser_attributes): Update.
110         (c_parser_asm_statement): Update.
111         (c_parser_asm_operands): Update.
112         (c_parser_peek_token): Update.
113         (c_parser_peek_2nd_token): Update.
114         * c-lex.c (c_lex_string_translate): Remove.
115         (c_lex_return_raw_strings): Likewise.
116         (c_lex_with_flags): Added 'lex_flags' argument.
117         (lex_string): Added 'translate' argument.
118         * c-pragma.h (c_lex_with_flags): Update.
119         (c_lex_string_translate, c_lex_return_raw_strings): Remove.
120         (C_LEX_STRING_NO_TRANSLATE): New define.
121         (C_LEX_RAW_STRINGS): Likewise.
122
123 2007-09-13  Bernd Schmidt  <bernd.schmidt@analog.com>
124
125         From Jie Zhang:
126         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_ONES,
127         BFIN_BUILTIN_CPLX_MUL_16_S40, BFIN_BUILTIN_CPLX_MAC_16_S40,
128         BFIN_BUILTIN_CPLX_MSU_16_S40, and BFIN_BUILTIN_CPLX_SQU.
129         (bfin_init_builtins): Initialize __builtin_bfin_ones,
130         __builtin_bfin_min_fr1x16, __builtin_bfin_max_fr1x16,
131         __builtin_bfin_min_fr1x32, __builtin_bfin_max_fr1x32,
132         __builtin_bfin_cmplx_add, __builtin_bfin_cmplx_sub,
133         __builtin_bfin_cmplx_mul_s40, __builtin_bfin_cmplx_mac_s40,
134         __builtin_bfin_cmplx_msu_s40 and __builtin_bfin_csqu_fr16.
135         (bdesc_1arg): Add __builtin_bfin_ones.
136         (bfin_expand_builtin): Expand __builtin_bfin_cmplx_mul_s40,
137         __builtin_bfin_cmplx_mac_s40, __builtin_bfin_cmplx_msu_s40,
138         and __builtin_bfin_csqu_fr16.
139         * config/bfin/bfin.md (UNSPEC_ONES): New constant.
140         (ones): New define_insn.
141         (ssaddhi3_parts): New define_insn.
142         (sssubhi3_parts): New define_insn.
143         (flag_mulhi_parts): New define_insn.
144
145 2007-09-13  Seongbae Park <seongbae.park@gmail.com>
146
147         * common.opt (femit-class-debug-always): Turn off by default.
148
149 2007-09-13  Bernd Schmidt  <bernd.schmidt@analog.com>
150
151         * config/bfin/bfin.md (reload_outpdi, reload_inpdi): New patterns.
152         * config/bfin/bfin.c (bfin_secondary_reload): Make sure we use them.
153
154 2007-09-13  James E. Wilson  <wilson@specifix.com>
155
156         PR tree-optimization/33389
157         * tree-ssa-operands.c (append_vuse): If ann->in_vdef_list true,
158         then set build_loads before returning.
159
160 2007-09-13  Sandra Loosemore  <sandra@codesourcery.com>
161             David Ung  <davidu@mips.com>
162
163         * config/mips/mips.h (ASM_OUTPUT_REG_PUSH): Replace {d}subu with
164         {d}addiu and a negative immediate such that it works with MIPS16
165         instructions.
166         
167 2007-09-13  H.J. Lu  <hongjiu.lu@intel.com>
168
169         PR bootstrap/33418
170         * configure.ac (ld_vers): Support Linux linker.
171         * configure: Regenerated.
172
173 2007-09-13  Richard Sandiford  <richard@codesourcery.com>
174             Sandra Loosemore <sandra@codesourcery.com>
175
176         * config/mips/mips.h (SYMBOL_FLAG_MIPS16_FUNC): Delete.
177         (SYMBOL_REF_MIPS16_FUNC_P): Delete.
178         * config/mips/mips.c (mips_attribute_table): Turn mips16 and
179         nomips16 into decl attributes.
180         (TARGET_INSERT_ATTRIBUTES): Override.
181         (TARGET_MERGE_DECL_ATTRIBUTES): Likewise.
182         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Always return true.
183         (mips_mips16_type_p, mips_nomips16_type_p): Delete in favor of...
184         (mips_mips16_decl_p, mips_nomips16_decl_p): ...these new functions.
185         (mips_comp_type_attributes): Remove mips16 and nomips16 handling.
186         (mips_use_mips16_mode_p): Reimplement as a function that takes
187         a decl and considers only decl attributes.  If the decl is nested
188         function, use its parent attributes.
189         (mips_function_ok_for_sibcall): Use mips_use_mips16_mode_p
190         instead of SYMBOL_REF_MIPS16_FUNC_P.
191         (mips_set_mips16_mode): Move call to sorry here from old
192         mips_use_mips16_mode_p.
193         (mflip_mips16_entry): New structure.
194         (mflip_mips16_htab): New variable.
195         (mflip_mips16_htab_hash, mflip_mips16_htab_eq): New functions.
196         (mflip_mips16_use_mips16_p, mips_insert_attributes): Likewise.
197         (mips_merge_decl_attributes): New function.
198         (mips_set_current_function): Reinstate call to mips_set_mips16_mode.
199         Use mips_use_mips16_mode_p.
200         (mips_output_mi_thunk): Use mips_use_mips16_mode_p instead of
201         SYMBOL_REF_MIPS16_FUNC_P.
202         (mips_encode_section_info): Don't set SYMBOL_FLAG_MIPS16_FUNC.
203
204 2007-09-13  Richard Sandiford  <richard@codesourcery.com>
205
206         * c-parser.c (c_parser_struct_declaration): Check for a null return.
207
208 2007-09-13  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
209
210         PR driver/33309
211         * gcc.c (xputenv): Make argument const, and use CONST_CAST.
212
213 2007-09-12  Michael Meissner  <michael.meissner@amd.com>
214             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
215             Tony Linthicum  <tony.linthicum@amd.com>
216
217         * tree.h (function_args_iterator): New type to iterate over
218         function arguments.
219         (FOREACH_FUNCTION_ARGS_PTR): Iterator macros for iterating over
220         function arguments providing a pointer to the argument.
221         (FOREACH_FUNCTION_ARGS): Iterator macros for iterating over
222         function arguments providing the argument.
223         (function_args_iter_init): Inline function to initialize
224         function_args_iterator.
225         (function_args_iter_cond_ptr): Inline function to return the next
226         pointer to hold the argument.
227         (function_args_iter_cond): Inline function to return the next
228         argument.
229         (function_args_iter_cond_next): Advance the function args
230         iterator.
231         (stdarg_p): New function, return true if variable argument
232         function.
233         (prototype_p): New function, return true if function is
234         prototyped.
235         (function_args_count): New function, count the number of arguments
236         of a function.
237
238         * tree.c (stdarg_p): New function, return true if variable
239         argument function.
240         (prototype_p): New function, return true if function is
241         prototyped.
242
243         * config/i386/i386.h (TARGET_SSE5): New macro for SSE5.
244         (TARGET_ROUND): New macro for the round/ptest instructions which
245         are shared between SSE4.1 and SSE5.
246         (OPTION_MASK_ISA_ROUND): Ditto.
247         (OPTION_ISA_ROUND): Ditto.
248         (TARGET_FUSED_MADD): New macro for -mfused-madd swtich.
249         (TARGET_CPU_CPP_BUILTINS): Add SSE5 support.
250
251         * config/i386/i386.opt (-msse5): New switch for SSE5 support.
252         (-mfused-madd): New switch to give users control over whether the
253         compiler optimizes to use the multiply/add SSE5 instructions.
254
255         * config/i386/i386.c (m_AMD_MULTIPLE): Rename from
256         m_ATHLON_K8_AMDFAM10, and change all uses.
257         (enum pta_flags): Add PTA_SSE5.
258         (ix86_handle_option): Turn off 3dnow if -msse5.
259         (override_options): Add SSE5 support.
260         (print_operand): %Y prints comparison codes for SSE5 com/pcom
261         instructions.
262         (ix86_expand_sse_movcc): Add SSE5 support.
263         (ix86_expand_sse5_unpack): New function to use pperm to unpack a
264         vector type to the next largest size.
265         (ix86_expand_sse5_pack): New function to use pperm to pack a
266         vector type to the next smallest size.
267         (IX86_BUILTIN_FMADDSS): New for SSE5 intrinsic.
268         (IX86_BUILTIN_FMADDSD): Ditto.
269         (IX86_BUILTIN_FMADDPS): Ditto.
270         (IX86_BUILTIN_FMADDPD): Ditto.
271         (IX86_BUILTIN_FMSUBSS): Ditto.
272         (IX86_BUILTIN_FMSUBSD): Ditto.
273         (IX86_BUILTIN_FMSUBPS): Ditto.
274         (IX86_BUILTIN_FMSUBPD): Ditto.
275         (IX86_BUILTIN_FNMADDSS): Ditto.
276         (IX86_BUILTIN_FNMADDSD): Ditto.
277         (IX86_BUILTIN_FNMADDPS): Ditto.
278         (IX86_BUILTIN_FNMADDPD): Ditto.
279         (IX86_BUILTIN_FNMSUBSS): Ditto.
280         (IX86_BUILTIN_FNMSUBSD): Ditto.
281         (IX86_BUILTIN_FNMSUBPS): Ditto.
282         (IX86_BUILTIN_FNMSUBPD): Ditto.
283         (IX86_BUILTIN_PCMOV_V2DI): Ditto.
284         (IX86_BUILTIN_PCMOV_V4SI): Ditto.
285         (IX86_BUILTIN_PCMOV_V8HI): Ditto.
286         (IX86_BUILTIN_PCMOV_V16QI): Ditto.
287         (IX86_BUILTIN_PCMOV_V4SF): Ditto.
288         (IX86_BUILTIN_PCMOV_V2DF): Ditto.
289         (IX86_BUILTIN_PPERM): Ditto.
290         (IX86_BUILTIN_PERMPS): Ditto.
291         (IX86_BUILTIN_PERMPD): Ditto.
292         (IX86_BUILTIN_PMACSSWW): Ditto.
293         (IX86_BUILTIN_PMACSWW): Ditto.
294         (IX86_BUILTIN_PMACSSWD): Ditto.
295         (IX86_BUILTIN_PMACSWD): Ditto.
296         (IX86_BUILTIN_PMACSSDD): Ditto.
297         (IX86_BUILTIN_PMACSDD): Ditto.
298         (IX86_BUILTIN_PMACSSDQL): Ditto.
299         (IX86_BUILTIN_PMACSSDQH): Ditto.
300         (IX86_BUILTIN_PMACSDQL): Ditto.
301         (IX86_BUILTIN_PMACSDQH): Ditto.
302         (IX86_BUILTIN_PMADCSSWD): Ditto.
303         (IX86_BUILTIN_PMADCSWD): Ditto.
304         (IX86_BUILTIN_PHADDBW): Ditto.
305         (IX86_BUILTIN_PHADDBD): Ditto.
306         (IX86_BUILTIN_PHADDBQ): Ditto.
307         (IX86_BUILTIN_PHADDWD): Ditto.
308         (IX86_BUILTIN_PHADDWQ): Ditto.
309         (IX86_BUILTIN_PHADDDQ): Ditto.
310         (IX86_BUILTIN_PHADDUBW): Ditto.
311         (IX86_BUILTIN_PHADDUBD): Ditto.
312         (IX86_BUILTIN_PHADDUBQ): Ditto.
313         (IX86_BUILTIN_PHADDUWD): Ditto.
314         (IX86_BUILTIN_PHADDUWQ): Ditto.
315         (IX86_BUILTIN_PHADDUDQ): Ditto.
316         (IX86_BUILTIN_PHSUBBW): Ditto.
317         (IX86_BUILTIN_PHSUBWD): Ditto.
318         (IX86_BUILTIN_PHSUBDQ): Ditto.
319         (IX86_BUILTIN_PROTB): Ditto.
320         (IX86_BUILTIN_PROTW): Ditto.
321         (IX86_BUILTIN_PROTD): Ditto.
322         (IX86_BUILTIN_PROTQ): Ditto.
323         (IX86_BUILTIN_PROTB_IMM): Ditto.
324         (IX86_BUILTIN_PROTW_IMM): Ditto.
325         (IX86_BUILTIN_PROTD_IMM): Ditto.
326         (IX86_BUILTIN_PROTQ_IMM): Ditto.
327         (IX86_BUILTIN_PSHLB): Ditto.
328         (IX86_BUILTIN_PSHLW): Ditto.
329         (IX86_BUILTIN_PSHLD): Ditto.
330         (IX86_BUILTIN_PSHLQ): Ditto.
331         (IX86_BUILTIN_PSHAB): Ditto.
332         (IX86_BUILTIN_PSHAW): Ditto.
333         (IX86_BUILTIN_PSHAD): Ditto.
334         (IX86_BUILTIN_PSHAQ): Ditto.
335         (IX86_BUILTIN_FRCZSS): Ditto.
336         (IX86_BUILTIN_FRCZSD): Ditto.
337         (IX86_BUILTIN_FRCZPS): Ditto.
338         (IX86_BUILTIN_FRCZPD): Ditto.
339         (IX86_BUILTIN_CVTPH2PS): Ditto.
340         (IX86_BUILTIN_CVTPS2PH): Ditto.
341         (IX86_BUILTIN_COMEQSS): Ditto.
342         (IX86_BUILTIN_COMNESS): Ditto.
343         (IX86_BUILTIN_COMLTSS): Ditto.
344         (IX86_BUILTIN_COMLESS): Ditto.
345         (IX86_BUILTIN_COMGTSS): Ditto.
346         (IX86_BUILTIN_COMGESS): Ditto.
347         (IX86_BUILTIN_COMUEQSS): Ditto.
348         (IX86_BUILTIN_COMUNESS): Ditto.
349         (IX86_BUILTIN_COMULTSS): Ditto.
350         (IX86_BUILTIN_COMULESS): Ditto.
351         (IX86_BUILTIN_COMUGTSS): Ditto.
352         (IX86_BUILTIN_COMUGESS): Ditto.
353         (IX86_BUILTIN_COMORDSS): Ditto.
354         (IX86_BUILTIN_COMUNORDSS): Ditto.
355         (IX86_BUILTIN_COMFALSESS): Ditto.
356         (IX86_BUILTIN_COMTRUESS): Ditto.
357         (IX86_BUILTIN_COMEQSD): Ditto.
358         (IX86_BUILTIN_COMNESD): Ditto.
359         (IX86_BUILTIN_COMLTSD): Ditto.
360         (IX86_BUILTIN_COMLESD): Ditto.
361         (IX86_BUILTIN_COMGTSD): Ditto.
362         (IX86_BUILTIN_COMGESD): Ditto.
363         (IX86_BUILTIN_COMUEQSD): Ditto.
364         (IX86_BUILTIN_COMUNESD): Ditto.
365         (IX86_BUILTIN_COMULTSD): Ditto.
366         (IX86_BUILTIN_COMULESD): Ditto.
367         (IX86_BUILTIN_COMUGTSD): Ditto.
368         (IX86_BUILTIN_COMUGESD): Ditto.
369         (IX86_BUILTIN_COMORDSD): Ditto.
370         (IX86_BUILTIN_COMUNORDSD): Ditto.
371         (IX86_BUILTIN_COMFALSESD): Ditto.
372         (IX86_BUILTIN_COMTRUESD): Ditto.
373         (IX86_BUILTIN_COMEQPS): Ditto.
374         (IX86_BUILTIN_COMNEPS): Ditto.
375         (IX86_BUILTIN_COMLTPS): Ditto.
376         (IX86_BUILTIN_COMLEPS): Ditto.
377         (IX86_BUILTIN_COMGTPS): Ditto.
378         (IX86_BUILTIN_COMGEPS): Ditto.
379         (IX86_BUILTIN_COMUEQPS): Ditto.
380         (IX86_BUILTIN_COMUNEPS): Ditto.
381         (IX86_BUILTIN_COMULTPS): Ditto.
382         (IX86_BUILTIN_COMULEPS): Ditto.
383         (IX86_BUILTIN_COMUGTPS): Ditto.
384         (IX86_BUILTIN_COMUGEPS): Ditto.
385         (IX86_BUILTIN_COMORDPS): Ditto.
386         (IX86_BUILTIN_COMUNORDPS): Ditto.
387         (IX86_BUILTIN_COMFALSEPS): Ditto.
388         (IX86_BUILTIN_COMTRUEPS): Ditto.
389         (IX86_BUILTIN_COMEQPD): Ditto.
390         (IX86_BUILTIN_COMNEPD): Ditto.
391         (IX86_BUILTIN_COMLTPD): Ditto.
392         (IX86_BUILTIN_COMLEPD): Ditto.
393         (IX86_BUILTIN_COMGTPD): Ditto.
394         (IX86_BUILTIN_COMGEPD): Ditto.
395         (IX86_BUILTIN_COMUEQPD): Ditto.
396         (IX86_BUILTIN_COMUNEPD): Ditto.
397         (IX86_BUILTIN_COMULTPD): Ditto.
398         (IX86_BUILTIN_COMULEPD): Ditto.
399         (IX86_BUILTIN_COMUGTPD): Ditto.
400         (IX86_BUILTIN_COMUGEPD): Ditto.
401         (IX86_BUILTIN_COMORDPD): Ditto.
402         (IX86_BUILTIN_COMUNORDPD): Ditto.
403         (IX86_BUILTIN_COMFALSEPD): Ditto.
404         (IX86_BUILTIN_COMTRUEPD): Ditto.
405         (IX86_BUILTIN_PCOMEQUB): Ditto.
406         (IX86_BUILTIN_PCOMNEUB): Ditto.
407         (IX86_BUILTIN_PCOMLTUB): Ditto.
408         (IX86_BUILTIN_PCOMLEUB): Ditto.
409         (IX86_BUILTIN_PCOMGTUB): Ditto.
410         (IX86_BUILTIN_PCOMGEUB): Ditto.
411         (IX86_BUILTIN_PCOMFALSEUB): Ditto.
412         (IX86_BUILTIN_PCOMTRUEUB): Ditto.
413         (IX86_BUILTIN_PCOMEQUW): Ditto.
414         (IX86_BUILTIN_PCOMNEUW): Ditto.
415         (IX86_BUILTIN_PCOMLTUW): Ditto.
416         (IX86_BUILTIN_PCOMLEUW): Ditto.
417         (IX86_BUILTIN_PCOMGTUW): Ditto.
418         (IX86_BUILTIN_PCOMGEUW): Ditto.
419         (IX86_BUILTIN_PCOMFALSEUW): Ditto.
420         (IX86_BUILTIN_PCOMTRUEUW): Ditto.
421         (IX86_BUILTIN_PCOMEQUD): Ditto.
422         (IX86_BUILTIN_PCOMNEUD): Ditto.
423         (IX86_BUILTIN_PCOMLTUD): Ditto.
424         (IX86_BUILTIN_PCOMLEUD): Ditto.
425         (IX86_BUILTIN_PCOMGTUD): Ditto.
426         (IX86_BUILTIN_PCOMGEUD): Ditto.
427         (IX86_BUILTIN_PCOMFALSEUD): Ditto.
428         (IX86_BUILTIN_PCOMTRUEUD): Ditto.
429         (IX86_BUILTIN_PCOMEQUQ): Ditto.
430         (IX86_BUILTIN_PCOMNEUQ): Ditto.
431         (IX86_BUILTIN_PCOMLTUQ): Ditto.
432         (IX86_BUILTIN_PCOMLEUQ): Ditto.
433         (IX86_BUILTIN_PCOMGTUQ): Ditto.
434         (IX86_BUILTIN_PCOMGEUQ): Ditto.
435         (IX86_BUILTIN_PCOMFALSEUQ): Ditto.
436         (IX86_BUILTIN_PCOMTRUEUQ): Ditto.
437         (IX86_BUILTIN_PCOMEQB): Ditto.
438         (IX86_BUILTIN_PCOMNEB): Ditto.
439         (IX86_BUILTIN_PCOMLTB): Ditto.
440         (IX86_BUILTIN_PCOMLEB): Ditto.
441         (IX86_BUILTIN_PCOMGTB): Ditto.
442         (IX86_BUILTIN_PCOMGEB): Ditto.
443         (IX86_BUILTIN_PCOMFALSEB): Ditto.
444         (IX86_BUILTIN_PCOMTRUEB): Ditto.
445         (IX86_BUILTIN_PCOMEQW): Ditto.
446         (IX86_BUILTIN_PCOMNEW): Ditto.
447         (IX86_BUILTIN_PCOMLTW): Ditto.
448         (IX86_BUILTIN_PCOMLEW): Ditto.
449         (IX86_BUILTIN_PCOMGTW): Ditto.
450         (IX86_BUILTIN_PCOMGEW): Ditto.
451         (IX86_BUILTIN_PCOMFALSEW): Ditto.
452         (IX86_BUILTIN_PCOMTRUEW): Ditto.
453         (IX86_BUILTIN_PCOMEQD): Ditto.
454         (IX86_BUILTIN_PCOMNED): Ditto.
455         (IX86_BUILTIN_PCOMLTD): Ditto.
456         (IX86_BUILTIN_PCOMLED): Ditto.
457         (IX86_BUILTIN_PCOMGTD): Ditto.
458         (IX86_BUILTIN_PCOMGED): Ditto.
459         (IX86_BUILTIN_PCOMFALSED): Ditto.
460         (IX86_BUILTIN_PCOMTRUED): Ditto.
461         (IX86_BUILTIN_PCOMEQQ): Ditto.
462         (IX86_BUILTIN_PCOMNEQ): Ditto.
463         (IX86_BUILTIN_PCOMLTQ): Ditto.
464         (IX86_BUILTIN_PCOMLEQ): Ditto.
465         (IX86_BUILTIN_PCOMGTQ): Ditto.
466         (IX86_BUILTIN_PCOMGEQ): Ditto.
467         (IX86_BUILTIN_PCOMFALSEQ): Ditto.
468         (IX86_BUILTIN_PCOMTRUEQ): Ditto.
469         (bdesc_ptest): Change OPTION_MASK_ISA_SSE4_1 to
470         OPTION_MASK_ISA_ROUND for instructions that are shared between
471         SSE4.1 and SSE5.
472         (bdesc_2arg): Ditto.
473         (bdesc_sse_3arg): Ditto.
474         (enum multi_arg_type): New enum for describing the various SSE5
475         intrinsic argument types.
476         (bdesc_multi_arg): New table for SSE5 intrinsics.
477         (ix86_init_mmx_sse_builtins): Add SSE5 intrinsic support.
478         (ix86_expand_multi_arg_builtin): New function for creating SSE5
479         intrinsics.
480         (ix86_expand_builtin): Add SSE5 intrinsic support.
481         (ix86_sse5_valid_op_p): New function to validate SSE5 3 and 4
482         operand instructions.
483         (ix86_expand_sse5_multiple_memory): New function to split the
484         second memory reference from SSE5 instructions.
485         (type_has_variadic_args_p): Delete in favor of stdarg_p.
486         (ix86_return_pops_args): Use stdarg_p to determine if the function
487         has variable arguments.
488         (ix86_setup_incoming_varargs): Ditto.
489         (x86_this_parameter): Ditto.
490
491         * config/i386/i386-protos.h (ix86_expand_sse5_unpack): Add
492         declaration.
493         (ix86_expand_sse5_pack): Ditto.
494         (ix86_sse5_valid_op_p): Ditto.
495         (ix86_expand_sse5_multiple_memory): Ditto.
496
497         * config/i386/i386.md (UNSPEC_SSE5_INTRINSIC): Add new UNSPEC
498         constant for SSE5 support.
499         (UNSPEC_SSE5_UNSIGNED_CMP): Ditto.
500         (UNSPEC_SSE5_TRUEFALSE): Ditto.
501         (UNSPEC_SSE5_PERMUTE): Ditto.
502         (UNSPEC_SSE5_ASHIFT): Ditto.
503         (UNSPEC_SSE5_LSHIFT): Ditto.
504         (UNSPEC_FRCZ): Ditto.
505         (UNSPEC_CVTPH2PS): Ditto.
506         (UNSPEC_CVTPS2PH): Ditto.
507         (PCOM_FALSE): Add new constant for true/false SSE5 comparisons.
508         (PCOM_TRUE): Ditto.
509         (COM_FALSE_S): Ditto.
510         (COM_FALSE_P): Ditto.
511         (COM_TRUE_S): Ditto.
512         (COM_TRUE_P): Ditto.
513         (type attribute): Add ssemuladd, sseiadd1, ssecvt1, sse4arg types.
514         (unit attribute): Add support for ssemuladd, ssecvt1, sseiadd1 sse4arg
515         types.
516         (memory attribute): Ditto.
517         (sse4_1_round<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1.
518         Use SSE4_1_ROUND_* constants instead of hard coded numbers.
519         (rint<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1.
520         (floor<mode>2): Ditto.
521         (ceil<mode>2): Ditto.
522         (btrunc<mode>2): Ditto.
523         (nearbyintdf2): Ditto.
524         (nearbyintsf2): Ditto.
525         (sse_setccsf): Disable if SSE5.
526         (sse_setccdf): Ditto.
527         (sse5_setcc<mode>): New support for SSE5 conditional move.
528         (sse5_pcmov_<mode>): Ditto.
529
530         * config/i386/sse.md (SSEMODE1248): New mode iterator for SSE5.
531         (SSEMODEF4): Ditto.
532         (SSEMODEF2P): Ditto.
533         (ssemodesuffixf4): New mode attribute for SSE5.
534         (ssemodesuffixf2s): Ditto.
535         (ssemodesuffixf2c): Ditto.
536         (sserotatemax): Ditto.
537         (ssescalarmode): Ditto.
538         (sse_maskcmpv4sf3): Disable if SSE5.
539         (sse_maskcmpv2df3): Ditto.
540         (sse_vmmaskcmpv4sf3): Ditto.
541         (sse5_fmadd<mode>4): Add SSE5 floating point multiply/add
542         instructions.
543         (sse5_vmfmadd<mode>4): Ditto.
544         (sse5_fmsub<mode>4): Ditto.
545         (sse5_vmfmsub<mode>4): Ditto.
546         (sse5_fnmadd<mode>4): Ditto.
547         (sse5_vmfnmadd<mode>4): Ditto.
548         (sse5_fnmsub<mode>4): Ditto.
549         (sse5_vmfnmsub<mode>4): Ditto.
550         (sse5i_fmadd<mode>4): Ditto.
551         (sse5i_fmsub<mode>4): Ditto.
552         (sse5i_fnmadd<mode>4): Ditto.
553         (sse5i_fnmsub<mode>4): Ditto.
554         (sse5i_vmfmadd<mode>4): Ditto.
555         (sse5i_vmfmsub<mode>4): Ditto.
556         (sse5i_vmfnmadd<mode>4): Ditto.
557         (sse5i_vmfnmsub<mode>4): Ditto.
558         (mulv16qi3): Add SSE5 support.
559         (mulv4si3): Ditto.
560         (sse5_mulv4si3): New insn for 32-bit multiply support on SSE5.
561         (sse2_mulv4si3): Disable if SSE5.
562         (sse4_1_roundpd): Use TARGET_ROUND instead of TARGET_SSE4_1.
563         (sse4_1_roundps): Ditto.
564         (sse4_1_roundsd): Ditto.
565         (sse4_1_roundss): Ditto.
566         (sse_maskcmpv4sf3): Disable if SSE5 so the SSE5 instruction will
567         be generated.
568         (sse_maskcmpsf3): Ditto.
569         (sse_vmmaskcmpv4sf3): Ditto.
570         (sse2_maskcmpv2df3): Ditto.
571         (sse2_maskcmpdf3): Ditto.
572         (sse2_vmmaskcmpv2df3): Ditto.
573         (sse2_eq<mode>3): Ditto.
574         (sse2_gt<mode>3): Ditto.
575         (sse5_pcmov_<mode>): Add SSE5 support.
576         (vec_unpacku_hi_v16qi): Ditto.
577         (vec_unpacks_hi_v16qi): Ditto.
578         (vec_unpacku_lo_v16qi): Ditto.
579         (vec_unpacks_lo_v16qi): Ditto.
580         (vec_unpacku_hi_v8hi): Ditto.
581         (vec_unpacks_hi_v8hi): Ditto.
582         (vec_unpacku_lo_v8hi): Ditto.
583         (vec_unpacks_lo_v8hi): Ditto.
584         (vec_unpacku_hi_v4si): Ditto.
585         (vec_unpacks_hi_v4si): Ditto.
586         (vec_unpacku_lo_v4si): Ditto.
587         (vec_unpacks_lo_v4si): Ditto.
588         (sse5_pmacsww): New SSE5 intrinsic insn.
589         (sse5_pmacssww): Ditto.
590         (sse5_pmacsdd): Ditto.
591         (sse5_pmacssdd): Ditto.
592         (sse5_pmacssdql): Ditto.
593         (sse5_pmacssdqh): Ditto.
594         (sse5_pmacsdqh): Ditto.
595         (sse5_pmacsswd): Ditto.
596         (sse5_pmacswd): Ditto.
597         (sse5_pmadcsswd): Ditto.
598         (sse5_pmadcswd): Ditto.
599         (sse5_pcmov_<move>): Conditional move support on SSE5.
600         (sse5_phaddbw): New SSE5 intrinsic insn.
601         (sse5_phaddbd): Ditto.
602         (sse5_phaddbq): Ditto.
603         (sse5_phaddwd): Ditto.
604         (sse5_phaddwq): Ditto.
605         (sse5_phadddq): Ditto.
606         (sse5_phaddubw): Ditto.
607         (sse5_phaddubd): Ditto.
608         (sse5_phaddubq): Ditto.
609         (sse5_phadduwd): Ditto.
610         (sse5_phadduwq): Ditto.
611         (sse5_phaddudq): Ditto.
612         (sse5_phsubbw): Ditto.
613         (sse5_phsubwd): Ditto.
614         (sse5_phsubdq): Ditto.
615         (sse5_pperm): Ditto.
616         (sse5_pperm_sign_v16qi_v8hi): New insns for pack/unpack with SSE5.
617         (sse5_pperm_zero_v16qi_v8hi): Ditto.
618         (sse5_pperm_sign_v8hi_v4si): Ditto.
619         (sse5_pperm_zero_v8hi_v4si): Ditto.
620         (sse5_pperm_sign_v4si_v2di): Ditto.
621         (sse5_pperm_sign_v4si_v2di): Ditto.
622         (sse5_pperm_pack_v2di_v4si): Ditto.
623         (sse5_pperm_pack_v4si_v8hi): Ditto.
624         (sse5_pperm_pack_v8hi_v16qi): Ditto.
625         (sse5_perm<mode>): New SSE5 intrinsic insn.
626         (rotl<mode>3): Ditto.
627         (sse5_rotl<mode>3): Ditto.
628         (sse5_ashl<mode>3): Ditto.
629         (sse5_lshl<mode>3): Ditto.
630         (sse5_frcz<mode>2): Ditto.
631         (sse5s_frcz<mode>2): Ditto.
632         (sse5_cvtph2ps): Ditto.
633         (sse5_cvtps2ph): Ditto.
634         (sse5_vmmaskcmp<mode>3): Ditto.
635         (sse5_com_tf<mode>3): Ditto.
636         (sse5_maskcmp<mode>3): Ditto.
637         (sse5_maskcmp_uns<mode>3): Ditto.
638         (sse5_maskcmp_uns2<mode>3): Ditto.
639         (sse5_pcom_tf<mode>3): Ditto.
640         
641         * config/i386/predicates.md (const_0_to_31_operand): New predicate
642         to match 0..31.
643         (sse5_comparison_float_operator): New predicate to match the
644         comparison operators supported by the SSE5 com instruction.
645         (ix86_comparison_int_operator): New predicate to match just the
646         signed int comparisons.
647         (ix86_comparison_uns_operator): New predicate to match just the
648         unsigned int comparisons.
649
650         * doc/invoke.texi (-msse5): Add documentation.
651         (-mfused-madd): Ditto.
652
653         * doc/extend.texi (x86 intrinsics): Document new SSE5 intrinsics.
654
655         * config.gcc (i[34567]86-*-*): Include bmmintrin.h and
656         mmintrin-common.h.
657         (x86_64-*-*): Ditto.
658
659         * config/i386/cpuid.h (bit_SSE5): Define SSE5 bit.
660
661         * config/i386/bmmintrin.h: New file, provide common x86 compiler
662         intrinisics for SSE5.
663
664         * config/i386/smmintrin.h: Move instructions shared with SSE5 to
665         mmintrin-common.h.
666
667         * config/i386/mmintrin-common.h: New file, to contain common
668         instructions between SSE4.1 and SSE5.
669
670         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration): Use
671         FOREACH_FUNCTION_ARGS to iterate over the argument list.
672         (gen_regparm_prefix): Ditto.
673
674         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix): Use
675         FOREACH_FUNCTION_ARGS to iterate over the argument list.  Use
676         prototype_p to determine if a function is prototyped.
677
678 2007-09-12  Janis Johnson  <janis187@us.ibm.com>
679
680         * config/dfp-bit.c (dfp_conversion_exception): New function.
681         (DFP_TO_DFP) Add new variants to use direct conversions in decNumber.
682         (DFP_TO_INT): Ditto.
683         (INT_TO_DFP): Ditto.
684         * config/dfp-bit.h (DEC_FLOAT_FROM_INT, DEC_FLOAT_TO_INT): New.
685
686 2007-09-12  Jakub Jelinek  <jakub@redhat.com>
687
688         PR target/32338
689         * config/ia64/ia64.c (ia64_expand_epilogue): Emit blockage
690         before sp restoration even when total_size is 0, but
691         frame_pointer_needed.
692
693 2007-09-12  Bob Wilson  <bob.wilson@acm.org>
694
695         * config/xtensa/xtensa.c (machine_function): Add vararg_a7_copy.
696         (xtensa_copy_incoming_a7): Use start_sequence instead of
697         push_to_sequence.  Stash insns in vararg_a7_copy for builtin_saveregs.
698         (xtensa_builtin_saveregs): Place code from vararg_a7_copy at the start
699         of the saveregs sequence.
700
701 2007-09-12  Richard Sandiford  <richard@codesourcery.com>
702
703         * c-tree.h (grokfield): Add a "tree *" argument.
704         * c-decl.c (grokdeclarator): Take a pointer to the decl's attributes.
705         Chain nested decl attributes to it.  Don't call decl_attributes here.
706         (groktypename): Pass grokdeclarator a pointer to the attribute list.
707         (start_decl, grokparm, push_parm_decl, start_function): Likewise.
708         (grokfield): Take a pointer to the decl's attributes and pass
709         it to grokdeclarator.
710         * c-parser.c (c_parser_struct_declaration): Update the calls to
711         grokfield.  Call decl_attributes for anonymous struct and union
712         fields.
713
714 2007-09-12  Jan Hubicka  <jh@suse.cz>
715
716         * c-objc-common.h (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
717
718 2007-09-12  Ira Rosen  <irar@il.ibm.com>
719
720         PR tree-optimization/32377
721         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Distinguish
722         between positive and negative dependence distance using DDR_REVERSED_P.
723
724 2007-09-12  Dorit Nuzman  <dorit@il.ibm.com>
725
726         PR tree-optimization/33373
727         * tree-vect-analyze (vect_determine_vectorization_factor): Call 
728         TREE_INT_CST_LOW when comparing TYPE_SIZE_UNIT. 
729
730 2007-09-12  Jan Hubicka  <jh@suse.cz>
731
732         PR target/33393
733         * i386.md (floatsisf2_mixed_memory, floatsisf2_sse_memory): Disable for
734         !SSE_MATH
735
736 2007-09-12  Christian Bruel  <christian.bruel@st.com>
737
738         * sh.h (SH_DBX_REGISTER_NUMBER): Added fpscr, fixed sr/gbr regs.
739         * linux-unwind.h (SH_DWARF_FRAME_GBR): fixed. 
740         
741 2007-09-12  Ira Rosen  <irar@il.ibm.com>
742
743         * tree-vect-transform.c (vect_get_slp_defs): Don't build a vector
744         for oprnd1 if not required.
745         (vectorizable_operation): Use scalar operand in SLP in case of 
746         shift with scalar argument.
747
748 2007-09-12  Ira Rosen  <irar@il.ibm.com>
749
750         * params.def (PARAM_MIN_VECT_LOOP_BOUND): Change default and minimum 
751         to 1.
752
753 2007-09-11  James E. Wilson  <wilson@specifix.com>
754
755         * defaults.h (DWARF2_UNWIND_INFO): Don't define if
756         TARGET_UNWIND_INFO is defined.
757         * config/ia64/ia64.h (INCOMING_RETURN_ADDR_RTX): Delete undef
758         after definition.
759
760 2007-09-12  Kaz Kojima  <kkojima@gcc.gnu.org>
761
762         * config/sh/sh.c (calc_live_regs): Use
763         current_function_saves_all_registers instead of
764         current_function_has_nonlocal_label.
765         (sh_allocate_initial_value): Likewise.
766         (sh_get_pr_initial_val): Likewise.
767         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Likewise.
768         * config/sh/sh.md (load_ra): Likewise.
769
770 2007-09-12  Hans-Peter Nilsson  <hp@axis.com>
771
772         * config/cris/t-linux (LIMITS_H_TEST): Only define if not inhibit_libc.
773
774         PR target/33360
775         * config/cris/cris.c (cris_expand_pic_call_address): Fix typo in
776         GET_CODE (x) == CONST_INT to CONST_INT_P (x) transformation.
777
778 2007-09-12  Sa Liu  <saliu@de.ibm.com>
779
780         * config/spu/spu.c (spu_emit_branch_or_set): Handle NaN values as
781         operands to DFmode GE or LE compares.
782
783 2007-09-12  Bernd Schmidt  <bernd.schmidt@analog.com>
784
785         * config/bfin/bfin.h (enum reg_class, REG_CLASS_CONTENTS,
786         REG_CLASS_NAMES): Add P0REGS.
787         (REGNO_REG_CLASS): Return it where appropriate.
788         (REG_CLASS_FROM_CONSTRAINT): Add 'qA'.
789         (CLASS_LIKELY_SPILLED_P): P0REGS is likely_spilled.
790         * doc/md.texi (Blackfin family): Document 'q' constraints.
791
792 2007-09-11  Steve Kenton  <skenton@ou.edu>
793
794         * pa/linux-unwind.h: Guard with inhibit_libc.
795         * pa/hpux-unwind.h: Likewise.
796
797 2007-09-11  David Daney  <ddaney@avtrex.com>
798
799         * doc/invoke.texi: Document new MIPS -mllsc and -mno-llsc options.
800         * doc/install.texi: Document new --with-llsc and --without-llsc
801         options.
802         * config.gcc: Handle --with-llsc and --without-llsc configure options.
803         * config/mips/mips.md (sync, memory_barrier): Wrap sync instrunction
804         in %| and %- operand codes.  Depend on GENERATE_SYNC instead of
805         ISA_HAS_SYNC.
806         (sync_compare_and_swap<mode>, sync_add<mode>, sync_sub<mode>,
807         sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
808         sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
809         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
810         sync_new_nand<mode>, sync_lock_test_and_set<mode>): Depend on
811         GENERATE_LL_SC instead of ISA_HAS_LL_SC.
812         * config/mips/mips.opt (mllsc): New option.
813         * config/mips/mips.c (mips_llsc): Define variable.
814         (mips_handle_option): Handle mllsc option.
815         (override_options): Set mips_print_operand_punct for '|' and '-'.
816         (print_operand): Add new %| and %- operand codes.
817         * config/mips/mips.h (mips_llsc_setting): New enum type.
818         (mips_llsc): Declare.
819         (OPTION_DEFAULT_SPECS): Add llsc handling.
820         (GENERATE_SYNC): New macro.
821         (GENERATE_LL_SC): New macro.
822         (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP, MIPS_SYNC_OLD_OP,
823         MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
824         MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): Wrap instructions
825         in %| and %- operand codes.
826
827 2007-09-11  Eric Botcazou  <ebotcazou@adacore.com>
828
829         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Deal with
830         TYPE_NONALIASED_COMPONENT like with DECL_NONADDRESSABLE_P.
831
832 2007-09-11  Jason Merrill  <jason@redhat.com>
833
834         PR middle-end/27945
835         * stor-layout.c (layout_decl): Do pack variable size fields.    
836
837 2007-09-11  Maxim Kuvyrkov  <maxim@codesourcery.com>
838
839         * config/m68k/predicates.md (movsi_const0_operand,
840         non_symbolic_call_operand): New predicates.
841
842         * config/m68k/constraints.md: (Cs, Ci, C0, Cj, CQ, CW, CZ, CS, Ap, Ac):
843         New constraints.
844         * doc/md.texi (Constraints for Particular Machines: Motorola 680x0):
845         Document constraints N, O, P, R, S, T, Q, U, W, Cs, Ci, C0, Cj, CQ,
846         CW, CZ, CS, Ap and Ac.
847
848         * config/m68k/m68k.md (UNSPEC_IB): New constant.
849         (constraints.md): New include.
850         (cpu, type, type1, opx, opy, opx_type, opy_type, size, opx_access,
851         opx_mem, opy_mem, op_mem, guess, split): New attributes.
852         (movdf_internal): Name pattern.  Fix to use alternatives.  Add split.
853         Specify attributes.
854         (pushdi): Add split.
855         (tstsi_internal): Name pattern.  Fix to use alternatives.  Specify
856         attributes.  Split tstsi_internal_68020_cf from it.
857         (tstsi_internal_68020_cf): New pattern.
858         (tsthi_internal, tstqi_internal): Name pattern.  Specify attributes.
859         (tst<mode>_cf): Specify attributea.
860         (cmpsi_cf): Name pattern.  Specify attributes.
861         (cmp<mode>_68881, cmp<mode>_cf): Specify type attribute.
862         (pushexthisi_const): Fix to use alternatives.  Specify
863         attributes.
864         (movsi_const0): Split movsi_const0_68000_10 and movsi_const0_68040_60
865         from it.  Fix to use alternatives.  Specify attributes.
866         (movsi_const0_68040_10, movsi_const0_68040_60): New patterns.
867         (movsi_cf, movstrictqi_cf): Fix to use alternatives.  Specify
868         attributes.
869         (movsf_cf_soft): Specify attributes.
870         (movdf_cf_soft): Add split.
871         (pushasi, zero_extendhisi2_cf, zero_extendqisi2_cfv4,
872         cfv4_extendhisi2, 68k_extendhisi2, extendqihi2, cfv4_extendqisi2,
873         68k_extendqisi2, truncdfsf2_cf): Specify attributes.
874         (truncdfsf2_68881): Name pattern.  Specify attributes.
875         (floatsi<mode>2_cf, floathi<mode>2_68881, floathi<mode>2_cf,
876         floatqi<mode>2_68881, floatqi<mode>2_cf, ftrunc<mode>2_cf,
877         fix<mode>qi2_cf, fix<mode>hi2_cf, fix<mode>si2_cf, adddi_dishl32):
878         Specify attributes.
879         (addsi3_5200): Fix to use alternatives.  Specify attributes.
880         Add splits.
881         (add<mode>3_cf, subdi_dishl32): Specify attributes.
882         (subsi3): Add alternative for subq.l.  Specify attributes.
883         (sub<mode>3_cf, mulhi3, mulhisi3): Specify attributes.
884         (mulhisisi3_s, mulsi3_68020, mulsi3_cf): Name pattern.  Specify
885         attributes.
886         (umulhisi3): Specify attributes.
887         (mulhisisi3_z): Name pattern.  Specify attributes.
888         (fmul<mode>3_cf, div<mode>3_cf, negsi2_internal, negsi2_5200,
889         sqrt<mode>2_68881, clzsi2, one_cmplsi2_5200, subreghi1ashrdi_const32,
890         subregsi1ashrdi_const32, ashrsi3, subreg1lshrdi_const32, lshrsi3,
891         bsetmemqi): Specify attributes.
892         (bsetmemqi_ext): Name pattern.  Specify attributes.
893         (bclrmemqi): Specify attributes.
894         (bclrmemqi_ext, scc, sls): Name pattern.  Specify attributes.
895         (beq, bne, bgt, bgtu, blt, bltu, bge, bgeu, ble, bleu): Specify
896         attributes.
897         (beq2, bne2, bgt2, bgtu2, blt2, bltu2, bge2, bgeu2, ble2, bleu2): Name
898         pattern.  Specify attributes.
899         (jump): Specify attributes.
900         (tablejump_internal): Name pattern.  Specify attributes.
901         (call_value): Split into non_symbolic_call_value,
902         symbolic_call_value_jsr, symbolic_call_value_bsr.  Fix to use
903         alternatives.  Specify attributes.
904         (non_symbolic_call_value, symbolic_call_value_jsr,
905         symbolic_call_value_bsr): New patterns.
906         (nop, return, unlink, indirect_jump): Specify attributes.
907         (trap): Fix condition.  Specify attributes.
908         (ib): New pattern.
909
910         * config/m68k/m68k.c (m68k_symbolic_call_var): New variable.
911         (override_options): Initialize it.  Initialize m68k_sched_cpu.
912         (CONST_METHOD): Rename to M68K_CONST_METHOD, move to m68k.h.
913         (const_method): Make global, rename to m68k_const_method.
914         (const_int_cost, output_move_const_into_data_reg): Update.
915         (output_move_double): Parametrize to emit rtl code, rename to
916         handle_move_double.
917         (output_reg_adjust, emit_reg_adjust, output_compadr, output_movsi,
918         emit_movsi): New static functions.
919         (output_move_double): New function with semantics of old
920         output_move_double.
921         (m68k_emit_move_double): New function.
922         (m68k_sched_cpu): New variable.
923         (attr_op_type): New enum.
924         (sched_guess_p): New variable.
925         (sched_address_type, sched_operand_type, sched_attr_op_type):
926         New static functions.
927         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type,
928         m68k_sched_attr_size, m68k_sched_attr_op_mem): New functions.
929         (sched_branch_type): New static variable.
930         (m68k_sched_branch_type): New function.
931         * config/m68k/m68k.h (M68K_SYMBOLIC_CALL): New enum.
932         (m68k_symbolic_call_var): Declare.
933         (M68K_CONST_METHOD): Rename from CONST_METHOD.  Move here from m68k.c.
934         (m68k_const_method, m68k_emit_move_double, m68k_sched_cpu,
935         m68k_sched_attr_opx_type, m68k_sched_attr_opy_type,
936         m68k_sched_attr_size, m68k_sched_attr_op_mem, m68k_sched_branch_type):
937         Declare.
938
939 2007-09-11  Jakub Jelinek  <jakub@redhat.com>
940
941         * builtins.def (BUILT_IN_VA_ARG_PACK_LEN): New builtin.
942         * builtins.c (expand_builtin) <case BUILT_IN_VA_ARG_PACK_LEN>: Issue
943         error if __builtin_va_arg_pack_len () wasn't optimized out during
944         inlining.
945         * tree-inline.c (copy_bb): Replace __builtin_va_arg_pack_len ()
946         with the number of inline's anonymous arguments.
947         * doc/extend.texi: Document __builtin_va_arg_pack_len ().
948
949 2007-09-11  Zdenek Dvorak  <ook@ucw.cz>
950
951         * fold-const.c (extract_muldiv_1): Do not simplify
952         var * c * c to var.
953
954 2007-09-11  Jan Hubicka <jh@suse.cz>
955
956         * i386.h (ix86_tune_indices): Add X86_TUNE_INTER_UNIT_CONVERSIONS.
957         (TARGET_INTER_UNIT_CONVERSIONS): New.
958         * i386.md (floatsi expanders): Remove redundant check for SImode
959         source; offload to memory when asked for.
960         (floatsisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse
961         floatdisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse):
962         Update conditions;
963         (floatsisf2_mixed_memory, floatsisf2_sse_memory,
964         floatsidf2_mixed_memory, floatsidf2_sse_memory
965         floatdisf2_mixed_memory, floatsisf2_sse_memory,
966         floatsidf2_mixed_memory, floatsidf2_sse_memory): New.
967
968 2007-09-11  Jan Hubicka <jh@suse.cz>
969
970         * toplev.c (process_options): all frontends now do unit-at-a-time.
971         * cgraphunit.c: update comments.
972         (cgraph_expand_function): call passmanager dirrectly; emit thunks.
973         * c-decl.c (finish_function): use cgraph_add_new_function.
974         * function.c (expand_function_end): We are always unit-at-a-time.
975
976 2007-09-11  Richard Sandiford  <richard@codesourcery.com>
977
978         * config/mips/mips.c (mips_set_mips16_mode): Use separate anchor
979         settings for MIPS16.
980         (mips_use_anchors_for_symbol_p): Use default_use_anchors_for_symbol_p.
981
982 2007-09-11  Richard Sandiford  <richard@codesourcery.com>
983
984         * config/mips/mips.c (mips_symbol_insns_1): Allow LEAs of
985         SYMBOL_FORCE_TO_MEM constants.
986         (mips_rtx_costs): Give a cost of 1 to force_to_mem_operands.
987         (mips16_rewrite_pool_refs_info): New structure.
988         (mips16_rewrite_pool_constant): New function, split out from...
989         (mips16_rewrite_pool_refs): ...here.  Take a pointer to a
990         mips16_rewrite_pool_refs_info structure rather than a pointer
991         to a constant pool.  Force force_to_mem_operands into memory.
992         (mips16_lay_out_constants): Update call to mips16_rewrite_pool_refs.
993         * config/mips/predicates.md (force_to_mem_operand): New predicate.
994         * config/mips/constraints.md (kf): New constraint.
995         * config/mips/mips.md (*movdi_64bit_mips16): Add a d <- kf alternative.
996         (*movsi_mips16): Likewise.
997
998 2007-09-11  Richard Sandiford  <richard@codesourcery.com>
999             Nigel Stephens  <nigel@mips.com>
1000             David Ung  <davidu@mips.com>
1001
1002         * config/mips/mips.h (CONSTANT_POOL_COST): Move to...
1003         * config/mips/mips.c: ...here and set to 4 for TARGET_MIPS16.
1004         (mips16_constant_cost, mips_immediate_operand_p, mips_binary_cost)
1005         (mips_fp_mult_cost, mips_fp_div_cost, mips_sign_extend_cost)
1006         (mips_zero_extend_cost): New functions.
1007         (mips_rtx_costs): Treat COMPARE constants as having zero cost.
1008         Use the new functions.  Tweak many cost estimates, both here
1009         and in the new subroutines.  Return false when the cost of the
1010         operands has not been calculated.  Check for *clear_upper32.
1011         Check for floating-point multiply-add, reciprocal and rsqrt
1012         patterns.  Handle comparison and rotation codes.
1013
1014 2007-09-11  Danny Smith  <dannysmith@users.sourceforge.net>
1015
1016         * config/i386/cygming.h (TARGET_STRIP_NAME_ENCODING): Don't
1017         override default.
1018         * config/i386/i386.c (get_dllimport_decl): Don't strip
1019         FASTCALL_PREFIX.
1020
1021 2007-09-10  Janis Johnson  <janis187@us.ibm.com>
1022
1023         PR c/30013
1024         * config/dfp-bit.c: Don't skip TFmode conversions; move strto*
1025         declarations to top.
1026         (DFP_TO_BFP): Use for either XFmode or TFmode.
1027         (BFP_TO_DFP): Use for either XFmode or TFmode; always use cast
1028         of BFP_VIA_TYPE.
1029         * config/dfp-bit.h: Include float.h.
1030         (LONG_DOUBLE_HAS_XF_MODE, LONG_DOUBLE_HAS_TF_MODE): Define if long
1031         double is one of these modes, rather than using LIBGCC_HAS_*F_MODE
1032         which doesn't mean the same thing.
1033         (BFP_KIND): Use 4 to mean TFmode.
1034         (BFP_FMT): Specify the number of decimal digits based on the
1035         number of mantissa digits.
1036         (BFP_VIA_TYPE): Binary float type to use as cast for sprintf.
1037         (BFP_TO_DFP, DFP_TO_BFP): Define names for TFmode variants.
1038         (STR_TO_BFP): Use strtold for XFmode or TFmode.
1039         (TFtype): Define if TFmode is supported.
1040         * doc/libgcc.texi (Decimal float library routines): Document
1041         TF conversion functions.
1042
1043 2007-09-10  Chao-ying Fu  <fu@mips.com>
1044
1045         * config/mips/mips.c (mips_scalar_mode_supported_p): Declare.
1046         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
1047         (mips_emit_compare): Process fixed-point modes.
1048         (mips_pad_arg_upward): Support fixed-point types.
1049         (override_options): Allow fixed-point modes in accumulators.
1050         (mips_pass_by_reference): Pass DQ, UDQ, DA, and UDA modes in registers.
1051         (mips_vector_mode_supported_p): Support V2HQmode, V2UHQmode, V2HAmode,
1052         V2UHAmode, V4QQmode, and V4UQQmode when TARGET_DSP.
1053         (mips_scalar_mode_supported_p): New function to accept fixed-point
1054         modes if the width is not greater than two BITS_PER_WORD.
1055         * config/mips/mips.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE,
1056         LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
1057         SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
1058         LONG_LONG_ACCUM_TYPE_SIZE): Define.
1059         * config/mips/mips.md ("d"): Update mode attribute for fixed-point
1060         modes.
1061         ("IMODE"): New mode attribute.
1062         (mips-fixed.md): Include.
1063         * config/mips/mips-modes.def: Create VECTOR_MODES for FRACT, UFRACT,
1064         ACCUM, UACCUM.
1065         * config/mips/mips-fixed.md: New file.
1066
1067 2007-09-11  Ben Elliston  <bje@au.ibm.com>
1068
1069         * config/spu/spu.md: Formatting fixes.
1070
1071 2007-09-10  Janis Johnson  <janis187@us.ibm.com>
1072
1073         * config/dfp-bit.c (dfp_unary_func): Delete.
1074         (dfp_unary_op): Delete.
1075         (dfp_binary_op): Use decFloat functions instead of decNumber
1076         functions for binary operations.
1077         (d32_binary_op): Convert 32-bit operands to 64 bits for evaluation.
1078         (dnn_binary_op): Call dfp_binary_op with decFloat rather than
1079         DFP_C_TYPE.
1080         (dfp_compare_op): Use decFloat functions insteadof decNumber
1081         functions for comparisons.
1082         (d32_compare_op): Convert 32-bit operands to 64 bits for evaluation.
1083         (dnn_binary_op): Call dfp_compare_op with decFloat rather than
1084         DFP_C_TYPE.
1085         (DFP_ADD, DFP_SUB, DFP_MULTIPLE, DFP_DIVIDE): Use macros for
1086         call to dxx_binary_op and decFloat function.
1087         (DFP_EQ, DFP_NE, DFP_LT, DFP_GT, DFP_LE, DFP_GE): Use macros for
1088         calls to dxx_binary_op and decFloat function.
1089         * config/dfp-bit.h: Include decFloat header files.
1090         (decFloat, DFP_BINARY_OP, DFP_COMPARE_OP, DEC_FLOAT_ADD,
1091         DEC_FLOAT_SUBTRACT, DEC_FLOAT_MULTIPLY, DEC_FLOAT_DIVIDE,
1092         DEC_FLOAT_COMPARE, DEC_FLOAT_IS_ZERO, DEC_FLOAT_IS_NAN,
1093         DEC_FLOAT_IS_SIGNED: Define for each of 3 operand widths.
1094
1095 2007-09-10  Harsha Jagasia <harsha.jagasia@amd.com>
1096             Jan Sjodin <jan.sjodin@amd.com>
1097         
1098         * tree-vect-analyze.c (vect_analyze_operations): Change
1099         comparison of loop iterations with threshold to less than
1100         or equal to instead of less than. Reduce
1101         min_scalar_loop_bound by one.
1102         * tree-vect-transform.c (vect_estimate_min_profitable_iters): 
1103         Change prologue and epilogue iterations estimate to vf/2,
1104         when unknown at compile-time. Change versioning guard
1105         cost to taken_branch_cost. If peeling for alignment is
1106         unknown at compile-time, change peel guard costs to one
1107         taken branch and one not-taken branch per peeled loop.
1108         If peeling for alignment is known but number of scalar loop
1109         iterations is unknown at compile-time, change peel guard
1110         costs to one taken branch per peeled loop. Change the cost
1111         model equation to consider vector iterations as the loop
1112         iterations less the prologue and epilogue iterations.
1113         Change outside vector cost check to less than or equal to
1114         zero instead of equal to zero.
1115         (vect_do_peeling_for_loop_bound): Reduce
1116         min_scalar_loop_bound by one.
1117         * tree-vectorizer.h: Add TARG_COND_TAKEN_BRANCH_COST and
1118         TARG_COND_NOT_TAKEN_BRANCH_COST.        
1119         * config/i386/i386.h (processor_costs): Add
1120         scalar_stmt_cost, scalar_load_cost, scalar_store_cost,
1121         vec_stmt_cost, vec_to_scalar_cost, scalar_to_vec_cost,
1122         vec_align_load_cost, vect_unalign_load_cost,
1123         vec_store_cost, cond_taken_branch_cost,
1124         cond_not_taken_branch_cost.
1125         Define macros for x86 costs.
1126         * config/i386/i386.c:
1127         (size_cost): Set scalar_stmt_cost, scalar_load_cost,
1128         scalar_store_cost, vec_stmt_cost, vec_to_scalar_cost,
1129         scalar_to_vec_cost, vec_align_load_cost, 
1130         vect_unalign_load_cost, vec_store_cost,
1131         cond_taken_branch_cost, cond_not_taken_branch_cost to one. 
1132         (i386_cost, i486_cost, pentium_cost, pentiumpro_cost,
1133         geode_cost, k6_cost, athlon_cost, pentium4_cost, nocona_cost, 
1134         core2_cost, generic64_cost, generic32_cost): Set to default
1135         untuned costs.
1136         (k8_cost, amdfam10_cost): Costs for vectorization tuned.
1137         (x86_builtin_vectorization_cost): New.
1138
1139 2007-09-10  Janis Johnson  <janis187@us.ibm.com>
1140             Ben Elliston  <bje@au.ibm.com>
1141
1142         * dfp.c: Include decimal128Local.h; 
1143         (dfp_byte_swap): Remove.
1144         (encode_decimal32, decode_decimal32): Don't handle endianness.
1145         (encode_decimal64, decode_decimal64): Ditto.
1146         (encode_decimal128, decode_decimal128): Ditto.
1147         * config/dfp-bit.c (host_to_ieee32, ieee_to_host_32): Ditto.
1148         (__swap64): Remove.
1149         (host_to_ieee_64, ieee_to_host_64): Don't handle endianness.
1150          (__swap128): Remove
1151         (host_to_ieee_128, ieee_to_host_128): Don't handle endianness.
1152         * Makefile.in (DECNUM_H): Add decimal128Local.h.
1153
1154 2007-09-10  David Daney  <ddaney@avtrex.com>
1155
1156         * config/mips/mips.md (UNSPEC_MEMORY_BARRIER): New entry in
1157         define_constants.
1158         (memory_barrier): Rewrote as an insn that clobbers memory.
1159
1160 2007-09-10  Richard Sandiford  <richard@codesourcery.com>
1161
1162         * config/mips/mips.c (mips_global_pointer): Check
1163         call_really_used_regs instead of call_used_regs.
1164         (mips_save_reg_p): Likewise.  Save all call-saved registers
1165         if current_function_saves_all_registers.  Fix indentation.
1166         No longer treat $18 as a special case.
1167         (compute_frame_size): Guard FPR loop with TARGET_HARD_FLOAT.
1168
1169 2007-09-10  Richard Sandiford  <richard@codesourcery.com>
1170
1171         * config/mips/mips.h (MIPS_ARCH_FLOAT_SPEC): New macro.
1172         * config/mips/mips.c (mips_cpu_info_table): Mention it in the
1173         the introductory comment.
1174         (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Delete.
1175         (override_options): Don't test for it.
1176         * config/mips/sde.h (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Delete.
1177         (DRIVER_SELF_SPECS): Add MIPS_ARCH_FLOAT_SPEC.
1178         * config/mips/vr.h: As for config/mips/sde.h.
1179
1180 2007-09-10  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1181             Revital Eres  <eres@il.ibm.com>
1182
1183         * target.h (struct gcc_target.sched): New field: sms_res_mii.
1184         (struct ddg): Define.
1185         * target-def.h (TARGET_SCHED_SMS_RES_MII): Define.
1186         (TARGET_SCHED): Add TARGET_SCHED_SMS_RES_MII.
1187         * config/spu/spu.c: Include ddg.h.
1188         (TARGET_SCHED_SMS_RES_MII): Define.
1189         (spu_sms_res_mii): New function to calculate mii.
1190         * modulo-sched (res_MII): Use it.
1191         * doc/tm.texi: Document TARGET_SCHED_SMS_RES_MII.
1192
1193 2007-09-10  Andreas Krebbel  <krebbel1@de.ibm.com>
1194
1195         * config/s390/s390.c (s390_dump_pool): Create copy of constant
1196         pool entries since they might hold values that must not be shared.
1197
1198 2007-09-10  Uros Bizjak  <ubizjak@gmail.com>
1199
1200         PR target/33369
1201         * gcc/config/i386/sse.md (ashr<mode>3): Change op2 mode to SImode.
1202         Use 'N' operand constraint for op2.
1203         (lshr<mode>3): Ditto.
1204         (ashl<mode>3): Ditto.
1205         (vec_shl_<mode>): Use const_0_to_255_mul_8_operand predicate for op2.
1206         (vec_shr_<mode>): Ditto.
1207         * gcc/config/i386/i386.c (ix86_expand_builtin) [IX86_BUILTIN_PSLL?128,
1208         IX86_BUILTIN_PSRA*?128, IX86_BUILTIN_PSRL?128]: Convert op1 to SImode.
1209
1210 2007-09-10  Andreas Krebbel  <krebbel1@de.ibm.com>
1211
1212         * config/s390/s390.md ("fixuns_trunc<BFP:mode><GPR:mode>2"):
1213         Change mode macro in the last real_2expN parameter to uppercase.
1214
1215 2007-09-10  Michael Matz  <matz@suse.de>
1216
1217         * tree-pass.h (pass_cselim): Declare new pass.
1218         * passes.c (init_optimization_passes): Link in pass_cselim.
1219         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Renamed from
1220         tree_ssa_phiopt; add do_store_elim parameter, handle it by calling
1221         cond_store_replacement.
1222         (condstoretemp): New static variable.
1223         (cond_store_replacement): New function.
1224         (tree_ssa_phiopt, tree_ssa_cs_elim): New wrappers around
1225         tree_ssa_phiopt_worker.
1226         (struct name_to_bb): New.
1227         (get_non_trapping, name_to_bb_hash, name_to_bb_eq, add_or_mark_expr,
1228         nt_init_block, nt_fini_block): New static functions.
1229         (seen_ssa_names, nontrap_set): New static variables.
1230         (gate_cselim, pass_cselim): Define new pass.
1231         * common.opt (ftree-cselim): New flag.
1232         * toplev.c (process_options): Set flag_tree_cselim if required.
1233
1234 2007-09-10  Hans-Peter Nilsson  <hp@axis.com>
1235
1236         * simplify-rtx.c (simplify_relational_operation_1): For recent
1237         canonicalization, don't recurse if op1 equals both PLUS arguments.
1238
1239 2007-09-09  David Daney  <ddaney@avtrex.com>
1240
1241         * optabs.c (expand_sync_operation):  Use plus insn if minus
1242         CONST_INT_P(val).
1243         (expand_sync_fetch_operation):  Ditto.
1244
1245 2007-09-09  H.J. Lu  <hongjiu.lu@intel.com>
1246
1247         * i386.md (*floatsisf2_mixed_vector): Use cvtdq2ps instead
1248         of cvtpq2ps.
1249         (*floatsisf2_sse_vector): Likewise.
1250
1251 2007-09-09  Krister Walfridsson  <cato@df.lth.se>
1252
1253         * config/netbsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1.
1254
1255 2007-09-09  H.J. Lu  <hongjiu.lu@intel.com>
1256
1257         * config/i386/i386.h (ix86_tune_indices): Rename
1258         X86_USE_VECTOR_CONVERTS to X86_TUNE_USE_VECTOR_CONVERTS.
1259         (TARGET_USE_VECTOR_CONVERTS): Updated.
1260         * config/i386/i386.c: Likewise.
1261
1262 2007-09-09  Sandra Loosemore  <sandra@codesourcery.com>
1263             Nigel Stephens <nigel@mips.com>
1264
1265         * doc/invoke.texi (Overall Options):  Add .sx file extension
1266         as a synonym for .S.
1267         * cppspec.c (known_suffixes): Likewise.
1268         * gcc.c (default_compilers): Likewise.
1269
1270 2007-09-09  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1271
1272         PR target/30315
1273         * config/i386/i386.h (CANONICALIZE_COMPARISON): Delete.
1274         * simplify-rtx.c (simplify_relational_operation_1): Add the
1275         canonicalization from i386.h.
1276         * doc/md.texi (Canonicalization of Instructions): Document it.
1277
1278 2007-09-09  Jan Hubicka  <jh@suse.cz>
1279             Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
1280
1281         * i386.h (ix86_tune_indices): Add X86_USE_VECTOR_CONVERTS.
1282         (TARGET_USE_VECTOR_CONVERTS): New.
1283         * i386.md: New post-reload splitters for converting SF to DF and DF to
1284         SF.
1285         (floatsi* expander): Special case vector conversions.
1286         (floatsisf2_mixed_vector, floatsisf2_sse_vector_nointernunit,
1287         floatsisf2_sse_vector_internunit, floatsisf2_sse_vector,
1288         floatsidf2_mixed_vector, floatsidf2_sse_vector): New.
1289         (floatsisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse):
1290         Disable when doing vector converts.
1291         (floatsi<mode>2_i387): Disable when
1292         * sse.md (vec_dupv2df): Export.
1293         * i386.c (ix86_tune_features): Enable SSE conversions.
1294
1295 2007-09-09  Richard Guenther  <rguenther@suse.de>
1296
1297         * tree-ssa-operands.c (add_virtual_operand): Only mark
1298         stores as has_volatile_ops if alias information is not available.
1299
1300 2007-09-09  Revital Eres  <eres@il.ibm.com>
1301
1302         * doc/contrib.texi: Add myself.
1303
1304 2007-09-09  Ira Rosen  <irar@il.ibm.com>
1305
1306         * tree-vectorizer.h (stmt_vinfo_set_inside_of_loop_cost,
1307         stmt_vinfo_set_outside_of_loop_cost): New functions.
1308         * tree-vect-transform.c (vect_get_cost_fields): Remove.
1309         (vect_model_simple_cost): Call
1310         stmt_vinfo_set_inside/outside_of_loop_cost to set the relevant cost
1311         field instead of calling vect_get_cost_fields.
1312         (vect_model_store_cost, vect_model_load_cost): Likewise.
1313
1314 2007-09-09  Revital Eres  <eres@il.ibm.com>
1315
1316         * config/rs6000/rs6000.c (paired_init_builtins): Add const
1317         declaration to bdesc_paired_preds variable.
1318         (paired_expand_builtin): Likewise.
1319
1320 2007-09-09  Revital Eres  <eres@il.ibm.com>
1321
1322         * dbgcnt.def (sms_sched_loop): New counter.
1323         * modulo-sched.c: Use sms_sched_loop instead of
1324         MAX_SMS_LOOP_NUMBER to determine the maximum number of loops to
1325         perform swing modulo scheduling on.  Include dbgcnt.h.
1326         * Makefile.in: Add DBGCNT_H to modulo-sched.o.
1327         * params.def: Remove PARAM_MAX_SMS_LOOP_NUMBER.
1328
1329 2007-09-09  Uros Bizjak  <ubizjak@gmail.com>
1330
1331         * config/i386/i386.md (X87MODEF12, SSEMODEF): Remove mode iterators.
1332         Substitute all uses with ...
1333         (MODEF): New mode iterator.
1334
1335         (fix_trunc<mode>_fisttp_i387_1): Remove operand constraints
1336         from pre-regalloc define_insn_and_split splitter pattern.
1337         (*fix_trunc<mode>_i387_1): Ditto.
1338         (*fistdi2_1): Ditto.
1339         (*fist<mode>2_1): Ditto.
1340         (frndintxf2_floor): Ditto.
1341         (*fist<mode>2_floor_1): Ditto.
1342         (frndintxf2_ceil): Ditto.
1343         (*fist<mode>2_ceil_1): Ditto.
1344         (frndintxf2_trunc): Ditto.
1345         (frndintxf2_mask_pm): Ditto.
1346
1347         (prologue): Use (const_int 0) as never generated filler insn.
1348         (epilogue): Ditto.
1349         (sibcall_epilogue): Ditto.
1350         (eh_return_si): Ditto.
1351         (eh_return_di): Ditto.
1352
1353         (add<mode>3): Rename from adddf3 and addsf3.  Macroize expander
1354         using MODEF mode iterator.
1355         (sub<mode>3): Rename from subdf3 and subsf3.  Macroize expander
1356         using MODEF mode iterator.
1357         (mul<mode>3): Rename from muldf3 and mulsf3.  Macroize expander
1358         using MODEF mode iterator.
1359         (nearbyint<mode>2): Rename from nearbyintdf2 and nearbyintsf2.
1360         Macroize expander using MODEF mode iterator.
1361
1362         (zero_extendsidi2): Remove operand constraints from expander.
1363         (smuldi3_highpart): Ditto.
1364         (indirect_jump): Ditto.
1365         (tablejump): Ditto.
1366         (rsqrtsf2): Ditto.
1367         * config/i386/sse.md (storentv4sf): Ditto.
1368         (storentv2df): Ditto.
1369         (storentv2di): Ditto.
1370         (storentsi): Ditto.
1371         (sse2_cvtpd2ps): Ditto.
1372         (vec_interleave_highv16qi): Ditto.
1373         (vec_interleave_lowv16qi): Ditto.
1374         (vec_interleave_highv8hi): Ditto.
1375         (vec_interleave_lowv8hi): Ditto.
1376         (vec_interleave_highv4si): Ditto.
1377         (vec_interleave_lowv4si): Ditto.
1378         (vec_interleave_highv2di): Ditto.
1379         (vec_interleave_lowv2di): Ditto.
1380         (sse2_maskmovdqu): Ditto.
1381         * config/i386/mmx.md (mmx_maskmovq): Ditto.
1382
1383 2007-09-09  Ira Rosen  <irar@il.ibm.com>
1384
1385         * tree-vectorizer.h (enum vect_def_type): Start enumeration from 1.
1386         (struct _slp_tree, struct _slp_instance): Define new data structures
1387         along macros for their access.
1388         (struct _loop_vec_info): Define new fields: strided_stores,
1389         slp_instances, and slp_unrolling_factor along macros for their access.
1390         (enum slp_vect_type): New.
1391         (struct _stmt_vec_info): Define new field, slp_type, and macros for its
1392         access.
1393         (STMT_VINFO_STRIDED_ACCESS): New macro.
1394         (vect_free_slp_tree): Declare.
1395         (vectorizable_load): Add an argument of type slp_tree.
1396         (vectorizable_store, vectorizable_operation, vectorizable_conversion,
1397         vectorizable_assignment): Likewise.
1398         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
1399         Declare (make extern).
1400         * tree-vectorizer.c (new_stmt_vec_info): Initialize the new field.
1401         (new_loop_vec_info): Likewise.
1402         (destroy_loop_vec_info): Free memory allocated for SLP structures.
1403         * tree-vect-analyze.c: Include recog.h.
1404         (vect_update_slp_costs_according_to_vf): New.
1405         (vect_analyze_operations): Add argument for calls to vectorizable_ ()
1406         functions. For not pure SLP stmts with strided access check that the
1407         group size is power of 2. Update the vectorization factor according to
1408         SLP. Call vect_update_slp_costs_according_to_vf.
1409         (vect_analyze_group_access): New.
1410         (vect_analyze_data_ref_access): Call vect_analyze_group_access.
1411         (vect_free_slp_tree): New functions.
1412         (vect_get_and_check_slp_defs, vect_build_slp_tree, vect_print_slp_tree,
1413         vect_mark_slp_stmts, vect_analyze_slp_instance, vect_analyze_slp,
1414         vect_make_slp_decision, vect_detect_hybrid_slp_stmts,
1415         vect_detect_hybrid_slp): Likewise.
1416         (vect_analyze_loop): Call vect_analyze_slp, vect_make_slp_decision
1417         and vect_detect_hybrid_slp.
1418         * tree-vect-transform.c (vect_estimate_min_profitable_iters): Take
1419         SLP costs into account.
1420         (vect_get_cost_fields): New function.
1421         (vect_model_simple_cost): Make extern, add SLP parameter and handle
1422         SLP.
1423         (vect_model_store_cost, vect_model_load_cost): Likewise.
1424         (vect_get_constant_vectors): New function.
1425         (vect_get_slp_vect_defs, vect_get_slp_defs,
1426         vect_get_vec_defs_for_stmt_copy, vect_get_vec_defs_for_stmt_copy,
1427         vect_get_vec_defs): Likewise.
1428         (vectorizable_reduction): Don't handle SLP for now.
1429         (vectorizable_call): Don't handle SLP for now. Add argument to
1430         vect_model_simple_cost.
1431         (vectorizable_conversion): Handle SLP (call vect_get_vec_defs to
1432         get SLPed and vectorized defs). Fix indentation and spacing.
1433         (vectorizable_assignment): Handle SLP.
1434         (vectorizable_induction): Don't handle SLP for now.
1435         (vectorizable_operation): Likewise.
1436         (vectorizable_type_demotion): Add argument to
1437         vect_model_simple_cost.
1438         (vectorizable_type_promotion): Likewise.
1439         (vectorizable_store, vectorizable_load): Handle SLP.
1440         (vectorizable_condition): Don't handle SLP for now.
1441         (vect_transform_stmt): Add a new argument for SLP. Check that there is
1442         no SLP transformation required for unsupported cases. Add SLP
1443         argument for supported cases.
1444         (vect_remove_stores): New function.
1445         (vect_schedule_slp_instance, vect_schedule_slp): Likewise.
1446         (vect_transform_loop): Schedule SLP instances.
1447         * Makefile.in: (tree-vect-analyze.o): Depend on recog.h.
1448
1449 2007-09-09  Andrew Haley  <aph@redhat.com>
1450
1451         * optabs.c (sign_expand_binop): Set libcall_gen = NULL in the
1452         fake signed optab.
1453
1454 2007-09-09  Hans-Peter Nilsson  <hp@axis.com>
1455
1456         Divide REG_LABEL notes into REG_LABEL_OPERAND and REG_LABEL_TARGET.
1457         * doc/rtl.texi (Insns): Specify when a label_ref makes a jump_insn.
1458         Similar for what label_refs can go in the JUMP_TARGET field.  Split
1459         REG_LABEL documentation into REG_LABEL_TARGET and REG_LABEL_OPERAND.
1460         * reload.c (find_reloads): Generate REG_LABEL_OPERAND, not
1461         REG_LABEL when replacing an operand with a LABEL_REF for a
1462         non-jump insn.
1463         (subst_reloads): When replacing a LABEL_REG with a register,
1464         instead of generating a REG_LABEL note, assert that there already
1465         is one or that the label is a known target for the insn.
1466         * rtlanal.c (computed_jump_p): Instead of looking for a REG_LABEL
1467         note, check the JUMP_LABEL field.  Remove "else" after return.
1468         * reorg.c (emit_delay_sequence): Replace case for REG_LABEL with
1469         cases for REG_LABEL_OPERAND and REG_LABEL_TARGET.
1470         (fill_slots_from_thread): Handle both REG_LABEL_OPERAND and
1471         REG_LABEL_TARGET notes, including the JUMP_TARGET field on JUMP_P
1472         insns.  Iterate over all notes; don't assume there's only one.
1473         * cse.c (recorded_label_ref): Adjust comment to refer to
1474         REG_LABEL_OPERAND.
1475         (cse_extended_basic_block): Do LABEL_REF check for all INSN_P
1476         insns, not just NONJUMP_INSN_P.
1477         (check_for_label_ref): For JUMP_P insns, check that the LABEL_REF
1478         isn't a jump target.
1479         * jump.c (rebuild_jump_labels): Adjust head comment.
1480         (init_label_info): Ditto.  Remove REG_LABEL_OPERAND notes only;
1481         don't reset REG_LABEL_TARGET notes, including the JUMP_LABEL field.
1482         (mark_all_labels): For JUMP_P insns without a target, check if the
1483         the target is noted on the previous nonjump insn.
1484         (mark_jump_label_1): New function, guts from mark_jump_label.
1485         <case IF_THEN_ELSE>: Handle first operand as a non-target when
1486         marking jump target labels.
1487         <case LABEL_REF>: Adjust for whether to generate a
1488         REG_LABEL_TARGET or a REG_LABEL_OPERAND note.
1489         For 'E' format rtl, iterate in descending element order.
1490         (delete_related_insns): Handle both REG_LABEL_TARGET and
1491         REG_LABEL_OPERAND notes.  For JUMP_P insns with labels with zero
1492         reference count, delete and fallthrough.  Move finding-next-
1493         non-deleted insn last in the function.  Look at all INSN_P insns
1494         for REG_LABEL_OPERAND notes.
1495         (redirect_jump_2): Assert that OLABEL equals the old JUMP_LABEL of
1496         JUMP.
1497         * print-rtl.c (print_rtx): For JUMP_P insns and a non-NULL
1498         JUMP_LABEL, output the INSN_UID of it.
1499         * gcse.c: Adjust comments as appropriate to say REG_LABEL_OPERAND
1500         and/or REG_LABEL_TARGET.
1501         (add_label_notes): Only add REG_LABEL_OPERAND notes.  Put in line
1502         with jump.c copy by only adding notes for labels actually
1503         referenced in the insn.
1504         * emit-rtl.c (try_split): Don't assume only NONJUMP_INSN_P need
1505         usage count increment; handle all INSN_P trial insns.
1506         (emit_copy_of_insn_after): Change to not copy REG_LABEL_OPERAND
1507         notes.
1508         * rtl.h (struct rtx_def) <volatil>: Adjust to mention
1509         REG_LABEL_TARGET and REG_LABEL_OPERAND.
1510         (LABEL_REF_NONLOCAL_P): Allow REG_LABEL_TARGET and
1511         REG_LABEL_OPERAND.
1512         * combine.c (distribute_notes): Adjust for REG_LABEL_TARGET on
1513         JUMP_P insns and REG_LABEL_OPERAND everywhere.
1514         * sched-rgn.c (is_cfg_nonregular): Check for REG_LABEL_OPERANDS
1515         on all INSN_P insns.
1516         * reg-notes.def (LABEL_TARGET, LABEL_OPERAND): Split from LABEL.
1517         * cfgrtl.c (delete_insn): Adjust to handle REG_LABEL_TARGET and
1518         REG_LABEL_OPERAND notes.
1519         * reload1.c (calculate_needs_all_insns): Adjust comments.
1520         (set_label_offsets): Adjust to look for REG_LABEL_OPERAND notes.
1521         * config/alpha/alpha.md (split for load of an address into a
1522         four-insn sequence on Unicos/Mk): Adjust to use
1523         REG_LABEL_OPERAND.
1524         * config/sh/sh.md (sh_reorg, final_prescan_insn): Ditto.
1525
1526 2007-09-09  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1527
1528         Revert:
1529         2007-09-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1530         * regrename.c (copyprop_hardreg_forward_1): New variable next. Use
1531         FOR_BB_INSNS_SAFE instead of for loop.
1532         * cse.c (cse_extended_basic_block): Likewise.
1533         * postreload.c (reload_cse_regs_1): New variable next. Make sure
1534         that the for loop does not invoke NEXT_INSN on a deleted insn.
1535         * function.c (instantiate_virtual_regs): Likewise.
1536         * lower-subreg.c (remove_retval_note): Likewise.
1537         (decompose_multiword_subregs): Use FOR_BB_INSNS_SAFE instead of
1538         FOR_BB_INSNS.
1539         * emit-rtl.c (remove_insn): Set NEXT_INSN and PREV_INSN to NULL on
1540         a deleted insn.
1541         * cfgrtl.c (delete_insn): Set JUMP_LABEL to NULL on a deleted
1542         insn, if it's a jump.
1543         (try_redirect_by_replacing_jump): New variable jump_p. Call
1544         tablejump_p before delete_insn_chain.
1545         * reload1.c (reload): New variable next. Make sure that the for
1546         loop does not invoke NEXT_INSN on a deleted insn.
1547         (fixup_eh_region_note): Make the loop terminate if i becomes NULL.
1548         (delete_output_reload): New variable prev. Make sure the the for
1549         loops do not invoke PREV_INSN on a deleted insn.
1550
1551 2007-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1552
1553         * pa/constraints.md: Remove 'X' from unused letters comment.
1554
1555 2007-09-08  Richard Guenther  <rguenther@suse.de>
1556
1557         * tree-tailcall.c (find_tail_calls): If we don't have aliases
1558         computed check stmt_ann->references_memory instead of counting
1559         virtual operands.
1560  
1561 2007-09-08  Segher Boessenkool  <segher@kernel.crashing.org>
1562
1563         * cse.c (fold_rtx): Use validate_unshare_change() instead of
1564         validate_change() in one more case.
1565
1566 2007-09-08  Zdenek Dvorak  <ook@ucw.cz>
1567
1568         PR tree-optimization/32283
1569         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Use
1570         estimated_loop_iterations.
1571         (determine_use_iv_cost_condition): Decrease cost of expressions
1572         used in iv elimination.
1573
1574 2007-09-08  Richard Guenther  <rguenther@suse.de>
1575
1576         * tree-cfg.c (verify_gimple_expr): Avoid building new
1577         pointer types, use TYPE_POINTER_TO if available instead.
1578
1579 2007-09-08  Uros Bizjak  <ubizjak@gmail.com>
1580
1581         PR target/33329
1582         PR rtl-optimization/26449
1583         * config/i386/sse.md (mulv4si3): Do not expand sse2 sequence.
1584         (*sse2_mulv4si3): New define_insn_and_split pattern. Split insn in
1585         split1 pass.
1586         (mulv16qi3): Implement as define_insn_and_split pattern instead of
1587         define_expand.  Split insn in split1 pass.
1588         (mulv2di3): Ditto.
1589
1590 2007-09-08  Dorit Nuzman  <dorit@il.ibm.com>
1591
1592         PR tree-optimization/33301
1593         * tree-vect-analyze (analyze_operations): Look at the type of the rhs
1594         when relevant.
1595
1596 2007-09-07  Zdenek Dvorak  <ook@ucw.cz>
1597
1598         PR tree-optimization/32183
1599         * Makefile.in (tree-ssa-reassoc.o): Also depend on $(CFGLOOP_H).
1600
1601         * tree-ssa-reassoc.c: Include cfgloop.h.
1602         (is_reassociable_op): Add a loop argument and return true only
1603         for inside loop.
1604         (linearize_expr): Updated.
1605         (should_break_up_subtract): Likewise.
1606         (linearize_expr_tree): Likewise.
1607         (init_reassoc): Call loop_optimizer_init with
1608         AVOID_CFG_MODIFICATIONS.  Remove calculate_dominance_info call
1609         with CDI_DOMINATORS.
1610         (fini_reassoc): Call loop_optimizer_finalize.
1611
1612 2007-09-07  Sterling Augustine  <sterling@tensilica.com>
1613
1614         * config/xtensa/lib2funcs.S (__xtensa_sync_caches): Use an ISYNC even
1615         if there is no i-cache.
1616
1617 2007-09-07  Richard Guenther  <rguenther@suse.de>
1618
1619         Reapply
1620         2007-09-06  Richard Guenther  <rguenther@suse.de>
1621
1622         PR tree-optimization/32586
1623         * tree-ssa-sccvn.c (simplify_binary_expression): Avoid
1624         folding if nothing changed.
1625         (simplify_unary_expression): New function.  Do tree combining
1626         on conversion like codes.
1627         (try_to_simplify): Call it.
1628
1629 2007-09-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1630
1631         PR target/33286
1632         * gthr-posix.h (__gthread_active_p): Add implementation for hppa-hpux.
1633         (__gthread_active,__gthread_start, __gthread_active_init): New.
1634         * gthr-posix95.h: Likewise.
1635
1636 2007-09-07  Roman Zippel <zippel@linux-m68k.org>
1637
1638         * function.h (struct function): Rename calls_unwind_init
1639         to saves_all_registers.
1640         (current_function_saves_all_registers): Renamed from
1641         current_function_calls_unwind_init.
1642         * reload1.c (reload): Set current_function_saves_all_registers.
1643         * except.c (expand_builtin_unwind_init): Likewise.
1644         * config/m68k/m68k.c (m68k_save_reg): Use
1645         current_function_saves_all_registers to save pic register.
1646
1647 2007-09-07  Janis Johnson  <janis187@us.ibm.com>
1648
1649         config/m68k/m68k.c (floating_exact_log2): Update call to real_2expN.
1650         config/s390/s390.md (fixuns_trunc<BFP:mode><GPR:mode>2): Ditto.
1651
1652         Reapply reverted changes:
1653
1654         2007-09-06  Jan Hubicka  <jh@suse.cz>
1655  
1656         * config/i386.c (ix86_expand_lround, ix86_expand_round): Update call of
1657         real_2expN.
1658
1659         2007-09-06  Richard Sandiford  <richard@codesourcery.com>
1660
1661         * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
1662         (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.
1663
1664         2007-09-05  Janis Johnson  <janis187@us.ibm.com>
1665
1666         * optabs.c (expand_float): Convert unsigned integer as signed only
1667         if it provides sufficient accuracy; add mode argument to real_2expN.
1668         (expand_fix): Fix comment typos; extend binary float into mode
1669         wider than destination for converion to unsigned integer; add mode
1670         argument to real_2expN.
1671         * real.c (real_2expN): Add mode argument to special-case decimal
1672         float values.
1673         * real.h (real_2expN): Ditto.
1674         * fixed-value.c (check_real_for_fixed_mode): Add mode argument to
1675         real_2expN.
1676         (fixed_from_string): Ditto.
1677         (fixed_to_decimal): Ditto.
1678         (fixed_convert_from_real): Ditto.
1679         (real_convert_from_fixed): Ditto.
1680         * config/rs6000/rs6000.md (FP): Include DD and TD modes.
1681         * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
1682         muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
1683         floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.
1684
1685 2007-09-07  Diego Novillo  <dnovillo@google.com>
1686
1687         * tree-flow.h (const_block_stmt_iterator): Remove.
1688         Update all users to use block_stmt_iterator.
1689         * tree-iterator.h (const_tree_stmt_iterator): Remove.
1690         Update all users to use tree_stmt_iterator.
1691
1692 2007-09-07  Sandra Loosemore  <sandra@codesourcery.com>
1693
1694         * config/mips/mips.c (mips_set_current_function): Temporarily
1695         make this a no-op to fix bootstrap errors, pending rewrite.
1696
1697 2007-09-07  Jan Hubicka  <jh@suse.cz>
1698
1699         * reorg.c (dbr_schedule): Move code removing placeholder USEs later
1700         in the pass.
1701
1702 2007-09-07  Dorit Nuzman  <dorit@il.ibm.com>
1703
1704         PR tree-optimization/33299
1705         * tree-vect-transform.c (vect_create_epilog_for_reduction): Update
1706         uses for all relevant loop-exit phis, not just the first.
1707
1708 2007-09-07  Richard Guenther  <rguenther@suse.de>
1709
1710         PR middle-end/33330
1711         * tree-ssa-operands.c (access_can_touch_variable): An access
1712         of the form (*p)[0] can touch a variable of same size.
1713
1714 2007-09-07  Jan Hubicka  <jh@suse.cz>
1715
1716         * passes.c (init_optimization_passes): Add simple dce and addressable
1717         passes.
1718         * tree-ssa.c (execute_update_addresses_taken): New function.
1719         (pass_update_address_taken): New.
1720         * tree-ssa-dse.c (execute_simple_dse): New function.
1721         (pass_simple_dse): New.
1722         * tree-pass.h (pass_simple_dse, pass_update_address_taken): Declare.
1723
1724 2007-09-07  Tobias Burnus  <burnus@net-b.de>
1725
1726         PR middle-end/33321
1727         * doc/invoke.texi: Fix -Wstrict-overflow= table.
1728
1729 2007-09-07  Richard Guenther  <rguenther@suse.de>
1730
1731         Revert
1732         2007-09-06  Richard Guenther  <rguenther@suse.de>
1733
1734         PR tree-optimization/32586
1735         * tree-ssa-sccvn.c (simplify_binary_expression): Avoid
1736         folding if nothing changed.
1737         (simplify_unary_expression): New function.  Do tree combining
1738         on conversion like codes.
1739         (try_to_simplify): Call it.
1740
1741 2007-09-07  Richard Guenther  <rguenther@suse.de>
1742             Uros Bizjak  <ubizjak@gmail.com>
1743
1744         PR tree-optimization/32821
1745         * tree_if_conv.c (combine_blocks): Use alloc_stmt_list instead of
1746         NULL in the call to set_bb_stmt_list.
1747
1748 2007-09-07  Richard Sandiford  <richard@codesourcery.com>
1749
1750         * config/mips/mips.c (build_mips16_call_stub): Emit all direct
1751         float calls here, rather than leaving some to the caller.
1752         Use call_internal_direct and call_value_internal_direct.
1753         * config/mips/mips.md (call_internal_direct): New pattern.
1754         (call_value_internal_direct): Likewise.
1755
1756 2007-09-07  Richard Sandiford  <richard@codesourcery.com>
1757
1758         * config/mips/mips.c (mips_base_move_loop_invariants): New variable.
1759         (mips_set_mips16_mode): Restore flag_move_loop_invariants, then set
1760         to 0 for MIPS16.
1761         (override_options): Set mips_base_move_loop_invariants.
1762
1763 2007-09-07  Richard Sandiford  <richard@codesourcery.com>
1764
1765         * config/mips/mips.opt (mcode-readable=): Move to keep list
1766         alphabetical.
1767
1768 2007-09-07  Richard Sandiford  <richard@codesourcery.com>
1769
1770         * doc/invoke.texi: Document the MIPS -mlocal-sdata, -mextern-sdata
1771         and -mgpopt options.  Adjust the -G documentation to match.
1772         * config/mips/mips.opt (mextern-data, mgpopt, mlocal-data): New.
1773         * config/mips/mips.c (mips_rtx_constant_in_small_data_p): New
1774         function, split out from mips_classify_symbol.  Return false for
1775         !TARGET_LOCAL_SDATA.
1776         (mips_classify_symbol): Call mips_rtx_constant_in_small_data_p.
1777         Only use GP-relative accesses for non-pool symbols if TARGET_GPOPT.
1778         (override_options): Check whether the -mgpopt setting is consistent
1779         with the other flags.
1780         (symbolic_expression_p): Delete.
1781         (mips_select_rtx_section): Use mips_rtx_constant_in_small_data_p
1782         and default_elf_select_rtx_section.
1783         (mips_in_small_data_p): Honor section attributes for MIPS16 too.
1784         Return false for local data unless TARGET_LOCAL_SDATA.  Likewise
1785         external data and TARGET_EXTERN_SDATA.
1786
1787 2007-09-07  Tobias Burnus  <burnus@net-b.de>
1788
1789         PR fortran/33303
1790         * doc/cpp.texi (Common Predefined Macros): Add __GFORTRAN__.
1791
1792 2007-09-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1793
1794         * regrename.c (copyprop_hardreg_forward_1): New variable next. Use
1795         FOR_BB_INSNS_SAFE instead of for loop.
1796         * cse.c (cse_extended_basic_block): Likewise.
1797         * postreload.c (reload_cse_regs_1): New variable next. Make sure
1798         that the for loop does not invoke NEXT_INSN on a deleted insn.
1799         * function.c (instantiate_virtual_regs): Likewise.
1800         * lower-subreg.c (remove_retval_note): Likewise.
1801         (decompose_multiword_subregs): Use FOR_BB_INSNS_SAFE instead of
1802         FOR_BB_INSNS.
1803         * emit-rtl.c (remove_insn): Set NEXT_INSN and PREV_INSN to NULL on
1804         a deleted insn.
1805         * cfgrtl.c (delete_insn): Set JUMP_LABEL to NULL on a deleted
1806         insn, if it's a jump.
1807         (try_redirect_by_replacing_jump): New variable jump_p. Call
1808         tablejump_p before delete_insn_chain.
1809         * reload1.c (reload): New variable next. Make sure that the for
1810         loop does not invoke NEXT_INSN on a deleted insn.
1811         (fixup_eh_region_note): Make the loop terminate if i becomes NULL.
1812         (delete_output_reload): New variable prev. Make sure the the for
1813         loops do not invoke PREV_INSN on a deleted insn.
1814
1815 2007-09-06  Zdenek Dvorak  <ook@ucw.cz>
1816
1817         * cgraphbuild.c (rebuild_cgraph_edges): Export.
1818         * cgraph.h (rebuild_cgraph_edges): Declare.
1819         * tree-pass.h (pass_expand_omp_ssa): New.
1820         * omp-low.c (find_omp_clause): Export.
1821         (copy_var_decl): Split from omp_copy_decl_2.
1822         (build_omp_barrier): Return the call to emit instead of emitting
1823         it directly.
1824         (lower_rec_input_clauses, expand_omp_single): Gimplify the result of
1825         build_omp_barrier.
1826         (extract_omp_for_data, expand_parallel_call, expand_omp_parallel,
1827         expand_omp_for_generic, expand_omp_for_static_nochunk,
1828         expand_omp_for_static_chunk, expand_omp_for, expand_omp_sections):
1829         Adapted to work on SSA form.
1830         (execute_expand_omp): Do not invalidate dominance information.
1831         (gate_expand_omp): Do not run with -fopenmp-ssa flag.
1832         (gate_expand_omp_ssa, pass_expand_omp_ssa): New.
1833         * gimplify.c (gimplify_omp_for): Ensure that the control variable is
1834         a gimple_reg.
1835         (force_gimple_operand): Allow gimplifying code expressions without
1836         value.
1837         * tree-predcom.c (mark_virtual_ops_for_renaming): Handle phi nodes.
1838         * common.opt (fopenmp-ssa): New.
1839         * tree-flow.h (find_omp_clause, copy_var_decl): Declare.
1840         * Makefile.in (tree-cfg.o): Add TREE_INLINE_H dependency.
1841         * tree-cfg.c: Include tree-inline.h.
1842         (struct move_stmt_d): Replace vars_to_remove by vars_map field.
1843         (replace_by_duplicate_decl, replace_ssa_name,
1844         mark_virtual_ops_in_region): New functions.
1845         (move_stmt_r, move_block_to_fn, move_sese_region_to_fn): Adapted
1846         to work on SSA form.
1847         * passes.c (init_optimization_passes): Add pass_expand_omp_ssa pass.
1848         * tree-ssa-operands.c (get_expr_operands): Handle operands of OMP
1849         constructs.
1850
1851 2007-09-06  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1852
1853         * tree-loop-linear.c: Include obstack.h.
1854         (linear_transform_loops): New obstack lambda_obstack.
1855         Initialize it, pass it to gcc_loopnest_to_lambda_loopnest,
1856         lambda_loopnest_transform, lambda_loopnest_to_gcc_loopnest calls
1857         and free afterwards.
1858         * lambda.h (struct obstack): New forward declaration.
1859         (lambda_linear_expression_new): New parameter of type struct
1860         obstack *.
1861         (lambda_loopnest_new): Likewise.
1862         (lambda_loopnest_transform): Likewise.
1863         (lambda_body_vector_new): Likewise.
1864         (lambda_body_vector_compute_new): Likewise.
1865         (gcc_loopnest_to_lambda_loopnest): Likewise.
1866         (lambda_loopnest_to_gcc_loopnest): Likewise.
1867         * lambda-code.c: Include obstack.h.
1868         (lambda_lattice_new): New parameter lambda_obstack.  Use it for
1869         allocation of ret.
1870         (lambda_body_vector_new): Likewise.
1871         (lambda_linear_expression_new): Likewise.
1872         (lambda_lattice_new): Likewise.
1873         (lambda_loopnest_new): Likewise.  Additionally use obstack to
1874         allocate LN_LOOPS(ret).
1875         (lambda_lattice_compute_base): New parameter lambda_obstack.  Pass
1876         it to lambda_lattice_new.
1877         (lambda_body_vector_compute_new): New parameter lambda_obstack.
1878         Pass it to lambda_body_vector_new.
1879         (lambda_lattice_compute_base): New paramater lambda_obstack.  Pass
1880         it to lambda_lattice_new.
1881         (compute_nest_using_fourier_motzkin): New parameter lambda_obstack.
1882         Pass it to lambda_loopnest_new, lambda_linear_expression_new.
1883         (lambda_compute_target_space): Likewise.
1884         (lambda_compute_auxillary_space): New parameter lambda_obstack.
1885         Pass it to lambda_lattice_compute_base and
1886         compute_nest_using_fourieer_motzkin.
1887         (lambda_loopnest_transform): New parameter lambda_obstack.  Pass
1888         it to lambda_lattice_compute_base, lambda_lattice_auxillary_space
1889         and lambda_lattice_compute_target_space.
1890         (gcc_tree_to_linear_expression): Nex parameter lambda_obstack.
1891         Pass it to lambda_linear_expression_new.
1892         (gcc_loop_to_lambda_loop): New parameter lambda_obstack.  Pass it
1893         to gcc_tree_to_linear_expression.
1894         (gcc_loopnest_to_lambda_loopnest): New parameter lambda_obstack.
1895         Pass it to gcc_loop_to_lambda_loop and lambda_loopnest_new.
1896         (lambda_loopnest_to_gcc_loopnest): New parameter lambda_obstack.
1897         Pass it to lambda_body_vector_new and
1898         lambda_body_vector_compute_new.
1899         * Makefile.in (tree-loop-linear.o): Add $(OBSTACK_H) dependency.
1900         (lambda-code.o): Likewise.
1901
1902 2007-09-06  Chao-ying Fu  <fu@mips.com>
1903
1904         * ginclude/stdfix.h: New file.
1905         * Makefile.in (USER_H): Add $(srcdir)/ginclude/stdfix.h.
1906         (convert.o): Add dependence on fixed-value.h.
1907         * c-convert.c (convert): Support FIXED_POINT_TYPE.
1908         * c-cppbuiltin.c (builtin_define_fixed_point_constants): New function
1909         to define fixed-point constants.
1910         (c_cpp_builtins): Define fixed-point constants.
1911         * convert.c (fixed-value.h): New include.
1912         (convert_to_real): Update comment to include fixed-point.
1913         Support FIXED_POINT_TYPE.
1914         (convert_to_integer): Update comment to include fixed-point.
1915         Support FIXED_POINT_TYPE.
1916         (convert_to_complex): Support FIXED_POINT_TYPE.
1917         (convert_to_fixed): New function.
1918         * convert.h (convert_to_fixed): Declare.
1919         * genopinit.c: Add comment about $Q for only fixed-point modes.
1920         (optabs): Add fract_optab, fractuns_optab, satfract_optab,
1921         satfractuns_optab, add_optab, ssadd_optab, usadd_optab, sub_optab,
1922         sssub_optab, ussub_optab, smul_optab, ssmul_optab, usmul_optab,
1923         ssmadd_widen_optab, usmadd_widen_optab, ssdiv_optab, udiv_optab,
1924         usdiv_optab, ssashl_optab, usashl_optab, neg_optab, ssneg_optab,
1925         usneg_optab for fixed-point modes.
1926         (gen_insn): Add force_fixed to track the $Q format for all fixed-point
1927         modes.
1928         * optabs.c (optab_for_tree_code): For *DIV_EXPR, LSHIFT_EXPR,
1929         PLUS_EXPR, MINUS_EXPR, MULT_EXPR, NEGATE_EXPR, return signed or
1930         unsigned saturation optabs, when type is saturating.
1931         (shift_optab_p): Return true for SS_ASHIFT or US_ASHIFT.
1932         (expand_fixed_convert): New function.
1933         (gen_fixed_libfunc, gen_signed_fixed_libfunc,
1934         gen_unsigned_fixed_libfunc, gen_int_fp_fixed_libfunc,
1935         gen_int_fp_signed_fixed_libfunc, gen_int_fixed_libfunc,
1936         gen_int_signed_fixed_libfunc, gen_int_unsigned_fixed_libfunc,
1937         gen_fract_conv_libfunc, gen_fractuns_conv_libfunc,
1938         gen_satfract_conv_libfunc, gen_satfractuns_conv_libfunc): New
1939         functions.
1940         (init_optabs): Initialize ssadd_optab, usadd_optab, sssub_optab,
1941         ussub_optab, ssmul_optab, usmul_optab, ssmadd_widen_optab,
1942         usmadd_widen_optab, ssmsub_widen_optab, usmsub_widen_optab,
1943         ssdiv_optab, usdiv_optab, ssashl_optab, usashl_optab, ssneg_optab,
1944         usneg_optab, fract_optab, fractuns_optab, satfract_optab,
1945         satfractuns_optab.
1946         Initialize fixed-point libraries, including add, ssadd, usadd, sub,
1947         sssub, ussub, mul, ssmul, usmul, div, ssdiv, udiv, usdiv, ashl,
1948         ssashl, usashl, ashr, lshr, neg, ssneg, usneg, cmp, fract, satfract,
1949         fractuns, satfractuns.
1950         * optabs.h (enum optab_index): Add OTI_ssadd, OTI_usadd, OTI_sssub,
1951         OTI_ussub, OTI_ssmul, OTI_usmul, OTI_ssdiv, OTI_usdiv, OTI_ssneg,
1952         OTI_usneg, OTI_ssashl, OTI_usashl, OTI_ssmadd_widen, OTI_usmadd_widen,
1953         OTI_ssmsub_widen,  OTI_usmsub_widen.
1954         (ssadd_optab, usadd_optab, sssub_optab, ussub_optab, ssmul_optab,
1955         usmul_optab, ssdiv_optab, usdiv_optab, ssneg_optab, usneg_optab,
1956         ssashl_optab, usashl_optab, ssmadd_widen_optab, usmadd_widen_optab,
1957         umsub_widen_optab, usmsub_widen_optab): Define.
1958         (enum convert_optab_index): Add COI_fract, COI_fractuns, COI_satfract,
1959         COI_satfractuns.
1960         (fract_optab, fractuns_optab, satfract_optab, satfractuns_optab):
1961         Define.
1962         (expand_fixed_convert): Declare.
1963         * expr.c (convert_move): Support the move of fixed-point modes.
1964         (emit_move_insn_1): Handle fixed-point mode to move via integer.
1965         (categorize_ctor_elements_1): Handle FIXED_CST.
1966         (count_type_elements): Handle FIXED_POINT_TYPE.
1967         (expand_expr_real_1): For VECTOR_CST, check MODE_VECTOR_FRACT,
1968         MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
1969         Support FIXED_CST.
1970         For PLUS_EXPR and MINUS_EXPR, support saturating and non-saturating
1971         multiply and add/subtract for fixed-point types.
1972         For MULT_EXPR, *DIV_EXPR, *SHIFT_EXPR, if the mode if a fixed-point
1973         mode, we jump to binop directly.
1974         Support FIXED_CONVERT_EXPR.
1975         (do_store_flag): Check FIXED_CST to put a constant second.
1976         (vector_mode_valid_p): Handle MODE_VECTOR_FRACT,
1977         MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
1978         (const_vector_from_tree): Support FIXED_CST.
1979         * doc/extend.texi (Fixed-Point): New node.
1980         * doc/md.texi (ssadd, usadd, sssub, ussub, ssmul, usmul, ssdiv, usdiv,
1981         ssmadd, usmadd, ssmsub, usmsub, ssashl, usashl, ssneg, usneg, fract,
1982         satfract, fractuns, satfractuns): Document them.
1983
1984 2007-09-07  Bernd Schmidt  <bernd.schmidt@analog.com>
1985
1986         * config/bfin/bfin.h (PREFERRED_RELOAD_CLASS): Don't reload autoinc
1987         addresses into I registers.
1988
1989 2007-09-06  Jan Hubicka  <jh@suse.cz>
1990             Andreas Tobler  <a.tobler@schweiz.org>
1991
1992         * config/darwin.c (machopic_indirect_data_reference): Avoid invalid
1993         sharing.
1994         (machopic_legitimize_pic_address): Likewise.
1995
1996 2007-09-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1997             Jan Hubicka  <jh@suse.cz>
1998
1999         * config/spu/spu.md (floatsidf2): Use convert_optab_libfunc
2000         instead of ufloat_optab->handlers directly.
2001         (floatdidf2): Likewise.
2002
2003 2007-09-06  Sandra Loosemore  <sandra@codesourcery.com>
2004
2005         * config/mips/mips.c:  Include diagnostic.h.
2006         (mips_set_current_function): Check errorcount and sorrycount 
2007         before generating RTL.
2008
2009 2007-09-06  Richard Sandiford  <richard@codesourcery.com>
2010
2011         PR target/33256
2012         * config/mips/mips.c (mips_classify_symbolic_expression): New function.
2013         (mips_classify_address): Use it instead of mips_symbolic_constant_p.
2014         (print_operand_reloc): Likewise.
2015
2016 2007-09-06  Janis Johnson  <janis187@us.ibm.com>
2017
2018         Revert:
2019
2020         2007-09-06  Jan Hubicka  <jh@suse.cz>
2021  
2022         * i386.c (ix86_expand_lround, ix86_expand_round): Update call of
2023         real_2expN.
2024
2025         2007-09-06  Richard Sandiford  <richard@codesourcery.com>
2026
2027         * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
2028         (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.
2029
2030         2007-09-05  Janis Johnson  <janis187@us.ibm.com>
2031
2032         * optabs.c (expand_float): Convert unsigned integer as signed only
2033         if it provides sufficient accuracy; add mode argument to real_2expN.
2034         (expand_fix): Fix comment typos; extend binary float into mode
2035         wider than destination for converion to unsigned integer; add mode
2036         argument to real_2expN.
2037         * real.c (real_2expN): Add mode argument to special-case decimal
2038         float values.
2039         * real.h (real_2expN): Ditto.
2040         * fixed-value.c (check_real_for_fixed_mode): Add mode argument to
2041         real_2expN.
2042         (fixed_from_string): Ditto.
2043         (fixed_to_decimal): Ditto.
2044         (fixed_convert_from_real): Ditto.
2045         (real_convert_from_fixed): Ditto.
2046         * config/rs6000/rs6000.md (FP): Include DD and TD modes.
2047         * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
2048         muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
2049         floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.
2050
2051 2007-09-06  Tom Tromey  <tromey@redhat.com>
2052
2053         * tree-cfg.c (remove_bb): Only warn if line is non-zero.
2054         * c-pch.c (c_common_read_pch): Restore current location after
2055         reading PCH file.
2056         * tree.c (expand_location): Update.
2057         (expr_filename): Changed return type.  Unified the two cases.
2058         (expr_lineno): Likewise.
2059         (annotate_with_file_line): Don't use EXPR_LINENO and EXPR_FILENAME
2060         as lvalues.
2061         * toplev.c (line_table): Changed type.
2062         (general_init): Update.
2063         (realloc_for_line_map): New function.
2064         (general_init): Allocate line_table using GC.
2065         * fix-header.c (line_table): Changed type.
2066         (read_scan_file): Update.
2067         (read_scan_file): Update.
2068         * c-ppoutput.c (maybe_print_line): Update.
2069         (print_line): Update.
2070         (cb_line_change): Update.
2071         (cb_define): Update.
2072         (pp_file_change): Update.
2073         * c-opts.c (c_common_init_options): Update.
2074         (finish_options): Update.
2075         (push_command_line_include): Update.
2076         * c-lex.c (cb_line_change): Update.
2077         (cb_def_pragma): Update.
2078         (cb_define): Update.
2079         (cb_undef): Update.
2080         (c_lex_with_flags): Use cpp_get_token_with_location.
2081         * input.h (line_table): Changed type.
2082         (location_from_locus): New macro.
2083         * tree.h (EXPR_FILENAME): No longer an lvalue.
2084         (EXPR_LINENO): Likewise.
2085         (expr_locus, set_expr_locus): Declare separately for
2086         USE_MAPPED_LOCATION.
2087         (expr_filename, expr_lineno): Changed return type.
2088         * gimplify.c (tree_to_gimple_tuple): Use SET_EXPR_LOCUS.
2089         * cfgexpand.c (expand_gimple_cond_expr): Use location_from_locus.
2090         (expand_gimple_basic_block): Likewise.
2091         * final.c (final_scan_insn): Use expanded_location.
2092
2093 2007-09-06  Richard Guenther  <rguenther@suse.de>
2094
2095         PR tree-optimization/32586
2096         * tree-ssa-sccvn.c (simplify_binary_expression): Avoid
2097         folding if nothing changed.
2098         (simplify_unary_expression): New function.  Do tree combining
2099         on conversion like codes.
2100         (try_to_simplify): Call it.
2101         * builtins.c (fold_builtin_cexp): Fold the built expressions.
2102         * fold-const.c (fold_unary): Test result of get_callee_fndecl().
2103
2104 2007-09-06  Jan Hubicka  <jh@suse.cz>
2105
2106         PR target/33318
2107         * cse.c (fold_rtx): Avoid invalid sharing.
2108
2109 2007-09-06  Richard Sandiford  <richard@codesourcery.com>
2110
2111         * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
2112         (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.
2113
2114 2007-09-06  Revital Eres  <eres@il.ibm.com>
2115
2116         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
2117         Fix offsettable memory reference for 750CL.
2118
2119 2007-09-06  Pat Haugen  <pthaugen@us.ibm.com>
2120
2121         * reload.c (find_reloads_address_1): Try to preserve original
2122         base/index regclass of operands.
2123         * regrename.c (scan_rtx_address): Likewise.
2124         (replace_oldest_value_addr): Likewise.
2125
2126 2007-09-06  Richard Guenther  <rguenther@suse.de>
2127
2128         PR tree-optimization/33302
2129         * domwalk.c (walk_dominator_tree): The exit block is
2130         interesting even if it is not reachable.
2131
2132 2007-09-06  Richard Sandiford  <richard@codesourcery.com>
2133
2134         PR middle-end/33306
2135         * optabs.c (avoid_expensive_constant): Do nothing if MODE is VOIDmode.
2136
2137 2007-09-06  Basile Starynkevitch  <basile@starynkevitch.net>
2138
2139         * cfg.c (dump_bb_info, dump_edge_info): Added cfun test for 
2140         robustness.
2141
2142 2007-09-05  Ian Lance Taylor  <iant@google.com>
2143
2144         * tree-pretty-print.c (dump_decl_name): Cast LABEL_DECL_UID to int
2145         when printing.
2146         (dump_generic_node): Likewise.
2147         * print-rtl.c (print_decl_name): Likewise.
2148         * print-tree.c (print_node_brief): Likewise.
2149         (print_node): Likewise.
2150         * Makefile.in (RTL_BASE_H): Add alias.h.
2151         (TREE_H): Likewise.
2152
2153 2007-09-06  Jesper Nilsson  <jesper.nilsson@axis.com>
2154
2155         * longlong.h [__CRIS_arch_version >= 8] (count_trailing_zeros):
2156         Defined.
2157         * config/cris/cris.md (ctzsi2, cris_swap_bits): Implemented.
2158         * config/cris/cris.h (CTZ_DEFINED_VALUE_AT_ZERO): Defined.
2159
2160 2007-09-06  Jie Zhang  <jie.zhang@analog.com>
2161
2162         * config.gcc (tm_file): Add linux.h for bfin*-uclinux*.
2163         (tm_defines): Define UCLIBC_DEFAULT to 1.
2164         (extra_options): Add linux.opt.
2165         * config/bfin/linux.h (CPLUSPLUS_CPP_SPEC): Don't define.
2166         (CRT_CALL_STATIC_FUNCTION): Likewise.
2167         (NO_IMPLICIT_EXTERN_C): Likewise.
2168         (TARGET_OS_CPP_BUILTINS): Define as LINUX_TARGET_OS_CPP_BUILTINS.
2169         * config/bfin/elf.h (OBJECT_FORMAT_ELF): Don't define.
2170         * config/bfin/uclinux.h (CPLUSPLUS_CPP_SPEC): Don't define.
2171         (ENDFILE_SPEC): Don't define.
2172         (LIB_SPEC): Likewise.
2173         (CRT_CALL_STATIC_FUNCTION): Likewise.
2174         (NO_IMPLICIT_EXTERN_C): Likewise.
2175         (LINUX_TARGET_OS_CPP_BUILTINS): Likewise.
2176         (TARGET_OS_CPP_BUILTINS): Define as LINUX_TARGET_OS_CPP_BUILTINS.
2177
2178 2007-09-06  Jan Hubicka  <jh@suse.cz>
2179
2180         * i386.c (ix86_expand_lround, ix86_expand_round): Update call of
2181         real_2expN.
2182
2183 2007-09-06  Jan Hubicka  <jh@suse.cz>
2184
2185         * opts.c (common_handle_option): Enable inlining functions for
2186         -fprofile-generate.
2187
2188 2007-09-06  Jakub Jelinek  <jakub@redhat.com>
2189
2190         * builtin-attrs.def (ATTR_NONNULL_3): New.
2191         (DEF_FORMAT_ATTRIBUTE): Use just ATTR_NONNULL_##FA instead of
2192         ATTR_NOTHROW_NONNULL_##FA.
2193         (DEF_FORMAT_ATTRIBUTE_NOTHROW, DEF_FORMAT_ATTRIBUTE_BOTH): New macros.
2194         (ATTR_FORMAT_PRINTF_NOTHROW_2_0, ATTR_PRINTF_NOTHROW_2_3,
2195         ATTR_FORMAT_PRINTF_NOTHROW_3_0, ATTR_FORMAT_PRINTF_NOTHROW_3_4,
2196         ATTR_FORMAT_PRINTF_NOTHROW_4_0, ATTR_PRINTF_NOTHROW_4_5,
2197         ATTR_FORMAT_PRINTF_NOTHROW_5_0, ATTR_FORMAT_PRINTF_NOTHROW_5_6,
2198         ATTR_FORMAT_SCANF_NOTHROW_2_0, ATTR_FORMAT_SCANF_NOTHROW_2_3,
2199         ATTR_FORMAT_STRFTIME_NOTHROW_3_0, ATTR_FORMAT_STRFMON_NOTHROW_3_4):
2200         New.
2201         (ATTR_FORMAT_PRINTF_4_0, ATTR_PRINTF_4_5, ATTR_FORMAT_PRINTF_5_0,
2202         ATTR_FORMAT_PRINTF_5_6, ATTR_FORMAT_STRFTIME_3_0,
2203         ATTR_FORMAT_NOTHROW_3_4): Remove.
2204         * builtins.def (snprintf, sprintf, sscanf, vsnprintf, vsprintf,
2205         vsscanf, strfmon, strftime, __snprintf_chk, __sprintf_chk,
2206         __vsnprintf_chk, __vsprintf_chk): Use ATTR_FORMAT_*_NOTHROW_*
2207         instead of ATTR_FORMAT_*_*.
2208
2209 2007-09-06  Hans-Peter Nilsson  <hp@axis.com>
2210
2211         * config/cris/cris.c (cris_emit_movem_store): Call copy_rtx on
2212         parts re-used for REG_FRAME_RELATED_EXPR.
2213
2214 2007-09-05  Janis Johnson  <janis187@us.ibm.com>
2215
2216         * optabs.c (expand_float): Convert unsigned integer as signed only
2217         if it provides sufficient accuracy; add mode argument to real_2expN.
2218         (expand_fix): Fix comment typos; extend binary float into mode
2219         wider than destination for converion to unsigned integer; add mode
2220         argument to real_2expN.
2221         * real.c (real_2expN): Add mode argument to special-case decimal
2222         float values.
2223         * real.h (real_2expN): Ditto.
2224         * fixed-value.c (check_real_for_fixed_mode): Add mode argument to
2225         real_2expN.
2226         (fixed_from_string): Ditto.
2227         (fixed_to_decimal): Ditto.
2228         (fixed_convert_from_real): Ditto.
2229         (real_convert_from_fixed): Ditto.
2230         * config/rs6000/rs6000.md (FP): Include DD and TD modes.
2231         * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
2232         muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
2233         floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.
2234
2235 2007-09-05  Ian Lance Taylor  <iant@google.com>
2236
2237         * init-regs.c (initialize_uninitialized_regs): Call
2238         emit_insn_before rather than add_insn_before.
2239
2240 2007-09-05  Jakub Jelinek  <jakub@redhat.com>
2241
2242         * builtins.def (BUILT_IN_VA_ARG_PACK): New built-in.
2243         * tree.h (CALL_EXPR_VA_ARG_PACK): Define.
2244         * tree-inline.h (copy_body_data): Add call_expr field.
2245         * tree-inline.c (expand_call_inline): Initialize call_expr.
2246         (copy_bb): Append anonymous inline fn arguments to arguments
2247         when inlining a CALL_EXPR_VA_ARG_PACK call.
2248         * builtins.c (expand_builtin): Issue an error if
2249         BUILT_IN_VA_ARG_PACK is seen during expand.
2250         (fold_call_expr, fold_builtin_call_array): Don't fold
2251         CALL_EXPR_VA_ARG_PACK CALL_EXPRs or calls with
2252         __builtin_va_arg_pack () call as last argument.
2253         * gimplify.c (gimplify_call_expr): If last argument to a vararg
2254         function is __builtin_va_arg_pack (), decrease number of call
2255         arguments and instead set CALL_EXPR_VA_ARG_PACK on the CALL_EXPR.
2256         * expr.c (expand_expr_real_1): Issue an error if
2257         CALL_EXPR_VA_ARG_PACK CALL_EXPR is seen during expand.
2258         * tree-pretty-print.c (dump_generic_node): Handle printing
2259         CALL_EXPR_VA_ARG_PACK bit on CALL_EXPRs.
2260         * doc/extend.texi (__builtin_va_arg_pack): Document.
2261
2262 2007-09-05  Adam Nemet  <anemet@caviumnetworks.com>
2263
2264         PR tree-optimization/21513
2265         * builtins.c (build_builtin_expect_predicate): New function.
2266         (fold_builtin_expect): Add argument for expected value.
2267         Distribute __builtin_expect over short-circuiting operations.
2268         Fold nested builtin_expects.
2269         (fold_builtin_2): Adjust call to fold_builtin_expect.
2270
2271 2007-09-05  Rask Ingemann Lambertsen  <rask@sygehus.dk>
2272
2273         PR web/32965
2274         PR tree-optimization/13756
2275         * doc/invoke.texi (Options That Control Optimization): Document
2276         -ftree-dse.
2277
2278 2007-09-05  Uros Bizjak  <ubizjak@gmail.com>
2279
2280         * gcc/config/i386/cpuid.h: New file.
2281         * gcc/config/i386/driver-i386.c: Include cpuid.h.
2282         (describe_cache): Shrink size and line strings to 100 bytes.
2283         (detect_caches_amd): Return "" for unsupported max_ext_level.
2284         Use __cpuid function.
2285         (detect_caches_intel): Return "" for unsupported max_level.
2286         Use __cpuid function.
2287         (host_detect_local_cpu): Change feature flag variables to
2288         unsigned int.  Initialize only extended feature flag variables.
2289         Use __get_cpuid_max to determine max supported cpuid level.
2290         Use __cpuid function to determine supported features.  Fix
2291         calculation of family id.  Remove is_amd and check signature
2292         directly.  Check for Geode signature.  Handle family 4 id.
2293         [PROCESSOR_GENERIC32]: New default for unknown family id.  Move
2294         cpu discovery code to lower part of the function.
2295         [PROCESSOR_PENTIUM, PROCESSOR_K6, PROCESSOR_ATHLON]: Do not tune
2296         for sub-architecture.
2297         [PROCESSOR_PENTIUMPRO]: Simplify cpu discovery code.
2298         [PROCESSOR_K8]: Add k8-sse3 architecture.
2299         [PROCESSOR_NOCONA]: Remove.
2300         [PROCESSOR_GENERIC64]: Ditto.
2301         * gcc/config/i386/x-i386 (driver-i386.o): Depend on cpuid.h.
2302         * gcc/config/i386/crtfastmath.c: Include cpuid.h.  Use __get_cpuid
2303         to check for SSE and FXSAVE support.
2304         * gcc/config/i386/t-crtfm (crtfastmath.o): Depend on cpuid.h.
2305         Add -minline-all-stringops.
2306         * gcc/config.gcc (i[34567]86-*-*): Add cpuid.h to extra_headers.
2307         (x86_64-*-*): Ditto.
2308
2309 2007-09-05  Jie Zhang  <jie.zhang@analog.com>
2310
2311         * config/bfin/linux-unwind.h: New file.
2312         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Define.
2313         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Define.
2314
2315 2007-09-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2316
2317         * Makefile.in (stmt.o): Add alloc-pool.h dependency.
2318         * stmt.c: Include alloc-pool.h.
2319         (struct case_node): Remove GTY marker.
2320         (add_case_node): New parameter case_node_pool.  Use it for
2321         allocation of r.
2322         (expand_case): New allocation pool case_node_pool.  Initialize it,
2323         pass to add_case_node and free it.
2324
2325 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
2326             David Ung  <davidu@mips.com>
2327             Nigel Stephens <nigel@mips.com>
2328
2329         Add mips16/nomips16 function attributes and -mflip-mips16 option
2330         for testing mixed-mode compilation.
2331
2332         * config/mips/mips.opt (mflip-mips16): New.
2333
2334         * config/mips/mips.h (SYMBOL_FLAG_MIPS16_FUNC): Define.
2335         (SYMBOL_FLAG_MIPS16_FUNC_P): Define.
2336
2337         * config/mips/mips.c (mips_base_target_flags): New.
2338         (mips_base_mips16): New.
2339         (mips_base_schedule_insns): New.
2340         (mips_base_reorder_blocks_and_partition): New.
2341         (mips_base_align_loops): New.
2342         (mips_base_align_jumps): New.
2343         (mips_base_align_functions): New.
2344         (mips16_flipper): New.
2345         (mips_attribute_table): Add "mips16" and "nomips16" entries.
2346         (TARGET_SET_CURRENT_FUNCTION): Define.
2347         (mips_mips16_type_p, mips_nomips16_type_p): New.
2348         (mips_comp_type_attributes): Check mips16/nomips16 attributes.
2349         (mips_function_ok_for_sibcall): Make it deal with functions with
2350         mips16 attributes.
2351         (mips_init_split_addresses): New, split out from override_options.
2352         (mips_init_relocs): New, split out from override_options.
2353         (was_mips16_p): New.
2354         (mips_set_mips16_mode): New, split out from override_options.
2355         (mips_set_current_function): New.
2356         (override_options): Add sorry for unsupported mips16/pic
2357         combination.  Remove error for mips16/dsp combination.  Save
2358         base option settings.  
2359         (mips_file_start): Move mips16 mode setting output from here....
2360         (mips_output_function_prologue): ....to here.
2361         (mips_output_mi_thunk): Check for mips16 function.
2362         (build_mips16_function_stub): Don't set .mips16 here.
2363         (build_mips16_call_stub): Likewise.
2364         (mips_expand_builtin): Error in mips16 mode.
2365         (mips_use_mips16_mode_p): New.
2366         (mips_encode_section_info): Check for mips16 function, and set
2367         SYMBOL_REF_FLAGS accordingly.
2368
2369         * doc/extend.texi (Function Attributes): Document new
2370         mips16/nomips16 attributes.
2371         * doc/invoke.texi (Option Summary): Add -mflip-mips16.
2372         (MIPS Options): Document -mflip-mips16.
2373
2374 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
2375
2376         * config/mips/mips.c (mips_legitimize_tls_address): Call sorry
2377         if we encounter TLS address in MIPS16 mode.
2378         (mips_legitimize_const_move): Check cannot_force_const_mem for
2379         the (const (plus symbol offset)) case; this forces invalid TLS
2380         address in MIPS16 mode to be caught by the above call to sorry.
2381         (override_options): Don't reset targetm.have_tls in MIPS16 mode,
2382         because that now enables emutls, which is not ABI compatible
2383         with native TLS in non-MIPS16 mode.
2384
2385 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
2386
2387         Add target hook invoked when cfun changes.
2388
2389         * doc/tm.texi (TARGET_SET_CURRENT_FUNCTION): Document.
2390         * target.h (struct gcc_target): Add set_current_function.
2391         * target-def.h (TARGET_SET_CURRENT_FUNCTION): Define.
2392         (TARGET_INITIALIZER): Add initializer for set_current_function.
2393         * tree.h (push_struct_function): New.
2394         * tree-inline.h (push_cfun, pop_cfun): Move declarations to...
2395         * function.h: Here.
2396         (set_cfun): Declare.
2397         * tree-inline.c (cfun_stack, push_cfun, pop_cfun): Moved to...
2398         * function.c: Here.
2399         (push_function_context_to): Use allocate_struct_function
2400         to create null context, not init_dummy_function_start.  Use set_cfun.
2401         (pop_function_context_from): Use set_cfun.
2402         (in_dummy_function): New.
2403         (invoke_set_current_function_hook): New.
2404         (set_cfun): New.
2405         (push_cfun, pop_cfun): Use set_cfun.
2406         (push_struct_function): New.
2407         (allocate_struct_function): Call invoke_set_current_function_hook
2408         before returning.
2409         (prepare_function_start): Don't set cfun here.  Remove unused
2410         argument; fix all callers.
2411         (init_dummy_function_start): Fiddle with in_dummy_function.  Call
2412         push_struct_function.
2413         (init_function_start): Set cfun here.
2414         (expand_dummy_function_end): Fiddle with in_dummy_function.  Pop cfun.
2415         * omp-low.c (create_omp_child_function): Use push_struct_function
2416         and pop_cfun to save/restore state.
2417         (expand_omp_parallel): Remove unused saved_cfun variable.
2418         * cgraphunit.c (ipa_passes): Use set_cfun.
2419         * gimple-low.c (record_vars_into): Use push_cfun/pop_cfun here.
2420         * dwarf2out.c (dwarf2out_abstract_function): Likewise.
2421         * matrix-reorg.c (transform_allocation_sites): Likewise.
2422         (matrix_reorg): Use set_cfun.
2423         * gimplify.c (gimplify_function_tree): Use push_cfun/pop_cfun here.
2424         * tree-optimize.c (tree_rest_of_compilation): Remove one redundant
2425         assignment to cfun; use set_cfun for the other.
2426         * tree-cfg.c (move_sese_region_to_fn): Use set_cfun.
2427         (dump_function_to_file): Use push_cfun/pop_cfun here.
2428         * c-decl.c (finish_function): Use set_cfun.
2429
2430 2007-09-05  Kenneth Zadeck <zadeck@naturalbridge.com>
2431
2432         * regrename.c (rerename_optimize): Use deferred rescanning and
2433         insert explicit calls to rescan insns when changed.
2434         
2435 2007-09-05  Jan Hubicka  <jh@suse.cz>
2436
2437         * optabs.c (libfunc_entry): Change optab to integer.
2438         (hash_libfunc, convert_optab_libfunc, optab_libfunc,
2439         set_optab_libfunc, set_conv_libfunc): Use optable indexes instead
2440         of pointers for hashing.
2441
2442 2007-09-05  Jan Hubicka  <jh@suse.cz>
2443
2444         * regrename.c (pass_regrename, pass_cprop_hardreg): Add RTL sharing
2445         verifier.
2446         * fwprop.c (pass_rtl_fwprop, pass_rtl_fwprop_add): Likewise.
2447         * see.c (pass_see): Likewise.
2448         * tracer.c (pass_tracer): Likewise.
2449         * postreload-gcse.c (pass_gcse2): Likewise.
2450         * postreload.c (pass_postreload_cse): Likewise.
2451         * mode-switching.c (pass_mode_switching): Likewise.
2452         * modulo-sched.c (pass_sms): Likewise.
2453         * cse.c (cse_insn): Likewise.
2454         * web.c (pass_web): Likweise.
2455         * combine-stack-adj.c (pass_stack_adjustments): Likewise.
2456         * dce.c (pass_ud_rtl_dce, pass_fast_rtl_dce): Likewise.
2457         * loop-init.c (pass_rtl_loop_init): Likewise.
2458         (pass_rtl_loop_done, pass_rtl_move_loop_, pass_rtl_unswitch,
2459         pass_rtl_unroll_and, pass_rtl_doloop): Likewise.
2460         * global.c (pass_global_alloc): Likewise.
2461         * ifcvt.c (pass_rtl_ifcvt, pass_if_after_combine,
2462         pass_if_after_reload): Likewise.
2463         * reload.c (pass_peephole2, pass_split_for_shoren_branches): Likewise.
2464         * dse.c (pass_rtl_dse1, pass_rtl_dse2): Likewise.
2465         * regmove.c (pass_regmove): Likewise.
2466         * function.c (pass_thread_prologugues_epilogues): Likewise.
2467         * gcse.c (pass_gcse): Likewise.
2468         * rtl-factoring.c (pass_rtl_seqabstr): Likewise.
2469         * lower-subreg.c (pass_lower_subreg2): Likewise.
2470         * bt-load.c (pass_branch_target_load): Likewise.
2471         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
2472         * cfgcleanup.c (pass_jump, pass_jump2): Likewise.
2473         * combine.c (pass_combine): Likewise.
2474         * bb-reorder.c (pass_duplicate_comp, pass_reorder_blocks): Likewise.
2475         (pass_partition_blocks): Likewise.
2476         * var-tracking.c (pass_variable_track): Likewise.
2477         * reg-stack.c (pass_stack_regs_run): Likewise.
2478         * sched-rgn.c (pass_sched, pass_sched2): Likewise.
2479         * passes.c (pass_postreload): Likewise.
2480         (execute_function_todo): Add TODO_verify_rtl_sharing handling code.
2481         * tree-pass.h (TODO_verify_rtl_sharing): New.
2482         (TODO_update_ssa, TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
2483         TODO_update_ssa_only_virtuals, TODO_remove_unused_locals,
2484         TODO_set_props, TODO_df_finish, TODO_df_verify,
2485         TODO_mark_first_instance, TODO_rebuild_alias): Renumber.
2486
2487 2007-09-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2488
2489         * fold-const.c (all_ones_mask_p, sign_bit_p, simple_operand_p,
2490         fold_real_zero_addition_p, reorder_operands_p,
2491         div_if_zero_remainder, fold_undefer_overflow_warnings,
2492         int_binop_types_match_p, fold_convert_const_int_from_int,
2493         fold_convert_const_int_from_real,
2494         fold_convert_const_int_from_fixed,
2495         fold_convert_const_real_from_real,
2496         fold_convert_const_real_from_fixed,
2497         fold_convert_const_fixed_from_fixed,
2498         fold_convert_const_fixed_from_int,
2499         fold_convert_const_fixed_from_real, maybe_lvalue_p,
2500         fold_checksum_tree, fold_check_failed, print_fold_checksum,
2501         debug_fold_checksum, multiple_of_p): Constify.
2502         * tree-flow-inline.h (get_lineno): Likewise.
2503         * tree-flow.h (get_lineno): Likewise.
2504         * tree-object-size.c (compute_object_offset, addr_object_size,
2505         alloc_object_size, pass_through_call): Likewise.
2506         * tree-pretty-print.c (op_symbol, print_call_name,
2507         print_struct_decl, do_niy): Likewise.
2508         * tree.h (fold_undefer_overflow_warnings, multiple_of_p,
2509         debug_fold_checksum): Likewise.
2510
2511 2007-09-04  Steven Bosscher  <steven@gcc.gnu.org>
2512
2513         PR middle-end/33029
2514         * lower-subreg.c (resolve_clobber): If we remove a REG_LIBCALL
2515         note, remove the associated REG_RETVAL note.
2516
2517 2007-09-04  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2518
2519         * config.gcc (powerpc*-*-*): Install
2520         spu2vmx.h, vec_types.h, and si2vmx.h headers.
2521         * config/rs6000/spu2vmx.h: New header.
2522         * config/rs6000/si2vmx.h: New header.
2523         * config/rs6000/vec_types.h: New header.
2524
2525 2007-09-05  Ben Elliston  <bje@au.ibm.com>
2526
2527         * varasm.c (initializer_constant_valid_p): Fix comment typo.
2528
2529 2007-09-05  Ben Elliston  <bje@au.ibm.com>
2530
2531         * config/rs6000/ppu_intrinsics.h (__ldarx): Use `Z' constraint,
2532         not `m' for *ptrp.
2533         (__stdcx): Make asm volatile.
2534         (__stwcx, __stdcx): Return only 0 or 1.
2535
2536 2007-09-05  Jan Hubicka  <jh@suse.cz>
2537
2538         Revert:
2539
2540         2007-09-04  Jan Hubicka  <jh@suse.cz>
2541         * tree-tailcall.c (eliminate_tail_call): Expect unrenamed return value.
2542
2543         2007-09-04  Richard Guenther  <rguenther@suse.de>
2544         * tree-ssa-operands.c (add_virtual_operand): Only mark
2545         stores as has_volatile_ops if alias information is not available.
2546
2547 2007-09-05  Jakub Jelinek  <jakub@redhat.com>
2548
2549         * config/rs6000/tramp.asm: Include config.h.
2550         Check __PIC__ or __pic__ macro instead of SHARED.
2551
2552         PR rtl-optimization/32300
2553         * see.c (see_copy_insn): New function.
2554         (see_def_extension_not_merged, see_merge_one_use_extension,
2555         see_merge_one_def_extension): Use it.  Avoid changing
2556         PREV_INSN/NEXT_INSN chains directly, insted emit insns
2557         into sequences.  Call df_insn_delete on temporary insns
2558         that won't be emitted into the insn stream.
2559         (rest_of_handle_see): Turn off DF_DEFER_INSN_RESCAN
2560         and run df_process_deferred_rescans () before run_fast_dce.
2561
2562         PR tree-optimization/33017
2563         * tree-data-ref.c (split_constant_offset) <case SSA_NAME>: Don't
2564         recurse for pure or const function calls.
2565
2566 2007-09-04  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2567
2568         * c-format.c: Include alloc-pool.h.
2569         (check_format_info_main): New argument fwt_alloc.  Use allocation
2570         pool instead of GC.  Remove GC deallocation code.
2571         (check_format_arg): Create allocation pool, pass it to
2572         check_format_info_main and free it afterwards.
2573         * Makefile.in (c-format.o): Add alloc-pool.h dependency.
2574
2575 2007-09-05  Ben Elliston  <bje@au.ibm.com>
2576
2577         * config/rs6000/ppu_intrinsics.h (__protected_stream_count):
2578         Rename count macro arugment for clarity.
2579         (__protected_unlimited_stream_set): Pass UG=1 to __dcbt_TH1000.
2580         (__protected_stream_set): Likewise, pass 0.
2581
2582 2007-09-04  Jan Hubicka  <jh@suse.cz>
2583
2584         * tree-tailcall.c (eliminate_tail_call): Expect unrenamed return value.
2585
2586 2007-09-04  Jan Hubicka  <jh@suse.cz>
2587
2588         * invoke.texi (-finline-small-functions): Document.
2589         * ipa-inline.c (cgraph_default_inline_p): Do not use DECL_INLINE
2590         when deciding what is inlinable.
2591         (cgraph_decide_recursive_inlining): Handle flag_inline_functions.
2592         (cgraph_decide_inlining_of_small_function): Handle new flags.
2593         (cgraph_decide_inlining_incrementally): Likewise.
2594         * opts.c (decode_options): Enable flag_inline_small_functions at -O2
2595         * common.opt (finline-small-functions): New.
2596         * Makefile.in (build/gengtype.o-warn): Work around PR29478
2597
2598 2007-09-04  Richard Guenther  <rguenther@suse.de>
2599
2600         * tree-ssa-operands.c (add_virtual_operand): Only mark
2601         stores as has_volatile_ops if alias information is not available.
2602
2603 2007-09-04  Andrew Haley  <aph@redhat.com>
2604
2605         * config/arm/libgcc-bpabi.ver: Add _Unwind_Backtrace as GCC_4.3.0.
2606
2607 2007-09-04  Andrew Haley  <aph@redhat.com>
2608
2609         * config/arm/libunwind.S (UNWIND_WRAPPER _Unwind_Backtrace): New.
2610         * config/arm/unwind-arm.h (__gnu_Unwind_Backtrace): New.
2611         * config/arm/unwind-arm.c (__gnu_Unwind_Backtrace): New.
2612
2613 2007-09-04  Emmanuel Thome  <Emmanuel.Thome@inria.fr>
2614
2615         PR c++/14178
2616         * common.opt: Mention ABI version 2 in comment.
2617
2618 2007-09-04  Jan Hubicka  <jh@suse.cz>
2619
2620         * optabs.c (debug_optab_libfunc): Update; make available to gdb.
2621         (libfunc_entry): New structure.
2622         (libfunc_hash): New hashtable.
2623         (hash_libfunc): New function.
2624         (eq_libfunc): New function.
2625         (convert_optab_libfunc): New function.
2626         (optab_libfunc): New function.
2627         (expand_binop, sign_expand_binop, expand_twoval_binop_libfunc,
2628         expand_unop, prepare_cmp_insn, prepare_float_insn, gen_add2_insn,
2629         expand_float, expand_fix, new_optab, new_convert_optab):
2630          Update for new libfunc API.
2631         (init_libfunc, init_integral_libfuncs,
2632         init_floating_libfuncs, init_interclass_conv_libfuncs
2633         init_intraclass_conv_libfuncs): Remove; reorganize all logic to:
2634         (gen_libfunc, gen_int_libfunc, gen_fp_libfunc, gen_int_fp_libfunc,
2635         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
2636         gen_int_to_fp_conv_libfunc, gen_ufloat_conv_libfunc,
2637         gen_int_to_fp_nondecimal_conv_libfunc, gen_fp_to_int_conv_libfunc,
2638         gen_intraclass_conv_libfunc, gen_trunc_conv_libfunc,
2639         gen_extend_conv_libfunc): New.
2640         (init_one_libfunc): Revamp for hashtables.
2641         (set_conv_libfunc): Likewise.
2642         (init_optabs): Initialize hashtable; use lazy initialization where
2643         possible.
2644         * optabs.h (optab_handlers): Move out of GGC.
2645         (optab, convert_optab): Move out of GGC; add lazy gen info.
2646         (code_to_optab, convert_optab_table, optab_table): Move out of GGC.
2647         (optab_libfunc, convert_optab_libfunc): New.
2648         * builtins.c (expand_builtin_powi): Update for new API.
2649         * expr.c (convert_move): Likewise.
2650         * expmed.c (expand_divmod): Likewise.
2651
2652 2007-09-04  Daniel Jacobowitz  <dan@codesourcery.com>
2653
2654         * config/rs6000/rs6000.c (rs6000_stack_info): Allocate space for the
2655         GOT pointer only if there is a constant pool.  Use the allocated space
2656         for SPE also.
2657
2658 2007-09-04  Daniel Jacobowitz  <dan@codesourcery.com>
2659
2660         * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Correct
2661         typo for AltiVec.
2662
2663 2007-09-04  Revital Eres  <eres@il.ibm.com>
2664             Richard Guenther  <rguenther@suse.de>
2665             R. Clint Whaley  <whaley@cs.utsa.edu>
2666
2667         * doc/invoke.texi (-fassociative-math, -freciprocal-math):
2668         Document new flags.
2669         * tree-tailcall.c (process_assignment): Use -fassociative-math
2670         when reodering operands of floating-point type.
2671         * fold-const.c (fold_comparison, fold_binary): Use
2672         -fassociative-math and -freciprocal-math instead of
2673         -funsafe-math-optimization flag.
2674         * toplev.h (set_unsafe_math_optimizations_flags): Declare function.
2675         * tree-ssa-math-opts.c (gate_cse_reciprocals): Use
2676         -freciprocal-math instead of -funsafe-math-optimizations.
2677         * opts.c (set_fast_math_flags): Set -freciprocal-math and
2678         -fassociative-math when -ffast-math is set.
2679         (set_unsafe_math_optimizations_flags): New Function
2680         to set -freciprocal-math and -fassociative-math when
2681         -funsafe-math-optimizations is set.
2682         (common_handle_option): Call it.
2683         * tree-vectorizer.c (vect_is_simple_reduction): Use
2684         -fassociative-math when doing reduction on floats.
2685         * loop-unroll.c (analyze_insn_to_expand_var): Use
2686         -fassociative-math when expanding an accumulator of type float.
2687         * simplify-rtx.c (simplify_binary_operation_1): Use
2688         -fassociative-math and -freciprocal-math when reordeing operands
2689         of floating-point type.
2690         * combine.c (combine_simplify_rtx): Likewise.
2691         * tree-ssa-reassoc.c (break_up_subtract_bb, reassociate_bb):
2692         Likewise.
2693         * common.opt (-fassociative-math, -freciprocal-math): New flags.
2694
2695 2007-09-04  Paolo Carlini  <pcarlini@suse.de>
2696
2697         PR c++/18608
2698         * doc/install.texi (--enable-__cxa_atexit): Fix typo.
2699
2700 2007-09-04  Jan Hubicka  <jh@suse.cz>
2701
2702         * regrename.c(copyprop_hardreg_forward_1): Unshare when doing copyprop.
2703
2704 2007-09-04  Jan Hubicka  <jh@suse.cz>
2705
2706         * regrename.c (build_def_use): Don't share RTL between MATCH_OPERATOR
2707         and corresponding MATCH_DUP.
2708
2709 2007-09-04  Uros Bizjak  <ubizjak@gmail.com>
2710
2711         PR middle-end/33187
2712         * combine.c (subst): Do not try to simplify X if it represents load
2713         of FP constant from the constant pool via float extension.
2714
2715 2007-09-04  Ben Elliston  <bje@au.ibm.com>
2716
2717         * c-opts.c: Include "tm_p.h".
2718         * Makefile.in (c-opts.o): Add $(TM_P_H) as a dependency.
2719
2720 2007-09-04  Richard Guenther  <rguenther@suse.de>
2721
2722         PR tree-optimization/33291
2723         * tree-pretty-print.c (dump_generic_node): Dump all
2724         qualifiers for pointer types, not only first.  Dump
2725         qualifiers for aggregate types as well.
2726         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Always
2727         use the canonical type for building ARRAY_REFs.
2728         * gimplify.c (canonicalize_addr_expr): Clean up.  The
2729         correct validness check is compatibility of the pointer
2730         types.  Always use the canonical type for building
2731         ARRAY_REFs and ADDR_EXPRs.
2732         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Revert
2733         change that disabled propagation of ADDR_EXPRs into statements
2734         with volatile ops.
2735
2736 2007-09-03  Zack Weinberg  <zack@codesourcery.com>
2737
2738         * config/arm/arm.md (mulsidi3, umulsidi3, mulsi3_highpart)
2739         (umulsi3_highpart): Make into expanders; existing insns are
2740         now named *[insn]_nov6.  Add stars to existing [insn]_v6
2741         counterparts' names.
2742
2743 2007-09-03  Daniel Jacobowitz  <dan@codesourcery.com>
2744
2745         * Makefile.in (DRIVER_DEFINES, gcc.o, gccspec.o, protoize.o)
2746         (unprotoize.o): Remove SHLIB_MULTILIB.
2747
2748 2007-09-03  Eric Weddington  <eweddington@cso.atmel.com>
2749
2750         * doc/extend.texi: Document progmem attribute for AVR.
2751
2752 2007-09-03  Anatoly Sokolov <aesok@post.ru>
2753
2754         PR target/28902
2755         * config/avr/avr.h (TARGET_VTABLE_ENTRY_ALIGN): Define.
2756
2757 2007-09-03  Zack Weinberg  <zack@codesourcery.com>
2758
2759         * optabs.c (expand_ffs): Initialize val and defined_at_zero
2760         to avoid warnings.
2761
2762         * optabs.c: Remove unnecessary forward declarations.
2763         (expand_unop_direct): New, broken out of expand_unop.
2764         (expand_doubleword_clz): New.
2765         (expand_ctz): Move above expand_ffs.  Use
2766         start_sequence, end_sequence, add_equal_note, and
2767         expand_unop_direct.  Add more commentary.
2768         (expand_ffs): Try both ctz optab and expand_ctz.
2769         Generate a test and branch if the hardware doesn't give us
2770         a useful value for input zero.  Style improvements similar to
2771         expand_ctz.
2772
2773         * config/arm/arm.md (ffssi2, ctzsi2): Delete.
2774
2775 2007-09-03  Zack Weinberg  <zack@codesourcery.com>
2776
2777         * config.gcc: Delete stanza for arm-semi-aof and
2778         armel-semi-aof targets.
2779         * config/arm/arm-protos.h
2780         * config/arm/arm.c
2781         * config/arm/arm.h: Delete all #ifdef AOF_ASSEMBLER blocks;
2782         make all #ifndef AOF_ASSEMBLER blocks unconditional.  Also
2783         delete aof_pic_label and remove mention of AOF in comments.
2784         * config/arm/arm.md: Delete patterns used only for AOF assembly.
2785         * config/arm/aof.h
2786         * config/arm/semiaof.h
2787         * config/arm/t-semi: Delete file.
2788
2789 2007-09-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2790
2791         * system.h (CONST_CAST2, CONST_CAST_TREE, CONST_CAST_RTX,
2792         CONST_CAST_BB): New macros for type-specific casts.
2793         (CONST_CAST): Add a TYPE parameter and define it in terms of
2794         CONST_CAST2.
2795
2796         * c-decl.c (c_make_fname_decl): Supply a TYPE for CONST_CAST.
2797         * c-lex.c (cb_ident, lex_string): Likewise,
2798         * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise,
2799         * config/i386/i386.c (ix86_function_regparm,
2800         ix86_function_sseregparm): Use CONST_CAST_TREE.
2801         * config/mmix/mmix.c (mmix_encode_section_info): Supply a TYPE for
2802         CONST_CAST.
2803         * gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1,
2804         give_switch, set_multilib_dir): Likewise,
2805         * gengtype-parse.c (string_seq, typedef_name): Likewise,
2806         * gimple-low.c (block_may_fallthru): Use CONST_CAST_TREE.
2807         * jump.c (reversed_comparison_code_parts): Use CONST_CAST_RTX.
2808         * passes.c (execute_one_pass): Supply a TYPE for CONST_CAST.
2809         * prefix.c (update_path): Likewise,
2810         * pretty-print.c (pp_base_destroy_prefix): Likewise,
2811         * rtlanal.c (keep_with_call_p): Use CONST_CAST_RTX.
2812         * tree-cfg.c (tree_can_merge_blocks_p,
2813         tree_block_ends_with_condjump_p): Use CONST_CAST_BB.
2814         * tree-eh.c (lookup_stmt_eh_region_fn): USe CONST_CAST_TREE.
2815         * tree.c (build_string): Supply a TYPE for CONST_CAST.
2816         (attribute_list_contained): Use CONST_CAST_TREE.
2817
2818 2007-09-03  Krister Walfridsson  <cato@df.lth.se>
2819
2820         * config/netbsd-elf.h (USE_LD_AS_NEEDED): Define.
2821
2822 2007-09-03  Richard Sandiford  <richard@codesourcery.com>
2823
2824         PR middle-end/33290
2825         * optabs.c (avoid_expensive_constant): Canonicalize CONST_INTs
2826         before forcing them into a register.
2827
2828 2007-09-03  Richard Sandiford  <richard@codesourcery.com>
2829
2830         * config/mips/mips.md (fetchop_bit): Use define_code_iterator
2831         rather than define_code_macro.
2832
2833 2007-09-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2834
2835         * gcc.c (xputenv): New function.
2836         (putenv_from_prefixes): Use xputenv instead of putenv.
2837         (process_command): Use xputenv instead of putenv.
2838         (set_collect_gcc_options): Use xputenv instead of putenv.
2839         (main): Use xputenv instead of putenv.
2840
2841 2007-09-03  Jesper Nilsson  <jesper.nilsson@axis.com>
2842
2843         * config/cris/cris.h (TARGET_HAS_SWAP): Defined to describe
2844         availability of swap instruction.
2845         * config/cris/cris.md (bswapsi2): Implement using swap instruction.
2846
2847 2007-09-03  Revital Eres  <eres@il.ibm.com>
2848
2849         * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Update
2850         Documentation.
2851
2852 2007-09-03  Vladimir Yanovsky  <yanov@il.ibm.com>
2853             Ayal Zaks  <zaks@il.ibm.com>
2854             Revital Eres  <eres@il.ibm.com>
2855
2856         * modulo-sched.c (ps_insert_empty_row, verify_partial_schedule,
2857         compute_split_row): New functions.
2858         (ps_unschedule_node): Remove.
2859         (normalize_sched_times): Iterate over the already scheduled
2860         insns instead of the number of nodes.
2861         (MAX_SPLIT_NUM): New definition.
2862         (sms_schedule_by_order): Change the scheduling heuristic to
2863         avoid useless increases of initiation interval ii.
2864         (get_sched_window): Add dump printouts.
2865
2866 2007-09-02  David Daney  <ddaney@avtrex.com>
2867
2868         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP, UNSPEC_SYNC_OLD_OP,
2869         UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE): New define_constants.
2870         (optab, insn): Add more attributes.
2871         (fetchop_bit): New code macro.
2872         (immediate_insn): New code macro attribute.
2873         (sync): Change condition to ISA_HAS_SYNC.
2874         (rdhwr): Change predicate for operand 0 to register_operand.
2875         (memory_barrier): New expand.
2876         (sync_compare_and_swap<mode>, sync_add<mode>, sync_sub<mode>,
2877         sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
2878         sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
2879         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
2880         sync_new_nand<mode>, sync_lock_test_and_set<mode>): New insns.
2881         * config/mips/mips.h (ISA_HAS_SYNC, ISA_HAS_LL_SC): New ISA predicates.
2882         (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP, MIPS_SYNC_OLD_OP,
2883         MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
2884         MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): New Macros.
2885         
2886 2007-09-03  Jesper Nilsson  <jesper.nilsson@axis.com>
2887             Hans-Peter Nilsson  <hp@axis.com>
2888
2889         * config/cris/cris.h (TARGET_HAS_LZ, CLZ_DEFINED_VALUE_AT_ZERO):
2890         Defined to describe availability and behavior of CLZ.
2891         * config/cris/cris.md (clzsi2): Implement using lz instruction.
2892         * config/cris/cris.opt: Tweak comment for "-metrax4".
2893         * config/cris/arit.c (LZ): When defined, define as __builtin_clz.
2894         * longlong.h [__CRIS__ && __CRIS_arch_version >= 3]
2895         (count_leading_zeros): Define.
2896
2897 2007-09-01  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2898
2899         * ggc-page.c (ggc_pch_read): Call validate_free_objects.
2900
2901 2007-09-02  Joseph Myers  <joseph@codesourcery.com>
2902
2903         PR middle-end/33272
2904         * c-decl.c (grokdeclarator): Apply qualifiers to type of parameter
2905         decayed from array.
2906
2907 2007-09-01  Kazu Hirata  <kazu@codesourcery.com>
2908
2909         * config/arm/arm.c, config/rs6000/ppu_intrinsics.h,
2910         config/spu/spu.c, df-scan.c, fixed-value.c, fold-const.c,
2911         ginclude/tgmath.h, haifa-sched.c, optabs.c, recog.c,
2912         sched-deps.c, sched-int.h, system.h, target.h,
2913         tree-ssa-live.c, tree-vect-transform.c, tree-vectorizer.c,
2914         tree.def: Fix comment typos.
2915
2916 2007-09-01  Kazu Hirata  <kazu@codesourcery.com>
2917
2918         * config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove.
2919         (override_options): Turn on -mstrict-align on non-ColdFire
2920         targets.
2921         * config/m68k/m68k.h (BIGGEST_ALIGNMENT): Update a comment.
2922
2923 2007-09-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2924
2925         * c-common.c (const_strip_array_types): Delete.
2926         * c-common.h (const_strip_array_types): Likewise.
2927         * emit-rtl.c (const_next_insn, const_previous_insn,
2928         const_next_nonnote_insn, const_prev_nonnote_insn,
2929         const_next_real_insn, const_prev_real_insn,
2930         const_next_active_insn, const_prev_active_insn, const_next_label,
2931         const_prev_label): Delete.
2932         * gimple-low.c (block_may_fallthru): Use expr_last.
2933         * jump.c (reversed_comparison_code_parts): Use prev_nonnote_insn.
2934         * rtl.h (const_previous_insn, const_next_insn,
2935         const_prev_nonnote_insn, const_next_nonnote_insn,
2936         const_prev_real_insn, const_next_real_insn,
2937         const_prev_active_insn, const_next_active_insn, const_prev_label,
2938         const_next_label): Delete.
2939         * rtlanal.c (keep_with_call_p): Use next_nonnote_insn.
2940         * system.h (CONST_CAST): Update comment.
2941         * tree-cfg.c (tree_can_merge_blocks_p): Use last_stmt.
2942         (const_first_stmt, const_last_stmt): Delete.
2943         (tree_block_ends_with_condjump_p): Use last_stmt.
2944         * tree-flow.h (const_first_stmt, const_last_stmt): Delete.
2945         * tree-iterator.c (const_expr_first, const_expr_last,
2946         const_expr_only): Delete.
2947         * tree.c (const_lookup_attribute): Likewise.
2948         (attribute_list_contained): Use lookup_attribute.
2949         * tree.h (const_lookup_attribute, const_expr_first,
2950         const_expr_last, const_expr_only): Delete.
2951
2952 2007-09-01  Richard Guenther  <rguenther@suse.de>
2953
2954         * tree-ssa-alias.c (create_name_tags): Use TYPE_VOLATILE
2955         instead of TREE_THIS_VOLATILE.
2956         * tree-ssa-operands.c (add_virtual_operand): Do not set
2957         has_volatile_ops.  Do not check s_ann for NULL.
2958         (get_indirect_ref_operands): Likewise.
2959         (get_expr_operands): Likewise.  For all reference trees
2960         set has_volatile_ops based on TREE_THIS_VOLATILE.  Also
2961         check base of reference for TREE_THIS_VOLATILE.
2962
2963 2007-09-01  Richard Guenther  <rguenther@suse.de>
2964
2965         * tree-cfg.c (verify_gimple_expr): Fix check for conversions
2966         between integral types.  Also allow conversions between
2967         pointer types.
2968
2969 2007-08-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2970
2971         * optabs.c (prepare_float_lib_cmp): Use
2972         libgcc_cmp_return_mode instead of word_mode.
2973         * config/dfp-bit.h: Likewise.
2974         * config/fp-bit.h: Likewise.
2975         * config/spu/spu.c (spu_libgcc_cmp_return_mode):
2976         New function.
2977         (spu_libgcc_shift_count_mode): New function.
2978         (TARGET_LIBGCC_CMP_RETURN_MODE): Define.
2979         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Define.
2980
2981 2007-08-31  Joseph Myers  <joseph@codesourcery.com>
2982
2983         * tree-pretty-print.c: Include output.h.
2984         (dump_decl_name, dump_generic_node): Use %wd with pp_printf, not
2985         HOST_WIDE_INT_PRINT_DEC.
2986         * Makefile.in (tree-pretty-print.o): Add dependency on output.h.
2987
2988 2007-08-31  Zdenek Dvorak  <ook@ucw.cz>
2989
2990         PR rtl-optimization/33224
2991         * loop-iv.c (latch_dominating_def): Check that the definition belongs
2992         to the analysed region.
2993
2994 2007-08-31  Richard Guenther  <rguenther@suse.de>
2995
2996         * function.c (allocate_struct_function): Do not set
2997         current_function_returns_pointer.
2998         * function.h (struct var_refs_queue): Remove.
2999         (struct simple_obstack_stack): Likewise.
3000         (struct function): Remove fixup_var_refs_queue member.
3001         Remove returns_pointer flag.
3002         (current_function_returns_pointer): Remove define.
3003
3004 2007-08-31  Nick Clifton  <nickc@redhat.com>
3005
3006         * tree-ssa-coalesce.c (compare_pairs): Use the elements as
3007         secondary keys in order to obtain a stable sort.
3008
3009 2007-08-31  Nick Clifton  <nickc@redhat.com>
3010
3011         PR target/33132
3012         * config/m32r/constraints.md: Add W constraint for integer zero.
3013         * config/m32r/m32r.md (get_pc): Use W and i constraints.
3014         Fix length calculation by using alternatives.
3015
3016 2007-08-31  Richard Sandiford  <richard@codesourcery.com>
3017
3018         * optabs.c (shift_optab_p, commutative_optab_p): New functions,
3019         split out from expand_binop.
3020         (avoid_expensive_constant): New function.
3021         (expand_binop_directly): Remove commutative_op argument and
3022         (expand_binop_directly): Remove commutative_op argument and
3023         call cummutative_optab_p instead.  Do not change op0 or op1
3024         when swapping xop0 and xop1.  Apply avoid_expensive_constant
3025         to each argument after potential swapping.  Enforce the
3026         canonical order of commutative operands.
3027         (expand_binop): Use shift_optab_p and commutative_optab_p.
3028         Update the calls to expand_binop_directly.  Only force constants
3029         into registers when widening an operation.  Only swap operands
3030         once a direct expansion has been rejected.
3031         (expand_twoval_binop): Only force constants into registers when
3032         using a direct expansion.
3033
3034 2007-08-31  Maxim Kuvyrkov  <maxim@codesourcery.com>
3035
3036         * sched-deps.c (update_dep): Mark arguments with ATTRIBUTE_UNUSED.
3037         (sched_analyze_insn): Don't postprocess speculative dependencies when
3038         target has no scheduling.
3039         * tree-vect-transform.c (vect_estimate_min_profitable_iters): Fix
3040         'uninitialized' warning.
3041
3042 2007-08-31  Richard Guenther  <rguenther@suse.de>
3043
3044         * tree.c (build_complex_type): Always set TYPE_NAME for
3045         comples types.
3046
3047 2007-08-31  Olivier Hainque  <hainque@adacore.com>
3048
3049         * config/rs6000/xcoff.h (XCOFF_CSECT_DEFAULT_ALIGNMENT_STR): New
3050         internal macro. Default alignment factor for csect directives, chosen
3051         to match what BIGGEST_ALIGNMENT allows.
3052         (DATA_SECTION_ASM_OP): Use it.
3053         * config/rs6000/rs6000.c
3054         (rs6000_xcoff_output_readonly_section_asm_op):
3055         Use XCOFF_CSECT_DEFAULT_ALIGNMENT_STR.
3056         (rs6000_xcoff_output_readwrite_section_asm_op): Likewise.
3057         
3058 2007-08-31  Olivier Hainque  <hainque@adacore.com>
3059
3060         * dbxout.c (dbxout_block): Move declaration within the first
3061         #if defined (DBX_DEBUGGING_INFO) block.  Rearrange another such
3062         block to include the definition, together with the associated
3063         helpers.
3064
3065 2007-08-31  David Edelsohn  <edelsohn@gnu.org>
3066             Revital Eres  <eres@il.ibm.com>
3067
3068         * doc/invoke.texi (-mpaired): Document flag.
3069         * config.gcc: Include paired.h in powerpc extra_headers and
3070         750cl.h in powerpc-*-linux*paired*.
3071         * config/rs6000/rs6000.opt (-mpaired): New flag.
3072         * config/rs6000/rs6000.c (paired_init_builtins,
3073         paired_expand_builtin, paired_expand_lv_builtin,
3074         paired_expand_stv_builtin, paired_expand_predicate_builtin):
3075         New functions to support the paired single builtin functions.
3076         (rs6000_hard_regno_mode_ok): Handle PAIRED_VECTOR_MODE.
3077         (def_builtin, bdesc_3arg, bdesc_2arg, bdesc_1arg): Add paired
3078         single builtins.
3079         (bdesc_paired_preds): New structure for paired predicate
3080         instructions.
3081         (rs6000_expand_builtin): Expand paired single builtins.
3082         (rs6000_init_builtins): Init paired single builtins.
3083         (rs6000_common_init_builtins): Add v2sf_ftype_v2sf_v2sf_v2sf.
3084         Rename v2sf_ftype_v2sf_v2sf to v2sf_ftype_v2sf_v2sf_spe
3085         and v2sf_ftype_v2sf_spe to v2sf_ftype_v2sf.  Add new types
3086         v2sf_ftype_v2sf_v2sf and v2sf_ftype_v2sf.
3087         (rs6000_vector_mode_supported_p): Support paired vector mode.
3088         * config/rs6000/rs6000.h: (UNITS_PER_PAIRED_WORD,
3089         PAIRED_VECTOR_MODE, PAIRED_SIMD_REGNO_P, TARGET_PAIRED_FLOAT):
3090         New.
3091         (LOCAL_ALIGNMENT): Handle PAIRED_VECTOR_MODE.
3092         (DATA_ALIGNMENT): Likewise.
3093         (UNITS_PER_SIMD_WORD): Handle PAIRED_VECTOR_MODE.
3094         (rs6000_builtins): Add PAIRED builtins.
3095         * config/rs6000/rs6000.md: Include paired.md.
3096         * config/rs6000/paired.h: New.
3097         * config/rs6000/paired.md: New.
3098         * config/rs6000/750cl.h: New.
3099         * config/rs6000/spe.md: Recognize movv2sf instruction for 750cl.
3100
3101 2007-08-30  Ollie Wild  <aaw@google.com>
3102
3103         * c-opts.c (c_common_handle_option): Support -fno-directives-only.
3104         * gcc.c (default_compilers): Add -fno-directives-only to
3105         @assembler-with-cpp.
3106
3107 2007-08-30  Sandra Loosemore  <sandra@codesourcery.com>
3108
3109         PR middle-end/33211
3110
3111         * regclass.c (initial_fixed_regs): Revert previous change and make
3112         it const again.
3113         (initial_call_used_regs): Likewise.
3114         (initial_call_really_used_regs): Delete, reverting previous addition.
3115         (initial_reg_names): Likewise.
3116         (init_reg_sets): Revert previous change.
3117         (saved_fixed_regs): New.
3118         (saved_call_used_regs): New.
3119         (saved_call_really_used_regs): New.
3120         (saved_reg_names): New.
3121         (save_register_info): New.
3122         (restore_register_info): New.
3123         (init_reg_sets_1): Replace reset of register info with call to
3124         restore_register_info.
3125         * rtl.h (save_register_info): Declare.
3126         * toplev.c (backend_init): Call save_register_info.
3127
3128 2007-08-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3129
3130         * tree-ssa-propagate.c (set_rhs): Remove the copied annotation
3131         from the original statement.
3132
3133 2007-08-30  Chao-ying Fu  <fu@mips.com>
3134
3135         * c-lex.c (interpret_fixed): Declare.
3136         (interpret_float): Process _Fract and _Accum.
3137         (interpret_fixed): New function.
3138         * final.c (output_addr_const): Process CONST_FIXED.
3139         * simplify-rtx.c (simplify_const_unary_operation): Handle US_NEG.
3140         (simplify_binary_operation_1): Handle US_ASHIFT, SS_MULT, US_MULT,
3141         SS_DIV, US_DIV.
3142         (simplify_const_binary_operation): Handle SS_MULT, US_MULT, SS_DIV,
3143         US_DIV, US_ASHIFT.
3144         (simplify_immed_subreg): Support CONST_FIXED.
3145         Process MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
3146         (simplify_subreg): Support CONST_FIXED.
3147
3148 2007-08-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3149
3150         * config/rs6000/ppu_intrinsics.h: New file.
3151         * config.gcc (powerpc*-*-* <extra_headers>): Install
3152         ppu_intrinsics.h.
3153
3154 2007-08-30  Kenneth Zadeck <zadeck@naturalbridge.com>
3155
3156         * cfg.c (dump_flow_info): Change to also print entry and exit
3157         block info.
3158         * print-rtl.c (print_rtl_single): Allow to print rtl with
3159         -fdump-unnumbered.
3160         
3161 2007-08-30  Kenneth Zadeck <zadeck@naturalbridge.com>
3162
3163         * df-core.h (df_dump_region): New function.
3164         * df.h (df_dump_region): New function.
3165         * loop-invariant.c (find_defs): Add call to df_dump_region.
3166         * loop-iv.c (iv_analysis_loop_init): Changed call from df_dump to
3167         df_dump_region.
3168         
3169 2007-08-30  Jakub Jelinek  <jakub@redhat.com>
3170
3171         PR target/33168
3172         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Return
3173         true if any of the compare_section_name calls returned true,
3174         rather than if any returned false.
3175
3176 2007-08-30  Richard Guenther  <rguenther@suse.de>
3177
3178         PR tree-optimization/33199
3179         * tree-ssa-structalias.c (handle_lhs_call): New function.
3180         (find_func_aliases): In non-IPA mode make sure that for
3181         calls that return a pointer we add a constraint for the
3182         result to point to anything.
3183
3184 2007-08-30  Richard Guenther  <rguenther@suse.de>
3185
3186         * doc/invoke.texi (-mveclibabi): Document new target option.
3187         * config/i386/i386.opt (-mveclibabi): New target option.
3188         * config/i386/i386.c (ix86_veclib_handler): Handler for
3189         vectorization library support.
3190         (override_options): Handle the -mveclibabi option, initialize
3191         the vectorization library handler.
3192         (ix86_builtin_vectorized_function): As fallback call the
3193         vectorization library handler, if set.
3194         (ix86_veclibabi_acml): New static function for ACML ABI style
3195         vectorization support.
3196
3197 2007-08-30  Jakub Jelinek  <jakub@redhat.com>
3198
3199         * config/rs6000/rs6000.c (rs6000_emit_sync): For QI or HI mode
3200         used_m, even if it is 32-bit aligned, adjust used_m MEM to have
3201         SImode and update m.  Don't run gen_lowpart_common on arbitrary
3202         memory address, force it to register first.
3203
3204         PR middle-end/32758
3205         * dce.c (dce_process_block): Don't delete setters of
3206         artificially used registers.
3207
3208 2007-08-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3209
3210         * config/s390/s390.md ("*add<mode>3_alc_carry1_cc",
3211         "*add<mode>3_alc_carry1_cconly", "*add<mode>3_alc_carry2_cc",
3212         "*add<mode>3_alc_carry2_cconly"): New insn definitions.
3213
3214 2007-08-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3215
3216         * config/s390/s390.c (s390_expand_addcc): Emit canonical alc
3217         pattern.
3218         * config/s390/s390.md ("*add<mode>3_alc_cc", "*add<mode>3_alc",
3219         "addti3", "*adddi3_31z", "*scond<mode>"): Make alc pattern canonical.
3220
3221 2007-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3222
3223         * system.h: Activate -Wcast-qual as warning-only.
3224
3225 2007-08-29  Paolo Bonzini  <bonzini@gnu.org>
3226
3227         PR target/33168
3228         * config/rs6000/rs6000.c (compare_section_name): New function.
3229         (rs6000_elf_in_small_data_p): Compare section prefixes instead
3230         of full name.
3231
3232 2007-08-29  Olivier Hainque  <hainque@adacore.com>
3233
3234         * xcoffout.c: #include debug.h.
3235         * Makefile.in (xcoffout.o): Add debug.h dependency.
3236
3237 2007-08-29  Uros Bizjak  <ubizjak@gmail.com>
3238
3239         * simplify-rtx.c (simplify_binary_operation_1) [VEC_SELECT]:
3240         Change CONST_VECTOR_ELT to XVECEXP in elem calculation.
3241
3242 2007-08-29  Richard Guenther  <rguenther@suse.de>
3243
3244         * tree-pretty-print.c (dump_generic_node): Print
3245         label DECL_UID as D.%u.
3246         * tree-dfa.c (dump_variable): Print DECL_UID as D.%u.
3247
3248 2007-08-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3249
3250         * gcc/builtin-types.def (BT_FN_PTR_PTR_SIZE): New type.
3251         * gcc/builtins.def (BUILT_IN_REALLOC): New builtin.
3252
3253 2007-08-29  Douglas Gregor  <doug.gregor@gmail.com>
3254
3255         PR c++/33194
3256         * tree.c (build_type_attribute_qual_variant): Set canonical types
3257         on the final, unqualified attribute variant before building the
3258         qualified version.
3259
3260 2007-08-29  Jie Zhang  <jie.zhang@analog.com>
3261
3262         * config/bfin/bfin.c (bfin_expand_builtin): Fix the argument
3263         order of __builtin_bfin_cmplx_mac and __builtin_bfin_cmplx_msu.
3264
3265 2007-08-29  Jie Zhang  <jie.zhang@analog.com>
3266
3267         Revert
3268         2007-08-29  Jie Zhang  <jie.zhang@analog.com>
3269         * config/bfin/bfin.md (composev2hi): Put operands into vector
3270         with correct order.
3271
3272 2007-08-29  Jie Zhang  <jie.zhang@analog.com>
3273
3274         * config/bfin/bfin.md (composev2hi): Put operands into vector
3275         with correct order.
3276
3277 2007-08-29  Jie Zhang  <jie.zhang@analog.com>
3278
3279         * config/bfin/bfin.c (bfin_expand_call): Inline PLT with l1_text
3280         attribute when appropriate.
3281         (bfin_handle_l1_text_attribute): New.
3282         (bfin_handle_l1_data_attribute): New.
3283         (bfin_attribute_table): Add attributes: l1_text, l1_data,
3284         l1_data_A and l1_data_B.
3285         * doc/extend.texi (node Function Attributes): Document l1_text
3286         function attribute.
3287         (Variable Attributes): Add Blackfin subsection. Document l1_data,
3288         l1_data_A and l1_data_B variable attributes.
3289
3290 2007-08-28  Jie Zhang  <jie.zhang@analog.com>
3291
3292         * config/bfin/bfin.opt (minline-plt): Add.
3293         * config/bfin/bfin.c (bfin_expand_call): Inline PLT when emit
3294         call to global functions.
3295         * doc/invoke.texi (Option Summary): Mention -minline-plt.
3296         (Blackfin Options): Document -minline-plt.
3297
3298 2007-08-28  Nathan Sidwell  <nathan@codesourcery.com>
3299
3300         * config/m68k/m68k.c (m68k_get_function_kind): Assert we're never
3301         given a non-function.
3302         (m68k_ok_for_sibcall_p): Only sibcall functions of the same kind.
3303
3304 2007-08-28  DJ Delorie  <dj@redhat.com>
3305
3306         * config/sh/sh.c (sh_gimplify_va_arg_expr): Fix sh2a support.
3307
3308 2007-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3309
3310         * system.h (CONST_CAST): Avoid union for gcc-4.0.x.
3311
3312 2007-08-28  Richard Guenther  <rguenther@suse.de>
3313
3314         * tree.h (struct tree_function_decl): Increase size of
3315         function_code bitfield.
3316
3317 2007-08-28  Nathan Sidwell  <nathan@codesourcery.com>
3318             Kazu Hirata  <kazu@codesourcery.com>
3319
3320         * gcc/config/m68k/linux.h
3321         (M68K_HONOR_TARGET_STRICT_ALIGNMENT): Redefine as 0.
3322         * config/m68k/m68k.c (TARGET_RETURN_IN_MEMORY): New.
3323         (m68k_return_in_memory): New.
3324         * gcc/config/m68k/m68k.h (M68K_HONOR_TARGET_STRICT_ALIGNMENT):
3325         New.
3326
3327 2007-08-28  Uros Bizjak  <ubizjak@gmail.com>
3328
3329         PR target/32661
3330         * simplify-rtx.c (simplify_binary_operation_1) [VEC_SELECT]:
3331         Simplify nested VEC_SELECT (with optional VEC_CONCAT operator as
3332         operand) when top VEC_SELECT extracts scalar element.
3333         * config/i386/sse.md (*vec_extract_v4si_mem): New pattern.
3334         (*vec_extract_v4sf_mem): Ditto.
3335
3336 2007-08-28  Jakub Jelinek  <jakub@redhat.com>
3337
3338         PR middle-end/32370
3339         * passes.c (init_optimization_passes): Move pass_df_finish
3340         after pass_postreload sublist.
3341
3342         PR rtl-optimization/33148
3343         * simplify-rtx.c (simplify_unary_operation_1): Only optimize
3344         (neg (lt X 0)) if X has scalar int mode.
3345
3346         PR debug/32914
3347         * dwarf2out.c (rtl_for_decl_init): If vector decl has CONSTRUCTOR
3348         initializer, use build_vector_from_ctor if possible to create
3349         VECTOR_CST out of it.  If vector initializer is not VECTOR_CST
3350         even after this, return NULL.
3351
3352 2007-08-28  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3353
3354         * c-pretty-print.c (pp_c_constant): Handle COMPLEX_CST.
3355
3356 2007-08-28  Richard Guenther  <rguenther@suse.de>
3357
3358         * tree.h (DECL_DISREGARD_INLINE_LIMITS): New.
3359         (struct tree_function_decl): Make function_code a bitfield.
3360         Add disregard_inline_limits flag.
3361         * cgraphunit.c (cgraph_process_new_functions): Check
3362         DECL_DISREGARD_INLINE_LIMITS instead of disregard_inline_limits_p.
3363         (cgraph_preserve_function_body_p): Likewise.
3364         * ipa-inline.c (compute_inline_parameters): Likewise.
3365         * c-decl.c (finish_function): Set DECL_DISREGARD_INLINE_LIMITS
3366         for GNU C extern inline functions.
3367         (merge_decls): Merge DECL_DISREGARD_INLINE_LIMITS.
3368         * tree-inline.c (disregard_inline_limits_p): Remove.
3369         * tree-inline.h (disregard_inline_limits_p): Likewise.
3370         * c-common.c (handle_always_inline_attribute): Set
3371         DECL_DISREGARD_INLINE_LIMITS.
3372         * langhooks.c (add_builtin_function): Verify the function code
3373         fits in the bitfield.
3374
3375 2007-08-28  Mircea Namolaru  <namolaru@il.ibm.com>
3376             Vladimir Yanovsky  <yanov@il.ibm.com>
3377             Revital Eres  <eres@il.ibm.com>
3378             Andrey Belevantsev  <abel@ispras.ru>
3379
3380         * config/spu/spu.md: Recognize doloop pattern when -fmodulo-sched
3381         is set.
3382         * modulo-sched.c: Add documentation regarding do-loop.
3383         (doloop_register_get): Change number of arguments to support
3384         the new do-loop pattern and check whether COUNT_REG has no other
3385         occurences in the loop