summaryrefslogtreecommitdiff
path: root/gcc/ChangeLog
blob: d2f9fe7425da1d8025d0560513d45303e327650e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
2009-01-16  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/38789
	* tree-ssa-threadedge.c
	(record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
	__builtin_constant_p.

2009-01-16  Kenneth Zadeck <zadeck@naturalbridge.com>

	* dce.c (delete_unmarked_insns): Reversed the order that insns are
	examined before deleting them.
	
2009-01-16  Richard Earnshaw  <rearnsha@arm.com>

	* function.c (aggregate_value_p): Correctly extract the function
	type from CALL_EXPR_FN lookup.

2009-01-16  Hariharan Sandanagobalane <hariharan@picochip.com>

	* config/picochip/picochip.c (picochip_override_options): Revert
	CFI asm flag disable commited previously.

2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <tobi.grosser@amd.com>
	    Jan Sjodin  <jan.sjodin@amd.com>

	* graphite.c (scan_tree_for_params): On substractions negate
	all the coefficients of the term.
	(clast_to_gcc_expression_red): New.  Handle reduction expressions
	of more than two operands.
	(clast_to_gcc_expression): Call clast_to_gcc_expression_red.
	(get_vdef_before_scop): Handle also the case of default definitions.

2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>

	* caller-save.c (add_used_regs_1, add_used_regs): New functions.
	(insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
	Also use them when walking CALL_INSN_FUNCTION_USAGE.

2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
	    Joey Ye  <joey.ye@intel.com>

	PR middle-end/37843
	* cfgexpand.c (expand_stack_alignment): Don't update stack
	boundary nor check incoming stack boundary here.
	(gimple_expand_cfg): Update stack boundary and check incoming
	stack boundary here.

2009-01-15  Kenneth Zadeck <zadeck@naturalbridge.com>

	* dce.c (find_call_stack_args, delete_unmarked_insns): Fixed
	comments.
	
2009-01-14  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/38245
	* calls.c (expand_call): Add stack arguments to
	CALL_INSN_FUNCTION_USAGE even for pure calls (when
	ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
	in regs and partially in memory or BLKmode arguments.
	(emit_library_call_value_1): Add stack arguments to
	CALL_INSN_FUNCTION_USAGE even for pure calls (when
	ACCUMULATE_OUTGOING_ARGS).
	* dce.c: Include tm_p.h.
	(find_call_stack_args): New function.
	(deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
	argument.
	(mark_insn): Call find_call_stack_args for CALL_Ps.
	(prescan_insns_for_dce): Walk insns backwards in bb rather than
	forwards.  Allocate and free arg_stores bitmap if needed, pass it
	down to deletable_insn_p, don't mark stores set in arg_stores
	bitmap, clear the bitmap at the beginning of each bb.
	* Makefile.in (dce.o): Depend on $(TM_P_H).

2009-01-14  Michael Meissner  <gnu@the-meissners.org>

	PR target/22599
	* i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f' to make
	sure the insn is a conditional test (bug 22599).  Reformat a few long
	lines.

2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/38431
	* graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
	(scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
	(gloog): Do not call cleanup_tree_cfg.
	(graphite_transform_loops): Call cleanup_tree_cfg after all 
	scops have been code generated.

2009-01-14  Vladimir Makarov  <vmakarov@redhat.com>

	* testsuite/g++.dg/torture/pr38811.C: New file.

2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
	* doc/gty.texi (Invoking the garbage collector): Added new node
	and section documenting ggc_collect.

2009-01-14  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/38826
	PR middle-end/38477
	* tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
	initialization notes only if we actually emitted a warning.
	(intra_create_variable_infos): Add constraints for a result decl
	that is passed by hidden reference.
	(build_pred_graph): Mark all related variables non-direct on
	address-taking.

2009-01-14  Nick Clifton  <nickc@redhat.com>

	* ira-conflicts.c: Include addresses.h for the definition of
	base_reg_class.
	(ira_build_conflicts): Use base_reg_class instead of
	BASE_REG_CLASS.
	* Makefile.in: Add a dependency of ira-conflicts.o on
	addresses.h.

2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/38811
	* Makefile.in (ira-lives.o): Add except.h.

	* ira-lives.c: Include except.h.
	(process_bb_node_lives): Process can_throw_internal.

2009-01-13  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/38774
	* combine.c (simplify_set): When undoing cc_use change, don't do
	PUT_CODE on the newly created comparison, but instead put back the
	old comparison.

2009-01-13  Joseph Myers  <joseph@codesourcery.com>

	* doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
	values.  Remove duplicate arm8 entry.

2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/38786
	* graphite.c (expand_scalar_variables_ssa_name): New, outlined from
	the SSA_NAME case of expand_scalar_variables_expr.
	Set the type of an expression to the type of its assign	statement.
	(expand_scalar_variables_expr): Also gather the scalar computation
	used to index the memory access.  Do not pass loop_p.
	Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
	(expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
	the gimple_stmt_iterator where it inserts new code.  Do not pass loop_p.
	(copy_bb_and_scalar_dependences): Do not pass loop_p.
	(translate_clast): Update call to copy_bb_and_scalar_dependences.

2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.h (debug_value): Removed.
	* graphite.c (debug_value): Removed.

2009-01-13  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (output_move_double): Don't synthesize thumb-2 ldrd/strd with
	two 32-bit instructions.

2009-01-13  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (struct processors): Pass for speed down into cost helper
	functions.
	(const_ok_for_op): Handle COMPARE and inequality nodes.
	(arm_rtx_costs_1): Rewrite.
	(arm_size_rtx_costs): Update prototype.
	(arm_rtx_costs): Pass speed down to helper functions.
	(arm_slowmul_rtx_costs): Rework cost calculations.
	(arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
	(arm_9e_rtx_costs): Likewise.

2009-01-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
	relocations of local symbols  wider than UNITS_PER_WORD are not valid.
	(alpha_legitimize_address): Do not split local symbols wider than
	UNITS_PER_WORD into HIGH/LO_SUM parts.

2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>

	PR bootstrap/38580
	* gcc.c (process_command): Replace call to execvp with calls
	to pex_one and exit.

2009-01-03  Anatoly Sokolov  <aesok@post.ru>

	PR target/29141
	* config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
	* config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
	variant for devices with 3-byte PC.
	(__tablejump_elpm__) : New.

2009-01-12  Jakub Jelinek  <jakub@redhat.com>

	PR c/32041
	* c-parser.c (c_parser_postfix_expression): Allow `->' in
	offsetof member-designator, handle it as `[0].'.

2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
	function when not using named sections on targets with named sections
	if branch distance is less than 262132.

2009-01-12  Richard Earnshaw  <rearnsha@arm.com>

	* combine.c (combine_instructions):  Recompute
	optimize_this_for_speed_p  for each BB in the main combine loop.

2009-01-12  Tomas Bily  <tbily@suse.cz>

	PR middlend/38385
	* tree-loop-distribution.c (prop_phis): New function.
	(generate_builtin): Call prop_phis.
	* testsuite/gcc.dg/tree-ssa/pr38385.c: New file.

2009-01-12  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/38807
	* tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
	gimple_visited_p unless stmt is GIMPLE_ASSIGN.

2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>

	* expmed.c (store_bit_field_1): Properly truncate the paradoxical
	subreg of op0 to the original op0.

2009-01-11  Laurent GUERBY <laurent@guerby.net>

	* doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
	
2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>

	PR debug/7055
	* gcc/mips-tfile.c (parse_def): Fix parsing of def strings
	starting with digits.

2009-01-10  Jakub Jelinek  <jakub@redhat.com>

	PR target/38695
	* config/arm/arm.c (arm_is_long_call_p): Don't call
	arm_function_in_section_p if decl isn't a FUNCTION_DECL.

2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>

	* regrename.c (regrename_optimize): Fix dumping.
	(find_oldest_value_reg): Preserve REG_POINTER.
	(copy_hardreg_forward_1): Likewise.

2009-01-09  Diego Novillo  <dnovillo@google.com>

	* gimple.h (struct gimple_statement_base)<uid>: Document
	the restrictions on its use.
	(gimple_uid): Tidy.
	(gimple_set_uid): Tidy.

2009-01-09  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
	zero guard even if align_bytes != 0 and count is smaller than
	size_needed.

2008-01-09  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/38495
	* ira-emit.c (print_move_list, ira_debug_move_list): New functions.
	(add_range_and_copies_from_move_list): Print all added ranges.
	Add ranges to memory optimized destination.

2009-01-09  Jakub Jelinek  <jakub@redhat.com>

	PR target/38686
	PR target/38708
	* config/i386/i386.c (override_options): Reject
	-mstringop-strategy=rep_8byte with -m32.
	(ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
	to 1.  Do count comparison against epilogue_size_needed at compile
	time even when count_exp was constant forced into register.  For
	size_needed don't jump to epilogue, instead just avoid aligning
	and invoke the body algorithm.  If need_zero_guard, add zero guard
	even if count is non-zero, but smaller than size_needed + number of
	bytes that could be stored for alignment.
	(ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
	to 1.  If need_zero_guard, add zero guard even if count is non-zero,
	but smaller than size_needed + number of bytes that could be stored
	for alignment.  Compare size_needed with epilogue_size_needed instead
	of desired_align - align, don't adjust size_needed, pass
	epilogue_size_needed to the epilogue expanders.

	PR c/35742
	* c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.

2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.c (last_address): Change to unsigned.
	(update_total_code_bytes): Change argument to unsigned.  Don't
	check if insn addresses are set.
	(pa_output_function_epilogue): Set last_address to UINT_MAX if insn
	addresses are not set.
	(pa_asm_output_mi_thunk): Handle wrap when updating last_address.

2009-01-09  Nick Clifton  <nickc@redhat.com>

	* config/sh/symbian.c: Replace uses of DECL_INLINE with
	DECL_DECLARED_INLINE_P.

2009-01-09  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/38347
	* dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
	GET_MODE (op0) in operand_subword_force calls.

	PR middle-end/38771
	* fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
	fold_convert arg0 operands to TREE_TYPE (op0) first.

2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>

	* params.def (ira-max-conflict-table-size): Decrease default value
	to 1000.

2009-01-08  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/37031
	* lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
	on parameter_set.
	(build_access_matrix): Reserve correct size for AM_MATRIX vector,
	allocate it using gc instead of heap, use VEC_quick_push instead of
	VEC_safe_push.
	* graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
	instead of heap, use VEC_quick_push instead of VEC_safe_push.
	* tree-data-ref.h (struct access_matrix): Change matrix to gc
	allocated vector from heap allocated.
	* lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
	* tree-loop-linear.c (linear_transform_loops): Allocate nest
	vector only after perfect_loop_nest_depth call.

2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
	    Jan Sjodin  <jan.sjodin@amd.com>

	PR tree-optimization/38559
	* graphite.c (debug_value, copy_constraint,
	swap_constraint_variables, scale_constraint_variable, ): New.
	(get_lower_bound, get_upper_bound): Removed.
	(graphite_trans_bb_strip_mine): Clean up this code that works
	only for constant number of iterations.  Fully copy upper and
	lower bound constraints, not only the constant part of them.
	* graphite.h (debug_value): Declared.

2009-01-08  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/37194
	* tree-vect-transform.c (vect_estimate_min_profitable_iters):
	Don't add the cost of cost model guard in prologue to scalar 
	outside cost in case of known number of iterations.

2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
	    Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
	non-word-aligned REG+CONST addressing.

2009-01-07  Uros Bizjak  <ubizjak@gmail.com>

	PR target/38706
	* config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
	free_after_compilation when outputting a thunk.
	(alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
	Do not call free_after_compilation here.

2009-01-07  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
	(ix86_valid_target_attribute_inner_p): Ditto.

2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>

	PR tree-optimization/38492
	PR tree-optimization/38498
	* tree-check.c (operator_is_linear, scev_is_linear_expression): New.
	* tree-chrec.h (scev_is_linear_expression): Declared.
	* graphite.c (graphite_cannot_represent_loop_niter): New.
	(scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
	(graphite_loop_normal_form): Use gcc_assert.
	(scan_tree_for_params): Use CASE_CONVERT.
	(phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
	(build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
	Use gcc_assert.  Discard scops that contain unhandled cases.
	(build_scop_conditions): Return a boolean status for unhandled cases.
	(strip_mine_profitable_p): Print the loop number, not its depth.
	(is_interchange_valid): Pass the depth of the loop nest, don't
	recompute it wrongly.
	(graphite_trans_bb_block): Same.
	(graphite_trans_bb_block): Print tentative of loop blocking.
	(graphite_trans_scop_block): Do not print that the loop has been
	blocked.
	(graphite_transform_loops): Do not handle scops that contain condition
	scalar phi nodes.

2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>

	AVX Programming Reference (December, 2008)
	* config/i386/avxintrin.h (_mm256_stream_si256): New.
	(_mm256_stream_pd): Likewise.
	(_mm256_stream_ps): Likewise.

	* config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
	IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
	(ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
	(bdesc_special_args): Add __builtin_ia32_movntdq256,
	__builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
	(ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
	(ix86_expand_special_args_builtin): Likewise.

	* config/i386/sse.md (AVXMODEDI): New.
	(avx_movnt<mode>): Likewise.
	(avx_movnt<mode>): Likewise.
	(<sse>_movnt<mode>): Remove AVX support.
	(sse2_movntv2di): Likewise.

2009-01-07  Richard Guenther  <rguenther@suse.de>

	PR middle-end/38751
	* fold-const.c (extract_muldiv): Remove obsolete comment.
	(fold_plusminus_mult_expr): Undo MINUS_EXPR
	to PLUS_EXPR canonicalization for the canonicalization.

2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
	hosted cross-compilers generating less efficient code.

2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>

	* function.h (rtl_data): Add a dbr_scheduled_p field.
	* reorg.c (dbr_schedule): Set it.
	(gate_handle_delay_slots): Check it.
	* config/mips/mips.c (mips_base_delayed_branch): Delete.
	(mips_reorg): Check flag_delayed_branch instead of
	mips_base_delayed_branch.
	(mips_override_options): Don't set mips_base_delayed_branch
	or flag_delayed_branch.

2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>

	PR rtl-optimization/38426.
	* ira.c (ira): Set current_function_is_leaf earlier.

2009-01-06  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/38722
	* combine.c (try_combine): Don't modify PATTERN (i3) and notes
	too early, only set a flag and modify after last possible
	undo_all point.

2009-01-06  Janis Johnson  <janis187@us.ibm.com>

	PR c/34252
	* ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
	* real.c (decimal_single_format): Correct values of emin and emax.
	(decimal_double_format): Ditto.
	(decimal_quad_format): Ditto.
	* c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
	computation of DECnn_MIN and DECnn_MAX for corrected values of
	emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
	__DECnn_MIN__, and adjust its computation for the corrected value
	of emin.

2009-01-06  Jan Hubicka  <jh@suse.cz>

	PR target/38744
	* i386.c (ix86_expand_call): Use ARRAY_SIZE.

2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/contrib.texi (Contributors): Slightly adjust the end note.
	Add Robert Clark to the list of testers.

2009-01-06  Jan Hubicka  <jh@suse.cz>
	    Kai Tietz <kai.tietz@onevision.com>

	* i386.md (*msabi_syvabi): Add SSE regs clobbers.
	* i386.c (ix86_expand_call): Add clobbers.

2009-01-06  Jan Hubicka  <jh@suse.cz>
	    Kai Tietz <kai.tietz@onevision.com>

	* i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used for w64 ABI.
	* i386.c (struct ix86_frame): Add padding0 and nsseregs.
	(ix86_nsaved_regs): Count only general purpose regs.
	(ix86_nsaved_sseregs): New.
	(ix86_compute_frame_layout): Update nsseregs; set preferred alignment
	to 16 for w64; compute padding and size of sse reg save area.
	(ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
	general purpose regs.
	(ix86_emit_save_sse_regs_using_mov): New.
	(ix86_expand_prologue): Save SSE regs if needed.
	(ix86_emit_restore_regs_using_mov): Use only general purpose regs.
	(ix86_emit_restore_sse_regs_using_mov): New.
	(ix86_expand_epilogue): Save SSE regs if needed.

2009-01-06  Jan Hubicka  <jh@suse.cz>
	    Kai Tietz <kai.tietz@onevision.com>

	* i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
	* i386.c (init_cumulative_args): Disallow calls of MSABI functions
	when accumulate outgoing args is off.

2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/38742
	* ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
	before using pseudos_have_intersected_live_ranges_p.

	* ira-int.h (ira_assert): Always define.

2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>

	AVX Programming Reference (December, 2008)
	* config/i386/avxintrin.h (_mm_permute2_pd): Removed.
	(_mm256_permute2_pd): Likewise.
	(_mm_permute2_ps): Likewise.
	(_mm256_permute2_ps): Likewise.
	* config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
	* config/i386/sse.md (avx_vpermil2<mode>3): Likewise.

	* config/i386/i386.c (ix86_builtins): Remove
	IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
	IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
	(ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
	V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
	and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
	(bdesc_args): Remove __builtin_ia32_vpermil2pd,
	__builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
	__builtin_ia32_vpermil2ps256.
	(ix86_init_mmx_sse_builtins): Updated.
	(ix86_expand_args_builtin): Likewise.

2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.c (output_call): Relocate non-jump insns in the delay slot of
	long absolute calls when generating PA 2.0 code.

2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/38583
	* params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.

	* params.def (ira-max-conflict-table-size): New.

	* doc/invoke.texi (ira-max-conflict-table-size): Decribe.
	
	* ira.h (ira_conflicts_p): New external definition.
	
	* ira-conflicts.c (build_conflict_bit_table): Do not build too big
	table.  Report this.  Return result of building.
	(ira_build_conflicts): Use ira_conflicts_p.  Check result of
	building conflict table.

	* ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
	(ira_color): Use ira_conflicts_p.
	
	* global.c: Include ira.h.
	(pseudo_for_reload_consideration_p, build_insn_chain): Use
	ira_conflicts_p.

	* Makefile.in (global.o): Add ira.h.
	
	* ira-build.c (mark_all_loops_for_removal,
	propagate_some_info_from_allocno): New.
	(remove_unnecessary_allocnos): Call
	propagate_some_info_from_allocno.
	(remove_low_level_allocnos): New.
	(remove_unnecessary_regions): Add parameter.  Call
	mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
	parameter to remove_unnecessary_regions.
	(ira_build): Remove all regions but root if the conflict table was
	not built.  Update conflict hard regs for allocnos crossing calls.

	* ira.c (ira_conflicts_p): New global.
	(ira): Define and use ira_conflicts_p.

	* reload1.c (compute_use_by_pseudos, reload, count_pseudo,
	count_spilled_pseudo, find_reg, alter_reg, finish_spills,
	emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
	
2009-01-06  Ben Elliston  <bje@au.ibm.com>

	* gengtype-lex.l (YY_NO_INPUT): Define.

2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR c/34911
	* c-common.c (handle_vector_size_attribute): Also reject
	BOOLEAN_TYPE types.

2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/38492
	* graphite.c (rename_map_elt, debug_rename_elt,
	debug_rename_map_1, debug_rename_map, new_rename_map_elt,
	rename_map_elt_info, eq_rename_map_elts,
	get_new_name_from_old_name, bb_in_sese_p): Moved around.
	(sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
	(sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
	(sese_build_livein_liveouts): New.
	(new_sese, free_sese): New.
	(new_scop): Call new_sese.
	(free_scop): Call free_sese.
	(rename_variables_from_edge, rename_phis_end_scop): Removed.
	(register_old_new_names): Renamed register_old_and_new_names.
	(register_scop_liveout_renames, add_loop_exit_phis,
	insert_loop_close_phis, struct igp,
	default_liveout_before_guard, add_guard_exit_phis,
	insert_guard_phis, copy_renames): New.
	(translate_clast): Call insert_loop_close_phis and insert_guard_phis.
	(sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
	(rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
	(scop_adjust_phis_for_liveouts): New.
	(gloog): Call scop_adjust_phis_for_liveouts.

	* graphite.h (struct sese): Documented.  Added fields liveout,
	num_ver and livein.
	(SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
	(new_sese, free_sese, sese_build_livein_liveouts): Declared.
	(struct scop): Added field liveout_renames.
	(SCOP_LIVEOUT_RENAMES): New.

2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>

	PR tree-optimization/38510
	* graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
	(translate_clast): Call recompute_all_dominators before
	graphite_verify.
	(gloog): Call recompute_all_dominators before graphite_verify.

2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
	    Jan Sjodin <jan.sjodin@amd.com>

	PR tree-optimization/38500
	* graphite.c (create_sese_edges): Call fix_loop_structure after
	splitting blocks.

2009-01-05  Joel Sherrill <joel.sherrill@oarcorp.com>

	* config.gcc: Add m32r*-*-rtems*.
	* config/m32r/rtems.h: New file.

2009-01-05  Ben Elliston  <bje@au.ibm.com>

	* Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
	(.po.pox): Likewise.
	(po/gcc.pot): Likewise.

2009-01-04  David S. Miller  <davem@davemloft.net>

	* config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
	(STARTING_FRAME_OFFSET): Always set to zero.

2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>

	* tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
	* tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
	fixed-point types, and vectors of the same.

2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/sync.md (*mb_barrier): Rename to...
	(*memory_barrier): ...this.

2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* doc/extend.texi (Function Attributes): Move @cindex after @item
	for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
	and put in alphabetical order. Fix 'target' name and put in order.
	* doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
	typos.

2009-01-04  Uros Bizjak  <ubizjak@gmail.com>

	* config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
	(memory_barrier): Expand as unspec instead of unspec_volatile.
	Remove mem:BLK from insn operands.  Use Pmode scratch register.
	(*memory_barrier): Define as unspec instead of unspec_volatile.
	Use (match_dup 0) as input operand.

	* config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
	* config/sparc/sync.md (memory_barrier): Expand as unspec instead of
	unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
	scratch register.  Remove operand 1.
	(*stbar): Define as unspec instead of unspec_volatile.
	Use (match_dup 0) as input operand, remove (const_int 8).
	(*membar): Define as unspec instead of unspec_volatile.
	Use (match_dup 0) as input operand, remove input operand 2.

	* config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
	(memory_barrier): Expand as unspec instead of unspec_volatile.
	Remove mem:BLK from insn operands.  Use Pmode scratch register.
	(*memory_barrier): Define as unspec instead of unspec_volatile.
	Use (match_dup 0) as input operand.

	* config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
	Remove mem:BLK from insn operands.  Use Pmode scratch register.
	Set volatile flag on operand 0.
	(*memory_barrier): New insn pattern.

	* config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
	insn operands.
	(*memory_barrier): Use (match_dup 0) as input operand.

	* config/mips/sync.md (memory_barrier): Redefine as expander pattern.
	Remove mem:BLK from insn operands.  Use Pmode scratch register.
	Set volatile flag on operand 0.
	(*mb_internal): New insn pattern.

	* config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.

2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>

	PR middle-end/38586
	* function.c (struct temp_slot): Move to the section of the file
	that deals with temp slots.  Remove field 'address'.
	(temp_slot_address_table): New hash table of address -> temp slot.
	(struct temp_slot_address_entry): New struct, items for the table.
	(temp_slot_address_compute_hash, temp_slot_address_hash,
	temp_slot_address_eq, insert_temp_slot_address): Support functions
	for the new table.
	(find_temp_slot_from_address): Rewrite to use the new hash table.
	(remove_unused_temp_slot_addresses): Remove addresses of temp
	slots that have been made available.
	(remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
	worker function for remove_unused_temp_slot_addresses.
	(assign_stack_temp_for_type): Don't clear the temp slot address list.
	Add the temp slot address to the address -> temp slot map.
	(update_temp_slot_address): Update via insert_temp_slot_address.
	(free_temp_slots): Call remove_unused_temp_slot_addresses.
	(pop_temp_slots): Likewise.
	(init_temp_slots): Allocate the address -> temp slot map, or empty
	the map if it is already allocated.
	(prepare_function_start): Initialize temp slot processing.

2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>

	PR middle-end/38584
	* cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
	Calculate the size of all stack vars assuming no packing of stack
	vars will happen, replacing a quadratic algorithm with a linear one.

2009-01-03  Jakub Jelinek  <jakub@redhat.com>

	PR target/38707
	* expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
	can't be used.

2009-01-03  Diego Novillo  <dnovillo@google.com>

	* doc/contrib.texi: Update contributions.

2009-01-03  Jakub Jelinek  <jakub@redhat.com>

	PR c++/38705
	* builtins.c (fold_builtin_memory_op): Give up if either operand
	is volatile.  Set srctype or desttype to non-qualified version
	of the other type.

	PR c/38700
	* builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
	and FUNCTION_DECLs.

2009-01-02  Kenneth Zadeck <zadeck@naturalbridge.com>

	PR rtl-optimization/35805
	* df-problems.c (df_lr_finalize): Add recursive call to resolve lr
	problem if fast dce is able to remove any instructions.
	* dce.c (dce_process_block): Fix dump message.
	
2009-01-02  Mark Mitchell  <mark@codesourcery.com>

	PR 33649
	* tree-ssa-pre.c (compute_antic): Correct loop bounds.

2009-01-02  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/38690
	* tree-flow.h (op_code_prio, op_prio): New prototypes.
	* tree-pretty-print.c (op_code_prio): New function.
	(op_prio): No longer static.  Use op_code_prio.
	* gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
	Use op_prio and op_code_prio to determine if () should be
	printed around operand(s) or not.

	* gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
	dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
	dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
	dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
	pp_character instead of pp_string for single letter printing.

2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>

	* doc/extend.texi: Fix '#pragma GCC option' typo.

2009-01-02 Richard Guenther <rguenther@suse.de>

	* doc/install.texi (--enable-checking): Mention different
	default for stage1.
	(--enable-stage1-checking): Document.

2009-01-01  Andrew Pinski  <pinskia@gmail.com>

	PR middle-end/30142
	* tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
	case to be an error.

2009-01-02  Ben Elliston  <bje@au.ibm.com>

	* config/fp-bit.h (pack_d): Constify argument.
	* config/fp-bit.c (makenan): Constify return type. Remove casts.
	(isnan): Constify argument.
	(isinf): Likewise.
	(iszero): Likewise.
	(pack_d): Likewise.
	(_fpadd_parts): Constify return type.
	(_fpmul_parts): Likewise.
	(_fpdiv_parts): Likewise.

2009-01-01  Jakub Jelinek  <jakub@redhat.com>

	PR c/36489
	* c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
	warn about overwriting initializer with side-effects or
	-Woverride-init if !IMPLICIT.
	(output_init_element): Likewise.  Pass IMPLICIT down to
	add_pending_init.
	(process_init_element): Add IMPLICIT argument.  Pass it down
	to output_init_element.
	(push_init_element, pop_init_level, set_designator): Adjust
	process_init_element callers.
	(set_nonincremental_init, set_nonincremental_init_from_string):
	Adjust add_pending_init callers.
	(output_pending_init_elements): Adjust output_init_element callers.
	* c-tree.h (process_init_element): Adjust prototype.
	* c-parser.c (c_parser_initelt, c_parser_initval): Adjust
	process_init_element callers.