re PR middle-end/39308 (ICE when compiling with -O[s123] -floop-interchange)
[gcc.git] / gcc / ChangeLog
1 2009-02-27 Sebastian Pop <sebastian.pop@amd.com>
2
3 PR middle-end/39308
4 * graphite.c (graphite_loop_normal_form): Do not call
5 number_of_iterations_exit from a gcc_assert.
6
7 2009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8
9 * gcc/config/s390/s390.c: (s390_swap_cmp): Look for conditional
10 jumps if COND is NULL.
11 (find_cond_jump): New function.
12 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
13 * gcc/config/s390/s390.md: Remove z10_cobra attribute value.
14
15 2009-02-26 Uros Bizjak <ubizjak@gmail.com>
16
17 * config/alpha/alpha.h (alpha_expand_mov): Return false if
18 force_const_mem returns NULL_RTX.
19
20 2009-02-25 H.J. Lu <hongjiu.lu@intel.com>
21
22 PR rtl-optimization/39241
23 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
24 to subreg_offset_representable_p.
25
26 2009-02-25 Paolo Bonzini <bonzini@gnu.org>
27
28 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
29 execute function prototype. Get f and nregs from max_reg_num
30 and get_insns. Remove the first backward pass as it's dead,
31 guard the forward pass by flag_expensive_optimizations.
32 (rest_of_handle_regmove): Delete.
33 (pass_regmove): Replace it with regmove_optimize.
34
35 2009-02-25 Martin Jambor <mjambor@suse.cz>
36
37 PR tree-optimization/39259
38 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
39 alls_alloca function flags.
40 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
41 calls are detected.
42
43 2009-02-25 Paolo Bonzini <bonzini@gnu.org>
44
45 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
46 flags_set_1_rtx, flags_set_1_set): Delete.
47 (regmove_optimize): Do not call mark_flags_life_zones.
48
49 2009-02-24 Julian Brown <julian@codesourcery.com>
50
51 PR target/35965
52 * config/arm/arm.c (require_pic_register): Only set
53 cfun->machine->pic_reg once per function.
54
55 2009-02-24 Sandra Loosemore <sandra@codesourcery.com>
56
57 * doc/invoke.texi (Link Options): Document an easier way to pass
58 options that take arguments to the GNU linker using -Xlinker and -Wl.
59
60 2009-02-24 Steve Ellcey <sje@cup.hp.com>
61
62 PR target/33785
63 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
64
65 2009-02-24 Richard Guenther <rguenther@suse.de>
66
67 PR debug/39285
68 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
69
70 2009-02-24 Richard Guenther <rguenther@suse.de>
71 Zdenek Dvorak <ook@ucw.cz>
72
73 PR tree-optimization/39233
74 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
75 from converting them to a generic type.
76
77 2009-02-23 Sebastian Pop <sebastian.pop@amd.com>
78
79 PR tree-optimization/39260
80 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
81 contains a condition with a real type.
82 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
83
84 2009-02-23 Jason Merrill <jason@redhat.com>
85
86 PR c++/38880
87 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
88 narrowing_initializer_constant_valid_p.
89 (narrowing_initializer_constant_valid_p): Don't return
90 null_pointer_node for adding a pointer to itself.
91
92 2009-02-23 Jan Hubicka <jh@suse.cz>
93
94 PR c/12245
95 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
96 resizing.
97
98 2009-02-23 Jan Hubicka <jh@suse.cz>
99
100 PR tree-optimization/37709
101 * tree.c (block_ultimate_origin): Move here from dwarf2out.
102 * tree.h (block_ultimate_origin): Declare.
103 * dwarf2out.c (block_ultimate_origin): Move to tree.c
104 * tree-ssa-live.c (remove_unused_scope_block_p):
105 Eliminate blocks containig no instructions nor live variables nor
106 nested blocks.
107 (dump_scope_block): New function.
108 (remove_unused_locals): Enable removal of dead blocks by default;
109 enable dumping at TDF_DETAILS.
110
111 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
112
113 * config/i386/i386.c (classify_argument): Don't allow COImode
114 and OImode.
115 (function_arg_advance_32): Don't allow OImode.
116 (function_arg_32): Likewise.
117 (function_value_32): Likewise.
118 (return_in_memory_32): Likewise.
119 (function_arg_64): Remove OImode comment.
120
121 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
122
123 PR target/39261
124 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
125 ix86_expand_vector_set for V4DImode in 64bit mode only.
126 (ix86_expand_vector_init_one_var): Likewise.
127
128 2009-02-21 Sebastian Pop <sebastian.pop@amd.com>
129
130 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
131
132 2009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
133
134 PR bootstrap/39257
135 * loop-iv.c: Revert last change.
136 * emit-rtl.c: Likewise.
137
138 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
139
140 PR target/39256
141 * config/i386/i386.c (type_natural_mode): Remove an extra
142 space in the warning message.
143 (function_value_32): Handle 32-byte vector modes.
144 (return_in_memory_32): Likewise.
145
146 2009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
147
148 * loop-iv.c (truncate_value): New function.
149 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
150 of lowpart_subreg.
151 (lowpart_subreg): Move to...
152 * emit-rtl.c: ...here.
153
154 2009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
155
156 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
157 accidental and undocumented change at revision 140860.
158
159 2009-02-21 Joseph Myers <joseph@codesourcery.com>
160
161 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
162 take gimple_seq * arguments.
163 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
164 types_compatible_p langhook.
165
166 2009-02-20 Mark Mitchell <mark@codesourcery.com>
167 Joseph Myers <joseph@codesourcery.com>
168
169 * config/arm/arm.c (arm_builtin_va_list): New function.
170 (arm_expand_builtin_va_start): Likewise.
171 (arm_gimplify_va_arg_expr): Likewise.
172 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
173 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
174 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
175 (va_list_type): New variable.
176 (arm_mangle_type): Mangle va_list_type appropriately.
177
178 2009-02-20 Jakub Jelinek <jakub@redhat.com>
179
180 PR middle-end/39157
181 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
182 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
183 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
184 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
185 parameter to 1000 for -O1 by default.
186 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
187 parameter.
188 * loop-invariant.c: Include params.h.
189 (move_loop_invariants): Don't call move_single_loop_invariants on
190 very large loops.
191
192 2009-02-20 Jaka Mocnik <jaka@xlab.si>
193
194 * calls.c (emit_library_call_value_1): Use slot_offset instead of
195 offset when calculating bounds for indexing stack_usage_map. Fixes
196 a buffer overflow with certain target setups.
197
198 2009-02-20 Jakub Jelinek <jakub@redhat.com>
199
200 PR target/39240
201 * calls.c (expand_call): Clear try_tail_call if caller and callee
202 disagree in promotion of function return value.
203
204 2009-02-19 Jakub Jelinek <jakub@redhat.com>
205
206 PR target/39175
207 * c-common.c (c_determine_visibility): If visibility changed and
208 DECL_RTL has been already set, call make_decl_rtl to update symbol
209 flags.
210
211 2009-02-19 H.J. Lu <hongjiu.lu@intel.com>
212
213 PR c++/39188
214 * varasm.c (assemble_variable): Don't check DECL_NAME when
215 globalizing a variable.
216
217 2009-02-19 Joseph Myers <joseph@codesourcery.com>
218
219 PR c/38483
220 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
221 expression before any __builtin_trap call.
222 * c-typeck.c (build_function_call): Convert and check function
223 arguments before generating a call to a trap. Evaluate the
224 function arguments before the trap.
225
226 2009-02-19 Uros Bizjak <ubizjak@gmail.com>
227
228 PR target/39228
229 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
230 (UNSPEC_FXAM_MEM): New unspec.
231 (fxam<mode>2_i387_with_temp): New insn and split pattern.
232 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
233 memory using fxam<mode>2_i387_with_temp to remove excess precision.
234
235 2009-02-19 Richard Guenther <rguenther@suse.de>
236
237 PR tree-optimization/39207
238 PR tree-optimization/39074
239 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
240 storedanything_tree): New.
241 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
242 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
243 (build_succ_graph): Add edges from STOREDANYTHING to all
244 non-direct nodes.
245 (init_base_vars): Initialize STOREDANYTHING.
246 (compute_points_to_sets): Free substitution info after
247 building the succ graph.
248 (ipa_pta_execute): Likewise.
249
250 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
251 field.
252 (do_ds_constraint): Do not add to special var or non-pointer
253 field solutions.
254 (type_could_have_pointers): Split out from ...
255 (could_have_pointers): ... here. For arrays use the element type.
256 (create_variable_info_for): Initialize may_have_pointers.
257 (new_var_info): Likewise.
258 (handle_lhs_call): Make the HEAP variable unknown-sized.
259 (intra_create_variable_infos): Use a type with pointers for
260 PARM_NOALIAS, make it unknown-sized.
261
262 2009-02-18 H.J. Lu <hongjiu.lu@intel.com>
263
264 PR target/39224
265 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
266
267 2009-02-18 Jason Merrill <jason@redhat.com>
268
269 PR target/39179
270 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
271 value if DECL_EXTERNAL.
272 * tree-sra.c (sra_walk_gimple_assign): Likewise.
273 * target.h (gcc_target::binds_local_p): Clarify "module".
274 * tree.h (TREE_PUBLIC): Clarify "module".
275
276 2009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
277
278 PR target/38891
279 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
280 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
281
282 2009-02-17 H.J. Lu <hongjiu.lu@intel.com>
283
284 PR target/39082
285 * c.opt (Wabi): Support C and ObjC.
286 (Wpsabi): New.
287
288 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
289
290 * config/i386/i386.c (classify_argument): Warn once about the ABI
291 change when passing union with long double.
292
293 * doc/invoke.texi: Update -Wabi for warning psABI changes.
294
295 2009-02-18 Joseph Myers <joseph@codesourcery.com>
296
297 PR c/35447
298 * c-parser.c (c_parser_compound_statement): Always enter and leave
299 a scope.
300
301 2009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
302
303 PR target/34587
304 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
305
306 2009-02-18 Jakub Jelinek <jakub@redhat.com>
307
308 PR tree-optimization/36922
309 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
310 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
311 Likewise.
312
313 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
314
315 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
316 to 0 for EABI64.
317
318 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
319
320 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
321
322 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
323
324 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
325 tree sharing.
326
327 2009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
328 Richard Sandiford <rdsandiford@googlemail.com>
329
330 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
331 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
332 (loongson_biadd): ...this.
333
334 2009-02-17 Richard Guenther <rguenther@suse.de>
335
336 PR tree-optimization/39202
337 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
338 a var make sure to follow existing collapses.
339
340 2009-02-17 Richard Guenther <rguenther@suse.de>
341
342 PR middle-end/39214
343 * langhooks.c (lhd_print_error_function): Check for NULL block.
344
345 2009-02-17 Richard Guenther <rguenther@suse.de>
346
347 PR tree-optimization/39204
348 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
349 of the PHI arg.
350
351 2009-02-17 Uros Bizjak <ubizjak@gmail.com>
352
353 * config/soft-fp/double.h: Update from glibc CVS.
354
355 2009-02-17 Richard Guenther <rguenther@suse.de>
356
357 PR tree-optimization/39207
358 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
359 strict-aliasing warnings for pointers pointing to NULL.
360
361 2009-02-16 Joseph Myers <joseph@codesourcery.com>
362
363 PR c/35446
364 * c-parser.c (c_parser_braced_init): Call pop_init_level when
365 skipping until next close brace.
366
367 2009-02-16 H.J. Lu <hongjiu.lu@intel.com>
368
369 PR target/37049
370 * config/i386/i386.c (ix86_expand_push): Set memory alignment
371 to function argument boundary.
372
373 2009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
374
375 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
376 in the lea_add. Reload eventually constraints it properly.
377 * config/picochip/constraints.md : Remove the target constraint
378 "b", since it is not needed anymore.
379
380 2009-02-16 Jakub Jelinek <jakub@redhat.com>
381
382 * gthr-dce.h: Uglify function parameter and local variable names.
383 * gthr-gnat.h: Likewise.
384 * gthr-mipssde.h: Likewise.
385 * gthr-nks.h: Likewise.
386 * gthr-posix95.h: Likewise.
387 * gthr-posix.h: Likewise.
388 * gthr-rtems.h: Likewise.
389 * gthr-single.h: Likewise.
390 * gthr-solaris.h: Likewise.
391 * gthr-tpf.h: Likewise.
392 * gthr-vxworks.h: Likewise.
393 * gthr-win32.h: Likewise.
394
395 2009-02-15 H.J. Lu <hongjiu.lu@intel.com>
396
397 PR target/39196
398 * config/i386/i386.md: Restrict the new peephole2 to move
399 between MMX/SSE registers.
400
401 2009-02-15 Richard Guenther <rguenther@suse.de>
402
403 Revert
404 2009-02-13 Richard Guenther <rguenther@suse.de>
405
406 * configure.ac: Enable LFS.
407 * configure: Re-generate.
408 * config.in: Likewise.
409
410 2009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
411
412 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
413 spu_srqwbyte, spu_srqwbytebc): Define.
414 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
415 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
416 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
417 "shrqby_<mode>"): New insn-and-split patterns.
418 * config/spu/spu.c (expand_builtin_args): Determine and return
419 number of operands using spu_builtin_description data.
420 (spu_expand_builtin_1): Use it.
421
422 2009-02-13 Steve Ellcey <sje@cup.hp.com>
423
424 PR target/38056
425 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
426 TARGET_CONST_GP.
427
428 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
429
430 PR target/39149
431 * config/i386/i386.c (override_options): Correct warning
432 messages for -malign-loops, -malign-jumps and -malign-functions.
433
434 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
435
436 PR target/39152
437 * config/i386/i386.md: Restrict the new peephole2 to move
438 between the general purpose registers.
439
440 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
441
442 PR target/39162
443 * config/i386/i386.c (type_natural_mode): Add a new argument.
444 Return the original mode and warn ABI change if vector size is 32byte.
445 (function_arg_advance): Updated.
446 (function_arg): Likewise.
447 (ix86_function_value): Likewise.
448 (ix86_return_in_memory): Likewise.
449 (ix86_sol10_return_in_memory): Likewise.
450 (ix86_gimplify_va_arg): Likewise.
451 (function_arg_32): Don't warn ABX ABI change here.
452 (function_arg_64): Likewise.
453
454 2009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
455
456 * loop-iv.c (implies_p): In the final case, test that operands 0
457 of the two comparisons match.
458
459 * config/bfin/bfin.c (find_prev_insn_start): New function.
460 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
461 (find_next_insn_start): Move.
462
463 2009-02-13 Richard Guenther <rguenther@suse.de>
464
465 * configure.ac: Enable LFS.
466 * configure: Re-generate.
467 * config.in: Likewise.
468
469 2009-02-13 Joseph Myers <joseph@codesourcery.com>
470
471 PR c/35444
472 * c-parser.c (c_parser_parms_list_declarator): Discard pending
473 sizes on syntax error after some arguments have been parsed.
474
475 2009-02-12 Jakub Jelinek <jakub@redhat.com>
476
477 * doc/invoke.texi (-fira): Remove.
478
479 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
480
481 * caller-save.c: Replace regclass.c with reginfo.c in comments.
482 * recog.c: Likewise.
483 * rtl.h: Likewise.
484
485 2009-02-12 Uros Bizjak <ubizjak@gmail.com>
486
487 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
488 (umul_ppmm): Likewise.
489 (count_leading_zeros): Likewise.
490 (count_trailing_zeros): Likewise.
491 (UMUL_TIME): Likewise.
492
493 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
494
495 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
496 soft-fp/t-softfp to tmake_file.
497
498 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
499 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
500 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
501 IA64_BUILTIN_INFQ]: New.
502 (ia64_init_builtins): Initialize __builtin_infq,
503 __builtin_fabsq and __builtin_copysignq if not HPUX.
504 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
505 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
506
507 * config/ia64/lib1funcs.asm (__divtf3): Define only if
508 SHARED is defined.
509 (__fixtfti): Likewise.
510 (__fixunstfti): Likewise.
511 (__floattitf): Likewise.
512
513 * config/ia64/libgcc-glibc.ver: New.
514 * config/ia64/t-fprules-softfp: Likewise.
515 * config/ia64/sfp-machine.h: Likewise.
516
517 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
518 (LIBGCC2_TF_CEXT): Likewise.
519 (TF_SIZE): Likewise.
520 (TARGET_INIT_LIBFUNCS): Likewise.
521
522 * config/ia64/t-glibc (SHLINB_MAPFILES):
523 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
524
525 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
526
527 * config/i386/i386.c (construct_container): Rewrite processing
528 BLKmode with X86_64_SSE_CLASS.
529
530 2009-02-12 Paolo Bonzini <bonzini@gnu.org>
531
532 PR target/39152
533 * config/i386/i386.md: Replace simplify_replace_rtx with
534 replace_rtx in the new peephole2.
535
536 2009-02-12 Nathan Sidwell <nathan@codesourcery.com>
537
538 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
539 loop unrolling do not happen at -O2.
540
541 2009-02-12 Michael Matz <matz@suse.de>
542
543 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
544
545 2009-02-12 Jakub Jelinek <jakub@redhat.com>
546
547 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
548 for -g3.
549
550 2009-02-12 Ben Elliston <bje@au.ibm.com>
551
552 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
553 patterns when updating the back chain. Missed in the 2009-02-10
554 change.
555
556 2009-02-11 Janis Johnson <janis187@us.ibm.com>
557
558 * doc/extend.texi (Decimal Floating Types): Update identifier of
559 draft TR and list of missing support.
560
561 2009-02-11 Jakub Jelinek <jakub@redhat.com>
562
563 PR middle-end/39154
564 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
565 bit to variable length decl's flags, add it also to its
566 pointer replacement variable.
567
568 2009-02-11 Uros Bizjak <ubizjak@gmail.com>
569 Jakub Jelinek <jakub@redhat.com>
570
571 PR target/39118
572 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
573 (memory_blockage): New expander.
574 (*memory_blockage): New insn pattern.
575 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
576 instead of general blockage at the end of function prologue when
577 frame pointer is used to access red zone area. Do not emit blockage
578 when profiling, it is emitted in generic code.
579 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
580 function epilogue when frame pointer is used to access red zone area.
581
582 2009-02-11 Paolo Bonzini <bonzini@gnu.org>
583
584 PR target/38824
585 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
586 by arithmetic with memory operands.
587 * config/i386/predicates.md (commutative_operator): New.
588
589 2009-02-10 Janis Johnson <janis187@us.ibm.com>
590
591 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
592 bulleted lists.
593
594 2009-02-10 Eric Botcazou <ebotcazou@adacore.com>
595
596 * alias.h (record_alias_subset): Declare.
597 * alias.c (record_alias_subset): Make global.
598
599 2009-02-10 Nick Clifton <nickc@redhat.com>
600
601 * tree-parloops.c: Change license to GPLv3.
602 * ipa-struct-reorg.c: Change license to GPLv3.
603 * ipa-struct-reorg.h: Change license to GPLv3.
604
605 2009-02-10 Steve Ellcey <sje@cup.hp.com>
606
607 PR c/39084
608 * c-decl.c (start_struct): Return NULL on error.
609
610 2009-02-10 Jakub Jelinek <jakub@redhat.com>
611
612 PR middle-end/39124
613 * cfgloopmanip.c (remove_path): Call remove_bbs after
614 cancel_loop_tree, not before it.
615
616 PR target/39139
617 * function.h (struct function): Add has_local_explicit_reg_vars bit.
618 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
619 VAR_DECLs were seen.
620 * tree-ssa-live.c (remove_unused_locals): Recompute
621 cfun->has_local_explicit_reg_vars.
622 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
623 copies or clearings if cfun->has_local_explicit_reg_vars.
624
625 2009-02-10 Uros Bizjak <ubizjak@gmail.com>
626
627 PR target/39118
628 * config/i386/i386.c (expand_prologue): Emit blockage at the end
629 of function prologue when frame pointer is used to access
630 red zone area.
631
632 2009-02-10 Richard Guenther <rguenther@suse.de>
633
634 PR middle-end/39127
635 * gimplify.c (gimple_regimplify_operands): Always look if
636 we need to create a temporary.
637
638 2009-02-10 Richard Guenther <rguenther@suse.de>
639
640 PR tree-optimization/39132
641 * tree-loop-distribution.c (todo): New global var.
642 (generate_memset_zero): Trigger TODO_rebuild_alias.
643 (tree_loop_distribution): Return todo.
644
645 2009-02-10 H.J. Lu <hongjiu.lu@intel.com>
646
647 PR target/39119
648 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
649 (x86_64_reg_class_name): Removed.
650 (classify_argument): Return 0 if bytes > 32. Return 0 if the
651 first one isn't X86_64_SSE_CLASS or any other ones aren't
652 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
653 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
654 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
655 and 3 X86_64_SSEUP_CLASS.
656 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
657 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
658
659 2009-02-10 Ben Elliston <bje@au.ibm.com>
660
661 * config/rs6000/rs6000.md (allocate_stack): Always use an update
662 form instruction to update the stack back chain word, even if the
663 user has disabled the generation of update instructions.
664 (movdi_<mode>_update_stack): New.
665 (movsi_update_stack): Likewise.
666 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
667 always use an update form instruction to update the stack back
668 chain word.
669
670 2009-02-09 Sebastian Pop <sebastian.pop@amd.com>
671
672 PR middle-end/38953
673 * graphite.c (if_region_set_false_region): After moving a region in
674 the false branch of a condition, remove the empty dummy basic block.
675 (gloog): Remove wrong fix for PR38953.
676
677 2009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
678
679 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
680 generation due to implicit sign extension.
681
682 2009-02-09 Eric Botcazou <ebotcazou@adacore.com>
683
684 PR middle-end/38981
685 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
686 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
687
688 2009-02-09 Richard Guenther <rguenther@suse.de>
689
690 PR middle-end/35202
691 * convert.c (convert_to_real): Disable (float)fn((double)x)
692 to fnf(x) conversion if errno differences may occur and
693 -fmath-errno is set.
694
695 2009-02-07 Anatoly Sokolov <aesok@post.ru>
696
697 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
698 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
699 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
700
701 2009-02-06 Joseph Myers <joseph@codesourcery.com>
702
703 PR c/35434
704 * c-common.c (handle_alias_attribute): Disallow attribute for
705 anything not a FUNCTION_DECL or VAR_DECL.
706
707 2009-02-06 Janis Johnson <janis187@us.ibm.com>
708
709 PR c/39035
710 * real.c (do_compare): Special-case compare of zero against
711 decimal float value.
712
713 2009-02-06 Joseph Myers <joseph@codesourcery.com>
714
715 PR c/36432
716 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
717 as indicating flexible array members unless the field itself is
718 being declarared as the incomplete array.
719
720 2009-02-06 Jan Hubicka <jh@suse.cz>
721
722 PR tree-optimization/38844
723 * ipa-inline.c (try_inline): Stop inlining recursion when edge
724 is already inlined.
725
726 2009-02-06 Richard Guenther <rguenther@suse.de>
727
728 PR middle-end/38977
729 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
730 fork because we may expand it as __gcov_fork.
731
732 2009-02-06 Nick Clifton <nickc@redhat.com>
733
734 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
735
736 2009-02-06 Paolo Bonzini <bonzini@gnu.org>
737
738 PR tree-optimization/35659
739 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
740 vn_phi_eq): Shortcut if hashcode does not match.
741 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
742 NULL operands.
743 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
744 and avoid iterative_hash_expr.
745 (FOR_EACH_VALUE_ID_IN_SET): New.
746 (value_id_compare): Remove.
747 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
748 sort expressions by value id.
749
750 2009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
751
752 PR target/38991
753 * config/sh/predicates.md (general_movsrc_operand): Don't check
754 the subreg of system registers here.
755
756 2009-02-05 Jakub Jelinek <jakub@redhat.com>
757
758 PR c++/39106
759 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
760 on the copied decl.
761
762 2009-02-05 Paolo Bonzini <bonzini@gnu.org>
763
764 PR rtl-optimization/39110
765 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
766 addresses, not aligned ones.
767
768 2009-02-05 Daniel Berlin <dberlin@dberlin.org>
769 Richard Guenther <rguenther@suse.de>
770
771 PR tree-optimization/39100
772 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
773 comment says and add edges.
774
775 2009-02-05 Joseph Myers <joseph@codesourcery.com>
776
777 PR c/35435
778 * c-common.c (handle_tls_model_attribute): Ignore attribute for
779 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
780
781 2009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
782
783 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
784 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
785 register_bb_in_sese, new_sese, free_sese): Moved.
786 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
787 outermost_loop_in_scop, build_scop_iteration_domain,
788 expand_scalar_variables_ssa_name, get_vdef_before_scop,
789 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
790 Use loop_in_sese_p instead of loop_in_scop_p.
791 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
792 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
793 (scopdet_basic_block_info): Fix bug in scop detection.
794 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
795 eq_loop_to_cloog_loop): Remove.
796 (nb_loops_around_loop_in_scop, nb_loop
797 ref_nb_loops): Moved here...
798 * graphite.h (ref_nb_loops): ... from here.
799 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
800 (loop_domain_dim, loop_iteration_vector_dim): Remove.
801 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
802 * testsuite/gcc.dg/graphite/scop-19.c: New
803
804 2009-02-04 Paolo Bonzini <bonzini@gnu.org>
805 Hans-Peter Nilsson <hp@axis.com>
806
807 PR rtl-optimization/37889
808 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
809 Move offset handling from PLUS to before the switch. Use new
810 arguments when considering SYMBOL_REFs too.
811 (rtx_addr_can_trap_p): Pass dummy offset and size.
812 (enum may_trap_p_flags): Remove.
813 (may_trap_p_1): Pass size from MEM_SIZE.
814
815 PR rtl-optimization/38921
816 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
817 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
818 * rtlanal.c (may_trap_after_code_motion_p): Delete.
819 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
820
821 2009-02-04 H.J. Lu <hongjiu.lu@intel.com>
822
823 AVX Programming Reference (January, 2009)
824 * config/i386/sse.md (*vpclmulqdq): New.
825
826 2009-02-04 Jakub Jelinek <jakub@redhat.com>
827
828 PR tree-optimization/38977
829 PR gcov-profile/38292
830 * calls.c (special_function_p): Disregard __builtin_ prefix.
831
832 2009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
833
834 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
835 non-indexable addresses even before reload.
836
837 2009-02-03 Joseph Myers <joseph@codesourcery.com>
838
839 PR c/29129
840 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
841 as having variable size. Do not give an error for unnamed
842 parameters with [*] declarators. Give a warning for type names
843 with [*] declarators and mark them as variable size.
844 * c-parser.c (c_parser_sizeof_expression): Do not give an error
845 for sizeof applied to [*] type names.
846
847 2009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
848
849 PR C++/36607
850 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
851
852 2009-02-03 Jakub Jelinek <jakub@redhat.com>
853
854 * gcc.c (process_command): Update copyright notice dates.
855 * gcov.c (print_version): Likewise.
856 * gcov-dump.c (print_version): Likewise.
857 * mips-tfile.c (main): Likewise.
858 * mips-tdump.c (main): Likewise.
859
860 2009-02-03 Joseph Myers <joseph@codesourcery.com>
861
862 PR c/35433
863 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
864 for composite type involving a zero-length array type.
865
866 2009-02-03 Jakub Jelinek <jakub@redhat.com>
867
868 PR target/35318
869 * function.c (match_asm_constraints_1): Skip over
870 initial optional % in the constraint.
871
872 PR inline-asm/39059
873 * c-parser.c (c_parser_postfix_expression): If fixed point is not
874 supported, don't accept FIXED_CSTs.
875 * c-decl.c (finish_declspecs): Error if fixed point is not supported
876 and _Sat is used without _Fract/_Accum. Set specs->type to
877 integer_type_node for cts_fract/cts_accum if fixed point is not
878 supported.
879
880 2009-02-02 Catherine Moore <clm@codesourcery.com>
881
882 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
883
884 2009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
885
886 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
887 (ABI_HAS_64BIT_SYMBOLS): Use it.
888 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
889
890 2009-02-02 Paul Brook <paul@codesourcery.com>
891
892 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
893
894 2009-02-02 Jakub Jelinek <jakub@redhat.com>
895
896 PR inline-asm/39058
897 * recog.h (asm_operand_ok): Add constraints argument.
898 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
899 recurse on matching constraint.
900 (check_asm_operands): Pass constraints as 3rd argument to
901 asm_operand_ok. Don't look up matching constraint here.
902 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
903 to asm_operand_ok.
904
905 2009-02-02 Ben Elliston <bje@au.ibm.com>
906
907 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
908 TARGET_NARROW_VOLATILE_BITFIELD macro names.
909
910 2009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
911
912 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
913 information. Remove some obsolete information. Reorganize.
914
915 * config/pa/fptr.c: Revert license to GPL 2.
916 * config/pa/milli64.S: Likewise.
917
918 2009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
919
920 PR target/38904
921 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
922 LIBRARY name in, instead of hard-coding it.
923 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
924 extra target make frag to tmake_files according to EH model.
925 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
926 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
927 frags that define makefile variable EH_MODEL appropriately.
928 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
929 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
930 to "-sjlj" according to type of EH configured.
931 (LIBGCC_SONAME): Concatenate it to shared library base name.
932 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
933 to "_sjlj" according to type of EH configured.
934 (LIBGCC_SONAME): Concatenate it to shared library base name.
935 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
936 (SHLIB_LINK): Add missing semicolon to if-else construct.
937 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
938 string value of "pe_dll" command-line option.
939 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
940 (SHLIB_SONAME): Use it when overriding t-cygming default.
941 (SHLIB_IMPLIB): Override t-cygming default.
942 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
943 string value of "pe_dll" command-line option.
944
945 2009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
946
947 PR target/38952
948 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
949 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
950
951 2009-01-31 Richard Guenther <rguenther@suse.de>
952
953 PR tree-optimization/38937
954 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
955 computing the transitive closure.
956
957 2009-01-30 Richard Guenther <rguenther@suse.de>
958
959 PR tree-optimization/39041
960 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
961 Propagate variable indices only if the types match for this stmt.
962
963 2009-01-30 Jakub Jelinek <jakub@redhat.com>
964
965 PR target/39013
966 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
967 inline but never defined.
968
969 2009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
970
971 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
972 (*insv_h_di_reg_extimm): New insn.
973 (*insv_l<mode>_reg_extimm): New insn.
974
975 2009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
976
977 * config/picochip/picochip.c (flag_conserve_stack): set
978 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
979 fconserve-stack. Reduce call-overhead used by inliner.
980
981 2009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
982
983 PR/38157
984 * common.opt (flag_conserve_stack): Initialised to zero.
985
986 2009-01-30 Kai Tietz <kai.tietz@onevision.com>
987
988 PR/39002
989 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
990 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
991 method.
992
993 2009-01-29 H.J. Lu <hongjiu.lu@intel.com>
994
995 * ira-color.c (allocno_reload_assign): Update comments.
996 * regmove.c (regmove_optimize): Likewise.
997
998 * ra.h: Removed.
999
1000 2009-01-29 Robert Millan <rmh@aybabtu.com>
1001
1002 * gcc/config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
1003 * gcc/config/i386/kopensolaris-gnu.h: New file. Undefine
1004 `MD_UNWIND_SUPPORT'.
1005 * gcc/config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
1006
1007 2009-01-29 Kazu Hirata <kazu@codesourcery.com>
1008
1009 PR tree-optimization/39007
1010 * tree-loop-distribution.c (generate_builtin): Use
1011 recompute_dominator to compute the immediate dominator of the
1012 basic block just after the loop.
1013
1014 2009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1015
1016 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
1017 (ASM_OUTPUT_DWARF_PCREL): Define.
1018
1019 2009-01-29 Vladimir Makarov <vmakarov@redhat.com>
1020
1021 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
1022 * doc/passes.texi: Remove entries about regclass, local-alloc, and
1023 global. Modify entries about regmove and IRA.
1024
1025 * ra-conflict.c: Remove the file.
1026
1027 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
1028
1029 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
1030 (pass_regclass_init): Rename to pass_reginfo_init.
1031
1032 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
1033
1034 * toplev.h (flag_ira): Remove.
1035
1036 * caller-save.c (setup_save_areas): Remove flag_ira.
1037
1038 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
1039
1040 * global.c: Remove the file.
1041
1042 * opts.c: (decode_options): Remove flag_ira.
1043
1044 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
1045
1046 * regmove.c: Modify file description.
1047 (find_use_as_address, try_auto_increment): Define them only if
1048 AUTO_INC_DEC is defined.
1049 (replacement_quality, replace_in_call_usage, fixup_match_1,
1050 stable_and_no_regs_but_for_p): Remove.
1051 (reg_set_in_bb): Make it static.
1052 (regmove_optimize): Remove flag_ira and code which worked for
1053 !flag_ira.
1054
1055 * local-alloc.c: Remove the file.
1056
1057 * common.opt (fira): Remove.
1058
1059 * ira.c: Include except.h.
1060 (eliminable_regset): Move from global.c.
1061 (mark_elimination): Ditto. Remove flag_ira.
1062 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
1063 equiv_mem_modified, validate_equiv_mem_from_store,
1064 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
1065 contains_replace_regs, memref_referenced_p, memref_used_between_p,
1066 no_equiv, recorded_label_ref): Move from local-alloc.c.
1067 (update_equiv_regs): Ditto. Make it static.
1068 (print_insn_chain, print_insn_chains): Move it from global.c.
1069 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
1070 (build_insn_chain): Ditto. Make it static.
1071 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
1072 Rename to init_live_subregs.
1073 (gate_ira): Remove flag_ira.
1074
1075 * regclass.c: Rename reginfo.c. Change file description.
1076 (FORBIDDEN_INC_DEC_CLASSES): Remove.
1077 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
1078 (init_reg_sets_1): Remove code for evaluation of
1079 reg_class_superclasses and losing_caller_save_reg_set.
1080 (init_regs): Remove init_reg_autoinc.
1081 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
1082 ok_for_base_p_nonstrict): Remove.
1083 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
1084 (pass_regclass_init): Rename to pass_reginfo_init. Modify
1085 corresponding entries.
1086 (dump_regclass, record_operand_costs, scan_one_insn,
1087 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
1088 record_address_regs, auto_inc_dec_reg_p): Remove.
1089 (gt-regclass.h): Rename to gt-reginfo.h.
1090
1091 * rtl.h (dump_global_regs, retry_global_alloc,
1092 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
1093
1094 * Makefile.in (RA_H): Remove.
1095 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
1096 Rename regclass.o to reginfo.o.
1097 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
1098 gt-reginfo.h.
1099 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
1100 (GTFILES): Rename regclass.c to reginfo.c.
1101
1102 * passes.c (init_optimization_passes): Remove pass_local_alloc and
1103 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
1104
1105 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
1106 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
1107 Remove flag_ira.
1108 (finish_spills): Ditto. Remove code for !flag_ira.
1109
1110 2009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
1111
1112 PR middle-end/35854
1113 * doc/invoke.texi (rtl debug options): Complete rewrite.
1114 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
1115 to auto_inc_dec".
1116 * mode-switching.c (pass_mode_switching): Rename pass from
1117 "mode-sw" to "mode_sw".
1118 * except.c (pass_convert_to_eh_ranges): Rename pass from
1119 "eh-ranges" to "eh_ranges".
1120 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
1121 to "subreg1".
1122
1123
1124 2009-01-29 Andrey Belevantsev <abel@ispras.ru>
1125 Alexander Monakov <amonakov@ispras.ru>
1126
1127 PR middle-end/38857
1128 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
1129 register.
1130 (move_exprs_to_boundary): Change return type and pass through
1131 should_move from move_op. Relax assert. Update usage ...
1132 (schedule_expr_on_boundary): ... here. Use should_move instead of
1133 cant_move.
1134 (move_op_orig_expr_found): Indicate that insn was disconnected from
1135 stream.
1136 (code_motion_process_successors): Do not call after_merge_succs
1137 callback if original expression was not found when traversing any of
1138 the branches.
1139 (code_motion_path_driver): Change return type. Update prototype.
1140 (move_op): Update comment. Add a new parameter (should_move). Update
1141 prototype. Set *should_move based on indication provided by
1142 move_op_orig_expr_found.
1143
1144 2009-01-28 Pat Haugen <pthaugen@us.ibm.com>
1145
1146 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
1147 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
1148 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
1149 * config/rs6000/rs6000.c (rs6000_override_options): Default
1150 avoid-indexed-addresses on for Power6, off for everything else.
1151 (avoiding_indexed_address_p): New function.
1152 (rs6000_legitimize_address): Use it.
1153 (rs6000_legitimate_address): Likewise.
1154 * config/rs6000/rs6000.md (movXX_updateX): Likewise
1155
1156 2009-01-28 Kazu Hirata <kazu@codesourcery.com>
1157
1158 PR tree-optimization/38997
1159 * tree-loop-distribution.c (generate_memset_zero): Use
1160 POINTER_PLUS_EXPR for a pointer addition.
1161
1162 2009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
1163
1164 * config/s390/s390.md (bswap<mode>2): New pattern added.
1165
1166 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
1167
1168 * config/s390/s390.md (*tls_load_31): Added type attribute.
1169
1170 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
1171
1172 * config/s390/s390.md: Fix a few comments.
1173
1174 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
1175
1176 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
1177 (*tm<mode>_full): Fixed z10prop attribute.
1178 (*tst<mode>_extimm): Fixed z10prop attribute.
1179 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
1180 (*tstqiCCT_cconly): Fixed z10prop attribute.
1181 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
1182 (*movsi_larl): Fixed z10prop attribute.
1183 (*movsi_zarch): Fixed z10prop attribute.
1184 (*movsi_eas): Fixed z10prop attribute.
1185 (*movhi): Fixed z10prop attribute.
1186 (*movqi): Fixed z10prop attribute.
1187 (*movstrictqi): Fixed z10prop attribute.
1188 (*mov<mode>): Fixed z10prop attribute.
1189 (*movcc): Fixed z10prop attribute.
1190 (*sethighpartdi_64): Fixed z10prop attribute.
1191 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
1192 (*negdi2_sign_cc): Fixed z10prop attribute.
1193 (*negdi2_sign): Fixed z10prop attribute.
1194 (*absdi2_sign_cc): Fixed z10prop attribute.
1195 (*absdi2_sign): Fixed z10prop attribute.
1196 (*negabsdi2_sign_cc): Fixed z10prop attribute.
1197 (*negabsdi2_sign): Fixed z10prop attribute.
1198 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
1199 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
1200 (doloop_si64): Fixed z10prop attribute.
1201 (doloop_si31): Fixed z10prop attribute.
1202 (doloop_long): Fixed z10prop attribute.
1203 (indirect_jump): Fixed z10prop attribute.
1204 (nop): Fixed z10prop attribute.
1205 (main_base_64): Fixed z10prop attribute.
1206 (reload_base_64): Fixed z10prop attribute.
1207
1208 2009-01-28 Jakub Jelinek <jakub@redhat.com>
1209
1210 PR rtl-optimization/38740
1211 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
1212 if !optimize.
1213 * config/mips/mips.c (mips_reorg): Likewise.
1214
1215 2009-01-28 Richard Guenther <rguenther@suse.de>
1216
1217 PR tree-optimization/38926
1218 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
1219 with the correct value id to a value.
1220 (do_regular_insertion): Use the value number of edoubleprime
1221 for the value number of the expr.
1222
1223 Revert
1224 2008-08-21 Richard Guenther <rguenther@suse.de>
1225
1226 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
1227 a PHI ask VN if it is already available.
1228 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
1229 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
1230
1231 2009-01-28 Jakub Jelinek <jakub@redhat.com>
1232
1233 PR middle-end/38934
1234 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
1235 set to varying whenever max has TREE_OVERFLOW set, similarly
1236 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
1237
1238 2009-01-28 Richard Guenther <rguenther@suse.de>
1239
1240 PR middle-end/38908
1241 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
1242 uninitialized aggregate uses in call arguments.
1243
1244 2009-01-28 Paolo Bonzini <bonzini@gnu.org>
1245
1246 PR tree-optimization/38984
1247 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
1248 the nothing_id variable if -fno-delete-null-pointer-checks.
1249
1250 2009-01-28 Uros Bizjak <ubizjak@gmail.com>
1251
1252 PR target/38988
1253 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
1254 (set_got_offset_rex64): Ditto.
1255
1256 2009-01-27 H.J. Lu <hongjiu.lu@intel.com>
1257
1258 PR target/38941
1259 * doc/extend.texi: Improve local variable with asm reg.
1260
1261 2009-01-27 Adam Nemet <anemet@caviumnetworks.com>
1262
1263 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
1264 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
1265 was not supplied then set warn_packed_bitfield_compat to the
1266 default value of 1.
1267 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
1268 against 1.
1269
1270 2009-01-27 Richard Guenther <rguenther@suse.de>
1271
1272 PR tree-optimization/38503
1273 * cfgexpand.c (expand_gimple_basic_block): Ignore
1274 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
1275 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
1276 variables that cannot have TBAA applied.
1277 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
1278 statements.
1279
1280 2009-01-27 Uros Bizjak <ubizjak@gmail.com>
1281
1282 PR middle-end/38969
1283 * calls.c (initialize_argument_information): Do not wrap complex
1284 arguments in SAVE_EXPR.
1285
1286 2009-01-26 Andreas Tobler <a.tobler@schweiz.org>
1287
1288 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
1289 (INSTALL_LIBGCC): Revert typo commit.
1290
1291 2009-01-26 Richard Guenther <rguenther@suse.de>
1292
1293 PR tree-optimization/38745
1294 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
1295 from special handling.
1296
1297 2009-01-26 Richard Guenther <rguenther@suse.de>
1298
1299 PR tree-optimization/38745
1300 * tree-ssa.c (execute_update_addresses_taken): Do not include
1301 variables that cannot possibly be a register in not_reg_needs.
1302 Do not clear TREE_ADDRESSABLE on vars that may not become
1303 registers.
1304 * tree-ssa.c (update_alias_info_1): Include those in the set
1305 of addressable vars.
1306
1307 2009-01-26 Richard Guenther <rguenther@suse.de>
1308
1309 PR middle-end/38851
1310 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
1311 * tree-ssa-dse.c: Include langhooks.h
1312 (execute_simple_dse): Remove stores with zero size.
1313
1314 2009-01-24 Jakub Jelinek <jakub@redhat.com>
1315
1316 PR c/38957
1317 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
1318 as PLUS_EXPR.
1319
1320 2009-01-24 Julian Brown <julian@codesourcery.com>
1321
1322 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
1323 config/arm/linux-atomic.c.
1324 * config/arm/linux-atomic.c: New.
1325
1326 2009-01-24 Eric Botcazou <ebotcazou@adacore.com>
1327
1328 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
1329 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
1330 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
1331
1332 2009-01-24 H.J. Lu <hongjiu.lu@intel.com>
1333
1334 PR c/38938
1335 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
1336 properly.
1337
1338 2009-01-24 Sebastian Pop <sebastian.pop@amd.com>
1339
1340 PR tree-optimization/38953
1341 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
1342 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
1343 (gloog): Split the exit of the scop when the scop exit is a loop exit.
1344 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
1345 changed the CFG.
1346
1347 2009-01-24 Paul Brook <paul@codesourcery.com>
1348
1349 * config/arm/neon.md (neon_type): Move to arm.md.
1350 (neon_mov<VSTRUCT>): Add neon_type attribute.
1351 * config/arm/arm.md (neon_type): Move to here.
1352 (conds): Add "unconditioal" and use as default for NEON insns.
1353
1354 2009-01-24 Ben Elliston <bje@au.ibm.com>
1355
1356 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
1357 void *' warning from -Wc++-compat.
1358 * Makefile.in (dominance.o-warn): Remove.
1359
1360 2009-01-23 Paolo Bonzini <bonzini@gnu.org>
1361
1362 PR tree-optimization/38932
1363 * fold-const.c (fold_unary_ignore_overflow): New.
1364 * tree.h (fold_unary_ignore_overflow): Declare.
1365 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
1366 * tree-ssa-sccvn.c (visit_reference_op_load,
1367 simplify_unary_expression): Likewise.
1368
1369 2009-01-22 Adam Nemet <anemet@caviumnetworks.com>
1370
1371 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
1372 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
1373 regardless of their type.
1374 * c-common.c (handle_packed_attribute): Don't ignore packed on
1375 bitfields.
1376 * c.opt (Wpacked-bitfield-compat): New warning option.
1377 * stor-layout.c (place_field): Warn if offset of a field changed.
1378 * doc/extend.texi (packed): Mention the ABI change.
1379 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
1380 (Warning Options): Add it to the list.
1381
1382 2009-01-22 H.J. Lu <hongjiu.lu@intel.com>
1383
1384 * c-opts.c (c_common_post_options): Fix a typo in comments.
1385
1386 2009-01-22 Steve Ellcey <sje@cup.hp.com>
1387
1388 PR middle-end/38615
1389 * gimplify.c (gimplify_init_constructor): Fix promotion of const
1390 variables to static.
1391 * doc/invoke.texi (-fmerge-all-constants): Update description.
1392
1393 2009-01-22 Uros Bizjak <ubizjak@gmail.com>
1394
1395 PR target/38931
1396 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
1397 (*movdi_1_rex64): Use type "mmx" for alternative 5.
1398
1399 2009-01-22 Richard Earnshaw <rearnsha@arm.com>
1400
1401 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
1402 a word boundary.
1403 (LOCAL_ALIGNMENT): Similarly.
1404
1405 2009-01-22 Mark Shinwell <shinwell@codesourcery.com>
1406 Joseph Myers <joseph@codesourcery.com>
1407
1408 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
1409 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
1410 * config/arm/arm-tune.md: Regenerate.
1411 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
1412 -march=iwmmxt2.
1413
1414 2009-01-22 Mark Shinwell <shinwell@codesourcery.com>
1415
1416 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
1417 version number to five.
1418
1419 2009-01-22 Dodji Seketeli <dodji@redhat.com>
1420
1421 PR c++/38930
1422 * c-decl.c: (clone_underlying_type): Revert PR c++/26693 changes.
1423 * c-common.c (set_underlying_type): Likewise.
1424 (is_typedef_decl ): Likewise
1425 * tree.h: Likewise
1426 (set_underlying_type): Likewise.
1427 (is_typedef_type): Likewise.
1428
1429 2009-01-21 Vladimir Makarov <vmakarov@redhat.com>
1430
1431 PR middle-end/38587
1432 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
1433 crossing setjmps.
1434
1435 2009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
1436
1437 PR bootstrap/37660
1438 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
1439 (LIBGCC_SPEC): Don't define.
1440 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
1441
1442 2009-01-21 Uros Bizjak <ubizjak@gmail.com>
1443
1444 PR rtl-optimization/38879
1445 * alias.c (base_alias_check): Unaligned access via AND address can
1446 alias all surrounding object types except those with sizes equal
1447 or wider than the size of unaligned access.
1448
1449 2009-01-21 Dodji Seketeli <dodji@redhat.com>
1450
1451 PR c++/26693
1452 * c-decl.c: (clone_underlying_type): Move this ...
1453 * c-common.c (set_underlying_type): ... here.
1454 Also, make sure the function properly sets TYPE_STUB_DECL() on
1455 the newly created typedef variant type.
1456 (is_typedef_decl ): New entry point.
1457 * tree.h: Added a new member member_types_needing_access_check to
1458 struct tree_decl_non_common.
1459 (set_underlying_type): New entry point.
1460 (is_typedef_type): Likewise.
1461
1462 2009-01-21 Bingfeng Mei <bmei@broadcom.com>
1463
1464 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
1465 Check whether two instructions have memory references that
1466 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
1467 are helper functions for traversing.
1468 * alias.h (insn_alias_sets_confilict_p): New prototypes.
1469 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
1470 not to draw dependency edge for instructions with non-conflicting
1471 alias sets.
1472
1473 2009-01-20 Joseph Myers <joseph@codesourcery.com>
1474
1475 PR other/38758
1476 * longlong.h: Update copyright years. Use soft-fp license notice.
1477 Sync __clz_tab declaration with glibc.
1478
1479 2009-01-20 Steve Ellcey <sje@cup.hp.com>
1480
1481 PR target/30687
1482 * doc/extend.texi (syscall_linkage): New.
1483 (version_id): Modify.
1484
1485 2009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
1486 Richard Guenther <rguenther@suse.de>
1487
1488 PR tree-optimization/38747
1489 PR tree-optimization/38748
1490 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
1491 conversion if the base address is an indirect reference and the
1492 aliasing sets could cause issues.
1493
1494 2009-01-20 Sebastian Pop <sebastian.pop@amd.com>
1495
1496 * common.opt (fgraphite, fgraphite-identity): Add comment for
1497 explaining why these options are not documented.
1498
1499 2009-01-20 Sebastian Pop <sebastian.pop@amd.com>
1500
1501 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
1502 gimple_call_lhs is NULL.
1503
1504 2009-01-20 Paolo Bonzini <bonzini@gnu.org>
1505
1506 PR target/38868
1507 * emit-rtl.c (adjust_address_1): Make sure memref is never
1508 overwritten.
1509
1510 2009-01-20 Ben Elliston <bje@au.ibm.com>
1511
1512 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
1513 const qualifier from arg parameter. Remove unnecessary cast to char *.
1514 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
1515 const qualifier from arg 2.
1516
1517 2009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
1518
1519 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
1520
1521 2009-01-19 Vladimir Makarov <vmakarov@redhat.com>
1522
1523 PR c/38869
1524 * rtl.h (reinit_regs): New prototype.
1525 * regclass.c: Include ira.h.
1526 (reinit_regs): New.
1527 * Makefile.in (regclass.o): Add ira.h.
1528 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
1529
1530 2009-01-18 H.J. Lu <hongjiu.lu@intel.com>
1531
1532 PR target/38736
1533 * c-common.c (handle_aligned_attribute): Use
1534 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
1535 default alignment value.
1536
1537 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
1538
1539 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
1540 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
1541
1542 * doc/extend.texi: Update __attribute__ ((aligned)). Document
1543 __BIGGEST_ALIGNMENT__.
1544
1545 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
1546
1547 2009-01-18 Richard Guenther <rguenther@suse.de>
1548
1549 PR tree-optimization/38819
1550 * tree-flow.h (operation_could_trap_helper_p): Declare.
1551 * tree-eh.c (operation_could_trap_helper_p): Export.
1552 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
1553 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
1554 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
1555 are about to insert a possibly trapping instruction and fail
1556 in this case.
1557
1558 2009-01-18 Andreas Schwab <schwab@suse.de>
1559
1560 * doc/install.texi (Configuration): Remove obsolete paragraph
1561 about use of --with-gnu-ld with --with-gnu-as.
1562
1563 2009-01-18 Kazu Hirata <kazu@codesourcery.com>
1564
1565 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
1566 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
1567 Follow spelling conventions.
1568
1569 2009-01-18 Ben Elliston <bje@au.ibm.com>
1570
1571 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
1572 C++ warning about implicit conversion from void * to struct
1573 bitmap_head_def *.
1574 (bitmap_obstack_free): Likewise for bitmap_element *.
1575 * Makefile.in (bitmap.o-warn): Remove.
1576
1577 2009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
1578
1579 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
1580
1581 2009-01-17 Sebastian Pop <sebastian.pop@amd.com>
1582 Tobias Grosser <tobi.grosser@amd.com>
1583
1584 * graphite.c (graphite_trans_scop_block): Do not block single
1585 nested loops.
1586
1587 2009-01-16 Alexandre Oliva <aoliva@redhat.com>
1588
1589 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
1590 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
1591 test with assertion.
1592
1593 2009-01-16 Richard Guenther <rguenther@suse.de>
1594
1595 PR tree-optimization/38835
1596 PR middle-end/36227
1597 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
1598 and INT + PTR -> (INT)(PTR p+ INT) folding.
1599 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
1600
1601 2009-01-16 Adam Nemet <anemet@caviumnetworks.com>
1602
1603 PR target/38554
1604 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
1605 the subreg from a lowpart subreg if it is also casting the value.
1606
1607 2009-01-16 Sebastian Pop <sebastian.pop@amd.com>
1608 Tobias Grosser <tobi.grosser@amd.com>
1609
1610 * graphite.c (compare_prefix_loops): New.
1611 (build_scop_canonical_schedules): Rewritten.
1612 (graphite_transform_loops): Move build_scop_canonical_schedules
1613 after build_scop_iteration_domain.
1614
1615 2009-01-16 Sebastian Pop <sebastian.pop@amd.com>
1616 Tobias Grosser <tobi.grosser@amd.com>
1617
1618 * graphite.c (add_conditions_to_domain): Add the loops to
1619 the dimension of the iteration domain. Do copy the domain
1620 only when it exists.
1621 (build_scop_conditions_1): Do not call add_conditions_to_domain.
1622 (add_conditions_to_constraints): New.
1623 (can_generate_code_stmt, can_generate_code): Removed.
1624 (gloog): Do not call can_generate_code.
1625 (graphite_transform_loops): Call add_conditions_to_constraints
1626 after building the iteration domain.
1627
1628 2009-01-16 Jakub Jelinek <jakub@redhat.com>
1629
1630 PR tree-optimization/38789
1631 * tree-ssa-threadedge.c
1632 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
1633 __builtin_constant_p.
1634
1635 2009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
1636
1637 * dce.c (delete_unmarked_insns): Reversed the order that insns are
1638 examined before deleting them.
1639
1640 2009-01-16 Richard Earnshaw <rearnsha@arm.com>
1641
1642 * function.c (aggregate_value_p): Correctly extract the function
1643 type from CALL_EXPR_FN lookup.
1644
1645 2009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
1646
1647 * config/picochip/picochip.c (picochip_override_options): Revert
1648 CFI asm flag disable commited previously.
1649
1650 2009-01-15 Sebastian Pop <sebastian.pop@amd.com>
1651 Tobias Grosser <tobi.grosser@amd.com>
1652 Jan Sjodin <jan.sjodin@amd.com>
1653
1654 * graphite.c (scan_tree_for_params): On substractions negate
1655 all the coefficients of the term.
1656 (clast_to_gcc_expression_red): New. Handle reduction expressions
1657 of more than two operands.
1658 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
1659 (get_vdef_before_scop): Handle also the case of default definitions.
1660
1661 2009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
1662
1663 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
1664 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
1665 Also use them when walking CALL_INSN_FUNCTION_USAGE.
1666
1667 2009-01-15 H.J. Lu <hongjiu.lu@intel.com>
1668 Joey Ye <joey.ye@intel.com>
1669
1670 PR middle-end/37843
1671 * cfgexpand.c (expand_stack_alignment): Don't update stack
1672 boundary nor check incoming stack boundary here.
1673 (gimple_expand_cfg): Update stack boundary and check incoming
1674 stack boundary here.
1675
1676 2009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
1677
1678 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
1679
1680 2009-01-14 Jakub Jelinek <jakub@redhat.com>
1681
1682 PR rtl-optimization/38245
1683 * calls.c (expand_call): Add stack arguments to
1684 CALL_INSN_FUNCTION_USAGE even for pure calls (when
1685 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
1686 in regs and partially in memory or BLKmode arguments.
1687 (emit_library_call_value_1): Add stack arguments to
1688 CALL_INSN_FUNCTION_USAGE even for pure calls (when
1689 ACCUMULATE_OUTGOING_ARGS).
1690 * dce.c: Include tm_p.h.
1691 (find_call_stack_args): New function.
1692 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
1693 argument.
1694 (mark_insn): Call find_call_stack_args for CALL_Ps.
1695 (prescan_insns_for_dce): Walk insns backwards in bb rather than
1696 forwards. Allocate and free arg_stores bitmap if needed, pass it
1697 down to deletable_insn_p, don't mark stores set in arg_stores
1698 bitmap, clear the bitmap at the beginning of each bb.
1699 * Makefile.in (dce.o): Depend on $(TM_P_H).
1700
1701 2009-01-14 Michael Meissner <gnu@the-meissners.org>
1702
1703 PR target/22599
1704 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
1705 to make sure the insn is a conditional test (bug 22599). Reformat a
1706 few long lines.
1707
1708 2009-01-14 Sebastian Pop <sebastian.pop@amd.com>
1709
1710 PR middle-end/38431
1711 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
1712 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
1713 (gloog): Do not call cleanup_tree_cfg.
1714 (graphite_transform_loops): Call cleanup_tree_cfg after all
1715 scops have been code generated.
1716
1717 2009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
1718 * doc/gty.texi (Invoking the garbage collector): Added new node
1719 and section documenting ggc_collect.
1720
1721 2009-01-14 Richard Guenther <rguenther@suse.de>
1722
1723 PR tree-optimization/38826
1724 PR middle-end/38477
1725 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
1726 initialization notes only if we actually emitted a warning.
1727 (intra_create_variable_infos): Add constraints for a result decl
1728 that is passed by hidden reference.
1729 (build_pred_graph): Mark all related variables non-direct on
1730 address-taking.
1731
1732 2009-01-14 Nick Clifton <nickc@redhat.com>
1733
1734 * ira-conflicts.c: Include addresses.h for the definition of
1735 base_reg_class.
1736 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
1737 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
1738
1739 2009-01-13 Vladimir Makarov <vmakarov@redhat.com>
1740
1741 PR target/38811
1742 * Makefile.in (ira-lives.o): Add except.h.
1743
1744 * ira-lives.c: Include except.h.
1745 (process_bb_node_lives): Process can_throw_internal.
1746
1747 2009-01-13 Jakub Jelinek <jakub@redhat.com>
1748
1749 PR rtl-optimization/38774
1750 * combine.c (simplify_set): When undoing cc_use change, don't do
1751 PUT_CODE on the newly created comparison, but instead put back the
1752 old comparison.
1753
1754 2009-01-13 Joseph Myers <joseph@codesourcery.com>
1755
1756 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
1757 values. Remove duplicate arm8 entry.
1758
1759 2009-01-13 Sebastian Pop <sebastian.pop@amd.com>
1760
1761 PR tree-optimization/38786
1762 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
1763 the SSA_NAME case of expand_scalar_variables_expr.
1764 Set the type of an expression to the type of its assign statement.
1765 (expand_scalar_variables_expr): Also gather the scalar computation
1766 used to index the memory access. Do not pass loop_p.
1767 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
1768 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
1769 the gimple_stmt_iterator where it inserts new code.
1770 Do not pass loop_p.
1771 (copy_bb_and_scalar_dependences): Do not pass loop_p.
1772 (translate_clast): Update call to copy_bb_and_scalar_dependences.
1773
1774 2009-01-13 Sebastian Pop <sebastian.pop@amd.com>
1775
1776 * graphite.h (debug_value): Removed.
1777 * graphite.c (debug_value): Removed.
1778
1779 2009-01-13 Richard Earnshaw <rearnsha@arm.com>
1780
1781 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
1782 ldrd/strd with two 32-bit instructions.
1783
1784 2009-01-13 Richard Earnshaw <rearnsha@arm.com>
1785
1786 * config/arm/arm.c (struct processors): Pass for speed down into
1787 cost helper functions.
1788 (const_ok_for_op): Handle COMPARE and inequality nodes.
1789 (arm_rtx_costs_1): Rewrite.
1790 (arm_size_rtx_costs): Update prototype.
1791 (arm_rtx_costs): Pass speed down to helper functions.
1792 (arm_slowmul_rtx_costs): Rework cost calculations.
1793 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
1794 (arm_9e_rtx_costs): Likewise.
1795
1796 2009-01-13 Uros Bizjak <ubizjak@gmail.com>
1797
1798 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
1799 relocations of local symbols wider than UNITS_PER_WORD are not valid.
1800 (alpha_legitimize_address): Do not split local symbols wider than
1801 UNITS_PER_WORD into HIGH/LO_SUM parts.
1802
1803 2009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
1804
1805 PR bootstrap/38580
1806 * gcc.c (process_command): Replace call to execvp with calls
1807 to pex_one and exit.
1808
1809 2009-01-03 Anatoly Sokolov <aesok@post.ru>
1810
1811 PR target/29141
1812 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
1813 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
1814 variant for devices with 3-byte PC.
1815 (__tablejump_elpm__) : New.
1816
1817 2009-01-12 Jakub Jelinek <jakub@redhat.com>
1818
1819 PR c/32041
1820 * c-parser.c (c_parser_postfix_expression): Allow `->' in
1821 offsetof member-designator, handle it as `[0].'.
1822
1823 2009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1824
1825 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
1826 function when not using named sections on targets with named sections
1827 if branch distance is less than 262132.
1828
1829 2009-01-12 Richard Earnshaw <rearnsha@arm.com>
1830
1831 * combine.c (combine_instructions): Recompute
1832 optimize_this_for_speed_p for each BB in the main combine loop.
1833
1834 2009-01-12 Tomas Bily <tbily@suse.cz>
1835
1836 PR middlend/38385
1837 * tree-loop-distribution.c (prop_phis): New function.
1838 (generate_builtin): Call prop_phis.
1839 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
1840
1841 2009-01-12 Jakub Jelinek <jakub@redhat.com>
1842
1843 PR tree-optimization/38807
1844 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
1845 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
1846
1847 2009-01-11 Adam Nemet <anemet@caviumnetworks.com>
1848
1849 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
1850 subreg of op0 to the original op0.
1851
1852 2009-01-11 Laurent GUERBY <laurent@guerby.net>
1853
1854 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
1855
1856 2009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
1857
1858 PR debug/7055
1859 * gcc/mips-tfile.c (parse_def): Fix parsing of def strings
1860 starting with digits.
1861
1862 2009-01-10 Jakub Jelinek <jakub@redhat.com>
1863
1864 PR target/38695
1865 * config/arm/arm.c (arm_is_long_call_p): Don't call
1866 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
1867
1868 2009-01-09 Steven Bosscher <steven@gcc.gnu.org>
1869
1870 * regrename.c (regrename_optimize): Fix dumping.
1871 (find_oldest_value_reg): Preserve REG_POINTER.
1872 (copy_hardreg_forward_1): Likewise.
1873
1874 2009-01-09 Diego Novillo <dnovillo@google.com>
1875
1876 * gimple.h (struct gimple_statement_base) <uid>: Document
1877 the restrictions on its use.
1878 (gimple_uid): Tidy.
1879 (gimple_set_uid): Tidy.
1880
1881 2009-01-09 Jakub Jelinek <jakub@redhat.com>
1882
1883 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
1884 zero guard even if align_bytes != 0 and count is smaller than
1885 size_needed.
1886
1887 2009-01-09 Vladimir Makarov <vmakarov@redhat.com>
1888
1889 PR rtl-optimization/38495
1890 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
1891 (add_range_and_copies_from_move_list): Print all added ranges.
1892 Add ranges to memory optimized destination.
1893
1894 2009-01-09 Jakub Jelinek <jakub@redhat.com>
1895
1896 PR target/38686
1897 PR target/38708
1898 * config/i386/i386.c (override_options): Reject
1899 -mstringop-strategy=rep_8byte with -m32.
1900 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
1901 to 1. Do count comparison against epilogue_size_needed at compile
1902 time even when count_exp was constant forced into register. For
1903 size_needed don't jump to epilogue, instead just avoid aligning
1904 and invoke the body algorithm. If need_zero_guard, add zero guard
1905 even if count is non-zero, but smaller than size_needed + number of
1906 bytes that could be stored for alignment.
1907 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
1908 to 1. If need_zero_guard, add zero guard even if count is non-zero,
1909 but smaller than size_needed + number of bytes that could be stored
1910 for alignment. Compare size_needed with epilogue_size_needed instead
1911 of desired_align - align, don't adjust size_needed, pass
1912 epilogue_size_needed to the epilogue expanders.
1913
1914 PR c/35742
1915 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
1916
1917 2009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1918
1919 * pa.c (last_address): Change to unsigned.
1920 (update_total_code_bytes): Change argument to unsigned. Don't
1921 check if insn addresses are set.
1922 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
1923 addresses are not set.
1924 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
1925
1926 2009-01-09 Nick Clifton <nickc@redhat.com>
1927
1928 * config/sh/symbian.c: Replace uses of DECL_INLINE with
1929 DECL_DECLARED_INLINE_P.
1930
1931 2009-01-09 Jakub Jelinek <jakub@redhat.com>
1932
1933 PR middle-end/38347
1934 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
1935 GET_MODE (op0) in operand_subword_force calls.
1936
1937 PR middle-end/38771
1938 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
1939 fold_convert arg0 operands to TREE_TYPE (op0) first.
1940
1941 2009-01-08 Vladimir Makarov <vmakarov@redhat.com>
1942
1943 * params.def (ira-max-conflict-table-size): Decrease default value
1944 to 1000.
1945
1946 2009-01-08 Jakub Jelinek <jakub@redhat.com>
1947
1948 PR tree-optimization/37031
1949 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
1950 on parameter_set.
1951 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
1952 allocate it using gc instead of heap, use VEC_quick_push instead of
1953 VEC_safe_push.
1954 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
1955 instead of heap, use VEC_quick_push instead of VEC_safe_push.
1956 * tree-data-ref.h (struct access_matrix): Change matrix to gc
1957 allocated vector from heap allocated.
1958 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
1959 * tree-loop-linear.c (linear_transform_loops): Allocate nest
1960 vector only after perfect_loop_nest_depth call.
1961
1962 2009-01-08 Sebastian Pop <sebastian.pop@amd.com>
1963 Jan Sjodin <jan.sjodin@amd.com>
1964
1965 PR tree-optimization/38559
1966 * graphite.c (debug_value, copy_constraint,
1967 swap_constraint_variables, scale_constraint_variable, ): New.
1968 (get_lower_bound, get_upper_bound): Removed.
1969 (graphite_trans_bb_strip_mine): Clean up this code that works
1970 only for constant number of iterations. Fully copy upper and
1971 lower bound constraints, not only the constant part of them.
1972 * graphite.h (debug_value): Declared.
1973
1974 2009-01-08 Ira Rosen <irar@il.ibm.com>
1975
1976 PR tree-optimization/37194
1977 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
1978 Don't add the cost of cost model guard in prologue to scalar
1979 outside cost in case of known number of iterations.
1980
1981 2009-01-07 Nathan Froyd <froydnj@codesourcery.com>
1982 Alan Modra <amodra@bigpond.net.au>
1983
1984 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
1985 non-word-aligned REG+CONST addressing.
1986
1987 2009-01-07 Uros Bizjak <ubizjak@gmail.com>
1988
1989 PR target/38706
1990 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
1991 free_after_compilation when outputting a thunk.
1992 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
1993 Do not call free_after_compilation here.
1994
1995 2009-01-07 Uros Bizjak <ubizjak@gmail.com>
1996
1997 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
1998 (ix86_valid_target_attribute_inner_p): Ditto.
1999
2000 2009-01-07 Jan Sjodin <jan.sjodin@amd.com>
2001
2002 PR tree-optimization/38492
2003 PR tree-optimization/38498
2004 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
2005 * tree-chrec.h (scev_is_linear_expression): Declared.
2006 * graphite.c (graphite_cannot_represent_loop_niter): New.
2007 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
2008 (graphite_loop_normal_form): Use gcc_assert.
2009 (scan_tree_for_params): Use CASE_CONVERT.
2010 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
2011 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
2012 Use gcc_assert. Discard scops that contain unhandled cases.
2013 (build_scop_conditions): Return a boolean status for unhandled cases.
2014 (strip_mine_profitable_p): Print the loop number, not its depth.
2015 (is_interchange_valid): Pass the depth of the loop nest, don't
2016 recompute it wrongly.
2017 (graphite_trans_bb_block): Same.
2018 (graphite_trans_bb_block): Print tentative of loop blocking.
2019 (graphite_trans_scop_block): Do not print that the loop has been
2020 blocked.
2021 (graphite_transform_loops): Do not handle scops that contain condition
2022 scalar phi nodes.
2023
2024 2009-01-07 H.J. Lu <hongjiu.lu@intel.com>
2025
2026 AVX Programming Reference (December, 2008)
2027 * config/i386/avxintrin.h (_mm256_stream_si256): New.
2028 (_mm256_stream_pd): Likewise.
2029 (_mm256_stream_ps): Likewise.
2030
2031 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
2032 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
2033 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
2034 (bdesc_special_args): Add __builtin_ia32_movntdq256,
2035 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
2036 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
2037 (ix86_expand_special_args_builtin): Likewise.
2038
2039 * config/i386/sse.md (AVXMODEDI): New.
2040 (avx_movnt<mode>): Likewise.
2041 (avx_movnt<mode>): Likewise.
2042 (<sse>_movnt<mode>): Remove AVX support.
2043 (sse2_movntv2di): Likewise.
2044
2045 2009-01-07 Richard Guenther <rguenther@suse.de>
2046
2047 PR middle-end/38751
2048 * fold-const.c (extract_muldiv): Remove obsolete comment.
2049 (fold_plusminus_mult_expr): Undo MINUS_EXPR
2050 to PLUS_EXPR canonicalization for the canonicalization.
2051
2052 2009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
2053
2054 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
2055 hosted cross-compilers generating less efficient code.
2056
2057 2009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
2058
2059 * function.h (rtl_data): Add a dbr_scheduled_p field.
2060 * reorg.c (dbr_schedule): Set it.
2061 (gate_handle_delay_slots): Check it.
2062 * config/mips/mips.c (mips_base_delayed_branch): Delete.
2063 (mips_reorg): Check flag_delayed_branch instead of
2064 mips_base_delayed_branch.
2065 (mips_override_options): Don't set mips_base_delayed_branch
2066 or flag_delayed_branch.
2067
2068 2009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
2069
2070 PR rtl-optimization/38426.
2071 * ira.c (ira): Set current_function_is_leaf earlier.
2072
2073 2009-01-06 Jakub Jelinek <jakub@redhat.com>
2074
2075 PR rtl-optimization/38722
2076 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
2077 too early, only set a flag and modify after last possible
2078 undo_all point.
2079
2080 2009-01-06 Janis Johnson <janis187@us.ibm.com>
2081
2082 PR c/34252
2083 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
2084 * real.c (decimal_single_format): Correct values of emin and emax.
2085 (decimal_double_format): Ditto.
2086 (decimal_quad_format): Ditto.
2087 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
2088 computation of DECnn_MIN and DECnn_MAX for corrected values of
2089 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
2090 __DECnn_MIN__, and adjust its computation for the corrected value
2091 of emin.
2092
2093 2009-01-06 Jan Hubicka <jh@suse.cz>
2094
2095 PR target/38744
2096 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
2097
2098 2009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
2099
2100 * doc/contrib.texi (Contributors): Slightly adjust the end note.
2101 Add Robert Clark to the list of testers.
2102
2103 2009-01-06 Jan Hubicka <jh@suse.cz>
2104 Kai Tietz <kai.tietz@onevision.com>
2105
2106 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
2107 * config/i386/i386.c (ix86_expand_call): Add clobbers.
2108
2109 2009-01-06 Jan Hubicka <jh@suse.cz>
2110 Kai Tietz <kai.tietz@onevision.com>
2111
2112 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
2113 for w64 ABI.
2114 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
2115 (ix86_nsaved_regs): Count only general purpose regs.
2116 (ix86_nsaved_sseregs): New.
2117 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
2118 to 16 for w64; compute padding and size of sse reg save area.
2119 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
2120 general purpose regs.
2121 (ix86_emit_save_sse_regs_using_mov): New.
2122 (ix86_expand_prologue): Save SSE regs if needed.
2123 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
2124 (ix86_emit_restore_sse_regs_using_mov): New.
2125 (ix86_expand_epilogue): Save SSE regs if needed.
2126
2127 2009-01-06 Jan Hubicka <jh@suse.cz>
2128 Kai Tietz <kai.tietz@onevision.com>
2129
2130 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
2131 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
2132 functions when accumulate outgoing args is off.
2133
2134 2009-01-06 H.J. Lu <hongjiu.lu@intel.com>
2135
2136 PR bootstrap/38742
2137 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
2138 before using pseudos_have_intersected_live_ranges_p.
2139
2140 * ira-int.h (ira_assert): Always define.
2141
2142 2009-01-06 H.J. Lu <hongjiu.lu@intel.com>
2143
2144 AVX Programming Reference (December, 2008)
2145 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
2146 (_mm256_permute2_pd): Likewise.
2147 (_mm_permute2_ps): Likewise.
2148 (_mm256_permute2_ps): Likewise.
2149 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
2150 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
2151
2152 * config/i386/i386.c (ix86_builtins): Remove
2153 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
2154 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
2155 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
2156 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
2157 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
2158 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
2159 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
2160 __builtin_ia32_vpermil2ps256.
2161 (ix86_init_mmx_sse_builtins): Updated.
2162 (ix86_expand_args_builtin): Likewise.
2163
2164 2009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2165
2166 * pa.c (output_call): Relocate non-jump insns in the delay slot of
2167 long absolute calls when generating PA 2.0 code.
2168
2169 2009-01-05 Vladimir Makarov <vmakarov@redhat.com>
2170
2171 PR rtl-optimization/38583
2172 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
2173
2174 * params.def (ira-max-conflict-table-size): New.
2175
2176 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2177
2178 * ira.h (ira_conflicts_p): New external definition.
2179
2180 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
2181 table. Report this. Return result of building.
2182 (ira_build_conflicts): Use ira_conflicts_p. Check result of
2183 building conflict table.
2184
2185 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
2186 (ira_color): Use ira_conflicts_p.
2187
2188 * global.c: Include ira.h.
2189 (pseudo_for_reload_consideration_p, build_insn_chain): Use
2190 ira_conflicts_p.
2191
2192 * Makefile.in (global.o): Add ira.h.
2193
2194 * ira-build.c (mark_all_loops_for_removal,
2195 propagate_some_info_from_allocno): New.
2196 (remove_unnecessary_allocnos): Call
2197 propagate_some_info_from_allocno.
2198 (remove_low_level_allocnos): New.
2199 (remove_unnecessary_regions): Add parameter. Call
2200 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
2201 parameter to remove_unnecessary_regions.
2202 (ira_build): Remove all regions but root if the conflict table was
2203 not built. Update conflict hard regs for allocnos crossing calls.
2204
2205 * ira.c (ira_conflicts_p): New global.
2206 (ira): Define and use ira_conflicts_p.
2207
2208 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
2209 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
2210 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2211
2212 2009-01-06 Ben Elliston <bje@au.ibm.com>
2213
2214 * gengtype-lex.l (YY_NO_INPUT): Define.
2215
2216 2009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
2217
2218 PR c/34911
2219 * c-common.c (handle_vector_size_attribute): Also reject
2220 BOOLEAN_TYPE types.
2221
2222 2009-01-05 Sebastian Pop <sebastian.pop@amd.com>
2223
2224 PR tree-optimization/38492
2225 * graphite.c (rename_map_elt, debug_rename_elt,
2226 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
2227 rename_map_elt_info, eq_rename_map_elts,
2228 get_new_name_from_old_name, bb_in_sese_p): Moved around.
2229 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
2230 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
2231 (sese_build_livein_liveouts): New.
2232 (new_sese, free_sese): New.
2233 (new_scop): Call new_sese.
2234 (free_scop): Call free_sese.
2235 (rename_variables_from_edge, rename_phis_end_scop): Removed.
2236 (register_old_new_names): Renamed register_old_and_new_names.
2237 (register_scop_liveout_renames, add_loop_exit_phis,
2238 insert_loop_close_phis, struct igp,
2239 default_liveout_before_guard, add_guard_exit_phis,
2240 insert_guard_phis, copy_renames): New.
2241 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
2242 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
2243 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
2244 (scop_adjust_phis_for_liveouts): New.
2245 (gloog): Call scop_adjust_phis_for_liveouts.
2246
2247 * graphite.h (struct sese): Documented. Added fields liveout,
2248 num_ver and livein.
2249 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
2250 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
2251 (struct scop): Added field liveout_renames.
2252 (SCOP_LIVEOUT_RENAMES): New.
2253
2254 2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
2255
2256 PR tree-optimization/38510
2257 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
2258 (translate_clast): Call recompute_all_dominators before
2259 graphite_verify.
2260 (gloog): Call recompute_all_dominators before graphite_verify.
2261
2262 2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
2263 Jan Sjodin <jan.sjodin@amd.com>
2264
2265 PR tree-optimization/38500
2266 * graphite.c (create_sese_edges): Call fix_loop_structure after
2267 splitting blocks.
2268
2269 2009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
2270
2271 * config.gcc: Add m32r*-*-rtems*.
2272 * config/m32r/rtems.h: New file.
2273
2274 2009-01-05 Ben Elliston <bje@au.ibm.com>
2275
2276 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
2277 (.po.pox): Likewise.
2278 (po/gcc.pot): Likewise.
2279
2280 2009-01-04 David S. Miller <davem@davemloft.net>
2281
2282 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
2283 (STARTING_FRAME_OFFSET): Always set to zero.
2284
2285 2009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
2286
2287 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
2288 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
2289 fixed-point types, and vectors of the same.
2290
2291 2009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
2292
2293 * config/mips/sync.md (*mb_barrier): Rename to...
2294 (*memory_barrier): ...this.
2295
2296 2009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
2297
2298 * doc/extend.texi (Function Attributes): Move @cindex after @item
2299 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
2300 and put in alphabetical order. Fix 'target' name and put in order.
2301 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
2302 typos.
2303
2304 2009-01-04 Uros Bizjak <ubizjak@gmail.com>
2305
2306 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
2307 (memory_barrier): Expand as unspec instead of unspec_volatile.
2308 Remove mem:BLK from insn operands. Use Pmode scratch register.
2309 (*memory_barrier): Define as unspec instead of unspec_volatile.
2310 Use (match_dup 0) as input operand.
2311
2312 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
2313 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
2314 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
2315 scratch register. Remove operand 1.
2316 (*stbar): Define as unspec instead of unspec_volatile.
2317 Use (match_dup 0) as input operand, remove (const_int 8).
2318 (*membar): Define as unspec instead of unspec_volatile.
2319 Use (match_dup 0) as input operand, remove input operand 2.
2320
2321 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
2322 (memory_barrier): Expand as unspec instead of unspec_volatile.
2323 Remove mem:BLK from insn operands. Use Pmode scratch register.
2324 (*memory_barrier): Define as unspec instead of unspec_volatile.
2325 Use (match_dup 0) as input operand.
2326
2327 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
2328 Remove mem:BLK from insn operands. Use Pmode scratch register.
2329 Set volatile flag on operand 0.
2330 (*memory_barrier): New insn pattern.
2331
2332 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
2333 insn operands.
2334 (*memory_barrier): Use (match_dup 0) as input operand.
2335
2336 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
2337 Remove mem:BLK from insn operands. Use Pmode scratch register.
2338 Set volatile flag on operand 0.
2339 (*mb_internal): New insn pattern.
2340
2341 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
2342
2343 2009-01-04 Steven Bosscher <steven@gcc.gnu.org>
2344
2345 PR middle-end/38586
2346 * function.c (struct temp_slot): Move to the section of the file
2347 that deals with temp slots. Remove field 'address'.
2348 (temp_slot_address_table): New hash table of address -> temp slot.
2349 (struct temp_slot_address_entry): New struct, items for the table.
2350 (temp_slot_address_compute_hash, temp_slot_address_hash,
2351 temp_slot_address_eq, insert_temp_slot_address): Support functions
2352 for the new table.
2353 (find_temp_slot_from_address): Rewrite to use the new hash table.
2354 (remove_unused_temp_slot_addresses): Remove addresses of temp
2355 slots that have been made available.
2356 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
2357 worker function for remove_unused_temp_slot_addresses.
2358 (assign_stack_temp_for_type): Don't clear the temp slot address list.
2359 Add the temp slot address to the address -> temp slot map.
2360 (update_temp_slot_address): Update via insert_temp_slot_address.
2361 (free_temp_slots): Call remove_unused_temp_slot_addresses.
2362 (pop_temp_slots): Likewise.
2363 (init_temp_slots): Allocate the address -> temp slot map, or empty
2364 the map if it is already allocated.
2365 (prepare_function_start): Initialize temp slot processing.
2366
2367 2009-01-04 Steven Bosscher <steven@gcc.gnu.org>
2368
2369 PR middle-end/38584
2370 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
2371 Calculate the size of all stack vars assuming no packing of stack
2372 vars will happen, replacing a quadratic algorithm with a linear one.
2373
2374 2009-01-03 Jakub Jelinek <jakub@redhat.com>
2375
2376 PR target/38707
2377 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
2378 can't be used.
2379
2380 2009-01-03 Diego Novillo <dnovillo@google.com>
2381
2382 * doc/contrib.texi: Update contributions.
2383
2384 2009-01-03 Jakub Jelinek <jakub@redhat.com>
2385
2386 PR c++/38705
2387 * builtins.c (fold_builtin_memory_op): Give up if either operand
2388 is volatile. Set srctype or desttype to non-qualified version
2389 of the other type.
2390
2391 PR c/38700
2392 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
2393 and FUNCTION_DECLs.
2394
2395 2009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
2396
2397 PR rtl-optimization/35805
2398 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
2399 problem if fast dce is able to remove any instructions.
2400 * dce.c (dce_process_block): Fix dump message.
2401
2402 2009-01-02 Mark Mitchell <mark@codesourcery.com>
2403
2404 PR 33649
2405 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
2406
2407 2009-01-02 Jakub Jelinek <jakub@redhat.com>
2408
2409 PR middle-end/38690
2410 * tree-flow.h (op_code_prio, op_prio): New prototypes.
2411 * tree-pretty-print.c (op_code_prio): New function.
2412 (op_prio): No longer static. Use op_code_prio.
2413 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
2414 Use op_prio and op_code_prio to determine if () should be
2415 printed around operand(s) or not.
2416
2417 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
2418 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
2419 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
2420 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
2421 pp_character instead of pp_string for single letter printing.
2422
2423 2009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
2424
2425 * doc/extend.texi: Fix '#pragma GCC option' typo.
2426
2427 2009-01-02 Richard Guenther <rguenther@suse.de>
2428
2429 * doc/install.texi (--enable-checking): Mention different
2430 default for stage1.
2431 (--enable-stage1-checking): Document.
2432
2433 2009-01-01 Andrew Pinski <pinskia@gmail.com>
2434
2435 PR middle-end/30142
2436 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
2437 case to be an error.
2438
2439 2009-01-02 Ben Elliston <bje@au.ibm.com>
2440
2441 * config/fp-bit.h (pack_d): Constify argument.
2442 * config/fp-bit.c (makenan): Constify return type. Remove casts.
2443 (isnan): Constify argument.
2444 (isinf): Likewise.
2445 (iszero): Likewise.
2446 (pack_d): Likewise.
2447 (_fpadd_parts): Constify return type.
2448 (_fpmul_parts): Likewise.
2449 (_fpdiv_parts): Likewise.
2450
2451 2009-01-01 Jakub Jelinek <jakub@redhat.com>
2452
2453 PR c/36489
2454 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
2455 warn about overwriting initializer with side-effects or
2456 -Woverride-init if !IMPLICIT.
2457 (output_init_element): Likewise. Pass IMPLICIT down to
2458 add_pending_init.
2459 (process_init_element): Add IMPLICIT argument. Pass it down
2460 to output_init_element.
2461 (push_init_element, pop_init_level, set_designator): Adjust
2462 process_init_element callers.
2463 (set_nonincremental_init, set_nonincremental_init_from_string):
2464 Adjust add_pending_init callers.
2465 (output_pending_init_elements): Adjust output_init_element callers.
2466 * c-tree.h (process_init_element): Adjust prototype.
2467 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
2468 process_init_element callers.