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