OSDN Git Service

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