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